《用于改进与硬件驱动的算法的均衡的装置、系统、以及方法.pdf》由会员分享,可在线阅读,更多相关《用于改进与硬件驱动的算法的均衡的装置、系统、以及方法.pdf(32页完整版)》请在专利查询网上搜索。
1、10申请公布号CN104050136A43申请公布日20140917CN104050136A21申请号201410097121222申请日2014031413/840,10420130315USG06F13/4220060171申请人英特尔公司地址美国加利福尼亚州72发明人D达斯莎玛KLSP盖戴纳戈凡卡塔P贾亚普兰卡什巴拉德沃杰74专利代理机构上海专利商标事务所有限公司31100代理人毛力54发明名称用于改进与硬件驱动的算法的均衡的装置、系统、以及方法57摘要一种系统和方法包括响应于经历均衡的第一组件和第一组件的链路伙伴组件,第一组件用于向链路伙伴组件传递第一数据集。第一组件可包括用于接收第一。
2、均衡数据集的至少一个接收机。第一组件可进一步包括耦合到所述接收机的用于存储所述均衡数据的系数存储。另外,耦合到所述系数存储的系数逻辑用于基于第一均衡数据集生成第一组系数。第一组件用于向链路伙伴组件发送第一组系数。30优先权数据51INTCL权利要求书3页说明书19页附图9页19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书19页附图9页10申请公布号CN104050136ACN104050136A1/3页21一种用于链路训练和均衡的系统,包括响应于经历均衡的第一组件和所述第一组件的链路伙伴组件,所述第一组件用于向所述链路伙伴组件传递第一数据集;其中所述第一组件包括用于接收第一。
3、均衡数据集的至少一个接收机;耦合到所述接收机的用于存储所述均衡数据的系数存储;耦合到所述系数存储的用于基于所述第一均衡数据集生成第一组系数的系数逻辑;以及其中所述第一组件用于向所述链路伙伴组件发送所述第一组系数。2如权利要求1所述的用于链路训练和均衡的系统,其特征在于,所述第一组系数包括沿最大推进线的中点坐标。3如权利要求1所述的用于链路训练和均衡的系统,其特征在于,所述第一组件是根联合体组件,且所述链路伙伴组件是端点组件。4如权利要求1所述的用于链路训练和均衡的系统,其特征在于,所述第一组件经由外围部件互连快速(PCIE)总线接口链路向所述链路伙伴发送所述第一组系数。5如权利要求1所述的用于。
4、链路训练和均衡的系统,其特征在于,所述第一组均衡数据集包括最大震荡值和低频值。6如权利要求1所述的用于链路训练和均衡的系统,其特征在于,还包括响应于所述第一组件和所述链路伙伴组件经历所述均衡过程,所述第一组件向所述链路伙伴组件传递第二数据集,其中所述链路伙伴组件将所述第二数据集的至少一部分应用于所述链路伙伴组件的发射机设立。7如权利要求1所述的用于链路训练和均衡的系统,其特征在于,所生成的第一组系数包括前指针分量、指针分量以及后指针分量。8一种用于链路训练和均衡的方法,包括沿通信链路的至少一个信道从链路伙伴组件向第一组件传递第一数据集;其中所述第一数据集包括最大震荡值和低频值;其中所述最大震荡。
5、值和所述低频值被存储在所述第一组件的至少一个寄存器中;执行指令以根据所述最大震荡值和所述低频值来计算第一组系数;根据所述最大震荡值和所述低频值来计算第一组系数;将计算得到的第一组系数存储在所述第一组件的至少一个寄存器中;以及应用计算得到的第一组系数来设立所述链路伙伴组件的发射机组件。9如权利要求8所述的用于链路训练和均衡的方法,其特征在于,所述第一数据集包括第一组预设值和第一组预设提示,所述第一组预设值包括用于设立所述链路伙伴组件的发射机组件的第二组系数,所述第一组预设提示包括用于设立所述链路伙伴组件的接收机组件的第二组系数。10如权利要求8所述的用于链路训练和均衡的方法,其特征在于,计算得到。
6、的第一组系数包括前指针系数、指针系数、或后指针系数中的至少一个。11如权利要求8所述的用于链路训练和均衡的方法,其特征在于,应用于所述链路伙伴组件的发射机组件的所述第一组系数使得所述链路伙伴组件能够以小于或等于每1012权利要求书CN104050136A2/3页3位1位误差的位误差率向所述第一组件传送数据。12如权利要求8所述的用于链路训练和均衡的方法,其特征在于,在第3代PCI链路训练和均衡过程的阶段3期间,计算得到的第一组系数被应用于所述链路伙伴组件的发射机组件。13一种装置,包括下行端口,响应于经历链路训练和均衡过程,所述下行端口从上行端口接收第一有序集;其中所述下行端口包括用于从所述上。
7、行端口接收数据的接收机组件,且所述上行端口包括用于向所述下行端口传送数据的发射机组件;其中所述上行端口和所述下行端口是链路伙伴;其中所述第一有序集包括与所述上行端口相关联的最大震荡值和低频值;其中所述下行端口包括用于执行指令来根据所述第一有序集的最大震荡值和低频值计算第一组系数的逻辑;其中所述下行端口包括用于存储计算得到的第一组系数的至少一个配置寄存器;以及其中所述上行端口将计算得到的第一组系数应用于所述上行端口的发射机设立。14如权利要求13所述的装置,其特征在于,所述上行端口还包括从所述下行端口接收计算得到的第一组系数的接收机。15如权利要求13所述的装置,其特征在于,计算得到的第一组系数。
8、被存储在单个配置寄存器中。16如权利要求13所述的装置,其特征在于,所述至少一个配置寄存器被实现为触发器存储元件。17如权利要求13所述的装置,其特征在于,所述至少一个配置寄存器内的数据提供所述上行端口的状态。18如权利要求13所述的装置,其特征在于,所述上行端口耦合到启用触摸的显示设备。19一种用于耦合到总线接口链路的设备的链路训练和均衡过程,包括从第一组件向链路伙伴组件以及从链路伙伴组件向所述第一组件传递一组发射机预设值和一组接收机提示;配置所述第一组件和所述链路伙伴组件以使得所述链路在第一位误差率下操作;将与所述链路伙伴组件相关联的最大震荡值和低频值存储在所述第一组件内的存储实体中;根据。
9、与所述第一组件相关联的最大震荡值和低频值计算第一组系数;基于所述第一组系数调整所述第一组件的发射机设置;根据与所述链路伙伴组件相关联的最大震荡值和低频值计算第二组系数;以及基于所述第二组系数调整所述链路伙伴组件的发射机设置。20如权利要求19所述的链路训练和均衡过程,其特征在于,还包括配置所述第一组件和所述链路伙伴组件以使得所述链路能在小于所述第一位误差率的第二位误差率下操作。21如权利要求19所述的链路训练和均衡过程,其特征在于,还包括在调整所述第一权利要求书CN104050136A3/3页4组件的发射机设置之前,将一组偏移应用于所述第一组件的发射机设置。22如权利要求19所述的链路训练和均。
10、衡过程,其特征在于,所述第一位误差率是每104位1位误差。23权利要求19所述的链路训练和均衡过程,其特征在于,所述第一组系数是由所述第一组件的端口内的逻辑来计算的。权利要求书CN104050136A1/19页5用于改进与硬件驱动的算法的均衡的装置、系统、以及方法技术领域0001本公开涉及计算系统,并且具体地(而非排他地)涉及用于改进链路训练以及均衡过程的技术。附图说明0002图1是示出了包括多核处理器的计算系统的框图的实施例的示意图。0003图2是示出了包括兼容外围部件互连快速(PCIE)体系结构的计算系统的实施例的示意图。0004图3是示出了包括分层栈的兼容PCIE的互连体系结构的实施例的。
11、示意图。0005图4是示出了要在互连体系结构内生成或接收的兼容PCIE的请求或分组的实施例的示意图。0006图5是示出了PCIE串行点对点结构的实施例的示意图。0007图6是示出了具有最佳预设的位误差率(BER)眼图以及具有经优化的发射机系数的BER眼图的示意图。0008图7是示出了PCIE链路训练和均衡过程的阶段0的实施例的示意图。0009图8是示出了PCIE链路训练和均衡过程的阶段1的实施例的示意图。0010图9是示出了列出可被应用于发射机或接收机设置的前指针(PRECURSOR)和后指针(POSTCURSER)系数的集合的表的示意图。0011图10是示出了PCIE链路训练和均衡过程的阶段。
12、2的实施例的示意图。0012图11是示出了PCIE链路训练和均衡过程的常规阶段3过程的示意图。0013图12示出了根据本公开的一实施例的用于链路训练和均衡的方法。0014图13示出了根据本公开的一实施例的用于链路训练和均衡的另一方法。具体实施方式0015在以下描述中,阐明了众多具体细节,如具体类型的处理器和系统配置的示例、具体硬件结构、具体架构和微架构细节、具体寄存器配置、具体指令类型、具体系统组件、具体测量/高度、具体处理器流水线阶段和操作等,以提供对本公开的透彻理解。然而,对本领域普通技术人员显而易见的是,不一定要采用这些具体细节来实施本公开。在其它实例中,未详细描述公知的组件或方法,诸如。
13、具体或替代的处理器架构、用于所描述算法的具体逻辑电路/代码、具体固件代码、具体互连操作、具体逻辑配置、具体制造技术和材料、具体编译器实现、代码中算法的具体表达、具体掉电和功率选通技术/逻辑、以及计算机系统的其它具体操作细节,以避免不必要地模糊本公开。0016尽管参考特定集成电路中(诸如计算平台或微处理器中)的节能和能效描述了以下实施例,但是其它实施例适用于其它类型的集成电路和逻辑器件。本文描述的实施例的类似技术和教导可应用于其它类型的电路或半导体器件,这些其它类型的电路或半导体器件也可受益于较好的能效和节能。例如,所公开的实施例不限于台式计算机系统或超级本说明书CN104050136A2/19。
14、页6TM。并且也可用于其它设备,诸如,手持式设备、平板、其他薄笔记本、片上系统(SOC)设备以及嵌入式应用。手持式设备的一些示例包括蜂窝电话、因特网协议设备、数码相机、个人数字助理(PDA)以及手持式PC。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NETPC)、机顶盒、网络中枢、广域网(WAN)交换机、或可执行以下教导的功能和操作的任何其它系统。此外,本文描述的装置、方法和系统不限于物理计算设备,而是还可涉及用于节能和能效的软件优化。如将在以下描述中变得显而易见的,本文描述的方法、装置和系统的实施例(无论是关于硬件、固件、软件还是它们的组合)对于用性能考量来平。
15、衡的绿色技术的前景是至关重要的。0017随着计算系统的进步,本文的各组件可变得更加复杂。结果,用于在这些组件之间进行耦合和通信的互连体系结构也增加了复杂性以确保满足带宽要求来用于最优组件操作。此外,不同的市场细分要求互连体系结构的不同方面来适合该市场的需求。例如,服务器需要较高的性能,而移动生态系统有时能够牺牲整体性能来换取功率节省。然而,大多数结构的单一目的是使用最大功率节省来提供最高可能性能。在下文中,讨论了多个互连,它们将潜在地从在此描述的本公开的各方面中获益。0018参考图1,描绘了包括多核处理器的计算系统的框图的实施例。处理器100包括任何处理器或处理器件,诸如微处理器、嵌入式处理器。
16、、数字信号处理器(DSP)、网络处理器、手持式处理器、应用处理器、协同处理器、片上系统(SOC)、或用于执行代码的其它器件。在一个实施例中,处理器100包括至少两个核核101和102,它们可包括非对称核或对称核(所示实施例)。然而,处理器100可包括可以是对称的或非对称的任何数量的处理元件。0019在一个实施例中,处理元件是指支持软件线程的硬件或逻辑。硬件处理元件的示例包括线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或任何其它元件,这些元件能够保持处理器的诸如执行状态或架构状态之类的状态。换言之,在一个实施例中,处理元件指的是能够独立地与代码(诸如软件线程。
17、、操作系统、应用或其它代码)相关联的任何硬件。典型地,物理处理器(或处理器插槽)指的是集成电路,该集成电路潜在地包括任何数量的其它处理元件(诸如核或硬件线程)。0020核通常指的是位于集成电路上的能够维持独立体系结构状态的逻辑,其中每个独立维持的体系结构状态与至少一些专用的执行资源相关联。与核相反,硬件线程典型地表示位于集成电路上的能够维持独立体系结构状态的任何逻辑,其中被独立维持的体系结构状态共享对执行资源的访问。如可以看到,当某些资源被共享而其它资源专属于体系结构状态时,硬件线程与核的命名之间的界限交迭。不过,核和硬件线程通常被操作系统视为单独的逻辑处理器,其中操作系统能够单独地调度每个逻。
18、辑处理器上的操作。0021如图1所示的物理处理器100包括两个核核101和102。在此,核101和102被视为对称核,即这些核具有相同的配置、功能单元和/或逻辑。在另一个实施例中,核101包括无序处理器核,而核102包括有序处理器核。然而,核101和102可从任何类型的核中单独地选择,诸如原生核、受软件管理的核、适于执行原生指令集体系结构(ISA)的核、适于执行转换指令集体系结构(ISA)的核、协同设计的核或其它已知核。在异构核环境(即,非对称核)中,一些形式的转换(如二进制转换)可被用来在一个或这两个核上调度或执行代码。不过,为进一步讨论,以下将进一步详细描述在核101中示出的功能单元,因为。
19、核102中的单元以在所示实施例中的类似方式操作。说明书CN104050136A3/19页70022如所描绘,核101包括两个硬件线程101A和101B,两个硬件线程101A和101B也可称为硬件线程槽101A和101B。因此,在一个实施例中,诸如操作系统之类的软件实体潜在地将处理器100视为四个独立的处理器,即能够并发地执行四个软件线程的四个逻辑处理器或处理元件。如上所述,第一线程与体系结构状态寄存器101A相关联,第二线程与体系结构状态寄存器101B相关联,第三线程可与体系结构状态寄存器102A相关联,并且第四线程可与体系结构状态寄存器102B相关联。在此,体系结构状态寄存器(101A、10。
20、1B、102A和102B)中的每一个可被称为如上所述的处理元件、线程槽、或线程单元。如图所示,体系结构状态寄存器101A在体系结构状态寄存器101B中被复制,因此能够针对逻辑处理器101A和逻辑处理器101B存储单独的体系结构状态/上下文。在核101中,也可复制用于线程101A和101B的其它较小资源,诸如指令指针以及分配器和重命名块130中的重命名逻辑。诸如重排序器/隐退单元135中的重排序缓冲器、ILTB120、载入/存储缓冲器、以及队列之类的一些资源可通过分区来共享。诸如通用内部寄存器、页表基本寄存器、低级数据高速缓存和数据TLB115、执行单元140、以及无序单元135的部分之类的其它。
21、资源可能是被完全共享的。0023处理器100通常包括其它资源,这些其它资源可被完全共享、通过分区被共享、或由处理元件指定/专属于处理元件。在图1中,示出了具有处理器的说明性的逻辑单元/资源的纯示例性处理器的实施例。注意,处理器可包括或省去这些功能单元中的任意功能单元,且可包括未描绘的任何其它已知的功能单元、逻辑或固件。如图所示,核101包括简化的、代表性的无序(OOO)处理器核。但是有序处理器可用于不同实施例中。OOO核包括用于预测要被执行/进行的分支的分支目标缓冲器120以及用于存储指令的地址转换条目的指令转换缓冲器(ITLB)120。0024核101进一步包括耦合至取出单元120以用于解码。
22、所取出的元素的解码模块125。在一个实施例中,取出逻辑包括分别与线程槽101A、101B相关联的单独定序器。通常,核101与第一ISA相关联,该第一ISA定义/指定能在处理器100上执行的指令。通常作为第一ISA一部分的机器码指令包括该指令的一部分(称为操作码),该指令引用/指定待执行的指令或操作。解码逻辑125包括由这些指令的操作码来识别这些指令并在流水线上传递所解码的指令以进行如第一ISA所定义的处理的电路。例如,在一个实施例中,如以下将更详细讨论的,解码器125包括被设计成或适于识别诸如事务性指令之类的特定指令的逻辑。作为解码器125识别的结果,体系结构或核101采取特定的、预定的动作以。
23、执行与适当指令相关联的任务。重要的是,注意到本文描述的任何任务、框、操作和方法可响应于单个或多个指令而被执行;其中一些可以是新的或者旧的指令。注意,在一个实施例中,解码器126识别相同的ISA(或其子集)。或者,在异构核环境中,解码器126识别第二ISA(第一ISA的子集或不同的ISA)。0025在一个示例中,分配器和重命名器块130包括用于保留资源(诸如用于存储指令处理结果的寄存器文件)的分配器。然而,线程101A和101B潜在地能够进行无序执行,其中分配器和重命名块130还保留其它资源(诸如用于跟踪指令结果的重排序缓冲器)。单元130还可包括寄存器重命名器,用于将程序/指令引用寄存器重命名。
24、为处理器100内部的其它寄存器。重排序/隐退单元135包括诸如上述的重排序缓冲器、加载缓冲器和存储缓冲器之类的组件,以支持无序执行的指令的无序执行和稍后的有序隐退。说明书CN104050136A4/19页80026在一个实施例中,调度器和执行单元块140包括调度器单元,用于调度执行单元上的指令/操作。例如,在具有可用浮点执行单元的执行单元的端口上调度浮点指令。也可包括与执行单元相关联的寄存器文件,以存储信息指令处理结果。示例性的执行单元包括浮点执行单元、整数执行单元、跳跃执行单元、加载执行单元、存储执行单元以及其它已知的执行单元。0027较低级的数据高速缓存和数据转换缓冲器(DTLB)150耦。
25、合至执行单元140。数据高速缓存用于存储最近使用/操作的元素(诸如数据操作数),这些元素在存储器一致性状态下潜在地被保持。DTLB用于存储最近的虚拟到物理地址转换/线性到物理地址转换。作为特定示例,处理器可包括页表结构,用于将物理存储器分割成多个虚拟页。0028在此,核101和102共享对较高级或进一步的高速缓存的访问,如与片上接口110相关联的第二级高速缓存。注意,较高级或进一步指的是高速缓存级增加或进一步远离执行单元。在一个实施例中,较高级高速缓存是末级数据高速缓存处理器100上的存储器层次中的最后级高速缓存,诸如第二或第三级数据高速缓存。然而,较高级高速缓存不限于此,因为它可与指令高速缓。
26、存相关联或包括指令高速缓存。替代地,迹线高速缓存一种类型的指令高速缓存可耦合在解码器125之后,用于存储最近解码的迹线。在此,指令可能引用宏指令(即,解码器所识别的通用指令),该宏指令可解码成多个微指令(微操作)。0029在所描绘的配置中,处理器100还包括片上接口模块110。历史上,存储器控制器(以下将更详细地描述)已被包括在处理器100外部的计算系统中。在该场景中,片上接口110与处理器100外部的器件通信,处理器100外部的器件诸如系统存储器175、芯片组(通常包括存储器控制器中枢以连接到存储器175以及I/O控制器中枢以连接到外围器件)、存储器控制器中枢、北桥、或其它集成电路。并且在该。
27、场景中,总线105可包括任何已知的互连,诸如多点总线、点对点互连、串行互连、并行总线、一致性(例如高速缓存一致性)总线、分层协议体系结构、差分总线以及GTL总线。0030存储器175可专属于处理器100或与系统中的其它器件共享。存储器175的类型的常见示例包括DRAM、SRAM、非易失性存储器(NV存储器)以及其它已知的存储设备。注意,器件180可包括耦合到存储器控制器中枢的图形加速器、处理器或卡,耦合到I/O控制器中枢的数据存储,无线收发器,闪存器件,音频控制器,网络控制器,或其它已知器件。0031然而,最近,随着更多的逻辑和器件被集成在单个管芯上(如SOC),这些器件中的每一个可被合并在处。
28、理器100上。例如,在一个实施例中,存储器控制器中枢与处理器100处于同一封装和/或管芯上。在此,核的一部分(核上部分)100包括与诸如存储器175和/或图形器件之类的其它器件进行对接的一个或多个控制器。包括用于与此类器件进行接口的控制器和互连的该配置通常被称为核上(或非核(UNCORE)配置)。作为示例,片上接口110包括用于片上通信的环互连和用于片外通信的高速串行点对点链路105。然而,在SOC环境中,诸如网络接口、协同处理器、存储器175、图形处理器180以及任何其它已知计算机器件/接口之类的甚至更多的器件可被集成到单个管芯或集成电路上,以提供具有高功能性和低功耗的小外形规格。0032在。
29、一个实施例中,处理器100能够执行编译器、优化和/或翻译器代码177以编译、翻译和/或优化应用代码176,以支持本文所描述的装置和方法或与其接口。编译器通常包括用于将源文本/代码转换成目标文本/代码的程序或程序组。通常,利用编译器对程说明书CN104050136A5/19页9序/应用代码的编译以多个阶段和多遍进行,以将高级编程语言代码变换成低级机器或汇编语言代码。然而,仍可利用单遍编译器以进行简单编译。编译器可利用任何已知的编译技术,并执行任何已知的编译器操作,诸如,词法分析、预处理、解析、句法分析、代码生成、代码变换以及代码优化。0033较大的编译器通常包括多个阶段,但通常这些阶段被包括在两。
30、个一般阶段内(1)前端,在前端中通常进行句法处理、语义处理以及一些变换/优化;以及(2)后端,在后端中通常进行分析、变换、优化以及代码生成。一些编译器涉及中端,中端说明编译器的前端与后端之间的界定模糊。因此,对编译器的插入、关联、生成或其它操作的引用可在编译器的上述阶段或遍次以及任何其它已知的阶段或遍次中的任意之中进行。作为例示性示例,编译器潜在地将操作、调用、函数等插入到一个或多个编译阶段中,诸如将调用/操作插入到编译的前端阶段中并且随后在变换阶段期间将该调用/操作变换成较低级代码。注意,在动态编译期间,编译器代码或动态优化代码可插入此类操作/调用,并且优化代码用于在运行时间期间的执行。作为。
31、特定例示性示例,二进制代码(已编译代码)可在运行时间期间被动态地优化。在此,程序代码可包括动态优化代码、二进制代码或其组合。0034类似于编译器,诸如二进制翻译器之类的翻译器静态地或动态地翻译代码以优化和/或翻译代码。因此,对代码执行、应用代码、程序代码、或其他软件环境的引用可以指(1)编译器程序、优化代码优化器或转换器的动态或静态执行,以编译程序代码、维持软件结构、执行其它操作、优化代码、或转换代码;(2)主程序代码的执行,包括操作/调用,诸如已经被优化/编译的应用代码;(3)与主程序代码相关联的诸如库之类的其它程序代码的执行,以维持软件结构、执行其他软件相关操作、或优化代码;或(4)它们的。
32、组合。0035一种互连结构体系结构包括外围部件互连(PCI)快速(EXPRESS)(PCIE)体系结构。PCIE的主要目标是使得来自不同供应商的各组件和器件能够在开放体系结构中互操作,横跨多个市场细分;客户机(台式机和移动)、服务器(标准和企业),以及嵌入式和通信设备。PCI快速是针对各种各样的将来计算和通信平台定义的高性能、通用I/O互连。一些PCI属性,如其使用模型、加载存储体系结构、以及软件接口,已通过其各版本得到维持,而先前的并行总线实现已被高度可伸缩、完全串行的接口所替换。PCI快速的更新近版本利用点对点互连、基于交换机的技术、以及分组化协议的进步,来产生新的性能水平和特征。功率管理。
33、、服务质量(QOS)、热插拔/热切换支持、数据完整性、以及出错处理是PCI快速所支持的高级特征中的一些。0036参考图2,示出了包括互连一组组件的点对点链路的结构的实施例。系统200包括耦合到控制器中枢215的处理器205和系统存储器210。处理器205包括任何处理元件,如微处理器、主处理器、嵌入式处理器、协处理器、或其他处理器。处理器205通过前侧总线(FSB)206耦合到控制器中枢215。在一个实施例中,如下所述,FSB206是串行点对点互连。在另一实施例中,链路206包括兼容不同的互连标准的串行、差分互连体系结构。0037系统存储器210包括任何存储器设备,如随机存取存储器(RAM)、非。
34、易失性(NV)存储器、或可由系统200中的器件访问的其他存储器。系统存储器210通过存储器接口216耦合到控制器中枢215。存储器接口的示例包括双数据率(DDR)存储器接口、双通道DDR存储器接口、以及动态RAM(DRAM)存储器接口。0038在一个实施例中,控制器中枢215是外围部件互连快速(PCIE或PCIE)互连分层说明书CN104050136A6/19页10结构中的根中枢、根联合体、或根控制器。控制器中枢215的示例包括芯片组、存储器控制器中枢(MCH)、北桥、互连控制器中枢(ICH)、南桥、以及根控制器/中枢。通常,术语芯片组指的是两个物理上分开的控制器中枢,即耦合到互连控制器中枢(。
35、ICH)的存储器控制器中枢(MCH)。注意,当前系统通常包括与处理器205集成在一起的MCH,而控制器215用于按下述类似的方式与I/O设备通信。在一些实施例中,通过根联合体设备来可任选地支持对等路由。0039在此,控制器中枢215通过串行链路219耦合到交换机/桥接器220。输入/输出模块217和221(也可被称为接口/端口217和221)包括/实现用于提供控制器中枢215与交换机220之间的通信的分层协议栈。在一个实施例中,多个设备能够被耦合到交换机220。0040交换机/桥接器220将来自设备225的分组/消息上行地路由(即沿分层结构向上朝根联合体)、下行地向控制器中枢215路由(即,沿。
36、分层结构向下远离根控制器),从控制器205或系统存储器210向设备225路由。在一个实施例中,交换机220被称为多个虚拟PCI到PCI桥接设备的逻辑部件。设备225包括要耦合到电子系统的任何内部或外部设备或组件,如I/O设备、网络接口控制器(NIC)、插卡、音频处理器、网络处理器、硬盘驱动器、存储设备、CD/DVDROM、监视器、打印机、鼠标、键盘、路由器、便携式存储设备、火线设备、通用串行总线(USB)设备、扫描仪、以及其他输入/输出设备。通常,在PCIE常用语中,诸如设备,被称为端点。虽然并未具体示出,但设备225可包括用于支持传统或其他版本PCI设备的PCIE到PCI/PCIX桥接器。P。
37、CIE中的端点设备通常被分类成传统、PCIE、或根联合体集成端点。0041图形加速器230也通过串行链路232耦合到控制器中枢215。在一个实施例中,图形加速器230耦合到MCH,MCH耦合到ICH。交换机220以及相应的I/O设备225随后耦合到ICH。I/O模块231和218也用于实现分层协议栈,以用于在图形加速器230与控制器中枢215之间通信。类似于以上的MCH讨论,图形控制器或图形加速器230本身可集成在处理器205中。0042转向图3,示出了分层协议栈的实施例。分层协议栈300包括任何形式的分层通信栈,如快速路径互连(QPI)栈、PCIE栈、下一代高性能计算互连栈、或其他分层栈。虽。
38、然以下参考图25的讨论是关于PCIE栈的,但相同的概念可被应用于其他互连栈。在一个示例中,协议栈300是包括事务层305、链路层310、以及物理层320的PCIE协议栈。接口,诸如图1中的接口317、318、321、322、326、以及331,可被表示为通信协议栈300。表示为通信协议栈也可被称为实现/包括协议栈的模块或接口。0043PCIEXPRESS(PCI快速)使用分组在各组件之间传达信息。分组被形成在事务层305和数据链路层310中以将信息从发送组件携带至接收组件。随着发送的分组流过其它层,它们被扩充以具有在那些层处理分组所需的附加信息。在接收侧,逆过程发生并且分组从其物理层320表示。
39、转变为数据链路层310表示,并最终对于事务层分组转变为可由接收设备的事务层305处理的形式。0044事务层0045在一个实施例中,事务层305用于提供设备的处理核与互连体系结构(如数据链路层310和物理层320)之间的接口。就此,事务层305的主要责任是对分组(即,事务层分说明书CN104050136A107/19页11组,或即TLP)的组装和分解。事务层305通常管理TLP的信用基础流控制。PCIE实现拆分事务,即请求和响应由时间分开的事务,从而允许链路在目标设备收集响应的数据时携带其他话务。0046另外,PCIE利用基于信用的流控制。在这一方案中,设备广告事务层305中的各接收缓冲区中的每。
40、一个的初始信用量。在该链路的相对端的外部设备,如图1中的控制器中枢115,对每一TLP所消耗的信用的数量进行计数。如果事务没有超出信用限制,则该事务可被传送。在接收到响应后,信用量恢复。信用方案的优点是信用返回的等待时间不影响性能,假定没有遇到信用限制的话。0047在一个实施例中,四个事务地址空间包括配置地址空间、存储器地址空间、输入/输出地址空间、以及消息地址空间。存储器空间事务包括向存储器映射的位置/从存储器映射的位置转移数据的读请求和写请求中的一个或多个。在一个实施例中,存储器空间事务能够使用两个不同的地址格式,例如短地址格式(如32位地址)或长地址格式(如64位地址)。配置空间事务被用。
41、于访问PCIE设备的配置空间。到配置空间的事务包括读请求和写请求。消息空间事务(或即,简单地,消息)被定义为支持PCIE代理之间的带内通信。0048因此,在一个实施例中,事务层305组装分组头部/净荷306。当前分组头部/净荷的格式可在PCIE规范网站处的PCIE规范中找到。0049快速参考图4,示出了PCIE事务描述符的实施例。在一个实施例中,事务描述符400是用于携带事务信息的机制。就此,事务描述符400支持系统中事务的标识。其他可能用途包括跟踪默认事务排序的修改和事务与信道的关联。0050事务描述符400包括全局标识符字段402、属性字段404以及信道标识符字段406。在所示示例中,全局。
42、标识符字段402被示为包括局部事务标识符字段408和源标识符字段410。在一个实施例中,全局事务标识符402对所有未完成请求而言是唯一的。0051根据一个实现,局部事务标识符字段408是由发出请求的代理所生成的字段,并且它对于需要对该发出请求的代理来完成的所有未完成的请求而言是唯一的。此外,在该示例中,源标识符410唯一地标识PCIE分层结构内的请求者代理。因此,与源ID410一起,局部事务标识符408字段提供事务在分层结构域内的全局标识。0052属性字段404指定事务的特性和关系。就此,属性字段404潜在地被用来提供允许修改事务的默认处理的附加信息。在一个实施例中,属性字段404包括优先级字。
43、段412、保留字段414、排序字段416以及无监视字段418。在此,优先级子字段412可由发起者修改以向事务分配优先级。保留属性字段414被保留以供将来使用或供应商定义的用途。使用优先级或安全属性的可能的使用模型可以使用该保留属性字段来实现。0053在该示例中,排序属性字段416被用来提供传达可修改默认排序规则的排序的类型的可任选信息。根据一个示例实现,排序属性“0”表示要应用默认排序规则,其中排序属性“1”表示松散的排序,其中写可在同一方向上传递各个写,并且读完成可以在同一方向上传递各个写。监听属性字段418被用来确定事务是否被监听。如图所示,信道ID字段406标识事务与之相关联的信道。00。
44、54链路层(参考图3)0055链路层310(也被称为数据链路层310)担当事务层305与物理层320之间的中间阶段。在一个实施例中,数据链路层310的责任是提供用于在链路的两个组件之间交换事说明书CN104050136A118/19页12务层分组(TLP)的可靠机制。数据链路层310的一侧接受事务层305所组装的TLP,应用分组序列标识符311(即标识号或分组号),计算并应用错误检测码(即CRC312),并将经修改的TLP提供给物理层320以供跨物理层传输给外部设备。0056物理层0057在一个实施例中,物理层320包括用于将分组物理地传送给外部设备的逻辑子块321和电子子块322。在此,逻辑。
45、子块321负责物理层321的“数字”功能。就此,逻辑子块包括用于准备外出信息以供物理子块322传输的传送部分以及用于在将接收到的信息传递给链路层310之前标识并准备该接收到的信息的接收机部分。0058物理块322包括发射机和接收机。发射机由逻辑子块321来提供码元,发射机将这些码元串行化并向外部设备传送。来自外部设备的串行化的码元被提供给接收机,并且接收机将接收到的信号转换成位流。位流被解串行化并被提供给逻辑子块321。在一个实施例中,采用8B/10B传输码,其中10位码元被传送/接收。在此,特殊码元被用于将分组分成各个帧323。另外,在一个示例中,接收机还提供从传入串行流恢复的码元时钟。00。
46、59如上所述,虽然参考PCIE协议栈的特定实施例讨论了事务层305、链路层310以及物理层320,但分层协议栈不限于此。实际上,任何分层协议可被包括/实现。作为示例,被表示为分层协议的端口/接口包括1用于组装分组的第一层,即事务层;用于将分组序列化的第二层,即链路层;以及用于传送分组的第三层,即物理层。作为特定示例,利用通用标准接口(CSI)分层协议。0060随着串行链路的频率的增加和芯片迁移到具有日益降低的器件尺寸的新工艺技术,提供动态地调整发射机和接收机均衡设置以将各平台和硅变型考虑在内的能力变得日益重要。0061第三代PCIE(PCIEGEN3)是必须在每发射机接收机对的基础上如此均衡以。
47、确保部署PCIE的各种各样的系统在8GT/S处的互操作性的工业标准的示例。然而,由不同的供应商制造的具有不同的工艺技术的各种设备的多样性(每一设备具有它们专用的发射机/接收机设计以及改编的专用硬件算法)使得设计具有保证互操作性的组件成为挑战。0062本公开可被应用于上行端口、下行端口、或这两者。在一些实施例中,链路训练和均衡过程包括两遍,如下文详细描述的。0063接着参考图5,示出了PCIE串行点对点结构500的实施例。虽然示出了PCIE串行点对点链路的实施例,但串行点对点链路不限于此,因为它包括用于传送串行数据的任何传输路径。在所示实施例中,基本PCIE链路包括两个低电压的、差分地驱动的信号。
48、对传送对501/504和接收对502/503。0064因此,设备550包括用于将数据传送给设备510的传输逻辑501和用于从设备560接收数据的接收逻辑507。换言之,对于设备550,两个传送路径(即,路径505和525)和两个接收路径(即,路径506和526)被包括在PCIE链路中。0065传输路径可以指用于传送数据的任何路径,如传输线、铜线、光学线路、无线通信信道、红外通信链路、或其他通信路径。诸如设备550和设备560等两个设备之间的连接被称为链路,如链路530。在一些实施例中,链路530是PCIE总线接口链路。0066链路可以支持多条通道(LANE)每条通道表示一组差分信号对一个对用于。
49、传输,一个对用于接收。为了扩展带宽,链路可以聚集表示为XN的多条通道,其中N是任说明书CN104050136A129/19页13何所支持的链路宽度,如1、2、4、8、12、16、32、64或更宽。在一些实施例中,通道可被称为通信链路(例如,链路530)的信道。此外,在图5的示意图中,只有一条通道(对505/525和506/526)被示出在PCIE串行点对点结构500中。0067PCIE链路530可以使设备550、560能够彼此通信。在本公开的一些实施例中,设备560是本地设备,而设备550可以是远程设备。此外,设备550或设备560可被表征为根联合体设备或端点设备。例如,在一些实施例中,设备560是根联合体设备且设备550是端点设备。注意,因为设备550和设备560可以沿链路530彼此通信,所以设备550和设备560可被称为彼此的“链路伙伴”。0068差分对可以指用于传送差分信号的两条传输路径,如路线505和525。作为示例,在路线505从低电平转换为高电平(即上升沿)时,路线525从高逻辑电平驱动到低逻辑电平(即,下降沿)。差分信号可能示出较好的电学特性,如较好的信号完整性,即交叉耦合、电压过冲/下冲、振铃,等等。这允许更好的定时窗口,这允许更快的传输频率。0069另外,设备(例如,设备550或设备560)的发射机或接收机组件(例如,传输逻辑501/504、接收机逻辑502/。