CN112860610A - 通用物理层上的多协议支持 - Google Patents

通用物理层上的多协议支持 Download PDF

Info

Publication number
CN112860610A
CN112860610A CN202011022956.3A CN202011022956A CN112860610A CN 112860610 A CN112860610 A CN 112860610A CN 202011022956 A CN202011022956 A CN 202011022956A CN 112860610 A CN112860610 A CN 112860610A
Authority
CN
China
Prior art keywords
crc
encoders
ecc
interconnect
link
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011022956.3A
Other languages
English (en)
Inventor
D·达斯夏尔马
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
Publication of CN112860610A publication Critical patent/CN112860610A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0009Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Communication Control (AREA)
  • Multi Processors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

系统和设备可以包括物理层(PHY),该PHY包括用于支持多个互连协议的逻辑PHY。逻辑PHY可以包括对应于第一互连协议的循环冗余校验(CRC)编码器的第一集合,以及对应于第二互连协议的CRC编码器的第二集合。多路复用器可以基于所选择的互连协议将数据引导至CRC编码器的第一集合或第二集合。逻辑PHY可以包括对应于第一互连协议的纠错码(ECC)编码器的第一集合,以及对应于第二互连协议的ECC编码器的第二集合。多路复用器可以基于所选择的互连协议将数据引导至ECC编码器的第一集合或第二集合。在实施例中,可以基于互连协议和链路操作条件来使用不同的CRC/ECC组合。

Description

通用物理层上的多协议支持
相关申请的交叉引用
根据35U.S.C.§119(e),本申请要求享有于2019年11月27日提交的、题为“MULTI-PROTOCOL SUPPORT ON COMMON PHYSICAL LAYER IN CONSIDERATION OF MODULATION WITHMULTIPLE FORWARD ERROR CORRECTION AND CYCLIC REDUNDANCY CHECK(CRC)CODES”的美国临时专利申请序列号62/941,445的权益,其全部内容通过引用并入本文。
背景技术
当串行链路的数据速率超过32.0GT/s时,可以使用带有前向纠错(FEC)的脉冲幅度调制(PAM,例如,PAM-4),以将有效的误码率(BER)限制在可接受的范围内。前向纠错(FEC)是一种用于控制在通过不可靠或嘈杂的通信信道进行的数据传输中的错误的技术。发送方可以通过使用纠错码(ECC)以冗余方式对消息进行编码。冗余允许接收机检测可能在消息中任何地方发生的有限数量的错误,并且经常在不进行重传的情况下纠正这些错误。
附图说明
图1示出了包括多核心处理器的计算系统的框图的实施例。
图2A-2B是根据本公开的实施例的包括一个或多个重定时器的示例链路的简化框图。
图3是根据本公开的实施例的用于支持多个互连协议的公共物理层(公共PHY)的示意图。
图4是根据本公开的实施例的公共PHY的发送机侧逻辑子块的示意图。
图5是根据本公开的实施例的公共PHY的接收机侧逻辑子块的示意图。
图6是根据本公开的实施例的用于动态改变公共PHY中的互连操作条件的过程流程图。
图7示出了包括互连架构的计算系统的实施例。
图8示出了包括分层栈的互连架构的实施例。
图9示出了要在互连架构内生成或接收的请求或分组的实施例。
图10示出了用于互连架构的发射机和接收机对的实施例。
图11示出了包括处理器的计算系统的框图的另一实施例。
图12示出了包括多个处理器插座的计算系统的框的实施例。
图13是示出根据本公开的实施例的示例链路训练状态机的示意图。
附图未按比例绘制。
具体实施方式
在以下描述中,阐述了许多具体细节(例如,特定类型的处理器和系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定测量/高度、特定处理器流水线级和操作等的示例),以便提供对本公开的透彻理解。然而,对于本领域技术人员将显而易见的是,不一定采用这些具体细节来实践本公开。在其他实例中,没有详细地描述公知的组件或方法(例如,特定的和可替代的处理器架构、用于所描述的算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技术和材料、特定编译器实现方式、特定代码形式的算法表示、特定断电和门控技术/逻辑以及计算机系统的其他具体操作细节),以避免不必要地模糊本公开。
尽管可以参考在诸如计算平台或微处理器之类的特定集成电路中的能量节约和能量效率来描述以下实施例,但是其他实施例也适用于其他类型的集成电路和逻辑器件。本文所描述的实施例的类似技术和教导可以应用于其他类型的电路或半导体器件,其也可以受益于更好的能量效率和能量节约。例如,所公开的实施例不限于台式计算机系统或UltrabooksTM。并且还可以用于其他设备,例如,手持设备、平板式计算机、其他薄型笔记本、片上系统(SOC)设备和嵌入式应用。手持设备的一些示例包括蜂窝电话、互联网协议设备、数字相机、个人数字助理(PDA)和手持PC。嵌入式应用典型地包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络中心、广域网(WAN)交换机或可以执行下面教导的功能和操作的任何其他系统。此外,本文所描述的装置、方法和系统不限于物理计算设备,而是还可以涉及用于能量节约和效率的软件优化。如将在以下说明书中变得显而易见的,本文所描述的方法、装置和系统的实施例(无论是参考硬件、固件、软件还是其组合)对于与性能考虑因素平衡的“绿色技术”未来是至关重要的。
随着计算系统的发展,其中的组件变得更加复杂。因此,用于在组件之间耦合和通信的互连架构的复杂度也在增加,以确保针对最佳组件操作满足带宽要求。此外,不同的市场细分要求互连架构的不同方面适合市场的需要。例如,服务器要求更高的性能,而移动生态系统有时能够牺牲整体性能以节约功率。然而,大多数结构的唯一目的是以最大功率节约来提供可能的最高性能。下面讨论了多个互连,这些互连将潜在地受益于本文所描述的公开的方面。
参考图1,描绘了包括多核心处理器的计算系统的框图的实施例。处理器100包括任何处理器或处理设备,例如,微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(SOC)或用于执行代码的其他设备。在一个实施例中,处理器100包括至少两个核心——核心101和核心102,其可以包括不对称核心或对称核心(所示实施例)。然而,处理器100可以包括任何数量的处理元件,这些处理元件可以是对称或不对称的。
在一个实施例中,处理元件指代用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、进程单元、上下文、上下文单元、逻辑处理器、硬件线程、核心和/或能够保持处理器的状态(例如,执行状态或架构状态)的任何其他元件。换言之,在一个实施例中,处理元件指代能够独立地与代码(例如,软件线程、操作系统、应用或其他代码)相关联的任何硬件。物理处理器(或处理器插座)典型地指代集成电路,该集成电路潜在地包括任何数量的其他处理元件,例如,核心或硬件线程。
核心通常指代位于集成电路上的能够维持独立架构状态的逻辑,其中每个独立地维持的架构状态与至少一些专用执行资源相关联。与核心不同,硬件线程典型地指代位于集成电路上的能够维持独立架构状态的任何逻辑,其中独立地维持的架构状态共享对执行资源的访问权。如可以看出的,当某些资源是共享的并且其他资源专用于架构状态时,硬件线程和核心的命名法之间的界限重叠。然而通常地,核心和硬件线程被操作系统视为单独的逻辑处理器,其中操作系统能够单独地调度每个逻辑处理器上的操作。
如图1中示出的,物理处理器100包括两个核心——核心101和核心102。这里,核心101和核心102被认为是对称核心,即,具有相同配置、功能单元和/或逻辑的核心。在另一实施例中,核心101包括乱序处理器核心,而核心102包括有序处理器核心。然而,核心101和核心102可以从任何类型的核心(例如,本地核心、软件管理核心、适于执行本地指令集架构(ISA)的核心、适于执行转换指令集架构(ISA)的核心、共同设计的核心或其他已知的核心)中单独选择。在异构核心环境(即,非对称核心)中,可以利用某种形式的转换(例如,二进制转换)以在一个或两个核心上调度或执行代码。然而,为了进一步讨论,核心101中示出的功能单元在下面进一步详细描述,因为核心102中的单元在所描绘的实施例中以类似的方式操作。
如所描绘的,核心101包括两个硬件线程101a和101b,这些硬件线程也可以称为硬件线程槽101a和101b。因此,在一个实施例中,诸如操作系统之类的软件实体潜在地将处理器100视为四个单独的处理器,即,能够同时执行四个软件线程的四个逻辑处理器或处理元件。如上面所提到的,第一线程与架构状态寄存器101a相关联,第二线程与架构状态寄存器101b相关联,第三线程可以与架构状态寄存器102a相关联,并且第四线程可以与架构状态寄存器102b相关联。这里,如上面所描述的,架构状态寄存器(101a、101b、102a和102b)中的每一个可以被称为处理元件、线程槽或线程单元。如所示的,架构状态寄存器101a在架构状态寄存器101b中被复制,因此能够针对逻辑处理器101a和逻辑处理器101b存储单独的架构状态/上下文。在核心101中,还可以针对线程101a和线程101b复制其他较小的资源,例如,分配器和重命名器块130中的指令指针和重命名逻辑。可以通过分区来共享一些资源,例如,重新排序/引退单元135中的重新排序缓冲器、ILTB 120、加载/存储缓冲器和队列。其他资源(例如,通用内部寄存器、(多个)页表基址寄存器、低级别数据高速缓存和数据TLB115、(多个)执行单元140以及乱序单元135的部分)是潜在地完全共享的。
处理器100通常包括其他资源,这些资源可以是完全共享的、通过分区共享的或由处理元件专用/专用于处理元件的。在图1中,示出了具有处理器的说明性逻辑单元/资源的纯示例性处理器的实施例。注意,处理器可以包括或省略这些功能单元中的任一个,以及包括未描绘出的任何其他已知的功能单元、逻辑或固件。如所示的,核心101包括简化的、代表性的乱序(OOO)处理器核心。但是可以在不同的实施例中利用有序处理器。OOO核心包括用于预测要执行/采用的分支的分支目标缓冲器120和用于存储用于指令的地址转换条目的指令转换缓冲器(I-TLB)120。
核心101还包括解码模块125,该解码模块125与获取单元120耦合以对所获取的元素解码。在一个实施例中,获取逻辑包括分别与线程槽101a、线程槽101b相关联的单独的定序器。通常,核心101与第一ISA相关联,该第一ISA定义/指定在处理器100上可执行的指令。通常,作为第一ISA的一部分的机器代码指令包括指令的一部分(称为操作码),该操作码引用/指定要执行的指令或操作。解码逻辑125包括从其操作码识别这些指令并在流水线中传递经解码的指令以进行由第一ISA定义的处理的电路。例如,如下面更详细讨论的,在一个实施例中,解码器125包括被设计为或适于识别特定指令(例如,事务指令)的逻辑。由于解码器125进行的识别,架构或核心101采取特定的预定义动作来执行与适当指令相关联的任务。重要的是要注意,可以响应于单个或多个指令来执行本文所描述的任务、块、操作和方法中的任何一个;其中一些指令可能是新的或旧的指令。注意,在一个实施例中,解码器126识别相同的ISA(或其子集)。可替代地,在异构核心环境中,解码器126识别第二ISA(第一ISA的子集或不同的ISA)。
在一个示例中,分配器和重命名器块130包括用于保留资源(例如,用于存储指令处理结果的寄存器文件)的分配器。然而,线程101a和线程101b潜在地能够乱序执行,其中分配器和重命名器块130还保留其他资源,例如,用于跟踪指令结果的重新排序缓冲器。单元130还可以包括寄存器重命名器,以将程序/指令参考寄存器重命名为处理器100内部的其他寄存器。重新排序/引退单元135包括诸如上面提到的重新排序缓冲器、加载缓冲器和存储缓冲器之类的组件以支持乱序执行和乱序执行的指令的稍后有序引退。
在一个实施例中,(多个)调度器和执行单元块140包括用于调度执行单元上的指令/操作的调度器单元。例如,浮点指令在具有可用的浮点执行单元的执行单元的端口上被调度。还包括与执行单元相关联的寄存器文件以存储信息指令处理结果。示例性执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元和其他已知的执行单元。
较低级别数据高速缓存和数据转换缓冲器(D-TLB)150耦合到(多个)执行单元140。数据高速缓存用于存储最近使用/操作的元素,例如,数据操作数,其潜在地保持在存储器一致性状态中。D-TLB用于存储最近的虚拟/线性到物理地址转换。作为特定示例,处理器可以包括页表结构以将物理存储器分成多个虚拟页。
这里,核心101和核心102共享对更高级别或更远的高速缓存(例如,与片上接口110相关联的第二级高速缓存)的访问权。注意,更高级别或更远指代高速缓存级别增加或从(多个)执行单元进一步远离。在一个实施例中,更高级别高速缓存是最后一级数据高速缓存——处理器100上的存储器层级中的最后高速缓存——例如,第二或第三级数据高速缓存。然而,更高级别高速缓存不限于此,因为它可以与指令高速缓存相关联或包括指令高速缓存。迹线高速缓存——一种类型的指令高速缓存——相反可以在解码器125之后耦合以存储最近解码的迹线。这里,指令潜在地指代宏指令(即,由解码器识别的通用指令),其可以解码为多个微指令(微操作)。
在所描绘的配置中,处理器100还包括片上接口模块110。历史上,下面更详细描述的存储器控制器已经被包括在处理器100外部的计算系统中。在这种场景中,片上接口110用于与处理器100外部的设备(例如,系统存储器175、芯片组(通常包括用于连接到存储器175的存储器控制器中心和用于连接外围设备的I/O控制器中心)、存储器控制器中心、北桥或其他集成电路)进行通信。并且在这种场景中,总线105可以包括任何已知的互连,例如,多点总线、点对点互连、串行互连、并行总线、一致(例如,高速缓存一致)总线、分层协议架构、差分总线和GTL总线。
存储器175可以专用于处理器100或者与系统中的其他设备共享。存储器175的类型的常见示例包括DRAM、SRAM、非易失性存储器(NV存储器)和其他已知的存储设备。注意,设备180可以包括图形加速器、与存储器控制器中心耦合的处理器或卡、与I/O控制器中心耦合的数据存储装置、无线收发机、闪存设备、音频控制器、网络控制器或其他已知的设备。
然而,最近随着更多逻辑和设备被集成在诸如SOC之类的单个管芯上,这些设备中的每一个可以合并在处理器100上。例如,在一个实施例中,存储器控制器中心与处理器100在同一封装和/或管芯上。这里,核心的一部分(核心上部分)110包括一个或多个控制器,用于与诸如存储器175或图形设备180之类的其他设备相接合。包括用于与这种设备相接合的互连和控制器的配置通常被称为核心上(或非核心配置)。作为示例,片上接口110包括用于片上通信的环形互连和用于片外通信的高速串行点对点链路105。然而,在SOC环境中,甚至更多的设备(例如,网络接口、协处理器、存储器175、图形处理器180和任何其他已知的计算机设备/接口)可以集成在单个管芯或集成电路上以提供具有高功能和低功耗的小形状因子。
在一个实施例中,处理器100能够执行编译器、优化和/或转换器代码177以编译、转换和/或优化应用代码176,以支持本文所描述的装置和方法或与其相接合。编译器通常包括用于将源文本/代码转换成目标文本/代码的程序或程序集。通常,利用编译器来编译程序/应用代码是在多个阶段和多遍中完成的,以将高级别编程语言代码变换为低级别机器或汇编语言代码。然而,单遍编译器仍然可以用于简单编译。编译器可以利用任何已知的编译技术并且执行任何已知的编译器操作,例如,词法分析、预处理、解析、语义分析、代码生成、代码变换和代码优化。
较大的编译器通常包括多个阶段,但是大多数情况下这些阶段被包括在两个一般阶段中:(1)前端,即,通常在该处可以进行句法处理、语义处理和一些变换/优化,以及(2)后端,即,通常在该处进行分析、变换、优化和代码生成。一些编译器指代中间部分,其说明了编译器的前端与后端之间的界定的模糊处。因此,对编译器的插入、关联、生成或其他操作的引用可以在前述阶段或遍中的任何一个以及编译器的任何其他已知的阶段或遍中进行。作为说明性示例,编译器潜在地在编译的一个或多个阶段中插入操作、调用、函数等,例如,在编译的前端阶段插入调用/操作,并且然后在变换阶段期间将调用/操作变换为较低级别的代码。注意,在动态编译期间,编译器代码或动态优化代码可以插入此类操作/调用,并且优化代码以用于在运行时期间执行。作为特定说明性示例,可以在运行时期间动态地优化二进制代码(已经编译的代码)。这里,程序代码可以包括动态优化代码、二进制代码或其组合。
与编译器类似,转换器(例如,二进制转换器)静态地或动态地转换代码以优化和/或转换代码。因此,对代码、应用代码、程序代码或其他软件环境的执行的引用可以指代:(1)动态地或静态地执行(多个)编译器程序、优化代码优化器或转换器以编译程序代码、维护软件结构、执行其他操作、优化代码或转换代码;(2)执行包括操作/调用的主程序代码,例如,已经被优化/编译的应用代码;(3)执行与主程序代码相关联的其他程序代码(例如,库),以维护软件结构、执行其他软件相关的操作或优化代码;或(4)其组合。
图2A是示出根据本公开的实施例的在上游组件下游端口202与下游组件上游端口208之间具有两个重定时器204和206的样本拓扑200的示意图和时序图。上游组件下游端口202可以是针对基于PCIe的设备(例如,CPU或者能够生成数据分组并且跨符合PCIe协议的数据链路发送数据分组的其他设备)的端口。下游组件上游端口208可以是针对外围组件的端口,该外围组件可以从符合PCIe协议的链路接收数据分组。应当理解,上游组件下游端口202和下游组件上游端口208可以跨(多个)PCIe链路(示为PCIe链路210a-210c)发送并接收数据分组。
拓扑200可以包括一个或多个重定时器204和206。重定时器204和206可以用作在物理层操作的信号中继器,以微调来自上游组件202和/或下游组件上游端口208的信号。重定时器可以使用连续时间线性均衡化(CTLE)、决策反馈均衡化(DFE),并且发送脉冲响应均衡化(Tx FIR EQ或仅TxEQ)。重定时器对数据链路和事务层是透明的,但是实现了完整的物理层。
多通道PCIe链路在每个方向上分为三个链路段(LS)210a、210b和210c。上游组件下游端口202可以通过多通道PCIe链路210a耦合到重定时器1 204。重定时器1 204可以通过链路段210b耦合到重定时器2 206。并且重定时器2 206可以通过链路段210c耦合到下游组件上游端口208。
组件也可以通过边带链路来耦合。上游组件下游端口202可以通过边带链路212a耦合到重定时器1 204。重定时器1 204可以通过边带链路212b耦合到重定时器2 206。并且重定时器2 206可以通过边带链路212c耦合到下游组件上游端口208。
重定时器(缓冲器)设备的主要功能是信号重定时。这些功能由重定时器204和206执行。特定的重定时器设备电路将取决于用于链路的PHY。通常,重定时器电路被配置为恢复传入信号并且使用本地时钟和新的发送均衡化电路进行重传,并且可以典型地采用出于该目的的公知的电路,例如,锁相环。重定时器还可以包括发射机和接收机电路,该发射机和接收机电路包括一个或多个放大器电路,以及用于增加接收信号的驱动电平的各种类型的公知的信号调节电路。这种重定时器电路对于高速互连领域技术人员是公知的,并且因此本文没有示出或讨论进一步的细节。
每个重定时器204和206可以具有上游路径和下游路径。在一些实现方式中,重定时器可以包括两个伪端口,并且伪端口可以动态地确定其相应的下游/上游定向。此外,重定时器204和206可以支持包括转发模式和执行模式的操作模式。在某些实例中,重定时器204和206可以对在子链路上接收到的数据进行解码,并且对要在其另一子链路上向下游转发的数据进行重新编码。因此,重定时器可以捕获接收到的位流,之后重新生成位流并且将其重传到另一设备或甚至另一重定时器(或重驱动器或中继器)。在某些情况下,重定时器可以例如在处理并转发有序集合数据时修改其接收的数据中的某些值。另外地,重定时器可以潜在地支持任何宽度选项(例如,由诸如PCIe之类的规范定义的宽度选项集合)作为其最大宽度。
随着串行互连(例如,PCIe、UPI、USB等)的数据速率增加,越来越多地使用重定时器来扩展信道范围。多个重定时器可以级联,以达到甚至更长的信道范围。可以预期,随着信号速度增加,通常情况下,信道范围将典型地减小。因此,随着互连技术加速,重定时器的使用可以变得更加常见。作为示例,随着采用16GT/s的PCIe Gen-4来支持PCIe Gen-3(8GT/s),PCIe互连中重定时器的使用可能增加,随着速度增加,在其他互连中也可能出现这种情况。
在一种实现方式中,可以针对基于快速PCI Gen-4(16GT/s)的重定时器定义常见的BGA(球栅阵列)封装。这样的设计至少可以解决常规PCIe Gen-3(8GT/s)重定时器设备中发现的示例缺陷中的一些,以及采用PCIe Gen-4时出现的问题中的一些。此外,对于PCIeGen-4,期望重定时器供应商的数量和容量增加。由于来自加倍的数据速率(从8GT/s到16GT/s)的信号损耗,在Gen-4中可实现的互连长度显著降低。在这种和其他示例互连技术中,随着数据速率增加,重定时器可以由此具有增加的效用,因为重定时器可以用于显著地增加信道长度,该信道长度否则将受到增加的数据速率的限制。
尽管重定时器被示出为与上游组件和下游组件分离,但是重定时器可以是上游组件或下游组件的一部分、在上游组件或下游组件的板上或在下游组件的封装上。
上游组件下游端口202可以具有对存储元件222(例如,闪速存储装置、高速缓存或其他存储器设备)的访问权。重定时器1 204可以可选地包括类似的存储元件224。重定时器2 206可以可选地包括类似的存储元件226。下游组件上游端口208可以可选地包括类似的存储元件228。
图2B是示出根据本公开的实施例的带内上游端口和重定时器配置的连接的系统250的示意图。如图2A中示出的,上游组件下游端口202可以通过由两个重定时器204、206扩展的链路210a-210c耦合到下游组件上游端口208。在该示例中,下游端口202可以设置有重定时器配置寄存器地址/数据寄存器252,以使用增强的SKP OS的字段来保持要在配置访问命令中发送到两个重定时器中的一个的数据。SKP OS的一个或多个位可以包括命令代码、数据或地址以在重定时器(例如,分别为204、206)的配置寄存器(例如,256、258)处使用,以从寄存器256、258读取数据/向寄存器256、258写入数据。重定时器可以通过自身在增强的SKP OS的后续实例中对响应数据进行编码来响应通过在增强的SKP OS的实例中对数据进行编码而被发送的配置访问命令。可以在下游端口处提取由重定时器(例如204、206)编码的数据,并将该数据记录在重定时器配置数据返回寄存器(例如,254)中。可以通过系统软件和/或系统的其他组件写入和读取在上游设备下游端口202处维护的寄存器(例如,252、254),从而允许(间接)访问重定时器寄存器:将地址/数据/命令传送给重定时器的一个寄存器(例如,252),以及存储从重定时器返回的响应的第二寄存器(例如,254)。在其他实现方式中,代替或除了在上游组件下游端口202处维护的寄存器之外,这种寄存器(例如,260)可以在下游组件上游端口208处维护,以及其他示例。
继续图2B的示例,结合用于提供对重定时器寄存器的带内访问的机制,重定时器可以具有构造的寄存器,可以利用被良好定义的位和特性对这些寄存器进行寻址。在该示例中,增强的SKP OS被定义/修改为物理层生成的周期性模式,以将命令/信息从“重定时器配置寄存器地址/数据”(例如,252)携带到重定时器,并且将响应从重新定时器携带回以加载到“重定时器配置数据返回”(例如,254),其中一些位被分配用于CRC以保护数据。例如,在PCIe中,这可以包括增强现有的SKP有序集(例如,具有CSR访问和CSR返回(受CRC保护的位))。此外,可以定义用于确保命令/信息到重定时器和对应的响应返回的保证递送的流程。物理层机制可以被增强,以便在需要某种服务的情况下还包括来自重定时器的通知(除了响应之外),以及其他示例特征。
64.0GT/s的PCIe Gen 6(快速PCI第6代)、64.0GT/s的CXL 3.0(计算快速链路第3代)和频率高于32.0GT/s(例如,48.0GT/s或56.0GT/s或64.0GT/s)的CPU-CPU对称一致性链路(例如,UPI(超路径互连))是将需要FEC与CRC结合使用的互连的示例。在SoC中,非常期望同一PHY具有多协议能力,并取决于作为链路伙伴被连接的设备而用作PCIe/CXL/UPI。
在本公开的实施例中,多个协议(例如,PCIe、CXL、UPI)可以共享公共PHY。然而,每个协议可能具有不同的延迟容限和带宽需求。例如,PCIe可以比CXL对延迟增加更加宽容。CPU-CPU对称高速缓存一致性链路(例如,UPI)对延迟增加最敏感。
诸如PCIe和CXL之类的链路可以被划分为较小的独立子链路。例如,一个×16PCIe/CXL链路可以被划分为多达8个独立的链路,每个链路的大小为×2。对称高速缓存一致性链路可能不支持该级别的划分。由于延迟特性的差异、划分支持以及由于基本协议的差异,这些链路可以使用不同的流控制单元(flit)大小和流控制单元布置,即使这些链路可以共享同一物理层。
除了上面提到的各种协议的不同性能和操作条件之外,对于任何给定的协议,操作条件和性能要求也可以改变。操作条件可以影响错误率以及错误之间的相关性,这取决于系统以及过程、电压和温度的任何变化。类似地,不同的应用可以具有不同的延迟和带宽要求。本公开描述了可以动态地适应这些变化的机制。
本公开描述了具有多协议能力的PHY,该PHY可以取决于基础协议的性能要求和操作条件动态地支持不同的FEC、CRC和流控制单元大小。PHY是“物理层(physical layer)”的缩写,并且是可以实现OSI模型的物理层功能的电子电路。
本公开允许链路基于操作条件下的性能需求,在每个方向上独立地在不同的FEC、CRC和流控制单元大小之间动态选择。可以由硬件和/或由硬件在软件帮助下自主执行FEC、CRC和流控制单元大小的动态选择。
图3是根据本公开的实施例的用于支持多个互连协议的公共物理层(公共PHY)300的示意图。图3示出了具有较高数据速率的PAM-4编码的示例公共PHY 300(模拟PHY以及逻辑PHY两者),其可以支持以不同数据速率操作的多个协议(例如,PCIe、CXL、UPI、用于加速器的高速缓存一致性互连(CCIX)、开放式一致性加速器处理器接口(CAPI)等)。模拟PHY302和逻辑PHY 304两者对所支持的每种协议是公共的。模拟PHY 302可支持多通道链路(例如,×16PCIe链路),其中48GT/s和56GT/s的PAM-4用于其他互连协议。
逻辑PHY 304可以包括TX逻辑子块306和RX逻辑子块308。TX逻辑子块306可以包括用于准备用于跨链路进行传输的数据流的逻辑。例如,TX逻辑子块306可以包括空闲流控制单元生成器312以生成流控制单元。可以基于协议、带宽、操作条件、正在使用的协议等来确定流控制单元大小。循环冗余校验(CRC)码生成器314可以包括一个或多个CRC码生成器和用于生成CRC码的滚动CRC码生成器。CRC码是用于检测数据的意外改变的错误检测码。在实施例中,可以在维持时钟完整性的同时绕过CRC码生成器314。TX逻辑子块306还可包括前向纠错(FEC)编码器316,以利用纠错码(ECC)对数据进行编码。FEC编码器316也可以被绕过而不损害时钟完整性。其他逻辑元件也可以存在于TX逻辑子块306中,例如,通道反转318、LFSR 320、符号对齐322等。由于所有协议均基于流控制单元,因此逻辑PHY还可以包括公共重试缓冲器340。
逻辑PHY可以包括RX逻辑子块308。RX逻辑子块308可以包括FEC解码器/旁路322、CRC解码/旁路334和错误报告元件336。FEC解码器332可以对接收到的数据块中的ECC位进行解码并执行纠错。CRC解码逻辑334可以检查不可纠正错误,并将错误报告给错误报告元件336。重试缓冲器340可以用于用信号通知具有不可纠正错误的数据块的重试。其他逻辑元件也可以存在于RX逻辑子块308中,例如,通道反转330、LFSR 328、弹性/漂移缓冲器328、符号对齐324等。
逻辑PHY 304还可以包括静态多路复用器(图中未示出),以在PHY 300支持的不同的协议栈之间进行选择。静态MUX的使用促进逻辑元件的重用(包括传统上链路层功能的重要部分,例如,CRC和Retry),并且导致除了引脚效率和灵活的I/O支持(取决于系统配置在不同的协议之间进行选择的能力)之外的面积/功率效率。静态多路复用器可以基于与所使用的协议关联的流控制单元大小来将数据引导至适当的物理元件和逻辑元件,并且将数据引导至适当的CRC编码器/解码器和FEC编码器/解码器。
公共PHY 300(模拟PHY 302加上逻辑PHY 304)的使用、流控制单元大小、FEC和CRC可以在不同协议和操作条件之间潜在地不同。与针对每个协议多次复制逻辑PHY栈相比,促进公共PHY的任何附加的逻辑的成本都更低。相反,可以基于所使用的协议将数据电引导至适当的编码器/解码器,该协议最初是在链路初始化期间被设置的。
图4是根据本公开的实施例的公共PHY的发送机侧逻辑子块400的示意图。发送机侧逻辑子块400类似于上面描述的TX逻辑子块306。图4示出了数据可以如何基于操作条件来遍历发送机侧逻辑子块400。
作为示例,考虑可以被指派给不同协议甚至相同协议的两个流控制单元大小:128B和256B。例如,PCIe可以仅以256B流控制单元大小运行;取决于工作条件,CXL可以以128B或256B流控制单元大小操作(例如,更高的错误率可以使得朝向256B流控制单元大小移动,以更好地分摊更多的FEC位以纠正更多的错误,并且分摊更多的CRC位以增强CRC),并且UPI可以是128B的。数据路径(包括ECC逻辑和CRC逻辑)能够处理多种流控制单元大小。即使提供了两个流控制单元大小作为示例,但是本领域技术人员将认识到,该技术适用于单个流控制单元大小以及两个以上的流控制单元大小。
在该示例中,发送机侧逻辑子块400包括两个CRC生成器:CRC#1生成器404和CRC#2生成器410。CRC#1生成器基于GF(2),如果错误表现为每个通道上的独立错误(即,FEC之后,通道中的错误相关性是低的),则该CRC#1生成器是有用的。CRC#2生成器基于GF(28),如果通道中的错误是突发性的,则该CRC#2生成器是有用的。每个CRC生成器还具有其滚动CRC变化(例如,滚动CRC#1生成器406和滚动CRC#2生成器408),其中从可靠性角度来看,底层CRC是不足的。滚动CRC生成器可以基于其相应的CRC生成器但是使用相同阶数的不同多项式来生成CRC码。
仅当接收到的流控制单元(F1)的CRC良好且来自其随后的流控制单元(F2)的CRC(在利用不同的多项式对F1进行操作之后)也是良好的,该接收到的流控制单元(F1)才被接受。如果上层栈希望拥有自己的单独校验并且在PHY中不需要CRC解码器,则这里还存在用于绕过CRC的配置。尽管在此示例中示出了四种类型的CRC(两种类型的CRC,以及每种类型的滚动CRC变体),但是本领域技术人员将认识到,取决于要求,可以使用更多或更少的CRC。
此外,在该示例中,使用了3种类型的FEC编码器:ECC#1 414,ECC#2 416和ECC#3418。如果所测量的错误率是可接受的,则还提供了绕过FEC的选项。例如,对运行UPI协议的链路的带宽需求可以是这样的:该链路可以以48.0GT/s运行,并且在48.0GT/s的情况下,所测量的原始突发错误率为10-9。在该示例中,可以绕过FEC,并且依赖于具有重试的CRC来纠正错误,而不是为所有流控制单元付出延迟和带宽损失。因此,即使对于任何给定的流控制单元大小,流控制单元中的可以用于数据和/或数据+控制信息有效载荷的位数也可以是不同的,这取决于用于FEC(如果不使用FEC,则为0)和CRC的位数。
在该示例中,ECC#1 414可以是具有单个符号纠正能力的3路交织的ECC。如果通道中的错误足够相关并且以<=16的突发长度发生并且具有满足可靠性需要的足够高的概率,则可以使用这种类型的ECC编码器。ECC#2 416可以是双位纠正BCH码,如果使用利用PAM-4的预编码,则将使用该ECC#2 416,并且会在给定通道中导致很高百分比的错误,从而转换为两位翻转。ECC#2 416可以具有与ECC#1 414相同的低延迟特性,但比ECC#1 414更高效。如果突发长度>16,则ECC#2 416也可以很好地工作。然而,如果预编码之后的错误不会导致通道中的两位翻转而是多位翻转,则ECC#1 414是更好的替代方案。ECC#3 418可以是2路交织的双符号纠正BCH码,如果原始突发错误率低(即,10-4–10-5范围),则可以使用该ECC#3 418,因为即使该ECC#3 418具有比ECC#1 414或ECC#2 416更高的延迟损失,也存在多个符号错误的高可能性。即使在此示例中,存在三种ECC,但是本领域技术人员将认识到的是,ECC的数量可以多于三个或少于三个,这取决于要求。
为了适应各种流控制单元大小,可以使用缓冲器。例如,对于128 B流控制单元,可以使用单个缓冲器402、424。对于256 B流控制单元,可以使用两个128B的缓冲器:402和402a。
图5是根据本公开的实施例的公共PHY的接收机侧逻辑子块500的示意图。图5示出了与上面描述的发送机侧逻辑子块400相对应的接收机侧逻辑子块500。由于接收机侧逻辑子块500需要纠正错误并检测可能无法被纠正的任何错误,因此接收机侧逻辑子块500包括用于记录错误(错误日志518)并根据需要调用与其链路伙伴的链路级别重试的机制。
示例接收机侧逻辑子块500包括三个FEC解码器:对应于ECC#1编码器414的ECC#1解码器504、对应于ECC#2编码器416的ECC#2 506以及对应于ECC#3编码器416的ECC#3 508。ECC解码器可以纠正错误。在实施例中,可以将某些错误(例如,错误530)报告给错误日志518以进行重试。
示例接收机侧逻辑子块500包括四个CRC解码器,例如,对应于CRC#1编码器404的CRC#1校验解码器510、对应于滚动CRC#1编码器406的滚动CRC#1校验解码器512、对应于CRC#1编码器410的CRC#2校验解码器516以及对应于滚动CRC#2编码器408的滚动CRC#2解码器514。CRC解码器可以确定不可纠正错误(例如,错误532),并将不可纠正错误报告给错误日志518以进行重试。
使用缓冲器502、502a和520类似地解决流控制单元大小。
图6是根据本公开的实施例的用于动态改变公共PHY中的互连操作条件的过程流程图。图6示出了接收机可以如何基于其操作条件来调整流控制单元大小、FEC类型(包括旁路)和CRC类型。因此,通过链路连接的两个组件可以选择同时具有两个不同的FEC/CRC/流控制单元(或进行协商以具有相同的FEC/CRC/流控制单元,这取决于具有最差的FEC/CRC需求的一个组件)。在恢复期间,流控制单元大小、FEC类型和CRC类型被改变。接收机从图5监视其错误以及其性能要求并做出确定。如果需要改变链路的频率、流控制单元大小、FEC和CRC,则通过经由图3中示出的配置和状态寄存器(CSR)接口380提供通知,可以自主地或在软件帮助下进行该确定。
首先,基于在主机设备与连接的端点设备之间的链路初始化期间被选择使用的协议,可以请求并设置初始FEC和CRC组合(602)。针对链路的初始FEC和CRC组合也可以通过来自BIOS的指令被设置,或者通过将FEC/CRC组合设置为带来稳定且令人满意的链路条件的先前设置被设置。在链路处于恢复状态时设置FEC/CRC组合。如果链路处于L0(604),则在对改变FEC/CRC组合的请求进行操作之前,该链路返回到恢复状态。
例如,可以通过首先以与链路原有速度相同的速度将链路置于恢复状态(610)并且改变FEC/CRC组合,来允许针对不同的FEC/CRC码的请求(608)。链路然后可以返回到L0状态(612)以进行操作。
如果在链路上存在较低的带宽需求(614),则链路可以进入恢复状态以切换到较低速度(616)。在实施例中,切换到较低速度可以包括放弃使用FEC,只要链路可以在没有FEC的情况下以较低频率进行操作即可。
如果链路由于其他原因需要进入恢复状态(618),则链路可以利用相同的FEC/CRC参数(如果适用,则不包括FEC)以相同的速度进入恢复状态。然后,链路可以进入L0状态,并且使用那些相同的FEC/CRC参数进行操作(622)。在一些实施例中,当链路处于恢复状态中时,链路可以基于其他输入来调整FEC/CRC参数,如608和614中所描述的。
当链路以L0运行时,PHY可以收集错误统计信息(606)。可以通过来自接收机(或发送机,如果适用)处的CRC和FEC解码的错误日志来收集错误统计信息。
参考图7,示出了由互连一组组件的点对点链路组成的结构的实施例。系统700包括与控制器中心715耦合的处理器705和系统存储器710。处理器705包括任何处理元件,例如,微处理器、主机处理器、嵌入式处理器、协处理器或其他处理器。处理器705通过前端总线(FSB)706与控制器中心715耦合。在一个实施例中,FSB 706是如下面所描述的串行点对点互连。在另一实施例中,链路706包括符合不同的互连标准的串行差分互连架构。
系统存储器710包括任何存储器设备,例如,随机存取存储器(RAM)、非易失性(NV)存储器或可由系统700中的设备访问的其他存储器。系统存储器710通过存储器接口716与控制器中心715耦合。存储器接口的示例包括双倍数据速率(DDR)存储器接口、双通道DDR存储器接口和动态RAM(DRAM)存储器接口。
在一个实施例中,控制器中心715是快速外围组件互连(PCIe或PCIE)互连层级中的根中心、根联合体或根控制器。控制器中心715的示例包括芯片组、存储器控制器中心(MCH)、北桥、互连控制器中心(ICH)、南桥和根端口控制器/中心。术语芯片组经常指代两个物理上分离的控制器中心,即,存储器控制器中心(MCH)耦合到互连控制器中心(ICH)。注意,当前系统经常包括与处理器705集成的MCH,而控制器中心715以与下面所描述的方式类似的方式与I/O设备通信。在一些实施例中,可选地通过根联合体715来支持对等路由。
这里,控制器中心715通过串行链路719与交换机/桥接器720耦合。输入/输出模块717和721(也可以称为接口/端口717和721)包括/实现分层协议栈以提供控制器中心715与交换机720之间的通信。在一个实施例中,多个设备能够耦合到交换机720。
交换机/桥接器720将来自设备725的分组/消息向上游(即,沿着层级朝向根联合体向上)路由到控制器中心715,并且将来自处理器705或系统存储器710的分组/消息向下游(即,沿着层级远离根端口控制器向下)路由到设备725。在一个实施例中,交换机720被称为多个虚拟PCI到PCI桥接器设备的逻辑组装件。设备725包括要耦合到电子系统的任何内部或外部设备或组件,例如,I/O设备、网络接口控制器(NIC)、插入卡、音频处理器、网络处理器、硬盘驱动器、存储设备、CD/DVD ROM、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、火线(Firewire)设备、通用串行总线(USB)设备、扫描仪和其他输入/输出设备。通常在PCIe中,诸如设备之类的日常用语被称为端点。尽管没有具体示出,但是设备725可以包括PCIe到PCI/PCI-X桥接器,以支持旧有的PCI设备或其他版本的PCI设备。PCIe中的端点设备通常被分类为旧有的集成端点、PCIe集成端点或根联合体集成端点。
图形加速器730也通过串行链路732与控制器中心715耦合。在一个实施例中,图形加速器730耦合到与ICH耦合的MCH。然后,将交换机720以及因此I/O设备725耦合到ICH。I/O模块731和718还用于实现分层协议栈以在图形加速器730与控制器中心715之间进行通信。类似于上面关于MCH的讨论,图形控制器或图形加速器730本身可以集成在处理器705中。
转到图8,示出了分层协议栈的实施例。分层协议栈800包括任何形式的分层通信栈,例如,快速路径互连(QPI)栈、PCIe栈、下一代高性能计算互连栈或其他分层栈。尽管紧接着下面参考图7-10进行的讨论涉及PCIe栈,但是相同的概念可以应用于其他互连栈。在一个实施例中,协议栈800是PCIe协议栈,其包括事务层805、链路层810和物理层820。接口(例如,图7中的接口717、718、721、722、726和731)可以表示为通信协议栈800。作为通信协议栈的表示也可以称为实现/包括协议栈的模块或接口。
快速PCI使用分组以在组件之间传送信息。在事务层805和数据链路层810中形成分组以将信息从发送组件运送到接收组件。当发送的分组流经其他层时,利用在这些层处处理分组所必需的附加信息来对发送的分组进行扩展。在接收侧,发生相反的过程,并且分组从其物理层820表示变换为数据链路层810表示,并且(针对事务层分组)最终变换为可以由接收设备的事务层805处理的形式。
事务层
在一个实施例中,事务层805用于提供设备的处理核心与互连架构(例如,数据链路层810和物理层820)之间的接口。就这一点而言,事务层805的主要责任是对分组(即,事务层分组或TLP)的组装和拆分。转换层805典型地管理针对TLP的基于信用的流控制。PCIe实现分离事务,即,请求和响应按时间分离的事务,从而在目标设备收集针对响应的数据时允许链路运送其他业务。
此外,PCIe利用基于信用的流控制。在该方案中,设备在事务层805中通告接收缓冲器中的每一个的初始信用量。在链路的相对端处的外部设备(例如,图7中的控制器中心715),对由每个TLP消耗的信用的数量进行计数。如果事务没有超过信用限制,则该事务可以被发送。在接收到响应后,将恢复信用量。信用方案的一个优点是,只要没有达到信用限制,则信用返还的时延将不会影响性能。
在一个实施例中,四个事务地址空间包括配置地址空间、存储器地址空间、输入/输出地址空间和消息地址空间。存储器空间事务包括用于将数据传送到存储器映射位置/从存储器映射位置传送数据的读取请求和写入请求中的一个或多个。在一个实施例中,存储器空间事务能够使用两种不同的地址格式,例如,短地址格式(例如,32位地址)或长地址格式(例如,64位地址)。配置空间事务用于访问PCIe设备的配置空间。针对配置空间的事务包括读取请求和写入请求。消息空间事务(或简称为消息)被定义以支持PCIe代理之间的带内通信。
因此,在一个实施例中,事务层805组装分组报头/有效载荷806。当前分组报头/有效载荷的格式可以在PCIe规范网站处的PCIe规范中找到。
快速参考图9,示出了PCIe事务描述符的实施例。在一个实施例中,事务描述符900是用于运送事务信息的机制。就这一点而言,事务描述符900支持对系统中的事务的标识。其他潜在用途包括跟踪对默认事务排序的修改以及事务与信道的关联。
事务描述符900包括全局标识符字段902、属性字段904和信道标识符字段906。在所示示例中,全局标识符字段902被描绘为包括本地事务标识符字段908和源标识符字段910。在一个实施例中,全局事务标识符902对于所有未完成的请求是唯一的。
根据一种实现方式,本地事务标识符字段908是由请求代理生成的字段,并且本地事务标识符字段908对于对该请求代理而言要求完成的所有未完成请求是唯一的。此外,在该示例中,源标识符910唯一地标识PCIe层级内的请求者代理。因此,本地事务标识符908字段连同源ID 910一起提供层级域内的事务的全局标识。
属性字段904指定事务的特性和关系。就这一点而言,属性字段904潜在地用于提供允许对事务的默认处理进行修改的附加信息。在一个实施例中,属性字段904包括优先级字段912、保留字段914、排序字段916和非窥探(no-snoop)字段918。这里,优先级子字段912可以由启动程序修改以向事务指派优先级。保留属性字段914被保留用于将来使用或供应商定义的使用。可以使用保留属性字段来实现使用优先级或安全属性的可能的使用模型。
在该示例中,排序属性字段916用于供应传达可以修改默认排序规则的排序类型的可选信息。根据一个示例实现方式,排序属性“0”表示要应用的默认排序规则,其中排序属性“1”表示放宽排序,其中写入可以在相同方向上传递写入,并且读取完成可以在相同方向上传递写入。窥探属性字段918用于确定事务是否被窥探。如所示的,信道ID字段906标识与事务相关联的信道。
链路层
链路层810(也称为数据链路层810)用作事务层805与物理层820之间的中间级。在一个实施例中,数据链路层810的责任是提供用于在链路的两个组件之间交换事务层分组(TLP)的可靠机制。数据链路层810的一侧接受由事务层805组装的TLP,应用分组序列标识符811(即,标识号或分组号),计算并应用错误检测码(即,CRC 812),并且将经修改的TLP提交给物理层820以用于跨物理到外部设备的传输。
物理层
在一个实施例中,物理层820包括逻辑子块821和电子块822,以将分组物理地发送到外部设备。这里,逻辑子块821负责物理层820的“数字”功能。就这一点而言,逻辑子块包括用于准备用于由电子块822传输的传出信息的发送部分,以及用于在将接收到的信息传递到链路层810之前标识并准备接收到的信息的接收机部分。
电子块822包括发射机和接收机。发射机由逻辑子块821供应符号,发射机将该符号串行化并发送到外部设备上。接收机被供应有来自外部设备的经串行化的符号,并且将接收到的信号变换为位流。位流被解串行化并且供应给逻辑子块821。在一个实施例中,采用8b/10b传输码,其中发送/接收十位符号。这里,特殊符号用于利用帧823对分组进行组帧。此外,在一个示例中,接收机还提供从传入串行流中恢复的符号时钟。
如上面所陈述的,尽管参考PCIe协议栈的特定实施例讨论了事务层805、链路层810和物理层820,但是分层协议栈不限于此。实际上,可以包括/实现任何分层协议。作为示例,表示为分层协议的端口/接口包括:(1)用于组装分组的第一层(即,事务层);用于对分组进行排序的第二层(即,链路层);以及用于发送分组的第三层(即,物理层)。作为具体示例,使用公共标准接口(CSI)分层协议。
接下来参考图10,示出了PCIe串行点对点结构的实施例。尽管示出了PCIe串行点对点链路的实施例,但是串行点对点链路不限于此,因为串行点对点链路包括用于发送串行数据的任何传输路径。在所示的实施例中,基本PCIe链路包括两个低电压差分驱动信号对:发送对1006/1011和接收对1012/1007。因此,设备1005包括用于将数据发送到设备1010的发送逻辑1006以及用于从设备1010接收数据的接收逻辑1007。换言之,在PCIe链路中包括两个发送路径(即,路径1016和1017)以及两个接收路径(即,路径1018和1019)。
传输路径指代用于传输数据的任何路径,例如,传输线路、铜线路、光线路、无线通信信道、红外通信链路或其他通信路径。两个设备(例如,设备1005与设备1010)之间的连接被称为链路(例如,链路1015)。链路可以支持一个通道——每个通道表示差分信号对的集合(一对用于发送,一对用于接收)。为了扩展带宽,链路可以聚合由xN表示的多个通道,其中N是任何支持的链路宽度,例如,1、2、4、8、12、16、32、64或更宽。
差分对指代用于发送差分信号的两个传输路径,例如,线路1016和1017。作为示例,当线路1016从低电压电平切换到高电压电平(即,上升沿)时,线路1017从高逻辑电平驱动到低逻辑电平(即,下降沿)。差分信号潜在地展示出更好的电气特性,例如,更好的信号完整性(即,交叉耦合、电压过冲/下冲、振铃等)。这允许更好的时序窗口,从而实现更快的传输频率。
注意,上面描述的装置、方法和系统可以在前述的任何电子设备或系统中实现。作为具体说明,以下附图提供了用于利用如本文所描述的本公开的示例性系统。随着下面的系统被更详细地描述,从上面的讨论中公开、描述并重新讨论了许多不同的互连。并且显而易见的是,上面描述的发展可以应用于这些互连、结构或架构中的任一个。
转向图11,示出了根据本公开的一个实施例的由处理器形成的示例性计算机系统的框图,该处理器包括用于执行指令的执行单元,其中互连中的一个或多个实现一个或多个特征。例如,在本文描述的实施例中,系统1100包括根据本公开的组件,例如,用于采用包括逻辑的执行单元来执行用于处理数据的算法的处理器1102。系统1100表示可从Intel公司(Santa Clara,California)获得的基于PENTIUM IIITM、PENTIUM 4TM、XeonTM、Itanium、XScaleTM和/或StrongARMTM微处理器的处理系统,尽管也可以使用其他系统(包括具有其他微处理器的PC、工程工作站、机顶盒等)。在一个实施例中,样本系统1100执行可从Microsoft公司(Rendmond,Washington)获得的WINDOWSTM操作系统的版本,尽管也可以使用其他操作系统(例如,UNIX和Linux)、嵌入式软件和/或图形用户接口。因此,本公开的实施例不限于硬件电路和软件的任何特定组合。
实施例不限于计算机系统。本公开的替代实施例可以在其他设备(例如,手持设备和嵌入式应用)中使用。手持设备的一些示例包括蜂窝电话、互联网协议设备、数码相机、个人数字助理(PDA)和手持PC。嵌入式应用可以包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络中心、广域网(WAN)交换机或可以执行根据至少一个实施例的一个或多个指令的任何其他系统。
在该示出的实施例中,处理器1102包括一个或多个执行单元1108以实现要执行至少一个指令的算法。可以在单个处理器台式机或服务器系统的上下文中描述一个实施例,但是替代实施例可以被包括在多处理器系统中。系统1100是“中心”系统架构的示例。计算机系统1100包括处理器1102以处理数据信号。作为一个说明性示例,处理器1102包括复杂指令集计算机(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现指令集的组合的处理器,或者诸如数字信号处理器之类的任何其他处理器设备。处理器1102耦合到处理器总线1110,该处理器总线1110在处理器1102与系统1100中的其他组件之间传输数据信号。系统1100的元件(例如,图形加速器1112、存储器控制器中心1116、存储器1120、I/O控制器中心1140、无线收发机1126、闪速BIOS 1128、网络控制器1134、音频控制器1136、串行扩展端口1138、I/O控制器1140等)执行本领域技术人员所公知的其常规功能。
在一个实施例中,处理器1102包括级别一(L1)内部高速缓冲存储器1104。取决于架构,处理器1102可以具有单个内部高速缓存或多级内部高速缓存。取决于特定实现方式和需要,其他实施例包括内部高速缓存和外部高速缓存两者的组合。寄存器文件1106用于将不同类型的数据存储在各种寄存器中,包括整数寄存器、浮点寄存器、矢量寄存器、分组寄存器、影子寄存器、检查点寄存器、状态寄存器和指令指针寄存器。
执行单元1108(包括用于执行整数和浮点运算的逻辑)也驻留在处理器1102中。在一个实施例中,处理器1102包括用于存储微码(ucode)的微码ROM,该微码当被执行时,将执行针对某些宏指令的算法或处理复杂场景。这里,微码潜在地是可更新的,以处理用于处理器1102的逻辑错误/修复。对于一个实施例,执行单元1108包括用于处理打包指令集1109的逻辑。通过将打包指令集1109包括在通用处理器1102的指令集中,连同用于执行指令的相关联的电路一起,可以使用通用处理器1102中的打包数据来执行许多多媒体应用所使用的操作。因此,通过使用处理器的数据总线的全宽度来对打包数据执行操作,可以加速并更高效地执行许多多媒体应用。这潜在地消除了跨处理器的数据总线传输较小单位的数据来执行一个或多个操作(一次一个数据元素)的需要。
执行单元1108的替代实施例也可以用于微控制器、嵌入式处理器、图形设备、DSP和其他类型的逻辑电路中。系统1100包括存储器1120。存储器1120包括动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪速存储器设备或其他存储器设备。存储器1120存储要由处理器1102执行的由数据信号表示的指令和/或数据。
注意,本公开的前述特征或方面中的任一个可以在图11中示出的一个或多个互连上使用。例如,未示出的用于耦合处理器1102的内部单元的管芯上互连(ODI)实现了上面描述的本公开的一个或多个方面。或者,本公开与以下各项相关联:处理器总线1110(例如,Intel快速路径互连(QPI)或其他已知的高性能计算互连)、到存储器1120的高带宽存储器路径1118、到图形加速器1112的点对点链路(例如,符合快速外围组件互连(PCIe)的结构)、控制器中心互连1122、I/O或用于耦合其他所示组件的其他互连(例如USB、PCI、PCIe)。这种组件的一些示例包括音频控制器1136、固件中心(闪速BIOS)1128、无线收发机1126、数据存储装置1124、包含用户输入和键盘接口1142的旧有的I/O控制器1140,串行扩展端口1138(例如,通用串行总线(USB))和网络控制器1134。数据存储设备1124可以包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪速存储器设备或其他大容量存储设备。
现在参考图12,示出了根据本公开的实施例的第二系统1200的框图。如图12中示出的,多处理器系统1200是点对点互连系统,并且包括经由点对点互连1250耦合的第一处理器1270和第二处理器1280。处理器1270和1280中的每一个可以是处理器的某个版本。在一个实施例中,1252和1254是串行点对点一致互连结构的一部分,例如,Intel快速路径互连(QPI)架构。因此,本公开可以在QPI架构内实现。
虽然仅示出了具有两个处理器1270、1280,但是应该理解的是,本公开的范围不限于此。在其他实施例中,一个或多个附加处理器可以存在于给定处理器中。
处理器1270和1280被示为分别包括集成存储器控制器单元1272和1282。处理器1270还包括作为其总线控制器单元的一部分的点对点(P-P)接口1276和1278;类似地,第二处理器1280包括P-P接口1286和1288。处理器1270、1280可以使用P-P接口电路1278、1288经由点对点(P-P)接口1250交换信息。如图12中示出的,IMC 1272和1282将处理器与相应的存储器(即,存储器1232和存储器1234)耦合,这些存储器可以是本地附接到相应处理器的主存储器的部分。
处理器1270、1280各自使用点对点接口电路1276、1294、1286、1298经由单独的P-P接口1252、1254与芯片组1290交换信息。芯片组1290还经由接口电路1292沿着高性能图形互连1239与高性能图形电路1238交换信息。
共享高速缓存(未示出)可以被包括在任一处理器中或两个处理器外部;而经由P-P互连与处理器连接,使得如果处理器被置于低功率模式,则任一处理器或两个处理器的本地高速缓存信息可以存储在共享高速缓存中。
芯片组1290可以经由接口1296耦合到第一总线1216。在一个实施例中,第一总线1216可以是外围组件互连(PCI)总线,或者诸如快速PCI总线或另一第三代I/O互连总线之类的总线,但本公开的范围不限于此。
如图12中示出的,各种I/O设备1214连同将第一总线1216耦合到第二总线1220的总线桥1218一起耦合到第一总线1216。在一个实施例中,第二总线1220包括低引脚计数(LPC)总线。在一个实施例中,各种设备与第二总线1220耦合,包括例如,键盘和/或鼠标1222、通信设备1227和存储单元1228(例如,磁盘驱动器或其他大容量存储设备,其通常包括指令/代码和数据1230)。此外,音频I/O 1224被示为与第二总线1220耦合。注意,其他架构是可能的,其中所包括的组件和互连架构不同。例如,除了图12的点对点架构,系统可以实现多点总线或其他这样的架构。
使用平台中存在的各种惯性和环境传感器,可以实现许多不同的用例。这些用例实现包括感知计算的高级计算操作,并且还允许关于功率管理/电池寿命、安全性和系统响应性进行增强。
例如,关于功率管理/电池寿命问题,至少部分地基于来自环境光传感器的信息,确定平台位置中的环境光条件并相应地控制显示器的强度。因此,在特定光条件下减少操作显示器所消耗的功率。
关于安全性操作,基于从传感器获得的上下文信息(例如,位置信息),可以确定是否允许用户访问特定安全文档。例如,可以准许用户在工作场所或家庭位置访问这些文档。然而,当平台存在于公共位置时,阻止用户访问这些文档。在一个实施例中,该确定基于例如经由GPS传感器或对地标的相机识别确定的位置信息。其他安全性操作可以包括提供彼此靠近距离内的设备的配对,例如,如本文描述的便携式平台和用户的台式计算机、移动电话等。在一些实现方式中,当这些设备如此配对时,经由近场通信实现特定共享。然而,当设备超过特定距离时,可以禁用这种共享。此外,当将如本文描述的平台与智能电话配对时,当在公共位置时,警报可以被配置为当设备移动超过离彼此预确定的距离时触发。相反,当这些配对的设备处于安全位置(例如,工作场所或家庭位置)时,设备可以超过该预确定的限制而不触发这种警报。
还可以使用传感器信息来增强响应性。例如,即使当平台处于低功率状态时,仍然可以使得传感器能够以相对低的频率运行。因此,确定例如由惯性传感器、GPS传感器等确定的平台位置的任何改变。如果没有注册过任何这样的变化,则发生到先前的无线中心(例如,Wi-FiTM接入点或类似无线使能器)的更快连接,因为在这种情况下不需要扫描可用的无线网络资源。因此,实现当从低功率状态唤醒时的更高级别的响应性。
应当理解,使用经由如本文描述的平台内的集成传感器获得的传感器信息,可以实现许多其他用例,并且以上示例仅用于说明的目的。使用如本文描述的系统,感知计算系统可以允许添加替代输入模态,包括手势识别,并且使得系统能够感测用户操作和意图。
在一些实施例中,可以存在一个或多个红外或其他热感测元件,或用于感测用户的存在或移动的任何其他元件。这种感测元件可以包括一起工作、按顺序工作或两者的多个不同元件。例如,感测元件包括通过例如超声飞行时间相机或图案化光相机提供诸如光或声音投影之类的初始感测、接下来感测手势检测的元件。
另外,在一些实施例中,该系统包括光发生器以产生照明线。在一些实施例中,该线提供关于虚拟边界的视觉提示,即空间中的虚构或虚拟位置,其中用户通过或突破虚拟边界或平面的动作被解释为与计算系统接合的意图。在一些实施例中,照明线可以随着计算系统关于用户转变到不同状态而改变颜色。照明线可以用于为用户提供空间中的虚拟边界的视觉提示,并且可以由系统用于确定计算机关于用户的状态转变,包括确定何时用户希望与计算机接合。
在一些实施例中,计算机感测用户位置并操作以将用户的手移动通过虚拟边界解释为指示用户与计算机接合的意图的手势。在一些实施例中,在用户经过虚拟线或平面时,由光发生器生成的光可以改变,从而向用户提供用户已经进入用于提供手势以向计算机提供输入的区域的视觉反馈。
显示屏可以提供计算系统关于用户的状态转变的视觉指示。在一些实施例中,以其中例如通过使用感测元件中的一个或多个感测元件由系统感测到用户的存在的第一状态提供第一屏幕。
在一些实现方式中,系统用于感测用户身份,例如,通过面部识别。这里,可以以其中计算系统已经识别出用户身份的第二状态提供到第二屏幕的转变,其中该第二屏幕向用户提供用户已经转变到新状态的视觉反馈。可以以其中用户已经确认对用户的识别的第三状态发生到第三屏幕的转变。
在一些实施例中,计算系统可以使用转变机制来确定针对用户的虚拟边界的位置,其中虚拟边界的位置可以随用户和上下文而变化。计算系统可以生成光(例如,照明线),以指示用于与系统接合的虚拟边界。在一些实施例中,计算系统可以处于等待状态,并且可以以第一颜色产生光。计算系统可以检测用户是否已经到达虚拟边界,例如,通过使用感测元件来感测用户的存在和移动。
在一些实施例中,如果检测到用户已经越过虚拟边界(例如,用户的手比虚拟边界线更靠近计算系统),则计算系统可以转变到用于从用户接收手势输入的状态,其中指示转变的机制可以包括光指示虚拟边界改变为第二颜色。
在一些实施例中,计算系统然后可以确定是否检测到手势移动。如果检测到手势移动,则计算系统可以继续进行手势识别过程,该过程可以包括使用来自手势数据库的数据,该手势数据库可以驻留在计算设备中的存储器中或者可以由计算设备以其他方式访问。
如果识别出用户的手势,则计算系统可以响应于输入而执行功能,并且如果用户在虚拟边界内则返回以接收附加手势。在一些实施例中,如果未识别到手势,则计算系统可以转变到错误状态,其中指示错误状态的机制可以包括光指示虚拟边界改变为第三颜色,其中如果用户在虚拟边界内以便与计算系统接合,则系统返回以接收附加的手势。
如上面提及的,在其他实施例中,系统可以被配置为可转换平板系统,其可以以至少两种不同的模式来使用:平板模式和笔记本模式。可转换系统可以具有两个面板,即显示面板和基底面板,从而在平板模式下,两个面板堆叠地布置在彼此顶部上。在平板模式下,显示面板面向外部,并且可以提供在常规平板中发现的触摸屏功能。在笔记本模式中,两个面板可以以打开的翻盖式配置来布置。
在各种实施例中,加速度计可以是具有至少50Hz的数据速率的3轴加速度计。还可以包括陀螺仪,其可以是3轴陀螺仪。另外,可以存在电子罗盘/磁力计。另外,可以提供一个或多个接近度传感器(例如,用于打开盖板以感测人何时接近(或不接近)系统并调节功率/性能以延长电池寿命)。对于一些OS的传感器融合能力(包括加速度计、陀螺仪和罗盘),可以提供增强的特征。另外,经由具有实时时钟(RTC)的传感器中心,可以实现从传感器唤醒机制,以在系统的其余部分处于低功率状态时接收传感器输入。
在一些实施例中,内部盖板/显示器打开开关或传感器用于指示盖板何时关闭/打开,并且可以用于将系统置于连接待机或自动从连接待机状态唤醒。其他系统传感器可以包括用于内部处理器、存储器和皮肤温度监测的ACPI传感器,以基于感测到的参数来实现处理器和系统操作状态的改变。
在实施例中,OS可以是实现连接待机(本文中也称为Win8 CS)的
Figure BDA0002701249590000281
8OS。Windows 8连接待机或具有类似状态的另一OS可以经由如本文描述的平台提供非常低的超空闲功率,以使得应用能够以非常低的功耗保持连接到例如基于云的位置。该平台可以支持3个功率状态,即屏幕开启(正常);连接待机(作为默认“关闭”状态);以及关机(功耗为零瓦特)。因此,在连接待机状态下,即使屏幕关闭,平台也会在逻辑上开启(处于最小功率水平)。在这样的平台中,可以使功率管理对应用透明并维持持续连接,部分地由于卸载技术使得最低供电的组件能够执行操作。
转向图13的图1300,示出了示例链路训练状态机,例如,PCIe链路训练和状态状态机(LTSSM)。图13是示出根据本公开的实施例的示例链路训练状态机的示意图。对于利用根据特定协议的PHY来支持多个替代协议(即,在PHY之上运行)的系统,可以定义有序集,该有序集要在链路上的两个或多个设备之间与链路训练相关地进行通信。例如,可以发送训练集(TS)有序集(OSes)。在利用PCIe作为PHY协议的实现方式中,TS有序集可以包括TS1和TS2有序集,以及其他示例有序集。在链路训练期间发送的有序集和训练序列可以基于特定的链路训练状态、利用各种链路训练状态来完成对应的链路训练活动和目标。
链路训练状态机1300可以示出代表多通道链路(例如,基于PCIe协议的多通道链路)的各种状态的链路训练和状态状态机(LTSSM)。在一个示例中,例如图13中示出的,链路训练状态机1300可以包括诸如复位状态、检测状态(例如,以检测远端终端(例如,连接到通道的另一设备))、轮询状态(例如,以建立符号锁定和配置通道极性)、配置(或“Config”)状态(例如,以将到链路中的连接的物理通道配置为具有特定通道宽度、通道编号等,执行通道到通道抗扭斜和其他链路配置活动)、环回状态(例如,以执行测试、故障隔离、均衡化和其他任务)、恢复状态(例如,以用于改变操作的数据速率、重新建立位锁定、符号锁定或块对齐、执行通道到通道抗扭斜等)以及可用于使链路进入活动链路状态(例如,L0)的其他状态之类的状态。LTSSM 1300还示出了各种功率状态:完全活动状态(L0)、电空闲或待机状态(L0s)、L1(较低功率待机/休眠状态)、L2(低功率睡眠状态)和L3(链路关闭状态)。LTSSM1300还示出了部分L0(PL0)状态,其是本文描述的子状态。
在一个示例中,可以定义要在链路训练状态的特定一个(或多个)中发送的训练序列,以适应特定设备的所支持协议中的特定一个协议的协商。例如,特定训练状态可以是进入活动链路状态之前的训练状态,或者是其中数据速率可以被提升(例如,超出所支持的协议中的至少一个所支持的数据速率)的训练状态,例如,其中数据速率从Gen1速度转变到Gen3或更高速度的PCIe状态,以及其他示例。例如,在图13中示出的示例实施方式中,可以利用并扩充配置状态以允许与在训练状态中本地定义的链路训练活动并行地协商多个协议中的特定一个协议(例如,通道宽度确定、通道编号、抗扭斜、均衡化等)。例如,可以针对训练状态定义特定的训练序列,并且可以扩充这些训练序列以允许信息(例如,在一个或多个字段中或有序集合的符号中)被通信、以标识链路上的每个设备是否支持多个协议(例如,除了物理层的协议栈之外的至少一个协议栈和对应的链路训练状态机)、标识每个设备支持的特定协议并且商定要在特定PHY上采用的一个或多个协议(例如,通过跨链路(在上游方向和下游方向两者上)传输这些训练序列来完成的握手)。
在一个示例中,PCIe物理层可以用于支持多个不同的协议。因此,PCIe LTSSM中的特定训练状态可以用于链路上的设备之间的协议的协商。如上面所指出的,即使在链路以最低支持的数据速率(例如,PCIe Gen 1数据速率)训练到活动状态(例如,L0)之前,也可以发生协议确定。在一个示例中,可以使用PCIe配置状态。实际上,可以通过在链路宽度协商之后并且(至少部分地)与在配置状态期间执行的通道编号并行地使用修改后的PCIe训练集(例如,TS1和TS2)来使用PCIe LTSSM来协商协议。
尽管已经关于有限数量的实施例描述了本公开,但是本领域技术人员将认识到由此产生的许多修改和变型。所附权利要求书旨在覆盖落入本公开的真实精神和范围内的所有这些修改和变型。
设计可以经历从创建到仿真到制造的各个阶段。表示设计的数据可以以多种方式表示设计。首先,如在仿真中有用,可以使用硬件描述语言或另一种功能描述语言来表示硬件。另外地,可以在设计过程的某些阶段产生具有逻辑和/或晶体管栅极的电路级模型。此外,大多数设计在某个阶段达到表示各种设备在硬件模型中的物理放置的数据级别。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是指定对于用于制造集成电路的掩模而言在不同掩模层上存在或不存在各种特征的数据。在设计的任何表示中,数据可以存储在任何形式的机器可读介质中。存储器或诸如磁盘之类的磁或光存储装置可以是用于存储经由光波或电波发送的信息的机器可读介质,该光波或电波被调制或以其他方式生成以发送这样的信息。当发送指示或携带代码或设计的电载波时,就执行对电信号的复制、缓冲或重传而言,制作新的副本。因此,通信提供商或网络提供商可以将体现本公开的实施例的技术的诸如编码到载波中的信息之类的制品至少临时地存储在有形的机器可读介质上。
如本文所使用的模块指代硬件、软件和/或固件的任何组合。作为示例,模块包括硬件(例如,微控制器),其与用于存储适于由微控制器执行的代码的非暂时性介质相关联。因此,在一个实施例中,对模块的引用指代特别地被配置用于识别和/或执行要保持在非暂时性介质上的代码的硬件。此外,在另一实施例中,对模块的使用指代包括特别适于由微控制器执行以执行预定操作的代码的非暂时性介质。并且,如可以推断的,在又一实施例中,术语模块(在该示例中)可以指代微控制器和非暂时性介质的组合。通常,示出为分离的模块界限通常变化并且潜在地重叠。例如,第一模块和第二模块可以共享硬件、软件、固件或其组合,同时潜在地保留一些独立的硬件、软件或固件。在一个实施例中,对术语逻辑的使用包括硬件,例如,晶体管、寄存器或其他硬件(例如,可编程逻辑器件)。
在一个实施例中,对短语“用于”或“被配置用于”的使用指代对装置、硬件、逻辑或元件进行布置、放在一起、制造、提供以售卖、导入和/或设计以执行指定或确定的任务。在该示例中,没有进行操作的装置或其元件仍“被配置用于”如果其被设计、耦合和/或互连以执行指定任务则执行所述指定任务。作为纯粹说明性的示例,逻辑门可以在操作期间提供0或1。但是“被配置用于”向时钟提供使能信号的逻辑门不包括可以提供1或0的每一个潜在的逻辑门。相反,逻辑门是以在操作期间1或0输出用于启用时钟的某种方式耦合的逻辑门。再次注意,对术语“被配置用于”的使用不要求操作,而是集中于装置、硬件和/或元件的潜在状态,其中在潜在状态下,装置、硬件和/或元件被设计为当装置、硬件和/或元件正在操作时执行特定任务。
此外,在一个实施例中,对短语“能够/能够用于”和/或“可操作用于”的使用指代以这样的方式被设计为使得能够以指定方式使用装置、逻辑、硬件和/或元件的某种装置、逻辑、硬件和/或元件。如上文所提到的,在一个实施例中,对用于、能够用于或可操作用于的使用指代装置、逻辑、硬件和/或元件的潜在状态,其中装置、逻辑、硬件和/或元件没有在操作,但是以这样的方式被设计为使得能够以指定方式使用装置。
如本文所使用的值包括数字、状态、逻辑状态或二进制逻辑状态的任何已知表示。通常,对逻辑电平、逻辑值(logic value)或逻辑上的值(logical value)的使用还称为对1和0的使用,其简单地表示二进制逻辑状态。例如,1指代高逻辑电平,并且0指代低逻辑电平。在一个实施例中,诸如晶体管或闪存单元之类的存储单元可能能够保持单个逻辑值或多个逻辑值。然而,已经使用了计算机系统中的值的其他表示。例如,十进制数十也可以表示为二进制值1010和十六进制字母A。因此,值包括能够保持在计算机系统中的信息的任何表示。
此外,状态可以由值或值的部分表示。作为示例,诸如逻辑1之类的第一值可以表示默认或初始状态,而诸如逻辑0之类的第二值可以表示非默认状态。另外,在一个实施例中,术语重置和设置分别指代默认值或状态和更新后的值或状态。例如,默认值潜在地包括高逻辑值(即,重置),而更新后的值潜在地包括低逻辑值(即,设置)。注意,值的任何组合可以用于表示任意数量的状态。
上面所阐述的方法、硬件、软件、固件或代码的实施例可以经由存储在机器可访问、机器可读、计算机可访问或计算机可读介质上的、能够由处理元件执行的指令或代码来实现。非暂时性机器可访问/可读介质包括以诸如计算机或电子系统之类的机器可读的形式提供(即,存储和/或传输)信息的任何机制。例如,非暂时性机器可访问介质包括随机存取存储器(RAM)(例如,静态RAM(SRAM)或动态RAM(DRAM));ROM;磁或光存储介质;闪速存储器设备;电存储设备;光存储设备;声学存储设备;用于保持从暂时性(传播)信号(例如,载波、红外信号、数字信号)接收到的信息的其他形式的存储设备(其用于区别于可以从其接收信息的非暂时性介质);等等。
用于对逻辑进行编程以执行本公开的实施例的指令可以存储在系统中的存储器(例如,DRAM、高速缓存、闪速存储器或其他存储装置)内。此外,可以经由网络或通过其他计算机可读介质的方式来分发指令。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,但不限于软盘、光盘、压缩盘只读存储器(CD-ROM)和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪速存储器,或用于经由电、光、声学或其他形式的传播信号(例如,载波、红外信号、数字信号等)通过互联网传输信息的有形的机器可读存储装置。因此,计算机可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的有形机器可读介质。
贯穿本说明书对“一个实施例”或“实施例”的引用表示结合该实施例描述的特定的特征、结构或特性包括在本公开的至少一个实施例中。因此,贯穿本说明书各处出现的短语“在一个实施例中”或“在实施例中”不一定指代同一实施例。此外,特定的特征、结构或特性可以以任何适合的方式组合在一个或多个实施例中。
在前述说明书中,已经参考具体的示例性实施例进行了详细描述。然而,将显而易见的是,在不脱离如所附权利要求书中阐述的本公开的更宽泛的精神和范围的情况下,可以对其进行各种修改和改变。说明书和附图因此应被视为说明意义而非限制意义的。此外,对实施例和其他示范性语言的前述使用不一定指代同一实施例或同一示例,而是可以指代不同且独特的实施例以及潜在地指代同一实施例。
上面描述了实施例的各个方面和组合,其中一些由以下示例表示:
示例1是包括物理层(PHY)的装置。PHY可以支持多个互连协议。PHY可以包括逻辑PHY,该逻辑PHY用于支持多个互连协议。逻辑PHY可以包括对应于第一互连协议的循环冗余校验(CRC)编码器的第一集合,以及对应于第二互连协议的CRC编码器的第二集合。PHY可以包括多路复用器,该多路复用器用于基于所选择的互连协议将数据引导至CRC编码器的第一集合或CRC编码器的第二集合。
示例2可以包括示例1的主题,其中,逻辑PHY包括CRC编码器旁路。
示例3可以包括示例1-2中任一项的主题,并且还可以包括对应于第一互连协议的循环冗余校验(CRC)解码器的第一集合,以及对应于第二互连协议的CRC解码器的第二集合。多路复用器用于基于所选择的互连协议将数据引导至CRC解码器的第一集合或CRC解码器的第二集合。
示例4可以包括示例3的主题,其中,逻辑PHY包括CRC解码器旁路。
示例5可以包括示例1-3中任一项的主题,并且还可以包括对应于第一互连协议的纠错码(ECC)编码器的第一集合;以及对应于第二互连协议的ECC编码器的第二集合。多路复用器用于基于所选择的互连协议将数据引导至ECC编码器的第一集合或ECC编码器的第二集合。
示例6可以包括示例5的主题,其中,逻辑PHY包括ECC编码器旁路。
示例7可以包括示例5的主题,并且还可以包括对应于第一互连协议的纠错码(ECC)解码器的第一集合;以及对应于第二互连协议的ECC解码器的第二集合。多路复用器用于基于所选择的互连协议将数据引导至ECC解码器的第一集合或ECC解码器的第二集合。
示例8可以包括示例7的主题,其中,逻辑PHY包括ECC解码器旁路。
示例9可以包括示例1或5中任一项的主题,并且还可以包括错误日志,该错误日志用于记录由ECC解码器或CRC解码器标识的不可纠正错误。
示例10可以包括示例1-9中的任一项的主题,并且还可以包括:第一缓冲器,其用于缓冲第一大小的第一流控制单元,该第一大小对应于与第一互连协议相关联的流控制单元大小;以及第二缓冲器,其用于缓冲第二大小的第二流控制单元,该第二大小对应于与第二互连协议相关联的流控制单元大小。
示例11可以包括示例1-10中任一项的主题,其中,第一互连协议或第二互连协议包括快速外围组件互连(PCIe)协议、计算快速链路(CXL)协议或超路径互连(UPI)协议中的一个。
示例12是一种方法,包括通过物理层的多路复用器从多个互连协议中标识用于操作链路的互连协议;基于所标识的互连协议,从循环冗余校验(CRC)编码器的多个集合中标识CRC编码器的第一集合;并且通过多路复用器将数据业务引导至CRC编码器的第一集合。
示例13可以包括示例12的主题,并且还可以包括接收用于将CRC编码器的第一集合改变为CRC编码器的第二集合的请求;将链路转变为恢复状态;选择CRC编码器的第二集合;将数据业务引导至CRC编码器的第二集合;并且将链路转变为活动状态。
示例14可以包括示例12-13中任一项的主题,并且还可以包括基于所标识的互连协议从纠错码(ECC)编码器的多个集合中标识ECC编码器的第一集合;并且将数据业务引导至ECC编码器的第一集合。
示例15可以包括示例14的主题,并且还可以包括接收用于将ECC编码器的第一集合改变为ECC编码器的第二集合的请求;将链路转变为恢复状态;选择ECC编码器的第二集合;将数据业务引导至ECC编码器的第二集合;并且将链路转变为活动状态。
示例16可以包括示例15的主题,并且还可以包括接收用于将CRC编码器的第一集合改变为CRC编码器的第二集合的请求;将链路转变为恢复状态;选择CRC编码器的第二集合;将数据业务引导至CRC编码器的第二集合;并且将链路转变为活动状态。
示例17可以包括示例14的主题,其中,链路用于以第一带宽在活动状态下操作,方法还可以包括:接收链路可以以第二带宽操作的指示,该第二带宽低于第一带宽;接收该链路可以以第二带宽操作而无需前向纠错(FEC)的指示;将链路转变为恢复状态;绕过ECC编码器的第一集合;并且将链路转变为活动状态。
示例18可以包括示例12-17中任一项的主题,其中,互连协议包括快速外围组件互连(PCIe)协议、计算快速链路(CXL)协议或超路径互连(UPI)协议中的一个。
示例19是一种系统,包括主机设备和端点设备。主机设备可以包括处理器核心和发送机侧物理层(PHY)。发送机侧PHY可以包括发送机侧逻辑PHY,该发送机侧逻辑PHY用于支持多个互连协议。发送机侧逻辑PHY可以包括对应于第一互连协议的循环冗余校验(CRC)编码器的第一集合,以及对应于第二互连协议的CRC编码器的第二集合。发送机侧PHY可以包括发送机侧多路复用器,该发送机侧多路复用器用于基于所选择的互连协议将数据引导至CRC编码器的第一集合或CRC编码器的第二集合。端点设备可以包括接收机侧PHY,该接收机侧PHY包括接收机侧逻辑PHY,该接收机侧逻辑PHY用于支持多个互连协议,该多个互连协议包括第一互连协议和第二互连协议。接收机侧逻辑PHY可以包括对应于第一互连协议的循环冗余校验(CRC)解码器的第一集合,以及对应于第二互连协议的CRC解码器的第二集合。接收机侧多路复用器可以基于所选择的互连协议将数据引导至CRC解码器的第一集合或CRC解码器的第二集合。
示例20可以包括示例19的主题,发送机侧逻辑PHY用于:接收用于将CRC编码器的第一集合改变为CRC编码器的第二集合的请求;将链路转变为恢复状态;选择CRC编码器的第二集合;将数据业务引导至CRC编码器的第二集合;并且将链路转变为活动状态。接收机侧逻辑PHY用于:选择CRC解码器的第二集合;并且将数据业务引导至CRC解码器的第二集合。
示例21可以包括示例19-20中任一项的主题,其中,发送机侧逻辑PHY可以包括对应于第一互连协议的纠错码(ECC)编码器的第一集合;以及对应于第二互连协议的ECC编码器的第二集合。发送机侧多路复用器用于基于所选择的互连协议将数据引导至ECC编码器的第一集合或ECC编码器的第二集合。接收机侧逻辑PHY可以包括对应于第一互连协议的纠错码(ECC)解码器的第一集合;以及对应于第二互连协议的ECC解码器的第二集合,其中,接收机侧多路复用器用于基于所选择的互连协议将数据引导至ECC解码器的第一集合或ECC解码器的第二集合。
示例22可以包括示例19-21中任一项的主题,接收机侧PHY还包括错误日志,该错误日志用于记录由ECC解码器或CRC解码器标识的不可纠正错误。
示例23可以包括示例21的主题,发送机侧逻辑PHY用于:接收用于将ECC编码器的第一集合改变为ECC编码器的第二集合的请求;将链路转变为恢复状态;选择ECC编码器的第二集合;将数据业务引导至ECC编码器的第二集合;并且将链路转变为活动状态。接收机侧逻辑PHY用于:选择ECC解码器的第二集合;并且将数据业务引导至ECC解码器的第二集合。
示例24可以包括示例19-23中任一项的主题,其中,发送机侧逻辑PHY包括ECC编码器旁路,并且接收机侧逻辑PHY包括ECC解码器旁路。
示例25可以包括示例19-24中任一项的主题,其中,发送机侧逻辑PHY包括CRC编码器旁路,并且接收机侧逻辑PHY包括CRC解码器旁路。
示例26可以包括示例19-25中任一项的主题,其中,第一互连协议或第二互连协议包括快速外围组件互连(PCIe)协议、计算快速链路(CXL)协议或超路径互连(UPI)协议中的一个。
示例27可以包括示例1的主题,装置跨链路耦合到多个设备,PHY支持多个互连协议。PHY可以支持FEC/CRC的不同组合,这取决于针对每个连接的设备的链路特性以及针对用于每个设备的每种协议的链路特性。
示例28可以包括示例5的主题,其中,PHY包括对应于由PHY支持的第一互连协议的ECC编码器和CRC编码器的第一组合,以及对应于由PHY支持的第二互连协议的ECC编码器和CRC编码器的第二组合。
示例29可以包括示例18的主题,其中,发送机侧逻辑PHY包括对应于由发送机侧逻辑PHY支持的第一互连协议的ECC编码器和CRC编码器的第一组合,以及对应于由发送机侧逻辑PHY支持的第二互连协议的ECC编码器和CRC编码器的第二组合。
示例30可以包括示例18或29中任一项的主题,其中,接收机侧逻辑PHY包括对应于由接收机侧逻辑PHY支持的第一互连协议的ECC编码器和CRC编码器的第一组合,以及对应于由接收机侧逻辑PHY支持的第二互连协议的ECC编码器和CRC编码器的第二组合。
示例31可以包括示例1、11或18中任一项的主题,其中,有效载荷的流控制单元大小可以取决于用于FEC(对于无FEC为0)和CRC的位数。

Claims (25)

1.一种装置,包括:
物理层(PHY),其包括:
用于支持多个互连协议的逻辑PHY,所述逻辑PHY包括:
对应于由所述PHY支持的第一互连协议的循环冗余校验(CRC)编码器的第一集合,以及
对应于由所述PHY支持的第二互连协议的CRC编码器的第二集合;以及
多路复用器,其用于基于所选择的互连协议将数据引导至所述CRC编码器的第一集合或所述CRC编码器的第二集合。
2.根据权利要求1所述的装置,其中,所述逻辑PHY包括CRC编码器旁路。
3.根据权利要求1所述的装置,还包括:
对应于所述第一互连协议的循环冗余校验(CRC)解码器的第一集合,以及
对应于所述第二互连协议的CRC解码器的第二集合;以及
所述多路复用器用于基于所选择的互连协议将数据引导至所述CRC解码器的第一集合或所述CRC解码器的第二集合。
4.根据权利要求3所述的装置,其中,所述逻辑PHY包括CRC解码器旁路。
5.根据权利要求1所述的装置,还包括:
对应于所述第一互连协议的纠错码(ECC)编码器的第一集合;以及
对应于所述第二互连协议的ECC编码器的第二集合;
其中,所述多路复用器用于基于所选择的互连协议将数据引导至所述ECC编码器的第一集合或所述ECC编码器的第二集合。
6.根据权利要求5所述的装置,其中,所述逻辑PHY包括ECC编码器旁路。
7.根据权利要求5所述的装置,还包括:
对应于所述第一互连协议的纠错码(ECC)解码器的第一集合;以及
对应于所述第二互连协议的ECC解码器的第二集合;
其中,所述多路复用器用于基于所选择的互连协议将数据引导至所述ECC解码器的第一集合或所述ECC解码器的第二集合。
8.根据权利要求5所述的装置,还包括错误日志,所述错误日志用于记录由CRC解码器或由ECC解码器标识的错误。
9.根据权利要求5所述的装置,其中,所述PHY包括对应于由所述PHY支持的所述第一互连协议的ECC编码器和CRC编码器的第一组合,以及对应于由所述PHY支持的所述第二互连协议的ECC编码器和CRC编码器的第二组合。
10.根据权利要求1所述的装置,还包括:
第一缓冲器,其用于缓冲第一大小的第一流控制单元,所述第一大小对应于与所述第一互连协议相关联的流控制单元大小;以及
第二缓冲器,其用于缓冲第二大小的第二流控制单元,所述第二大小对应于与所述第二互连协议相关联的流控制单元大小。
11.一种方法,包括:
通过物理层的多路复用器从多个互连协议中标识用于操作链路的互连协议;
基于所标识的互连协议,从循环冗余校验(CRC)编码器的多个集合中标识CRC编码器的第一集合;并且
通过多路复用器将数据业务引导至所述CRC编码器的第一集合。
12.根据权利要求11所述的方法,还包括:
接收用于将所述CRC编码器的第一集合改变为CRC编码器的第二集合的请求;
将所述链路转变为恢复状态;
选择所述CRC编码器的第二集合;
将数据业务引导至所述CRC编码器的第二集合;并且
将所述链路转变为活动状态。
13.根据权利要求11所述的方法,还包括:
基于所标识的互连协议从纠错码(ECC)编码器的多个集合中标识ECC编码器的第一集合;并且
将数据业务引导至所述ECC编码器的第一集合。
14.根据权利要求13所述的方法,还包括:
接收用于将所述ECC编码器的第一集合改变为ECC编码器的第二集合的请求;
将所述链路转变为恢复状态;
选择所述ECC编码器的第二集合;
将数据业务引导至所述ECC编码器的第二集合;并且
将所述链路转变为活动状态。
15.根据权利要求14所述的方法,还包括:
接收用于将所述CRC编码器的第一集合改变为CRC编码器的第二集合的请求;
将所述链路转变为恢复状态;
选择所述CRC编码器的第二集合;
将数据业务引导至所述CRC编码器的第二集合;并且
将所述链路转变为活动状态。
16.根据权利要求13所述的方法,其中,所述链路用于以第一带宽在活动状态下操作,所述方法还包括:
接收所述链路能够以第二带宽操作的指示,所述第二带宽低于所述第一带宽;
接收所述链路能够以所述第二带宽操作而无需前向纠错(FEC)的指示;
将所述链路转变为恢复状态;
绕过所述ECC编码器的第一集合;并且
将所述链路转变为活动状态。
17.根据权利要求11所述的方法,其中,所述互连协议包括快速外围组件互连(PCIe)协议、计算快速链路(CXL)协议或超路径互连(UPI)协议中的一个。
18.一种系统,包括:
主机设备,包括:
处理器核心,
发送机侧物理层(PHY),其包括:
用于支持多个互连协议的发送机侧逻辑PHY,所述发送机侧逻辑PHY包括:
对应于由所述发送机侧逻辑PHY支持的第一互连协议的循环冗余校验(CRC)编码器的第一集合,以及
对应于由所述发送机侧逻辑PHY支持的第二互连协议的CRC编码器的第二集合,以及
发送机侧多路复用器,其用于基于所选择的互连协议将数据引导至所述CRC编码器的第一集合或所述CRC编码器的第二集合;
包括接收机侧PHY的端点设备,所述接收机侧PHY包括:
用于支持多个互连协议的接收机侧逻辑PHY,所述多个互连协议包括所述第一互连协议和所述第二互连协议,所述接收机侧逻辑PHY包括:
对应于所述第一互连协议的循环冗余校验(CRC)解码器的第一集合,以及
对应于所述第二互连协议的CRC解码器的第二集合;以及
接收机侧多路复用器,其用于基于所选择的互连协议将数据引导至所述CRC解码器的第一集合或所述CRC解码器的第二集合。
19.根据权利要求18所述的系统,所述发送机侧逻辑PHY用于:
接收用于将所述CRC编码器的第一集合改变为CRC编码器的第二集合的请求;
将所述链路转变为恢复状态;
选择所述CRC编码器的第二集合;
将数据业务引导至所述CRC编码器的第二集合;并且
将所述链路转变为活动状态;
所述接收机侧逻辑PHY用于:
选择所述CRC解码器的第二集合,并且
将数据业务引导至所述CRC解码器的第二集合。
20.根据权利要求18所述的系统,其中,所述发送机侧逻辑PHY包括:
对应于所述第一互连协议的纠错码(ECC)编码器的第一集合;以及
对应于所述第二互连协议的ECC编码器的第二集合;
其中,所述发送机侧多路复用器用于基于所选择的互连协议将数据引导至所述ECC编码器的第一集合或所述ECC编码器的第二集合;并且
其中,所述接收机侧逻辑PHY包括:
对应于所述第一互连协议的纠错码(ECC)解码器的第一集合;以及
对应于所述第二互连协议的ECC解码器的第二集合;
其中,所述接收机侧多路复用器用于基于所选择的互连协议将数据引导至所述ECC解码器的第一集合或所述ECC解码器的第二集合。
21.根据权利要求20所述的系统,所述接收机侧PHY还包括错误日志,所述错误日志用于记录由ECC解码器和CRC解码器标识的不能纠正的错误。
22.根据权利要求20所述的系统,所述发送机侧逻辑PHY用于:
接收用于将所述ECC编码器的第一集合改变为ECC编码器的第二集合的请求;
将所述链路转变为恢复状态;
选择所述ECC编码器的第二集合;
将数据业务引导至所述ECC编码器的第二集合;并且
将所述链路转变为活动状态;并且
其中,所述接收机侧逻辑PHY用于:
选择所述ECC解码器的第二集合;并且
将数据业务引导至所述ECC解码器的第二集合。
23.根据权利要求20所述的系统,其中,所述发送机侧逻辑PHY包括ECC编码器旁路,并且所述接收机侧逻辑PHY包括ECC解码器旁路。
24.根据权利要求18所述的系统,其中,所述发送机侧逻辑PHY包括CRC编码器旁路,并且所述接收机侧逻辑PHY包括CRC解码器旁路。
25.根据权利要求18所述的系统,其中,所述第一互连协议或所述第二互连协议包括快速外围组件互连(PCIe)协议、计算快速链路(CXL)协议或超路径互连(UPI)协议中的一个。
CN202011022956.3A 2019-11-27 2020-09-25 通用物理层上的多协议支持 Pending CN112860610A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962941445P 2019-11-27 2019-11-27
US62/941,445 2019-11-27
US16/831,726 2020-03-26
US16/831,726 US11740958B2 (en) 2019-11-27 2020-03-26 Multi-protocol support on common physical layer

Publications (1)

Publication Number Publication Date
CN112860610A true CN112860610A (zh) 2021-05-28

Family

ID=71517590

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011022956.3A Pending CN112860610A (zh) 2019-11-27 2020-09-25 通用物理层上的多协议支持

Country Status (6)

Country Link
US (2) US11740958B2 (zh)
EP (1) EP3829090A1 (zh)
JP (1) JP2021087216A (zh)
CN (1) CN112860610A (zh)
BR (1) BR102020019435A2 (zh)
TW (1) TW202134872A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024092437A1 (zh) * 2022-10-31 2024-05-10 华为技术有限公司 一种数据传输方法、装置和系统

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10784986B2 (en) 2017-02-28 2020-09-22 Intel Corporation Forward error correction mechanism for peripheral component interconnect-express (PCI-e)
US10771189B2 (en) 2018-12-18 2020-09-08 Intel Corporation Forward error correction mechanism for data transmission across multi-lane links
US11637657B2 (en) 2019-02-15 2023-04-25 Intel Corporation Low-latency forward error correction for high-speed serial links
US11249837B2 (en) 2019-03-01 2022-02-15 Intel Corporation Flit-based parallel-forward error correction and parity
US11397701B2 (en) * 2019-04-30 2022-07-26 Intel Corporation Retimer mechanisms for in-band link management
US11296994B2 (en) 2019-05-13 2022-04-05 Intel Corporation Ordered sets for high-speed interconnects
US11388268B1 (en) 2020-01-30 2022-07-12 Marvell Asia Pte Ltd. Network systems and methods for CXL standard
US20210119730A1 (en) * 2020-09-18 2021-04-22 Intel Corporation Forward error correction and cyclic redundancy check mechanisms for latency-critical coherency and memory interconnects
DE102021121105A1 (de) * 2020-09-28 2022-03-31 Samsung Electronics Co., Ltd. Intelligente ablagespeichervorrichtung
CN116941200A (zh) * 2021-03-08 2023-10-24 华为技术有限公司 数据处理方法、设备及数据传输系统
EP4149032A3 (en) * 2021-09-09 2023-05-03 INTEL Corporation Selection of processing mode for receiver circuit
US20220012140A1 (en) * 2021-09-24 2022-01-13 Debendra Das Sharma Hardware logging for lane margining and characterization
JP7399146B2 (ja) * 2021-10-05 2023-12-15 アンリツ株式会社 誤り検出装置および誤り検出方法
JP7432569B2 (ja) * 2021-10-11 2024-02-16 アンリツ株式会社 誤り検出装置および誤り検出方法
US20220342841A1 (en) * 2021-12-22 2022-10-27 Swadesh Choudhary Die-to-die adapter
US20230244628A1 (en) * 2022-01-31 2023-08-03 Xilinx, Inc. Adaptive chip-to-chip interface protocol architecture
US11953974B2 (en) * 2022-07-13 2024-04-09 Dell Products L.P. Method for PCIe fallback in a CXL system

Family Cites Families (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MY125161A (en) 1998-04-27 2006-07-31 Matsushita Electric Ind Co Ltd Convolutional interleaver, convolutional deinterleaver, convolutional interleaving method, and convolutional deinterleaving method
US6574238B1 (en) 1998-08-26 2003-06-03 Intel Corporation Inter-switch link header modification
US6400728B1 (en) 1998-09-09 2002-06-04 Vlsi Technology, Inc. Method and system for detecting user data types in digital communications channels and optimizing encoding-error correction in response thereto
US6590882B1 (en) * 1998-09-15 2003-07-08 Nortel Networks Limited Multiplexing/demultiplexing schemes between wireless physical layer and link layer
EP1919117B1 (en) 1998-11-30 2014-10-15 Panasonic Corporation Packet retransmission control using priority information
US6868519B2 (en) 2001-04-23 2005-03-15 Lucent Technologies Inc. Reducing scintillation effects for optical free-space transmission
US6964005B2 (en) 2001-06-08 2005-11-08 Broadcom Corporation System and method for interleaving data in a communication device
US7127653B1 (en) 2001-07-05 2006-10-24 Pmc-Sierra, Inc. Apparatus and method for efficient data transport using transparent framing procedure
US7047437B2 (en) 2001-12-12 2006-05-16 Hewlett-Packard Development Company, L.P. Method and system for detecting dropped micro-packets
US7032159B2 (en) 2002-02-28 2006-04-18 Texas Instruments Incorporated Error correction code parameter selection in a communication system
US7970279B2 (en) 2002-11-05 2011-06-28 Lightfleet Corporation N-way serial-channel interconnect
US7047475B2 (en) * 2003-02-04 2006-05-16 Hewlett-Packard Development Company, L.P. CRC encoding scheme for conveying status information
US7272310B2 (en) 2003-06-24 2007-09-18 Intel Corporation Generic multi-protocol label switching (GMPLS)-based label space architecture for optical switched networks
US20050063701A1 (en) 2003-09-23 2005-03-24 Shlomo Ovadia Method and system to recover resources in the event of data burst loss within WDM-based optical-switched networks
US7428669B2 (en) 2003-12-07 2008-09-23 Adaptive Spectrum And Signal Alignment, Inc. Adaptive FEC codeword management
JP4349114B2 (ja) 2003-12-10 2009-10-21 ソニー株式会社 送信装置および方法、受信装置および方法、記録媒体、並びにプログラム
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
US7418644B2 (en) 2004-03-01 2008-08-26 Hewlett-Packard Development Company, L.P. System for error correction coding and decoding
JP5011116B2 (ja) 2004-10-26 2012-08-29 エージェンシー フォー サイエンス,テクノロジー アンド リサーチ 変調の制約及び誤り制御を用いて情報の符号化及び復号化を実行する方法及びシステム
CN101027862B (zh) 2004-10-29 2011-06-08 美国博通公司 对通信流量分级的多信道通信
JP4711660B2 (ja) 2004-11-10 2011-06-29 日本ビクター株式会社 記録装置および記録媒体
US7423561B2 (en) 2005-09-06 2008-09-09 Mediateck Inc. Modulation methods and systems
US8321653B2 (en) 2006-08-08 2012-11-27 Siemens Aktiengesellschaft Devices, systems, and methods for assigning a PLC module address
CN101523364A (zh) * 2006-08-18 2009-09-02 Nxp股份有限公司 Mac和phy接口配置
KR100808664B1 (ko) 2006-12-08 2008-03-07 한국전자통신연구원 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
EP2103026B1 (en) 2006-12-21 2014-02-26 Thomson Licensing A method to support forward error correction for real-time audio and video data over internet protocol networks
US9015399B2 (en) 2007-08-20 2015-04-21 Convey Computer Multiple data channel memory module architecture
JP5219699B2 (ja) 2007-08-30 2013-06-26 パナソニック株式会社 符号化装置及び復号装置
US8787153B2 (en) 2008-02-10 2014-07-22 Cisco Technology, Inc. Forward error correction based data recovery with path diversity
KR101398212B1 (ko) 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
US7995696B1 (en) 2008-08-07 2011-08-09 Integrated Device Technology, Inc. System and method for deskewing data transmitted through data lanes
US8102779B2 (en) 2008-10-31 2012-01-24 Howard University System and method of detecting and locating intermittent electrical faults in electrical systems
US8023530B1 (en) * 2009-01-07 2011-09-20 L-3 Communications Corp. Physical layer quality of service for wireless communications
JP5365234B2 (ja) 2009-02-13 2013-12-11 株式会社明電舎 端末装置間のトークン異常検出/回復方式
US8307265B2 (en) 2009-03-09 2012-11-06 Intel Corporation Interconnection techniques
US8732536B2 (en) 2009-08-18 2014-05-20 Mitsubishi Electric Corporation Communication system and communication apparatus state determining method
TWI402684B (zh) 2009-10-22 2013-07-21 Via Tech Inc 通用串列匯流排裝置以及其校正方法
US9237105B2 (en) 2009-12-08 2016-01-12 Microsoft Technology Licensing, Llc Data communication with compensation for packet loss
TWI423007B (zh) 2009-12-31 2014-01-11 Via Tech Inc 串列匯流排裝置以及其時脈差補償方法
US20120314586A1 (en) 2010-02-01 2012-12-13 Ntt Docomo, Inc. Data relaying apparatus and data relaying method
US8839078B2 (en) 2010-03-05 2014-09-16 Samsung Electronics Co., Ltd. Application layer FEC framework for WiGig
US8977933B2 (en) 2010-06-11 2015-03-10 Freescale Semiconductor, Inc. Method for providing data protection for data stored within a memory element and integrated circuit device therefor
JP2012199724A (ja) 2011-03-19 2012-10-18 Fujitsu Ltd データ送信装置、データ受信装置、データ送受信装置及びデータ送受信装置の制御方法
US8400728B2 (en) 2011-05-23 2013-03-19 Spectra Logic Corp. Efficient moves via repository
JP5348263B2 (ja) 2012-02-29 2013-11-20 富士通株式会社 データ伝送装置、データ伝送システムおよびデータ伝送方法
US8862967B2 (en) 2012-03-15 2014-10-14 Sandisk Technologies Inc. Statistical distribution based variable-bit error correction coding
US9229897B2 (en) 2012-06-29 2016-01-05 Intel Corporation Embedded control channel for high speed serial interconnect
US9479196B2 (en) 2012-10-22 2016-10-25 Intel Corporation High performance interconnect link layer
JP6139689B2 (ja) 2012-10-22 2017-05-31 インテル・コーポレーション 装置
US9280507B2 (en) 2012-10-22 2016-03-08 Intel Corporation High performance interconnect physical layer
US9311268B1 (en) 2012-10-25 2016-04-12 Qlogic, Corporation Method and system for communication with peripheral devices
US9037943B2 (en) 2012-10-26 2015-05-19 Intel Corporation Identification of non-volatile memory die for use in remedial action
US9300602B2 (en) 2012-11-02 2016-03-29 Qualcomm Incorporated Method, device, and apparatus for error detection and correction in wireless communications
EP2926341B1 (en) 2012-11-30 2020-02-19 Hewlett-Packard Enterprise Development LP Memory controllers to form symbols based on bursts
US9396152B2 (en) 2013-03-15 2016-07-19 Intel Corporation Device, system and method for communication with heterogenous physical layers
US9344219B2 (en) 2013-06-25 2016-05-17 Intel Corporation Increasing communication safety by preventing false packet acceptance in high-speed links
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
CN105793830B (zh) 2013-12-26 2019-12-24 英特尔公司 一种在节点之间共享存储器和i/o服务的装置、方法、系统
KR102041743B1 (ko) 2013-12-26 2019-11-06 인텔 코포레이션 Pci 익스프레스 강화
DE112013007726T5 (de) 2013-12-26 2017-02-02 Intel Corporation Verbesserungen eines Zwischenverbindungs-Retimers
US9628382B2 (en) 2014-02-05 2017-04-18 Intel Corporation Reliable transport of ethernet packet data with wire-speed and packet data rate match
JP6260360B2 (ja) 2014-03-07 2018-01-17 富士通株式会社 光伝送装置および光伝送システム
US9696920B2 (en) 2014-06-02 2017-07-04 Micron Technology, Inc. Systems and methods for improving efficiencies of a memory system
US9971730B2 (en) * 2014-06-16 2018-05-15 Qualcomm Incorporated Link layer to physical layer (PHY) serial interface
US9552253B2 (en) 2014-09-24 2017-01-24 Intel Corporation Probabilistic flit error checking
US20160099795A1 (en) 2014-10-02 2016-04-07 Kent C. Lusted Technologies for exchanging host loss and forward error correction capabilities on a 25g ethernet link
US9921768B2 (en) 2014-12-18 2018-03-20 Intel Corporation Low power entry in a shared memory link
US9910809B2 (en) 2014-12-19 2018-03-06 Intel Corporation High performance interconnect link state transitions
US9632862B2 (en) 2014-12-20 2017-04-25 Intel Corporation Error handling in transactional buffered memory
US9740646B2 (en) 2014-12-20 2017-08-22 Intel Corporation Early identification in transactional buffered memory
US9552269B2 (en) 2014-12-23 2017-01-24 Intel Corporation Test logic for a serial interconnect
US9779053B2 (en) 2014-12-23 2017-10-03 Intel Corporation Physical interface for a serial interconnect
US9780969B2 (en) 2014-12-23 2017-10-03 Intel Corporation Transferring data between elements of a cable communication device
US10505850B2 (en) 2015-02-24 2019-12-10 Qualcomm Incorporated Efficient policy enforcement using network tokens for services—user-plane approach
US20160261375A1 (en) 2015-03-04 2016-09-08 Qualcomm Incorporated Packet format and coding method for serial data transmission
US20160283303A1 (en) 2015-03-27 2016-09-29 Intel Corporation Reliability, availability, and serviceability in multi-node systems with disaggregated memory
US9639276B2 (en) 2015-03-27 2017-05-02 Intel Corporation Implied directory state updates
US9720838B2 (en) 2015-03-27 2017-08-01 Intel Corporation Shared buffered memory routing
US9619396B2 (en) 2015-03-27 2017-04-11 Intel Corporation Two level memory full line writes
US9940287B2 (en) 2015-03-27 2018-04-10 Intel Corporation Pooled memory address translation
US9858234B2 (en) 2015-07-17 2018-01-02 Parade Technologies, Ltd. System transparent retimer
US20170026976A1 (en) 2015-07-20 2017-01-26 Qualcomm Incorporated Flexible coding schemes
US9660987B2 (en) 2015-07-30 2017-05-23 Oracle International Corporation Storage isolation using I/O authentication
US20190372903A1 (en) 2018-06-04 2019-12-05 Lightfleet Corporation Priority-based arbitration for parallel multicast routing with self-directed data packets
US10097203B2 (en) 2015-11-12 2018-10-09 Nvidia Corporation Lane-striped computation of packet CRC to maintain burst error properties
US10372647B2 (en) 2015-12-22 2019-08-06 Intel Corporation Exascale fabric time synchronization
US10210040B2 (en) 2016-01-28 2019-02-19 Nxp Usa, Inc. Multi-dimensional parity checker (MDPC) systems and related methods for external memories
US20170222684A1 (en) 2016-02-01 2017-08-03 Qualcomm Incorporated Unidirectional clock signaling in a high-speed serial link
US20170270062A1 (en) 2016-03-21 2017-09-21 Intel Corporation In-band retimer register access
US10114790B2 (en) 2016-05-17 2018-10-30 Microsemi Solutions (U.S.), Inc. Port mirroring for peripheral component interconnect express devices
US11144691B2 (en) 2016-06-02 2021-10-12 Siemens Industry Software Inc. Virtual Ethernet mutable port group transactor
US10411980B2 (en) 2016-09-20 2019-09-10 Intel Corporation Proactive path quality reporting in packet transmission
US10152446B2 (en) 2016-10-01 2018-12-11 Intel Corporation Link-physical layer interface adapter
US10931329B2 (en) 2016-12-29 2021-02-23 Intel Corporation High speed interconnect with channel extension
US10050688B2 (en) 2017-01-16 2018-08-14 At&T Intellectual Property I, L.P. Single codeword, multi-layer serial interference cancellation (SIC) for spatial multiplexing
US10784986B2 (en) 2017-02-28 2020-09-22 Intel Corporation Forward error correction mechanism for peripheral component interconnect-express (PCI-e)
US10250436B2 (en) 2017-03-01 2019-04-02 Intel Corporation Applying framing rules for a high speed data link
US11461527B2 (en) 2018-02-02 2022-10-04 Micron Technology, Inc. Interface for data communication between chiplets or other integrated circuits on an interposer
US10606790B2 (en) 2018-04-16 2020-03-31 Intel Corporation Precoding mechanism in PCI-express
US10771194B2 (en) * 2018-05-25 2020-09-08 Arm Limited Interconnection network for integrated circuit
US20200067637A1 (en) * 2018-08-21 2020-02-27 The George Washington University Learning-based high-performance, energy-efficient, fault-tolerant on-chip communication design framework
US10771189B2 (en) 2018-12-18 2020-09-08 Intel Corporation Forward error correction mechanism for data transmission across multi-lane links
US11637657B2 (en) 2019-02-15 2023-04-25 Intel Corporation Low-latency forward error correction for high-speed serial links
US11249837B2 (en) 2019-03-01 2022-02-15 Intel Corporation Flit-based parallel-forward error correction and parity
US10997111B2 (en) 2019-03-01 2021-05-04 Intel Corporation Flit-based packetization
US10776302B2 (en) 2019-04-02 2020-09-15 Intel Corporation Virtualized link states of multiple protocol layer package interconnects
US11296994B2 (en) 2019-05-13 2022-04-05 Intel Corporation Ordered sets for high-speed interconnects
US11444829B2 (en) 2019-09-09 2022-09-13 Intel Corporation Link layer communication by multiple link layer encodings for computer buses

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024092437A1 (zh) * 2022-10-31 2024-05-10 华为技术有限公司 一种数据传输方法、装置和系统

Also Published As

Publication number Publication date
US11740958B2 (en) 2023-08-29
US20200226018A1 (en) 2020-07-16
BR102020019435A2 (pt) 2021-06-08
US20240028449A1 (en) 2024-01-25
TW202134872A (zh) 2021-09-16
JP2021087216A (ja) 2021-06-03
EP3829090A1 (en) 2021-06-02

Similar Documents

Publication Publication Date Title
US11740958B2 (en) Multi-protocol support on common physical layer
US11223446B2 (en) Forward error correction mechanism for data transmission across multi-lane links
US11397701B2 (en) Retimer mechanisms for in-band link management
US11595318B2 (en) Ordered sets for high-speed interconnects
US11637657B2 (en) Low-latency forward error correction for high-speed serial links
US20190340146A1 (en) Power management of re-driver devices
US20210050941A1 (en) Characterizing and margining multi-voltage signal encoding for interconnects
KR20210065834A (ko) 양방향 멀티레인 링크들에 대한 부분 링크 폭 상태들
US11886312B2 (en) Characterizing error correlation based on error logging for computer buses
US11474960B2 (en) Technologies for partial link width states for multilane links
CN113986624A (zh) 通过错误注入和测量进行互连的系统内验证
US20210013999A1 (en) Latency-Optimized Mechanisms for Handling Errors or Mis-Routed Packets for Computer Buses
WO2018160489A1 (en) Applying framing rules for a high speed data link

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