CN104050138A - 用于执行链路训练与均衡的装置、系统、和方法 - Google Patents

用于执行链路训练与均衡的装置、系统、和方法 Download PDF

Info

Publication number
CN104050138A
CN104050138A CN201410097202.2A CN201410097202A CN104050138A CN 104050138 A CN104050138 A CN 104050138A CN 201410097202 A CN201410097202 A CN 201410097202A CN 104050138 A CN104050138 A CN 104050138A
Authority
CN
China
Prior art keywords
link
value
assembly
coefficient set
low frequency
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.)
Granted
Application number
CN201410097202.2A
Other languages
English (en)
Other versions
CN104050138B (zh
Inventor
D.达斯沙玛
K.L.S.P.加德纳加文卡塔
H.K.波拉迪亚
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 CN104050138A publication Critical patent/CN104050138A/zh
Application granted granted Critical
Publication of CN104050138B publication Critical patent/CN104050138B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/03Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
    • H04L25/03006Arrangements for removing intersymbol interference
    • H04L25/03159Arrangements for removing intersymbol interference operating in the frequency domain
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/03Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
    • H04L25/03006Arrangements for removing intersymbol interference
    • H04L2025/03592Adaptation methods
    • H04L2025/03598Algorithms
    • H04L2025/03605Block algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/03Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
    • H04L25/03006Arrangements for removing intersymbol interference
    • H04L2025/03592Adaptation methods
    • H04L2025/03745Timing of adaptation
    • H04L2025/03764Timing of adaptation only during predefined intervals
    • H04L2025/0377Timing of adaptation only during predefined intervals during the reception of training signals
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Communication Control (AREA)

Abstract

本发明涉及用于执行链路训练与均衡的装置、系统、和方法。一种系统和方法包括,响应于第一组件和第二组件经受链路训练与均衡过程,第二组件沿着通信链路的至少一个信道经由第一传输逻辑而将第一数据集传送到第一组件。第一组件和第二组件是链路伙伴。第一数据集进一步包括在第一组件的第一存储单元中存储的全开值和低频值。第一组件存储根据全开值和低频值所计算的第一系数集。第二组件将所计算的第一系数集应用于第二组件的第一传输逻辑。

Description

用于执行链路训练与均衡的装置、系统、和方法
技术领域
本公开涉及计算系统,并且特别地(但不排他地)涉及用于改善链路训练与均衡过程的技术。
附图说明
图1是图示用于包括多核处理器的计算系统的框图的实施例的示意图。
图2是图示包括外围组件互连高速(PCIe)兼容架构的计算系统的实施例的示意图。
图3是图示包括分层栈的PCIe兼容互连架构的实施例的示意图。
图4是图示在互连架构内生成或接收的PCIe兼容请求或分组的实施例的示意图。
图5是图示PCIe串行点对点构造(fabric)的实施例的示意图。
图6是图示具有最佳的预设的误比特率(BER)眼图以及具有优化的发送器系数的BER眼图的示意图。
图7示出按照本公开的实施例的用于链路训练与均衡的方法。
图8是图示PCIe链路训练与均衡过程的阶段0的实施例的示意图。
图9是图示PCIe链路训练与均衡过程的阶段1的实施例的示意图。
图10是图示PCIe链路训练与均衡过程的阶段0的实施例的示意图。
图11是图示PCIe链路训练与均衡过程的阶段1的实施例的示意图。
图12是图示PCIe链路训练与均衡过程的阶段2的实施例的示意图。
图13是图示PCIe链路训练与均衡过程的常规的阶段3过程的示意图。
图14A-14B示出按照本公开的实施例的针对用于链路训练与均衡的方法的块。
图15是根据本公开的实施例的经受链路训练与均衡过程的两个设备的显示。
图16是图示按照本公开的组件的系统的示意图。
具体实施方式
在下面的描述中,阐述了许多的特定细节,诸如特定的类型的处理器和系统配置、特定的硬件结构、特定的架构和微型架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定测量/高度、特定处理器流水线阶段和操作等等的示例,以便提供对本公开的彻底的了解。然而,对于本领域技术人员明显的是,不必采用这些特定细节来实践本公开。在其他的实例中,没有详细描述诸如特定和替换处理器架构、用于描述的算法的特定逻辑电路/代码、特定固件代码、特定互连操作、特定逻辑配置、特定生产技术和材料、特定编译器实施方式、代码中的算法的特定表达、特定掉电和选通技术/逻辑之类的众所周知的组件或方法和计算机系统的其他特定操作细节,以免不必要地使本公开晦涩难懂。
尽管可以参考诸如计算平台或微处理器中的特定集成电路中的能量节约和能量效率来描述以下实施例,但其他的实施例可适用于其他类型的集成电路和逻辑设备。类似的技术和在此描述的实施例的教导可以应用于也可以受益于良好能量效率和能量节约的其他类型的电路或半导体设备。例如,所公开的实施例不局限于台式计算机系统或Ultrabooks™。并且也可以被用于诸如手持设备、平板机、其他轻薄笔记本、片上系统(SOC)设备之类的其他设备以及嵌入式应用中。手持设备的一些示例包括蜂窝电话、网际协议设备、数字式照相机、个人数字助理(PDA)和手持PC。嵌入式应用典型地包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机,或可以执行以下讲授的功能和操作的任何其他系统。此外,在此描述的装置、方法和系统不局限于物理计算设备,而是也可以涉及用于能量节约和效率的软件优化。如将根据以下的描述明显的是,在此描述的方法、装置和系统的实施例(不管是设计硬件、固件、软件还是其组合)是与性能考虑进行平衡的“绿色技术”未来所不可缺少的。
由于计算系统在发展,其中的组件变得更复杂。结果,在组件之间进行耦合和通信的互连架构的复杂度也在增加,以保证满足用于最优组件操作的带宽要求。此外,不同的市场区隔要求互连架构的不同方面适合市场的需要。例如,服务器要求较高的性能,而移动生态系统有时能够为了节电而牺牲总体性能。然而,大多数构造的单一目的是提供具有最大节电的最高可能性能。以下,对许多互连进行讨论,其将潜在地受益于在此描述的本公开的各方面。
关于图1,描绘了包括多核处理器的计算系统的框图的实施例。处理器100包括任何处理器或处理设备,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器、片上系统(SOC)或运行代码的其他设备。在一个实施例中,处理器100包括至少两个核——核101和102,其可能包括不对称的核或对称的核(所图示的实施例)。然而,处理器100可以包括可以是对称的或不对称的任何数量的处理元件。
在一个实施例中,处理元件指的是支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核,和/或能够保持诸如执行状态或架构状态之类的处理器的状态的任何其他元件。换句话说,在一个实施例中,处理元件指的是能够与诸如软件线程、操作系统、应用之类的代码或其他代码独立地相关联的任何硬件。物理处理器(或处理器插槽)典型地指的是集成电路,其潜在地包括任何数量的其他处理元件,诸如核或硬件线程。
核往往指的是位于集成电路上的能够维持独立的架构状态的逻辑,其中每个独立地维持的架构状态与至少一些专用的执行资源相关联。与核形成对比,硬件线程典型地指的是位于集成电路上的能够维持独立的架构状态的任何逻辑,其中该独立地维持的架构状态共享对执行资源的访问。可以看出,当某些资源被共享并且其它资源专用于一种架构状态时,硬件线程和核的命名法之间的线发生重叠。然而,经常是,由操作系统将核和硬件线程视为独立的逻辑处理器,其中操作系统能够单独地调度每个逻辑处理器上的操作。
如图1所图示的,物理处理器100包括两个核——核101和102。这里,核101和102被考虑为对称的核,即,具有相同的配置、功能单元和/或逻辑的核。在另一个实施例中,核101包括乱序处理器核,而核102包括有序处理器核。然而,可以从诸如本机核(native core)、软件管理的核、适合于执行本机指令集架构(ISA)的核、适合于执行转换的指令集架构(ISA)的核、协同设计的核之类的任何类型的核或其他已知核中单独地选择核101和102。在异构核环境(即不对称的核)中,可以利用像二进制转换的某种形式的转换来调度或执行一个或两个核上的代码。又进行进一步的讨论,以下更加详尽地描述核101中图示的功能单元,这是因为在所描绘的实施例中核102中的单元以类似方式操作。
如所描绘的,核101包括两个硬件线程101a和101b,其也可以被称为硬件线程槽101a和101b。因此,诸如操作系统之类的软件实体在一个实施例中潜在地把处理器100视为四个分离处理器,即能够并发地执行四个软件线程的四个逻辑处理器或处理元件。至于提及以上时,第一线程与架构状态寄存器101a相关联,第二线程与架构状态寄存器101b相关联,第三线程可以与架构状态寄存器102a相关联,并且第四线程可以与架构状态寄存器102b相关联。这里,每一个架构状态寄存器(101a、101b、102a和102b)可以被称为处理元件、线程槽,或线程单元,如上所述。如所图示的,在架构状态寄存器101b中复制架构状态寄存器101a,所以能够为了逻辑处理器101a和逻辑处理器101b而存储单独的架构状态/上下文。在核101中,也可以对于线程101a和101b而复制诸如分配器和更名器块130中的指令指针和更名逻辑之类的其他的较小资源。可以通过分割来共享诸如重排序/回收(retirement)单元135中的重排序缓冲器、ILTB 120、加载/存储缓冲器以及队列之类的一些资源。潜在地对诸如通用内部寄存器、页表基址寄存器(一个或多个)、低级别数据高速缓存和数据TLB 115、执行单元(一个或多个)140和乱序单元135的各部分之类的其他资源进行充分地共享。
处理器100往往包括其他的资源,其可以由处理元件充分地共享、通过分割由处理元件共享,或专用于处理元件。在图1中,图示出具有处理器的说明性逻辑单元/资源的纯示例性处理器的实施例。注意到,处理器可以包括或省略这些功能单元中的任何一项,以及包括没有描绘的任何其他已知功能单元、逻辑或固件。如所图示的,核101包括简单化的、有代表性的乱序(OOO)处理器核。但是可以在不同的实施例中利用有序处理器。OOO核包括用于预测要被执行/采取的分支的分支目标缓冲器120以及用于存储用于指令的地址转换条目的指令转换缓冲器(I-TLB)120。
核101进一步包括耦合到取出单元120的、用于解码所取出的元素的解码模块125。在一个实施例中,取出逻辑包括分别地与线程槽101a、101b相关联的单独的定序器。通常,核101与定义/指定可在处理器100上执行的指令的第一ISA相关联。作为第一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之外的计算系统中。在该场景中,片上接口11将与诸如系统存储器175、芯片组(往往包括连接到存储器175的存储器控制器集线器以及连接外围设备的I/O控制器集线器)、存储器控制器集线器、北桥之类的处理器100以外的设备或其他的集成电路进行通信。并且,在该场景中,总线105可以包括任何已知的互连,诸如多点分支总线、点到点互连、串行互连、并行总线、一致性(例如高速缓存一致性)总线、分层协议架构、差分总线和GTL总线。
存储器175可以专用于处理器100或与系统中的其他设备共享。存储器175的常见示例类型包括DRAM、SRAM、非易失性存储器(NV存储器)和其他已知存储设备。注意到,设备180可以包括图形加速器、处理器或耦合到存储器控制器集线器的卡、耦合到I/O控制器集线器的数据存贮器、无线收发器、闪存设备、音频控制器、网络控制器或其他的已知设备。
然而,最近,随着更多逻辑和设备被集成在诸如SOC之类的单个管芯上,可以在处理器100上合并这些设备中的每一个。例如,在一个实施例中,存储器控制器集线器与处理器100位于相同的封装和/或管芯上。这里,核的一部分(核上(on-core)部分)110包括用于与诸如存储器175或图形设备180之类的其他设备对接的一个或多个控制器。包括用于与这样的设备对接的互连和控制器的配置往往被称为核上(或非核(un-core)配置)。举例来说,片上接口110包括用于片上通信的环形互连和用于片外通信的高速串行点到点链路105。而在SOC环境中,可以在单个管芯或集成电路上集成诸如网络接口、协处理器、存储器175、图形处理器180以及任何其他已知计算机设备/接口之类的甚至更多的设备,以提供具有高功能和低功耗的较小形状因数。
在一个实施例中,处理器100能够执行编译器、优化和/或转换器代码177以编译、转换和/或优化应用代码176,以支持在此描述的装置和方法或与之对接。编译器往往包括程序或程序集来将源文本/代码转换为目标文本/代码。通常,在多个阶段和多遍中完成利用编译器进行程序/应用代码的编译,以将高级编程语言代码转换为低级机器或汇编语言代码。然而,仍然可以利用单遍编译器来用于简单编译。编译器可以利用任何已知编译技术并且执行任何已知编译器操作,诸如词法分析、预处理、解析、语义分析、代码生成、代码变换以及代码优化。
较大的编译器往往包括多个阶段,但是最经常的是,这些阶段被包括在两个通用阶段内:(1)前端,即,通常在其中可以发生语法处理、语义处理和一些变换/优化,以及(2)后端,即,通常在其中可以发生分析、变换、优化和代码生成。一些编译器参看中部,其说明编译器的前端与后端之间的划定的模糊。结果,对编译器的插入、关联、生成或其他操作的引用可以发生在上述的编译器的阶段或遍以及任何其他的已知阶段或遍中的任何一项中。作为说明性示例,编译器潜在地在编译的一个或多个阶段中插入操作、调用、函数等等,诸如在编译的前端阶段中插入调用/操作,并且然后在变换阶段期间将调用/操作变换为较低级别代码。注意到,在动态编译期间,编译器代码或动态优化代码可以插入这样的操作/调用以及优化用于在运行时间期间执行的代码。作为特定说明性示例,可以在运行时间期间动态地优化二进制代码(已经编译的代码)。这里,程序代码可以包括动态优化代码、二进制代码,或其组合。
类似于编译器,诸如二进制转换器之类的转换器静态地或动态地转换代码,以优化和/或转换代码。因此,对代码、应用代码、程序代码或其他软件环境的执行的提及可以指的是:(1)动态地或静态地执行编译器程序(一个或多个)、优化代码优化器或转换器,以编译程序代码、维持软件结构、执行其他操作、优化代码或者转换代码;(2)执行包括诸如已经被优化/编译的应用代码之类的操作/调用的主程序代码;(3)执行诸如与主程序代码相关联的库之类的其他的程序代码,以维持软件结构、执行其他软件有关的操作,或优化代码;或者(4)其组合。
一种互连构造架构包括外部组件互连(PCI)高速(PCIe)架构。PCIe的主要目标将是使得来自不同厂商的组件和设备能够在开放式架构中互操作、跨多个市场区隔、客户端(桌上型和移动)、服务器(标准和企业)以及嵌入式和通信设备。PCI高速是为各式各样的未来计算和通信平台定义的高性能、通用互连I/O互连。诸如其使用模型、加载-存储架构和软件接口之类的一些PCI属性已经通过其修订被维持,而先前的并行总线实施方式已经由高度可伸缩的、完全串行接口替代。PCI高速的最新近版本利用点到点互连、基于交换机的技术和封包化协议中的进展,以提供新级别的性能和特征。功率管理、服务质量(QoS)、热插拔/热切换支持、数据完整性和错误处理都是由PCI高速所支持的一些高级特征。
参考图2,图示由互连一组组件的点对点链路所构成的构造的实施例。系统200包括耦合到控制器集线器215的处理器205和系统存储器210。处理器205包括任何处理元件,诸如微处理器、主机处理器、嵌入式处理器、协处理器、或其他处理器。处理器205通过前端总线(FSB)206耦合到控制器集线器215。在一个实施例中,FSB 206是如以下所描述的串行点对点互连。在另一个实施例中,链路206包括兼容于不同互连标准的串行差分互连架构。
系统存储器210包括任何存储器设备,诸如随机存取存储器(RAM)、非易失性(NV)存储器、或者可由系统200中的设备访问的其他存储器。系统存储器210通过存储器接口216耦合到控制器集线器215。存储器接口的示例包括双倍数据速率(DDR)存储器接口、双通道DDR存储器接口、以及动态RAM(DRAM)存储器接口。
在一个实施例中,控制器集线器215是外围组件互连高速(PCIe或PCIE)互连层级中的根集线器、根联合体(root complex)、或根控制器。控制器集线器215的示例包括芯片集、存储控制器集线器(MCH)、北桥、互连控制器集线器(ICH)、南桥、以及根控制器/集线器。通常,术语“芯片集”指的是两个物理上分离的控制器集线器,即耦合到互连控制器集线器(ICH)的存储控制器集线器(MCH)。注意,目前的系统通常包括与处理器205集成的MCH,而如以下所描述的,控制器215采用类似的方式与I/O设备进行通信。在一些实施例中,端对端路由通过根联合体设备而可选地支持。
本文中,控制器集线器215通过串行链路219耦合到交换器/桥220。输入/输出模块217和221(也可以称为接口/端口217和221)包括/实现分层协议栈以提供控制器集线器215与交换器220之间的通信。在一个实施例中,多个设备能够耦合到交换器220。
交换器/桥220将分组/消息向上游地(即,朝向根联合体而沿层级向上)从设备225路由到控制器集线器215,以及向下游地(即,远离根控制器而沿层级向下)从处理器205或系统存储器210路由到设备225。在一个实施例中,交换器220被称为多个虚拟PCI-至-PCI桥设备的逻辑组装件。设备225包括耦合到电子系统的任何内部或外部的设备或组件,诸如I/O设备、网络接口控制器(NIC)、插入卡、音频处理器、网络处理器、硬盘驱动器、储存设备、CD/DVD ROM、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、火线设备、通用串行总线(USB)设备、扫描器、以及其他输入/输出设备。通常在PCIe用语中,诸如,将设备称为端点。尽管未具体示出,但是设备225可以包括至PCI/PCI-X桥的PCIe以支持传统或其他版本PCI设备。通常PCIe中的端点设备被分类为传统、PCIe、或根联合体集成端点。
图形加速器230也通过串行链路232耦合到控制器集线器215。在一个实施例中,图形加速器230耦合到MCH,所述MCH耦合到ICH。然后,交换器220并且因而I/O设备225耦合到ICH。I/O模块231和218也实现分层协议栈以在图形加速器230与控制器集线器215之间通信。与以上的MCH讨论类似,图形控制器或图形加速器230自身可以集成在处理器205中。
转向图3,图示了分层协议栈的实施例。分层协议栈300包括任何形式的分层通信栈,诸如快速路径互连(QPI)栈、PCIe栈、下一代高性能计算互连栈、或其他分层栈。尽管接在下面的参考图2-5的讨论与PCIe栈相关,但是相同的概念可以应用于其他互连栈。在一个实施例中,协议栈300是包括事务层305、链路层310、和物理层320的PCIe协议栈。诸如图2中的接口217、218、221、222、226、和231之类的接口可以被表示为通信协议栈300。表示为通信协议栈也可以称为实现/包括协议栈的模块或接口。
PCI高速使用分组来在组件之间传送信息。分组形成于事务层305和数据链路层310中,以将信息从发送组件载送到接收组件。当所发送的分组流过其他层时,利用在那些层处处理分组所必需的附加信息来对所述分组扩展。在接收侧处,发生相反的过程,并且使分组从其物理层320表示转换为数据链路层310表示,并最终(针对事务层分组)转换为可以由接收设备的事务层305处理的形式。
事务层
在一个实施例中,事务层305提供设备的处理核与互连架构(诸如,数据链路层310和物理层320)之间的接口。就这点而言,事务层305的主要职责是对分组进行组装和拆卸(即,事务层分组、或TLP)。事务层305通常管理用于TLP的基于信用的流控制。PCIe实现分离事务,即具有由时间所分开的请求和响应的事务,从而允许链路承载其他业务而目标设备收集用于响应的数据。
另外,PCIe利用基于信用的流控制。在该方案中,设备通告用于事务层305中的每个接收缓冲器的信用的初始量。链路的相对端处的外部设备(诸如,图1中的控制器集线器115)对由每个TLP所消耗的信用数进行计数。如果事务不超过信用限制,则可以发送该事务。在接收到响应时,恢复信用量。信用方案的优势在于如果不遭遇信用限制,那么信用返回的延迟不影响性能。
在一个实施例中,四个事务地址空间包括配置地址空间、存储器地址空间、输入/输出地址空间、和消息地址空间。存储器空间事务包括读取请求和写入请求中的一个或多个以将数据向/从存储器映射的位置转移。在一个实施例中,存储器空间事务能够使用两个不同的地址格式,例如,诸如32位地址的短地址格式、或诸如64位地址的长地址格式。配置空间事务被用来访问PCI设备的配置空间。对于配置空间的事务包括读取请求和写入请求。消息空间事务(或简单地,消息)被定义成支持PCIe代理之间的带内通信。
因而,在一个实施例中,事务层305组装分组头/有效载荷306。用于目前的分组头/有效载荷的格式可以在PCIe规范网站处的PCIe规范中找到。
快速参考图4,图示了PCIe事务描述符的实施例。在一个实施例中,事务描述符400是用于载送事务信息的机制。就这点而言,事务描述符400支持对系统中事务的标识。其他可能的使用包括追踪对默认事务排序的修改以及将事务与信道关联。
事务描述符400包括全局标识符字段402、属性字段404和信道标识符字段406。在所图示的示例中,全局标识符字段402被描绘为包括局部事务标识符字段408和源标识符字段410。在一个实施例中,全局事务标识符402对于所有未解决的请求而言是唯一的。
根据一个实现,局部事务标识符字段408是由请求代理所生成的字段,并且其对于所有未解决的对于该请求代理而言要求完成的请求而言是唯一的。此外,在该示例中,源标识符410唯一地标识PCIe层级内的请求者代理。因而,与源ID 410一起,局部事务标识符408字段提供层级域内的事务的全局标识。
属性字段404规定事务的特性和关系。就这点而言,属性字段404可能被用来提供允许对事务的默认处理进行修改的附加信息。在一个实施例中,属性字段404包括优先级字段412、预留字段414、排序字段416、和不监听(no-snoop)字段418。本文中,优先级子字段412可以由发起者来修改以给事务分配优先级。预留属性字段414为将来、或厂商定义的使用而预留。使用优先级或安全属性的可能使用模型可以使用预留的属性字段来实现。
在该示例中,排序属性字段416被用来供应传达可以修改默认排序规则的排序类型的可选信息。根据一个示例性实现,排序属性“0”表示应用默认的排序规则,其中排序属性“1”表示松散性排序,其中写入可以在相同的方向上超过写入,并且读取完成可以在相同的方向上超过写入。监听属性字段418被用来确定事务是否被监听。如所示出的,信道ID字段406标识与事务关联的信道。
链路层(参考图 3
链路层310(也称为数据链路层310)充当事务层305与物理层320之间的中间阶段。在一个实施例中,数据链路层310的职责是提供用于在两个组件链路之间交换事务层分组(TLP)的可靠机制。数据链路层310的一侧接受由事务层305组装的TLP,应用分组序列标识符311(即,标识号或分组号),计算并应用检错码(即,CRC)312,以及将修改后的TLP提交给物理层320以供跨物理向外部设备的传输。
物理层
在一个实施例中,物理层320包括逻辑子块321和电气子块322以向外部设备物理地发送分组。本文中,逻辑子块321负责物理层321的“数字”功能。就这点而言,逻辑子块包括准备用于由物理子块322传输的外出信息的发送部分,以及在将所接收的信息传递到链路层310之前对其进行标识并准备的接收器部分。
物理块322包括发送器和接收器。逻辑子块321向发送器供应符号,发送器使所述符号序列化并且将其发送到外部设备上。从外部设备向接收器供应经序列化的符号,并且所述接收器将接收到的信号转换成位流。位流被反序列化并且供应到逻辑子块321。在一个实施例中,采用8b/10b传输代码,其中发送/接收十位符号。本文中,特殊符号被用来利用帧323使分组成帧。另外,在一个示例中,接收器还提供从进入的串行流中恢复的符号时钟。
如上所述,尽管参考PCIe协议栈的特定实施例而讨论了事务层305、链路层310、和物理层320,但分层协议栈不如此限制。事实上,可以包括/实现任何分层协议。作为一个示例,表示为分层协议的端口/接口包括:(1)组装分组的第一层,即事务层;将分组按序排列的第二层,即链路层;以及发送分组的第三层,即物理层。作为一个特定示例,利用公共标准接口(CSI)分层协议。
随着串行链路频率的增加以及芯片向其中设备尺寸日益减小的新加工技术迁移,提供以下能力变得越来越重要:动态调整发送器和接收器均衡设置以考虑平台和硅变化。
PCIe第3代(PCIe Gen3)是行业标准的示例,其因此必须在每发送器-接收器对基上均衡,以确保在用于部署PCIe的大范围的系统的8GT/s处的交互操作性。然而,由不同厂商所制造的多种设备具有不同加工技术,每个都具有其专有的发送器/接收器设计以及要适配的专有的硬件算法,这使设计具有保证的交互操作性的组件变得有挑战性。
本公开涉及提供硬件钩(hook)并且使用诸如系统BIOS、固件、或微码之类的系统软件来执行链路训练与均衡过程。本公开可以分别应用于端点设备或根联合体设备的上游端口或下游端口。在一些实施例中,如以下将详细描述的,链路训练与均衡过程包括两遍(pass)。
特别地,本公开提供减少用于链路训练与均衡的时间并且提高其可靠性的机制。如将充分详细描述的,按照本公开的链路训练与均衡过程可以采用软件来生成应用于传输逻辑或接收器逻辑设置的系数集。
在一些实施例中,软件被用来根据与耦合到总线接口链路的设备(例如,根联合体设备或端点设备)关联的全开(full swing)(FS)值和低频(LF)值而生成系数集,所述系数集被应用于耦合到总线接口链路的设备的发送器逻辑或接收器逻辑设置。
在一些实施例中,软件应用生成被应用于端点设备的发送器组件的系数,以使得根联合体设备可以在PCIe链路训练与均衡过程的阶段3期间满足目标BER。
图示了图5,图5是图示PCIe串行点对点构造500的实施例的示意图。尽管图示了PCIe串行点对点链路的实施例,但串行点对点链路不如此限制,原因在于其包括用于发送串行数据的任何传输路径。在所示出的实施例中,基本PCIe链路包括两个低压差分驱动信号对:发送对501/504以及接收对502/503。
因而,设备550包括向设备510发送数据的传输逻辑506以及从设备560接收数据的接收逻辑507。换句话说,关于设备550,在PCIe链路中包括两个发送路径(即,路径505和525)以及两个接收路径(即,路径506和526)。
传输路径可以指的是用于发送数据的任何路径,诸如传输线、铜线、光线、无线通信信道、红外通信链路、或其他通信路径。两个设备(诸如设备550和设备560)之间的连接称为链路(诸如,链路530)。在一些实施例中,链路530是PCIe总线接口链路。
链路可以支持多个通路——每个通路表示一组差分信号对(一对用于发送,一对用于接收)。为了缩放带宽,链路可以聚合由xN所表示的多个通路,其中N是任何所支持的链路宽度,诸如1、2、4、8、12、16、32、64、或更宽。在一些实施例中,通路可以称为通信链路(例如,链路530)的信道。此外,在图5的示意图中,在PCIe串行点对点构造500中示出仅一个通路(505/525和506/526对)。
PCIe链路530可以使得设备550、560能够彼此通信。在本公开的一些实施例中,设备560是本地设备而设备550可以是远程设备。此外,设备550或设备560可以被表征为根联合体设备或端点设备。例如,在一些实施例中,设备560是根联合体设备,并且设备550是端点设备。显著地,因为设备550和设备560可以经由链路530彼此通信,所以设备550和设备560彼此可以称为“链路伙伴”。
差分对可以指的是发送差分信号的两个传输路径,诸如线505和525。作为一个示例,当线505从低压电平切换到高压电平时(即,上升沿),线525从高逻辑电平驱动到低逻辑电平(即,下降沿)。差分信号可能表现出诸如更好的信号完整性之类的更好的电气特性,即交叉耦合、电压过冲/下冲、振铃等。这考虑到更好的定时窗口,其能够实现更快的传输频率。
另外,设备(例如,设备550或设备560)的发送器或接收器组件(例如,传输逻辑501/504、接收器逻辑502/503)可以分别具有发送器或接收器设置,所述设置可以被设置、调整、优化等。在一些实施例中,系数集可以被应用于发送器或接收器设置,其中目标在于利用最小的数据损失来实现设备550、560之间的通信能力。
例如,误比特率(BER),其可以定义针对任何特定通路或链路的从一个设备发送到另一个的数据的阈值误码率。例如,对于给定链路的BER可以是10-4或10-12,这依赖于由特定通信协议的链路训练与均衡过程所规定的阈值。在图5中所示出的实施例中,对于链路530的每个通路的BER是10-12
本领域一般技术人员可以理解,根据本公开的一些实施例,误比特率(BER)可以被定义为不正确接收到的比特数(误差)与接收到的总比特数之比。
在一些实施例中,可以在远程系数算法模块520内根据在系数寄存器表515中存储的系数数据来生成系数集。如由图5中的路径507、508所示出的,一旦得到系数,就可以将它们转移到传输逻辑506和接收器逻辑507。可替代地,位于设备550、560的发送器或接收器组件的寄存器内的默认系数集(例如,由制造商来提供)可以被应用于传输和接收器逻辑506、507。此外,根据采用PCIe的实施例,系数集可以在协议所定义的链路训练与状况状态机(LTSSM)状态期间经由到每个链路伙伴的符号(TS1/TS2符号)传送到每个设备550、560。
在一些实施例中,根据预定义条件,所生成的系数可以被应用于有限冲激响应(FIR)滤波器以确定是否正在最优地执行传输逻辑506或接收器逻辑507。
有利地,在链路训练与均衡过程中可以利用自适应FIR滤波器以在运行时间期间根据物理信道(例如,通路或链路)的特定属性来标识系数。在一些实施例中,将所生成的系数和一组接收的脉冲(如果接收到)的乘积被加起来以产生滤波器o。
最显著地,在本公开的一些实施例中,新的系数集被生成并且分别传递到传输逻辑506或接收器逻辑507,直到达到目标BER。例如,如果目标BER是10-12,那么测量所发送数据的误码率(例如,BER眼510),将所述测量的结果发送到远程系数生成算法模块520(例如,路径511),并且如果未达到目标BER,则生成新的系数。一旦达到目标BER,那么新的系数不再生成且不再应用于传输和接收器逻辑506/507。
本公开提供了减少用于链路训练与均衡的时间并且提高其可靠性的机制。具体地,按照本公开的链路训练与均衡过程可以利用运行算法的软件应用,所述算法生成用于传输逻辑或接收器逻辑设置的系数集。
在一些实施例中,软件应用从存储单元或元件(例如,配置与状态寄存器)中读取与耦合到总线接口链路的设备(例如,根联合体设备或端点设备)关联的全开(FS)值和低频(LF)值,并且将这些值输入到算法中以生成要应用于耦合到总线接口链路的设备的发送器或接收器设置的系数集。
在一些实施例中,软件应用生成要应用于端点设备的发送器组件的系数,以使得根联合体设备可以在PCIe链路训练与均衡过程的阶段3期间满足目标BER。
可以在传输逻辑506或接收器逻辑507这二者任一处执行均衡。本领域一般技术人员可以理解,因为接收信号可能与信道噪声混合,所以一个或多个均衡过程可能添加噪声并且使与给定通路关联的信噪比(SNR)降级,所述给定通路通常不用接收器逻辑507来表征。因而,在一些实施例中,在发送器侧(例如,传输逻辑506)处均衡可以是有效的。
向前移过附图,图6是图示具有最佳的预设以及优化的发送器系数的误比特率(BER)眼图的图的示意图。本领域一般技术人员可以理解,BER眼图是电气和光通信信号的直观图形表示。照此,在通信信道中发送和接收的信号的质量可以根据BER眼图的外观来判断。BER眼图之所以重要是因为它们可以有助于确定通信系统是否可以在具有尽可能少的误差的情况下,如实地发送数据位。
图6示出了图示具有最佳的预设系数的误比特率(BER)眼602的图601以及具有优化的发送器或接收器系数的BER眼604的图603。如所示出的,图601中的BER眼602的张开程度(height)小于图603中的BER眼的张开程度。本领域一般技术人员将理解,BER眼的张开程度定义系统的噪声容限。在一些实施例中,张开得较大的BER眼指示了比归因于张开得较小的BER眼的信道噪声更少的通信信道中的噪声。
因而,根据本公开的一些实施例,图603中的BER眼604指示了由于优化的发送器或接收器设置的通信信道中的更少噪声以及更低的误比特率。可替代地,图601中的BER眼602指示了归因于最佳的预设系数的更大噪声以及更高的误比特率。
因而,当优化的系数集被应用于发送器或接收器组件(例如,传输逻辑或接收器逻辑)时,在通信链路的信道(例如,总线接口链路的通路)中可以达到更低的误比特率。照此,优化的发送器或接收器系数考虑了通信链路的特定信道的物理特性。按照本公开的系统和方法包括识别最优发送器或接收器系数,以降低误比特率以提高通信系统内的数据传输性能。
图7示出按照本公开的实施例的用于链路训练与均衡的方法700。在一些实施例中,方法700开始于执行PCIe Gen 3链路训练与均衡过程的阶段0和阶段1(块701)。在阶段0和阶段1期间,经由通信链路的至少一个信道将第一数据集从链路伙伴组件传送到第一组件。
第一数据集可以包括一个或多个有序集、一个或多个预设、一个或多个提示、FS和LF值等。另外地,第一组件可以被表征为根联合体或端点设备并且其可以包括上游端口或下游端口。
图8是图示PCIe链路训练与均衡过程的阶段0的实施例的示意图800。如所示出的,两个组件(根联合体设备801和端点设备803)经由通信链路的差分对805a/805b(由箭头来示出)彼此耦合。
根联合体设备801和端点设备803包括传输逻辑(分别地,802a、804b)和接收器逻辑(804a、804b)以实现两个设备801、803之间的通信。在一些实施例中,根联合体设备801可以包括下游端口(见图2),并且端点设备803可以包括上游端口(见图2)。
在一些实施例中,(例如,PCIe链路训练与均衡过程的)阶段0可以包括将第一数据集(例如,TS1有序集、一个或多个预设值、提示等)从(例如,端点设备801的)上游端口发送到(例如,根联合体设备803的)下游端口。数据可以在设备801、803之间以第一数据传输速率来传送。在阶段0中发送数据的速率可以小于或等于与根联合体设备801关联的第一最大数据传输速率以及与端点设备803关联的第二最大数据传输速率。
在本公开的一些实施例中,发送数据的速率近似为与PCIe Gen1或PCIe Gen2关联的最大数据传输速率。与PCIe Gen1关联的最大数据传输速率是2.5千兆传输每秒(2.5GT/s),并且与PCIe Gen2关联的最大数据传输速率是5.0GT/s。
另外,在阶段0期间,设备801、803这二者可以通告与每个设备801、803关联的最大数据传输速率。另外,设备801、803这二者使链路以某一BER在PCIe Gen1或PCIe Gen2处足以操作。例如,在向链路训练与均衡过程的下一阶段过渡之前,设备801、803这二者必须表现出它们可以以10-4的最小BER发送信号。在一些实施例中,如果未达到目标BER,那么链路可以采用更低的数据传输速率来操作。
图9是图示PCIe链路训练与均衡过程的阶段1的实施例的示意图。如所示出的,根联合体设备901和端点设备903(具有传输逻辑902a、904b以及接收器逻辑902b、904a)已过渡到PCIe链路训练与均衡过程的阶段1。
在PCIe链路训练与均衡过程的阶段1中,设备901、903这二者使通信链路的每个通路以数据传输速率而操作,以交换第二数据集(例如,TS1有序集)。在一些实施例中,阶段1中的数据传输速率可以大于阶段0期间的数据传输速率。例如,阶段1期间的数据传输速率可以近似是PCIe Gen3链路训练与均衡过程的阶段1期间的目标数据传输速率(即,8GT/s)。
最显著地,在按照本公开的链路训练与均衡过程的阶段1期间,设备901、903这二者通告它们的FS和(LF)值。在一些实施例中,FS值可以是可以由发送器组件所生成的最大差分电压。
另外,根据本公开的一些实施例,发送器或接收器系数的和应该等于FS:
此外,根据本公开的一些实施例,LF值可以是可以由发送器组件所生成的最小差分电压。LF值应该总是大于最小差分电压:
FS和LF值可以存储于相应的TS1字段中,并且经由TS1有序集的交换而通告。如以下将描述的,FS和LF值可以用于系数的计算中,所述系数可以被应用于每个设备901、903的发送器或接收器设置。
在一些实施例中,一旦接收到FS和LF值,就将它们存储于每个设备901、903中的存储单元中(例如,方法700的块702)。例如,在一个或多个配置与状态寄存器中存储FS和LF值。在一些实施例中,配置与状态寄存器可以被实现为触发器设备组件。
一旦被存储,本公开提供了根据FS和LF值来计算系数集的机制,所述FS和LF值也可以存储于一个或多个配置与状态寄存器中。在一些实施例中,所计算的系数集包括前标(post-cursor)分量(C0)、游标(cursor)分量(C-1)、以及后标(post-cursor)分量(C+1)。最显著地,在本公开的一些实施例中,所计算的系数集是沿着最大增长线(boost line)的中点的坐标。
在每个设备901、903中可以存在许多配置与状态寄存器。在一些实施例中,每个配置与状态寄存器可以具有十位的存储能力,并且作为总体计算,配置与状态寄存器可以具有几十万数据位的存储能力。
在一些实施例中,诸如系统BIOS、固件、微码等之类的系统软件将所计算的系数写入配置与状态寄存器中。随后,硬件(例如,设备901、903)将所计算的系数应用于发送器或接收器设置。在一些应用中,配置与状态寄存器可以充当设备901、903通过其来报告发送器或接收器组件(例如,传输和接收器逻辑)设置的状态的装置,并且提供软件通过其来指令硬件起作用的机制。
照此,例如,系统软件可以从至少一个配置与状态寄存器中读取FS和LF值(块703),并且将值输入到算法中以计算系数集,所述系数集可以应用于上游端口的发送器组件(块704)。
如以上所描述的,所计算的系数可以是沿着最大增长线的中点的坐标。在一些实施例中,可以根据下面所描述的以下算法来计算沿着最大增长线的中点:
情况 A
如果FS+LF是偶数并且可被4整除,C-1=C+1=绝对值[(FS-LF)/4],并且C0=FS-C-1-C+1
例如,如果FS=40并且LF=20,C-1和C+1=5并且C0=30。因而,最大增长线的中点和所计算的系数是{5、30、5}。
情况 B
如果FS+LF是偶数并且不可被4整除,C-1=Ceil[(FS-LF)/4],C+1=Floor[(FS-LF)/4],并且C0=FS-C-1-C+1
例如,如果FS=42并且LF=20,C-1=6,C+1=5,并且C0=31。因而,最大增长线的中点和所计算的系数是{6、31、5}。
情况 C
如果FS+LF是奇数并且(FS-LF-1=VAL)可被4整除,C-1=C+1=floor[VAL/4],并且C0=FS-C-1-C+1
例如,如果FS=41并且LF=20,C-1=C+1=5并且C0=31。因而,最大增长线的中点和所计算的系数是{5、31、5}。
情况 D
如果FS+LF是奇数并且(FS-LF-1=VAL)不可被4整除,C-1=Ceil[VAL/4],C+1=floor[VAL/4],并且C0=FS-C-1-C+1
例如,如果FS+LF是奇数并且(FS-LF-1=VAL)不可被4整除,C-1=Ceil[VAL/4],C+1=floor[VAL/4],并且C0=FS-C-1-C+1
例如,如果FS=42并且LF=23,C-1=5,C+1=4,C0=33。因而,最大增长线的中点和所计算的系数是{5、33、4}。
另外,所生成的系数可以被应用于预定或预计算的偏移。例如,在后期硅实验室测试期间,设备可以被表征成使得在设备性能低于理想的情况下,每通路地计算偏移。照此,可能不直接应用所生成的系数,而是可以在考虑这些预定或预计算的偏移时应用之。
还应该理解的是,确定与最大增长线的中点坐标关联的系数可以是起始点,并且可以执行微调以提高沿每个通路和链路的通信性能。照此,本公开提供灵活性以超出中点坐标起始点到任何其他增长线中的任何其他点(具有某一误差容限)。
例如,根据本公开的一些实施例,一旦计算了初始系数(例如,最大增长线的中点坐标),就可以通过将预定义的常量或预定义的常量集添加到所计算的系数集来计算新的系数集,所述所计算的系数集表示最大增长线的中点的中点坐标。
应该理解的是,确定与最大增长线的中点坐标关联的系数可以是起始点,并且可以执行微调以提高沿每个通路和链路的通信性能。照此,本公开提供灵活性以超出中点坐标起始点到任何其他增长线中的任何其他点(具有某一误差容限)。
例如,根据本公开的一些实施例,一旦计算了初始系数(例如,最大增长线的中点坐标),就可以通过将预定义的常量或预定义的常量集添加到所计算的系数集来计算新的系数集,所述所计算的系数集表示最大增长线的中点的中点坐标。
例如,“1”可以是预定义的常量,其可以被应用于生成用于微调的新的系数集。例如,如果所计算的系数集是(3、5、4),那么应用预定常量“1”应该产生新的系数集(4、6、5),所述新的系数集可以应用于耦合到通信链路的设备的发送器或接收器设置。如果例如预定义的常量集是(1、0、0),那么所计算的新的系数集应该是(4、5、4)。
本领域一般技术人员应该理解,各种预定义的常量和/或预定义的常量集可以被应用于计算一个或多个新的系数集。此外,唯一的预定义的常量集或系数集可以采用任何次序或迭代来应用,以在微调通路或链路的通信性能时生成一个或多个新的系数集。
因而,一个或多个新的系数集可以通过以下公式来生成:
在一些实施例中,一个或多个配置与状态寄存器是每束或每通路3位配置寄存器,其被用来添加或减去原始计算值以扫到期望位置。
此外,本公开的实施例进一步定义配置寄存器FS_threshold(阈值)。例如,如果在链路训练与均衡过程的阶段1期间捕获的链路伙伴FS值大于FS_threshold,那么使用以上公式1、2、和3。然而,如果FS值小于FS_threshold,那么针对前标和后标值将配置寄存器csr_add和csr_sub值除以2以提供更大灵活性。
在一些实施例中,按照本公开的系统和方法可以采用具有单次迭代的链路训练与均衡程序的阶段3,以使得根联合体设备的下游端口更加有效且高效。
接下来,根据块705,重置通信链路。在一些实施例中,链路通过系统软件或硬件来重置。在重置链路之后,设备在第二遍中继续进行链路训练与均衡过程。
图10-11是图示按照本公开的链路训练与均衡过程的第二遍的阶段0和阶段1的实施例的示意图(方法700的块706)。
图12是图示PCIe链路训练与均衡过程的阶段2的实施例的示意图(方法700的块706)。如所示出的,根联合体设备1201和端点设备1203(具有传输逻辑1202a、1204b和接收器逻辑1202b、1204a)已过渡到PCIe链路训练与均衡过程的阶段2。
在阶段2中,(例如,端点设备的)上游端口调整(例如,根联合体设备的)下游端口的发送器设置以确保上游端口接收兼容于对于通信链路的所有信道(例如,通路)的目标BER(例如,小于或等于10-12)的位流。预设的示例性列表(5/5、6/5、7/4)指示了可以执行多次迭代来实现最优链路训练与均衡发送器(或接收器)设置。
图13是图示PCIe链路训练与均衡过程的常规阶段3过程的示意图(方法700的块707)。如所示出的,根联合体设备1301和端点设备1303(具有传输逻辑1302a、1304b和接收器逻辑1302b、1304a)已过渡到PCIe链路训练与均衡过程的阶段3。
特别地,方法700的块707提供在PCIe Gen3链路训练与均衡过程的阶段期间,应用所计算的第一系数集来建立第一组件的链路伙伴组件的发送器组件(例如,传输逻辑)。有利地,按照本公开的系统和方法可以采用具有仅单次迭代的链路训练与均衡过程的阶段3。
应该理解的是,本公开可以被适配成使得链路训练与均衡过程的阶段2也可以采用本文所描述的方法,以在该过程的阶段2期间生成用于下游端口的系数。因而,本公开不限于链路训练与均衡过程的阶段3,并且可以被用来生成用于发送器或接收器的系数,所述发送器或接收器是为远程设备、本地设备、远程联合体设备、或端点设备而建立的。此外,如果需要的话,本公开可接受考虑微调。
此外,按照本公开的链路训练与均衡过程还可以提供设备中的发送器设置通过其而忽视其链路伙伴的请求的机制。例如,如果发现链路伙伴是有问题的,那么关于其硬件均衡算法,主设备可以忽视由该链路伙伴所发送系数、指令等,而应用由软件应用所生成的系数。
在图14A-14B中示出了按照本公开的一些实施例的用于链路训练与均衡的方法。图14A图示块1401-1406,而图14B图示块1407-1413。如图14A中所示出的,该方法开始于块1401——通告第一最大数据传输速率,其中根联合体设备可以以所述第一最大数据传输速率将数据沿着总线接口链路的每个通路发送给端点设备。
另外地,通告第二最大数据传输速率,其中端点设备可以以第二最大数据传输速率将数据沿着总线接口链路的每个通路发送给根联合体设备(块1402)。
下一步,根据块1403,以小于第一最大数据传输速率和第二最大数据传输速率中的更小者的第一数据传输速率,将与端点设备关联的FS值和LF值沿着总线接口链路的每个通路传送给根联合体设备。
块1404提供验证根联合体设备和端点设备是否可以在小于或等于10-4的误比特率的情况下,以作为第一最大数据传输速率和第二最大数据传输速率中的更小者的第二数据传输速率,将数据沿着总线接口链路的每个通路发送给彼此。
块1405提供基于来自每个设备的反馈而针对总线接口链路的每个通路来调整根联合体设备和端点设备的发送器设置,直到每个设备在小于或等于10-4的误比特率的情况下,将数据沿着总线接口链路的每个通路发送给彼此。
另外,根据FS值和LF值来计算第一系数值集(块1406)。一旦计算了第一系数值集,就如图14B中所示出的,将它们存储在根联合体设备的至少一个配置寄存器中(块1407)。
显著地,可以在PCIe Gen3链路训练与均衡过程的阶段0和阶段1期间,执行[[方法1400的]]块1401-1406中所描述的动作。此外,块1401-1406可以被表征为按照本公开的链路训练与均衡过程的第一遍。另外,在按照本公开的链路训练与均衡过程的第一遍期间,执行与阶段0和1关联的其他动作。
在完成了第一遍之后,重置根联合体设备与端点设备之间的通信链路(块1408)。在一些实施例中,在重置了通信链路之后,重复PCIe Gen3链路训练与均衡过程的阶段0和阶段1。例如,块1409-1411提供以下操作——重复通告第一最大数据传输速率和第二最大数据传输速率(块1409),并且重复验证根联合体设备和端点设备是否可以在小于或等于10-4的误比特率的情况下,将数据沿着总线接口链路的每个通路发送给彼此(块1410)。
此外,重复基于来自根联合体设备的反馈而针对总线接口链路的每个通路来调整根联合体设备和端点设备的发送器设置,直到端点设备在小于或等于10-4的误比特率的情况下,将数据沿着总线接口链路的每个通路发送给根联合体设备(块1411)。
在一些实施例中,在完成了阶段0和1之后,可以部分或完整地执行PCIe Gen3链路训练与均衡处理的阶段2。块1412提供将系数集从端点设备发送到根联合体设备,以调整根联合体设备的发送器设置,直到根联合体设备在小于或等于10-12的误比特率的情况下,以第二数据传输速率将数据沿着总线接口链路的每个通路发送给端点设备。
接下来,块1413提供将所计算的第一系数集应用于端点设备的发送器设置。
如所示出的,图15是根据本公开的一个实施例的经受链路训练与均衡过程的两个设备1501、1502的显示1500。在一些实施例中,显示1500是如先前所描述的图14A-14B中所描述的方法的部分图示。
在该图中,设备1501被示出成表示下游端口1501。在一些实施例中,下游端口1501是根联合体设备的组件。另外,设备1502表示上游端口1502,其可以是端点设备的组件。
显示1500还图示一系列箭头1503,其指示在均衡过程的每个阶段期间数据可以流动的方向。最显著地,显示1500示出了在重置链路之前执行链路训练与均衡过程的阶段0和阶段1。
在重置了链路之后,重复阶段0和阶段1,并且发起阶段2。
其后,根据按照本公开的方法来实施阶段3。如所示出的,在实施了阶段3之后,从存储系数的配置寄存器中请求根据与上游端口关联的FS和LF值所生成的系数。所生成的系数被应用,并且链路训练与均衡过程可以结束。
图16是图示按照本公开的组件的系统的示意图1600。如所示出的,按照本公开的系统和方法可以包括在链路训练与均衡过程期间请求并存储与耦合到总线接口的设备关联的全开和低频值的集合。
在一些实施例中,可以在至少一个配置寄存器(1601)中存储全开和低频值。有利地,可以根据FS和LF值来生成系数集(1602)。适时地,可以可编程地存储所生成的系数集(1603),并且将其应用于与LF和FS值关联的设备的发送器设置(1604)。
以下示例与其他实施例相关。可以在一个或多个实施例中的任何地方使用所述示例中的细节。例如,本文中所描述的装置或系统的所有可选特征也可以关于本文中所描述的方法或过程而实施。
示例1:一种系统,包括:响应于第一组件和第二组件经受链路训练与均衡过程,第二组件沿着通信链路的至少一个信道经由第一传输逻辑而将第一数据集传送到所述第一组件;其中所述第一组件和所述第二组件是链路伙伴;其中所述第一数据集进一步包括在所述第一组件的第一存储单元中存储的全开值和低频值;其中所述第一组件存储根据所述全开值和所述低频值所计算的第一系数集;并且其中所述第二组件将所计算的第一系数集应用于所述第二组件的所述第一传输逻辑。
示例2:所计算的系数集包括沿着最大增长线的中点坐标。
示例3:第一组件是根联合体设备,并且第二组件是端点设备。
示例4:通信链路包括外围组件互连高速(PCIe)总线接口链路。
示例5:第一存储单元是配置寄存器。
示例6:响应于第一组件和第二组件经受均衡过程,第一组件将第二数据集传送到第二组件,以微调从第二发送器的第一传输逻辑向第一组件的数据传输。
示例7:第一存储单元可由软件应用来读取。
示例8:所计算的第一系数集包括前标分量、游标分量、和后标分量。
示例9:一种计算机可读介质包括代码,所述代码在被运行时,使机器执行以下操作:从耦合到串行点对点差分互连的组件的第一寄存器中读取所请求的低频值和全开值;基于低频值和全开值来计算最优系数集;并且在一个或多个配置寄存器中存储该最优系数集以供后续请求在配置传输逻辑中利用该最优系数集。
示例10:最优系数包括前标、游标、和后标值。
示例11:通过确定低频值和全开值的和是否可被4整除来计算最优系数中的至少一个,并且如果是,那么最优系数中的至少一个是全开值与低频值之差除以4的绝对值。
示例12:通过确定低频值和全开值的和是否可被4整除来计算最优系数中的至少一个,并且如果否,那么最优系数中的至少一个是全开值与低频值之差除以4的绝对值的最小值。
示例13:一种装置,包括:耦合到串行点对点链路的差分通路的端口,所述端口包括用于在第一阶段和第二阶段中均衡至少差分通路的配置逻辑,其中所述端口进一步包括第一储存器以保存在第一阶段期间所请求的特性,并且其中配置逻辑进一步在第二阶段期间发起引用系数集的请求,所述系数集基于至少在第一储存器中保存的特性来生成。
示例14:重置发生在第一阶段和第二阶段之间。
示例15:第一储存器包括配置寄存器,并且其中所述端口进一步包括第二储存器以保存基于至少所述特性而生成的系数集。
示例16:所述特性从由低频值、全开值、以及低频值和全开值的组合所构成的群组中选择。
示例17:系数集在第一阶段期间基于至少所述特性来生成。
示例18:系数集在第二阶段期间基于至少所述特性来生成。
示例19:系数集由要运行的代码基于至少所述特性来生成。
示例20:一种装置,包括:具有下游端口的设备,所述设备响应于经受链路训练与均衡过程而从端点设备的上游端口接收第一有序集;其中第一有序集包括全开值和低频值;其中下游端口包括至少一个配置寄存器以存储要基于全开值和低频值而生成的第一系数集。
示例21:下游端口进一步包括接收器。
示例22:第一系数集被存储于端点设备内的单个配置寄存器中。
示例23:至少一个配置寄存器被实现为触发器存储元件。
示例24:第一系数集由系统BIOS、固件、或多码中的至少一个或多个来生成。
示例25:该设备耦合到触摸使能的显示设备。
示例26:一种用于耦合到总线接口链路的设备的链路训练与均衡过程,包括:执行PCI高速第三代(PCIe Gen3)链路训练与均衡过程的阶段0和阶段1;其中第一数据集从端点设备经由通信链路的至少一个信道而传送到根联合体设备;在至少一个寄存器中存储全开值和低频值;从至少一个寄存器中读取全开值和低频值;根据该全开值和低频值来计算第一系数集;
重置通信链路;执行PCIe Gen3链路训练与均衡过程的阶段0、阶段1、和阶段2;以及在PCIe Gen3链路训练与均衡过程的阶段3期间,应用所计算的第一系数集来建立第一组件的传输逻辑。
示例27:由软件应用来计算第一系数集。
示例28:重置通信链路包括重新连接通信链路,以使得根联合体设备和端点设备可以彼此通信。
示例29:微调微调从端点设备向根联合体设备的数据传输。
示例30:应用第二系数集来建立第一组件的传输逻辑,以微调从端点设备到根联合体设备的数据传输,其中第二系数集和第一系数集相差了预定义的系数常量。
示例31:一种包括机器可读指令的机器可读储存器,当被运行时,所述指令如任何前述示例中所要求的那样实现方法或实现装置。
示例32:一种装置包括执行如任何前述示例中所要求的方法。
尽管已经参考有限数量的实施例描述了本发明,但本领域技术人员将理解由其而来的许多的修改和变化。所附权利要求意图覆盖属于本公开的真实的精神和范围的所有这类的修改和变化。
设计可以经历各个阶段,从创建到仿真到制造。表示设计的数据可以以许多方式表示设计。首先,如在仿真中有用的,可以使用硬件描述语言或另一个功能描述语言来表示硬件。另外,可以在设计过程的某些阶段产生具有逻辑和/或晶体管门的电路级别模型。此外,大多数设计在某一阶段达到表示各个设备在硬件模型中的物理放置的数据的级别。在使用常规的半导体制造技术的情况下,表示硬件模型的数据可以是指定在对于用于产生集成电路的掩模的不同的掩模层上存在还是不存在各个特征的数据。在设计的任何表示中,数据可以存储在任何形式的机器可读介质中。诸如磁盘之类的存储器或磁性的或光存储器可以是用于存储经由被调制或以另外方式被生成来传送这样的信息的光或电波而传送的信息的机器可读介质。当传送指示或承载代码或设计的电载波时,在执行电信号的复制、缓冲或再传输这样的程度上,产生新的副本。因此,通信提供商或网络提供商可以在有形的机器可读介质上至少暂时地存储诸如编码到载波中、体现本公开的实施例的技术的信息之类的产品。
如在这里所使用的,模块指的是硬件、软件和/或固件的任何组合。举例来说,模块包括与非临时介质相关联的诸如微控制器的硬件,该非临时介质用于存储适合于由微控制器执行的代码。因此,在一个实施例中,对模块的引用指的是硬件,该硬件具体地被配置为识别和/或执行要被保持在非临时介质上的代码。此外,在另一个实施例中,模块的使用指的是包括代码的非临时介质,该代码具体地适合于由微控制器来执行以执行预先确定的操作。并且,如可以被推断的,在又另一个实施例中,术语模块(在该示例中)可以指的是微控制器和非临时介质的组合。往往,图示为分离的模块边界通常改变并且潜在地重叠。例如,第一和第二模块可以共享硬件、软件、固件或其组合,同时潜在地保持一些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括诸如晶体管、寄存器之类的硬件,或诸如可编程逻辑设备之类的其他硬件。
在一个实施例中,词语“用于”或“被配置为”的使用指的是布置、放在一起、制造、提供出售、进口和/或设计装置、硬件、逻辑或元件来执行指定的或确定的任务。在该示例中,不正在进行操作的装置或其元件仍然“被配置为”执行指定的任务,如果其被设计、耦合和/或互连以执行所述指定的任务的话。作为纯说明性的示例,逻辑门可以在操作期间提供0或1。但是“被配置为”向时钟提供使能信号的逻辑门不包括可以提供1或0的每个潜在的逻辑门。代之以,逻辑门是在操作期间1或0输出将使能时钟的某种方式被耦合的那种逻辑门。再一次注意,术语“被配置为”的使用不要求操作,但是代之以集中在装置、硬件和/或元件的潜隐的状态,其中在潜隐的状态中,该装置、硬件和/或元件被设计为当该装置、硬件和/或元件操作时执行特定任务。
此外,在一个实施例中,词语“能够/用于”和/或“操作用于”指的是以实现以指定的方式来使用一些装置、逻辑、硬件和/或元件的方式来设计的装置、逻辑、硬件和/或元件。通过以上注意到,在一个实施例中,对用于、能够或操作用于的使用指的是装置、逻辑、硬件和/或元件的潜隐的状态,其中该装置、逻辑、硬件和/或元件不正在进行操作但是以实现以指定的方式使用装置的方式被设计。
如在这里所使用的,值包括数量、状态、逻辑状态或二进制逻辑状态的任何已知表示。往往,逻辑电平、逻辑值或多个逻辑值使用也被称为简单地表示二进制逻辑状态的1和0。例如,1指的是高逻辑电平,并且0指的是低逻辑电平。在一个实施例中,诸如晶体管或闪存单元之类的存储单元可以能够保持单个逻辑值或多个逻辑值。然而,已经使用了计算机系统中的值的其他表示。例如,十进制数10也可以被表示为二进制值1010以及十六进制字母A。因此,值包括能够保持在计算机系统中的信息的任何表示。
此外,状态可以由值或值的各部分来表示。举例来说,诸如逻辑1之类的第一值可以表示缺省或初始状态,而诸如逻辑0之类的第二值可以表示非缺省状态。另外,在一个实施例中,术语复位和置位分别地指的是缺省和更新的值或状态。例如,缺省值潜在地包括高逻辑值,即,复位,而更新的值潜在地包括低逻辑值,即被置位。注意到,值的任何组合可以被用来表示任意数量的状态。
可以经由可由处理元件执行的、存储在机器可访问的、机器可读的、计算机可访问的或计算机可读介质上的指令或代码来实施以上阐述的方法、硬件、软件、固件或代码的实施例。非临时机器可访问的/可读介质包括以由诸如计算机或电子系统之类的机器可读的形式提供(即存储和/或传送)信息的任何机制。例如,非临时机器可访问介质包括诸如静态RAM(SRAM)或动态RAM(DRAM)之类的随机存取存储器(RAM);ROM;磁性的或光存储介质;闪速存储器设备;电存储设备;光存储设备;声学存储设备;用于保持从瞬态的(传播的)信号(例如载波、红外信号、数字信号)接收的信息的、不同于可以从其接收信息的非临时介质的其他形式的存储设备等等。
可以在诸如DRAM、高速缓存、闪速存储器或其他贮存器之类的系统中的存储器内存储用于对逻辑进行编程来执行本公开的实施例的指令。此外,可以经由网络或借助于其他计算机可读的介质来分发指令。因此,机器可读介质可以包括用于以机器(例如计算机)可读的形式传送信息的任何机制,但不限于软盘、光盘、压缩光盘、只读存储器(CD-ROM)和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程序只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、磁卡或光卡、闪速存储器或在经由电的、光的、声学的或其他形式的传播信号(例如载波、红外信号、数字信号等等)来通过因特网传输信息中使用的有形的机器可读的贮存器。因此,计算机可读介质包括适合于以由机器(例如计算机)可读的形式存储或传送电子指令或信息的任何类型的有形机器可读介质。
遍及说明书,对“一个实施例”或“实施例”的引用意指结合实施例描述的特定特征、结构或特性被包括在本公开的至少一个实施例中。因此,遍及该说明书的在不同地方出现的词语“在一个实施例中”或“在一些实施例中”不必要地全都指代相同的实施例。此外,可以在一个或多个实施例中以任何适当的方式组合特定特征、结构或特性。
在上述说明书中,已经参考特定示意性实施例给出具体实施方式。然而,将明显的是,在不背离在所附权利要求中阐述的本公开的较宽的精神和范围的情况下,可以对其进行各种修改和改变。因此,说明书和附图被认为是说明意义的,而不是限制意义的。此外,实施例和其他示范性语言的上述使用不必要地指代相同的实施例或相同的示例,而是可以指代不同的和有区别的实施例以及潜在地指代相同的实施例。

Claims (30)

1.一种装置,包括:
耦合到串行点对点链路的差分通路的端口,所述端口包括用于在第一阶段和第二阶段中均衡至少所述差分通路的配置逻辑,其中所述端口进一步包括第一储存器以保存在所述第一阶段期间所请求的特性,并且其中所述配置逻辑进一步在第二阶段期间发起引用系数集的请求,所述系数集基于至少在所述第一储存器中保存的所述特性来生成。
2.如权利要求1所述的装置,其中重置发生在所述第一阶段和所述第二阶段之间。
3.如权利要求1所述的装置,其中所述第一储存器包括配置寄存器,并且其中所述端口进一步包括第二储存器以保存基于至少所述特性而生成的所述系数集。
4.如权利要求1所述的装置,其中所述特性从由低频值、全开值、以及低频值和全开值的组合所构成的群组中选择。
5.如权利要求1所述的装置,其中所述系数集在所述第一阶段期间基于至少所述特性来生成。
6.如权利要求1所述的装置,其中所述系数集在所述第二阶段期间基于至少所述特性来生成。
7.如权利要求1所述的装置,其中所述系数集由要运行的代码基于至少所述特性来生成。
8.一种装置,包括:
具有下游端口的设备,其响应于经受链路训练与均衡过程而从端点设备的上游端口接收第一有序集;
其中所述第一有序集包括全开值和低频值;
其中所述下游端口包括至少一个配置寄存器,以存储要基于所述全开值和所述低频值而生成的第一系数集。
9.如权利要求8所述的装置,其中所述下游端口进一步包括接收器。
10.如权利要求8所述的装置,其中所述第一系数集被存储于所述端点设备内的单个配置寄存器中。
11.如权利要求8所述的装置,其中所述至少一个配置寄存器被实现为触发器存储元件。
12.如权利要求8所述的装置,其中所述第一系数集由系统BIOS、固件、或多码中的至少一个或多个来生成。
13.如权利要求8所述的装置,其中所述设备耦合到触摸使能的显示设备。
14.如权利要求8所述的装置,其中所述第一系数集包括前标、游标、和后标值。
15.一种系统,包括:
响应于第一组件和第二组件经受链路训练与均衡过程,第二组件沿着通信链路的至少一个信道经由第一传输逻辑而将第一数据集传送到所述第一组件;
其中所述第一组件和所述第二组件是链路伙伴;
其中所述第一数据集进一步包括在所述第一组件的第一存储单元中存储的全开值和低频值;
其中所述第一组件存储根据所述全开值和所述低频值所计算的第一系数集;并且
其中所述第二组件将所计算的第一系数集应用于所述第二组件的所述第一传输逻辑。
16.如权利要求15所述的系统,其中所计算的第一系数集包括沿着最大增长线的中点坐标。
17.如权利要求15所述的系统,其中所述第一组件是根联合体设备,并且所述第二组件是端点设备。
18.如权利要求15所述的系统,其中所述通信链路包括外围组件互连高速(PCIe)总线接口链路。
19.如权利要求15所述的系统,其中所述第一存储单元是配置寄存器。
20.如权利要求15所述的系统,其中进一步响应于所述第一组件和所述第二组件经受所述均衡过程,所述第一组件将第二数据集传送到所述第二组件,以微调从第二发送器的第一传输逻辑向所述第一组件的数据传输。
21.如权利要求15所述的系统,其中所述第一存储单元可由软件应用来读取。
22.如权利要求15所述的系统,其中所计算的第一系数集包括前标分量、游标分量、和后标分量。
23.一种用于设备均衡的方法,包括:
从耦合到串行点对点差分互连的组件的第一寄存器中读取所请求的低频值和全开值;
基于所述低频值和所述全开值来计算最优系数集;以及
在一个或多个配置寄存器中存储所述最优系数集,以供后续请求在配置传输逻辑中利用所述最优系数集。
24.如权利要求23所述的方法,其中所述最优系数包括前标、游标、和后标值。
25.如权利要求23所述的方法,其中通过确定所述低频值和所述全开值的和是否可被4整除来计算所述最优系数中的至少一个,并且如果是,那么所述最优系数中的至少一个是所述全开值与所述低频值之差除以4的绝对值。
26.如权利要求23所述的方法,其中通过确定所述低频值和所述全开值的和是否可被4整除来计算所述最优系数中的至少一个,并且如果否,那么所述最优系数中的至少一个是所述全开值与所述低频值之差除以4的绝对值的最小值。
27.一种链路训练与均衡过程,包括:
执行PCI高速第三代(PCIe Gen3)链路训练与均衡过程的阶段0和阶段1;
其中第一数据集从端点设备经由通信链路的至少一个信道而传送到根联合体设备;
在至少一个寄存器中存储全开值和低频值;
从所述至少一个寄存器中读取所述全开值和所述低频值;
根据所述全开值和所述低频值来计算第一系数集;
重置所述通信链路;
执行PCIe Gen3链路训练与均衡过程的阶段0、阶段1、和阶段2;以及
在PCIe Gen3链路训练与均衡过程的阶段3期间,应用所计算的第一系数集来建立第一组件的传输逻辑。
28.如权利要求27所述的链路训练与均衡过程,其中由软件应用来计算所述第一系数集。
29.如权利要求27所述的链路训练与均衡过程,其中重置所述通信链路包括重新连接所述通信链路,以使得所述根联合体设备和所述端点设备可以彼此通信。
30.如权利要求27所述的链路训练与均衡过程,进一步包括微调微调从所述端点设备向所述根联合体设备的数据传输。
CN201410097202.2A 2013-03-15 2014-03-17 用于执行链路训练与均衡的装置、系统、和方法 Active CN104050138B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/815916 2013-03-15
US13/815,916 US20140281067A1 (en) 2013-03-15 2013-03-15 Apparatus, system, and method for performing link training and equalization

Publications (2)

Publication Number Publication Date
CN104050138A true CN104050138A (zh) 2014-09-17
CN104050138B CN104050138B (zh) 2018-02-16

Family

ID=50442326

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410097202.2A Active CN104050138B (zh) 2013-03-15 2014-03-17 用于执行链路训练与均衡的装置、系统、和方法

Country Status (3)

Country Link
US (1) US20140281067A1 (zh)
EP (1) EP2778938B1 (zh)
CN (1) CN104050138B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109376103A (zh) * 2018-06-19 2019-02-22 华为技术有限公司 快速均衡的方法、芯片和通信系统
CN109857690A (zh) * 2019-01-03 2019-06-07 华为技术有限公司 驱动器的应用系统、驱动器和数据传输方法
WO2019223333A1 (zh) * 2018-05-23 2019-11-28 华为技术有限公司 一种配置均衡时间的方法、芯片和通信系统
CN113742273A (zh) * 2020-05-30 2021-12-03 华为技术有限公司 一种均衡训练方法、装置及系统

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9645965B2 (en) * 2013-03-15 2017-05-09 Intel Corporation Apparatus, system, and method for improving equalization with a hardware driven algorithm
US9626270B2 (en) * 2014-09-26 2017-04-18 Intel Corporation Link retraining based on runtime performance characteristics
US9747245B2 (en) * 2014-12-17 2017-08-29 Intel Corporation Method, apparatus and system for integrating devices in a root complex
US10089275B2 (en) 2015-06-22 2018-10-02 Qualcomm Incorporated Communicating transaction-specific attributes in a peripheral component interconnect express (PCIe) system
WO2017052665A1 (en) * 2015-09-26 2017-03-30 Intel Corporation In-band margin probing on an operational interconnect
US10503684B2 (en) 2016-07-01 2019-12-10 Intel Corporation Multiple uplink port devices
US10817447B2 (en) * 2016-11-14 2020-10-27 Intel Corporation Input/output translation lookaside buffer (IOTLB) quality of service (QoS)
CN106817258A (zh) * 2017-01-13 2017-06-09 郑州云海信息技术有限公司 一种选取及验证pcie链路均衡参数的方法及装置
US10880137B2 (en) * 2017-05-12 2020-12-29 Intel Corporation Bypassing equalization at lower data rates
US11860812B2 (en) 2017-08-22 2024-01-02 Intel Corporation Serdes link training
US10541841B1 (en) * 2018-09-13 2020-01-21 Advanced Micro Devices, Inc. Hardware transmit equalization for high speed
US11061849B2 (en) 2019-10-17 2021-07-13 Dell Products L.P. Adaptive transmitter preset mechanism in PCIe link equalization procedure
JP2021197583A (ja) * 2020-06-10 2021-12-27 キオクシア株式会社 電子機器および方法
JP7162645B2 (ja) * 2020-08-31 2022-10-28 アンリツ株式会社 誤り率測定装置およびパラメータ取得方法
CN113407469B (zh) * 2021-06-10 2023-04-07 浙江华创视讯科技有限公司 一种参数配置方法及装置、存储介质及电子装置
CN114048160A (zh) * 2021-11-08 2022-02-15 上海兆芯集成电路有限公司 链路均衡调节系统及链路均衡调节方法
US11757685B1 (en) 2022-04-26 2023-09-12 Dell Products L.P. System level optimization for training a high-speed data communication interface

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050201454A1 (en) * 2004-03-12 2005-09-15 Intel Corporation System and method for automatically calibrating two-tap and multi-tap equalization for a communications link
US8683089B1 (en) * 2009-09-23 2014-03-25 Nvidia Corporation Method and apparatus for equalizing a bandwidth impedance mismatch between a client and an interface
TWI441028B (zh) * 2010-06-02 2014-06-11 Realtek Semiconductor Corp 一種用於通訊的資料傳接裝置與方法及其系統
US9847891B2 (en) * 2011-08-24 2017-12-19 Nvidia Corporation System and method for detecting reuse of an existing known high-speed serial interconnect link
CN202444508U (zh) * 2012-03-02 2012-09-19 杭州海莱电子科技有限公司 一种新型的动态负载均衡设备
US8902964B2 (en) * 2012-09-29 2014-12-02 Intel Corporation Equalization effort-balancing of transmit finite impulse response and receive linear equalizer or receive decision feedback equalizer structures in high-speed serial interconnects

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11921660B2 (en) 2018-05-23 2024-03-05 Huawei Technologies Co., Ltd. Equalization time configuration method, chip, and communications system
WO2019223333A1 (zh) * 2018-05-23 2019-11-28 华为技术有限公司 一种配置均衡时间的方法、芯片和通信系统
US11347669B2 (en) 2018-05-23 2022-05-31 Huawei Technologies Co., Ltd. Equalization time configuration method, chip, and communications system
US11496340B2 (en) 2018-06-19 2022-11-08 Huawei Technologies Co., Ltd. Fast equalization method, chip, and communications system
CN109376103A (zh) * 2018-06-19 2019-02-22 华为技术有限公司 快速均衡的方法、芯片和通信系统
CN109376103B (zh) * 2018-06-19 2021-10-19 华为技术有限公司 快速均衡的方法、芯片和通信系统
US11799697B2 (en) 2018-06-19 2023-10-24 Huawei Technologies Co., Ltd. Fast equalization method, chip, and communications system
WO2020140950A1 (zh) * 2019-01-03 2020-07-09 华为技术有限公司 驱动器的应用系统、驱动器和数据传输方法
CN109857690B (zh) * 2019-01-03 2023-04-28 华为技术有限公司 驱动器的应用系统、驱动器和数据传输方法
US11748294B2 (en) 2019-01-03 2023-09-05 Huawei Technologies Co., Ltd. Retimer application system, retimer, and data transmission method
CN109857690A (zh) * 2019-01-03 2019-06-07 华为技术有限公司 驱动器的应用系统、驱动器和数据传输方法
CN113742273B (zh) * 2020-05-30 2023-10-20 华为技术有限公司 一种均衡训练方法、装置及系统
CN113742273A (zh) * 2020-05-30 2021-12-03 华为技术有限公司 一种均衡训练方法、装置及系统

Also Published As

Publication number Publication date
US20140281067A1 (en) 2014-09-18
EP2778938A3 (en) 2015-01-21
EP2778938A2 (en) 2014-09-17
EP2778938B1 (en) 2017-04-19
CN104050138B (zh) 2018-02-16

Similar Documents

Publication Publication Date Title
CN104050138A (zh) 用于执行链路训练与均衡的装置、系统、和方法
CN107077521B (zh) 片上系统配置元数据
CN104050136B (zh) 用于改进与硬件驱动的算法的均衡的装置、系统、以及方法
CN105793829B (zh) 用于集成组件互连的装置、方法和系统
TWI634432B (zh) 多晶片封裝鏈結技術
CN105793830B (zh) 一种在节点之间共享存储器和i/o服务的装置、方法、系统
CN105593830B (zh) 用于测量电路的物理单元中的等待时间的方法、装置和系统
CN110036380A (zh) 用于高速互连中低延迟的双模phy
CN104932996B (zh) 用于控制链路接口的未使用硬件的功率消耗的方法、装置和系统
CN110366842A (zh) 可调节的重定时器缓冲器
CN104050139A (zh) 用于改善串行接口的芯片间、单导线通信的方法、装置和系统
CN104756097A (zh) 一致性协议表
CN109844725A (zh) 点对点互连中的非对称通道
CN108052466A (zh) Pci快速增强
CN105721057A (zh) 高性能光中继器
CN105793715A (zh) 互连重定时器增强
CN110633241A (zh) 用于非对称接口的动态高速通道方向切换的系统、方法和装置
CN107112042A (zh) 数据信号的边沿感知同步
CN110659239A (zh) 在多通路链路中动态地协商不对称链路宽度
CN107003838B (zh) 解码信息库
CN112052210A (zh) 用于细化的链路训练的数据结构
CN109643297A (zh) 电压调制的控制通路
CN107111584B (zh) 到片上网络的接口的高带宽核
CN114253889A (zh) 用于延时敏感应用的近似数据总线倒置技术
US8958471B2 (en) Method, apparatus, and system for sliding matrix scoreboard utilized in auto feedback closed loops

Legal Events

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