[go: up one dir, main page]

CN111737167B - Apparatus, method and system for high performance interconnect physical layer - Google Patents

Apparatus, method and system for high performance interconnect physical layer Download PDF

Info

Publication number
CN111737167B
CN111737167B CN202010633738.7A CN202010633738A CN111737167B CN 111737167 B CN111737167 B CN 111737167B CN 202010633738 A CN202010633738 A CN 202010633738A CN 111737167 B CN111737167 B CN 111737167B
Authority
CN
China
Prior art keywords
link
training
training sequence
sequence
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010633738.7A
Other languages
Chinese (zh)
Other versions
CN111737167A (en
Inventor
V·艾耶
D·S·尤
R·G·布朗肯希普
F·斯帕戈纳
A·古普塔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to CN202010633738.7A priority Critical patent/CN111737167B/en
Publication of CN111737167A publication Critical patent/CN111737167A/en
Application granted granted Critical
Publication of CN111737167B publication Critical patent/CN111737167B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

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

Landscapes

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

本发明涉及用于高性能互连物理层的装置、方法和系统。链路的重新初始化可以不终止链路而发生,其中链路包括,发射机和接收机耦合至多个巷道中的每个巷道,链路的重新初始化包括在每一个巷道上发射预定义的序列。

The present invention relates to an apparatus, method and system for a high performance interconnect physical layer. Reinitialization of a link can occur without terminating the link, wherein the link includes a transmitter and a receiver coupled to each lane of a plurality of lanes, and reinitialization of the link includes transmitting a predefined sequence on each lane.

Description

用于高性能互连物理层的装置、方法和系统Apparatus, method and system for high performance interconnect physical layer

本申请是针对分案申请201710038141.6再次提出的分案申请。分案申请201710038141.6是PCT国际申请号为PCT/US2013/032690、国际申请日为2013年3月15日、进入中国国家阶段的申请号为201380016998.8,题为“用于传送数据的方法、装置和系统”的发明专利的分案申请。This application is a divisional application filed again for the divisional application 201710038141.6. The divisional application 201710038141.6 is a divisional application of the invention patent with PCT international application number PCT/US2013/032690, international application date March 15, 2013, application number 201380016998.8 entering the Chinese national phase, and titled "Method, device and system for transmitting data".

技术领域Technical Field

本公开案一般涉及计算机开发领域,尤其涉及包括协调相互依赖的受约束系统的软件开发。The present disclosure relates generally to the field of computer development, and more particularly to software development involving the coordination of constrained systems of interdependencies.

背景技术Background technique

半导体处理和逻辑设计中的进展允许增加集成电路器件上存在的逻辑的数量。计算机系统配置必然已经从系统中的单个或多个集成电路演进为个别集成电路上存在的多核、多硬件线程及多逻辑处理器,以及这种处理器内集成的其他接口。处理器或集成电路一般包括单个物理处理器模,其中处理器模可包括任何数量的核、硬件线程、逻辑处理器、接口、存储器、控制器中枢等。Advances in semiconductor processing and logic design have allowed for an increase in the amount of logic present on integrated circuit devices. Computer system configurations have necessarily evolved from a single or multiple integrated circuits in a system to multiple cores, multiple hardware threads, and multiple logical processors present on individual integrated circuits, as well as other interfaces integrated within such processors. A processor or integrated circuit generally includes a single physical processor die, where the processor die may include any number of cores, hardware threads, logical processors, interfaces, memory, controller hubs, etc.

作为在较小的封装包内适配更多处理能力的较高能力的结果,较小的计算设备越来越流行。智能电话、平板电脑、超薄笔记本电脑及其他用户设备呈指数型增长。然而,这些较小设备依赖于服务器来进行数据存储以及超出规格的复杂处理。因而,也增加了对高性能计算市场(即,服务器空间)的需求。例如,在现代服务器中,一般不仅存在具有多个核的单个处理器,也存在多个物理处理器(也称为多个插槽(socket))来提高计算能力。但随着处理能力随着计算系统中设备数量而增长,插槽及其他设备间的通信变得更为关键。As a result of the higher ability to fit more processing power in a smaller package, smaller computing devices are becoming more and more popular. Smart phones, tablets, ultra-thin laptops, and other user devices are growing exponentially. However, these smaller devices rely on servers for data storage and complex processing beyond specifications. As a result, the demand for the high-performance computing market (i.e., the server space) has also increased. For example, in modern servers, there is generally not only a single processor with multiple cores, but also multiple physical processors (also known as multiple sockets) to increase computing power. But as processing power grows with the number of devices in a computing system, communication between sockets and other devices becomes more critical.

实际上,互连已经从主要处理电子通信的较传统的多点总线增长为便于快速通信的全面互连基础结构。不幸的是,由于存在对将来处理器以甚至更高速率进行消耗的需求,对现有互连基础结构的能力也存在相应的需求。In fact, interconnects have grown from more traditional multi-drop buses that primarily handle electronic communications to comprehensive interconnect infrastructures that facilitate fast communications. Unfortunately, as there is a demand for future processors to run at even higher rates, there is a corresponding demand on the capabilities of existing interconnect infrastructures.

附图说明BRIEF DESCRIPTION OF THE DRAWINGS

图1示出按照一实施例的系统的简化框图,该系统包括一系列点对点互连以连接计算机系统中的多个I/O设备;FIG1 illustrates a simplified block diagram of a system including a series of point-to-point interconnects to connect multiple I/O devices in a computer system according to one embodiment;

图2示出按照一实施例的分层协议栈的简化框图;FIG2 illustrates a simplified block diagram of a layered protocol stack according to an embodiment;

图3示出事务描述符的实施例。FIG3 illustrates an embodiment of a transaction descriptor.

图4示出串行点对点链路的实施例。FIG. 4 illustrates an embodiment of a serial point-to-point link.

图5示出潜在的高性能互连(HPI)系统配置的多个实施例。FIG. 5 illustrates several embodiments of potential high performance interconnect (HPI) system configurations.

图6示出与HPI相关联的分层协议栈的实施例。FIG. 6 illustrates an embodiment of a layered protocol stack associated with HPI.

图7示出示例状态机的表示。FIG7 shows a representation of an example state machine.

图8示出示例控制超序列。FIG8 shows an example control supersequence.

图9示出到部分宽度状态的示例转换的流程图。FIG. 9 shows a flow diagram of an example transition to a partial-width state.

图10示出包括多核处理器的计算系统的框图的实施例。FIG. 10 illustrates an embodiment of a block diagram of a computing system including a multi-core processor.

图11示出包括多核处理器的计算系统的框图的另一实施例。FIG. 11 illustrates another embodiment of a block diagram of a computing system including a multi-core processor.

图12示出处理器的框图的实施例。FIG. 12 illustrates an embodiment of a block diagram of a processor.

图13示出包括处理器的计算系统的框图的另一实施例。FIG. 13 illustrates another embodiment of a block diagram of a computing system including a processor.

图14示出包括多个处理器插槽的计算系统的框图的实施例。14 illustrates an embodiment of a block diagram of a computing system including multiple processor sockets.

图15示出计算系统的框图的另一实施例。FIG. 15 illustrates another embodiment of a block diagram of a computing system.

各附图中的相同附图标记和名称表示相同的元件。Like reference numbers and names in the various drawings represent like elements.

具体实施方式Detailed ways

在以下描述中,提出了许多具体细节以便更透彻地理解本发明,诸如具体处理器和系统配置类型、具体硬件结构、具体结构和微结构细节、具体寄存器配置、具体指令类型、具体系统组件、具体处理器流水线阶段、具体互连层、具体分组/事务配置、具体事务名称、具体协议交换、具体链路宽度、具体实现方式以及操作等等的多个示例。然而,对于本领域技术人员显而易见的是,不需要必须采用这些具体细节来实现本公开案的主题。在其他情况下,为避免不必要地混淆本公开案,已经避免了已知组件或方法的非常详细的描述,所述组件或方法诸如具体的和替代的处理器体系结构、所述算法的具体逻辑电路/代码、具体固件代码、低级互连操作、具体逻辑配置、具体制造技术和材料、具体编译器实现、算法用代码的具体表达、具体掉电和门控技术/逻辑以及计算机系统的其他具体操作细节。In the following description, many specific details are set forth in order to provide a more thorough understanding of the present invention, such as specific processor and system configuration types, specific hardware structures, specific structural and micro-architectural details, specific register configurations, specific instruction types, specific system components, specific processor pipeline stages, specific interconnect layers, specific packet/transaction configurations, specific transaction names, specific protocol exchanges, specific link widths, specific implementations and multiple examples of operations, etc. However, it will be apparent to those skilled in the art that these specific details need not necessarily be employed to implement the subject matter of the present disclosure. In other cases, very detailed descriptions of known components or methods, such as specific and alternative processor architectures, specific logic circuits/code for the algorithms, specific firmware code, low-level interconnect operations, specific logic configurations, specific manufacturing techniques and materials, specific compiler implementations, specific expressions of algorithms in code, specific power-down and gating techniques/logic, and other specific operational details of computer systems, have been avoided in order to avoid unnecessarily obscuring the present disclosure.

尽管可以参照具体集成电路(诸如计算平台或微处理器)中的能量保存、能量效率等来描述以下实施例,然而其他实施例可应用于其他类型的集成电路和逻辑器件。这里所述的实施例的类似技术和原理可应用于也受益于这些特征的其他类型的电路或半导体器件。例如,所公开的实施例不限于服务器计算机系统、台式计算机系统、膝上型计算机、超级本(Ultrabooks)TM,而可以用于其他设备中,诸如手持设备、智能电话、平板电脑、其他薄型笔记本电脑、芯片上系统(SOC)设备及嵌入式应用。手持设备的一些示例包括蜂窝电话、网际协议设备、数码相机、个人数字助理(PDA)及手持式PC。这里,用于高性能互连的类似技术可应用于增加低功率互连中的性能(或甚至节省功率)。嵌入式应用一般包括微控制器、数字信号处理器(DSP)、芯片上系统、网络计算机(NetPC)、机顶盒、网络中枢、广域网(WAN)交换机或者可执行以下教导的功能和操作的任何其他系统。此外,这里所描述的装置、方法和系统不限于物理计算设备,而是也关于用于能量节省和效率的软件优化。从以下描述中可显而易见,这里所描述的方法、装置和系统的实施例(无论是参照硬件、固件、软件或其组合)可被视为对于以性能考虑因素平衡的“绿色技术”将来是关键的。Although the following embodiments may be described with reference to energy preservation, energy efficiency, etc. in a specific integrated circuit (such as a computing platform or microprocessor), other embodiments may be applied to other types of integrated circuits and logic devices. Similar techniques and principles of the embodiments described herein may be applied to other types of circuits or semiconductor devices that also benefit from these features. For example, the disclosed embodiments are not limited to server computer systems, desktop computer systems, laptop computers, Ultrabooks TM , but may be used in other devices, such as handheld devices, smart phones, tablet computers, other thin notebook computers, system-on-chip (SOC) devices, and embedded applications. Some examples of handheld devices include cellular phones, Internet protocol devices, digital cameras, personal digital assistants (PDAs), and handheld PCs. Here, similar techniques for high-performance interconnects may be applied to increase performance (or even save power) in low-power interconnects. Embedded applications generally include microcontrollers, digital signal processors (DSPs), systems on chips, network computers (NetPCs), set-top boxes, network hubs, wide area network (WAN) switches, or any other system that can perform the functions and operations taught below. In addition, the apparatus, methods, and systems described herein are not limited to physical computing devices, but are also about software optimization for energy conservation and efficiency. As will become apparent from the following description, embodiments of the methods, apparatus, and systems described herein (whether referred to as hardware, firmware, software, or a combination thereof) may be considered critical to the future of "green technology" balanced with performance considerations.

随着计算系统的进步,其中的组件变得更为复杂。用于在多个组件之间耦合和通信的互连体系结构的复杂度也增加,以确保对于最佳组件操作满足带宽需求。而且,不同的细分市场要求互连体系结构的不同方面来适合于相应的市场。例如,服务器要求较高性能,而移动生态系统有时能为节省功率而牺牲总性能。大多数构造的单一目的仍然是以最大的功率节省来提供最高的可能性能。而且,各种不同的互连可能潜在地受益于这里描述的主题。As computing systems advance, the components therein become more complex. The complexity of the interconnect architecture used to couple and communicate between multiple components has also increased to ensure that bandwidth requirements are met for optimal component operation. Moreover, different market segments require different aspects of the interconnect architecture to suit the corresponding market. For example, servers require higher performance, while the mobile ecosystem can sometimes sacrifice overall performance for power conservation. The single purpose of most configurations remains to provide the highest possible performance with maximum power conservation. Moreover, a variety of different interconnects may potentially benefit from the subject matter described herein.

外设布局互连(PCI)Express(快线)(PCIe)互连构造体系结构和快速路径(QPI)构造体系结构等示例可以根据这里描述的一个或多个原理得到潜在的改进。例如,PCIe的主要目标是使来自不同厂商的组件和设备能在开放式体系结构中互操作,跨越多个细分市场、客户机(台式机和移动机)、服务器(标准和企业)以及嵌入式设备和通信设备。PCIExpress是为广泛的将来的计算和通信平台定义的高性能的、通用I/O互连。一些PCI属性(诸如其使用模型、负载存储体系结构和软件接口)已经通过其修订而被维持,而先前的并行总线实现方式已被高度可缩放的完全串行接口所替代。PCI Express的较新版本利用了点对点互连、基于交换机的技术以及分组化协议中的进步来实现新级别的性能和特征。功率管理、服务质量(QoS)、热插拔/热交换支持、数据完整性以及差错处理是PCI Express所支持的高级特征中的一些特征。尽管这里的主要讨论是参照新的高性能互连(HPI)体系结构,但是这里描述的本发明的多个方面可应用于其他互连体系结构,诸如PCIe兼容体系结构、QPI兼容体系结构、MIPI兼容体系结构、高性能体系结构或其他已知的互连体系结构。Examples such as the Peripheral Component Interconnect (PCI) Express (PCIe) interconnect fabric architecture and the Quick Path (QPI) fabric architecture can be potentially improved according to one or more principles described herein. For example, the main goal of PCIe is to enable components and devices from different manufacturers to interoperate in an open architecture, across multiple market segments, clients (desktop and mobile), servers (standard and enterprise), and embedded devices and communication devices. PCI Express is a high-performance, general-purpose I/O interconnect defined for a wide range of future computing and communication platforms. Some PCI attributes (such as its usage model, load storage architecture, and software interface) have been maintained through its revisions, and the previous parallel bus implementation has been replaced by a highly scalable full serial interface. Newer versions of PCI Express utilize point-to-point interconnects, switch-based technology, and advances in packetized protocols to achieve new levels of performance and features. Power management, quality of service (QoS), hot plug/hot swap support, data integrity, and error handling are some of the advanced features supported by PCI Express. Although the primary discussion herein is with reference to a new high performance interconnect (HPI) architecture, aspects of the invention described herein may be applied to other interconnect architectures, such as a PCIe-compatible architecture, a QPI-compatible architecture, a MIPI-compatible architecture, a high performance architecture, or other known interconnect architectures.

参照图1,示出了由互连一组组件的多个点对点链路组成的构造的实施例。系统100包括与控制器中枢115耦合的处理器105和系统存储器110。处理器105可以包括任何处理元件,诸如微处理器、主机处理器、嵌入式处理器、协处理器或其他处理器。处理器105通过前端总线(FSB)106耦合至控制器中枢115。在一实施例中,FSB 106是如下所述的串行点对点互连。在另一实施例中,链路106包括与不同的互连标准相兼容的串行差分互连体系结构。Referring to FIG. 1 , an embodiment of a construction consisting of a plurality of point-to-point links interconnecting a set of components is shown. System 100 includes a processor 105 and a system memory 110 coupled to a controller hub 115. Processor 105 may include any processing element, such as a microprocessor, a host processor, an embedded processor, a coprocessor, or other processor. Processor 105 is coupled to controller hub 115 via a front-end bus (FSB) 106. In one embodiment, FSB 106 is a serial point-to-point interconnect as described below. In another embodiment, link 106 includes a serial differential interconnect architecture compatible with different interconnect standards.

系统存储器110包括任何存储器设备,诸如随机存取存储器(RAM)、非易失性(NV)存储器、或可由系统100内的设备访问的其他存储器。系统存储器110通过存储器接口116耦合至控制器中枢115。存储器接口的示例包括双数据速率(DDR)存储器接口、双通道DDR存储器接口以及动态RAM(DRAM)存储器接口。System memory 110 includes any memory device, such as random access memory (RAM), non-volatile (NV) memory, or other memory accessible by devices within system 100. System memory 110 is coupled to controller hub 115 via memory interface 116. Examples of memory interfaces include double data rate (DDR) memory interfaces, dual channel DDR memory interfaces, and dynamic RAM (DRAM) memory interfaces.

在一实施例中,控制器中枢115可包括诸如PCIe互连层次结构中的根中枢(roothub)、根复合体(root complex)或根控制器。控制器中枢115的示例包括芯片集、存储器控制器中枢(MCH)、北桥、互连控制器中枢(ICH)、南桥以及根控制器/中枢。通常术语芯片集是指两个物理上分开的控制器中枢,例如与互连控制器中枢(ICH)耦合的存储器控制器中枢(MCH)。注意到,当前的系统通常包括与处理器105集成的MCH,而控制器115要以以下描述的类似方式与I/O设备通信。在一些实施例中,通过根复合体115任选地支持对等路由。In one embodiment, the controller hub 115 may include a root hub, root complex, or root controller such as in a PCIe interconnect hierarchy. Examples of controller hubs 115 include chipsets, memory controller hubs (MCHs), north bridges, interconnect controller hubs (ICHs), south bridges, and root controllers/hubs. The term chipset generally refers to two physically separate controller hubs, such as a memory controller hub (MCH) coupled to an interconnect controller hub (ICH). Note that current systems typically include an MCH integrated with the processor 105, and the controller 115 communicates with I/O devices in a similar manner as described below. In some embodiments, peer-to-peer routing is optionally supported through the root complex 115.

这里,控制器中枢115通过串行链路119耦合至交换机/桥120。输入/输出模块117和121也可称为接口/端口117和121,输入/输出模块117和121可包括/实现分层的协议栈以便在控制器中枢115和交换机120之间提供通信。在一实施例中,多个设备能够耦合至交换机120。Here, the controller hub 115 is coupled to the switch/bridge 120 via a serial link 119. The input/output modules 117 and 121, which may also be referred to as interfaces/ports 117 and 121, may include/implement a layered protocol stack to provide communication between the controller hub 115 and the switch 120. In an embodiment, multiple devices can be coupled to the switch 120.

交换机/桥120将分组/消息自设备125向上游(即,自分层结构向上朝向根复合体)路由至控制器中枢115,并且自处理器105或系统存储器110向下游(即,自分层结构向下远离根控制器)路由至设备125。在一实施例中,交换机120被称为多个虚拟PCI对PCT桥设备的逻辑装配。设备125包括要耦合至电子系统的任何内部或外部设备或组件,诸如I/O设备、网络接口控制器(NIC)、附加卡、音频处理器、网络处理器、硬盘驱动器、存储设备、CD/DVDROM、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、火线(Firewire)设备、通用串行总线(USB)设备、扫描仪以及其他输入/输出设备。通常在PCIe语言中,诸如设备被称为端点。尽管为特别示出,但设备125可以包括桥(例如PCIe对PCI/PCI-X桥)以支持设备或这些设备所支持的互连构造的传统或其他版本。The switch/bridge 120 routes packets/messages from the device 125 upstream (i.e., from the hierarchical structure upward toward the root complex) to the controller hub 115, and from the processor 105 or the system memory 110 downstream (i.e., from the hierarchical structure downward away from the root controller) to the device 125. In one embodiment, the switch 120 is referred to as a logical assembly of multiple virtual PCI to PCT bridge devices. The device 125 includes any internal or external device or component to be coupled to the electronic system, such as an I/O device, a network interface controller (NIC), an add-on card, an audio processor, a network processor, a hard drive, a storage device, a CD/DVDROM, a monitor, a printer, a mouse, a keyboard, a router, a portable storage device, a Firewire device, a Universal Serial Bus (USB) device, a scanner, and other input/output devices. Usually in PCIe language, such as a device is referred to as an endpoint. Although not specifically shown, the device 125 may include a bridge (e.g., a PCIe to PCI/PCI-X bridge) to support the traditional or other versions of the interconnection structure supported by the device or these devices.

图形加速器130也可以通过串行链路132耦合至控制器中枢115。在一实施例中,图形加速器130耦合至MCH,MCH耦合至ICH。于是,交换机120及相应的I/O设备125耦合至ICH。I/O模块131和118也用于实现分层的协议栈以便在图形加速器130和控制器中枢115之间通信。类似于以上的MCH讨论,图形控制器或图形加速器130本身可集成在处理器105内。The graphics accelerator 130 may also be coupled to the controller hub 115 via a serial link 132. In one embodiment, the graphics accelerator 130 is coupled to the MCH, which is coupled to the ICH. Thus, the switch 120 and corresponding I/O devices 125 are coupled to the ICH. The I/O modules 131 and 118 are also used to implement a layered protocol stack for communication between the graphics accelerator 130 and the controller hub 115. Similar to the MCH discussion above, the graphics controller or graphics accelerator 130 itself may be integrated within the processor 105.

转至图2,示出分层协议栈的实施例。分层协议栈200可包括任何形式的分层通信栈,诸如QPI栈、PCIe栈、下一代高性能计算互连(HPI)栈或其他分层栈。在一实施例中,协议栈200可包括事务层205、链路层210和物理层220。接口(诸如图1中的接口117、118、121、122、126和131)可以被表示为通信协议栈200。表示为通信协议栈也可以被称为实现/包括协议栈的模块或接口。Turning to FIG. 2 , an embodiment of a layered protocol stack is shown. The layered protocol stack 200 may include any form of a layered communication stack, such as a QPI stack, a PCIe stack, a next generation high performance computing interconnect (HPI) stack, or other layered stacks. In one embodiment, the protocol stack 200 may include a transaction layer 205, a link layer 210, and a physical layer 220. Interfaces (such as interfaces 117, 118, 121, 122, 126, and 131 in FIG. 1 ) may be represented as a communication protocol stack 200. Representation as a communication protocol stack may also be referred to as a module or interface that implements/includes a protocol stack.

分组可用于在多个组件间传送信息。分组可形成于事务层205和数据链路层210中以将信息自发射组件携带至接收组件。随着所发送的分组流经其他层,使用用于在那些层处理分组的附加信息来扩展这些所发送的分组。在接收侧发生相反过程,分组从它们的物理层220表示变换成数据链路层210表示,最终(对于事务层分组)变换成可由接收设备的事务层205处理的形式。Packets can be used to transfer information between multiple components. Packets can be formed in the transaction layer 205 and the data link layer 210 to carry information from a transmitting component to a receiving component. As the transmitted packets flow through the other layers, they are extended with additional information for processing the packets at those layers. The reverse process occurs on the receiving side, where packets are transformed from their physical layer 220 representation to a data link layer 210 representation, and finally (for transaction layer packets) to a form that can be processed by the transaction layer 205 of the receiving device.

在一实施例中,事务层205可以在设备的处理核和互连体系结构之间提供接口,诸如数据链路层210和物理层220。在这点上,事务层205的主要责任可包括分组(即,事务层分组,即TLP)的装配和分解。事务层205也可以管理TLP的基于信用的流控制。在一些实现中,在其他示例中,可以利用分割事务,即关于请求的事务和关于响应的事务按时间分开,允许链路携带其他业务而同时目标设备为响应收集数据。In one embodiment, the transaction layer 205 can provide an interface between the processing core of the device and the interconnect architecture, such as the data link layer 210 and the physical layer 220. In this regard, the primary responsibilities of the transaction layer 205 can include the assembly and disassembly of packets (i.e., transaction layer packets, i.e., TLPs). The transaction layer 205 can also manage credit-based flow control of the TLPs. In some implementations, in other examples, split transactions can be utilized, i.e., transactions on requests and transactions on responses are separated in time, allowing the link to carry other traffic while the target device collects data for the response.

基于信用的流控制可用于实现利用互连构造的虚拟信道和网络。在一示例中,设备可以为事务层205中的每个接收缓冲器广告初始量的信用。在链路相对端的外部设备(诸如图1中的控制器中枢115)可以对每个TLP所消耗的信用数量计数。如果事务不超过信用界限,则发送事务。在接收到响应时,恢复信用的数量。这一信用方案的优点的一个示例在于,在其他潜在优点中,假如不遇到信用界限,信用返回的延迟就不影响性能。Credit-based flow control can be used to implement virtual channels and networks that utilize interconnected structures. In one example, a device can advertise an initial amount of credits for each receive buffer in the transaction layer 205. An external device at the opposite end of the link (such as the controller hub 115 in FIG. 1 ) can count the number of credits consumed by each TLP. If the transaction does not exceed the credit limit, the transaction is sent. When a response is received, the number of credits is restored. An example of the advantage of this credit scheme is that, among other potential advantages, if the credit limit is not encountered, the delay in the return of credits does not affect performance.

在一实施例中,四个事务地址空间可包括配置地址空间、存储器地址空间、输入/输出地址空间以及消息地址空间。存储器空间事务包括读请求和写请求中的一个或多个,用以将数据传递至存储器映射的位置/自存储器映射的位置传递数据。在一实施例中,存储器空间事务能够使用两个不同的地址格式,例如短地址格式(诸如32位地址)或长地址格式(诸如64位地址)。配置空间事务可用于访问与互连相连接的各个设备的配置空间。到配置空间的事务可包括读请求和写请求。也可以定义消息空间事务(或简称为消息)来支持互连代理之间的带内通信。因此,在一示例实施例中,事务层205可以装配分组头部/有效载荷206。In one embodiment, the four transaction address spaces may include a configuration address space, a memory address space, an input/output address space, and a message address space. Memory space transactions include one or more of read requests and write requests to transfer data to/from a memory mapped location. In one embodiment, memory space transactions can use two different address formats, such as a short address format (such as a 32-bit address) or a long address format (such as a 64-bit address). Configuration space transactions can be used to access the configuration space of each device connected to the interconnect. Transactions to the configuration space may include read requests and write requests. Message space transactions (or simply messages) may also be defined to support in-band communication between interconnect agents. Therefore, in an example embodiment, the transaction layer 205 can assemble a packet header/payload 206.

快速参照图3,示出事务层分组描述符的示例实施例。在一实施例中,事务描述符300可以是用于携带事务信息的机制。在这点上,事务描述符300支持系统中事务的标识。其他潜在用途包括跟踪缺省事务次序的修改以及事务与信道的关联。例如,事务描述符300可包括全局标识符字段302、属性字段304和信道标识符字段306。在所示示例中,全局标识符字段302被描述为包括局部事务标识符字段308和源标识符字段310。在一实施例中,全局事务标识符302对于所有未完成的请求是唯一的。Referring quickly to FIG. 3 , an example embodiment of a transaction layer packet descriptor is shown. In one embodiment, a transaction descriptor 300 may be a mechanism for carrying transaction information. In this regard, the transaction descriptor 300 supports identification of transactions in the system. Other potential uses include tracking modifications to the default transaction order and the association of transactions with channels. For example, the transaction descriptor 300 may include a global identifier field 302, an attribute field 304, and a channel identifier field 306. In the example shown, the global identifier field 302 is described as including a local transaction identifier field 308 and a source identifier field 310. In one embodiment, the global transaction identifier 302 is unique to all outstanding requests.

根据一种实现方式,局部事务标识符字段308是由请求方代理(requestingagent)产生的字段,并且可以是对于对该请求方代理要求完成的所有未完成的请求唯一的。而且,在该示例中,源标识符310唯一地标识互连分层结构内的请求者代理(requestoragent)。因而,局部事务标识符308字段与源ID 310一起提供分层结构域内事务的全局标识。According to one implementation, the local transaction identifier field 308 is a field generated by the requesting agent and can be unique to all outstanding requests that the requesting agent requires to be completed. Moreover, in this example, the source identifier 310 uniquely identifies the requestor agent within the interconnect hierarchy. Thus, the local transaction identifier 308 field, together with the source ID 310, provides a global identification of a transaction within the hierarchy domain.

属性字段304指定事务的特征和关系。在这点上,属性字段304可能用于提供允许修改事务的缺省处理方式的附加信息。在一实施例中,属性字段304包括优先级字段312、保留字段314、排序字段316和无监听(no-snoop)字段318。这里,优先级子字段312可由发起者修改以将优先级分配给事务。保留属性字段314预留给将来的用途或是厂商定义的用途。可以使用保留属性字段来实现使用优先级或安全属性的可能的用途模型。The attribute field 304 specifies the characteristics and relationships of the transaction. In this regard, the attribute field 304 may be used to provide additional information that allows the default handling of the transaction to be modified. In one embodiment, the attribute field 304 includes a priority field 312, a reserved field 314, an order field 316, and a no-snoop field 318. Here, the priority subfield 312 may be modified by the initiator to assign a priority to the transaction. The reserved attribute field 314 is reserved for future use or for use defined by the manufacturer. The reserved attribute field may be used to implement a possible use model that uses priority or security attributes.

在该示例中,排序属性字段316用于提供任选的信息,该任选的信息传递可以修改缺省排序规则的排序类型。根据一种示例实现方式,为“0”的排序属性表示要应用缺省的排序规则,其中为“1”的排序属性表示不受拘束的排序,其中写操作可以在相同方向上通过写操作,而读操作完成可以在相同方向上通过写操作。监听属性字段318用于确定事务是否被监听。如图所示,信道ID字段306标识事务与之相关联的信道。In this example, the sorting attribute field 316 is used to provide optional information that can modify the sorting type of the default sorting rule. According to an example implementation, a sorting attribute of "0" indicates that the default sorting rule is to be applied, wherein a sorting attribute of "1" indicates unconstrained sorting, wherein write operations can pass through write operations in the same direction, and read operations can pass through write operations in the same direction. The listening attribute field 318 is used to determine whether the transaction is listened. As shown in the figure, the channel ID field 306 identifies the channel with which the transaction is associated.

返回图2的讨论,链路层210(也称为数据链路层210)可以充当事务层205和物理层220之间的中间阶段。在一实施例中,数据链路层210的责任是提供用于在链路上的两个组件之间交换事务层分组(TLP)的可靠机制。数据链路层210的一侧接受事务层205所装配的TLP,应用分组序列标识符211(即,标识号或分组号),计算和应用差错检测码(即CRC 212),并且将经修改的TLP提交给物理层220,用于跨过物理组件传输至外部设备。Returning to the discussion of FIG. 2 , the link layer 210 (also referred to as the data link layer 210) may act as an intermediate stage between the transaction layer 205 and the physical layer 220. In one embodiment, the responsibility of the data link layer 210 is to provide a reliable mechanism for exchanging transaction layer packets (TLPs) between two components on a link. One side of the data link layer 210 accepts the TLPs assembled by the transaction layer 205, applies a packet sequence identifier 211 (i.e., an identification number or packet number), calculates and applies an error detection code (i.e., CRC 212), and submits the modified TLP to the physical layer 220 for transmission across the physical components to an external device.

在一示例中,物理层220包括逻辑子块221和电气子块222以便将分组物理地发送至外部设备。这里,逻辑子块221负责物理层221的“数字”功能。在这点上,逻辑子块可以包括发射部分和接收部分,发射部分用于准备传出信息供物理子块222发送,接收部分用于在将接收到的信息传递至链路层210之前标识和准备该接收到的信息。In one example, the physical layer 220 includes a logical sub-block 221 and an electrical sub-block 222 to physically send packets to an external device. Here, the logical sub-block 221 is responsible for the "digital" functions of the physical layer 221. In this regard, the logical sub-block may include a transmit portion and a receive portion, the transmit portion being used to prepare outgoing information for transmission by the physical sub-block 222, and the receive portion being used to identify and prepare the received information before passing it to the link layer 210.

物理块222包括发射机和接收机。发射机由具有符号的逻辑子块221提供,发射机将符号串行化并且向外发射至外部设备。接收机被提供来自外部设备的经串行化符号并且将接收信号变换成位流。位流被解串行化并被提供给逻辑子块221。在一示例实施例中,采用8b/10b传输码,其中发射/接收10位的符号。这里,使用特殊的符号来用多个帧223对分组进行组帧。此外,在一示例中,接收机还提供从传入串行流恢复的符号时钟。Physical block 222 includes a transmitter and a receiver. The transmitter is provided by a logical sub-block 221 with symbols, and the transmitter serializes the symbols and transmits them outward to an external device. The receiver is provided with serialized symbols from an external device and converts the received signal into a bit stream. The bit stream is deserialized and provided to the logical sub-block 221. In an example embodiment, an 8b/10b transmission code is used, in which 10-bit symbols are transmitted/received. Here, special symbols are used to frame the packets with multiple frames 223. In addition, in an example, the receiver also provides a symbol clock recovered from the incoming serial stream.

如上所述,尽管参照协议栈(诸如PCIe协议栈)的具体实施例讨论了事务层205、链路层210和物理层220,但是分层的协议栈不限于此。实际上,可以包括/实现任何分层的协议,分层的协议可以采用这里讨论的特征。作为一示例,被表示为分层协议的端口/接口可包括:(1)用于装配分组的第一层,即事务层;用于序列化分组的第二层,即链路层;以及用于发射分组的第三层,即物理层。作为一具体示例,使用如此处描述的高性能互连分层协议。As described above, although the transaction layer 205, link layer 210, and physical layer 220 are discussed with reference to a specific embodiment of a protocol stack (such as a PCIe protocol stack), the layered protocol stack is not limited thereto. In fact, any layered protocol may be included/implemented, and the layered protocol may employ the features discussed herein. As an example, a port/interface represented as a layered protocol may include: (1) a first layer for assembling packets, i.e., a transaction layer; a second layer for serializing packets, i.e., a link layer; and a third layer for transmitting packets, i.e., a physical layer. As a specific example, a high performance interconnect layered protocol as described herein is used.

接下来参照图4,示出串行点对点构造的示例实施例。串行点对点链路可包括用于发射串行数据的任何发射路径。在所示实施例中,链路可以包括两个、低压、差分驱动的信号对:发射对406/411和接收对412/407。因而,设备405包括用于将数据发射至设备410的发射逻辑406和用于从设备410接收数据的接收逻辑407。换言之,在链路的一些实现中包括两个发射路径(即路径416和417)和两个接收路径(即路径418和419)。Next, with reference to FIG. 4 , an example embodiment of a serial point-to-point configuration is shown. A serial point-to-point link may include any transmit path for transmitting serial data. In the illustrated embodiment, the link may include two, low-voltage, differentially driven signal pairs: a transmit pair 406/411 and a receive pair 412/407. Thus, device 405 includes transmit logic 406 for transmitting data to device 410 and receive logic 407 for receiving data from device 410. In other words, two transmit paths (i.e., paths 416 and 417) and two receive paths (i.e., paths 418 and 419) are included in some implementations of the link.

发射路径是指用于发射数据的任何路径,诸如传输线、铜线、光学线路、无线通信信道、红外通信链路或其他通信路径。两个设备(诸如设备405和设备410)之间的连接被称为链路,诸如链路415。链路可以支持一条巷道,每条巷道表示一组差分信号对(一对用于发射,一对用于接收)。为缩放带宽,链路可以聚集由xN标记的多个巷道,其中N是任何所支持的链路宽度,诸如1、2、4、8、12、16、32、64或更宽。A transmit path refers to any path for transmitting data, such as a transmission line, copper wire, optical line, wireless communication channel, infrared communication link, or other communication path. A connection between two devices (such as device 405 and device 410) is called a link, such as link 415. A link can support one lane, each lane representing a set of differential signal pairs (one pair for transmission and one pair for reception). To scale bandwidth, a link can aggregate multiple lanes labeled by xN, where N is any supported link width, such as 1, 2, 4, 8, 12, 16, 32, 64, or wider.

差分对可以指用于发射差分信号的两条发射路径,诸如线路416和417。作为一示例,当线路416从低电压级别切换至高电压级别时(即,上升沿),线路417自高逻辑电平驱动至低逻辑电平(即,下降沿)。差分信号潜在地说明较佳的电子特性,诸如较佳的信号完整性,即交叉耦合、电压过冲/下冲、振荡等其他示例优点。这允许较佳的定时窗口,从而允许较快的传输频率。A differential pair may refer to two transmission paths, such as lines 416 and 417, for transmitting differential signals. As an example, when line 416 switches from a low voltage level to a high voltage level (i.e., a rising edge), line 417 drives from a high logic level to a low logic level (i.e., a falling edge). Differential signals potentially demonstrate better electronic characteristics, such as better signal integrity, i.e., cross-coupling, voltage overshoot/undershoot, oscillation, and other example advantages. This allows for better timing windows, thereby allowing for faster transmission frequencies.

在一实施例中,提供了新的高性能互连(HPI)。HPI可以包括下一代高速缓存相干的基于链路的互连。作为一示例,HPI可用于诸如工作站或服务器等高性能计算平台中,包括在其中PCIe或另一互连协议一般用来连接处理器、加速器、I/O设备等的系统中。然而,HPI不限于此。相反,HPI可用在这里描述的任一系统或平台中。而且,所开发的个别理念可应用于其他互连和平台,诸如PCIe、MIPI、QPI等。In one embodiment, a new high performance interconnect (HPI) is provided. HPI may include a next generation cache coherent link-based interconnect. As an example, HPI may be used in a high performance computing platform such as a workstation or server, including in a system where PCIe or another interconnect protocol is generally used to connect processors, accelerators, I/O devices, etc. However, HPI is not limited to this. Instead, HPI may be used in any system or platform described herein. Moreover, the individual concepts developed may be applied to other interconnects and platforms, such as PCIe, MIPI, QPI, etc.

为了支持多个设备,在一示例实现中,HPI可包括指令集架构(ISA)不可知的(即,HPI能够实现于多个不同的设备中)。在另一情况下,HPI也可用于连接高性能I/O设备,而不仅仅是处理器或加速器。例如,高性能PCIe设备可通过适当的转换桥(即,HPI至PCIe)耦合至HPI。此外,HPI连接可由许多基于HPI的设备(诸如处理器)以各种方式(例如,星形、环形、网状等)来使用。图5示出多个潜在的多插槽配置的示例实现。如图所示,双插槽配置505可包括两个HPI链路;然而,在其他实现中,可以使用一个HPI链路。对于较大的拓扑结构,只要可分配标识符(ID)并且存在某一形式的虚拟路径以及其他附加或替代特征,就可以使用任何配置。如图所示,在一示例中,四插槽配置510具有从每个处理器到每个其他处理器的HPI链路。但在配置515所示的八插槽实现中,不是每一个插槽都通过HPI链路彼此直接连接。然而,如果在多个处理器之间存在虚拟路径或信道,则支持该配置。所支持的处理器的范围包括本地域中的2-32个处理器。在其他示例中,可以通过使用多个域或节点控制器之间的其他互连来达到较高数量的处理器。To support multiple devices, in an example implementation, HPI may include an instruction set architecture (ISA) agnostic (i.e., HPI can be implemented in multiple different devices). In another case, HPI can also be used to connect high-performance I/O devices, not just processors or accelerators. For example, a high-performance PCIe device can be coupled to HPI through an appropriate conversion bridge (i.e., HPI to PCIe). In addition, HPI connections can be used by many HPI-based devices (such as processors) in various ways (e.g., star, ring, mesh, etc.). Figure 5 shows an example implementation of multiple potential multi-slot configurations. As shown, a dual-slot configuration 505 may include two HPI links; however, in other implementations, one HPI link may be used. For larger topologies, any configuration can be used as long as an identifier (ID) can be assigned and there is a certain form of virtual path and other additional or alternative features. As shown, in an example, a four-slot configuration 510 has an HPI link from each processor to each other processor. But in the eight-slot implementation shown in configuration 515, not every slot is directly connected to each other through an HPI link. However, if there is a virtual path or channel between multiple processors, the configuration is supported. The range of supported processors includes 2-32 processors in a local domain. In other examples, higher numbers of processors can be achieved by using multiple domains or other interconnects between node controllers.

HPI架构包括分层协议架构的定义,在一些示例中,分层协议架构包括协议层(相干的、非相干的、及任选的其他基于存储器的协议)、路由层、链路层以及物理层。而且,在其他示例中,HPI还可包括与功率管理器(诸如功率控制单元(PCU))、测试和调试的设计(DFT)、错误处理、寄存器、安全性有关的增强。图5示出示例HPI分层协议栈的实施例。在一些实现中,图5所示的至少一些层可以是任选的。每一层处理其自身级别的信息粒度或信息量(协议层605a、b处理分组630,链路层610a、b处理飞片(flit)635,物理层605a、b处理相数位(phit)640)。注意到在一些实现中,基于实现方式,分组可以包括多个部分飞片、单个飞片或是多个飞片。The HPI architecture includes the definition of a layered protocol architecture, which in some examples includes protocol layers (coherent, incoherent, and optionally other memory-based protocols), routing layers, link layers, and physical layers. Moreover, in other examples, HPI may also include enhancements related to power managers (such as power control units (PCUs)), design for testing and debugging (DFT), error handling, registers, and security. Figure 5 shows an embodiment of an example HPI layered protocol stack. In some implementations, at least some of the layers shown in Figure 5 may be optional. Each layer handles its own level of information granularity or amount of information (protocol layers 605a, b handle packets 630, link layers 610a, b handle flits 635, and physical layers 605a, b handle phase bits (phit) 640). Note that in some implementations, based on the implementation, a packet may include multiple partial flits, a single flit, or multiple flits.

作为第一示例,相数位640的宽度包括链路宽度到位的1对1映射(例如,20位链路宽度包括20位的相数位,等等)。飞片可以具有更大的尺寸,诸如184、192或200个位。注意到,如果相数位640为20位宽而飞片635的尺寸为184位,则需要一部分数目的相数位640来发射一个飞片635(例如,在其他示例中,20位下的9.2个相数位来发射184位的飞片635,或者20位下的9.6个相数位来发射192位的飞片)。注意到物理层处的基本链路宽度可以变化。例如,每个方向的道数目可以包括2、4、6、8、10、12、14、16、18、20、22、24等。在一实施例中,链路层610a、b能够将多片不同的事务嵌入在单个飞片中,并且一个或多个头部(例如1、2、3、4)可以被嵌入在飞片内。在一示例中,HPI将头部分割成相应的槽以便使飞片内的多个消息去往不同的节点。As a first example, the width of the phase bits 640 includes a 1-to-1 mapping of link width to bits (e.g., a 20-bit link width includes a 20-bit phase bit, etc.). Flyers may have larger sizes, such as 184, 192, or 200 bits. Note that if the phase bits 640 are 20 bits wide and the size of the flyer 635 is 184 bits, a fractional number of phase bits 640 are required to transmit one flyer 635 (e.g., 9.2 phase bits at 20 bits to transmit a 184-bit flyer 635, or 9.6 phase bits at 20 bits to transmit a 192-bit flyer, in other examples). Note that the basic link width at the physical layer may vary. For example, the number of lanes in each direction may include 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, etc. In one embodiment, the link layer 610a,b can embed multiple different transactions in a single flyer, and one or more headers (e.g., 1, 2, 3, 4) can be embedded in the flyer. In one example, HPI divides the header into corresponding slots so that multiple messages in the flyer go to different nodes.

在一实施例中,物理层605a、b可以负责在物理介质(电的或光的等等)上快速传递信息。物理链路可以是两个链路层实体(诸如层605a和605b)之间的点对点。链路层610a、b可以从较上层抽象出物理层605a、b,并且提供可靠地传递数据(以及请求)以及管理两个直连实体间的流控制的能力。链路层还可以负责将物理信道虚拟化为多个虚拟信道和消息类。协议层620a、b依赖于链路层610a、b来在将协议消息转交至物理层605a、b以便跨物理链路传递之前,将协议消息映射至适当的消息类和虚拟信道。在其他示例中,链路层610a、b可以支持多个消息,诸如请求、监听、响应、写回、非相干数据。In one embodiment, the physical layer 605a, b can be responsible for quickly transmitting information on a physical medium (electrical or optical, etc.). The physical link can be point-to-point between two link layer entities (such as layers 605a and 605b). The link layer 610a, b can abstract the physical layer 605a, b from the upper layer and provide the ability to reliably transmit data (and requests) and manage flow control between two directly connected entities. The link layer can also be responsible for virtualizing the physical channel into multiple virtual channels and message classes. The protocol layer 620a, b relies on the link layer 610a, b to map the protocol message to the appropriate message class and virtual channel before handing it over to the physical layer 605a, b for transmission across the physical link. In other examples, the link layer 610a, b can support multiple messages, such as request, listen, response, write back, non-coherent data.

如图6所示,HPI的物理层605a、b(或PHY)可以在电气层(electrical layer)(即,连接两个组件的电导体)上方并且在链路层610a、b下方实现。物理层和相应的逻辑可以驻留在每个代理上,并且连接彼此隔开的两个代理(A和B)上的链路层(例如,在链路的任一侧上的设备上)。本地和远程的电层通过物理媒介(例如,电线、导体、光学媒介等)来连接。在一实施例中,物理层605a、b具有两个主要的相位、初始化和操作。在初始化器件,连接对链路层不透明,信令可以包括定时的状态和握手事件的组合。在操作期间,连接对链路层透明,信令具有一定速度,其中所有巷道在一起操作作为单个链路。在操作阶段期间,物理层将分片从代理A传输至代理B,且从代理B传输至代理A。该连接也称为链路,并且从链路层抽象出包括媒介、宽度和速度在内的某些物理方面,而同时与链路层交换当前配置的飞片和控制/状态(例如,宽度)。初始化阶段包括次要阶段,例如轮询、配置。操作阶段也包括次要阶段(例如,链路功率管理状态)。As shown in FIG6 , the physical layer 605a, b (or PHY) of HPI can be implemented above the electrical layer (i.e., the electrical conductors connecting two components) and below the link layer 610a, b. The physical layer and corresponding logic can reside on each agent and connect the link layers on two agents (A and B) that are separated from each other (e.g., on devices on either side of the link). The local and remote electrical layers are connected by a physical medium (e.g., wires, conductors, optical media, etc.). In one embodiment, the physical layer 605a, b has two main phases, initialization and operation. In the initialization device, the connection is not transparent to the link layer, and the signaling can include a combination of timed status and handshake events. During operation, the connection is transparent to the link layer, and the signaling has a certain speed, where all lanes operate together as a single link. During the operation phase, the physical layer transmits slices from agent A to agent B, and from agent B to agent A. The connection is also called a link, and certain physical aspects including media, width, and speed are abstracted from the link layer, while exchanging currently configured slices and control/status (e.g., width) with the link layer. The initialization phase includes secondary phases, such as polling and configuration. The operation phase also includes secondary phases (e.g., link power management state).

在一实施例中,可以实现链路层610a、b以便在两个协议或路由实体间提供可靠的数据传输。链路层可以从协议层620a、b抽象出物理层605a、b,并且可以负责两个协议代理(A、B)之间的流控制,并且将虚拟信道服务提供给协议层(消息类)和路由层(虚拟网络)。协议层620a、b和链路层610a、b之间的接口一般可以处在分组级别。在一实施例中,链路层处的最小传输单位被称为飞片,飞片是指定数量的位,诸如192个位或某一其他数额。链路层610a、b依赖于物理层605a、b来将物理层605a、b的传输单位(相数位)组帧成链路层610a、b的传输单位(飞片)。此外,链路层610a、b可以在逻辑上被分成两部分,发送者和接收者。一个实体上的发送者/接收者对可以连接至另一实体上的接收者/发送者对。通常在飞片和分组两者的基础上进行流控制。也可能在飞片级基础上执行差错检测和校正。In one embodiment, the link layer 610a, b can be implemented to provide reliable data transmission between two protocols or routing entities. The link layer can abstract the physical layer 605a, b from the protocol layer 620a, b, and can be responsible for the flow control between the two protocol agents (A, B), and provide virtual channel services to the protocol layer (message class) and the routing layer (virtual network). The interface between the protocol layer 620a, b and the link layer 610a, b can generally be at the packet level. In one embodiment, the minimum transmission unit at the link layer is called a flyer, which is a specified number of bits, such as 192 bits or some other amount. The link layer 610a, b relies on the physical layer 605a, b to frame the transmission units (phase bits) of the physical layer 605a, b into the transmission units (flyers) of the link layer 610a, b. In addition, the link layer 610a, b can be logically divided into two parts, a sender and a receiver. A sender/receiver pair on one entity can be connected to a receiver/sender pair on another entity. Flow control is usually performed on the basis of both flyers and packets. It is also possible to perform error detection and correction on a fly-chip level basis.

在一实施例中,路由层615a、b可以提供灵活且分布式的方法以将HPI事务自源路由至目的地。由于可以通过每个路由器处的可编程路由表来指定多个拓扑结构的路由算法(一个实施例中的编程由固件、软件或其组合来执行),因此该方案是灵活的。路由功能可以是分布式的;路由可以通过一系列路由步骤来完成,且每个路由步骤通过源路由器、中间路由器或目的地路由器的任一个处的表格的查找来定义。源处的查找可用于将HPI分组注入HPI构造中。中间路由器处的查找可用于将HPI分组自输入端口路由至输出端口。目的地端口处的查找可用于瞄准目的地HPI协议代理。注意到,在一些实现中,路由层可以是薄的,因为路由表以及由此的路由算法未由说明书具体定义。这允许灵活性以及各种用途模型,包括要由系统实现定义的灵活的平台结构拓扑逻辑。路由层615a、b依赖于链路层610a、b来提供多达三个(或更多个)虚拟网络(VN)的使用――在一示例中,使用两个无死锁VN:VN0和VN1,且每个虚拟网络中定义了几个消息类。在其他特征和示例中,共享自适应虚拟网络(VNA)可定义于链路层中,但该自适应网络可能不直接暴露于路由概念,因为每个消息类和虚拟网络可以有专用的资源和有保证的进步。In one embodiment, the routing layer 615a, b can provide a flexible and distributed method to route HPI transactions from source to destination. Since the routing algorithms of multiple topologies can be specified by the programmable routing table at each router (the programming in one embodiment is performed by firmware, software, or a combination thereof), the scheme is flexible. The routing function can be distributed; routing can be completed by a series of routing steps, and each routing step is defined by a lookup of a table at any one of the source router, intermediate router, or destination router. The lookup at the source can be used to inject the HPI packet into the HPI structure. The lookup at the intermediate router can be used to route the HPI packet from the input port to the output port. The lookup at the destination port can be used to target the destination HPI protocol agent. Note that in some implementations, the routing layer can be thin because the routing table and the routing algorithm therefrom are not specifically defined by the specification. This allows flexibility and a variety of usage models, including flexible platform structure topology logic to be defined by the system implementation. The routing layer 615a,b relies on the link layer 610a,b to provide the use of up to three (or more) virtual networks (VNs) - in one example, two deadlock-free VNs are used: VN0 and VN1, and several message classes are defined in each virtual network. In other features and examples, a shared adaptive virtual network (VNA) can be defined in the link layer, but the adaptive network may not be directly exposed to routing concepts because each message class and virtual network can have dedicated resources and guaranteed progress.

在一些实现中,HPI可以使用嵌入式时钟。时钟信号可嵌入在使用互连发射的数据中。因为时钟信号嵌入于数据中,因此可以省略不同的和专用的时钟巷道。这可以是有用的,例如,因为它可以允许设备的更多引脚专用于数据传输,特别是在引脚空间非常重要的系统中。In some implementations, HPI can use an embedded clock. The clock signal can be embedded in the data transmitted using the interconnect. Because the clock signal is embedded in the data, different and dedicated clock lanes can be omitted. This can be useful, for example, because it can allow more pins of a device to be dedicated to data transmission, especially in systems where pin space is at a premium.

可以在互连的任一侧上的两个代理之间建立链路。发送数据的代理可以是本地代理,接收数据的代理可以是远程代理。两个代理均可采用状态机来管理链路的各个方面。在一实施例中,物理层数据路径可以将多个飞片自链路层发射至电气前端。在一实现中,控制路径包括状态机(也称为链路训练状态机或类似物)。状态机的动作以及从状态的退出可以取决于内部信号、定时器、外部信号或其他信息。实际上,一些状态(诸如少数初始化状态)可具有定时器来提供退出一状态的超时值。注意到,在一些实施例中,检测是指检测一个巷道的两条腿(leg)上的事件,但不必要同时。然而,在其他实施例中,检测是指由所参考的代理来检测事件。作为一示例,防反跳(debounce)是指信号的持续断言。在一实施例中,HPI支持非功能巷道的情况下的操作。这里,巷道可以以特定的速率减少。A link can be established between two agents on either side of the interconnect. The agent sending data can be a local agent, and the agent receiving data can be a remote agent. Both agents can use state machines to manage various aspects of the link. In one embodiment, the physical layer data path can transmit multiple flying chips from the link layer to the electrical front end. In one implementation, the control path includes a state machine (also called a link training state machine or the like). The actions of the state machine and the exit from the state can depend on internal signals, timers, external signals or other information. In fact, some states (such as a few initialization states) may have a timer to provide a timeout value for exiting a state. Note that in some embodiments, detection refers to detecting events on both legs of a lane, but not necessarily at the same time. However, in other embodiments, detection refers to detecting events by the referenced agent. As an example, debounce refers to the continuous assertion of a signal. In one embodiment, HPI supports operation in the case of non-functional lanes. Here, lanes can be reduced at a specific rate.

状态机中定义的状态可以包括重置状态、初始化状态和操作状态,以及其他类别和子类别。在一示例中,一些初始化状态可具有辅助定时器,辅助定时器用于在超时(特别是由于未能在状态中取得进展而造成的中止)时退出状态。中止可以包括更新寄存器,诸如状态寄存器。一些状态也可以具有(多个)主定时器,主定时器用于对状态内的主要功能定时。在其他示例中,可以定义其他状态,使得内部或外部信号(诸如握手协议)驱动从状态到另一状态的转变。The states defined in the state machine may include reset states, initialization states, and operational states, among other categories and subcategories. In one example, some initialization states may have auxiliary timers that are used to exit the state upon a timeout (particularly a suspension due to failure to make progress in the state). Suspension may include updating registers, such as a state register. Some states may also have (multiple) main timers that are used to time the main functions within the state. In other examples, other states may be defined so that internal or external signals (such as a handshake protocol) drive the transition from a state to another state.

状态机还可以支持通过单步骤的调试、冻结初始化端口以及测试器的使用。这里,可以推迟/保持状态退出,直到调试软件准备好为止。在一些情况下,可以推迟/保持退出直到次级超时。在一实施例中,动作和退出可以基于训练序列的交换。在一实施例中,链路状态机要在本地代理时钟域中运行,并且自一个状态到下一个状态的转变要配合发射机训练序列边界。状态寄存器可用于反映当前状态。The state machine may also support debugging through single step, freeze initialization ports, and use of testers. Here, state exits may be postponed/held until debug software is ready. In some cases, exits may be postponed/held until a secondary times out. In one embodiment, actions and exits may be based on the exchange of training sequences. In one embodiment, the link state machine is to run in the local agent clock domain, and transitions from one state to the next are to be coordinated with transmitter training sequence boundaries. A state register may be used to reflect the current state.

图7示出在HPI的一个示例实现中由代理所使用的状态机的至少一部分的表示。应当理解,图7的状态表中所包括的状态包括可能状态的非穷尽列表。例如,省略了一些转变以简化该示意图。同样,可以组合、分割或省略一些状态,而同时可以增加其他状态。这样的状态可以包括:FIG. 7 shows a representation of at least a portion of a state machine used by an agent in an example implementation of HPI. It should be understood that the states included in the state table of FIG. 7 include a non-exhaustive list of possible states. For example, some transitions are omitted to simplify the schematic. Likewise, some states may be combined, split, or omitted, while other states may be added. Such states may include:

事件重置状态:进入热或冷重置事件。恢复缺省值。初始化计数器(例如,同步计数器)。可能退出至另一状态,诸如另一重置状态。 Event Reset State : Enters a hot or cold reset event. Restores default values. Initializes counters (e.g., synchronizes counters). May exit to another state, such as another reset state.

定时重置状态:带内重置的定时状态。可能驱动预定义的电有序集(EOS)以使远程接收机也能够检测EOS并进入定时重置。接收机具有保持电气设置的巷道。可能退出至一代理以校准重置状态。 Timed Reset State : A timed state with an in-band reset. May drive a predefined electrical ordered set (EOS) so that a remote receiver can also detect the EOS and enter a timed reset. The receiver has a lane to hold the electrical settings. May exit to a proxy to calibrate the reset state.

校准重置状态:道上无信令(例如,接收机校准状态)或将驱动器关闭的情况下进行校准。可以是基于定时器的状态中的预定量时间。可以设置操作速度。可以在端口不启用时充当等待状态。可以包括最小驻留时间。接收机调节或错开可基于设计而发生。可以在超时和/或校准完成之后退出至接收机检测状态。 Calibration Reset State : Calibration is performed with no signaling on the track (e.g., receiver calibration state) or with the driver turned off. Can be a predetermined amount of time in a timer-based state. Can set the speed of operation. Can act as a wait state when the port is not enabled. Can include a minimum dwell time. Receiver adjustments or staggering can occur based on design. Can exit to the receiver detection state after timeout and/or calibration completion.

接收机检测状态:检测巷道上接收机的存在。可以查找接收机终止(例如,接收机下拉插入)。可以在设置了指定值或在另一指定值未设置时退出至校准重置状态。如果检测到接收机或达到超时则可以退出至发射机校准状态。 Receiver Detection State : Detects the presence of a receiver on the lane. May look for receiver termination (e.g., receiver pull-down insertion). May exit to the Calibration Reset State if a specified value is set or another specified value is not set. May exit to the Transmitter Calibration State if a receiver is detected or a timeout is reached.

发射机校准状态:用于发射机校准。可以是为发射机校准分配的定时状态。可以包括巷道上的信令。可以连续地驱动EOS,诸如电空闲退出有序集(或EIEIOS)。在校准完成或定时器到期时可以退出至服从状态。如果计数器已到期或已发生次级超时,则可以退出至发射机检测状态。 Transmitter Calibration State : Used for transmitter calibration. May be a timed state assigned for transmitter calibration. May include signaling on the lane. May continuously drive EOS, such as an Electrical Idle Exit Ordered Set (or EIEIOS). May exit to the Comply state upon calibration completion or timer expiration. May exit to the Transmitter Detect state if a counter has expired or a secondary timeout has occurred.

发射机检测状态:证明有效信令的资格。可以是握手状态,其中代理基于远程代理信令完成动作并且退出至下一状态。接收机可以证明来自发射机的有效信令的资格。在一实施例中,接收机寻找唤醒检测,并且如果在一个或多个巷道上防反跳,则在其他巷道上查找它。发射机驱动检测信号。响应于对于所有巷道完成反跳和/或超时、或者如果所有道上的防反跳未完成且存在超时,可以退出至轮询状态。这里,一个或多个监视道可以保持已唤醒以防反跳唤醒信号。如果被防反跳,则其他道可能被防反跳。这可以在低功率状态下实现功率节省。 Transmitter Detect State : Qualify for valid signaling. Can be a handshake state where the agent completes an action based on remote agent signaling and exits to the next state. The receiver can qualify for valid signaling from the transmitter. In one embodiment, the receiver looks for wake-up detection and if debounced on one or more lanes, looks for it on other lanes. The transmitter drives a detection signal. In response to debounce and/or timeout completed for all lanes, or if debounce on all lanes is not completed and there is a timeout, it can exit to the polling state. Here, one or more monitoring lanes can remain awake to debounce the wake-up signal. If debounced, other lanes may be debounced. This can achieve power savings in low power states.

轮询状态:接收机适配、初始化漂移缓冲器以及在位/字节(例如,标识符号边界)上锁定。巷道可以被纠偏。远程代理可以响应于确认消息而退出至下一状态(例如,链路宽度状态)。轮询另外可包括通过锁定至EOS的训练序列锁、以及训练序列头部。可以将远程发射机处的巷道与巷道之间的偏移上限设为针对最高速度的第一长度、以及针对低速度的第二长度。可以在低模式以及操作模式下执行纠偏。接收机可以具有具体最大值来纠偏巷道与巷道之间的偏移,诸如8、16或32个偏移间隔。接收机动作还可以包括延迟固定。在一实施例中,接收机动作可以在有效巷道地图的成功纠偏时完成。在一示例中,在带确认的情况下接收数个连续训练序列头部且在接收机已完成其动作之后传送带有确认的数个训练序列时,可以实现成功握手。 Polling state : receiver adapts, initializes drift buffers, and locks on bits/bytes (e.g., identifier symbol boundaries). Lanes may be deskewed. The remote agent may exit to the next state (e.g., link width state) in response to an acknowledgement message. Polling may additionally include a training sequence lock by locking to EOS, and a training sequence header. The lane-to-lane offset at the remote transmitter may be capped to a first length for maximum speed, and a second length for low speed. Deskew may be performed in low mode as well as in operating mode. The receiver may have a specific maximum value to deskew lane-to-lane offsets, such as 8, 16, or 32 offset intervals. Receiver actions may also include delay fixes. In one embodiment, receiver actions may be completed upon successful deskew of a valid lane map. In one example, a successful handshake may be achieved when several consecutive training sequence headers are received with acknowledgement and several training sequences with acknowledgement are transmitted after the receiver has completed its actions.

链路宽度状态:代理将最终巷道地图传送至远程发射机。接收机接收信息并解码。接收机可以在第二结构中的前一巷道地图值的检查点之后,将已配置的巷道地图记录在一结构中。接收机还可以用确认(“ACK”)来响应。可以发起带内重置。作为一示例,第一状态用于发起带内重置。在一实施例中,响应于ACK而退出至下一状态,诸如飞片配置状态。而且,在进入低功率状态之前,如果唤醒检测信号的出现频率跌落至指定值(例如,每单位间隔(UI)为1,诸如4K UI)以下,也可以产生重置信号。接收机可以保持当前的巷道地图和先前巷道地图。发射机可以基于具有不同值的训练序列来使用不同的巷道组。在一些实施例中,巷道地图可能不修改一些状态寄存器。 Link Width State : The agent transmits the final lane map to the remote transmitter. The receiver receives the information and decodes it. The receiver can record the configured lane map in a structure after a checkpoint of the previous lane map value in a second structure. The receiver can also respond with an acknowledgment ("ACK"). An in-band reset can be initiated. As an example, the first state is used to initiate an in-band reset. In one embodiment, the next state, such as the flying chip configuration state, is exited in response to the ACK. Moreover, before entering the low power state, if the frequency of occurrence of the wake-up detection signal falls below a specified value (e.g., 1 per unit interval (UI), such as 4K UI), a reset signal can also be generated. The receiver can maintain the current lane map and the previous lane map. The transmitter can use different lane groups based on training sequences with different values. In some embodiments, the lane map may not modify some state registers.

飞片锁配置状态:由发射机进入,但在发射机和接收机均已退出至阻断链路状态或其他链路状态时,该状态被视为退出(即,次级超时未决)。在一实施例中,发射机退出至链路状态,包括在接收行星(planetary)对准信号之后的数据序列开始(SDS)和训练序列(TS)边界。这里,接收机退出可以基于自远程发射机接收到SDS。该状态可以是自代理到链路状态的桥。接收机标识SDS。如果在初始化解扰器之后接收到SDS,则接收机可以退出至阻断链路状态(BLS)(或控制窗口)。如果发生超时,则可以退出至重置状态。发射机用配置信号来驱动巷道。发射机也可以基于多个条件或超时而退出至重置状态、BLS状态或其他状态。 Flyer Lock Configuration State : Entered by the transmitter, but this state is considered exited when both the transmitter and receiver have exited to the Block Link State or other link state (i.e., a secondary timeout is pending). In one embodiment, the transmitter exits to the link state, including the start of data sequence (SDS) and training sequence (TS) boundary after receiving a planetary alignment signal. Here, the receiver exit can be based on receiving an SDS from a remote transmitter. This state can be a bridge from the agent to the link state. The receiver identifies the SDS. If an SDS is received after initializing the descrambler, the receiver can exit to the Block Link State (BLS) (or control window). If a timeout occurs, it can exit to the Reset state. The transmitter drives the lane with a configuration signal. The transmitter can also exit to the Reset state, the BLS state, or other states based on multiple conditions or timeouts.

发射链路状态:一种链路状态。飞片被发送至远程代理。可以自阻断链路状态进入并且在有事件(诸如超时)时返回至阻断链路状态。发射机发射飞片。接收机接收飞片。也可以退出至低功率链路状态。在一些实现中,发射链路状态(TLS)也可以被称为L0状态。 Transmit Link State : A link state. Flyers are sent to the remote agent. Can be entered from the Block Link State and returned to the Block Link State on an event (such as a timeout). The transmitter transmits a flyer. The receiver receives a flyer. Can also exit to a low power link state. In some implementations, the Transmit Link State (TLS) may also be referred to as the L0 state.

阻断链路状态:一种链路状态。发射机和接收机以统一方式工作。可以是一种定时状态,在该定时状态期间,在物理层信息被传送至远程代理的同时保持住链路层飞片。可以退出至低功率链路状态(或基于设计的其他链路状态)。在一实施例中,阻断链路状态(BLS)周期性地出现。周期被称为BLS间隔,并且可以被定时,以及在低速度和操作速度之间而不同。注意到可以周期性地阻止链路层发送飞片,使得可以发送一定长度的物理层控制序列,诸如在发射链路状态或部分宽度发射链路状态期间。在一些实现中,阻断链路状态(BLS)可以被称为L0控制(或L0c)状态。 Blocking Link State : A link state. The transmitter and receiver operate in a unified manner. It can be a timed state during which link layer flyers are held while physical layer information is transmitted to the remote agent. It can exit to a low power link state (or other link state based on design). In one embodiment, the blocking link state (BLS) occurs periodically. The period is called the BLS interval and can be timed and different between low speed and operating speed. Note that the link layer can be periodically prevented from sending flyers so that a certain length of physical layer control sequence can be sent, such as during a transmit link state or a partial width transmit link state. In some implementations, the blocking link state (BLS) can be referred to as the L0 control (or L0c) state.

部分宽度发射链路状态:可以通过进入部分宽度状态来节省功率。在一实施例中,非对称部分宽度是指在一些设计中可支持的具有不同宽度的两个方向链路的每个方向。图9的示例中示出诸如发射机的始发者的一示例,始发者发送部分宽度指示以进入部分宽度发射链路状态。这里,在具有第一宽度的链路上发射的同时,发送部分宽度指示,以便将该链路转变成以第二个新宽度进行发送。失配可能导致重置。注意到速度可能不改变,但宽度可以改变。因此,飞片可能以不同的跨度被发送。可能在逻辑上类似于发射链路状态;由于存在较小的宽度,因此发射飞片可能需要较长时间。可以退出至其他链路状态,诸如基于特定接收到的和发送的消息而退出至低功率链路状态,或是基于其他事件退出至部分宽度发射链路状态或链路阻断状态。在一实施例中,发射机端口可以以交错方式将空闲道关闭,以提供较佳的信号完整性(即,噪声减轻),如时序图中所示。这里,在链路宽度正在变化的时间段期间,可以使用不可重试(non-retry-able)飞片,诸如空(Null)飞片。相应的接收机可以丢掉这些空飞片并且以交错方式关闭空闲道。注意,状态以及相关联的状态寄存器可以保持不改变。在一些实现中,部分宽度发射链路状态可以被称为部分L0(或L0p)状态。 Partial Width Transmit Link State : Power can be saved by entering a partial width state. In one embodiment, asymmetric partial width refers to two directional links with different widths in each direction that can be supported in some designs. An example of an initiator such as a transmitter is shown in the example of FIG. 9, and the initiator sends a partial width indication to enter a partial width transmit link state. Here, while transmitting on a link with a first width, a partial width indication is sent to convert the link to transmit at a second new width. A mismatch may cause a reset. Note that the speed may not change, but the width may change. Therefore, the flyer may be sent with a different span. It may be logically similar to the transmit link state; since there is a smaller width, it may take longer to transmit the flyer. It is possible to exit to other link states, such as exiting to a low power link state based on specific received and transmitted messages, or exiting to a partial width transmit link state or a link blocking state based on other events. In one embodiment, the transmitter port can turn off idle lanes in an interleaved manner to provide better signal integrity (i.e., noise mitigation), as shown in the timing diagram. Here, during the time period when the link width is changing, non-retry-able flyers, such as null flyers, may be used. The corresponding receiver may discard these null flyers and close the idle lanes in an interleaved manner. Note that the state and associated state registers may remain unchanged. In some implementations, the partial width transmit link state may be referred to as the partial L0 (or L0p) state.

退出部分宽度发射链路状态:退出部分宽度状态。在一些实现中,可以使用或可以不使用阻断链路状态。在一实施例中,发射机通过在空闲巷道上发送部分宽度退出模式以便训练和纠偏它们,从而启动退出。作为一示例,退出模式以EIEOS开始,EIEOS被检测和防反跳以发信号通知,巷道已经准备好开始进入完全发射链路状态,并且可以以空闲道上的SDS或快速训练序列(FTS)结束。退出序列期间的任何故障(接收机动作,诸如在超时前未完成的纠偏)都停止到链路层的飞片传输,并且坚持重置,重置通过在下一阻断链路状态出现时重置链路来处理。SDS也可以将多个巷道上的扰频器/解扰器初始化为适当的值。 Exiting the Partial Width Transmit Link State : Exiting the partial width state. In some implementations, the blocked link state may or may not be used. In one embodiment, the transmitter initiates the exit by sending a partial width exit pattern on idle lanes in order to train and de-skew them. As an example, the exit pattern begins with EIEOS, which is detected and de-bounced to signal that the lane is ready to begin entering the full transmit link state, and may end with SDS or a fast training sequence (FTS) on an idle lane. Any failure during the exit sequence (receiver action, such as de-skew that was not completed before the timeout) stops the transmission of flying chips to the link layer and insists on a reset, which is handled by resetting the link when the next blocked link state occurs. SDS may also initialize the scrambler/descrambler on multiple lanes to appropriate values.

低功率链路状态:是一种较低功率状态。在一实施例中,它比部分宽度链路状态的功率要低,因为该实施例中的信令在所有巷道上以及在两个方向上都停止。发射机可以使用阻断链路状态来请求低功率链路状态。这里,接收机可以解码该请求并且以ACK或NAK来响应;否则可以触发重置。在一些实现中,低功率链路状态可以被称为L1状态。 Low Power Link State : is a lower power state. In one embodiment, it is lower power than the partial width link state because signaling in this embodiment is stopped on all lanes and in both directions. The transmitter can request a low power link state using the blocking link state. Here, the receiver can decode the request and respond with an ACK or NAK; otherwise a reset can be triggered. In some implementations, the low power link state can be referred to as the L1 state.

在一些实现中,可以便于状态转变以允许状态被旁路,例如,在已经完成状态的状态动作(诸如特定的校准和配置)时。链路的先前状态结果和配置可以被存储,并且在链路的后续初始化和配置中被再用。可以旁路相应的状态,而不是重复这样的配置和状态动作。然而,实现状态旁路的传统系统通常实现复杂设计及昂贵的证实逃避(validationescape)。在一示例中,取代使用传统的旁路,HPI可以在特定状态下使用短定时器,诸如在不需要重复状态动作时。这可以潜在地允许更均匀和同步的状态机转变,以及其他潜在优点。In some implementations, state transitions can be facilitated to allow states to be bypassed, for example, when state actions for a state (such as specific calibration and configuration) have been completed. Previous state results and configurations of a link can be stored and reused in subsequent initialization and configuration of the link. The corresponding state can be bypassed instead of repeating such configuration and state actions. However, traditional systems that implement state bypasses typically implement complex designs and expensive validation escapes. In one example, instead of using traditional bypasses, HPI can use short timers in specific states, such as when state actions do not need to be repeated. This can potentially allow more uniform and synchronized state machine transitions, as well as other potential advantages.

在一示例中,基于软件的控制器(例如,通过物理层的外部控制点)可以针对一个或多个特定状态启用短定时器。例如,对于已经执行和存储其动作的状态,状态可以被短定时以便于从该状态快速退出至下一状态。然而,如果前一状态动作失败或者不能在短定时器期间应用,可以执行状态退出。而且,控制器可以禁用短定时器,例如在应当重新执行状态动作时。可以为每个相应的状态设置长的,或即缺省的定时器。如果该状态下的动作不能在长定时器内完成,则可以发生状态退出。长定时器可以被设为合理持续期,以便允许状态动作的完成。相反,在其他示例中,短定时器可以短得多,在一些情况下,使其尤其不可能在参照回以前执行的状态动作的情况下执行状态动作。In one example, a software-based controller (e.g., through an external control point at the physical layer) can enable a short timer for one or more specific states. For example, for a state whose actions have been executed and stored, the state can be short-timed to facilitate a quick exit from the state to the next state. However, if the previous state action fails or cannot be applied during the short timer, a state exit can be performed. Moreover, the controller can disable the short timer, such as when the state action should be re-executed. A long, or default, timer can be set for each corresponding state. If the action in the state cannot be completed within the long timer, a state exit can occur. The long timer can be set to a reasonable duration to allow completion of the state action. On the contrary, in other examples, the short timer can be much shorter, making it particularly impossible to perform a state action in some cases by referring back to a previously executed state action.

在一些情况下,在链路初始化(或重新初始化)期间,随着代理前进通过状态机朝向操作链路状态,可能出现使状态重置(例如,重置为重置状态或其他状态)的一个或多个故障或状态退出。实践中,链路的初始化可以循环经过一个或多个状态,而无需完成初始化并进入链路状态。在一示例中,可以为链路初始化内的状态转变中的无效循环数目保持计数。例如,每次初始化在未达到链路状态的情况下返回至重置状态时,计数器可以递增。一旦链路成功地进入链路状态,可以为该链路重置计数器。这种计数器可由链路两侧上的代理来维持。而且,可以设置阈值,例如通过使用一个或多个外部控制点的基于软件的控制器来设置。当无效循环的计数满足(或超过)所定义的阈值时,链路的初始化可以被挂起(例如在重置状态时或之前被设置和保持)。在一些实现中,为了重新开始初始化并且自挂起状态释放初始化,基于软件的控制器可以触发链路的重启或重新初始化。在一些情况下,基于软件的工具可以分析被挂起初始化的性质并且进行诊断、设置寄存器值并且执行其他操作,以便防止初始化的进一步循环。实际上,在一些实现中,在其他示例中,控制器可以结合重启被挂起的链路初始化而设置较高的计数器阈值或甚至覆写计数器。In some cases, during link initialization (or reinitialization), as the agent advances through the state machine toward the operational link state, one or more faults or state exits that reset the state (e.g., reset to a reset state or other state) may occur. In practice, the initialization of the link can cycle through one or more states without completing the initialization and entering the link state. In an example, a count can be kept for the number of invalid cycles in the state transition within the link initialization. For example, each time the initialization returns to the reset state without reaching the link state, the counter can be incremented. Once the link successfully enters the link state, the counter can be reset for the link. Such a counter can be maintained by agents on both sides of the link. Moreover, a threshold can be set, such as by using a software-based controller using one or more external control points. When the count of invalid cycles meets (or exceeds) the defined threshold, the initialization of the link can be suspended (e.g., set and maintained at or before the reset state). In some implementations, in order to restart the initialization and release the initialization from the suspended state, a software-based controller can trigger the restart or reinitialization of the link. In some cases, a software-based tool can analyze the nature of the suspended initialization and perform diagnostics, set register values, and perform other operations to prevent further cycles of initialization. Indeed, in some implementations, the controller may set a higher counter threshold or even overwrite the counter in conjunction with restarting a suspended link initialization, among other examples.

在HPI的一些实现中,可以定义超序列,每个超序列对应于一个相应状态或对该相应状态的进入/退出至/自其退出。超序列可包括数据集和符号的重复序列。在一些情况下,在其他示例中,序列可以重复,直到状态或状态转变的完成、或是相应事件的传送为止。在一些情况下,超序列的重复序列可以根据已定义的频率来重复,已定义的频率诸如已定义的单位间隔(UI)数目。单位间隔(UI)可以对应于在链路或系统的道上发射单个位的时间间隔。在一些实现中,重复序列可以以电有序集(EOS)开始。因而,可以预期EOS的实例根据预定义的频率来重复。这种有序集可以被实现为可以16进制格式表示的已定义的16字节码,以及其他示例。在一示例中,超序列的EOS可以使EIEIOS。在一示例中,EIEOS可以类似于低频时钟信号(例如,FF00或FFF000十六进制符号的预定义的重复数目等)。预定义的数据集可以跟随EOS,诸如预定义数目的训练序列或其他数据。在其他示例中,这种超序列可用于状态转变中,状态转变包括链路状态转变以及初始化。In some implementations of HPI, supersequences may be defined, each supersequence corresponding to a corresponding state or entry/exit to/from the corresponding state. A supersequence may include a repeating sequence of data sets and symbols. In some cases, in other examples, the sequence may be repeated until the completion of a state or state transition, or the transmission of a corresponding event. In some cases, the repeating sequence of a supersequence may be repeated according to a defined frequency, such as a defined number of unit intervals (UI). The unit interval (UI) may correspond to a time interval for transmitting a single bit on a link or system track. In some implementations, a repeating sequence may start with an electrical ordered set (EOS). Thus, it is expected that instances of EOS may be repeated according to a predefined frequency. Such an ordered set may be implemented as a defined 16-byte code that may be represented in hexadecimal format, as well as other examples. In one example, the EOS of a supersequence may be EIEIOS. In one example, EIEOS may be similar to a low-frequency clock signal (e.g., a predefined number of repetitions of FF00 or FFF000 hexadecimal symbols, etc.). A predefined data set may follow the EOS, such as a predefined number of training sequences or other data. In other examples, such a supersequence may be used in state transitions including link state transitions and initialization.

在互连的一些实现中,诸如在QPI中,可以开启和关闭串行数据链路的终止,诸如在链路被重置或初始化时。该方法可以将复杂度和时间引入链路的初始化。在HPI的一些实现中,可以在链路的重置和重新初始化期间维持链路的终止。而且,HPI可允许设备的热插。当或通过热插或以其他方式引入另一设备时,向其上添加新远程代理的巷道的电压特性会变化。本地代理可以感测巷道电压中的这些变化以检测远程代理的存在并且促使链路的初始化。可以在状态机中定义状态机状态和定时器以在不终止的情况下协调链路的检测、配置和初始化。In some implementations of the interconnect, such as in QPI, the termination of the serial data link can be turned on and off, such as when the link is reset or initialized. This method can introduce complexity and time into the initialization of the link. In some implementations of HPI, the termination of the link can be maintained during the reset and reinitialization of the link. Moreover, HPI can allow hot plugging of devices. When another device is introduced, either by hot plugging or otherwise, the voltage characteristics of the lane to which the new remote agent is added will change. The local agent can sense these changes in the lane voltage to detect the presence of the remote agent and cause the initialization of the link. State machine states and timers can be defined in the state machine to coordinate the detection, configuration, and initialization of the link without termination.

在一种实现中,通过由接收代理针对传入信令筛选巷道,HPI可以支持带内重置上的重新初始化而不改变终止值。信令可用于标识良好的巷道。作为一示例,可以针对要由发射机设备发送的一组预定义信号中的任一个筛选该巷道,以便于恢复和配置该链路。在一示例中,超序列可以对应于一个或多个初始化或重新初始化任务而被定义。预定义序列可以包括EIEOS,其后是附加的序列数据。在一些情况下,随着巷道的任一侧上的每个设备变得活动,设备可以开始发送对应于特定初始化状态的超序列等等。在一实施例中,可以支持两类引脚重置;上电(即“冷”)重置和热重置。由软件发起或在一个代理上始发(在物理层或另一层中)的重置可以被带内传送至另一个代理。然而,由于使用了嵌入式时钟,因此可以通过使用有序集(诸如特定的电有序集,即EIOS)传送至另一代理来处理带内重置。In one implementation, HPI can support reinitialization on in-band reset without changing the termination value by screening the lane for incoming signaling by the receiving agent. Signaling can be used to identify good lanes. As an example, the lane can be screened for any of a set of predefined signals to be sent by the transmitter device to facilitate recovery and configuration of the link. In one example, a supersequence can be defined corresponding to one or more initialization or reinitialization tasks. The predefined sequence can include EIEOS, followed by additional sequence data. In some cases, as each device on either side of the lane becomes active, the device can begin sending a supersequence corresponding to a specific initialization state, and so on. In one embodiment, two types of pin resets can be supported; power-on (i.e., "cold") resets and hot resets. A reset initiated by software or originated on one agent (in the physical layer or another layer) can be transmitted in-band to another agent. However, because an embedded clock is used, an in-band reset can be handled by transmitting to another agent using an ordered set (such as a specific electrical ordered set, i.e., EIOS).

有序集可以在初始化期间被发送,PHY控制序列(或“阻断链路状态”)可以在初始化之后被发送。阻断链路状态可以阻止链路层发送飞片。作为另一示例,可以阻止链路层业务发送在接收机处被丢弃的少量空(NULL)飞片。Ordered sets may be sent during initialization, and PHY control sequences (or "block link state") may be sent after initialization. The block link state may prevent the link layer from sending flyers. As another example, link layer traffic may be prevented from sending a small number of NULL flyers that are discarded at the receiver.

如以上所介绍,在一实施例中,初始化可以以最初低速度然后是快速初始化来完成。低速度下的初始化针对寄存器和定时器使用缺省值。然后,软件使用低速度链路来设置寄存器、定时器和电参数,并且清除校准臂板信号(semaphore)来为快速初始化铺路。作为一示例,在其他可能的示例中,初始化可由诸如重置(Reset)、检测(Detect)、轮询(Polling)和配置(Configuration)这样的状态或任务组成。As described above, in one embodiment, initialization can be done with an initial low speed followed by a fast initialization. Initialization at low speed uses default values for registers and timers. Then, the software uses the low-speed link to set registers, timers, and electrical parameters, and clears the calibration arm board signal (semaphore) to pave the way for fast initialization. As an example, in other possible examples, initialization can consist of states or tasks such as Reset, Detect, Polling, and Configuration.

在一示例中,链路层阻断控制序列(即,阻断链路状态(BLS)或L0c状态)可以包括一定时状态,在该定时状态期间,在PHY信息被传送至远程代理的同时保持住链路层飞片。这里,发射机和接收机可以启动阻断控制序列定时器。并且在定时器到期时,发射机和接收机可以退出阻断状态并且可以采取其他动作,诸如退出至重置状态、退出至不同的链路状态(或其他状态),不同的链路状态包括允许跨链路发送飞片的状态。In one example, a link layer blocking control sequence (i.e., blocking link state (BLS) or L0c state) may include a timed state during which link layer flybacks are held while PHY information is transmitted to a remote agent. Here, the transmitter and receiver may start a blocking control sequence timer. And upon expiration of the timer, the transmitter and receiver may exit the blocking state and may take other actions, such as exiting to a reset state, exiting to a different link state (or other state), including a state that allows flybacks to be sent across the link.

在一实施例中,可以提供链路训练,链路训练包括发送经扰频的训练序列、有序集和控制序列中的一个或多个,诸如结合预定义超序列而发送。训练序列符号可以包括头部、保留部分、目标延迟、对号(pair number)、物理巷道地图代码参照巷道或一组巷道、以及初始化状态中的一个或多个。在一实施例中,头部可以ACK或NAK来发送,还有其他示例。作为一示例,训练序列可以作为超序列的一部分被发送并且可以被扰频。In an embodiment, link training may be provided, including sending one or more of a scrambled training sequence, an ordered set, and a control sequence, such as in conjunction with a predefined supersequence. The training sequence symbols may include one or more of a header, a reserved portion, a target delay, a pair number, a physical lane map code reference lane or a group of lanes, and an initialization state. In an embodiment, the header may be sent as an ACK or a NAK, among other examples. As an example, the training sequence may be sent as part of a supersequence and may be scrambled.

在一实施例中,有序集和控制序列不被扰频或交错,并且可以在所有巷道上相同地、同时地和完全地被发送。有序集的有效接收可以包括检验有序集的至少一部分(或多个部分有序集的全部有序集)。有序集可以包括电有序集(EOS),诸如电空闲有序集(EIOS)或EIEOS。超序列可以包括数据序列的开始(SDS)或快速训练序列(FTS)。这种集和控制超序列可以被预定义,并且可具有任何模式或十六进制表示以及任何长度。例如,有序集和超序列可以为8字节、16字节或32字节等的长度。作为一示例,在退出部分宽度发射链路状态期间,可以为快速位锁定附加地使用FTS。注意到,FTS定义可以是按道定义的,并且可以使用FTS的旋转版本。In one embodiment, ordered sets and control sequences are not scrambled or interleaved and can be sent identically, simultaneously and completely on all lanes. Valid reception of an ordered set can include checking at least a portion of an ordered set (or all ordered sets of multiple partial ordered sets). An ordered set can include an electrical ordered set (EOS), such as an electrical idle ordered set (EIOS) or an EIEOS. A supersequence can include a start of data sequence (SDS) or a fast training sequence (FTS). Such sets and control supersequences can be predefined and can have any pattern or hexadecimal representation and any length. For example, ordered sets and supersequences can be 8 bytes, 16 bytes, 32 bytes, etc. in length. As an example, during exiting a partial width transmit link state, an FTS can be additionally used for fast bit locking. Note that the FTS definition can be defined by lane and a rotated version of the FTS can be used.

在一实施例中,超序列可以包括将EOS(诸如EIEOS)插入到训练序列流中。在一实施例中,当信令开始时,多个巷道以交错方式被上电。然而,这可能导致初始超序列在一些巷道上在接收机处被截短。然而,超序列可以在短间隔上被重复(例如近似一千单位间隔,(或即~1KUI))。训练超序列可另外用于纠偏、配置中的一个或多个,并且用于传送初始化目标、巷道地图等。EIEOS可用于以下的一个或多个:将巷道从不活动状态转变为活动状态,筛选良好的道,标识符号和TS边界,以及其他示例。In one embodiment, the supersequence may include inserting an EOS (such as EIEOS) into the training sequence stream. In one embodiment, when signaling begins, multiple lanes are powered up in an interleaved manner. However, this may cause the initial supersequence to be truncated at the receiver on some lanes. However, the supersequence may be repeated at short intervals (e.g., approximately one thousand unit intervals, (or ~1 KUI)). The training supersequence may additionally be used for one or more of correction, configuration, and for transmitting initialization targets, lane maps, etc. EIEOS may be used for one or more of: transitioning a lane from an inactive state to an active state, screening good lanes, identifying symbols and TS boundaries, and other examples.

转至图8,示出示例超序列的表示。例如,可以定义示例性的检测超序列805。检测超序列805可以包括单个EIEOS(或其他EOS)且其后跟随特定训练序列(TS)的预定义数量的实例的重复序列。在一示例中,EIEOS可以被发送,其后立即跟随TS的七个重复实例。当七个TS的最后一个被发送时,可以再次发送EIEOS其后跟随TS的七个另外实例,以此类推。该序列可以根据特定的预定义频率来重复。在图8的示例中,EIEOS可以每一千个UI(~1KUI)在巷道上重复出现,其后跟随检测超序列805的其余部分。接收机可以监视巷道上是否存在重复的检测超序列805,并且在确认超序列805时推断出远程代理存在、已被添加(例如,热插拔)至巷道上、已经唤醒、或正在重新初始化等等。Turning to FIG8 , a representation of an example supersequence is shown. For example, an exemplary detection supersequence 805 may be defined. The detection supersequence 805 may include a single EIEOS (or other EOS) followed by a repeating sequence of a predefined number of instances of a particular training sequence (TS). In one example, the EIEOS may be sent, followed immediately by seven repeating instances of the TS. When the last of the seven TSs is sent, the EIEOS may be sent again followed by seven additional instances of the TS, and so on. The sequence may be repeated according to a specific predefined frequency. In the example of FIG8 , the EIEOS may be repeated on the lane every thousand UIs (~1 KUI), followed by the remainder of the detection supersequence 805. The receiver may monitor the lane for repeated detection supersequences 805, and upon confirming the supersequence 805, infer that a remote agent is present, has been added (e.g., hot-plugged) to the lane, has been awakened, or is being reinitialized, etc.

在另一示例中,可以定义另一超序列810来表明轮询、配置或环回(loopback)条件或状态。对于示例的检测超序列805,可由接收机监视链路的巷道上是否有这种轮询/配置/循环(Poll/Config/Loop)超序列810,以标识轮询状态、配置状态或者环回状态或条件。在一示例中,轮询/配置/循环超序列810可以EIEOS开始,其后跟随TS的预定义数量的重复实例。例如,在一示例中,EIEOS后可跟随TS的三十一(31)个实例,其中EIEOS近似每四千个UI(例如,~4KUI)重复一次。In another example, another supersequence 810 may be defined to indicate a polling, configuration, or loopback condition or state. For the example detection supersequence 805, the lanes of the link may be monitored by the receiver for such a Poll/Config/Loop supersequence 810 to identify a polling state, a configuration state, or a loopback state or condition. In one example, the Poll/Config/Loop supersequence 810 may begin with an EIEOS, followed by a predefined number of repeated instances of the TS. For example, in one example, the EIEOS may be followed by thirty-one (31) instances of the TS, where the EIEOS is repeated approximately every four thousand UIs (e.g., ~4KUI).

而且,在另一示例中,可以定义部分宽度发射状态(PWTS)退出超序列815。在一示例中,PWTS退出超序列可包括要重复的初始EIEOS,以便在发送超序列中的第一空序列之前对巷道进行预重复。例如,要在超序列815中重复的序列可以以EIEOS开始(要近似每1KUI重复一次)。而且,可以替代其他训练序列(TS)而使用快速训练序列(FTS),FTS被配置为帮助较快的位锁定、字节锁定和纠偏。在一些实现中,FTS可以被解扰,以帮助将空闲巷道尽可能快速和非打扰地带回至活跃。随着其他超序列进入链路发射状态,超序列815可以被中断,并且通过发送数据序列的开始(SDS)而结束。而且,可以发送部分FTS(FTSp)来帮助将新的巷道同步至活动的巷道,诸如通过允许向FTSp减去(或添加)多个位,以及其他示例。Moreover, in another example, a partial width transmit state (PWTS) exit supersequence 815 may be defined. In one example, the PWTS exit supersequence may include an initial EIEOS to be repeated so that the lane is pre-repeated before the first empty sequence in the supersequence is sent. For example, the sequence to be repeated in the supersequence 815 may start with EIEOS (to be repeated approximately every 1 KUI). Moreover, a fast training sequence (FTS) may be used instead of other training sequences (TS), and the FTS is configured to help faster bit lock, byte lock, and deskew. In some implementations, the FTS may be descrambled to help bring the idle lane back to active as quickly and non-intrusively as possible. As other supersequences enter the link transmit state, the supersequence 815 may be interrupted and ended by sending the start of a data sequence (SDS). Moreover, a partial FTS (FTSp) may be sent to help synchronize the new lane to the active lane, such as by allowing multiple bits to be subtracted (or added) to the FTSp, and other examples.

超序列(诸如检测超序列805和轮询/配置/循环超序列810等)可能潜在地在链路的初始化或重新初始化期间被发送。在一些情况下,接收机在接收和检测特定的超序列时,可以通过在巷道上将同一超序列发回声(echo)给发射机来进行响应。发射机和接收机对特定超序列的接收和确认可以充当握手,以确认通过超序列传送的状态或条件。例如,诸如握手(例如,使用检测超序列805)可用于标识链路的重新初始化。在其他示例中,在另一示例中,这一握手可用于表明电重置或低功率状态的结束,导致相应的巷道被带回来。例如,可以自各自发射检测超序列805的发射机和接收机之间的握手来标识电重置的结束。Supersequences (such as detection supersequence 805 and polling/configuration/loop supersequence 810, etc.) may potentially be sent during initialization or reinitialization of a link. In some cases, a receiver, upon receiving and detecting a particular supersequence, may respond by echoing the same supersequence to a transmitter on a lane. Receipt and confirmation of a particular supersequence by a transmitter and receiver may act as a handshake to confirm a state or condition transmitted by a supersequence. For example, such as a handshake (e.g., using detection supersequence 805) may be used to identify the reinitialization of a link. In other examples, in another example, this handshake may be used to indicate the end of a power-on reset or low-power state, causing the corresponding lane to be brought back. For example, the end of a power-on reset may be identified by a handshake between a transmitter and a receiver that each transmits a detection supersequence 805.

在其他事件中,在另一示例中,可以监视道上是否有超序列,巷道可以使用超序列来筛选道以进行检测、唤醒、状态退出和进入。还可以进一步使用超序列的预定义和可预测的性质和形式来执行这样的初始化任务,诸如位锁定、字节锁定、防反跳、解扰、纠偏、适配、延迟固定、协商延以及其他潜在用途。实际上,可以基本连续地监视道上是否有这些事件以加速系统反应于或处理这种条件的能力。Among other events, in another example, lanes may be monitored for super sequences, which lanes may use to screen lanes for detection, wakeup, state exit and entry. The predefined and predictable nature and form of super sequences may further be used to perform such initialization tasks as bit lock, byte lock, anti-bounce, descramble, deskew, adapt, delay fixation, negotiated delay, and other potential uses. In fact, lanes may be monitored substantially continuously for these events to accelerate the system's ability to react to or handle such conditions.

在防反跳的情况下,作为各种条件的结果,可以在道上引入瞬变。例如,设备的添加或上电可以将瞬变引入巷道上。此外,由于差的巷道质量或电故障,巷道上可能呈现电压不规则性。在一些情况下,巷道上的“反跳(bounce)”可以产生错误确定,诸如错误EIEOS。然而,在一些实现中,尽管超序列可以以EIEOS开始,但已定义的超序列还可以包括附加的数据序列以及EIEOS将重复所用的已定义频率。结果,即使错误EIEOS出现在巷道上,接收机处的逻辑分析器可以通过数据超过错误EIEOS,来确定EIEOS是错误确定。例如,如果预期的TS或其他数据不跟随EIEOS、或者EIEOS不在预定义超序列之一的多个预定义频率的特定一个频率内重复,接收机逻辑分析器可以使对接收到的EIEOS的确认失败。随着在将设备添加至巷道时反跳在启动时出现,也会产生错误确定。例如,在设备被添加至一组巷道后,设备可以开始发送检测超序列705以便向链路的另一侧警告它的存在,并且开始初始化链路。然而,巷道上引入的瞬变可以破坏初始EIEOS、TS实例以及超序列的其他数据。然而,在其他示例中,接收设备上的逻辑分析器可继续监视这些巷道,并且标识由新设备在重复检测超序列705中发送的EIEOS。In the case of anti-bounce, transients may be introduced on the lane as a result of various conditions. For example, the addition or power-up of a device may introduce transients on the lane. In addition, voltage irregularities may be present on the lane due to poor lane quality or electrical faults. In some cases, a "bounce" on the lane may produce an erroneous determination, such as an erroneous EIEOS. However, in some implementations, although a supersequence may start with an EIEOS, a defined supersequence may also include an additional data sequence and a defined frequency at which the EIEOS will repeat. As a result, even if an erroneous EIEOS appears on the lane, a logic analyzer at the receiver may determine that the EIEOS is an erroneous determination by the data exceeding the erroneous EIEOS. For example, if the expected TS or other data does not follow the EIEOS, or the EIEOS does not repeat within a specific one of the multiple predefined frequencies of one of the predefined supersequences, the receiver logic analyzer may fail the confirmation of the received EIEOS. False determinations may also be produced as bounces occur at startup when a device is added to the lane. For example, after a device is added to a set of lanes, the device may begin sending detection supersequences 705 to alert the other side of the link of its presence and begin initializing the link. However, transients introduced on the lanes may corrupt the initial EIEOS, TS instances, and other data of the supersequence. However, in other examples, a logic analyzer on the receiving device may continue to monitor these lanes and identify EIEOS sent by the new device in repeated detection supersequences 705.

在一些实现中,HPI链路能够以嵌入式时钟实现的多个速度进行操作。例如,可以定义慢模式。在一些实例中,慢模式可用于帮助实施链路的初始化。链路的校准可包括基于软件的控制器提供逻辑来设置链路的各个已校准特征,包括链路要使用哪些巷道、巷道的配置、链路的操作速度、巷道和代理的同步、纠偏、目标延迟、以及其他可能的特征。这种基于软件的控制器可以利用外部控制点来将数据添加至物理层寄存器来控制物理层设施和逻辑的各方面。In some implementations, the HPI link can operate at multiple speeds implemented by the embedded clock. For example, a slow mode can be defined. In some instances, the slow mode can be used to help implement the initialization of the link. The calibration of the link can include a software-based controller providing logic to set various calibrated features of the link, including which lanes the link is to use, the configuration of the lanes, the operating speed of the link, synchronization of the lanes and agents, deskew, target delay, and other possible features. Such a software-based controller can use external control points to add data to the physical layer registers to control various aspects of the physical layer facilities and logic.

链路的操作速度可以比链路初始化中使用的基于软件的控制器的实际操作速度快得多。在其他实例中,慢模式可用于允许使用这种基于软件的控制器,诸如在链路的初始化或重新初始化期间。慢模式可应用于链接接收机和发射机的巷道上,例如当链路被开启、被初始化、被重置等等的时候,以帮助实施链路的校准。The operating speed of the link can be much faster than the actual operating speed of the software-based controller used in the initialization of the link. In other examples, the slow mode can be used to allow the use of such a software-based controller, such as during initialization or re-initialization of the link. The slow mode can be applied on the lanes linking the receiver and transmitter, such as when the link is turned on, initialized, reset, etc., to help implement calibration of the link.

在一实施例中,时钟可嵌入在数据中,因此没有单独的时钟巷道。在巷道上发送的飞片可以被扰频以实施时钟恢复。作为一示例,接收机时钟恢复单元可以将采样时钟传递至接收机(即,接收机自数据恢复时钟并且用它来采样进入的数据)。一些实现中的接收机连续地适配于传入位流。通过嵌入时钟,可以潜在地减少引出线(pinout)。然而,将时钟嵌入在带内数据中可以改变实施带内重置的方式。在一实施例中,可以在初始化之后使用阻断链路状态(BLS)。在其他考虑因素中,同样,可以在初始化期间使用电有序集超序列来实施重置。嵌入式时钟可以在链路上的多个设备间共有,公共操作时钟可以在链路的校准和配置期间被设置。例如,HPI链路可以以漂移缓冲器来参考公共时钟。和非公共参考时钟中使用的弹性缓冲器相比,这种实现方式可以实现较低的延迟,还有其他潜在的优点。而且,参考时钟分布段可以被匹配至指定界限内。In one embodiment, the clock may be embedded in the data so there is no separate clock lane. The flyer sent on the lane may be scrambled to implement clock recovery. As an example, the receiver clock recovery unit may pass the sampling clock to the receiver (i.e., the receiver recovers the clock from the data and uses it to sample the incoming data). The receiver in some implementations continuously adapts to the incoming bit stream. By embedding the clock, pinouts can potentially be reduced. However, embedding the clock in the in-band data can change the way in-band resets are implemented. In one embodiment, a blocking link state (BLS) can be used after initialization. Among other considerations, resets can also be implemented using an electrical ordered set super sequence during initialization. The embedded clock can be shared among multiple devices on the link, and the common operating clock can be set during calibration and configuration of the link. For example, an HPI link can reference a common clock with a drift buffer. Compared with the elastic buffer used in a non-common reference clock, this implementation can achieve lower latency and other potential advantages. Moreover, the reference clock distribution segment can be matched to within specified boundaries.

如上所述,HPI链路能够以多个速度操作,包括用于缺省上电、初始化等的“慢模式”。每个设备的操作(或“快速”)速度或模式可由BIOS静态地设置。链路上的公共时钟可以基于链路任一侧上的每个设备的相应操作速度来配置。例如,在其他示例中,链路速度可基于两个设备操作速度中的较慢者。任何操作速度变化可伴随热重置或冷重置。As described above, the HPI link can operate at multiple speeds, including a "slow mode" for default power-up, initialization, etc. The operating (or "fast") speed or mode of each device can be statically set by the BIOS. The common clock on the link can be configured based on the respective operating speeds of each device on either side of the link. For example, in other examples, the link speed can be based on the slower of the two device operating speeds. Any operating speed change can be accompanied by a hot reset or a cold reset.

在一些示例中,在加电时,链路初始化为慢模式,其传输速率例如为100MT/s。然后,软件为链路的操作速度设置两侧,并且开始初始化。在其他情况下,在没有慢模式或慢模式不可用的情况下,可以使用侧带机制来设立链路,包括链路上的公共时钟。In some examples, at power-up, the link is initialized to a slow mode with a transfer rate of, for example, 100 MT/s. The software then sets both sides for the operating speed of the link and begins initialization. In other cases, where there is no slow mode or the slow mode is unavailable, a sideband mechanism can be used to establish the link, including a common clock on the link.

在一实施例中,慢模式初始化阶段可以使用与操作速度相同的编码、扰频、训练序列(TS)、状态等,但可能有较少特征(例如,无电参数设立,无适配等)。与操作速度相比,慢模式操作节点也可能使用相同的编码、扰频等(尽管其他实现可能不相同)但可能有较少的状态和特征(例如,无低功率状态)。In one embodiment, the slow mode initialization phase may use the same coding, scrambling, training sequence (TS), states, etc. as the operating speed, but may have fewer features (e.g., no power parameter setup, no adaptation, etc.). The slow mode operating node may also use the same coding, scrambling, etc. (although other implementations may differ) but may have fewer states and features (e.g., no low power state) compared to the operating speed.

而且,可以使用设备的本地锁相环(PLL)时钟频率来实现慢模式。例如,HPI可以支持模仿的慢模式,而不改变PLL时钟频率。尽管一些设计可以为慢速度和快速度使用单独的PLL,但在HPI的一些实现中,可以通过允许PLL时钟在慢模式期间以相同的快操作速度运行,来实现模仿的慢模式。例如,发射机可以通过多次重复多个位来模拟较慢的时钟信号,以便模拟一个慢的高时钟信号然后是一个慢的低时钟信号。然后,接收机可以对接收信号过采样以定位通过重复位所模拟的多个边缘,并且标识该位。在这种实现中,共享一PLL的多个端口可以在慢速度和快速度下共存。Moreover, the slow mode can be implemented using the local phase-locked loop (PLL) clock frequency of the device. For example, HPI can support simulated slow mode without changing the PLL clock frequency. Although some designs can use separate PLLs for slow speeds and fast speeds, in some implementations of HPI, simulated slow mode can be implemented by allowing the PLL clock to run at the same fast operating speed during slow mode. For example, a transmitter can simulate a slower clock signal by repeating multiple bits multiple times to simulate a slow high clock signal followed by a slow low clock signal. The receiver can then oversample the received signal to locate multiple edges simulated by the repeated bits and identify the bit. In this implementation, multiple ports sharing a PLL can coexist at slow speeds and fast speeds.

公共慢模式速度可以在两个设备之间初始化。例如,链路上的两个设备可具有不同的快速操作速度。公共慢模式速度可以在例如发现阶段或链路上的状态期间被配置。在一示例中,模拟倍数可被设为快速度对慢速度的整数(或非整数)比,不同的快速度可以被向下转换以便与相同的慢速度一起工作。例如,支持至少一个公共频率的两个设备代理可以被热附着,无论主机端口以什么速度运行。然后,软件发现可以使用慢模式链路来标识和设立最优的链路操作速度。在倍数是快速度对慢速度的整数比时,不同的快速度可以与相同的慢速度一起工作,相同的慢速度可以在(例如,热附着的)发现阶段期间被使用。Public slow mode speed can be initialized between two devices.For example, two devices on a link can have different fast operating speeds.Public slow mode speed can be configured during, for example, a discovery phase or a state on a link.In an example, the simulation multiple can be set to an integer (or non-integer) ratio of a fast speed to a slow speed, and different fast speeds can be converted downward to work with the same slow speed.For example, two device agents supporting at least one common frequency can be hot-attached, no matter what speed the host port runs at.Then, software finds that a slow mode link can be used to identify and set up an optimal link operating speed.When the multiple is an integer ratio of a fast speed to a slow speed, different fast speeds can work with the same slow speed, and the same slow speed can be used during (for example, hot-attached) discovery phase.

在HPI的一些实现中,可以支持链路上多个巷道的适配。物理层可以支持接收机适配和发射机(或发送者)适配两者。对于接收机适配,巷道上的发射机可以将采样数据发送至接收机,接收机逻辑可以处理采样数据以标识巷道的电特性中的短处以及信号的质量。然后,接收机可以对巷道的校准作出调整以便基于对接收到的采样数据的分析来优化该巷道。在发射机适配的情况下,接收机可以再次接收采样数据并且开发描述巷道质量的度量,但在该情况下是将度量传送至发射机(例如,使用后信道(backchannel),诸如软件、硬件、嵌入式、侧带或其他信道),以使发射机能基于反馈对巷道作出调整。可以在轮询状态的开始处,使用自远程发射机发送的轮询超序列来发起接收机适配。类似地,通过为每个发射机参数重复以下事项,可以完成发射机适配。两个代理都可以作为主机进入环回模式状态,并且发射所指定的模式。两个接收机都可以测量远程代理处的该特定发射机设置的度量(例如,BER)。两个代理都可以进入环回标记状态,然后进入重置状态,并且使用后信道(慢模式TLS或侧带)来交换度量。基于这些度量,可以标识下一个发射机设置。最后可以标识最优发射机设置,并将其保存供后续使用。In some implementations of HPI, adaptation of multiple lanes on a link may be supported. The physical layer may support both receiver adaptation and transmitter (or sender) adaptation. For receiver adaptation, a transmitter on a lane may send sampled data to a receiver, and the receiver logic may process the sampled data to identify shortcomings in the electrical characteristics of the lane and the quality of the signal. The receiver may then make adjustments to the calibration of the lane in order to optimize the lane based on an analysis of the received sampled data. In the case of transmitter adaptation, the receiver may again receive sampled data and develop a metric describing the quality of the lane, but in this case the metric is transmitted to the transmitter (e.g., using a backchannel, such as software, hardware, embedded, sideband or other channel) so that the transmitter can make adjustments to the lane based on feedback. Receiver adaptation may be initiated at the beginning of the polling state using a polling supersequence sent from a remote transmitter. Similarly, transmitter adaptation may be accomplished by repeating the following for each transmitter parameter. Both agents may enter the loopback mode state as a host and transmit the specified mode. Both receivers can measure a metric (e.g., BER) for that particular transmitter setting at the remote agent. Both agents can enter a loopback tag state, then a reset state, and use a back channel (slow mode TLS or sideband) to exchange metrics. Based on these metrics, the next transmitter setting can be identified. Finally, the optimal transmitter setting can be identified and saved for subsequent use.

由于链路上的两个设备都可以运行相同的参考时钟(例如,ref clk),因此可以省略弹性缓冲器(任何弹性缓冲器都可以被旁路,或者被用作具有最低可能延迟的漂移缓冲器)。然而,可以在每个巷道上使用相位调整或漂移缓冲器来将相应的接收机位流自远程时钟域传输至本地时钟域。漂移缓冲器的等待时间可能足以处理来自电规范中所有源(例如,电压、温度、参考时钟路由适配所引起的残余SSC等等)的漂移总和,但为了减少传输延迟要尽可能小。如果漂移缓冲器过浅,则漂移差错会产生并且会显示为一系列CRC差错。因而,在其他示例中,在一些实现中,可以提供漂移警告,漂移警告会在出现实际漂移差错之前发起物理层重置。Since both devices on the link can run the same reference clock (e.g., ref clk), the elastic buffer can be omitted (any elastic buffer can be bypassed or used as a drift buffer with the lowest possible delay). However, a phase adjustment or drift buffer can be used on each lane to transfer the corresponding receiver bit stream from the remote clock domain to the local clock domain. The latency of the drift buffer may be sufficient to handle the sum of drifts from all sources within the electrical specification (e.g., voltage, temperature, residual SSC caused by reference clock routing adaptation, etc.), but should be as small as possible to reduce transmission delay. If the drift buffer is too shallow, drift errors will occur and will appear as a series of CRC errors. Thus, in other examples, in some implementations, a drift warning can be provided, which will initiate a physical layer reset before an actual drift error occurs.

HPI的一些实现可以支持以同一标称参考时钟频率运行但具有ppm差异的两侧。在其他示例中,在该情况下,可能需要频率调整(或弹性)缓冲器,并且可能在扩展的BLS窗口期间或在会周期性出现的特殊序列期间重新调整频率调整缓冲器。Some implementations of HPI can support two sides running at the same nominal reference clock frequency but with a ppm difference. In other examples, in this case, a frequency adjustment (or elasticity) buffer may be required, and the frequency adjustment buffer may be re-adjusted during an extended BLS window or during a special sequence that may occur periodically.

在其他考虑因素中,HPIPHY逻辑层的操作可以独立于底层的传输媒介——假如等待时间不导致链路层处的延迟固定差错或超时。Among other considerations, the operation of the HPIPHY logical layer can be independent of the underlying transmission medium - provided that latency does not cause delays, fixed errors or timeouts at the link layer.

HPI中可以提供外部接口以帮助管理物理层。例如,可以提供外部信号(来自引脚、保险丝、其他层)、定时器、控制和状态寄存器。输入信号可以在相对于PHY状态的任一时刻变化,并且要由物理层在相应状态下的特定点处观察。例如,在其他示例中,在链路已进入发射链路状态之后,变化的对齐信号(如下介绍)可以被接收,但没有实际效果。类似地,命令寄存器值可由物理层实体仅在特定时间点处观测。例如,物理层逻辑可以获得值的快照,并且将其用于后续操作中。因而,在一些实现中,对命令寄存器的更新可以与特定时间段的有限子集(例如,在发射链路状态时或在保持于重置校准时、在慢模式发射链路状态时)相关联,以避免反常的行为。External interfaces may be provided in the HPI to help manage the physical layer. For example, external signals (from pins, fuses, other layers), timers, control and status registers may be provided. Input signals may change at any time relative to the PHY state and are to be observed by the physical layer at a specific point in the corresponding state. For example, in other examples, after the link has entered the transmit link state, a changing alignment signal (described below) may be received but has no actual effect. Similarly, command register values may be observed by the physical layer entity only at a specific point in time. For example, the physical layer logic may obtain a snapshot of the value and use it in subsequent operations. Thus, in some implementations, updates to the command register may be associated with a limited subset of specific time periods (e.g., when in the transmit link state or when held in reset calibration, in the slow mode transmit link state) to avoid abnormal behavior.

由于状态值跟踪硬件改变,因此值读数可取决于它们何时被读取。然而,一些状态值(诸如链路地图、等待时间、速度等)可能在初始化之后不改变。例如,重新初始化(或低功率链路状态(LPLS)、或L1状态、退出)是唯一能使这些发生变化的事项(例如,TLS中的硬巷道故障不会导致链路的重新配置,直到重新初始化被触发,以及其他示例)。Since the state values track hardware changes, the value readings may depend on when they are read. However, some state values (such as link maps, latency, speed, etc.) may not change after initialization. For example, reinitialization (or low power link state (LPLS), or L1 state, exit) is the only thing that can cause these to change (e.g., hard lane failures in TLS will not cause reconfiguration of the link until reinitialization is triggered, among other examples).

接口信号可包括物理层外部但影响物理层行为的信号。作为示例,这样的接口信号可包括编码和定时信号。接口信号可以是设计专用的。这些信号可以是输入或输出。在其他示例中,一些接口信号(诸如所称的臂板信号和有前缀的EO等其他示例)可以在每次断言边缘时是活动的,即,它们可以被解除断言然后重新断言以再次有效。例如,表1包括示例功能的示例列表:Interface signals may include signals that are external to the physical layer but affect the behavior of the physical layer. As an example, such interface signals may include coding and timing signals. Interface signals may be design specific. These signals may be inputs or outputs. In other examples, some interface signals (such as so-called armboard signals and other examples with prefix EO) may be active each time an edge is asserted, i.e., they may be de-asserted and then re-asserted to be valid again. For example, Table 1 includes an example list of example functions:

表1Table 1

可以成对地提供CSR定时器缺省值――一个用于慢模式,一个用于操作速度。在一些实例中,值0禁用定时器(即,超时用不发生)。定时器可以包括下表2示出的那些定时器。主定时器可用于对状态中的预期动作定时。次定时器用于中止未在进展中的初始化或者用于在自动测试设备(即ATE)模式中以准确的时刻推进状态转变。在一些情况下,状态内的次定时器可以比主定时器大得多。指数定时器集合可以用exp作后缀,定时器值被提高两倍至字段值。对于线性定时器,定时器值是字段值。任一定时器可以使用不同的粒度。此外,功率管理部分中的一些定时器可以在称为定时轮廓的集合中。这些可以与相同名称的时序图相关联。CSR timer default values can be provided in pairs - one for slow mode and one for operating speed. In some instances, a value of 0 disables the timer (i.e., a timeout does not occur). Timers can include those shown in Table 2 below. The primary timer can be used to time the expected actions in a state. The secondary timer is used to terminate initialization that is not in progress or to advance state transitions at accurate moments in automatic test equipment (i.e., ATE) mode. In some cases, the secondary timer within a state can be much larger than the primary timer. The exponential timer set can be suffixed with exp, and the timer value is doubled to the field value. For linear timers, the timer value is the field value. Any timer can use a different granularity. In addition, some timers in the power management portion can be in a set called timing profiles. These can be associated with timing diagrams of the same name.

表2Table 2

可以提供命令和控制寄存器。控制寄存器可以是迟到动作,并且可以在一些实例中由软件读取或写入。迟到动作值可以在重置时连续生效(例如,自软件面临的阶段经过至硬件面临的阶段)。控制臂板信号(有前缀的CP)是RWIS,并且可由硬件清除。可以使用控制寄存器来执行这里描述的任一条目。它们可由硬件、软件、固件或它们的组合来修改和访问。Command and control registers may be provided. Control registers may be late action and may be read or written by software in some instances. Late action values may be continuously effective upon reset (e.g., from a software facing phase to a hardware facing phase). The control arm board signal (prefixed CP) is RWIS and may be cleared by hardware. Control registers may be used to perform any of the items described herein. They may be modified and accessed by hardware, software, firmware, or a combination thereof.

可以提供状态寄存器来跟踪硬件变化(由硬件写入和使用的)并且可以是只读的(但调试软件可能也能够向它们写入)。这种寄存器可能不会影响互操作性,并且一般可用许多私有状态寄存器来实现。因为状态臂板信号(有前缀的SP)可由软件清除,因此可以强制执行状态臂板信号以重做设置状态的动作。缺省意味着可以提供初始(在重置时)值作为与初始化有关的这些状态位的一个子集。在初始化中止时,该寄存器可以被复制到存储结构内。Status registers may be provided to track hardware changes (written and used by the hardware) and may be read-only (but debugging software may also be able to write to them). Such registers may not affect interoperability and may generally be implemented using many private status registers. Because the status arm-plane signal (prefixed with SP) can be cleared by software, the status arm-plane signal may be forced to redo the action of setting the status. Default means that the initial (at reset) value may be provided as a subset of these status bits related to initialization. This register may be copied into a storage structure when initialization is aborted.

可以提供工具箱寄存器。例如,物理层中的可测试性工具箱寄存器可以提供模式生成、模式检验和环回控制机制。较高级的应用可以利用这些寄存器连同电参数来确定余量。例如,测试中构建的互连可以利用该工具箱来确定余量。在其他示例中,对于发射机适配,这些寄存器可以结合前面部分描述的特定寄存器一起使用。Toolbox registers may be provided. For example, the testability toolbox registers in the physical layer may provide pattern generation, pattern checking, and loopback control mechanisms. Higher-level applications may utilize these registers along with electrical parameters to determine margins. For example, an interconnect built under test may utilize the toolbox to determine margins. In other examples, for transmitter adaptation, these registers may be used in conjunction with the specific registers described in the previous section.

在一些实现中,HPI支持使用物理层的可靠性、可用性及可服务性(RAS)能力。在一实施例中,HPI支持对于一个或多个层的热插拔和热移除,层可包括软件。热移除可包括使链路静默,并且可以清除初始化开始状态/信号使代理被移除。远程代理(即,未在被移除的代理(例如,主机代理))可以被设为慢速度,且其初始化信号也可以被清除。在其他示例和特征中,带内重置(例如,通过BLS)可以使两个代理均在重置状态(诸如校准重置状态(CRS))内等待;要被移除的代理可以被移除(或者可以被保持在定向的引脚重置、被掉电)。实际上,以上事件中的一些可以被省略,并且可以添加附加的事件。In some implementations, HPI supports the use of reliability, availability, and serviceability (RAS) capabilities of the physical layer. In one embodiment, HPI supports hot plugging and hot removal for one or more layers, which may include software. Hot removal may include silencing the link, and the initialization start state/signal may be cleared to cause the agent to be removed. The remote agent (i.e., the agent that is not being removed (e.g., the host agent)) may be set to a slow speed, and its initialization signal may also be cleared. In other examples and features, an in-band reset (e.g., via BLS) may cause both agents to wait in a reset state (such as a calibration reset state (CRS)); the agent to be removed may be removed (or may be held in a directional pin reset, powered off). In practice, some of the above events may be omitted, and additional events may be added.

热添加可以包括初始化速度可缺省为慢,且可以在要被添加的代理上设置初始化信号。软件可以将速度设为慢,并且可以清除远程代理上的初始化信号。链路可以在慢模式中发生,软件可以确定操作速度。在一些情况下,在此时不执行远程代理的PLL重新锁定。可以在两个代理上均设置操作速度,可以设置启用以进行适配(如果以前未完成)。可以清除两个代理上的初始化开始指示符,并且带内BLS重置会使两个代理都在CRS中等待。软件可以断言(要被添加的)代理的热重置(例如,定向的重置或自重置),其可以使PLL重新锁定。软件也可以通过任何已知的逻辑来设置初始化开始信号,并且进一步在远程代理上设置(因此将其推入接收机检测状态(RDS))。软件可以解除断言所添加代理的热重置(因此将其推入RDS)。然后,在其他示例中,链路可以在操作速度下初始化为发射链路状态(TLS)(或者如果设置了适配信号则初始化为环回状态)。实际上,可以省略以上事件中的一些事件,并且可以添加附加的事件。Hot add can include that the initialization speed can be defaulted to slow, and the initialization signal can be set on the agent to be added. The software can set the speed to slow, and the initialization signal on the remote agent can be cleared. The link can occur in slow mode, and the software can determine the operating speed. In some cases, the PLL relock of the remote agent is not performed at this time. The operating speed can be set on both agents, and the enable can be set to adapt (if not completed before). The initialization start indicator on both agents can be cleared, and the in-band BLS reset will cause both agents to wait in the CRS. The software can assert the hot reset (e.g., directional reset or self-reset) of the agent (to be added), which can relock the PLL. The software can also set the initialization start signal by any known logic, and further set it on the remote agent (thus pushing it into the receiver detection state (RDS)). The software can de-assert the hot reset of the added agent (thus pushing it into the RDS). Then, in other examples, the link can be initialized to the transmit link state (TLS) at the operating speed (or initialized to the loopback state if the adaptation signal is set). In fact, some of the above events can be omitted, and additional events can be added.

可以支持数据道故障恢复。在一实施例中,HPI中的链路可以将其自身配置为比完全宽度要小(例如,小于完全宽度的一半),从而对单个巷道上的硬差错有弹性,这由此排出了故障巷道。作为一示例,配置可由链路状态机完成,在配置状态中可以关闭不用的巷道。结果,在其他示例中,飞片可以跨较窄的宽度上被发送。Data lane failure recovery may be supported. In one embodiment, a link in HPI may configure itself to be smaller than full width (e.g., less than half full width) to be resilient to hard errors on a single lane, thereby excluding failed lanes. As an example, configuration may be accomplished by a link state machine, where unused lanes may be shut down. As a result, in other examples, fliers may be sent across a narrower width.

在HPI的一些实现中,可以在一些链路上支持巷巷道逆转。例如,巷道逆转可以指发射机的巷道0/1/2…连接至接收机的巷道n/n-1/n-2…(例如,n可以等于19或7等等)。如TS头部的字段中所标识,巷道逆转可以在接收机处被检测。接收机可以通过对逻辑道0…n使用物理道n…0来开始轮询状态,实施巷道逆转。因此,对巷道的引用可以指逻辑巷道号码。因此,广泛的设计者可能更高效地规定物理或电设计,HPI可以与虚拟巷道分配一同工作,如此处描述的。此外,在一实施例中,极性可以被反转(即,当差分发射机+/-连接至接收机-/+时)。极性也可以在接收机处自一个或多个TS头部字段被检测,并且在一个实施例中在轮询状态中实施。In some implementations of HPI, lane reversal may be supported on some links. For example, lane reversal may refer to lanes 0/1/2... of the transmitter being connected to lanes n/n-1/n-2... of the receiver (e.g., n may be equal to 19 or 7, etc.). Lane reversal may be detected at the receiver as indicated in a field of the TS header. The receiver may implement lane reversal by starting a polling state using physical lane n...0 for logical lanes 0...n. Thus, references to lanes may refer to logical lane numbers. Thus, a wide range of designers may more efficiently specify physical or electrical designs, and HPI may work with virtual lane allocations, as described herein. Additionally, in one embodiment, polarity may be reversed (i.e., when a differential transmitter +/- is connected to a receiver -/+). Polarity may also be detected at the receiver from one or more TS header fields, and implemented in the polling state in one embodiment.

参照图10,描述了用于包括多核处理器的计算系统的框图的实施例。处理器1000包括任何处理器或处理设备或用于执行代码的其他设备,处理器或处理设备诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、芯片上系统(SOC)。在一实施例中,处理器1000包括至少两个核――核1001和1002,核可以包括不对称的核或对称的核(所示实施例)。然而,处理器1000可以包括可以对称或非对称的任何数量的处理元件。Referring to FIG. 10 , an embodiment of a block diagram for a computing system including a multi-core processor is described. Processor 1000 includes any processor or processing device or other device for executing code, such as a microprocessor, an embedded processor, a digital signal processor (DSP), a network processor, a handheld processor, an application processor, a coprocessor, a system on a chip (SOC). In one embodiment, processor 1000 includes at least two cores, cores 1001 and 1002, which may include asymmetric cores or symmetric cores (illustrated embodiment). However, processor 1000 may include any number of processing elements that may be symmetric or asymmetric.

在一实施例中,处理元件是指支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或任何其他能够保持处理器的状态的元件,处理器的状态诸如执行状态或架构状态。换言之,在一实施例中,处理元件是指能够与代码独立相关联的任何硬件,代码诸如软件线程、操作系统、应用或其他代码。物理处理器(或处理器插座)一般是指集成电路,集成电路可能包括任何数量的其他处理元件,诸如核或硬件线程。In one embodiment, a processing element refers to hardware or logic that supports a software thread. Examples of hardware processing elements include: a thread unit, a thread slot, a thread, a processing unit, a context, a context unit, a logical processor, a hardware thread, a core, and/or any other element capable of maintaining a state of a processor, such as an execution state or an architectural state. In other words, in one embodiment, a processing element refers to any hardware that can be independently associated with code, such as a software thread, an operating system, an application, or other code. A physical processor (or processor socket) generally refers to an integrated circuit, which may include any number of other processing elements, such as cores or hardware threads.

核通常是指位于能够维持独立架构状态的集成电路上的逻辑,其中每个独立维持的架构状态与至少一些专用执行资源相关联。与核相反,硬件线程一般是指位于能够维持独立架构状态上的任何逻辑,其中独立维持的架构状态共享对执行资源的访问。如图所示,当特定的资源被共享而其他资源专用于架构状态时,硬件线程的命名和核之间的线重叠。但往往,核和硬件线程被操作系统视为个别的逻辑处理器,其中操作系统能够个别地调度每个逻辑处理器上的操作。A core generally refers to logic located on an integrated circuit capable of maintaining an independent architectural state, where each independently maintained architectural state is associated with at least some dedicated execution resources. In contrast to a core, a hardware thread generally refers to any logic located on an integrated circuit capable of maintaining an independent architectural state, where the independently maintained architectural states share access to execution resources. As shown, when certain resources are shared and other resources are dedicated to an architectural state, the lines between the naming of hardware threads and cores overlap. But often, cores and hardware threads are viewed by the operating system as individual logical processors, where the operating system can schedule operations on each logical processor individually.

如图10所示,物理处理器1000包括两个核――核1001和1002。这里,核1001和1002被视为对称核,即具有相同配置、功能单元和/或逻辑的核。在另一实施例中,核1001包括无序处理器核,而核1002包括有序处理器核。然而,核1001和1002可以从任何类型的核中个别地选择,诸如本机核、软件管理的核、适用于执行本机指令集架构(ISA)的核、适用于执行经转换指令集架构(ISA)的核、共同设计的核或其他已知核。在异构核环境(即,非对称核)中,可以使用一些形式的转换(例如二进制转换)来在一个或两个核上调度或执行代码。为了进一步讨论,下面进一步详细描述了核1001中所示的功能单元,核1002中的单元在所述实施例中以类似方式操作。As shown in Figure 10, the physical processor 1000 includes two cores, cores 1001 and 1002. Here, cores 1001 and 1002 are regarded as symmetric cores, i.e., cores with the same configuration, functional units and/or logic. In another embodiment, core 1001 includes an out-of-order processor core, and core 1002 includes an in-order processor core. However, cores 1001 and 1002 can be individually selected from any type of core, such as a native core, a software-managed core, a core suitable for executing a native instruction set architecture (ISA), a core suitable for executing a converted instruction set architecture (ISA), a co-designed core, or other known cores. In a heterogeneous core environment (i.e., an asymmetric core), some form of conversion (e.g., binary conversion) can be used to schedule or execute code on one or both cores. For further discussion, the functional units shown in core 1001 are further described in detail below, and the units in core 1002 operate in a similar manner in the embodiment.

如图所述,核1001包括两个硬件线程1001a和1001b,它们也可以被称为硬件线程槽1001a和1001b。因此,在一实施例中,诸如操作系统的软件实体可能将处理器1000视为四个分开的处理器,即能够同时执行四个软件线程的四个逻辑处理器或处理元件。如以上所提到的,第一线程与架构状态寄存器1001a相关联,第二线程与架构状态寄存器1001b相关联,第三线程可与架构状态寄存器1002a相关联,第四线程可与架构状态寄存器1002b相关联。这里,架构状态寄存器(1001a、1001b、1002a和1002b)的每一个可以被称为处理元件、线程槽或线程单元,如下所述。如图所示,架构状态寄存器1001a在架构状态寄存器1001b中被复制,因此个别的架构状态/上下文能够针对逻辑处理器1001a和逻辑处理器1001b而被存储。在核1001中,也可以为线程1001a和1001b复制其他较小的资源,诸如分配器和重命名器块1030中的指令指针和重命名逻辑。可以通过分区来共享一些资源,诸如重排序/隐退单元1035中的重排序缓冲器、ILTB 1020、负载/存储缓冲器以及队列。其他资源可能被完全共享,其他资源诸如通用内部寄存器、页表基础寄存器、低级数据高速缓存和数据TLB 1015、执行单元1040以及无序单元1035的部分。As shown in the figure, core 1001 includes two hardware threads 1001a and 1001b, which may also be referred to as hardware thread slots 1001a and 1001b. Therefore, in one embodiment, a software entity such as an operating system may regard processor 1000 as four separate processors, i.e., four logical processors or processing elements capable of executing four software threads simultaneously. As mentioned above, the first thread is associated with architecture state register 1001a, the second thread is associated with architecture state register 1001b, the third thread may be associated with architecture state register 1002a, and the fourth thread may be associated with architecture state register 1002b. Here, each of architecture state registers (1001a, 1001b, 1002a and 1002b) may be referred to as a processing element, thread slot or thread unit, as described below. As shown in the figure, architecture state register 1001a is replicated in architecture state register 1001b, so that individual architecture states/contexts can be stored for logical processor 1001a and logical processor 1001b. Other smaller resources may also be replicated for threads 1001a and 1001b in core 1001, such as instruction pointers and renaming logic in allocator and renamer block 1030. Some resources may be shared through partitioning, such as reorder buffers, ILTB 1020, load/store buffers, and queues in reorder/retirement unit 1035. Other resources may be fully shared, such as general internal registers, page table base registers, low-level data cache and data TLB 1015, execution units 1040, and portions of out-of-order unit 1035.

处理器1000通常包括其他资源,其他资源可以被完全共享、通过分区被共享、或者由/对处理器元件专用。在图10中,示出具有处理器的示意性逻辑单元/资源的纯示例性处理器的实施例。注意到,处理器可包括或省略这些功能单元的任何,以及包括任何其他未图示的已知功能单元、逻辑或固件。如图所示,核1001包括简化的代表性的无序(OOO)处理器核。但在不同的实施例中可以使用有序处理器。OOO核包括用于预测要被执行/采取的分支的分支目标缓冲器1020和用于存储指令的地址转换条目的指令转换缓冲器(I-TLB)1020。Processor 1000 generally includes other resources, and other resources can be fully shared, shared by partitions, or dedicated by/to processor elements. In Figure 10, an embodiment of a pure exemplary processor with a schematic logic unit/resource of a processor is shown. Note that the processor may include or omit any of these functional units, and include any other known functional units, logic or firmware not shown. As shown, core 1001 includes a simplified representative out-of-order (OOO) processor core. But in-order processors can be used in different embodiments. The OOO core includes a branch target buffer 1020 for predicting branches to be executed/taken and an instruction translation buffer (I-TLB) 1020 for storing address translation entries of instructions.

核1001还包括耦合至取回单元1020以便对取回的元素进行解码的解码模块1025。在一实施例中,取回逻辑包括分别与线程槽1001a、1001b相关联的个别定序器。通常,核1001与第一ISA相关联,第一ISA定义/指定处理器1000上可执行的指令。通常,作为第一ISA一部分的机器码指令包括一部分指令(称为操作码),该部分指令引用/指定要被执行的指令或操作。解码逻辑1025包括用于从它们的操作码中认出这些指令并且在管线上传递经解码的指令用于如第一ISA所定义那样处理的电路。例如,如以下更详细讨论的,在一实施例中,解码器1025包括被设计或适配成识别特定指令(诸如事务指令)的逻辑。作为解码器1025的识别结果,架构或核1001采取特定的、预定义的动作来执行与适当指令相关联的任务。注意以下是重要的:这里描述的任何任务、块、操作和方法可以响应于单个或多个指令而执行;一些指令可以是新指令或旧指令。注意到,在一实施例中,解码器1026认出相同的ISA(或其子集)。或者,在异构核环境中,解码器1026认出第二ISA(或是第一ISA的子集,或是不同的ISA)。The core 1001 also includes a decoding module 1025 coupled to the fetch unit 1020 to decode the fetched elements. In one embodiment, the fetch logic includes individual sequencers associated with the thread slots 1001a, 1001b, respectively. Typically, the core 1001 is associated with a first ISA that defines/specifies instructions executable on the processor 1000. Typically, a machine code instruction that is part of the first ISA includes a portion of an instruction (referred to as an opcode) that references/specifies an instruction or operation to be executed. The decoding logic 1025 includes circuits for recognizing these instructions from their opcodes and passing decoded instructions on the pipeline for processing as defined by the first ISA. For example, as discussed in more detail below, in one embodiment, the decoder 1025 includes logic designed or adapted to recognize specific instructions (such as transaction instructions). As a result of the recognition by the decoder 1025, the architecture or core 1001 takes specific, predefined actions to perform tasks associated with the appropriate instructions. It is important to note that any of the tasks, blocks, operations, and methods described herein may be performed in response to a single or multiple instructions; some instructions may be new instructions or old instructions. Note that in one embodiment, decoder 1026 recognizes the same ISA (or a subset thereof). Alternatively, in a heterogeneous core environment, decoder 1026 recognizes a second ISA (either a subset of the first ISA, or a different ISA).

在一示例中,分配器和重命名器块1030包括分配器以保留资源(诸如寄存器文件)以存储指令处理结果。然而,线程1001a和1001b可能能进行无序执行,其中分配器和重命名器块1030也保留其他资源,诸如用于跟踪指令结果的记录器缓冲器。单元1030也可以包括寄存器重命名器以便将程序/指令引用寄存器重命名为处理器1000内部的其他寄存器。记录器/隐退单元1035包括组件,诸如上述记录器缓冲器、负载缓冲器以及存储缓冲器,用以支持无序执行以及无序执行的指令的稍候有序隐退。In one example, allocator and renamer block 1030 includes an allocator to reserve resources (such as a register file) to store instruction processing results. However, threads 1001a and 1001b may be capable of out-of-order execution, where allocator and renamer block 1030 also reserves other resources, such as a recorder buffer for tracking instruction results. Unit 1030 may also include a register renamer to rename program/instruction reference registers to other registers internal to processor 1000. Recorder/retirement unit 1035 includes components, such as the above-mentioned recorder buffer, load buffers, and store buffers, to support out-of-order execution and later in-order retirement of instructions executed out-of-order.

在一实施例中,调度器和执行单元块1040包括调度单元以便在执行单元上调度指令/操作。例如,浮点指令在执行单元的一部分上被调度,该部分具有可用的浮点执行单元。也包括与执行单元相关联的寄存器文件以存储信息指令处理结果。示例性的执行单元包括浮点执行单元、整数执行单元、跳跃执行单元、负载执行单元、存储执行单元以及其他已知的执行单元。In one embodiment, the scheduler and execution unit block 1040 includes a scheduling unit to schedule instructions/operations on the execution unit. For example, floating point instructions are scheduled on a portion of the execution unit that has an available floating point execution unit. A register file associated with the execution unit is also included to store information instruction processing results. Exemplary execution units include floating point execution units, integer execution units, jump execution units, load execution units, store execution units, and other known execution units.

较低级的数据高速缓存和数据转换缓冲器(D-TLB)1050被耦合至(多个)执行单元1040。数据高速缓存用于存储元件上最近使用/操作的诸如数据操作数,数据操作数可能被保持在存储器一致性状态中。D-TLB用于存储最近的虚拟/线性到物理的地址转换。作为一具体示例,处理器可以包括页表结构以将物理存储器分成多个虚拟页。A lower level data cache and data translation buffer (D-TLB) 1050 is coupled to the execution unit(s) 1040. The data cache is used to store recently used/operated on elements such as data operands, which may be maintained in a memory consistency state. The D-TLB is used to store recent virtual/linear to physical address translations. As a specific example, the processor may include a page table structure to divide physical memory into multiple virtual pages.

这里,核1001和1002共享对较高级或更高级高速缓存的访问,诸如与芯片上接口1010相关联的第二级高速缓存。注意到,较高级或更高级是指自(多个)执行单元提升或进一步提升的高速缓存级别。在一实施例中,较高级的高速缓存是最后级数据高速缓存-处理器1000上存储器层级中的最后高速缓存,诸如第二或第三级数据高速缓存。然而,较高级高速缓存不限于此,因为它可以与指令高速缓存相关联或者包括指令高速缓存。取而代之,痕迹(trace)高速缓存(一类指令高速缓存)可以耦合在解码器1025之后以存储最近解码的痕迹。这里,指令可能是指宏指令(即,解码器所认出的通用指令),宏指令可以解码为许多微指令(微操作)。Here, cores 1001 and 1002 share access to a higher level or higher level cache, such as a second level cache associated with on-chip interface 1010. Note that higher level or higher level refers to a cache level that is promoted or further promoted from the execution unit(s). In one embodiment, the higher level cache is a last level data cache - the last cache in the memory hierarchy on processor 1000, such as a second or third level data cache. However, the higher level cache is not limited to this, as it may be associated with or include an instruction cache. Alternatively, a trace cache (a type of instruction cache) may be coupled after decoder 1025 to store recently decoded traces. Here, instructions may refer to macroinstructions (i.e., general instructions recognized by the decoder), which may be decoded into many microinstructions (micro-operations).

在所述配置中,处理器1000还包括芯片上接口模块1010。历史上,处理器1000外部的计算机系统中已经包括了存储器控制器,以下更详细地描述存储器控制器。在该场景下,芯片上接口101用于与处理器1000外部的设备通信,诸如系统存储器1075、芯片集(通常包括用于连接至存储器1075的存储器控制器中枢以及用于连接外围设备的I/O控制器中枢)、存储器控制器中枢、北桥或其他集成电路。在此场景中,总线1005可以包括任何已知的互连,诸如多点总线、点对点互连、串行互连、并行总线、相干(例如,高速缓存相干)总线、分层协议架构、差分总线以及GTL总线。In the configuration, the processor 1000 also includes an on-chip interface module 1010. Historically, a memory controller has been included in a computer system external to the processor 1000, and the memory controller is described in more detail below. In this scenario, the on-chip interface 101 is used to communicate with devices external to the processor 1000, such as system memory 1075, a chipset (typically including a memory controller hub for connecting to the memory 1075 and an I/O controller hub for connecting peripheral devices), a memory controller hub, a north bridge, or other integrated circuits. In this scenario, the bus 1005 can include any known interconnect, such as a multi-point bus, a point-to-point interconnect, a serial interconnect, a parallel bus, a coherent (e.g., cache coherent) bus, a layered protocol architecture, a differential bus, and a GTL bus.

存储器1075可以对处理器1000专用,或者与系统中的其他设备共享。存储器1075的常用类型示例包括DRAM、SRAM、非易失性存储器(NV存储器)以及其他已知存储设备。注意到,设备1080可以包括图形加速器、耦合至存储器控制器中枢的处理器或卡、耦合至I/O控制器中枢的数据存储器、无线收发机、闪速设备、音频控制器、网络控制器或其他已知设备。Memory 1075 may be dedicated to processor 1000 or shared with other devices in the system. Examples of common types of memory 1075 include DRAM, SRAM, non-volatile memory (NV memory), and other known storage devices. Note that device 1080 may include a graphics accelerator, a processor or card coupled to a memory controller hub, a data storage coupled to an I/O controller hub, a wireless transceiver, a flash device, an audio controller, a network controller, or other known devices.

然而最近,随着更多的逻辑和设备被集成于单个芯片(诸如SOC)上,这些设备的每一个可以被结合于处理器1000上。例如,在一实施例中,存储器控制器中枢与处理器1000在相同的包和/或芯片上。这里,核的一部分(核上部分)1010包括一个或多个控制器,用于与诸如存储器1075或图形设备1080等其他设备相接口。包括互连以及用于与这些设备相接口的控制器在内的配置通常被称为核上(即,非核配置)。作为一示例,芯片上接口1010包括用于芯片上通信的环形互连以及用于芯片外通信的高速串行点对点链路1005。但是,在SOC环境中,可以在单个芯片或集成电路上集成甚至更多的设备(诸如网络接口、协处理器、存储器1075、图形处理器1080以及任何其他已知的计算机设备/接口)以便以高功能和低功耗来提供小的形状因子。However, recently, as more logic and devices are integrated onto a single chip (such as a SOC), each of these devices may be combined onto the processor 1000. For example, in one embodiment, a memory controller hub is on the same package and/or chip as the processor 1000. Here, a portion of the core (on-core portion) 1010 includes one or more controllers for interfacing with other devices such as memory 1075 or a graphics device 1080. A configuration including interconnects and controllers for interfacing with these devices is generally referred to as an on-core (i.e., an uncore configuration). As an example, the on-chip interface 1010 includes a ring interconnect for on-chip communication and a high-speed serial point-to-point link 1005 for off-chip communication. However, in a SOC environment, even more devices (such as a network interface, a coprocessor, memory 1075, a graphics processor 1080, and any other known computer device/interface) may be integrated onto a single chip or integrated circuit to provide a small form factor with high functionality and low power consumption.

在一实施例中,处理器1000能够执行编译器、优化和/或转换器代码1077以编译、转换和/或优化应用码1076,以支持这里所述的装置和方法或者与这里所述的装置和方法相接口。编译器通常包括将源文本/代码转换成目标文本/代码的程序或程序集。通常,用编译器对程序/应用码所作的编译在多个阶段中被完成,并且多次通过以将高级编程语言代码转换成低级机器或汇编语言代码。然而,对于简单编译仍可利用单通编译器。编译器可以使用任何已知的编译计数并且执行任何已知的编译器操作,诸如词法分析、预处理、解析、语义分析、代码生成、代码转换以及代码优化。In one embodiment, processor 1000 can execute compiler, optimize and/or converter code 1077 to compile, convert and/or optimize application code 1076 to support apparatus and method described herein or interface with apparatus and method described herein. Compiler generally includes program or assembly that source text/code is converted into target text/code. Usually, the compiling done by compiler to program/application code is completed in multiple stages, and multiple passes are made to convert high-level programming language code into low-level machine or assembly language code. However, single-pass compiler can still be utilized for simple compilation. Compiler can use any known compilation count and perform any known compiler operation, such as lexical analysis, preprocessing, parsing, semantic analysis, code generation, code conversion and code optimization.

较大的编译器通常包括多个阶段,但通常这些阶段被包括于两个通用阶段:(1)前端,即,一般是词法处理、语义处理及一些转换/优化所发生的阶段;以及(2)后端,即,一般是分析、转换、优化和代码生成所发生的阶段。一些编译器适用于中间,说明编译器的前端和后端之间的划分是模糊的。结果,编译器的插入引用、关联、生成或其他操作可以发生于任一上述阶段或通过中、以及编译器的任何其他已知阶段或通过中。作为说明性的示例,编译器可能在编译的一个或多个阶段中插入操作、调用、函数等,诸如在编译的前端阶段插入调用/操作、然后在转换阶段将调用/操作转换成较低级代码。注意到在动态编译期间,编译器代码或动态优化代码可以插入这样的操作/调用,以及优化代码供运行时间执行。作为一具体的说明性示例,二进制代码(已编译的代码)可以在运行时间被动态地优化。这里,程序代码可以包括动态优化代码、二进制代码或者它们的组合。Larger compilers typically include multiple phases, but typically these phases are included in two general phases: (1) the front end, i.e., the phase where lexical processing, semantic processing, and some transformations/optimizations generally occur; and (2) the back end, i.e., the phase where analysis, transformations, optimizations, and code generation generally occur. Some compilers are adapted to be in the middle, indicating that the division between the front end and back end of the compiler is blurred. As a result, the insertion of references, associations, generation, or other operations of the compiler may occur in any of the above phases or passes, as well as in any other known phase or pass of the compiler. As an illustrative example, the compiler may insert operations, calls, functions, etc. in one or more phases of compilation, such as inserting calls/operations in the front end phase of compilation and then converting the calls/operations into lower-level code in the transformation phase. Note that during dynamic compilation, compiler code or dynamic optimization code may insert such operations/calls, as well as optimize the code for execution at runtime. As a specific illustrative example, binary code (compiled code) may be dynamically optimized at runtime. Here, program code may include dynamic optimization code, binary code, or a combination thereof.

类似于编译器,诸如二进制转换器这样的转换器或统计地或动态地转换代码,以优化和/或转换代码。因此,对代码执行、应用代码、程序代码或其他软件环境的引用可以是指:(1)或动态地或统计地执行编译器程序、优化代码优化器、或转换器,以编译程序代码、维持软件结构、执行其他操作、优化代码、或者转换代码;(2)执行包括操作/调用的主程序代码,主程序代码诸如已被优化/编译的应用代码;(3)执行与主程序代码相关联的其他程序代码(诸如库),以维持软件结构、执行其他软件相关的操作、或者优化代码;或(4)以上的组合。Similar to compilers, converters such as binary converters convert code either statistically or dynamically to optimize and/or convert code. Thus, references to code execution, application code, program code, or other software environments may refer to: (1) executing a compiler program, code optimizer, or converter either dynamically or statistically to compile program code, maintain software structure, perform other operations, optimize code, or convert code; (2) executing a main program code including operations/calls, such as application code that has been optimized/compiled; (3) executing other program code associated with the main program code (such as a library) to maintain software structure, perform other software-related operations, or optimize code; or (4) combinations of the above.

限制参照图11,示出多核处理器的实施例的框图。如图11的实施例所示,处理器1100包括多个域。具体而言,核域1130包括多个核1130A-1130N,图形域1160包括具有媒体引擎1165的一个或多个图形引擎,以及系统代理域1110。Referring to FIG. 11 , a block diagram of an embodiment of a multi-core processor is shown. As shown in the embodiment of FIG. 11 , a processor 1100 includes multiple domains. Specifically, a core domain 1130 includes multiple cores 1130A-1130N, a graphics domain 1160 includes one or more graphics engines with a media engine 1165, and a system proxy domain 1110.

在各个实施例中,系统代理域1110实施功率控制事件和功率管理,使得域1130和1160的个别单元(例如,核和/或图形引擎)是独立可控的,以便根据给定单元内出现的活动(或不活动)以适当的功率模式/级别(例如,活动、涡轮(turbo)、睡眠、冬眠、深睡眠或其他高级配置功率接口类似的状态)进行动态地操作。域1130和1160的每一个可以以不同的电压和/或功率进行操作,而且,域内的每一个别单元可能以独立的频率和电压进行操作。注意到,虽然仅以三个域示出,但可以理解,本发明的范围不限于此,其他实施例中可以存在附加的域。In various embodiments, system agent domain 1110 implements power control events and power management so that individual units (e.g., cores and/or graphics engines) of domains 1130 and 1160 are independently controllable to dynamically operate in an appropriate power mode/level (e.g., active, turbo, sleep, hibernate, deep sleep, or other advanced configuration power interface-like states) based on the activity (or inactivity) occurring within a given unit. Each of domains 1130 and 1160 may operate at different voltages and/or powers, and each individual unit within a domain may operate at independent frequencies and voltages. Note that although only three domains are shown, it is understood that the scope of the present invention is not limited to this, and additional domains may exist in other embodiments.

如图所示,除了各种执行单元和附加的处理元件以外,每个核1130还包括低级别高速缓存。这里,各个核彼此耦合,且耦合至共享高速缓存存储器,共享高速缓存存储器的形式为最后级高速缓存(LLC)的多个单元或片1140A-1140N;这些LLC通常包括存储器和高速缓存控制器功能并且在多个核间共享、也可能在图形引擎间共享。As shown, in addition to the various execution units and additional processing elements, each core 1130 also includes a low-level cache. Here, the cores are coupled to each other and to a shared cache memory in the form of multiple units or slices 1140A-1140N of a last-level cache (LLC); these LLCs typically include memory and cache controller functions and are shared among multiple cores and possibly among graphics engines.

如图所示,环形互连1150将核耦合在一起,并且经由多个环停止处1152A―1152N在核域1130、图形域1160和系统代理电路1110间提供互连。如图11所示,互连1150用于携带各种信息,包括地址信息、数据信息、确认信息以及监听/无效信息。尽管图示了环形互连,但是可以利用任何已知的芯片上互连或构造。作为一说明性示例,可以以类似方式使用以上讨论的一些构造(例如,另一芯片上互连、芯片上系统构造(OSF)、高级微处理器总线架构(AMBA)互连、多维网格构造或其他已知的互连架构)。As shown, a ring interconnect 1150 couples the cores together and provides interconnection between the core domain 1130, the graphics domain 1160, and the system agent circuit 1110 via a plurality of ring stops 1152A-1152N. As shown in FIG. 11 , the interconnect 1150 is used to carry various information, including address information, data information, confirmation information, and snoop/invalidation information. Although a ring interconnect is illustrated, any known on-chip interconnect or construction may be utilized. As an illustrative example, some of the constructions discussed above (e.g., another on-chip interconnect, a system on chip construction (OSF), an advanced microprocessor bus architecture (AMBA) interconnect, a multi-dimensional mesh construction, or other known interconnect architectures) may be used in a similar manner.

如进一步描述,系统代理域1110包括显示引擎1112,用于提供对到相关联显示器的接口的控制。系统代理域1110可包括其他单元,诸如:提供了到系统存储器(例如,以多个DIMM实现的DRAM)的接口;的集成的存储器控制器1120;用于执行存储器相干操作的相干逻辑1122。可存在多个接口以便在处理器和其他电路间进行互连。例如,在一实施例中,提供了至少一个直接媒体接口(DMI)1116接口以及一个或多个PCIeTM接口1114。显示引擎以及这些接口一般经由PCIeTM桥1118耦合至存储器。进一步,可以提供一个或多个其他接口,用于在其他代理之间的通信,其他代理诸如附加的处理器或其他电路。As further described, the system agent domain 1110 includes a display engine 1112 for providing control of an interface to an associated display. The system agent domain 1110 may include other units, such as: an integrated memory controller 1120 that provides an interface to system memory (e.g., DRAM implemented in multiple DIMMs); and coherent logic 1122 for performing memory coherent operations. There may be multiple interfaces for interconnecting between processors and other circuits. For example, in one embodiment, at least one direct media interface (DMI) 1116 interface and one or more PCIe TM interfaces 1114 are provided. The display engine and these interfaces are generally coupled to the memory via a PCIe TM bridge 1118. Further, one or more other interfaces may be provided for communication between other agents, such as additional processors or other circuits.

现在参照图12,示出代表性核的框图;具体而言,示出核(诸如图11的核1130)的后端的多个逻辑块。通常,图12所示的结构包括具有前端单元1270的无序处理器,前端单元用于取回传入指令、执行各种处理(例如,高速缓存、解码、分支预测等)并将指令/操作一起传递至无序(OOO)引擎1280。OOO引擎1280对已解码的指令执行进一步的处理。Referring now to FIG. 12 , a block diagram of a representative core is shown; specifically, multiple logic blocks of the back end of a core (such as core 1130 of FIG. 11 ) are shown. In general, the structure shown in FIG. 12 includes an out-of-order processor having a front end unit 1270 that is used to fetch incoming instructions, perform various processing (e.g., caching, decoding, branch prediction, etc.) and pass the instructions/operations together to an out-of-order (OOO) engine 1280. The OOO engine 1280 performs further processing on the decoded instructions.

具体而言在图12的实施例中,无序引擎1280包括分配单元1282,分配单元1282用于自前端单元1270接收已解码指令,并且将已解码指令分配给诸如寄存器等适当的资源,已解码指令的形式可以是一个或多个微-指令即微指令。接着,指令被提供给保留站1284,保留站1284保留资源并且调度资源供在多个执行单元1286A-1286N之一上执行。可以存在各种类型的执行单元,包括例如算术逻辑单元(ALU)、负载和存储单元、向量处理单元(VPU)、浮点执行单元等等。来自这些不同的执行单元的结果被提供给记录缓冲器(ROB)1288,记录缓冲器1288记录无序的结果并返回它们以纠正程序次序。Specifically, in the embodiment of FIG. 12 , the out-of-order engine 1280 includes an allocation unit 1282 for receiving decoded instructions from the front end unit 1270 and allocating the decoded instructions to appropriate resources such as registers. The decoded instructions may be in the form of one or more micro-instructions, i.e., microinstructions. Next, the instructions are provided to a reservation station 1284, which reserves resources and schedules resources for execution on one of a plurality of execution units 1286A-1286N. There may be various types of execution units, including, for example, an arithmetic logic unit (ALU), a load and store unit, a vector processing unit (VPU), a floating point execution unit, and the like. The results from these different execution units are provided to a record buffer (ROB) 1288, which records the out-of-order results and returns them to correct the program order.

仍然参照图12,注意到前端单元1270和无序引擎1280被耦合至存储器层级的不同级别。具体而言示出指令集高速缓存1272,指令集高速缓存1272又耦合至中级高速缓存1276,中级高速缓存1276又耦合至最后级高速缓存1295。作为一示例,单元1290类似于图8的系统代理810。如以上讨论的,非核1290与系统存储器1299通信,在所示实施例中,系统存储器1299经由ED RAM实现。还注意到,无序引擎1280内的各个执行单元1286与第一级高速缓存1274通信,第一级高速缓存1274也与中级高速缓存1276通信。还注意到,附加的核1230N-2…1230N可耦合至LLC 1295。尽管在图12的实施例中在此高级别示出,也可以理解,可以存在各种更改和附加的组件。Still referring to FIG. 12 , it is noted that the front end unit 1270 and the out-of-order engine 1280 are coupled to different levels of the memory hierarchy. Specifically, an instruction set cache 1272 is shown, which is in turn coupled to a mid-level cache 1276, which is in turn coupled to a last-level cache 1295. As an example, the unit 1290 is similar to the system agent 810 of FIG. 8 . As discussed above, the uncore 1290 communicates with the system memory 1299, which in the illustrated embodiment is implemented via ED RAM. It is also noted that the various execution units 1286 within the out-of-order engine 1280 communicate with the first-level cache 1274, which also communicates with the mid-level cache 1276. It is also noted that additional cores 1230N-2…1230N may be coupled to the LLC 1295. Although shown at this high level in the embodiment of FIG. 12 , it is also understood that various modifications and additional components may exist.

转至图13,示出了形成有处理器的示例性计算机系统的框图,处理器包括执行单元以执行指令,其中,多个互连的一个或多个按照本发明一实施例来实现一个或多个特征。根据本发明,诸如在此处所述的实施例中,系统1300包括一组件(诸如处理器1302)以采用执行单元,执行单元包括用于执行算法来处理数据的逻辑。系统1300代表基于PENTIUMIIITM、PENTIUM 4TM、XeonTM、Itanium、XScaleTM和/或StrongARMTM微处理器的的处理系统,然而也可以使用其他系统(包括具有其他微处理器、工程师工作站、机顶盒等的PC)。在一实施例中,样本系统1300执行可以从华盛顿雷德蒙的微软公司获得的WINDOWSTM操作系统的一个版本,然而也可以使用其他操作系统(例如UNIX和Linux)、嵌入式软件和/或图形用户界面。因此,本发明的实施例不限于硬件电路和软件的任何具体组合。Turning to FIG. 13 , a block diagram of an exemplary computer system formed with a processor including an execution unit to execute instructions, wherein one or more of a plurality of interconnected ones implement one or more features according to an embodiment of the present invention. According to the present invention, such as in the embodiments described herein, system 1300 includes a component (such as processor 1302) to employ an execution unit, the execution unit including logic for executing an algorithm to process data. System 1300 represents a processing system based on a PENTIUMIII TM , PENTIUM 4 TM , Xeon TM , Itanium, XScale TM and/or StrongARM TM microprocessor, although other systems (including PCs with other microprocessors, engineer workstations, set-top boxes, etc.) may also be used. In one embodiment, sample system 1300 executes a version of the WINDOWS TM operating system available from Microsoft Corporation of Redmond, Washington, although other operating systems (such as UNIX and Linux), embedded software and/or graphical user interfaces may also be used. Therefore, embodiments of the present invention are not limited to any specific combination of hardware circuitry and software.

实施例不限于计算机系统。本发明的替代实施例可用于诸如手持设备和嵌入式应用的其他设备中。手持设备的一些示例包括蜂窝电话、网际协议设备、数码相机、个人数字助理(PDA)和手持PC。嵌入式应用可包括微控制器、数字信号处理器(DSP)、芯片上系统、网络计算机(NetPC)、机顶盒、网络中枢、广域网(WAN)交换机、或者可按照至少一个实施例执行一个或多个指令的任何其他系统。Embodiments are not limited to computer systems. Alternative embodiments of the present invention may be used in other devices such as handheld devices and embedded applications. Some examples of handheld devices include cellular phones, Internet protocol devices, digital cameras, personal digital assistants (PDAs), and handheld PCs. Embedded applications may include microcontrollers, digital signal processors (DSPs), systems on chips, network computers (NetPCs), set-top boxes, network hubs, wide area network (WAN) switches, or any other system that can execute one or more instructions according to at least one embodiment.

在该所示实施例中,处理器1302包括一个或多个执行单元1308以实现用于执行至少一个指令的算法。可以在单处理器台式或服务器系统的上下文中描述一个实施例,但是替代的实施例可以被包括在多处理器系统中。系统1300是“中枢”系统架构的一个示例。计算机系统1300包括处理器1302以处理数据信号。作为一个说明性示例,处理器1302包括复杂指令集计算机(CISC)微处理器、精简指令集计算(RISC)微处理器、极长指令字(VLIW)微处理器、实现指令集的组合的处理器、或者任何其他处理器设备(诸如例如数字信号处理器)。处理器1302耦合至处理器总线1310,处理器总线1310在处理器1302和系统1300中的其他组件之间发射数据信号。系统1300的多个元件(例如,图形加速器1312、存储器控制器中枢1316、存储器1320、I/O控制器中枢1324、无线收发机1326、闪速BIOS1328、网络控制器1334、音频控制器1336、串行扩展端口1338、I/O控制器1340等)执行对于本领域技术人员熟知的它们的常规功能。In the illustrated embodiment, the processor 1302 includes one or more execution units 1308 to implement an algorithm for executing at least one instruction. An embodiment may be described in the context of a single processor desktop or server system, but alternative embodiments may be included in a multi-processor system. System 1300 is an example of a "hub" system architecture. Computer system 1300 includes a processor 1302 to process data signals. As an illustrative example, processor 1302 includes a complex instruction set computer (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, a processor that implements a combination of instruction sets, or any other processor device (such as, for example, a digital signal processor). Processor 1302 is coupled to a processor bus 1310, which transmits data signals between processor 1302 and other components in system 1300. The multiple elements of system 1300 (e.g., graphics accelerator 1312, memory controller hub 1316, memory 1320, I/O controller hub 1324, wireless transceiver 1326, flash BIOS 1328, network controller 1334, audio controller 1336, serial expansion port 1338, I/O controller 1340, etc.) perform their conventional functions that are well known to those skilled in the art.

在一实施例中,处理器1302包括级1(L1)内部高速缓存存储器1304。取决于架构,处理器1302可以具有单个内部高速缓存,或多个级别的内部高速缓存。取决于特定实现和需求,一个实施例包括内部和外部高速缓存两者的组合。寄存器文件1306用于将不同类型的数据存储于各种寄存器中,各种寄存器包括整数寄存器、浮点寄存器、向量寄存器、分组(banked)寄存器、影子寄存器、检查点寄存器、状态寄存器以及指令指针寄存器。In one embodiment, the processor 1302 includes a level 1 (L1) internal cache memory 1304. Depending on the architecture, the processor 1302 may have a single internal cache, or multiple levels of internal cache. Depending on the specific implementation and requirements, one embodiment includes a combination of both internal and external caches. The register file 1306 is used to store different types of data in various registers, including integer registers, floating point registers, vector registers, banked registers, shadow registers, checkpoint registers, status registers, and instruction pointer registers.

执行单元1308也驻留于处理器1302中,执行单元1308包括用于执行整数和浮点运算的逻辑。在一实施例中,处理器1302包括用于存储微代码的微代码(微码)ROM,微代码在被执行时用于执行特定宏指令的算法或处理复杂情况。这里,微代码可能可被更新以实施处理器1302的逻辑错误/修复。对于一个实施例,执行单元1308包括用于处理分组指令集1309的逻辑。通过将分组指令集1309包括于通用处理器1302的指令集中,连同用于执行指令的相关联电路,可以使用通用处理器1302中的分组数据来执行由许多多媒体应用所使用的操作。由此,通过使用处理器的数据总线的完全宽度来对分组数据执行操作,可以更有效地加速和执行许多多媒体应用。这潜在地消除了跨处理器的数据总线传递较小数据单元以执行一个或多个操作的需求,一次传递一个数据元素。Also resident in the processor 1302 is an execution unit 1308, which includes logic for performing integer and floating point operations. In one embodiment, the processor 1302 includes a microcode (microcode) ROM for storing microcode, which, when executed, is used to execute the algorithm of a specific macroinstruction or handle complex situations. Here, the microcode may be updated to implement logic errors/fixes of the processor 1302. For one embodiment, the execution unit 1308 includes logic for handling a grouped instruction set 1309. By including the grouped instruction set 1309 in the instruction set of the general-purpose processor 1302, together with associated circuits for executing instructions, operations used by many multimedia applications can be performed using grouped data in the general-purpose processor 1302. Thus, by using the full width of the processor's data bus to perform operations on grouped data, many multimedia applications can be accelerated and executed more efficiently. This potentially eliminates the need to pass smaller data units across the processor's data bus to perform one or more operations, passing one data element at a time.

执行单元1308的替代实施例也可用于微控制器、嵌入式处理器、图形设备、DSP和其他类型的逻辑电路中。系统1300包括存储器1320。存储器1320包括动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪存设备或其他存储器设备。存储器1320存储由数据信号所表示的指令和/或数据,数据信号要由处理器1302执行。Alternative embodiments of execution unit 1308 may also be used in microcontrollers, embedded processors, graphics devices, DSPs, and other types of logic circuits. System 1300 includes memory 1320. Memory 1320 includes dynamic random access memory (DRAM) devices, static random access memory (SRAM) devices, flash memory devices, or other memory devices. Memory 1320 stores instructions and/or data represented by data signals to be executed by processor 1302.

注意到,本发明的上述特征或方面的任一个可用于图13所示的一个或多个互连上。例如,芯片上互连(ODI)(未示出)用于耦合处理器1302的内部单元,芯片上互连实现了上述本发明的一个或多个方面。或者,本发明与以下相关联:处理器总线1310(例如其他已知的高性能计算互连)、到存储器1320的高带宽存储器路径1318、到图形加速器1312的点对点链路(例如,外围组件互连快线(PCIe)兼容的构造)、控制器中枢互连1322、用于耦合其他所示组件的I/O或其他互连(例如,USB、PCI、PCIe)。这些组件的一些示例包括音频控制器1336、固件中枢(闪速BIOS)1328、无线收发机1326、数据存储器1324、包含用户输入和键盘接口1342的的传统I/O控制器1310、诸如通用串行总线(USB)的串行扩展端口1338、以及网络控制器1334。数据存储设备1324可包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备或其他大容量存储设备。Note that any of the above features or aspects of the present invention may be used on one or more interconnects shown in FIG. 13. For example, an on-chip interconnect (ODI) (not shown) is used to couple internal units of the processor 1302, and the on-chip interconnect implements one or more aspects of the present invention described above. Alternatively, the present invention is associated with the following: a processor bus 1310 (e.g., other known high-performance computing interconnects), a high-bandwidth memory path 1318 to a memory 1320, a point-to-point link to a graphics accelerator 1312 (e.g., a Peripheral Component Interconnect Express (PCIe) compatible fabric), a controller hub interconnect 1322, an I/O or other interconnect (e.g., USB, PCI, PCIe) for coupling other components shown. Some examples of these components include an audio controller 1336, a firmware hub (Flash BIOS) 1328, a wireless transceiver 1326, a data memory 1324, a conventional I/O controller 1310 including a user input and keyboard interface 1342, a serial expansion port 1338 such as a Universal Serial Bus (USB), and a network controller 1334. Data storage device 1324 may include a hard disk drive, a floppy disk drive, a CD-ROM device, a flash memory device, or other mass storage device.

现在参照图14,示出按照本发明一实施例的第二系统1400的框图。如图14所示,微处理器1400是点对点互连系统,并且包括经由点对点互连1450耦合的第一处理器1470和第二处理器1480。处理器1470和1480的每一个可以是处理器的某一版本。在一实施例中,1452和1454是串行的点对点相干互连(诸如高性能架构)的一部分。结果,本发明可以在QPI架构内实现。Referring now to FIG. 14 , a block diagram of a second system 1400 is shown in accordance with an embodiment of the present invention. As shown in FIG. 14 , microprocessor 1400 is a point-to-point interconnect system and includes a first processor 1470 and a second processor 1480 coupled via a point-to-point interconnect 1450. Each of processors 1470 and 1480 may be a version of a processor. In an embodiment, 1452 and 1454 are part of a serial point-to-point coherent interconnect (such as a high performance architecture). As a result, the present invention may be implemented within a QPI architecture.

尽管示出仅有两个处理器1470、1480,但应当理解,本发明的范围不限于此。在其他实施例中,一个或多个附加的处理器可存在于给定处理器中。Although only two processors 1470, 1480 are shown, it should be understood that the scope of the present invention is not limited in this regard. In other embodiments, one or more additional processors may be present in a given processor.

所示的处理器1470和1480分别包括集成的存储器控制器单元1472和1482。处理器1470还包括点对点(P-P)接口1476和1478作为其总线控制器单元的一部分;类似地,第二处理器1480包括P-P接口1486和1488。处理器1470、1480可以使用接口电路1478、1488经由点对点(P-P)接口1450交换信息。如图14所示,IMC 1472和1482将处理器耦合至相应的存储器,也就是存储器1432和存储器1434,存储器1432和存储器1434可以是本地附着于相应处理器的主存储器的部分。The processors 1470 and 1480 are shown including integrated memory controller units 1472 and 1482, respectively. The processor 1470 also includes point-to-point (P-P) interfaces 1476 and 1478 as part of its bus controller unit; similarly, the second processor 1480 includes P-P interfaces 1486 and 1488. The processors 1470, 1480 can exchange information via the point-to-point (P-P) interface 1450 using interface circuits 1478, 1488. As shown in FIG. 14, the IMCs 1472 and 1482 couple the processors to respective memories, namely, memory 1432 and memory 1434, which can be portions of main memory locally attached to the respective processors.

处理器1470、1480的每一个均使用点对点接口电路1476、1494、1486、1498经由个别的P-P接口1452、1454与芯片集1490交换信息。芯片集1490也根据高性能图形互连1439,经由接口电路1492与高性能图形电路1438交换信息。Each of the processors 1470, 1480 exchanges information with the chipset 1490 via respective P-P interfaces 1452, 1454 using point-to-point interface circuits 1476, 1494, 1486, 1498. The chipset 1490 also exchanges information with the high-performance graphics circuit 1438 via interface circuit 1492 according to a high-performance graphics interconnect 1439.

共享高速缓存(未示出)可以被包括于或任一处理器内或两个处理器外;仍经由P-P互连与处理器相连接,使得在处理器被置于低功率模式时,任一个或两个处理器的本地高速缓存信息可以被存储于共享高速缓存中。A shared cache (not shown) may be included within either processor or external to both processors; still connected to the processors via the P-P interconnect so that when the processors are placed in a low power mode, local cache information of either or both processors may be stored in the shared cache.

芯片集1490可以经由接口1496耦合至第一总线1416。在一实施例中,第一总线1416可以是外围组件互连(PCI)总线、或者诸如PCI Express(快速)总线这样的总线或者另一第三代I/O互连总线,然而本发明的范围不限于此。Chipset 1490 may be coupled to first bus 1416 via interface 1496. In one embodiment, first bus 1416 may be a peripheral component interconnect (PCI) bus, or a bus such as a PCI Express bus or another third generation I/O interconnect bus, although the scope of the present invention is not limited in this regard.

如图14所示,各种I/O设备1414耦合至第一总线1416,连同将第一总线1416耦合至第二总线1420的总线桥1418。在一实施例中,第二总线1420包括低引脚数(LPC)总线。各种设备耦合至第二总线1420,包括例如键盘和/或鼠标1422、通信设备1427以及诸如磁盘驱动器或其他大容量存储设备的存储单元1428,在一实施例中,存储单元通常包括指令/代码和数据1430。而且,所示音频I/O 1424耦合至第二总线1420。注意到其他架构也是可能的,其中所包括的组件和互连架构可以变化。例如,取代图14的点对点架构,系统可以实现多点总线或其他这样的架构。As shown in Figure 14, various I/O devices 1414 are coupled to the first bus 1416, together with a bus bridge 1418 that couples the first bus 1416 to the second bus 1420. In one embodiment, the second bus 1420 includes a low pin count (LPC) bus. Various devices are coupled to the second bus 1420, including, for example, a keyboard and/or mouse 1422, a communication device 1427, and a storage unit 1428 such as a disk drive or other mass storage device, which, in one embodiment, typically includes instructions/codes and data 1430. Moreover, the audio I/O 1424 is coupled to the second bus 1420. It is noted that other architectures are also possible, wherein the components and interconnection architectures included can vary. For example, instead of the point-to-point architecture of Figure 14, the system can implement a multi-point bus or other such architectures.

接下来转至图15,描述了按照本发明的芯片上系统(SOC)设计的实施例。作为具体的说明性示例,SOC 1500被包括于用户设备(UE)中。在一实施例中,UE是指要由终端用户用来传送的任何设备,诸如手持电话、智能电话、平板电脑、超薄笔记本电脑、具有宽带适配器的笔记本电脑或者任何其他类似的通信设备。通常UE连至基站或节点,基站或节点可能从性质上对应于GSM网络中的移动站(MS)。Turning next to FIG. 15 , an embodiment of a system on chip (SOC) design according to the present invention is described. As a specific illustrative example, SOC 1500 is included in a user equipment (UE). In one embodiment, UE refers to any device to be used by an end user for transmission, such as a handheld phone, a smart phone, a tablet computer, an ultra-thin notebook computer, a notebook computer with a broadband adapter, or any other similar communication device. Typically, a UE is connected to a base station or node, which may correspond in nature to a mobile station (MS) in a GSM network.

这里,SOC 1500包括2个核――1506和1507。类似于以上的讨论,核1506和1507可以符合指令集架构,诸如基于架构核TM的处理器、高级微设备公司(AMD)的处理器、基于MIPS的处理器、基于ARM的处理器或者其消费者以及它们的许可证或采用者。核1506和1507耦合至高速缓存控件1508,高速缓存控件1508与总线接口单元1509和L2高速缓存1511相关联以便与系统1500的其他部分通信。互连1510包括芯片上互连,诸如IOSF、AMBA或以上讨论的其他互连,芯片上互连可能实现此处描述的一个或多个方面。Here, SOC 1500 includes two cores - 1506 and 1507. Similar to the above discussion, cores 1506 and 1507 may conform to an instruction set architecture, such as based on The processor of the architecture core TM , the processor of Advanced Micro Devices (AMD), the processor based on MIPS, the processor based on ARM, or its consumer and its licensee or adopter. The cores 1506 and 1507 are coupled to the cache control 1508, which is associated with the bus interface unit 1509 and the L2 cache 1511 for communicating with other parts of the system 1500. The interconnect 1510 includes an on-chip interconnect, such as IOSF, AMBA or other interconnects discussed above, which may implement one or more aspects described herein.

互连1510向其他组件提供通信信道,其他组件诸如订户身份模块(SIM)1530、SDRAM控制器1540、闪存控制器1545、外围控件1550、GPU 1515等等,其中,订户身份模块(SIM)1530用于与SIM卡、引导rom 1535相接口,以保留由核1506和1507执行以初始化和引导SOC 1500的引导代码;SDRAM控制器1540用于与外部存储器(例如,DRAM 1560)相接口;闪存控制器1545用于与非易失性存储器(例如,闪存1565)相接口;外围控件1550(例如,串行外围接口)用于与外围设备、视频编解码器1520和视频接口1525相接口以显示和接收输入(例如,触控输入);GPU 1515用于执行图形相关的计算。任何这些接口可以结合这里所述的本发明的各方面。The interconnect 1510 provides a communication channel to other components, such as a subscriber identity module (SIM) 1530, an SDRAM controller 1540, a flash controller 1545, a peripheral control 1550, a GPU 1515, etc., wherein the subscriber identity module (SIM) 1530 is used to interface with a SIM card, a boot rom 1535 to retain the boot code executed by the cores 1506 and 1507 to initialize and boot the SOC 1500; the SDRAM controller 1540 is used to interface with an external memory (e.g., DRAM 1560); the flash controller 1545 is used to interface with a non-volatile memory (e.g., flash memory 1565); the peripheral control 1550 (e.g., a serial peripheral interface) is used to interface with peripheral devices, a video codec 1520 and a video interface 1525 to display and receive input (e.g., touch input); and the GPU 1515 is used to perform graphics-related calculations. Any of these interfaces can be combined with the various aspects of the invention described herein.

此外,系统示出用于通信的外围设备,诸如蓝牙模块1570、3G调制解调器1575、GPS1585及WiFi 1585。注意到如上所述,UE包括用于通信的无线电。结果,这些外围设备通信模块不是全部需要的。然而,在UE中,要包括用于外部通信的某一形式的无线电。In addition, the system shows peripherals for communication, such as Bluetooth module 1570, 3G modem 1575, GPS 1585 and WiFi 1585. Note that as mentioned above, the UE includes a radio for communication. As a result, these peripheral communication modules are not all required. However, in the UE, some form of radio for external communication is included.

尽管已经相对于有限数量的实施例描述了本发明,但是本领域的技术人员会理解从中得出的许多修改和变化。所附权利要求书意图覆盖所有这些修改和变化,它们落在本发明的实际精神和范围内。While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. The appended claims are intended to cover all such modifications and variations that fall within the true spirit and scope of the present invention.

设计可以经历各种阶段,从创建到仿真到制造。表示设计的数据可以以许多方式来表示该设计。首先,如仿真中有用的,硬件可以用硬件描述语言或另一功能描述语言来表示。此外,可以在设计过程的某些阶段产生具有逻辑和/或晶体管门的电路级模型。而且,许多设计在某一阶段达到了表示各个设备在硬件模型中的物理位置的数据级别。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是指定各个特征在用于生产集成电路的掩膜的不同掩膜层上存在或不存在的数据。在设计的任何表示中,数据可以被存储于任何形式的机器可读介质中。存储器或者诸如磁盘的磁性或光学存储器可以是机器可读介质,机器可读介质用于存储经由光波或电波发射的信息,光波或电波被调制或以其他方式生成以发射这样的信息。当发射指示或携带代码或设计的电载波时,就电信号的复制、缓冲或重传的方面来说,制作新的副本。由此,通信提供商或网络提供商可以至少暂时地在有形的机器可读介质上存储体现本发明实施例的技术的项目,所述项目诸如被编码为载波的信息。A design may go through various stages, from creation to simulation to manufacturing. Data representing a design may represent the design in many ways. First, as useful in simulation, hardware may be represented by a hardware description language or another functional description language. In addition, a circuit-level model with logic and/or transistor gates may be generated at certain stages of the design process. Moreover, many designs reach a data level representing the physical location of each device in the hardware model at a certain stage. In the case of using conventional semiconductor manufacturing technology, the data representing the hardware model may be data specifying the presence or absence of each feature on different mask layers of a mask used to produce an integrated circuit. In any representation of a design, the data may be stored in any form of machine-readable medium. A memory or a magnetic or optical storage such as a disk may be a machine-readable medium for storing information transmitted via light waves or electric waves, which are modulated or otherwise generated to transmit such information. When an electric carrier wave indicating or carrying a code or design is transmitted, a new copy is made in terms of duplication, buffering or retransmission of the electric signal. Thus, a communication provider or a network provider may store items embodying the technology of an embodiment of the present invention on a tangible machine-readable medium, such as information encoded as a carrier wave, at least temporarily.

这里使用的模块是指硬件、软件和/或固件的任何组合。作为一示例,模块包括与非暂时性介质相关联的硬件(诸如微控制器),用于存储适合由微控制器执行的代码。因此,在一实施例中,对模块的引用是引用硬件,硬件被专门配置为认出和/或执行要被保持于非暂时性介质上的代码。而且,在另一实施例中,模块的使用是指包括代码的非暂时性介质,代码专门适用于由微处理器执行以便执行预定的操作。在还有另一实施例中,如可推断的,术语模块(在该示例中)是指微处理器和非暂时性介质的组合。通常,图示为分开的模块边界通常会变化并且可能重叠。例如,第一和第二模块可以共享硬件、软件、固件或它们的组合,而可能保留某些独立的硬件、软件或固件。在一实施例中,术语逻辑的使用包括诸如晶体管、寄存器等硬件,或者诸如可编程逻辑器件等其他硬件。As used herein, a module refers to any combination of hardware, software, and/or firmware. As an example, a module includes hardware (such as a microcontroller) associated with a non-transitory medium for storing code suitable for execution by the microcontroller. Therefore, in one embodiment, a reference to a module refers to hardware that is specifically configured to recognize and/or execute code to be retained on a non-transitory medium. Moreover, in another embodiment, the use of a module refers to a non-transitory medium including code that is specifically adapted to be executed by a microprocessor in order to perform a predetermined operation. In yet another embodiment, as can be inferred, the term module (in this example) refers to a combination of a microprocessor and a non-transitory medium. Typically, the boundaries of modules illustrated as separate typically vary and may overlap. For example, a first and a second module may share hardware, software, firmware, or a combination thereof, while possibly retaining some independent hardware, software, or firmware. In one embodiment, the use of the term logic includes hardware such as transistors, registers, or other hardware such as programmable logic devices.

在一实施例中,短语“被配置为”的使用是指对装置、硬件、逻辑或元件进行排列、置于一起、制造、承诺销售、进口和/或设计以执行指定的或确定的任务。在该示例中,如果装置或其元件被设计、耦合和/或互连以执行指定的任务,则装置或元件即使未在运行也仍然“被配置成”执行所述指定的任务。作为纯说明性的示例,逻辑门可以在运算期间提供0或1。但是逻辑门“被配置成”向时钟提供使能信号不包括可能提供1或0的每个可能的逻辑门。相反,逻辑门是以在操作期间1或0输出用于启用时钟的方式耦合的门。再次注意到,术语“被配置成”的使用不要求操作,而是聚焦于装置、硬件和/或元件的潜伏状态,其中在潜伏状态中,装置、硬件和/或元件被设计成在装置、硬件和/或元件正在操作时执行特定的任务。In one embodiment, the use of the phrase "configured to" refers to arranging, putting together, manufacturing, promising for sale, importing and/or designing a device, hardware, logic or element to perform a specified or determined task. In this example, if a device or its element is designed, coupled and/or interconnected to perform a specified task, the device or element is still "configured to" perform the specified task even if it is not in operation. As a purely illustrative example, a logic gate can provide 0 or 1 during operation. But a logic gate "configured to" provide an enable signal to a clock does not include every possible logic gate that may provide 1 or 0. Instead, a logic gate is a gate coupled in a manner that a 1 or 0 output is used to enable a clock during operation. Note again that the use of the term "configured to" does not require operation, but focuses on the latent state of the device, hardware and/or element, where in the latent state, the device, hardware and/or element is designed to perform a specific task when the device, hardware and/or element is operating.

而且,在一实施例中,短语“用于”、“能够/以”以及或者“可操作用于”的使用是指装置、硬件和/或元件以能以指定方式使用装置、硬件和/或元件的方式被设计。注意到以上,在一实施例中,“用于”、“能够”或“可操作用于”的使用是指装置、硬件和/或元件的潜伏状态,其中装置、硬件和/或元件不在操作,但是以能以指定方式使用装置的方式被设计。Furthermore, in one embodiment, the use of the phrases "for", "can/with", and or "operable for" refers to a device, hardware, and/or element being designed in a manner that enables the device, hardware, and/or element to be used in a specified manner. Note that in one embodiment, the use of "for", "can", or "operable for" refers to a latent state of a device, hardware, and/or element, wherein the device, hardware, and/or element is not in operation, but is designed in a manner that enables the device to be used in a specified manner.

如此处使用的,值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。通常,逻辑电平、逻辑值或逻辑的值的使用也被称为1和0,仅表示二进制逻辑状态。例如,1是指高逻辑电平,0是指低逻辑电平。在一实施例中,存储单元(诸如晶体管或闪存单元)可能能够保持单个逻辑值或多个逻辑值。然而,已经使用了计算机系统中值的其他表示。例如,十进制数10也可以被表示为二进制值1010和十六进制字母A。因此,值包括能被保持在计算机系统中的信息的任何表示。As used herein, a value includes any known representation of a number, state, logic state, or binary logic state. Typically, the use of logic levels, logic values, or logical values, also referred to as 1 and 0, simply represents a binary logic state. For example, 1 refers to a high logic level and 0 refers to a low logic level. In one embodiment, a storage unit (such as a transistor or a flash memory cell) may be able to hold a single logic value or multiple logic values. However, other representations of values in a computer system have been used. For example, the decimal number 10 may also be represented as the binary value 1010 and the hexadecimal letter A. Therefore, a value includes any representation of information that can be held in a computer system.

此外,状态可由值或值的部分表示。作为一示例,第一值(诸如逻辑1)可以表示缺省或初始状态,而第二值(诸如逻辑0)可以表示非缺省状态。此外,在一实施例中,术语重置和设置分别指缺省的和更新的值或状态。例如,缺省的值可能包括高逻辑值,即重置,而更新的值可能包括低逻辑值,即设置。注意到,可以使用值的任何组合来表示任何数量的状态。In addition, a state may be represented by a value or a portion of a value. As an example, a first value (such as a logical 1) may represent a default or initial state, while a second value (such as a logical 0) may represent a non-default state. In addition, in one embodiment, the terms reset and set refer to default and updated values or states, respectively. For example, a default value may include a high logic value, i.e., reset, and an updated value may include a low logic value, i.e., set. Note that any combination of values may be used to represent any number of states.

以上提出的方法、硬件、软件、固件或代码的实施例可以经由机器可存取、机器可读、计算机可存取或计算机可读介质上存储的指令或代码来实现,指令或代码可由处理元件执行。非暂时性的机器可存取/可读介质包括以可由机器(诸如计算机或电子系统)读取的形式提供(即,存储和/或发射)信息的任何机制。例如,非暂时性的机器可存取介质包括随机存取存储器(RAM)(诸如静态RAM(SRAM)或动态RAM(DRAM));ROM;磁性或光学存储介质;闪存设备;电子存储设备;光学存储设备;声学存储设备;其他形式的用于保持从瞬时(传播的)信号接收到的信息的存储设备等等,这些其他存储设备区别于可以接收信息的非暂时性介质。Embodiments of the methods, hardware, software, firmware or code presented above may be implemented via instructions or code stored on a machine-accessible, machine-readable, computer-accessible or computer-readable medium, which may be executed by a processing element. Non-transitory machine-accessible/readable media include any mechanism that provides (i.e., stores and/or transmits) information in a form that can be read by a machine (such as a computer or electronic system). For example, non-transitory machine-accessible media include random access memory (RAM) (such as static RAM (SRAM) or dynamic RAM (DRAM)); ROM; magnetic or optical storage media; flash memory devices; electronic storage devices; optical storage devices; acoustic storage devices; other forms of storage devices for holding information received from transient (propagating) signals, etc., which other storage devices are distinguished from non-transitory media that can receive information.

用于对逻辑编程以执行本发明多个实施例的指令可以被存储在系统中的存储器内,诸如DRAM、高速缓存、闪存或其他存储器。而且,指令可以经由网络或通过其他计算机可读媒介来分布。由此,机器可读介质可以包括用于以机器(例如计算机)可读的形式存储或发射信息的任何机制,包括但不限于:软盘、光盘、压缩盘、只读存储器(CD-ROM)和磁光盘、只读存储器(ROM)随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁或光卡、闪存或者有形的、机器可读存储器,这些存储器用于经由电学、光学、声学或其他形式的传播信号(例如,载波、红外信号、数字信号等)。因而,计算机可读介质包括适用于以机器(例如,计算机)可读形式存储或发射电子指令或信息的任何类型的有形机器可读介质。Instructions for programming logic to perform multiple embodiments of the present invention may be stored in a memory in the system, such as a DRAM, cache, flash memory, or other memory. Moreover, instructions may be distributed via a network or by other computer-readable media. Thus, a machine-readable medium may include any mechanism for storing or transmitting information in a machine (e.g., computer) readable form, including but not limited to: a floppy disk, an optical disk, a compressed disk, a read-only memory (CD-ROM) and a magneto-optical disk, a read-only memory (ROM) random access memory (RAM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a magnetic or optical card, a flash memory, or a tangible, machine-readable memory for transmitting signals (e.g., carrier waves, infrared signals, digital signals, etc.) via electrical, optical, acoustic, or other forms. Thus, a computer-readable medium includes any type of tangible machine-readable medium suitable for storing or transmitting electronic instructions or information in a machine (e.g., computer) readable form.

以下示例关于按照本说明书的实施例。一个或多个实施例提供了装置、系统、机器可读存储器、机器可读介质和方法来初始化链路,其中,链路要包括多个道,发射机和接收机要与多个巷道中的每个巷道耦合,链路的重新初始化要包括在每一巷道上发射预定义的序列,其中重新初始化在不终止链路的情况下提供。The following examples relate to embodiments according to the present specification. One or more embodiments provide apparatus, systems, machine-readable storage, machine-readable media, and methods to initialize a link, wherein the link is to include a plurality of lanes, a transmitter and a receiver are to be coupled to each lane of the plurality of lanes, reinitialization of the link is to include transmitting a predefined sequence on each lane, wherein reinitialization is provided without terminating the link.

在至少一个示例中,预定义的序列要从发射机被发送至接收机,接收机要将预定义的序列重复发送到发射机。In at least one example, a predefined sequence is to be sent from a transmitter to a receiver, and the receiver is to repeatedly send the predefined sequence to the transmitter.

在至少一个示例中,序列包括电空闲退出有序集(EIEOS)。In at least one example, the sequence includes an Electrical Idle Exit Ordered Set (EIEOS).

在至少一个示例中,序列还包括训练序列的多个实例。In at least one example, the sequence also includes multiple instances of a training sequence.

在至少一个示例中,要重复的EIEOS是根据最小频率的序列。In at least one example, the EIEOS to be repeated is in a sequence according to a minimum frequency.

在至少一个示例中,重复序列直到链路被初始化。In at least one example, the sequence is repeated until the link is initialized.

一个或多个示例还可以提供验证预定义序列的接收实例以检测链路上的代理。One or more examples may also provide for verifying received instances of a predefined sequence to detect a proxy on a link.

在至少一个示例中,链路包括差分串行数据链路。In at least one example, the link comprises a differential serial data link.

在至少一个示例中,序列在重置状态期间被发送,以便发信号通知自重置状态退出。In at least one example, the sequence is sent during a reset state to signal an exit from the reset state.

一个或多个实施例可以提供装置、系统、机器可读存储器、机器可读介质和方法以在差分串行数据链路的多个道上将预定义序列发射至连接至该数据链路的另一实体、自该另一实体接收预定义序列的确认、以及使用该预定义序列来实施数据链路的初始化。One or more embodiments may provide an apparatus, a system, a machine-readable memory, a machine-readable medium, and a method for transmitting a predefined sequence over multiple lanes of a differential serial data link to another entity connected to the data link, receiving an acknowledgement of the predefined sequence from the other entity, and implementing initialization of the data link using the predefined sequence.

在至少一个实施例中,飞片可以通过数据链路自第一设备被发送至第二设备。第一第二设备可包括微处理器、图形加速器及其他设备。In at least one embodiment, the flyer can be sent from the first device to the second device via a data link. The first and second devices may include microprocessors, graphics accelerators, and other devices.

以下示例关于按照该说明书的实施例。一个或多个实施例可以提供装置、系统、机器可读存储器、机器可读介质和方法以在包括多个巷道的链路上在每一个巷道上检测预定义序列,并且基于预定义序列的检测来确定另一代理的状态。The following examples pertain to embodiments in accordance with this specification. One or more embodiments may provide apparatus, systems, machine-readable storage, machine-readable media, and methods to detect a predefined sequence on each lane on a link comprising multiple lanes, and determine a state of another agent based on the detection of the predefined sequence.

一个或多个示例还可将预定义序列发回音至该另一代理。One or more examples may also echo the predefined sequence to the other agent.

在至少一个示例中,序列包括EIEOS,预定义序列的检测包括序列的验证。In at least one example, the sequence includes an EIEOS and the detection of the predefined sequence includes verification of the sequence.

在至少一个示例中,序列的验证至少部分基于标识该EIEOS根据预定义的频率被重复。In at least one example, verification of the sequence is based at least in part on identifying that the EIEOS is repeated according to a predefined frequency.

在至少一个示例中,序列在整个特定链路初始化状态时被重复。In at least one example, the sequence is repeated throughout a particular link initialization state.

在至少一个示例中,序列指示初始化状态。In at least one example, the sequence indicates an initialization state.

在至少一个示例中,初始化状态被包括在链路的重新初始化中。In at least one example, the initialization state is included in a reinitialization of the link.

在至少一个示例中,序列在重置状态期间被检测,并且指示自重置状态退出。In at least one example, the sequence is detected during a reset state and indicates an exit from the reset state.

一个或多个实施例可以提供装置、系统、机器可读存储器、机器可读介质和方法以监视链路初始化期间的循环,并且响应于确定初始化期间的不成功循环而使链路初始化挂起。One or more embodiments may provide apparatus, systems, machine-readable storage, machine-readable media, and methods to monitor loops during link initialization and suspend link initialization in response to determining an unsuccessful loop during initialization.

一个或多个示例还可在初始化期间在状态机内维持循环的计数。One or more examples may also maintain a count of loops within the state machine during initialization.

在至少一个示例中,计数要被维持于使用链路通信连接的每个代理上。In at least one example, a count is maintained at each agent communicating using the link.

在至少一个示例中,计数要在链路成功初始化时被重置。In at least one example, the count is reset when the link is successfully initialized.

在至少一个示例中,链路的成功初始化包括进入链路发射状态。In at least one example, successful initialization of the link includes entering a link transmit state.

在至少一个示例中,循环包括重新进入链路训练状态机的重置状态。In at least one example, looping includes re-entering a reset state of the link training state machine.

在至少一个示例中,链路的初始化在链路训练状态机的重置状态中被挂起。In at least one example, initialization of the link is suspended in a reset state of the link training state machine.

在至少一个示例中,链路的被挂起初始化要响应于来自控制器的命令而重启。In at least one example, the suspended initialization of the link is to be restarted in response to a command from the controller.

在至少一个示例中,链路具有20个巷道的链路宽度。In at least one example, the link has a link width of 20 lanes.

一个或多个实施例可以提供装置、系统、机器可读存储器、机器可读介质和方法以确定是否结合特定初始化状态而执行一个或多个初始化任务;以及基于确定是否执行初始化任务,应用短定时器以自特定状态转换。One or more embodiments may provide an apparatus, a system, a machine-readable storage, a machine-readable medium, and a method to determine whether to perform one or more initialization tasks in conjunction with a specific initialization state; and based on determining whether to perform the initialization task, apply a short timer to transition from a specific state.

一个或多个示例还可以应用第二短定时器以自第二初始化状态转换,第二短定时器的持续期不同于第一短定时器的持续期。One or more examples may also apply a second short timer to transition from the second initialization state, the duration of the second short timer being different from the duration of the first short timer.

在至少一个示例中,短定时器基于确定不执行初始化任务而被应用。In at least one example, a short timer is applied based on a determination not to perform the initialization task.

在至少一个示例中,特定初始化状态的长定时器基于确定执行初始化任务而被应用。In at least one example, a long timer for a particular initialization state is applied based on a determination to perform an initialization task.

在至少一个示例中,确定是基于短定时器被启用的指示。In at least one example, the determination is based on an indication that a short timer is enabled.

在至少一个示例中,短定时器由基于软件的控制器启用。In at least one example, the short timer is enabled by a software-based controller.

在至少一个示例中,短定时器基于确定与初始化任务相关联的配置已完成而被启用。In at least one example, the short timer is enabled based on determining that configuration associated with the initialization task has completed.

在至少一个示例中,链路包括差分串行数据链路。In at least one example, the link comprises a differential serial data link.

一个或多个实施例可以提供装置、系统、机器可读存储器、机器可读介质和方法以在第一模式中以第一速度发射飞片、以及在第二模式中以第二速度发射飞片,其中锁相环(PLL)速度在第一模式和第二模式中相同。One or more embodiments may provide an apparatus, system, machine-readable storage, machine-readable medium, and method to launch a flyer at a first speed in a first mode and launch a flyer at a second speed in a second mode, wherein a phase locked loop (PLL) speed is the same in the first mode and the second mode.

在至少一个示例中,第一速度包括操作速度,第二速度包括慢速度。In at least one example, the first speed comprises an operating speed and the second speed comprises a slow speed.

在至少一个示例中,慢速度要由操作速度仿真。In at least one example, the slow speed is to be emulated by the operating speed.

在至少一个示例中,仿真慢速度包括以操作速度发送一系列位以仿真慢模式中的位。In at least one example, emulating the slow speed includes sending a series of bits at the operating speed to emulate bits in a slow mode.

在至少一个示例中,物理层逻辑还用于从第一速度转换为第二速度。In at least one example, the physical layer logic is further used to convert from the first speed to the second speed.

在至少一个示例中,转换是基于至少一个部分基于软件的控制器的请求。In at least one example, the transition is based on a request of at least one partially software-based controller.

一个或多个实施例可以提供装置、系统、机器可读存储器、机器可读介质和方法以:确定第一设备的操作速度,第一设备要在链路上被连至第二设备;确定第二设备的操作速度;以及确定要由第一和第二设备在数据在链路上的传输期间应用的常用的慢速度。One or more embodiments may provide apparatus, systems, machine-readable storage, machine-readable media, and methods to: determine an operating speed of a first device to be connected to a second device on a link; determine an operating speed of the second device; and determine a common slow speed to be applied by the first and second devices during transmission of data on the link.

在至少一个示例中,常用的慢速度在链路初始化期间确定。In at least one example, the commonly used slow speed is determined during link initialization.

在至少一个示例中,第一设备的操作速度不同于第二设备的操作速度,链路的初始化还包括确定常用的操作速度。In at least one example, an operating speed of the first device is different than an operating speed of the second device, and initializing the link further includes determining a common operating speed.

在至少一个示例中,常用的操作速度是基于第一和第二设备的操作速度中的较慢者。In at least one example, the common operating speed is based on the slower of the operating speeds of the first and second devices.

在至少一个示例中,确定常用的慢模式包括:确定要应用于第一设备的操作速度以实现常用慢速度的第一比率;以及确定要应用于第二设备的操作速度以实现常用慢速度的第二比率。In at least one example, determining the commonly used slow mode includes determining a first ratio of operating speeds to be applied to the first device to achieve the commonly used slow speed; and determining a second ratio of operating speeds to be applied to the second device to achieve the commonly used slow speed.

在至少一个示例中,常用慢速度要由操作速度来仿真。In at least one example, a commonly used slow speed is to be emulated by an operating speed.

在至少一个示例中,仿真慢速度包括以相应的操作速度来发送一系列位以便仿真常用慢模式中的位。In at least one example, emulating the slow speed includes sending a series of bits at the corresponding operating speed to emulate bits in a conventional slow mode.

一个或多个示例还可以提供被配置成耦合至链路的物理层(PHY),该链路包括第一数量个巷道,其中PHY包括同步(sync)计数器,且其中PHY用于发射电空闲退出有序集(EIEOS),电空闲退出有序集(EIEOS)与和训练序列相关联的同步计数器对齐。One or more examples may also provide a physical layer (PHY) configured to be coupled to a link, the link comprising a first number of lanes, wherein the PHY comprises a synchronization (sync) counter, and wherein the PHY is used to transmit an electrical idle exit ordered set (EIEOS), the electrical idle exit ordered set (EIEOS) being aligned with the synchronization counter associated with the training sequence.

在至少一个示例中,来自同步计数器的同步计数器值不在每个训练序列期间被交换。In at least one example, synchronization counter values from the synchronization counter are not swapped during each training sequence.

一个或多个示例还可以提供被配置成耦合至链路的物理层(PHY),该链路包括第一数量个巷道,其中PHY包括同步(sync)计数器,且其中PHY用于发射电空闲退出有序集(EIEOS),电空闲退出有序集(EIEOS)与和训练序列相关联的同步计数器对齐。One or more examples may also provide a physical layer (PHY) configured to be coupled to a link, the link comprising a first number of lanes, wherein the PHY comprises a synchronization (sync) counter, and wherein the PHY is used to transmit an electrical idle exit ordered set (EIEOS), the electrical idle exit ordered set (EIEOS) being aligned with the synchronization counter associated with the training sequence.

在至少一个示例中,来自同步计数器的同步计数器值在每个训练序列期间不被交换。In at least one example, synchronization counter values from the synchronization counter are not swapped during each training sequence.

在至少一个示例中,与同步计数器的EIEOS对齐要充当一代理,该代理用于在每个训练序列期间交换来自同步计数器的同步计数器值。In at least one example, the EIEOS alignment with the synchronization counter is to act as a proxy for exchanging the synchronization counter value from the synchronization counter during each training sequence.

一个或多个示例还可以提供被配置成耦合至链路的物理层(PHY),PHY用于包括软件可修改寄存器和PHY状态机,软件可修改寄存器包括控制字段,PHY状态机用于在多个状态间转换,其中PHY状态机用于基于寄存器的控制字段的第一值来保持第一状态和第二状态之间的转换。One or more examples may also provide a physical layer (PHY) configured to be coupled to a link, the PHY being configured to include a software modifiable register and a PHY state machine, the software modifiable register including a control field, the PHY state machine being configured to transition between multiple states, wherein the PHY state machine is configured to maintain a transition between a first state and a second state based on a first value of the control field of the register.

在至少一个示例中,PHY状态机用于响应于软件将寄存器的控制字段更新至第二值而在第一状态和第二状态之间转换。In at least one example, the PHY state machine is to transition between the first state and the second state in response to software updating a control field of a register to a second value.

一个或多个示例还可以提供被配置成耦合至链路的物理层(PHY),PHY用于包括PHY状态机以在多个状态之间转换,其中PHY状态机能够基于握手事件自第一状态转换至第二状态、以及基于主定时器事件将PHY自第三状态转换至第四状态。One or more examples may also provide a physical layer (PHY) configured to be coupled to a link, the PHY being configured to include a PHY state machine to transition between multiple states, wherein the PHY state machine is capable of transitioning from a first state to a second state based on a handshake event, and transitioning the PHY from a third state to a fourth state based on a master timer event.

在至少一个示例中,PHY状态机能够基于主定时器事件结合次定时器事件而将PHY自第五状态转换至第六状态。In at least one example, the PHY state machine can transition the PHY from the fifth state to the sixth state based on a primary timer event in conjunction with a secondary timer event.

一个或多个示例还可以提供被配置成耦合至链路的物理层(PHY),该链路包括第一数量个巷道,其中PHY用于以第一速度发射飞片、以及以第二速度发射飞片,且其中锁相环(PLL)速度在快模式和慢模式中相同。One or more examples may also provide a physical layer (PHY) configured to be coupled to a link, the link comprising a first number of lanes, wherein the PHY is used to transmit flyers at a first speed and to transmit flyers at a second speed, and wherein a phase-locked loop (PLL) speed is the same in a fast mode and a slow mode.

在至少一个示例中,第一速度是慢速度,第二速度是快速度。In at least one example, the first speed is a slow speed and the second speed is a fast speed.

在至少一个示例中,PHY用于以慢速度发射飞片包括:在不改变PLL速度的情况下,PHY以快速度连续多次发射飞片的位,以仿真慢速度下的该位。In at least one example, the PHY for transmitting the flying chip at the slow speed includes: the PHY transmitting the bit of the flying chip at the fast speed multiple times in succession without changing the PLL speed to emulate the bit at the slow speed.

一个或多个示例还可以提供被配置成耦合至链路的物理层(PHY),该链路包括第一数量个巷道,其中PHY用于在慢模式中以慢速度发射飞片、以及在快模式中以快速度发射飞片,快速度大于2倍的慢速度,且其中锁相环(PLL)速度在快模式和慢模式中相同。One or more examples may also provide a physical layer (PHY) configured to be coupled to a link, the link comprising a first number of lanes, wherein the PHY is used to transmit flying chips at a slow speed in a slow mode, and to transmit flying chips at a fast speed in a fast mode, the fast speed being greater than 2 times the slow speed, and wherein a phase-locked loop (PLL) speed is the same in the fast mode and the slow mode.

本说明书中通篇引用“一个实施例”或“一实施例”意指结合本发明至少一个实施例中所包括的实施例所描述的特定的特征、结构或特性。因此,本说明书中各处出现的短语“在一个实施例中”或“在一实施例中”不必要全部指同一个实施例。而且,特定的特征、结构或特性可以以任何适当的方式被组合在一个或多个实施例中。References throughout this specification to "one embodiment" or "an embodiment" refer to a particular feature, structure, or characteristic described in conjunction with an embodiment included in at least one embodiment of the present invention. Therefore, the phrases "in one embodiment" or "in an embodiment" appearing throughout this specification do not necessarily all refer to the same embodiment. Moreover, particular features, structures, or characteristics may be combined in any appropriate manner in one or more embodiments.

在以上说明书中,已经参照具体的示例性实施例给出了详细描述。然而显而易见的是,可以对其作出各种修改和变化,而不背离所附权利要求书中所提出的本发明的更宽的精神和范围。因此,说明书和服务被视为是示意性的,而不是限制性的。而且,实施例及其他示例性语言的以上使用不必要是指相同的实施例或相同的示例,而可以指不同的和相异的实施例,以及可能相同的实施例。In the above description, detailed description has been given with reference to specific exemplary embodiments. However, it is apparent that various modifications and variations may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. Therefore, the description and description are to be regarded as illustrative rather than restrictive. Moreover, the above use of embodiments and other exemplary language does not necessarily refer to the same embodiment or the same example, but may refer to different and distinct embodiments, as well as possibly the same embodiment.

Claims (20)

1. An apparatus for computing, comprising:
A processor, the processor comprising:
a physical layer circuit, the physical layer circuit to:
Transmitting a first training sequence in training of a physical layer of a link, wherein the first training sequence comprises a repetition sequence, the first training sequence comprises a specific pattern for mimicking a low speed clock, the first training sequence is for repeating a first frequency, and the first training sequence is defined to identify a first training task in the training, wherein,
The first training task comprises a device detection task;
a second training sequence is sent in the training of the physical layer of the link,
Wherein the second training sequence is different from the first training sequence, the second training sequence comprises a repeating sequence, the second training sequence comprises the particular pattern, the second training sequence repeats at a second frequency that is slower than the first frequency, and the second training sequence is defined to identify a second training task in the training, wherein,
The second training task includes determining a lane polarity on the link,
Wherein the particular pattern comprises hexadecimal values.
2. The apparatus of claim 1, wherein the physical layer circuitry is further to transmit a synchronization signal, wherein the link is to be initiated based at least in part on the synchronization signal.
3. The apparatus of claim 1, wherein the hexadecimal value comprises xFF00.
4. The apparatus of claim 1, wherein at least one of the first training sequence or the second training sequence is unscrambled.
5. The apparatus of claim 4, wherein both the first training sequence and the second training sequence are unscrambled.
6. The apparatus of claim 1, wherein a link layer circuit is to generate a flit and cause the flit to be transmitted on the link.
7. The apparatus of claim 6, wherein one or more of the flyers comprises a plurality of slots.
8. The apparatus of claim 1, wherein the layered protocol comprises a coherent interconnect protocol.
9. The apparatus of claim 1, wherein the link comprises at least 8 lanes, and the first training sequence and the second training sequence are transmitted on the at least 8 lanes.
10. The apparatus of claim 1, wherein the first training sequence and the second training sequence are transmitted in association with a reset of the link.
11. The apparatus of claim 1, further comprising:
a link layer circuit for implementing at least part of a link layer of the link; and
Protocol layer logic to implement at least part of a protocol layer of the link.
12. An apparatus for computing, comprising:
physical layer circuitry to implement at least part of a physical layer of a layered protocol;
A link layer circuit for implementing at least part of a link layer of the layered protocol;
Protocol layer circuitry for implementing at least part of a protocol layer of the layered protocol,
Wherein the physical layer circuit is configured to:
Receiving a first training sequence in training of a link, wherein the first training sequence comprises a repeating sequence, the first training sequence comprises a specific pattern for mimicking a low speed clock, the first training sequence is repeated at a first frequency, and the first training sequence is defined to identify a first training task in the training, wherein the first training task comprises a device detection task; and
Receiving a second training sequence in the training of the physical layer of the link, wherein the second training sequence is different from the first training sequence, the second training sequence comprises a repeating sequence, the second training sequence comprises the particular pattern, the second training sequence repeats at a second frequency that is slower than the first frequency, and the second training sequence is defined to identify a second training task in the training, wherein the second training task comprises determining a lane polarity on the link;
wherein the link layer circuitry is to generate and cause the flits to be transmitted over the link, an
Wherein the particular pattern comprises hexadecimal values.
13. The apparatus of claim 12, wherein the physical layer circuitry is further to transmit an instance of the first training sequence to another device, and the first training sequence is received from the other device in response to the transmission of the instance of the first training sequence.
14. The apparatus of claim 12, wherein the physical layer circuitry is further to transmit an instance of the second training sequence to another device, and the second training sequence is received from the other device in response to the transmission of the instance of the second training sequence.
15. The apparatus of claim 12, wherein the physical layer circuitry is further to receive a synchronization signal, wherein the link is to be initiated based at least in part on the synchronization signal.
16. The apparatus of claim 12, wherein the hexadecimal value comprises xFF00.
17. The apparatus of claim 12, wherein one or more of the first training sequence and the second training sequence are unscrambled.
18. The apparatus of claim 12, wherein the layered protocol comprises a coherent interconnect protocol.
19. A system for computing, comprising:
a host device, the host device comprising a processor;
an endpoint device coupled to the processor through an interconnect,
Wherein the host device includes:
A physical layer circuit for implementing at least part of a physical layer of a layered protocol, wherein the physical layer circuit is for;
Transmitting a first training sequence in training of a link for communication between the host device and the endpoint device over the interconnect, wherein the first training sequence comprises a repeating sequence including a particular pattern for mimicking a low speed clock, the first training sequence is repeated at a first frequency, and the first training sequence is defined to identify a first training task in the training, wherein,
The first training task comprises a device detection task;
Transmitting a second training sequence in the training of the link, wherein the second training sequence is different from the first training sequence, the second training sequence comprises a repeating sequence, the second training sequence comprises the particular pattern, the second training sequence repeats at a second frequency that is slower than the first frequency, and the second training sequence is defined to identify a second training task in the training, wherein the second training task comprises determining a lane polarity on the link,
Wherein the particular pattern comprises hexadecimal values.
20. A method for computing, comprising:
Transmitting a first training sequence in training of a link for communication over an interconnect between a host device and an endpoint device, wherein the first training sequence comprises a repeating sequence, the first training sequence comprises a particular pattern for mimicking a low speed clock, the first training sequence is repeated at a first frequency, and the first training sequence is defined to identify a first training task in the training, wherein the first training task comprises a device detection task;
Transmitting a second training sequence in the training of the link, wherein the second training sequence is different from the first training sequence, the second training sequence comprises a repeating sequence, the second training sequence comprises the particular pattern, the second training sequence repeats at a second frequency that is slower than the first frequency, and the second training sequence is defined to identify a second training task in the training, wherein the second training task comprises determining a lane polarity on the link; and
At least one synchronization pattern is sent in association with the initialization of the link,
Wherein the particular pattern comprises hexadecimal values.
CN202010633738.7A 2012-10-22 2013-03-15 Apparatus, method and system for high performance interconnect physical layer Active CN111737167B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010633738.7A CN111737167B (en) 2012-10-22 2013-03-15 Apparatus, method and system for high performance interconnect physical layer

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261717091P 2012-10-22 2012-10-22
US61/717,091 2012-10-22
PCT/US2013/032690 WO2014065877A1 (en) 2012-10-22 2013-03-15 High performance interconnect physical layer
CN202010633738.7A CN111737167B (en) 2012-10-22 2013-03-15 Apparatus, method and system for high performance interconnect physical layer
CN201380016998.8A CN104335196B (en) 2012-10-22 2013-03-15 Method, device and system for transmitting data

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201380016998.8A Division CN104335196B (en) 2012-10-22 2013-03-15 Method, device and system for transmitting data

Publications (2)

Publication Number Publication Date
CN111737167A CN111737167A (en) 2020-10-02
CN111737167B true CN111737167B (en) 2024-05-28

Family

ID=50485278

Family Applications (26)

Application Number Title Priority Date Filing Date
CN201810011011.8A Active CN108055214B (en) 2012-10-22 2013-03-15 Apparatus and system for communicating data
CN201710043763.8A Active CN107045479B (en) 2012-10-22 2013-03-15 High performance interconnect physical layer
CN201710093224.5A Active CN107015924B (en) 2012-10-22 2013-03-15 High performance interconnect physical layer
CN202010633738.7A Active CN111737167B (en) 2012-10-22 2013-03-15 Apparatus, method and system for high performance interconnect physical layer
CN201710043551.XA Active CN106681938B (en) 2012-10-22 2013-03-15 Apparatus and system for controlling messaging in a multi-slot link layer microchip
CN201711159546.1A Active CN108228495B (en) 2012-10-22 2013-03-15 High performance interconnect physical layer
CN201810337297.9A Active CN108614783B (en) 2012-10-22 2013-03-15 Consistency Agreement Form
CN201710038141.6A Active CN106776364B (en) 2012-10-22 2013-03-15 Apparatus, method and system for high performance interconnect physical layer
CN201710038234.9A Active CN106815151B (en) 2012-10-22 2013-03-15 High Performance Interconnect Coherent Protocol
CN201380049212.2A Active CN104769570B (en) 2012-10-22 2013-03-15 Controls the sending and receiving of messages in a multi-slot link-layer flit
CN201410582176.2A Active CN104391816B (en) 2012-10-22 2013-03-15 High-performance interconnection physical layer
CN201380049203.3A Active CN104969206B (en) 2012-10-22 2013-03-15 High Performance Interconnect Physical Layer
CN201380049062.5A Active CN104756097B (en) 2012-10-22 2013-03-15 Consistency Agreement Form
CN201380016955.XA Active CN104380269B (en) 2012-10-22 2013-03-15 High Performance Interconnect Coherent Protocol
CN201380049199.0A Pending CN104969207A (en) 2012-10-22 2013-03-15 High performance interconnect coherence protocol
CN201380016998.8A Active CN104335196B (en) 2012-10-22 2013-03-15 Method, device and system for transmitting data
CN201380049066.3A Active CN104737147B (en) 2012-10-22 2013-03-15 High Performance Interconnect Physical Layer
CN201380055335.7A Active CN104737142B (en) 2012-10-22 2013-03-16 Multi-slot link-level flow control unit
CN201410751146.XA Active CN104536933B (en) 2012-10-22 2013-03-27 High-performance Interconnections physical layer
CN201380049075.2A Active CN104995614B (en) 2012-10-22 2013-03-27 High Performance Interconnect Physical Layer
CN201380017285.3A Active CN104487958B (en) 2012-10-22 2013-03-27 High Performance Interconnect Physical Layer
CN201710067578.2A Active CN107102960B (en) 2012-10-22 2013-03-27 High Performance Interconnect Physical Layer
CN201810095156.0A Active CN108132892B (en) 2012-10-22 2013-03-27 High Performance Interconnect Physical Layer
CN201710243776.XA Active CN107092565B (en) 2012-10-22 2013-03-27 High performance interconnect physical layer
CN201711267378.8A Active CN107968756B (en) 2012-10-22 2013-03-28 High performance interconnect link layer
CN201380016778.5A Active CN104303166B (en) 2012-10-22 2013-03-28 High Performance Interconnect Link Layer

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CN201810011011.8A Active CN108055214B (en) 2012-10-22 2013-03-15 Apparatus and system for communicating data
CN201710043763.8A Active CN107045479B (en) 2012-10-22 2013-03-15 High performance interconnect physical layer
CN201710093224.5A Active CN107015924B (en) 2012-10-22 2013-03-15 High performance interconnect physical layer

Family Applications After (22)

Application Number Title Priority Date Filing Date
CN201710043551.XA Active CN106681938B (en) 2012-10-22 2013-03-15 Apparatus and system for controlling messaging in a multi-slot link layer microchip
CN201711159546.1A Active CN108228495B (en) 2012-10-22 2013-03-15 High performance interconnect physical layer
CN201810337297.9A Active CN108614783B (en) 2012-10-22 2013-03-15 Consistency Agreement Form
CN201710038141.6A Active CN106776364B (en) 2012-10-22 2013-03-15 Apparatus, method and system for high performance interconnect physical layer
CN201710038234.9A Active CN106815151B (en) 2012-10-22 2013-03-15 High Performance Interconnect Coherent Protocol
CN201380049212.2A Active CN104769570B (en) 2012-10-22 2013-03-15 Controls the sending and receiving of messages in a multi-slot link-layer flit
CN201410582176.2A Active CN104391816B (en) 2012-10-22 2013-03-15 High-performance interconnection physical layer
CN201380049203.3A Active CN104969206B (en) 2012-10-22 2013-03-15 High Performance Interconnect Physical Layer
CN201380049062.5A Active CN104756097B (en) 2012-10-22 2013-03-15 Consistency Agreement Form
CN201380016955.XA Active CN104380269B (en) 2012-10-22 2013-03-15 High Performance Interconnect Coherent Protocol
CN201380049199.0A Pending CN104969207A (en) 2012-10-22 2013-03-15 High performance interconnect coherence protocol
CN201380016998.8A Active CN104335196B (en) 2012-10-22 2013-03-15 Method, device and system for transmitting data
CN201380049066.3A Active CN104737147B (en) 2012-10-22 2013-03-15 High Performance Interconnect Physical Layer
CN201380055335.7A Active CN104737142B (en) 2012-10-22 2013-03-16 Multi-slot link-level flow control unit
CN201410751146.XA Active CN104536933B (en) 2012-10-22 2013-03-27 High-performance Interconnections physical layer
CN201380049075.2A Active CN104995614B (en) 2012-10-22 2013-03-27 High Performance Interconnect Physical Layer
CN201380017285.3A Active CN104487958B (en) 2012-10-22 2013-03-27 High Performance Interconnect Physical Layer
CN201710067578.2A Active CN107102960B (en) 2012-10-22 2013-03-27 High Performance Interconnect Physical Layer
CN201810095156.0A Active CN108132892B (en) 2012-10-22 2013-03-27 High Performance Interconnect Physical Layer
CN201710243776.XA Active CN107092565B (en) 2012-10-22 2013-03-27 High performance interconnect physical layer
CN201711267378.8A Active CN107968756B (en) 2012-10-22 2013-03-28 High performance interconnect link layer
CN201380016778.5A Active CN104303166B (en) 2012-10-22 2013-03-28 High Performance Interconnect Link Layer

Country Status (9)

Country Link
US (22) US20140201463A1 (en)
EP (2) EP3410304B1 (en)
JP (2) JP6139689B2 (en)
KR (27) KR101772037B1 (en)
CN (26) CN108055214B (en)
BR (1) BR112015006432A2 (en)
DE (15) DE112013005086T5 (en)
RU (2) RU2599971C2 (en)
WO (11) WO2014065879A1 (en)

Families Citing this family (249)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013105967A1 (en) * 2012-01-13 2013-07-18 Intel Corporation Efficient peer-to-peer communication support in soc fabrics
US8943255B2 (en) * 2012-05-29 2015-01-27 Lsi Corporation Methods and structure for accounting for connection resets between peripheral component interconnect express bridges and host devices
US9479196B2 (en) 2012-10-22 2016-10-25 Intel Corporation High performance interconnect link layer
US9280507B2 (en) 2012-10-22 2016-03-08 Intel Corporation High performance interconnect physical layer
US20140201463A1 (en) 2012-10-22 2014-07-17 Robert G. Blankenship High performance interconnect coherence protocol
US9355058B2 (en) 2012-10-22 2016-05-31 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 (en) * 2013-10-23 2018-04-10 华为技术有限公司 A kind of data transmission method and device
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
US9325449B2 (en) 2013-12-06 2016-04-26 Intel Corporation Lane error detection and lane removal mechanism to reduce the probability of data corruption
US9397792B2 (en) 2013-12-06 2016-07-19 Intel Corporation Efficient link layer retry protocol utilizing implicit acknowledgements
JP6221717B2 (en) * 2013-12-12 2017-11-01 富士通株式会社 Storage device, storage system, and data management program
WO2015099724A1 (en) 2013-12-26 2015-07-02 Intel Corporation Pci express enhancements
US10073808B2 (en) * 2013-12-26 2018-09-11 Intel Corporation Multichip package link
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 (en) * 2014-05-21 2018-03-13 华为技术有限公司 The Flit transmission methods and device of network-on-chip
RU2608881C2 (en) * 2014-05-28 2017-01-25 Общество С Ограниченной Ответственностью "Яндекс" Method and system for controlling turbo mode
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
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
US9330227B1 (en) * 2014-11-14 2016-05-03 Cavium Inc. Testbench builder, system, device and method including a dispatcher
US20160173398A1 (en) * 2014-12-12 2016-06-16 Intel Corporation Method, Apparatus And System For Encoding Command Information In a Packet-Based Network
US9921768B2 (en) * 2014-12-18 2018-03-20 Intel Corporation Low power entry in a shared memory link
US9444551B2 (en) * 2014-12-19 2016-09-13 Intel Corporation High performance optical repeater
US9740646B2 (en) 2014-12-20 2017-08-22 Intel Corporation Early identification in transactional buffered memory
US10025746B2 (en) * 2014-12-20 2018-07-17 Intel Corporation High performance interconnect
US9632862B2 (en) 2014-12-20 2017-04-25 Intel Corporation Error handling in transactional buffered memory
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 (en) * 2015-01-14 2015-04-22 浪潮(北京)电子信息产业有限公司 Physical layer initialization method and client terminals
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
US9619396B2 (en) * 2015-03-27 2017-04-11 Intel Corporation Two level memory full line writes
US9720838B2 (en) 2015-03-27 2017-08-01 Intel Corporation Shared buffered memory routing
US9639276B2 (en) 2015-03-27 2017-05-02 Intel Corporation Implied directory state updates
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
EP3297220B1 (en) 2015-06-10 2019-04-17 Huawei Technologies Co. Ltd. Signal transmission method, controller and signal transmission system
US9697145B2 (en) * 2015-06-12 2017-07-04 Apple Inc. Memory interface system
US20160371222A1 (en) * 2015-06-22 2016-12-22 Qualcomm Incorporated COHERENCY DRIVEN ENHANCEMENTS TO A PERIPHERAL COMPONENT INTERCONNECT (PCI) EXPRESS (PCIe) TRANSACTION LAYER
US10089275B2 (en) 2015-06-22 2018-10-02 Qualcomm Incorporated Communicating transaction-specific attributes in a peripheral component interconnect express (PCIe) system
KR102485999B1 (en) * 2015-07-01 2023-01-06 삼성전자주식회사 Cache coherent system including master-side filter and data processing system having the same
US9692589B2 (en) 2015-07-17 2017-06-27 Intel Corporation Redriver link testing
EP3329381B1 (en) * 2015-07-30 2020-02-26 Valens Semiconductor Ltd. Seamless addition of high bandwidth lanes
JP6674085B2 (en) * 2015-08-12 2020-04-01 富士通株式会社 Arithmetic processing unit and control method of arithmetic processing unit
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
US9720439B2 (en) * 2015-09-26 2017-08-01 Intel Corporation Methods, apparatuses, and systems for deskewing link splits
CN107949995B (en) * 2015-09-26 2021-09-07 英特尔公司 Apparatus, method and system for data communication
WO2017052665A1 (en) * 2015-09-26 2017-03-30 Intel Corporation In-band margin probing on an operational interconnect
WO2017052663A1 (en) * 2015-09-26 2017-03-30 Intel Corporation Valid lane training
US10552253B2 (en) * 2015-09-26 2020-02-04 Intel Corporation Multichip package link error detection
GB2543745B (en) * 2015-10-15 2018-07-04 Advanced Risc Mach Ltd An apparatus and method for operating a virtually indexed physically tagged cache
US10198384B2 (en) 2016-03-01 2019-02-05 Qorvo Us, Inc. One wire bus to RFFE translation system
US10128964B2 (en) 2016-03-10 2018-11-13 Qualcomm Incorporated Multiphase preamble data sequences for receiver calibration and mode data signaling
US9779028B1 (en) 2016-04-01 2017-10-03 Cavium, Inc. Managing translation invalidation
CN105933286B (en) * 2016-04-05 2019-08-02 浪潮电子信息产业股份有限公司 A method and device for verifying a protocol
RU2643620C2 (en) * 2016-05-11 2018-02-02 федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский политехнический университет Петра Великого" (ФГАОУ ВО "СПбПУ") Method of planning assignments of preparing data of internet of things for analyzing systems
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 (en) * 2016-06-16 2018-02-01 新漢股份有限公司 Computer system having PCI-E redriver, and configurating method of the PCI-E redriver
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 (en) * 2016-09-16 2018-03-19 Оракл Интернэйшнл Корпорейшн LINKING THE TRANSFORMED SOURCE CODE TO THE ORIGINAL SOURCE CODE BY METADATA
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 (en) * 2016-11-30 2021-04-27 深圳市中兴微电子技术有限公司 Verification method and device for low power consumption working mode of multiprocessor system chip
CN106527576A (en) * 2016-12-01 2017-03-22 郑州云海信息技术有限公司 Clock separation designing method and system for PCIE device
CN108170370B (en) 2016-12-07 2021-01-26 慧荣科技股份有限公司 Data storage device and data transmission rate control method
TWI610179B (en) * 2016-12-07 2018-01-01 慧榮科技股份有限公司 Host device and methods for controlling a data transfer speed
TWI633777B (en) * 2016-12-13 2018-08-21 威盛電子股份有限公司 Interface chip and test method therefor
KR20180071598A (en) 2016-12-20 2018-06-28 주식회사 포스코 System for tracking position of heavy machinery
KR101946135B1 (en) * 2017-01-11 2019-02-08 울산과학기술원 Database management system and method thereof using a non-volatile memory
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)
US10860449B2 (en) * 2017-03-31 2020-12-08 Intel Corporation Adjustable retimer buffer
CN107491407B (en) * 2017-07-03 2019-07-12 西安空间无线电技术研究所 Self-adapting high-speed Transmission system based on SERDES in FPGA
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 (en) * 2017-08-31 2018-02-09 郑州云海信息技术有限公司 A kind of method for solving Computer Cache uniformity conflict
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 (en) * 2017-09-20 2021-05-25 友达光电股份有限公司 Sensing device and control method applied to the Internet of Things
US20190095273A1 (en) * 2017-09-27 2019-03-28 Qualcomm Incorporated Parity bits location on i3c multilane bus
US11263143B2 (en) * 2017-09-29 2022-03-01 Intel Corporation Coherent accelerator fabric controller
US10963035B2 (en) * 2017-10-11 2021-03-30 Qualcomm Incorporated Low power PCIe
WO2019100238A1 (en) * 2017-11-22 2019-05-31 深圳市大疆创新科技有限公司 Method for recovering disconnected link, and aerial vehicle
CN107894963B (en) * 2017-11-27 2021-07-27 上海兆芯集成电路有限公司 Communication controller and communication method for system-on-chip
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
EP3721565B8 (en) 2018-01-10 2024-11-20 Lumeova, Inc. Method, devices and system for wireless communication channels fso
US20190227971A1 (en) * 2018-01-23 2019-07-25 Qualcomm Incorporated Architecture for consolidating multiple sources of low-bandwidth data over a serial bus
US20190294777A1 (en) * 2018-03-26 2019-09-26 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Systems and methods for managing access to host computing devices by external devices
US10534881B2 (en) * 2018-04-10 2020-01-14 Advanced Micro Devices, Inc. Method of debugging a processor
US20190042455A1 (en) * 2018-05-04 2019-02-07 Intel Corporation Globally addressable memory for devices linked to hosts
CN108563510B (en) * 2018-05-04 2021-07-13 湖南大学 Architecture-aware optimization method for exascale computing
US20190356412A1 (en) * 2018-05-16 2019-11-21 Qualcomm Incorporated Fast termination of multilane double data rate transactions
US10771194B2 (en) * 2018-05-25 2020-09-08 Arm Limited Interconnection network for integrated circuit
CN108762747B (en) * 2018-05-30 2022-02-18 郑州云海信息技术有限公司 Data processing method and computer device
WO2019237130A1 (en) * 2018-06-04 2019-12-12 Lightfleet Corporation Routing and control protocol for high-performance interconnect fabrics
EP3811295A4 (en) * 2018-06-11 2022-03-23 Hewlett-Packard Development Company, L.P. SOFTPROOFING OF THREE-DIMENSIONAL (3D) PRINTED PARTS
CN110609866B (en) * 2018-06-15 2023-08-11 伊姆西Ip控股有限责任公司 Method, apparatus and computer program product for negotiating transactions
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 (en) * 2018-06-26 2019-01-04 深圳市安信智控科技有限公司 Computing chip and memory chip combined system based on high-speed serial channel interconnection
GB2575294B8 (en) * 2018-07-04 2022-07-20 Graphcore Ltd Host Proxy On Gateway
GB2575290B (en) * 2018-07-04 2020-12-02 Graphcore Ltd Gateway Fabric Ports
US10841355B2 (en) * 2018-07-13 2020-11-17 Apple Inc. Methods and apparatus for streaming media conversion with reduced buffering memories
US10838908B2 (en) * 2018-07-20 2020-11-17 Xilinx, Inc. Configurable network-on-chip for a programmable device
EP3847771A1 (en) 2018-09-06 2021-07-14 Nokia Solutions and Networks Oy Acqi decoding confidence detection
US10541841B1 (en) * 2018-09-13 2020-01-21 Advanced Micro Devices, Inc. Hardware transmit equalization for high speed
CN109558122B (en) * 2018-11-29 2022-08-19 湖南国科微电子股份有限公司 System and method for improving physical layer compatibility
US10761939B1 (en) * 2018-12-13 2020-09-01 Amazon Technologies, Inc. Powering-down or rebooting a device in a system fabric
TWI706257B (en) * 2018-12-13 2020-10-01 新唐科技股份有限公司 Bus system
US11151075B2 (en) * 2018-12-14 2021-10-19 Ati Technologies Ulc Data communications with enhanced speed mode
US10771189B2 (en) * 2018-12-18 2020-09-08 Intel Corporation Forward error correction mechanism for data transmission across multi-lane links
KR102165860B1 (en) 2018-12-31 2020-10-14 성균관대학교산학협력단 Method for logging double header of slotted page and database apparautus
US10599601B1 (en) 2019-01-16 2020-03-24 Qorvo Us, Inc. Single-wire bus (SuBUS) slave circuit and related apparatus
US11099991B2 (en) 2019-01-24 2021-08-24 Vmware, Inc. Programming interfaces for accurate dirty data tracking
US11068400B2 (en) * 2019-01-24 2021-07-20 Vmware, Inc. Failure-atomic logging for persistent memory systems with cache-coherent FPGAs
KR20210119422A (en) 2019-01-31 2021-10-05 텍트로닉스 인코포레이티드 Systems, methods and devices for high-speed input/output margin testing
US11940483B2 (en) 2019-01-31 2024-03-26 Tektronix, Inc. Systems, methods and devices for high-speed input/output margin testing
US10713209B2 (en) 2019-02-08 2020-07-14 Intel Corporation Recalibration of PHY circuitry for the PCI Express (PIPE) interface based on using a message bus interface
US10802966B2 (en) * 2019-02-14 2020-10-13 International Business Machines Corporation Simultaneous, non-atomic request processing within an SMP environment broadcast scope for multiply-requested data elements using real-time parallelization
US11637657B2 (en) 2019-02-15 2023-04-25 Intel Corporation Low-latency forward error correction for high-speed serial links
US11099905B2 (en) 2019-02-26 2021-08-24 International Business Machines Corporation Efficient remote resource allocation within an SMP broadcast scope maintaining fairness between operation types
US11249837B2 (en) * 2019-03-01 2022-02-15 Intel Corporation Flit-based parallel-forward error correction and parity
CN113508381B (en) * 2019-03-05 2024-03-01 西门子工业软件有限公司 Machine learning-based anomaly detection for embedded software applications
CN109947551B (en) * 2019-03-19 2021-04-23 中南大学 A multi-round task allocation method, edge computing system and storage medium thereof
US11055221B2 (en) * 2019-03-22 2021-07-06 Samsung Electronics Co., Ltd. Speculative DRAM read, in parallel with cache level search, leveraging interconnect directory
US10698842B1 (en) * 2019-04-10 2020-06-30 Xilinx, Inc. Domain assist processor-peer for coherent acceleration
EP3723345B1 (en) * 2019-04-10 2025-05-28 ABB Schweiz AG Forwarding node data via an aggregating server
IT201900005822A1 (en) * 2019-04-15 2020-10-15 Phoenix Ict S R L S GENERAL PURPOSE PERIPHERAL ADAPTER FOR 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 (en) * 2019-05-09 2021-10-15 豪威触控与显示科技(深圳)有限公司 MIPI (Mobile industry processor interface) protocol-based inter-device communication method and equipment topological structure
US11296994B2 (en) * 2019-05-13 2022-04-05 Intel Corporation Ordered sets for high-speed interconnects
JP7259537B2 (en) * 2019-05-16 2023-04-18 オムロン株式会社 Information processing equipment
US11032157B2 (en) 2019-05-16 2021-06-08 Microsoft Technology Licensing, Llc Adaptable real-time communications plugin for virtual desktop infrastructure solutions
US10802967B1 (en) * 2019-06-28 2020-10-13 Intel Corporation Partial write management in a multi-tiled compute engine
US11144469B2 (en) * 2019-07-02 2021-10-12 Microsoft Technology Licensing, Llc Per-tenant incremental outward distributed proactive caching
US11444829B2 (en) * 2019-09-09 2022-09-13 Intel Corporation Link layer communication by multiple link layer encodings for computer buses
US11271860B1 (en) * 2019-11-15 2022-03-08 Xilinx, Inc. Compressed tag coherency messaging
CN114651426B (en) * 2019-11-20 2023-08-18 三菱电机株式会社 Optical communication device and communication system
RU2738955C1 (en) * 2019-11-27 2020-12-21 Федеральное государственное бюджетное образовательное учреждение высшего образования "Томский государственный университет систем управления и радиоэлектроники" (ТУСУР) Method of triple backup of interconnections
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
WO2021138530A1 (en) 2020-01-02 2021-07-08 Lumeova, Inc. Methods, devices, and systems for management of wireless communication channels
US11132321B2 (en) 2020-02-26 2021-09-28 Quanta Computer Inc. Method and system for automatic bifurcation of PCIe in BIOS
US20230081394A1 (en) * 2020-02-28 2023-03-16 Arizona Board Of Regents On Behalf Of Arizona State University A software-defined board support package (sw-bsp) for stand-alone reconfigurable accelerators
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 (en) * 2020-04-10 2024-01-16 芯启源(上海)半导体科技有限公司 Method for realizing scramble and desamble hardware based on data bit width expansion
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
LU101770B1 (en) 2020-05-05 2021-11-05 Microsoft Technology Licensing Llc Memory page markings as logging cues for processor-based execution tracing
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
LU101768B1 (en) 2020-05-05 2021-11-05 Microsoft Technology Licensing Llc Recording a cache coherency protocol trace for use with a separate memory value trace
US11586446B1 (en) * 2020-05-20 2023-02-21 Marvell Asia Pte Ltd System and methods for hardware-based PCIe link up based on post silicon characterization
US11263137B2 (en) * 2020-05-27 2022-03-01 Arm Limited Core-to-core cache stashing and target discovery
CN116134475A (en) * 2020-05-29 2023-05-16 奈特力斯股份有限公司 Computer memory expansion device and operating method thereof
US20210013999A1 (en) * 2020-06-04 2021-01-14 Intel Corporation Latency-Optimized Mechanisms for Handling Errors or Mis-Routed Packets for Computer Buses
US11893122B2 (en) 2020-06-05 2024-02-06 William David SCHWADERER Shapeshift data encryption methods and systems
KR102254337B1 (en) * 2020-06-22 2021-05-21 한양대학교 산학협력단 Method and Apparatus for 5B3Q DC-balancing code for PAM4 signaling with balanced RDS
US12155474B2 (en) 2020-07-06 2024-11-26 Intel Corporation Characterizing and margining multi-voltage signal encoding for interconnects
US12056029B2 (en) 2020-07-27 2024-08-06 Intel Corporation In-system validation of interconnects by error injection and measurement
US11360906B2 (en) * 2020-08-14 2022-06-14 Alibaba Group Holding Limited Inter-device processing system with cache coherency
US11580044B2 (en) * 2020-08-31 2023-02-14 Micron Technology, Inc. Network credit return mechanisms
US11588745B2 (en) 2020-08-31 2023-02-21 Micron Technology, Inc. Early credit return for credit-based flow control
US11356378B2 (en) 2020-08-31 2022-06-07 Micron Technology, Inc. Combined write enable mask and credit return field
US11362939B2 (en) 2020-08-31 2022-06-14 Micron Technology, Inc. Flow control for a multiple flow control unit interface
CN112134859B (en) * 2020-09-09 2021-07-06 上海沈德医疗器械科技有限公司 A control method of focused ultrasound therapy equipment based on ARM architecture
US12189470B2 (en) 2020-09-18 2025-01-07 Intel Corporation Forward error correction and cyclic redundancy check mechanisms for latency-critical coherency and memory interconnects
CN114846762B (en) * 2020-09-19 2023-06-27 华为技术有限公司 Communication link initialization method and device
US12061232B2 (en) 2020-09-21 2024-08-13 Tektronix, Inc. Margin test data tagging and predictive expected margins
US12210767B2 (en) * 2020-09-25 2025-01-28 Advanced Mirco Devices, Inc. Combining write transactions of a large write
DE102021121105A1 (en) * 2020-09-28 2022-03-31 Samsung Electronics Co., Ltd. SMART STORAGE STORAGE DEVICE
TW202225714A (en) * 2020-11-09 2022-07-01 美商泰克特洛尼克斯公司 Systems, methods and devices for high-speed input/output margin testing
TWI783293B (en) * 2020-11-09 2022-11-11 瑞昱半導體股份有限公司 Method for identifying signal transmission device and signal processing system
US11409677B2 (en) 2020-11-11 2022-08-09 Qorvo Us, Inc. Bus slave circuit and related single-wire bus apparatus
US11489695B2 (en) 2020-11-24 2022-11-01 Qorvo Us, Inc. Full-duplex communications over a single-wire bus
CN116745630A (en) 2020-11-24 2023-09-12 特克特朗尼克公司 System, method and apparatus for high speed input/output margin testing
CN112579479B (en) * 2020-12-07 2022-07-08 成都海光微电子技术有限公司 Processor and method for maintaining transaction order while maintaining cache coherency
US12160259B2 (en) * 2020-12-09 2024-12-03 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
CN116114191A (en) * 2021-01-29 2023-05-12 华为技术有限公司 A method and device for data transmission
CN112953556A (en) * 2021-02-05 2021-06-11 南京大学 Anti-crosstalk interconnection codec based on Fibonacci number sequence and coding method
CN112631989A (en) * 2021-03-08 2021-04-09 南京蓝洋智能科技有限公司 Data transmission method among small chips, among chips and among small chips
US11431649B1 (en) * 2021-03-26 2022-08-30 Arm Limited Interconnect resource allocation
CN113019479A (en) * 2021-03-31 2021-06-25 中国人民解放军空军军医大学 Test box for simulating underground working environment
IT202100008723A1 (en) 2021-04-08 2022-10-08 Phoenix ICT SYSTEM FOR THE SECURITY MANAGEMENT OF DIGITAL DOCUMENTS
KR102518317B1 (en) 2021-04-13 2023-04-06 에스케이하이닉스 주식회사 Peripheral component interconnect express interface device and operating method thereof
US11789658B2 (en) 2021-04-13 2023-10-17 SK Hynix Inc. Peripheral component interconnect express (PCIe) interface system and method of operating the same
KR102668564B1 (en) 2021-06-01 2024-05-24 에스케이하이닉스 주식회사 Peripheral component interconnect express interface device and operating method thereof
US20220327074A1 (en) * 2021-04-13 2022-10-13 SK Hynix Inc. PERIPHERAL COMPONENT INTERCONNECT EXPRESS (PCIe) SYSTEM AND METHOD OF OPERATING THE SAME
TWI773395B (en) * 2021-06-22 2022-08-01 慧榮科技股份有限公司 Memory controller and link identification method
US11934313B2 (en) 2021-08-23 2024-03-19 Apple Inc. Scalable system on a chip
US12271760B2 (en) 2021-09-16 2025-04-08 Intel Corporation Cluster identifier remapping for asymmetric topologies
CN113590511B (en) * 2021-10-08 2022-02-22 苏州浪潮智能科技有限公司 Bandwidth deceleration repairing method and device and electronic equipment
CN113971143B (en) * 2021-10-22 2023-12-05 展讯半导体(成都)有限公司 Memory controller, internet of things chip and electronic equipment
US11755494B2 (en) * 2021-10-29 2023-09-12 Advanced Micro Devices, Inc. Cache line coherence state downgrade
CN114036885B (en) * 2021-11-08 2025-09-30 上海兆芯集成电路股份有限公司 Built-in self-test method and interconnection interface
EP4437703A4 (en) * 2021-11-23 2025-09-03 F5 Inc SYSTEMS AND METHODS FOR NETWORK TRAFFIC CONSOLIDATION
US12092689B2 (en) 2021-12-08 2024-09-17 Qorvo Us, Inc. Scan test in a single-wire bus circuit
US11706048B1 (en) 2021-12-16 2023-07-18 Qorvo Us, Inc. Multi-protocol bus circuit
CN114510268B (en) * 2021-12-24 2022-09-20 中国人民解放军战略支援部队航天工程大学 GPU-based method for realizing single-precision floating point number accumulated error control in down-conversion
US12332826B2 (en) 2021-12-30 2025-06-17 Intel Corporation Die-to-die interconnect
US12360934B2 (en) * 2021-12-30 2025-07-15 Intel Corporation Parameter exchange for a die-to-die interconnect
US20220327084A1 (en) * 2021-12-30 2022-10-13 Intel Corporation Die-to-die interconnect protocol layer
US12182052B2 (en) 2022-01-20 2024-12-31 Qorvo Us, Inc. Slave-initiated communications over a single-wire bus
US12261904B2 (en) * 2022-01-20 2025-03-25 Servicenow, Inc. Nested request-response protocol network communications
US12164445B1 (en) * 2022-02-03 2024-12-10 Amazon Technologies, Inc. Coherent agents for memory access
US11907132B2 (en) 2022-03-23 2024-02-20 International Business Machines Corporation Final cache directory state indication
US12524356B2 (en) 2022-03-25 2026-01-13 Seagate Technology Llc Memory tunneling interface
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 (en) * 2022-06-01 2023-07-11 咪咕视讯科技有限公司 Focus method, system, terminal device and medium of page component
US11880686B2 (en) * 2022-06-16 2024-01-23 Ampere Computing Llc Devices transferring cache lines, including metadata on external links
CN115099356B (en) * 2022-07-11 2024-08-09 大连理工大学 Industrial imbalance data classification method, device, electronic equipment and storage medium
CN115238619B (en) * 2022-09-20 2023-06-27 北京数字光芯集成电路设计有限公司 Post-module simulation method and system for digital chip
US12353306B2 (en) * 2022-09-21 2025-07-08 Advantest Corporation Management of hot add in a testing environment for DUTs that are CXL protocol enabled
US11914473B1 (en) * 2022-10-20 2024-02-27 Micron Technology, Inc. Data recovery using ordered data requests
CN118175166A (en) * 2022-12-09 2024-06-11 华为技术有限公司 A wired serial bus data transmission method, system and related device
CN116107953A (en) * 2022-12-27 2023-05-12 上海立可芯半导体科技有限公司 Communication method and system between core particles
KR20240109127A (en) 2023-01-03 2024-07-10 삼성전자주식회사 Receiver, interface circuit inclduing the same and method of operating receiver
WO2024248235A1 (en) * 2023-05-26 2024-12-05 망고부스트 아이엔씨. Server system, switch module, and switching method
US12438567B2 (en) * 2023-10-23 2025-10-07 Credo Technology Group Limited SerDes method and device having a protocol-agnostic in-band management channel
KR20250082901A (en) * 2023-11-30 2025-06-09 엘지이노텍 주식회사 Automatic recovery DEVICE AND method through UNDERvoltage detection of PHYSICAL LAYER DEVICE
KR102712015B1 (en) * 2024-01-03 2024-09-30 주식회사 메타씨앤아이 Serial interface circuit apparatus used in display device and method for controlling the same
US20250238297A1 (en) * 2024-01-19 2025-07-24 Qualcomm Incorporated Apparatus and methods for securing integrity and data encryption link sessions within die interconnect architectures
CN119071152A (en) * 2024-08-09 2024-12-03 无锡众星微系统技术有限公司 IB network link layer state synchronization method and device
CN119363691B (en) * 2024-10-24 2025-07-08 上海芯炽科技集团有限公司 A method for shortening the delay of MIPI LLP packet to A-Packet in MIPI APHY link
CN120371588B (en) * 2025-06-26 2025-09-02 苏州元脑智能科技有限公司 Electronic equipment, link recovery method, medium and product

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1044559A (en) * 1989-01-27 1990-08-08 英国电讯公司 Telecommunication system
US6185250B1 (en) * 1999-03-10 2001-02-06 Lucent Technologies Inc. Training of level learning modems
CN1354915A (en) * 1999-02-10 2002-06-19 艾利森公司 Maximum likelihood RAKE receiver for use in code division, multiple access wireless communication system
US6865231B1 (en) * 2000-06-20 2005-03-08 Hewlett-Packard Development Company, L.P. High-speed interconnection adapter having automated crossed differential pair correction
CN1700701A (en) * 2004-05-21 2005-11-23 英特尔公司 Method and apparatuses for the physical layer initialization of a link-based system interconnect
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
CN1781082A (en) * 2003-03-25 2006-05-31 英特尔公司 High Performance Serial Bus Test Method
CN1922828A (en) * 2004-03-15 2007-02-28 英特尔公司 Transceiver with automatic configuration based on auto-negotiation
CN101627593A (en) * 2007-03-09 2010-01-13 高通股份有限公司 Channel estimation using frequency smoothing
CN101631000A (en) * 2008-06-25 2010-01-20 英特尔公司 Link and lane level packetization scheme of encoding in serial links
CN101854331A (en) * 2009-04-02 2010-10-06 天际微芯(北京)科技有限公司 Training sequence structure and training method
US8161429B1 (en) * 2004-08-20 2012-04-17 Altera Corporation Methods and apparatus for initializing serial links
CN102656574A (en) * 2009-12-04 2012-09-05 意法爱立信有限公司 Method and system for reliable link startup

Family Cites Families (265)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4191941A (en) 1978-04-03 1980-03-04 Rca Corporation Switch matrix for data transfers
US4716523A (en) 1985-06-14 1987-12-29 International Business Machines Corporation Multiple port integrated DMA and interrupt controller and arbitrator
US5537640A (en) * 1988-12-30 1996-07-16 Intel Corporation Asynchronous modular bus architecture with cache consistency
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
AU665521B2 (en) * 1990-10-03 1996-01-11 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
JPH07168763A (en) * 1992-11-13 1995-07-04 Cyrix Corp Write-back cache coherency in a write-through cache-designed system
US5325360A (en) 1992-12-09 1994-06-28 National Semiconductor Corporation Controllable PCM state machine user interface
US5394555A (en) * 1992-12-23 1995-02-28 Bull Hn Information Systems Inc. Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory
US5432775A (en) 1993-12-03 1995-07-11 Advanced Micro Devices, Inc. Auto negotiation system for a communications network
US5551005A (en) * 1994-02-25 1996-08-27 Intel Corporation Apparatus and method of handling race conditions in mesi-based multiprocessor system with private caches
US5572703A (en) * 1994-03-01 1996-11-05 Intel Corporation Method and apparatus for snoop stretching using signals that convey snoop results
US5383143A (en) 1994-03-30 1995-01-17 Motorola, Inc. Self re-seeding linear feedback shift register (LFSR) data processing system for generating a pseudo-random test bit stream and method of operation
EP0706138A1 (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 (en) * 1996-09-20 1998-04-15 摩托罗拉公司 Variance changeble time slot width in TDM/TDMA system
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
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
US6141733A (en) * 1998-02-17 2000-10-31 International Business Machines Corporation Cache coherency protocol with independent implementation of optimized cache operations
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
US6430188B1 (en) 1998-07-08 2002-08-06 Broadcom Corporation Unified table for L2, L3, L4, switching and filtering
EP0991222B1 (en) * 1998-09-30 2003-04-16 Alcatel Method and arrangements for transition between a low power state and a full power state in a communication system
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
CN100387030C (en) 1999-05-28 2008-05-07 基础能源公司 Wireless transceiver network with on-off keying and node-to-node messaging with dynamic routing and configuration
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 (en) * 1999-09-03 2006-03-30 삼성전자주식회사 Method and device for deactivation of V5.2 layer 2 using data link map
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
US6628615B1 (en) 2000-01-18 2003-09-30 International Business Machines Corporation Two level virtual channels
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
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 (en) * 2000-12-19 2002-06-26 Koninklijke Philips Electronics N.V. Reconstitution of missing or bad frames in cellular telephony
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
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
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 (en) * 2003-10-23 2007-06-06 英特尔公司 Method and equipment for maintenance of sharing consistency of cache memory
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
KR20090042861A (en) * 2003-11-12 2009-04-30 콸콤 인코포레이티드 High Speed Data Rate Interface Provides Enhanced Link Control
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 (en) * 2004-01-09 2007-11-14 株式会社東芝 COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION SYSTEM
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
US20050262250A1 (en) * 2004-04-27 2005-11-24 Batson Brannon J Messaging protocol
US20050240734A1 (en) * 2004-04-27 2005-10-27 Batson Brannon J Cache coherence protocol
US7210000B2 (en) * 2004-04-27 2007-04-24 Intel Corporation Transmitting peer-to-peer transactions through a coherent interface
US7716409B2 (en) * 2004-04-27 2010-05-11 Intel Corporation Globally unique transaction identifiers
CN101895504A (en) * 2004-04-30 2010-11-24 夏普株式会社 wireless communication system
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
US7957428B2 (en) * 2004-05-21 2011-06-07 Intel Corporation Methods and apparatuses to effect a variable-width link
US8046488B2 (en) * 2004-05-21 2011-10-25 Intel Corporation Dynamically modulating link width
US7313712B2 (en) * 2004-05-21 2007-12-25 Intel Corporation Link power saving state
CN1700639A (en) * 2004-05-21 2005-11-23 华为技术有限公司 Method for leading-in and leading-out WLAN authentication and privacy infrastructure certificate information
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
KR100579053B1 (en) 2004-08-26 2006-05-12 삼성전자주식회사 Multi interface method between smart card and memory card and multi interface card
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 (en) * 2004-11-03 2008-04-23 上海贝尔阿尔卡特股份有限公司 Method and apparatus for processing generic framing procedure frames
US7738484B2 (en) * 2004-12-13 2010-06-15 Intel Corporation Method, system, and apparatus for system level initialization
US7761719B2 (en) * 2005-03-28 2010-07-20 Akros Silicon Inc. Ethernet module
JP4791530B2 (en) * 2005-04-13 2011-10-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Electronic device and flow control method
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
US7583600B1 (en) 2005-09-07 2009-09-01 Sun Microsytems, Inc. Schedule prediction for data link layer packets
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 (en) * 2005-12-26 2010-05-05 中兴通讯股份有限公司 An Antenna Selection Indication Method for Space Adaptive Links
US7430628B2 (en) * 2006-01-10 2008-09-30 Kabushiki Kaisha Toshiba System and method for optimized allocation of shared processing resources
US7543115B1 (en) * 2006-01-11 2009-06-02 Intel Corporation Two-hop source snoop based cache coherence protocol
US7512741B1 (en) * 2006-01-11 2009-03-31 Intel Corporation Two-hop source snoop based messaging protocol
JP4572169B2 (en) * 2006-01-26 2010-10-27 エヌイーシーコンピュータテクノ株式会社 Multiprocessor system and operation method thereof
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
US7536515B2 (en) * 2006-06-30 2009-05-19 Intel Corporation Repeated conflict acknowledgements 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
EP2052330A2 (en) * 2006-08-08 2009-04-29 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
US7949794B2 (en) * 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
GB2443465A (en) * 2006-11-06 2008-05-07 Fujitsu Ltd Communication systems
EP2126698A2 (en) * 2006-12-06 2009-12-02 Fusion Multisystems, Inc. Apparatus, system, and method for a shared, front-end, distributed raid
JP2010516143A (en) 2007-01-15 2010-05-13 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Wireless communication method and wireless communication network
DE102007007136B3 (en) 2007-02-09 2008-08-28 Siemens Ag Wheel electronics and method for operating a wheel electronics
US7978635B2 (en) 2007-03-21 2011-07-12 Qualcomm Incorporated H-ARQ acknowledgment detection validation by re-decoding
DE602007001576D1 (en) * 2007-03-22 2009-08-27 Research In Motion Ltd Apparatus and method for improved masking of frame losses
TWI451718B (en) * 2007-05-08 2014-09-01 Interdigital Tech Corp 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
WO2009108205A1 (en) 2008-02-29 2009-09-03 Hewlett-Packard Development Company, L.P. Modular system and retractable assembly for electronic devices
DE102008012979A1 (en) * 2008-03-06 2009-09-10 Gip Ag Method and program for providing data coherency in networks
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
CN102016812B (en) * 2008-04-28 2014-06-11 惠普开发有限公司 Virtual interrupt mode interface and method for virtualizing interrupt mode
US8762652B2 (en) * 2008-04-30 2014-06-24 Freescale Semiconductor, Inc. Cache coherency protocol in a data processing system
CN101599811B (en) * 2008-06-02 2011-04-06 华为技术有限公司 Data processing device, communication equipment and data processing method
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 (en) * 2008-07-25 2011-04-27 浙江大学 Establishment and maintenance method of cognitive radio communication link based on rateless code
CA2736470A1 (en) * 2008-09-08 2010-03-11 Samsung Electronics Co., Ltd. Sub-channel acquisition in a digital television receiver designed to receive mobile/handheld signals
CN102204396B (en) * 2008-09-10 2014-08-06 科姆拉布斯公司 Wide area positioning system
US9119165B2 (en) * 2009-09-10 2015-08-25 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 (en) * 2008-09-12 2010-07-28 中国科学院计算技术研究所 A kind of multiprocessor system and Cache consistent message transmission method
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 (en) * 2008-11-06 2010-10-20 주식회사 하이닉스반도체 Semiconductor memory device and output enable signal generation method
US8706479B2 (en) * 2008-11-14 2014-04-22 Broadcom Corporation Packet loss concealment for sub-band codecs
CN101437033B (en) * 2008-12-16 2012-07-11 杭州华三通信技术有限公司 Method and network appliance for supporting variable velocity
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 (en) * 2009-02-02 2016-02-26 엘지전자 주식회사 Transmission / reception system and data processing method
KR20100092353A (en) * 2009-02-12 2010-08-20 엘지전자 주식회사 Methods and apparatus of managing a traffic encryption key
WO2010096969A1 (en) * 2009-02-27 2010-09-02 华为技术有限公司 Method of sending upstream frame in passive optical network and apparatus thereof
KR101133256B1 (en) * 2009-02-27 2012-04-09 한국과학기술원 Apparatus and method for processing timestamp using signature information in physical layer
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
US9690625B2 (en) * 2009-06-16 2017-06-27 Oracle America, Inc. System and method for out-of-order resource allocation and deallocation in a threaded machine
US8335911B2 (en) * 2009-05-21 2012-12-18 Oracle America, Inc. Dynamic allocation of resources in a threaded, heterogeneous processor
US8199759B2 (en) 2009-05-29 2012-06-12 Intel Corporation Method and apparatus for enabling ID based streams over PCI express
CN101561794B (en) * 2009-06-05 2012-07-04 威盛电子股份有限公司 Universal serial bus device
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 (en) * 2009-09-27 2010-04-14 上海华为技术有限公司 Method for sending and receiving downstream data and device thereof
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
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
US9081501B2 (en) * 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
US8804960B2 (en) * 2010-02-22 2014-08-12 International Business Machines Corporation Implementing known scrambling relationship among multiple serial links
US8892820B2 (en) * 2010-03-19 2014-11-18 Netapp, Inc. Method and system for local caching of remote storage data
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 (en) * 2010-05-04 2013-11-20 西安交通大学 60GHz multi-antenna system for shading and eluding and signal processing method thereof
CN102238623B (en) * 2010-05-06 2014-04-09 中兴通讯股份有限公司 Method for accelerating status response of control window of wireless link and base station subsystem
JP2011248814A (en) * 2010-05-31 2011-12-08 Nec Corp Device having pci express link error detection and automatic restoration function
US9448938B2 (en) * 2010-06-09 2016-09-20 Micron Technology, Inc. Cache coherence protocol for persistent memories
CN101867452B (en) 2010-06-10 2013-07-17 国网电力科学研究院 Communication method of serial real-time bus special in electricity
KR101323055B1 (en) * 2010-06-17 2013-10-29 엘지디스플레이 주식회사 METHOD AND APPARATUS FOR RECOVERING A PIXEL CLOCK BASED INTERNL DISPLAYPORT(iDP) INTERFACE AND DISPLAY DEVICE USING THE SAME
CN102315917B (en) * 2010-07-06 2014-12-17 瑞昱半导体股份有限公司 Electricity-saving method and device for signal transmission
US8402295B2 (en) 2010-07-09 2013-03-19 Qualcomm Incorporated Techniques employing flits for clock gating
CN102377608B (en) * 2010-08-12 2014-07-09 盛科网络(苏州)有限公司 Physical layer fault simulating system and method
US8656115B2 (en) * 2010-08-20 2014-02-18 Intel Corporation Extending a cache coherency snoop broadcast protocol with directory information
WO2012038546A1 (en) * 2010-09-23 2012-03-29 St-Ericsson Sa Multi-lane data transmission de-skew
US8751714B2 (en) * 2010-09-24 2014-06-10 Intel Corporation Implementing quickpath interconnect protocol over a PCIe interface
US9104793B2 (en) * 2010-09-24 2015-08-11 Intel Corporation Method and system of adapting communication links to link conditions on a platform
US9146610B2 (en) 2010-09-25 2015-09-29 Intel Corporation Throttling integrated link
US8805196B2 (en) * 2010-09-30 2014-08-12 Teradyne, Inc. Electro-optical communications link
JP5597104B2 (en) * 2010-11-16 2014-10-01 キヤノン株式会社 Data transfer apparatus and control method thereof
CN102142987B (en) * 2010-12-09 2014-01-08 浪潮(北京)电子信息产业有限公司 Serial bus equipment and data transmission method thereof
JP2012146041A (en) 2011-01-11 2012-08-02 Hitachi Ltd Computer device and signal transmission method
JP2012155650A (en) * 2011-01-28 2012-08-16 Toshiba Corp Router and many-core system
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
US8929373B2 (en) * 2011-09-29 2015-01-06 Intel Corporation Sending packets with expanded headers
WO2013081580A1 (en) * 2011-11-29 2013-06-06 Intel Corporation Raw memory transaction support
WO2013085501A1 (en) 2011-12-07 2013-06-13 Intel Corporation Multiple transaction data flow control unit for high-speed interconnect
CN102571571A (en) * 2011-12-28 2012-07-11 南京邮电大学 Multilayer effective routing method applied to delay tolerant network (DTN)
CN103188059A (en) 2011-12-28 2013-07-03 华为技术有限公司 Method, device and system for data packet retransmission in quick path interconnect system
CN102594745B (en) * 2011-12-29 2015-02-04 东南大学 Synchronization method for single carrier frequency domain equalization system and realization circuit thereof
US8892269B2 (en) 2012-03-30 2014-11-18 Intel Corporation Power down and quick start of thermal sensor
CN102685128B (en) * 2012-05-09 2015-09-30 东南大学 A kind of protocol construction method based on state machine
US9442876B2 (en) 2012-05-18 2016-09-13 Dell Products, Lp System and method for providing network access for a processing node
US8856573B2 (en) * 2012-06-27 2014-10-07 Intel Corporation Setting a number (N) of fast training sequences (FTS) automatically to an optimal value
US9280504B2 (en) 2012-08-24 2016-03-08 Intel Corporation Methods and apparatus for sharing a network interface controller
US8984313B2 (en) 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US8996757B2 (en) * 2012-09-29 2015-03-31 Intel Corporation Method and apparatus to generate platform correctable TX-RX
US8935578B2 (en) 2012-09-29 2015-01-13 Intel Corporation Method and apparatus for optimizing power and latency on a link
US9003091B2 (en) 2012-10-18 2015-04-07 Hewlett-Packard Development Company, L.P. Flow control for a Serial Peripheral Interface bus
US9479196B2 (en) * 2012-10-22 2016-10-25 Intel Corporation High performance interconnect link layer
US9600431B2 (en) 2012-10-22 2017-03-21 Intel Corporation High performance interconnect physical layer
US20140201463A1 (en) * 2012-10-22 2014-07-17 Robert G. Blankenship High performance interconnect coherence protocol
US9280507B2 (en) * 2012-10-22 2016-03-08 Intel Corporation High performance interconnect physical layer
WO2014133527A1 (en) 2013-02-28 2014-09-04 Intel Corporation Leveraging an enumeration and/or configuration mechanism of one interconnect protocol for a different interconnect protocol
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
US10073808B2 (en) * 2013-12-26 2018-09-11 Intel Corporation Multichip package link
US9946676B2 (en) * 2015-03-26 2018-04-17 Intel Corporation Multichip package link

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1044559A (en) * 1989-01-27 1990-08-08 英国电讯公司 Telecommunication system
CN1354915A (en) * 1999-02-10 2002-06-19 艾利森公司 Maximum likelihood RAKE receiver for use in code division, multiple access wireless communication system
US6185250B1 (en) * 1999-03-10 2001-02-06 Lucent Technologies Inc. Training of level learning modems
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
US6865231B1 (en) * 2000-06-20 2005-03-08 Hewlett-Packard Development Company, L.P. High-speed interconnection adapter having automated crossed differential pair correction
CN1781082A (en) * 2003-03-25 2006-05-31 英特尔公司 High Performance Serial Bus Test Method
CN1922828A (en) * 2004-03-15 2007-02-28 英特尔公司 Transceiver with automatic configuration based on auto-negotiation
CN1700701A (en) * 2004-05-21 2005-11-23 英特尔公司 Method and apparatuses for the physical layer initialization of a link-based system interconnect
US8161429B1 (en) * 2004-08-20 2012-04-17 Altera Corporation Methods and apparatus for initializing serial links
CN101627593A (en) * 2007-03-09 2010-01-13 高通股份有限公司 Channel estimation using frequency smoothing
CN101631000A (en) * 2008-06-25 2010-01-20 英特尔公司 Link and lane level packetization scheme of encoding in serial links
CN101854331A (en) * 2009-04-02 2010-10-06 天际微芯(北京)科技有限公司 Training sequence structure and training method
CN102656574A (en) * 2009-12-04 2012-09-05 意法爱立信有限公司 Method and system for reliable link startup

Also Published As

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

Similar Documents

Publication Publication Date Title
CN111737167B (en) Apparatus, method and system for high performance interconnect physical layer
US11080212B2 (en) High performance interconnect physical layer

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant