CN1700700A - 实现可变宽度链路的方法及装置 - Google Patents

实现可变宽度链路的方法及装置 Download PDF

Info

Publication number
CN1700700A
CN1700700A CNA2004100965716A CN200410096571A CN1700700A CN 1700700 A CN1700700 A CN 1700700A CN A2004100965716 A CNA2004100965716 A CN A2004100965716A CN 200410096571 A CN200410096571 A CN 200410096571A CN 1700700 A CN1700700 A CN 1700700A
Authority
CN
China
Prior art keywords
group
multiplexer
transmission
transmission channel
physics numerical
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
CNA2004100965716A
Other languages
English (en)
Inventor
莫里斯·B·斯坦曼
拉胡尔·R·沙阿
纳韦恩·谢吕库里
阿龙·T·斯平克
艾伦·J·鲍姆
桑贾伊·达布罗
提姆·弗罗德沙姆
戴维·S·邓宁
西奥多·Z·舍恩博恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to CN201210327653.1A priority Critical patent/CN103034605B/zh
Publication of CN1700700A publication Critical patent/CN1700700A/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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion
    • 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/4009Coupling between buses with data restructuring
    • 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)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Systems (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Processing Of Terminals (AREA)
  • Vehicle Body Suspensions (AREA)

Abstract

本发明的实施例提供了一种用于将链路划分为一个或多个宽度减小的链路的算法。对于本发明的一个实施例,一种多路复用方案被用来实现由特定的循环冗余校验所要求的位传输顺序。然后在片上重组多路复用的输出位,从而减少板上布线拥塞。

Description

实现可变宽度链路的方法及装置
技术领域
本发明的实施例一般地涉及使用基于链路的互连方案的处理系统领域,更具体地说,涉及将单个链路接口逻辑分解到四分体(quadrant)中的方法及装置,从而可以支持可变链路宽度、通道倒序(lane reversal)及端口分叉(port bifurcation)特性。
背景技术
为了解决用于多处理器系统(MPS)的基于总线的互连方案的缺点,已经开发了点对点的基于链路的互连方案。这一系统的每一节点都包括用于在被连接的节点之间传输数据的代理(例如,处理器、存储器控制器、I/O集线器组件、芯片组等)及路由器。这种系统的代理通过使用互连层次结构传输数据,该层次结构一般包括协议层、可选的路由层、链路层及物理层。
协议层设置协议事务分组(PTP)的格式,所述PTP构成在节点之间传输的数据单元。路由层确定在节点之间传输数据所经过的路径。链路层从协议层接收PTP,然后以块(段)序列的方式来传输它们。每个段的大小由链路层确定,并且代表PTP的一个必须同步传输的段,因此每一段被称作一个流量控制单元(片(flit))。PTP由可变数量的整数个片组成。物理层由在每个节点处的实际电气和信令机制组成。在点对点的基于链路的互连方案中,连接到每一链路的只有两个代理。这种受限制的电负载导致运行速度的加快。通过减小物理层接口(PLI)的宽度并且因此减小时钟变化,可以进一步加快运行速度。因此,PLI一般被设计来在几个时钟周期的每一个上传输片的某个片断。一个片中可以在单个时钟周期内被传输通过物理接口的片断被称作物理数位(phit)。片表示数据的逻辑单元,而物理数位相当于数据的物理量。
互连层次结构被实现来在物理层获得更高的系统运行速度。链路层在片中传输数据(作为PTP从协议层接收),然后片在物理层被分解为物理数位,并且通过PLI被传输到接收代理的物理层。在接收代理的物理层,接收到的物理数位被组合成片,然后被转发到接收代理的链路层,链路层将片组合成PTP,然后将PTP转发到接收代理的协议层。
在实现可变宽度的链路时(例如宽度减小的链路(reduced-widthlink)),这种传输数据通过链路的方法导致几种困难。
典型的现有技术互连方案(例如PCI Express)使用数据分组。在每一个时钟周期期间,传输代理(Tx)在链路的每一个通道上传输数据分组的一个字节。所述分组具有“分组开始”(SOP)及“分组结束”(EOP)指示符。在初始化期间,接收代理(Rx)用训练序列来确定可用通道的数目。Rx从每个可用的通道中顺序地取出一个字节,并且组装这些字节直至接收到EOP指示符。
这种被称作“每通道字节串行方式”的方案允许将一个链路减少到任意数目个通道。但是,在点对点的基于链路的PLI上,设计来在数个时钟周期的每一个周期上传输片的某个片断,这种方案的实施可能导致不可接受的延迟。例如,这种系统可能使用长80位的片,并且在四个时钟周期中通过一个20-通道的全宽度链路来传输该片。就是说,每一时钟周期中,在20个通道的每一个上传输一位。对于这样的系统,如果在20个通道的每一个上顺序地传输一个字节,将要花8个时钟周期来传输160位,这等同于增加了片的大小。就是说,直到整个160位已经抵达Rx,才可以转发一个80位片。这种增加的延迟对于这种系统可能是不可以接受的。此外,这种系统不需要包括SOP及EOP指示符,这些指示符本来应被添加来实现每通道字节串行方式传输方案。
在开发包含PLI支持的其它特性在内的减小宽度链路实现方法中,要考虑其它的问题。
发明内容
本发明提供了一种方法,包括:将片的多个位划分为若干组,每一组有相同数目的位;以及通过把一个组的每一位输入到一个或多个对应的多路复用器中,独立地多路复用每一组的位,以产生期望的传输顺序。
本发明还提供了一种用于提供可变宽度链路的系统,包括:端口划分单元,用于将链路端口的数据传输通道划分为多个四分体,所述四分体中至少有一个是活动的;和传输单元,用于以多个物理数位来传输一个片,每一物理数位所具有的位的数量与所有活动四分体内的数据传输通道的总数相等。
本发明还提供了一种产品,包括具有关联数据的机器可访问介质,其中当所述数据被访问时,导致机器执行操作以在两个代理之间实现物理层链路的初始化,所述操作包括:将链路端口的数据传输通道划分为多个四分体,所述四分体中至少有一个是活动的;以及以多个物理数位来传输一个片,每一物理数位所具有的位的数量与所有活动四分体内的数据传输通道的总数相等。
本发明还提供了一种系统,包括传输代理,其具有多个被划分为多个四分体的数据传输通道,至少一个四分体是活动的,并且其中采用多组多路复用器来接收数据、多路复用所述数据以及输出所述数据,每一组多路复用器的输出形成物理数位,在相应的时钟周期中,在所述活动四分体的传输通道上传输每个物理数位;和接收代理,其通过点对点基于链路的互连方案与所述传输代理互连,用于接收所传输的物理数位。
附图说明
参考下述描述及用于说明本发明实施例的附图,可以最好地理解本发明。在附图中:
图1根据本发明的一个实施例图示了被划分为四个块的80位片的片格式以及其中八个CRC位的排序;
图1A根据本发明的一个实施例图示了图1的80位片的片格式,该片被划分为物理数位0-物理数位3的四个物理数位,用以在全宽度链路上传输;
图2根据本发明的一个实施例图示了被划分为八个物理数位的80位片的片格式,用以在半宽度链路上传输;
图3根据本发明的一个实施例图示了被划分为十六个物理数位的80位片的片格式,用以在四分之一宽度链路上传输;
图4根据本发明的一个实施例图示了提供可变宽度链路的直接布线方案中所固有的片上布线拥塞及可变延迟;
图5根据本发明的一个实施例图示了一种多路复用器输入方案,用于产生所要求的物理数位及位传输顺序;
图6根据本发明的一个实施例图示了以下系统的电路板布图,该系统用于实现半字节多路复用以产生期望的位传输顺序,同时可支持分叉端口;以及
图7根据本发明的一个实施例图示了位重组方案的实现。
具体实施方式
在下面的描述中,阐明了许多具体的细节。但是应当理解,没有这些具体的细节也可以实现本发明的实施例。此外,为了不模糊对本描述的理解,没有详细地示出公知的电路、结构及技术。
在整个说明书中,“一个实施例”或“实施例”意指结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,在整个说明书的多个地方,短语“在一个实施例中”或“在实施例中”的出现并不一定是指相同的实施例。此外,在一个或多个实施例中,可以以任何合适的方式组合特定的特征、结构或特性。
此外,创造性方面存在于单个公开实施方式的部分特征中。因此,本说明书所附的权利要求书特此被明确地包含在“具体实施方式”部分中,每一项权利要求各自代表本发明的单独的实施方式。
片格式
本发明的一个实施例提供了具有20通道链路(在全宽度时)的PLI,其以四个20位物理数位的方式传输80位的片。对于本发明的一个实施例,该20个通道被分到每五个通道一组的四分体中。对于这种实施例,宽度减小的链路可以由用作半宽度链路的两个四分体的任何组合组成,或者由用作四分之一宽度链路的任何一个四分体组成。就是说,这种实施例不支持任意链路宽度,只支持全宽度(20通道)、半宽度(10通道)和四分之一宽度(5通道)。在全宽度时,该链路在四个时钟周期内以四个20位物理数位传输一个80位片;在半宽度时,该链路在八个时钟周期内以八个10位物理数位传输一个80位片;以及在四分之一宽度时,该链路在十六个时钟周期内以十六个5位物理数位传输一个80位片。
80位片包含几个(例如八个)错误检测位来实现循环冗余校验(CRC)。CRC是一种用作检测已被传输过通信链路的数据中的错误的方法。典型地,Tx将多项式应用于数据块,并且将作为结果的CRC码附加到该块。Rx应用相同的多项式,并且将其结果与附加的结果相比较。如果它们一致,那么成功地接收了数据,如果不一致,那么通知Tx重传该数据。
基于用来实现CRC的数学方法,要求按照特定的顺序来传输片的CRC位。对于一个实施例,要求遵循特定的顺序来传输物理数位以及每一物理数位内的位,从而有效地使用链路层的CRC突发错误检测能力。传输顺序取决于使用中的链路宽度。图1根据本发明的一个实施例图示了被划分为四块的80位片的片格式以及其中的八个CRC位的排序。如图1所示,所示的片包含块0—块3的四个20位块,以及位0—位7的八个CRC位。为了实现CRC,按照特定的顺序传输CRC位。CRC位C0及C4被包括在块0中,C1及C5被包括在块1中,C2及C6被包括在块2中,而C3及C7被包括在块3中。
图1A根据本发明的一个实施例图示了图1的80位片的片格式,该片被划分为物理数位0—物理数位3的四个物理数位,用以在全宽度链路上传输。如图1所示,对于具有20个通道的全宽度链路,片的每一个块相当于一个物理数位。图1A将每一位表示为序偶<q,o>,其中“q”指出该位所属的四分体,而“o”则指出该位在四分体中的偏移。如图1A所示,八个CRC位被包含在物理数位0-物理数位3四个物理数位中每一个的第0列(位位置)和第1列中。
半宽度链路使用两个四分体的任意组合,在八个时钟周期内以8个10位物理数位来传输一个80位片。这八个物理数位不是由片的四个块中每一个块的第一半和第二半简单地组成。为了满足CRC算法的要求,用于半宽度链路的片格式交织该片的位,使得八个CRC位处在八个物理数位的每一个的第一位位置中。图2根据本发明的一个实施例图示了被划分为八个物理数位的80位片的片格式,用以在半宽度链路上传输。如图2所示,八个物理数位的第一个,即物理数位0由该片的第一块的交替的位组成;八个物理数位的第二个,即物理数位1由该片的第二块的交替的位组成;八个物理数位的第三个,即物理数位2由该片的第一块的剩余的交替的位(那些没有包括在物理数位0中的)组成;等等。就是说,物理数位0包括块0的偶数列,物理数位1包括块1的偶数列。接下来的两个物理数位,物理数位2和物理数位3相应地包括块0和块1的奇数列。因此,物理数位0—物理数位3用于完整地传输块0和块1。而物理数位4—物理数位7通过重复该过程用于传输块2和块3。这种排序允许八个CRC位被置于所示的八个物理数位的每一个的第一位位置中。
对于半宽度链路,只使用四个通道四分体中的两个。使用的两个四分体可以是四个四分体的任意组合<x,y>,如图2所示。对于本发明的一个实施例,所选择的两个四分体中具有较低“q”值的四分体传输具有较低列序号(物理数位中的位位置)的位。例如,对于图2中所示的片格式,y>x。
四分之一宽度链路使用任何一个通道四分体,在十六个时钟周期内,以十六个5位物理数位来传输一个80位片。同样,为了满足CRC要求,片中的位必须被专门地排序。图3根据本发明的一个实施例图示了被划分为十六个物理数位的80位片的片格式,用以在四分之一宽度链路上传输。如图3所示,八个CRC位处于物理数位的交替对的第一位位置。通过与上述参考图2的过程相似的过程形成这十六个物理数位。就是说,物理数位0由来自块0从第0列开始并包括每隔四位的共五位组成。物理数位1由来自块1从第0列开始并包括每隔四位的共五位组成。物理数位2—物理数位7交织块0及块1的位,包括每一块中按照特定的顺序从第2列、第1列及第3列开始,每隔四位选出的五位。因此,物理数位0-物理数位1用来完整地传输块0及块1。然后物理数位8—物理数位15通过重复该过程用来传输块2和块3。
半字节多路复用(NIBBLE MUXING)
按照CRC所要求的顺序直接进行位布线将导致长的路线长度,这会引起布线拥塞及可变的延迟。图4根据本发明的一个实施例图示了提供可变宽度链路的直接布线方案中所固有的片上布线拥塞及可变延迟。如图4所示,来自20个通道的位被划分到每个有五个通道的四分体中。来自四分体Q1-Q4每一个的一位被直接导向多路复用器1-多路复用20这20个多路复用器中的四个。例如图4中所示,位0、5、10及15(每个四分体的第一位)被直接导向多路复用器1、6、11及16的每一个。继续这种模式,位1、6、11及16(每个四分体的第二位)被直接导向多路复用器2、7、12及17的每一个,等等。多路复用器的每一个接收四个输入位,并且基于链路宽度提供输出,就是说,对于全宽度(20位)链路,这20个多路复用器的每一个提供一个输出,如多路复用器1提供位0输出等。对于半宽度链路,每一时钟周期只有这20个多路复用器的10个提供输出,即每一时钟周期共10位输出。例如,多路复用器1可以在两个连续的时钟周期的每一个上分别提供位0和位10的输出,多路复用器6可以在两个连续的时钟周期的每一个上分别提供位5和位15的输出,在这里使用了四分体Q1及Q2。在使用Q3及Q4时,多路复用器11可以在两个连续的时钟周期的每一个上分别提供位0和位10的输出,多路复用器16可以在两个连续的时钟周期的每一个上分别提供位5和位15的输出。对于四分之一宽度路径,每一时钟周期内只有这20个多路复用器中的5个提供输出,即每一时钟周期共5位输出。例如,多路复用器1可以在四个连续的时钟周期的每一个上分别提供位0、位5、位10及位15的输出(在使用Q1时)。
根据这种方案的路线长度的比较说明了可变的延迟。这种路线长度的可变性可以使缓冲成为必要。
为了既实现CRC所要求的位传输顺序,又避免这些缺点,根据本发明的一个实施例,为PLI的每一个通道设置了一个集成多路复用器(MUX)。对于一个20通道PLI,集成20个多路复用器。
图5根据本发明的一个实施例图示了一种多路复用器输入方案,用于产生所要求的物理数位及位传输顺序。多路复用器输入方案500将20位块划分到半字节0—半字节4这五个每个四位的半字节中。针对半字节0来讨论解决由CRC带来的传输顺序限制的多路复用方案。
对于全宽度链路,多路复用输入选择是直通式的;为奇数块和偶数块的每一个实现20个多路复用器。对于全宽度链路,20个多路复用器的每一个(一个多路复用器与每一个输入都相关)都是活动的,并且每个多路复用器逐个半字节地接收其对应的输入。如图5所示,半字节0的位0—位3中的每一位被输入到多路复用器0—多路复用器3四个对应的多路复用器。这些位在每一四分体中的偏移为0。块0的所有半字节(由块0的半字节0例示)被作为物理数位0传输,块1的所有半字节(由块1的半字节0例示)被作为物理数位1传输。
对块2及块3重复所述操作,以生成接下来的两个物理数位。
对于半宽度链路,使用指定为Qy和Qx的两个四分体,因此,只使用和每一个半字节相关联的四个多路复用器中的两个,共十个活动的多路复用器。在八个物理数位的前四个中,使用位<x,0>和<y,0>来传输块0和块1的半字节0。在物理数位0中,Qx Qy分别传输块0的位0和位2(也传输位4、8、12和16,以及位6、10、14和18)。在物理数位1中,Qx及Qy切换到块1并且分别传输位0及位2(也传输位4、8、12和16,以及位6、10、14和18)。对块0和块1的位1和位3(以及位5、9、13和17,以及位7、11、15和19)重复上述操作,总共有四个物理数位。对块2和块3,接下来的四个物理数位重复该操作。
如上面提到的,对于四分体对Qy和Qx,x的值小于y的值。例如,如果四分体1和四分体0被用来形成半宽度链路,那么四分体0在连续的物理数位中传输每个块的位0和位1,四分体1在连续的物理数位中传输位2和位3。另一方面,如果使用四分体1和四分体2,那么四分体1在连续的物理数位中传输每个块的位0和位1,并且四分体2在连续的物理数位中传输位2和位3。
对于四分之一宽度链路,使用四分体之一的Qx,因此,只使用和每一个半字节相关联的四个多路复用器的一个,共计五个活动的多路复用器。在使用<x,0>的十六个物理数位的前八个中传输块0和块1的半字节0。在物理数位0中传输块0的位0(也传输位4、8、12和16)并且在物理数位1中传输块1的位0(也传输位4、8、12和16)。在对两个块的总共八个物理数位来交织块0和块1时,对于每一次叠代,分别使用半字节0的位2、位1及位3(以及其它每个半字节的对应位)重复三次上述操作。对于块2和块3,使用接下来的八个物理数位重复所述操作。
传输后,在Rx端口处使用与所述复用方案产生相反效果,并提供位及物理数位的解复用的方案来解复用所接收的位。
重组(SWIZZLING)
以上描述了本发明实现半字节多路复用的实施例,该实施例相对于它们的关联输入通过提供高度局部化的、片上的多路复用,减少了片上布线拥塞及可变的路径长度。因为当操作宽度减小的链路(或者本发明实施例的半宽度链路,或者本发明实施例的四分之一宽度链路)时,物理数位没有通过邻近物理通道上的链路进行传输,所以维持所要求的物理数位及每一物理数位中的位的传输顺序,可能会相对困难。就是说,半字节多路复用方案的实现将对应于给定半字节的四个多路复用器的每一个的输出直接导向不同的四分体。这在支持多种特性的系统中可能是成问题的。
例如,考虑所支持的端口分叉特性。端口分叉允许一个全宽度的代理被分为两个各具有半宽度链路的代理。例如,对于某些系统平台,I/O上的流量与处理器之间的流量不一样多。因此,对于有两个处理器的系统,不是每个处理器都有其自己的专用I/O组件,而是在互连方面这两个处理器可能共享单个I/O组件。在这种情形中,这两个处理器使用20位宽的互连(20个通道)相互通信,但是I/O代理分配它的20个通道中的10个来与一个处理器通信,分配另外10个通道来与另一个处理器通信。对于本发明的一个实施例,通过先于链路初始化的引脚捆绑(pin straps)实现端口分叉,并且这种配置仍旧是静态的。对于本发明的一个实施例,分叉的端口在引脚区的中央有两个时钟通道(每个半宽度链路一个)。对于本发明的一个实施例,能够分叉的端口也能够作为单个全宽度链路运行。对于这样一个实施例,外部时钟引脚可能没有被连接,或者被硬连线接到Vcc或Vss二者之一。
图6根据本发明的一个实施例图示了以下系统的电路板布图,该系统用于实现半字节多路复用以产生期望的位传输顺序,同时可支持分叉端口。图6中所示的系统600包括Tx代理605,其实现如参考图5所述的,由半字节多路复用产生的期望的传输顺序。如所示的,代理605有分叉的端口。系统600还包括两个代理610A和610B,每个具有一个半宽度端口。在代理610A和610B的每一个上可用的20个通道中有一半是不活动的。在代理610A上,半宽度端口使用通道0-9,而在代理610B上,半宽度端口使用通道10-19。如图6中所示,代理605的四分体0及四分体1被导向代理610A,而四分体2及四分体3被导向代理610B。这种布图在电路板上会有如图6所示的过多的线路交叉,或者,需要额外的布线层,二者都不可取。
为了解决这种情况,本发明的一个实施例在内部逻辑与物理通道之间实现了位重组层。
图7根据本发明的一个实施例图示了位重组方案的实现。如图7所示的系统700包括代理705,其具有在内部逻辑与物理引脚706之间实现的位重组方案。位重组的结果是产生了让所有的位在邻近物理通道上传输的四分体。对于本发明的一个实施例,通过管芯上的硬接线实现位重组,因此不需要额外的逻辑。如图7所示,对于本发明的一个实施例,使用接下来的重组公式将用序偶<q,o>表示的位映射到物理通道“n”。
通道n=(NL/4)*(1+q)-o-1对于q<2;并且
     =(NL/4)*(5-q)+o对于q>=2;
这里,“n”是通道号(0到NL-1),“NL”是全宽度链路通道数量(例如20个通道),“q”是四分体号(0到3),并且“o”是四分体“q”内的位偏移(0到4)。通过内部重组位,从而迫使四分体的所有位在邻近的物理通道上传输,缓和了分叉端口的板上布线拥塞。如所示的,代理705的端口可以是分叉的,四分体0与四分体1被导向代理710A的半宽度端口,四分体2与四分体3被导向代理710B的半宽度端口。在物理引脚706处,实施所述重组方案后的四分体顺序并不是按顺序排列的,但是无需额外的布线层就可以直接连接到代理710A及710B。
一般问题(GENERAL MATTERS)
本发明的实施例提供了用于将链路划分为一个或多个宽度减小的链路的算法。尽管在上面参考PLI作了描述,该PLI具有20个通道的全宽度链路、80位的片大小以及半宽度及四分之一宽度的减小宽度链路,但是本发明可选的实施例同样地使用具有不同大小的链路、片以及提供多种减小宽度链路的PLI。
对于一个实施例,高度局部化的多路复用器减轻了在芯片的高度拥塞区域中的片上拥塞,该多路复用器是通过以上参考图5描述的半字节多路复用处理产生的。上面参考图6描述的位重组增加了片上拥塞(在可以容忍拥塞加重的不太拥塞的区域中),但是减轻了板上拥塞,允许系统更好地支持端口分叉及通道倒序的特性。
通道倒序
在通道倒序方面,上述多路复用及重组方案的实现提供了附加的好处。
理想情况中,在两个被互连的代理的每一个上提供物理信号的引脚被连接到另一个代理上对应的引脚。就是说,对于一对20引脚的代理,一个代理上的引脚0-19被连接到另一个代理上的引脚0-19。对于某些拓扑,这种连接可能导致过多的电路板布图拥塞或复杂性。本发明的实施例允许在一个端口上的引脚对另一个端口上的引脚倒序。这种通道倒序由下面的A和B两个端口之间的引脚连接方程定义。
引脚kcomponentA=>引脚(NL-k-1)componentB
由Rx端口自动地检测并补偿通道倒序。只要代理通过对应的引脚(直接连接)或者通过上面提到的用于通道倒序的引脚连接方程被连接起来,在板上就不需要额外的步骤。
对于本发明的一个实施例,其中除端口分叉之外还支持通道倒序特性,20通道的分叉端口的通道0-9被连接到第一半宽度端口的通道19-10(按照该特定的顺序),而20通道的分叉端口的通道10-19被连接到第二半宽度端口的通道9-0(按照该特定的顺序)。
对于本发明的一个使用上述多路复用及重组方案的实施例,直接连接的每一通道的通道标识符与倒序后的通道连接的通道标识符只有一位不同。就是说,由于通道被限制在仅仅两个位置的其中之一,所以它们的标识符除了一位外,全都可以相同。在这种实施例中,通过比较该单个位可以检测出通道倒序。通过参考通道标识符的单个位可以指示通道倒序,这节省了时间及芯片空间,因此仅仅需要在片上实现一位比较器来支持通道倒序。相反,现有技术的方案要求通道标识符的所有五位都进行比较,因此就需要五位比较器。
本发明的实施例所提供的多路复用及重组处理在支持其它期望的特性的同时,产生期望的位传输顺序并且为减小宽度链路提供了方便。这些处理包括各种操作并且被按照它们最基本的形式作了描述,但是可以向这些处理的任何一个添加操作或从这些处理的任何一个中删除操作,而不背离本发明的基本范围。可以通过硬件组件实现本发明的各种实施例的操作,或者包括在上述机器可执行指令中。或者可以通过硬件与软件的组合来执行本发明各个实施例的操作。本发明的实施例可以作为计算机程序产品来提供,该计算机程序产品可以包括在其上存储有指令的机器可访问介质,其可以被用来使计算机(或者其它电子器件)按程序执行根据本发明的上述处理。
机器可访问介质包括任何以可由机器(例如,计算机、网络设备、个人数字助手、制造工具、任何有一组一个或多个处理器的器件等)访问的形式来提供(例如,存储和/或传输)信息的机制。例如,机器可访问介质包括可记录/不可记录介质(例如只读存储器(ROM);随机访问存储器(RAM);磁盘存储介质;光存储介质;闪存器件等),以及电、光、声或者其它形式的传播信号(例如载波、红外信号、数字信号等)等。
虽然已经结合几个实施例描述了本发明,但是本领域的技术人员将认识到本发明不限于上述实施例,而是在所附权利要求的精神和范围内,可以进行修改和变化。因此,以上描述应当被认为是解释性的,而不是限制性的。

Claims (28)

1.一种方法,包括:
将片的多个位划分为若干组,每一组有相同数目的位;以及
通过把一个组的每一位输入到一个或多个对应的多路复用器中,独立地多路复用每一组的位,以产生期望的传输顺序。
2.如权利要求1所述的方法,还包括:
将传输通道划分为多个传输通道分区,使得来自每一组的被多路复用的位形成物理数位,所述物理数位所具有的位的数量对应于每一传输通道分区中的传输通道的数量。
3.如权利要求2所述的方法,其中,所述一个或多个对应的多路复用器中的每一个与所述传输通道分区中的一个不同分区相关联。
4.如权利要求1所述的方法,其中每一组有四位。
5.如权利要求3所述的方法,其中,每一传输通道分区是传输通道四分体。
6.如权利要求5所述的方法,其中,每一传输通道四分体有五个传输通道。
7.如权利要求6所述的方法,其中,重组所述被多路复用的位,使得从邻接的物理传输通道传输每一输出位。
8.如权利要求1所述的方法,其中,所述期望的传输顺序有助于实现特定的循环冗余校验。
9.一种用于提供可变宽度链路的系统,包括:
端口划分单元,用于将链路端口的数据传输通道划分为多个四分体,所述四分体中至少有一个是活动的;和
传输单元,用于以多个物理数位来传输一个片,每一物理数位所具有的位的数量与所有活动四分体内的数据传输通道的总数相等。
10.如权利要求9所述的系统,其中,按照指定的位传输顺序,通过所述链路来传输一个片的多个物理数位和一个物理数位的多个位。
11.如权利要求9所述的系统,其中,选择所述指定的位传输顺序以实现循环冗余校验。
12.如权利要求11所述的系统,还包括多组多路复用器,每一组多路复用器与一组位相关联,每一组中的位都被输入到所述关联的多路复用器组中的每一个多路复用器。
13.如权利要求12所述的系统,其中,每组多路复用器的输出形成物理数位。
14.如权利要求12所述的系统,其中,重组输入到所述每一个多路复用器的位,使得从一组邻接的物理传输通道传输来自所述多路复用器的一组输出位。
15.如权利要求14所述的系统,其中所述端口是分叉的。
16.一种产品,包括:
机器可访问介质,其具有关联的数据,其中当所述数据被访问时,导致机器执行操作以在两个代理之间实现物理层链路的初始化,所述操作包括:
将链路端口的数据传输通道划分为多个四分体,所述四分体中至少有一个是活动的;以及
以多个物理数位来传输一个片,每一物理数位所具有的位的数量与所有活动四分体内的数据传输通道的总数相等。
17.如权利要求16所述的产品,其中,按照指定的位传输顺序,通过所述链路来传输一个片的多个物理数位和一个物理数位的多个位。
18.如权利要求16所述的产品,其中,选择所述指定的位传输顺序以实现循环冗余校验。
19.如权利要求18所述的产品,还包括多组多路复用器,每一组多路复用器与一组位相关联,每一组中的位被输入到所述关联的多路复用器组中的每一个多路复用器。
20.如权利要求19所述的产品,其中,每组多路复用器的输出形成物理数位。
21.如权利要求19所述的产品,其中,重组输入到所述每一个多路复用器的位,使得从一组邻接的物理传输通道传输来自所述多路复用器的一组输出位。
22.一种系统,包括:
传输代理,其具有多个被划分为多个四分体的数据传输通道,至少一个四分体是活动的,并且其中采用多组多路复用器来接收数据、多路复用所述数据以及输出所述数据,每一组多路复用器的输出形成物理数位,在相应的时钟周期中,在所述活动四分体的传输通道上传输每个物理数位;和
接收代理,其通过点对点基于链路的互连方案与所述传输代理互连,用于接收所传输的物理数位。
23.如权利要求22所述的系统,其中,所述传输代理及所述接收代理是从以下组中选出的组件,该组由处理器、存储器控制器、输入/输出集线器组件、芯片组及其组合组成。
24.如权利要求23所述的系统,其中,所述数据被多路复用来实现循环冗余校验。
25.如权利要求22所述的系统,其中,重组每一组多路复用器的输出,使得从一组邻接的物理传输通道传输来自每一组所述多路复用器的输出位。
26.如权利要求25所述的系统,其中,所述接收代理的多个数据传输通道被倒序连接到所述传输代理的所述多个数据传输通道。
27.如权利要求26所述的系统,其中,由每一数据传输通道的数据传输通道标识符中的单个位来指示所述倒序。
28.如权利要求25所述的系统,其中,所述接收代理包括其中采用的多组多路复用器,所述多路复用器用于接收数据并且解复用所述数据。
CNA2004100965716A 2004-05-21 2004-12-03 实现可变宽度链路的方法及装置 Pending CN1700700A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210327653.1A CN103034605B (zh) 2004-05-21 2004-12-03 实现可变宽度链路的方法及装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/850,809 2004-05-21
US10/850,809 US7957428B2 (en) 2004-05-21 2004-05-21 Methods and apparatuses to effect a variable-width link

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201210327653.1A Division CN103034605B (zh) 2004-05-21 2004-12-03 实现可变宽度链路的方法及装置

Publications (1)

Publication Number Publication Date
CN1700700A true CN1700700A (zh) 2005-11-23

Family

ID=34930811

Family Applications (2)

Application Number Title Priority Date Filing Date
CNA2004100965716A Pending CN1700700A (zh) 2004-05-21 2004-12-03 实现可变宽度链路的方法及装置
CN201210327653.1A Expired - Fee Related CN103034605B (zh) 2004-05-21 2004-12-03 实现可变宽度链路的方法及装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201210327653.1A Expired - Fee Related CN103034605B (zh) 2004-05-21 2004-12-03 实现可变宽度链路的方法及装置

Country Status (8)

Country Link
US (2) US7957428B2 (zh)
EP (1) EP1598745B1 (zh)
JP (1) JP4035532B2 (zh)
CN (2) CN1700700A (zh)
AT (1) ATE464607T1 (zh)
DE (1) DE602004026555D1 (zh)
RU (1) RU2288542C2 (zh)
TW (1) TWI311252B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7957428B2 (en) 2004-05-21 2011-06-07 Intel Corporation Methods and apparatuses to effect a variable-width link
CN104769570A (zh) * 2012-10-22 2015-07-08 英特尔公司 控制多时隙链路层微片中的消息收发
CN108363672A (zh) * 2017-01-27 2018-08-03 慧与发展有限责任合伙企业 PCIe接头

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7038736B2 (en) * 2000-09-21 2006-05-02 Canon Kabushiki Kaisha Moving image processing apparatus and method, and computer readable memory
US8046488B2 (en) * 2004-05-21 2011-10-25 Intel Corporation Dynamically modulating link width
US7844767B2 (en) * 2004-05-21 2010-11-30 Intel Corporation Method for identifying bad lanes and exchanging width capabilities of two CSI agents connected across a link
US7467358B2 (en) * 2004-06-03 2008-12-16 Gwangju Institute Of Science And Technology Asynchronous switch based on butterfly fat-tree for network on chip application
US7174412B2 (en) * 2004-08-19 2007-02-06 Genesys Logic, Inc. Method and device for adjusting lane ordering of peripheral component interconnect express
US7734741B2 (en) * 2004-12-13 2010-06-08 Intel Corporation Method, system, and apparatus for dynamic reconfiguration of resources
US7738484B2 (en) * 2004-12-13 2010-06-15 Intel Corporation Method, system, and apparatus for system level initialization
US20060236042A1 (en) * 2005-03-31 2006-10-19 Sandeep Jain Training sequence for deswizzling signals
US8325768B2 (en) * 2005-08-24 2012-12-04 Intel Corporation Interleaving data packets in a packet-based communication system
US20070147839A1 (en) * 2005-12-23 2007-06-28 Intel Corporation Clock strobed data over one waveguide or fiber
US7324913B2 (en) * 2006-02-01 2008-01-29 International Business Machines Corporation Methods and apparatus for testing a link between chips
US7783959B2 (en) * 2006-03-23 2010-08-24 Intel Corporation Apparatus and method for reduced power consumption communications over a physical interconnect
JP2010500641A (ja) * 2006-08-08 2010-01-07 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 電子装置及び通信同期方法
US7843929B2 (en) * 2007-04-20 2010-11-30 Cray Inc. Flexible routing tables for a high-radix router
JP4652393B2 (ja) * 2007-12-04 2011-03-16 富士通株式会社 受信装置、受信方法
US8223650B2 (en) * 2008-04-02 2012-07-17 Intel Corporation Express virtual channels in a packet switched on-chip interconnection network
JP5272704B2 (ja) * 2008-12-17 2013-08-28 富士ゼロックス株式会社 情報伝送システム、情報送信装置及び情報受信装置
US8169850B2 (en) 2009-04-27 2012-05-01 Intel Corporation Forming multiprocessor systems using dual processors
US8199759B2 (en) * 2009-05-29 2012-06-12 Intel Corporation Method and apparatus for enabling ID based streams over PCI express
US8595428B2 (en) 2009-12-22 2013-11-26 Intel Corporation Memory controller functionalities to support data swizzling
JP5585141B2 (ja) * 2010-03-18 2014-09-10 富士通株式会社 データ転送システム、データ転送システムの受信装置及びデータ転送システムの制御方法
US8868955B2 (en) 2011-07-01 2014-10-21 Intel Corporation Enhanced interconnect link width modulation for power savings
WO2013086456A1 (en) * 2011-12-08 2013-06-13 Arteris SAS Differential formatting between normal and retry data transmission
JP6069897B2 (ja) 2012-06-05 2017-02-01 富士通株式会社 データ伝送装置、およびデータ伝送方法
US9053244B2 (en) 2012-06-28 2015-06-09 Intel Corporation Utilization-aware low-overhead link-width modulation for power reduction in interconnects
US9003246B2 (en) 2012-09-29 2015-04-07 Intel Corporation Functional memory array testing with a transaction-level test engine
US9183171B2 (en) 2012-09-29 2015-11-10 Intel Corporation Fast deskew when exiting low-power partial-width high speed link state
US8996934B2 (en) 2012-09-29 2015-03-31 Intel Corporation Transaction-level testing of memory I/O and memory device
US9280507B2 (en) 2012-10-22 2016-03-08 Intel Corporation High performance interconnect physical layer
US9479196B2 (en) 2012-10-22 2016-10-25 Intel Corporation High performance interconnect link layer
US9009540B2 (en) 2012-12-05 2015-04-14 Intel Corporation Memory subsystem command bus stress testing
US9009531B2 (en) 2012-12-05 2015-04-14 Intel Corporation Memory subsystem data bus stress testing
DE112014006490T5 (de) 2014-03-20 2016-12-08 Intel Corporation Verfahren, Vorrichtung und System zur Regelung von Leistung ungenutzter Hardware einer Linkschnittstelle
US9552253B2 (en) * 2014-09-24 2017-01-24 Intel Corporation Probabilistic flit error checking
US20160188519A1 (en) * 2014-12-27 2016-06-30 Intel Corporation Method, apparatus, system for embedded stream lanes in a high-performance interconnect
US10474612B1 (en) * 2018-10-30 2019-11-12 Dell Products L.P. Lane reversal detection and bifurcation system

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4825404A (en) 1985-11-27 1989-04-25 Tektronix, Inc. Interface system which generates configuration control signal and duplex control signal for automatically determining the configuration of removable modules
JPH03121626A (ja) 1989-10-05 1991-05-23 Oki Electric Ind Co Ltd 直並列相互変換回路及び2次元シフトレジスタ回路
US5367642A (en) * 1990-09-28 1994-11-22 Massachusetts Institute Of Technology System of express channels in an interconnection network that automatically bypasses local channel addressable nodes
US5446845A (en) 1993-09-20 1995-08-29 International Business Machines Corporation Steering logic to directly connect devices having different data word widths
US5689195A (en) * 1995-05-17 1997-11-18 Altera Corporation Programmable logic array integrated circuit devices
US5544154A (en) 1995-03-09 1996-08-06 Telefonaktiebolaget Lm Ericsson Method for determining the load induced by a routing verification test on a network
JPH0936823A (ja) 1995-07-14 1997-02-07 Nec Corp mBnB符号を用いた並列データ伝送装置
US6055618A (en) * 1995-10-31 2000-04-25 Cray Research, Inc. Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel
US5710885A (en) 1995-11-28 1998-01-20 Ncr Corporation Network management system with improved node discovery and monitoring
US6370145B1 (en) * 1997-08-22 2002-04-09 Avici Systems Internet switch router
US6285679B1 (en) * 1997-08-22 2001-09-04 Avici Systems, Inc. Methods and apparatus for event-driven routing
US6711160B2 (en) * 1998-03-31 2004-03-23 International Business Machines Corporation Packet network telephone interface system for POTS
US6230248B1 (en) * 1998-10-12 2001-05-08 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for pre-validating regions in a virtual addressing scheme
CA2268495C (en) 1998-12-16 2008-11-18 Loran Network Management Ltd. Method for determining computer network topologies
US6381663B1 (en) 1999-03-26 2002-04-30 Hewlett-Packard Company Mechanism for implementing bus locking with a mixed architecture
EP1226493B1 (en) * 1999-11-05 2006-05-03 Analog Devices, Inc. Bus architecture and shared bus arbitration method for a communication processor
US6526469B1 (en) 1999-11-12 2003-02-25 International Business Machines Corporation Bus architecture employing varying width uni-directional command bus
US6557069B1 (en) * 1999-11-12 2003-04-29 International Business Machines Corporation Processor-memory bus architecture for supporting multiple processors
US6532515B1 (en) * 2000-08-02 2003-03-11 Ati International Srl Method and apparatus for performing selective data reads from a memory
US6678807B2 (en) 2000-12-21 2004-01-13 Intel Corporation System and method for multiple store buffer forwarding in a system with a restrictive memory model
US6622215B2 (en) * 2000-12-29 2003-09-16 Intel Corporation Mechanism for handling conflicts in a multi-node computer architecture
US20030196076A1 (en) 2001-07-02 2003-10-16 Globespan Virata Incorporated Communications system using rings architecture
US7272528B2 (en) * 2001-10-01 2007-09-18 Tektronix, Inc. Reloadable word recognizer for logic analyzer
US6617877B1 (en) * 2002-03-01 2003-09-09 Xilinx, Inc. Variable data width operation in multi-gigabit transceivers on a programmable logic device
US6753698B2 (en) 2002-08-08 2004-06-22 International Business Machines Corporation Low power low voltage transistor—transistor logic I/O driver
US20040091027A1 (en) 2002-11-07 2004-05-13 Booth Bradley J. System, method and device for autonegotiation
US7505486B2 (en) * 2002-11-19 2009-03-17 Hewlett-Packard Development Company, L.P. Degradable network data path transmission scheme
US6954829B2 (en) 2002-12-19 2005-10-11 Intel Corporation Non-speculative distributed conflict resolution for a cache coherency protocol
US7047475B2 (en) * 2003-02-04 2006-05-16 Hewlett-Packard Development Company, L.P. CRC encoding scheme for conveying status information
US7320100B2 (en) * 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
US7162573B2 (en) 2003-06-25 2007-01-09 Intel Corporation Communication registers for processing elements
US20050027880A1 (en) * 2003-08-01 2005-02-03 Darel Emmot System and method for routing information in a nodal computer network
US7373541B1 (en) * 2004-03-11 2008-05-13 Adaptec, Inc. Alignment signal control apparatus and method for operating the same
US7957428B2 (en) 2004-05-21 2011-06-07 Intel Corporation Methods and apparatuses to effect a variable-width link

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7957428B2 (en) 2004-05-21 2011-06-07 Intel Corporation Methods and apparatuses to effect a variable-width link
US8204067B2 (en) 2004-05-21 2012-06-19 Intel Corporation Technique for lane virtualization
CN104769570A (zh) * 2012-10-22 2015-07-08 英特尔公司 控制多时隙链路层微片中的消息收发
CN107102960A (zh) * 2012-10-22 2017-08-29 英特尔公司 高性能互连物理层
CN104769570B (zh) * 2012-10-22 2018-05-15 英特尔公司 控制多时隙链路层微片中的消息收发
CN108363672A (zh) * 2017-01-27 2018-08-03 慧与发展有限责任合伙企业 PCIe接头
CN108363672B (zh) * 2017-01-27 2021-04-09 慧与发展有限责任合伙企业 电子设备和电子系统

Also Published As

Publication number Publication date
US8204067B2 (en) 2012-06-19
CN103034605B (zh) 2016-08-17
JP2005332359A (ja) 2005-12-02
RU2288542C2 (ru) 2006-11-27
ATE464607T1 (de) 2010-04-15
JP4035532B2 (ja) 2008-01-23
RU2004130346A (ru) 2006-03-20
TW200538944A (en) 2005-12-01
CN103034605A (zh) 2013-04-10
EP1598745A2 (en) 2005-11-23
TWI311252B (en) 2009-06-21
DE602004026555D1 (de) 2010-05-27
US7957428B2 (en) 2011-06-07
US20050259599A1 (en) 2005-11-24
EP1598745B1 (en) 2010-04-14
EP1598745A3 (en) 2006-11-02
US20050259696A1 (en) 2005-11-24

Similar Documents

Publication Publication Date Title
CN1700700A (zh) 实现可变宽度链路的方法及装置
US8103137B2 (en) Optical network for cluster computing
JP4843087B2 (ja) スイッチング帯域幅を向上させるスイッチングシステムおよび方法
CN104982018B (zh) 将高速多通道链路中的通道与互连之间的训练模式序列解相关
CN100594698C (zh) 用于高级交换的分组聚合协议
US20130156425A1 (en) Optical Network for Cluster Computing
CN1608256A (zh) 使用多个消息组的计算机系统中的代理之间的通信消息请求事务类型
CN104303166A (zh) 高性能互连链路层
CN1608255A (zh) 使用包括扩展类型/扩展长度字段的分组头部的计算机系统中的代理之间的通信事务类型
US8271850B2 (en) Fast low-density parity-check code encoder
CN1870435A (zh) 可编程逻辑器件串行接口中的多数据速率
CN1689285A (zh) 话音和数据通信系统中的冗余
CN1493036A (zh) 全局中断和障碍网络
CN101242284A (zh) 基于spi总线的通信方法和网络设备
EP1700224B1 (en) Receiver corporation
CN111404555A (zh) 一种循环移位网络控制方法、系统、存储介质、译码器
CN1324499C (zh) 处理不期望的完成分组和具有非成功完成状态的完成分组的方法
JP3759112B2 (ja) スケーラブル・インターフェースおよびその上でデータを伝送する方法
CN104683249A (zh) 用于多芯片互连系统的独立的可配置化互连模块实现方法
CN101309257A (zh) 一种基于内部集成电路总线的单板通信方法及系统
CN1573642A (zh) 在收到控制信号后可编程时钟管理部件的重新配置
CN1125406C (zh) 支持计算机机群并行计算的并行通信处理器
Salazar-García et al. PlasticNet: A low latency flexible network architecture for interconnected multi-FPGA systems
CN1492643A (zh) 一种实现在光网络中传输InfiniBand数据的设备及方法
CN1662894A (zh) 包括时隙总线和若干缓冲器的交换装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20051123