CN1700701A - 对基于链路的系统互连进行物理层初始化的方法和装置 - Google Patents

对基于链路的系统互连进行物理层初始化的方法和装置 Download PDF

Info

Publication number
CN1700701A
CN1700701A CNA2004100968019A CN200410096801A CN1700701A CN 1700701 A CN1700701 A CN 1700701A CN A2004100968019 A CNA2004100968019 A CN A2004100968019A CN 200410096801 A CN200410096801 A CN 200410096801A CN 1700701 A CN1700701 A CN 1700701A
Authority
CN
China
Prior art keywords
link
agencies
agency
physical layer
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2004100968019A
Other languages
English (en)
Inventor
纳韦恩·谢吕库里
桑贾伊·达布罗
达维斯·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
Publication of CN1700701A publication Critical patent/CN1700701A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • 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/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4278Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using an embedded synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Communication Control (AREA)
  • Stereophonic System (AREA)
  • Electric Cable Installation (AREA)
  • Information Transfer Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明的实施例提供了一种状态机,用于对点到点的基于链路的互连的物理层进行初始化。本发明的实施例使用互连的代理之间明确的握手来推进状态,并且为满足灵活性和有效性提供了多种可选择的特征。

Description

对基于链路的系统互连进行物理层初始化的方法和装置
技术领域
本发明的实施例一般地涉及采用基于链路的互连方案的处理系统的领域,更具体地说,本发明涉及用于初始化这种处理系统的物理层部分的状态机。
背景技术
对数据处理需求的增加已经导致在微处理系统上所执行的更大并且更复杂应用的开发。这种系统可以使用基于总线的互连方案来实现。基于总线的互连方案在性能、可扩展性和可靠性方面具有明显的缺陷。这种系统的性能会由于共享总线的长度而受到损害。也就是说,在处理器之间提供电连接的导线的长度取决于多处理器系统(MPS)中处理器的数目。更多数目的处理器和电连接的长度,以及总线上所有其它处理器的电负载降低了能够操作处理器的有效速度。由于当添加了更多的处理器时,共享总线充当了瓶颈,因此基于总线的系统不具有可扩展性。此外,所有处理器共享一根公有总线,这样的事实意味着如果总线由于任何原因失效,则所有处理器都不能操作,因此基于总线的设计危及到可靠性。
为了解决这些缺陷,已经开发出具有点到点的基于链路的互连方案的MPS。这种系统的每个节点包括用于在被连接的节点之间传输数据的代理(例如处理器、存储器控制器、I/O集线器组件、芯片集等等)和路由器。这种系统的代理通过使用互连层次结构(interconnection hierarchy)来传输数据,所述互连层次结构通常包括协议层、可选的路由层、链路层和物理层。
协议层是互连层次结构的最高层,该层设立互连协议,所述互连协议是确定代理间彼此将如何通信的规则的集合。例如,互连协议设置了协议事务分组(PTP)的格式,所述协议事务分组构成了在节点间所传输数据的单位。通常这样的分组包含了用于识别该分组的信息,并且指出该分组的目的(例如该分组是响应于请求而传输数据,还是请求来自另一节点的数据)。
路由层确定数据在节点间的传输路径。也就是说,因为每个节点不会连接到所有的其它节点,因此在两个特定节点之间,数据可以在多条路径上传输。路由层的功能是用来指定最优的路径。
链路层接收来自协议层的PTP,并且以连续的块(部分)的形式传输这些PTP。每个部分的尺寸由链路层确定,并且该尺寸代表了PTP中其传递必须被同步的部分,因此每个部分被称为流控制单位(片,flit)。一个PTP由整数个片组成,并且片的数目可变。链路层执行流控制,所述流控制可以包括错误检查和编码机制。通过链路层,每个节点可以明了被发送和被接收的数据,并且发送和接收与该数据相关的确认。
物理层由在每个节点处的实际的电子组件和信令机制所组成。在点到点的基于链路的互连方案中,每条链路上只会连接两个代理。这种受限的电负载使得操作速度提高。通过减小物理层接口(PLI)的宽度并且因而减小时钟的变化,可以进一步提高操作速度。因此,通常对PLI进行设计,以在若干时钟周期中的每个时钟周期上传输片的某个片断(fraction)。可以在单个时钟周期内穿过物理接口进行传递的片的片断被称为物理控制数位(物理数位,phit)。片代表数据的逻辑单位,而物理数位与在单位时间间隔中所传送的数据量相对应。
实现互连层次结构是为了在物理层获得更快的系统操作速度。链路层以片的形式传送数据(从协议层以PTP的形式接收到的),然后所述片在物理层被分解为物理数位,并且通过PLI被传输到接收代理的物理层。在接收代理的物理层,将接收到的物理数位合并为片,并且转发到接收代理的链路层,然后该链路层将片组合成PTP,并将所述PTP转发到接收代理的协议层。
物理层的电子组件通常包括一些训练逻辑,所述训练逻辑允许链路的每个节点的物理层使用所述链路进行操作。也就是说,训练逻辑允许物理层校准其内部的集成电路设备,使得这些集成电路设备与链路(即物理互连)兼容。该过程被称为物理层链路初始化。典型的链路初始化算法有很多缺点。例如,典型的初始化算法使用预定的计数值来推进状态,因此难以进行验证和调试。一些初始化算法使用被编码的链路,该链路要求数据在传送前被编码,并且在接收时进行解码。另外,典型的初始化算法对很多所希望的特征都不支持。例如,典型的初始化算法在链路已被置于低功率模式之后,需要对物理层链路进行完整的重新初始化。
发明内容
根据本发明的一个方面,提供了一种用于实现两个代理之间的物理层链路的初始化的方法,该方法包括:进入检测状态,并且保持在所述检测状态中,直到检测到物理代理,或者检测到测试探头;一旦检测到物理代理,则前进至轮询状态,所述轮询状态用于训练链路,以利用参考时钟进行操作,并且提供在所述两个代理之间的参数交换;以及前进至配置状态,所述配置状态用于协商链路宽度并设置片的边界。
根据本发明的另一方面,提供了一种系统,该系统包括:通过点到点的基于链路的互连方案而互连的多个代理;在所述代理中的每一个代理上所实现的状态机,所述状态机用于对连接着所述多个代理中的两个代理的链路的物理层进行初始化,所述状态机包括:用于检测在所述链路对面的另一个代理的物理层的检测状态,所述检测状态能够区分另一个代理的物理层和测试探头;用于训练链路,以利用参考时钟进行操作,并且提供在所述两个代理之间的参数交换的轮询状态;以及用于协商链路宽度和设置片的边界的配置状态。
根据本发明的又一方面,提供了一种制品,该制品包括:具有相关联的数据的机器可访问介质,其中所述数据当被访问时,使机器执行操作,以实现两个代理之间的物理层链路的初始化,所述操作包括:进入检测状态,并且在一段指定的检测时间内保持在所述检测状态中,所述检测状态能够区分另一个代理的所述物理层和测试探头;一旦检测到物理代理,则前进至轮询状态,所述轮询状态用于训练链路,以利用参考时钟进行操作,并且提供在所述两个代理之间的参数交换;以及前进至配置状态,所述配置状态用于协商链路宽度并设置片的边界。
根据本发明的再一方面,提供了一种方法,该方法包括:提供定义了状态机的状态机定义,所述状态机用于实现通过点到点的基于链路的互连方案而互连的两个代理之间的链路的物理层初始化,所述状态机定义包括用于检测所述两个代理中的一个代理的物理层或者测试探头的检测状态,以及用于在所述测试状态检测到测试探头时提供测试样式的依从状态;以及通过推进所述状态机的状态,初始化所述链路的物理层。
根据本发明的另一方面,提供了一种用于实现两个代理之间的物理层链路的初始化的方法,该方法包括:进入检测状态,并且保持在所述检测状态中,直到检测到物理代理的接收机上的时钟终止;将转发时钟传送到所述物理代理的接收机;前进至轮询状态,所述轮询状态用于训练链路,以利用参考时钟进行操作,并且提供在所述两个代理之间的参数交换;以及前进至配置状态,所述配置状态用于协商链路宽度并设置片的边界。
附图说明
通过参考以下描述和用于示出本发明的实施例的附图,可以最好地理解本发明。在附图中:
图1根据本发明的一个实施例,示出了用于实现物理层初始化的状态机;
图2根据本发明的一个实施例,示出了检测操作;
图3根据本发明的一个实施例,示出了轮询操作;
图4根据本发明的一个实施例,示出了配置操作;
图5根据本发明的一个实施例,示出了配置减宽(reduced-width)链路的过程;
图6根据本发明的一个实施例,示出了用于实现支持两种低功率模式的物理层初始化的状态机;
图7根据本发明的一个实施例,示出了两个代理之间的连接,其中已经倒转了通路(lane)连接;以及
图7A根据本发明的一个实施例,示出了分叉端口的两个半宽(half-width)端口到两个独立代理的连接,其中已经倒转了通路连接,所述独立代理中的每一个都具有一个半宽端口。
具体实施方式
在以下的描述中,将提出多个具体细节。但是,应该了解,没有这些具体细节,也可以实现本发明的实施例。在其它的示例中,为了不模糊对本发明的理解,没有详细地示出已知的电路、结构和技术。
遍及本说明书,所提及的“一个实施例”或“实施例”意味着连同该实施例所描述的特定的特征、结构或特性被包括在本发明的至少一个实施例中。这样,遍及本说明书,在各个位置所出现的短语“在一个实施例中”或“在实施例中”不一定都指代相同的实施例。此外,在一个或多个实施例中,可以以任何适合的方式将特定的特征、结构或特性组合起来。
此外,有创造性的方面不是在于所公开的单个实施例的所有方面。因此,特别地将所附权利要求直接并入到具体实施方式中,每条权利要求各自作为本发明的一个单独的实施例。
遍及本说明书,术语“节点”和“代理”一般可以互换使用,但是应该了解,一个特定的代理可以具有与其相关联的一个或多个端口。
物理层初始化
PLI逻辑的一部分用于实现链路训练和校准。在另一个实施例中,实现训练的逻辑驻留于链路层中。为了开始使用链路,训练逻辑允许对链路每一侧的物理层进行校准。也就是说,对内部的半导体设备进行校准,以与PLI的I/O链路兼容。初始的校准过程被称为物理层的初始化。该初始化以连续的阶段的形式来实现,其中每个后来的阶段的初始化都需要在之前的阶段对I/O电路系统进行训练。
图1根据本发明的一个实施例,示出了用于实现物理层初始化的状态机。图1中示出的状态机100代表了从禁止/启动操作105开始的初始化序列。在加电时刻,或者响应于任何物理层复位事件,进入禁止/启动操作105。对于一个实施例,当被禁止时,PLI的所有通路中断,并且处于低功率状态。
一旦启动,PLI就执行检测操作110,以检测被互连的代理。在检测操作110处,两个代理被同步,从而开始链路初始化。检测操作110确定在该链路的另一端是否存在另一个物理层代理(即另一个代理的物理层)。也就是说,链路另一侧的代理可能是断电的,在这种情况下就不需要初始化链路。检测操作110可以在指定的时段内持续进行,以允许每个被互连的代理都接收到功率。也就是说,由于给系统加电时,一个组件可能比另一个组件稍早一些(例如若干纳秒)接收到功率,因此可以延长检测操作的时间,从而适应这种差异。如果没有检测到代理,则不需要在这时实现初始化。
图2根据本发明的一个实施例,示出了检测操作。如图2所示,检测操作110具有三个子状态,即检测110-1、检测110-2和检测110-3。
根据本发明的一个实施例,物理层可以区分被互连的代理的检测和测试探头(例如50欧姆的测试探头)的检测。当链路初始化失败时,可以使用测试探头来进行调试操作。因此,本发明的一个实施例提供了在初始化过程的这个早期阶段,区分测试探头和另一个物理层代理的能力。在检测110-1中,端口检查在链路的另一端的主动的代理或被动的测试探头的存在。在检测110-1期间,如果检测到测试探头,则执行依从操作(compliance operation)115。在依从操作115期间,在已经检测到探头的所有通路上重复地发送测试样式(test pattern)。测试探头可以使用该测试样式测量链路上的信号品质。根据本发明的一个实施例,依从操作的持续时间是不定期的,只有在链路复位时,发射机(Tx)才会退出依从状态。在检测110-1处,如果本地端口检测到远端的接收机(Rx)时钟,状态则前进到检测110-2。
在检测110-2中,本地端口激活转发时钟,并且开始锁定到所接收的时钟。转发时钟是一种使用专用的时钟引脚(pin)连同物理互连上的数据一起传送的明确的时钟信号。如果在一段指定的时间结束时,还没有检测到所接收的时钟,本地端口则放弃初始化序列,并且复位到禁止/启动操作105。对于本发明的一个实施例,在复位之前对初始化重试门限计数器进行递增。
根据本发明的一个实施例,采用了噪声抑制技术,在该技术中,用差分对(differential pair)来代表实际的信号。例如,可以使用40根导线来代表20个信号,其中每个信号都由一对信号(差分对)的差来确定。在每个Tx通路上,在差分对的D+的半部分/D-的半部分上所驱动的1/0值被称为已知的DC样式。
在检测110-3中,如果在指定的时段内没有观察到已知的DC样式,本地端口则放弃初始化序列,并且复位到禁止/启动操作105。对于本发明的一个实施例,在复位之前对初始化重试门限计数器进行递增。检测110-3是用于确定下文将更详细讨论的极性倒置(polarity inversion)。
如果观察到已知的DC样式,则物理层已经检测到代理,并且训练序列继续,并且执行轮询操作120。也就是说,被互连的代理一旦检测到彼此,则开始交互式训练。在轮询操作120期间,对链路进行训练,使其利用高速时钟进行操作,所述高速时钟用于在两个互连的代理之间进行选择。下面将对轮询操作进行更详细的描述。
轮询
图3根据本发明的一个实施例,示出了轮询操作。如图3所示,轮询操作120包括三个子状态,即用于实现位锁定的轮询120-1、用于实现字节锁定和通路去时滞(lane deskew)以及识别故障通路的轮询120-2,以及用于实现参数交换的轮询120-3。
在数字定时中,使用参考时钟来读取在每条导线上传入的数据,也就是说,该时钟是所有导线所公有的。由于点到点的基于链路的互连方案可能存在高速的情况,因此在连接着链路的不同通路的IC内的物理迹线(trace)的长度间的变化和PCB上的变化,可能致使对于在链路的不同通路上所传输的数据,其时钟将有很大不同。需要利用校准来解决这些变化。位锁定训练Rx的I/O电路,以可靠地接收a/c信号。
在轮询120-1处,为每个数据通路制作参考时钟的拷贝。然后移动每个数据通路的时钟,使得其边缘与相应的数据通路的中心对齐。对于一个实施例,所有检测到远端数据Rx终止的数据Tx都驱动以0开始的时钟样式。然后,每个本地的数据Rx调整其选通(strobe)位置,以与传入的时钟样式对齐。对于一个实施例,位锁定子状态不产生握手,但是一旦超过指定时间,本地端口则前进至下一个轮询子状态。
这个精调过程(fine-tuning)解决了小于一个时钟周期的延迟,但是在延迟为一个或多个整个时钟周期的情况下并不有效。在轮询120-2处,在链路的每个通路上传送训练序列(同样的已知样式)。每个本地的Rx使用训练序列的头部来识别训练序列的边界。这样,可以使用该训练序列来解决全时钟周期延迟。轮询120-2的训练序列还可以用来识别故障通路。一旦至少一个本地的Rx已经接收到两个连续的训练序列,则所有有效的Rx都应该已经接收到一个训练序列。因此,这时,任何还没有接收到训练序列头部的本地的Rx通路都可以被禁止。训练序列还可以用来实现通路到通路的去时滞。对于本发明的一个实施例,去时滞缓冲器使用训练序列的头部来确定多条通路间的相对时滞(skew)。然后调整去时滞缓冲器的读指针,以抵消所确定的时滞。在完成了通路的去时滞之后,在输出的训练序列上发送确认。
在轮询120-3处,在链路的每一侧的代理的物理层使用第二训练序列来交换参数。如果Rx没有接收到训练序列,这就指示出问题。由于已经对I/O进行校准,以对每条通路分别起作用,因此如果在IC电路系统中,或在代理间的物理互连中存在任何故障,则接收端口都将意识到该故障。在轮询120-3的参数交换中,如果对链路进行配置,使其运行在环路(loopback)(一种用于实现高级测试方案(例如内置的自我测试)的测试模式)中,则识别环路的主方(master)与从方(slave)。如果链路被配置用于环路,则一旦链路初始化,代理双方就都进入环路模式(环路操作125)。本发明的一个实施例包括了一个具有环路模式位的控制寄存器,所述环路模式位可以由双方代理中任一方设置。设置环路模式位的端口成为环路主方,另一个端口称为环路从方。在两个端口都设置环路模式位的情况下,导致初始化失败。
图4根据本发明的一个实施例,示出了配置操作。如图4所示,配置操作130包括两个子状态,即用于实现故障通路信息交换的配置130-1和用于设置片边界的配置130-2。
如上所述,可能存在这样一种情形,在该情形中,链路的通路中的一些被禁止。这可能是由于故障链路,或者作为功率节省方案的一部分。在配置130-1处,为了即使效率降低也保持链路起作用,使用在轮询期间所获得的所有有关故障通路的信息将链路配置到可行的象限(viablequadrant)中。链路的全部通路(例如20条通路)被划分成象限,其中每个象限包括5条通路。然后,可以使用象限的任意组合来操作物理层。对于本发明的一个实施例,使用任意一个象限、两个象限的任意组合,或者所有象限来操作物理层。操作减宽链路时,需要相应的提高传送一个片的时钟周期的数目。例如,在一般的操作中,在具有20条通路的链路上,在四个时钟周期内传送一个80位的片(每个物理数位是20位)。对于具有5条通路(一个象限)的减宽链路,按比例传送更小的物理数位(5位),并且按比例需要数目更多的时钟周期(16个)来传送片。
图5根据本发明的一个实施例,示出了配置减宽链路的过程。如图5所示,过程500从操作505开始,在操作505中将链路的通路划分成象限,并且确定可行的象限。例如,可以将一条具有20条通路的链路划分成象限,每个象限包括5条通路。如果一个象限中的任何通路被禁止,则该象限是不可行的,并且将不会被使用。
在操作510处,Rx基于可行的象限确定其能力,并且创建其可以操作的象限组合的按优先次序排列的列表。例如,如果只有一个象限是可行的,则该列表包含该象限,如果两个象限是可行的,则该列表分别包含每个象限,也包含这两个象限的组合。如果三个象限是可行的,则该列表分别包含每个象限,也包含这三个象限中的两个象限的组合。然后Rx将该列表传送到Tx。此外,Rx出于故障通路之外的其它原因(例如,作为功率节省方案的一部分),也可能需要减宽链路。
在操作515处,Tx选择一个象限组合,并且建立减宽链路。这允许系统在降级的模式下继续起作用而不是被关闭,或者可以用来支持功率节省方案。
在过程500中创建了可行的象限组合的按优先次序排列的列表,这样过程500就允许到减宽(例如半宽或四分之一宽)链路的快速转换,从而实现更大的功率节省。也就是说,因为当在全宽(full-width)模式中进行操作时,功率节省配置是已知的,并且系统可以快速地转换到减宽链路,因此系统可以动态地调整链路宽度,从而节约功率。
再次参考图4,如果不能对链路宽度达成一致,则放弃初始化序列,并且复位到禁止/启动操作105。
在每条链路上串行地发送训练序列,并且Tx知道将发送的训练序列的数目。但是,Tx和Rx不必处于锁步(lock-step)方式中。也就是说,因为训练序列的数目不固定,所以Rx无法知道来自Tx的最后一个训练序列将在何时到达。这可能导致Rx将训练序列的一部分看作来自链路层的片的物理数位,或者导致从不正确的物理数位读取片。为了解决这种情形,一旦在链路宽度上达成一致,在操作130-2处,发送端口则发送带有冗余的确认字段的第三训练序列。通过在本地的和远端的端口之间对该训练序列进行同步,来设置片的边界。对于一个实施例,除了用于转换状态的确认字段之外,训练序列的冗余的确认字段是一个三位的字段。在最后一个训练序列中,将冗余的确认字段的三个位全部设置为1,以向接收机指出该训练序列是被传送的最后一个训练序列。没有这种冗余,则可能出现初始化失败。对于一个实施例,如果三个冗余的确认位中有两位被设置为1,接收机则认为该训练序列是最后一个训练序列,因此,在最后一个训练序列的传输中,可以容忍单个位的错误。对于其它的实施例,冗余的确认字段可以使用任意所希望数目的位,并且一个指定的数目会导致认为是最后一个训练序列。因此,一旦端口已经发送和接收到该第三训练序列,则链路初始化完成,并且此时在状态L0 135处,链路层控制端口。初始化期间,使用专门的训练序列,并且这些训练序列顺序地在每条通路上传送。在到达活动状态之后,则使用并行模型,在所述并行模型中,片(被分解为物理数位)在所有通路上并行地传送。
物理层的电子组件仍旧是活动的,但是在链路的一侧对片进行分解,并且在链路的另一侧重组这些片。在状态L0中,物理层不再参与训练,并且在链路层指导下进行操作,从而在链路上传递数据。
一般内容
本发明的实施例提供了用于基于链路的互连方案的物理层初始化的状态机。本发明的实施例不是使用预定的计数,而是使用明确的握手来推进状态。因此,由于只需要搜索一种状态头部,因此本发明的实施例与典型的现有技术方案相比需要更少的比较器。本发明的实施例对物理层的逻辑功能进行初始化,并且提供了I/O电校准,从而建立和操作可靠的链路。本发明的其它实施例提供了对具有不同的逻辑特征设置的物理层的初始化。
低功率模式
对于本发明的一个实施例,物理层可以进入低功率模式。图6根据本发明的一个实施例,示出了用于实现支持两种低功率模式的物理层初始化的状态机。如图6所示,状态机600代表了初始化序列,该初始化序列包括如上参考图1所描述的禁止/启动操作105、检测操作110、依从操作115、轮询操作120、环路操作125、配置操作130和活动状态L0。如图6所示,状态机600还包括两个低功率状态L0S 640和L1 645。
当系统将休眠一段时间时,使用低功率模式来节省功率。每个低功率模式都具有预定的重新激活时间(唤醒时间)。L0S 640具有用于较短休眠时期的较短唤醒时间(例如20纳秒)。因此在L0S 640中关断了电路系统的较少部分。L1具有用于较长休眠时期的较长唤醒时间(例如10微秒)。所使用的低功率模式依赖于系统所期望的休眠样式。
热插拔(hot plug)支持
如上所述,参考图1中的检测操作110,本发明的其它实施例提供了能够区分被互连的代理的检测和测试探头的检测的PLI。对于一个实施例,检测操作不定期地持续下去,直到检测到另一个代理或测试探头。这种持续的检测提供了热插拔支持,而不消耗附加的功率。例如,如果从链路的一侧移走一个代理,剩余的代理可以持续执行检测操作,直到检测到一个代理(或测试探头)。这样,无需关闭整个系统,就可以移走或替换掉故障组件。此外,与周期性地轮询链路的现有技术方案形成对照,系统可以立即检测到热插拔。
极性倒置
本发明的各种其它的实施例提供了极性倒置(其中在物理接口上交换差分对的D+的半部分与D-的半部分),以减小平台设计的复杂性(例如通过执行通路倒转)。在以上参考图2所描述的检测110-3状态中,由每个Rx检测极性倒置,并且一旦检测到,则由Rx自动地实现修正。对于本发明的一个实施例,在独立的通路的基础上检测极性倒置,与其它通路无关。对于这样的实施例,本地的Rx在每个接收到的差分对上寻找已知的DC样式或已知的DC样式的反码(l′s complement)。所有检测到已知的DC样式或其反码的Rx通路都前进至轮询过程;任何其它的通路都被禁止,并且直到实现了后续的链路初始化时才可使用。
通路倒转
理想地,在两个互连的代理中的每个代理上提供物理信号的引脚被连接到另一个代理上相应的引脚。也就是说,对于一对具有20个引脚的代理,在一个代理上的引脚0到19被连接到另一个代理上的引脚0到19。这样的连接对于一些拓扑可能导致过分的版面布局拥塞或过分的复杂性。本发明的一个实施例允许一个端口上的引脚相对于另一个端口上的引脚进行倒转。这样的通路倒转由下列两个端口A和B之间的引脚连接等式来定义。
Pin kcomponent A=>Pin(NL-k-1)component B
由Rx端口来自动地检测和补偿通路倒转。只要通过相应的引脚来连接(直接连接)代理,或者通过上述用于通路倒转的引脚连接等式来连接代理,在板面上就无需附加的措施。
对于本发明的一个实施例,直接连接的每条通路的通路标识符只有一位与被倒转的通路连接的通路标识符不同。也就是说,由于通路被约束在仅仅两个位置中的一个位置,因此其标识符可以除一位外都相同。在这样的实施例中,通过比较单个位就可以检测到通路倒转。
图7根据本发明的一个实施例,示出了倒转了通路连接的两个代理之间的连接。如图7所示,位于母板710上的代理705被连接到位于子卡720上的代理715。根据本发明的一个实施例,代理705的引脚0到NL-1分别连接到代理715的引脚NL-1到0。该引脚倒转在轮询期间被检测到,并被利用IC内的相应的倒转自动地补偿。
端口分叉
本发明的实施例支持端口分叉,所述端口分叉允许一个全宽的代理将其自身划分为两个代理,每个代理具有半宽的链路。例如,对于一些系统平台,在I/O上的流量不如在处理器之间的流量那样多。因此,对于具有两个处理器的系统,不是每个处理器具有其自身专用的I/O组件,而是可能两个处理器按照互连共用单个的I/O组件。在这种情况下,两个处理器使用20位宽的互连(20条通路)彼此通信,但是I/O代理分配其20条通路中的10条用于与一个处理器进行通信,并且分配另外10条通路用于与另一个处理器进行通信。对于本发明的一个实施例,端口分叉是在链路初始化之前通过引脚捆绑(pin strap)来实现的,并且配置保持不变。对于本发明的一个实施例,分叉的端口在引脚区域的中心具有两个时钟通路(每个半宽链路一个)。对于本发明的一个实施例,能够分叉的端口也可以作为单个全宽链路进行操作。对于这样的实施例,额外的时钟引脚可以不连接,也可以通过硬件连线连接到Vcc或Vss。本发明的实施例支持在分叉端口上的通路倒转。分叉端口的每一半都可以独立于另一半地支持通路倒转。图7A根据本发明的一个实施例,示出了分叉端口的两个半宽端口到两个独立代理的连接,每个所述的独立代理都具有一个半宽端口,在每个独立代理中都已经倒转了通路连接。如图7A所示,代理705A被分叉,并且在引脚区域的中心具有两个时钟通路clk1和clk2。包含一个半宽分叉端口的引脚以倒转的顺序连接到代理715A,而包含另一个半宽分叉端口的引脚以倒转的顺序连接到代理720A。对于其它的实施例,系统平台可以在一个半宽的分叉端口上执行通路倒转,并且在另一个半宽的分叉端口上执行直接连接。
本发明的实施例包括具有多种状态的状态机,和具有多种操作的方法。这些是以其最基本的形式描述的,但是不脱离本发明的基本范围,就可以分别向/从任意状态机或方法中添加/删除状态或操作。如上所述,本发明的状态和操作可以利用硬件组件来实现,或者也可以被具体化为机器可执行的指令。或者,它们还可以通过硬件和软件的组合来执行。本发明可以作为计算机程序产品来提供,所述计算机程序产品可以包括在其上存储了指令的机器可访问的介质,所述指令可以用于对计算机(或其它的电子设备)编程,以执行如上所述的根据本发明的过程。
机器可访问的介质包括以机器(例如计算机、网络设备、个人数字助理、制造工具、带有一组一个或多个处理器的设备等等)可访问的形式提供(即存储和/或传送)信息的任何机制。例如,机器可访问的介质包括可记录/不可记录的介质(例如只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质、光存储介质、闪存设备等等),以及电的、光的、声的或其它形式的传播信号(例如载波、红外信号、数字信号等等)等等。
虽然已经根据若干实施例对本发明进行了描述,但是本领域的技术人员将会认识到,本发明并不局限于所述实施例,而是在附带的权利要求书的精神和范围内进行修改和改变的情况下,也可以实现本发明。因此,本说明书应被看作示例性的,而不是限制性的。

Claims (30)

1.一种用于实现两个代理之间的物理层链路的初始化的方法,该方法包括:
进入检测状态,并且保持在所述检测状态中,直到检测到物理代理,或者检测到测试探头;
一旦检测到物理代理,则前进至轮询状态,所述轮询状态用于训练链路,以利用参考时钟进行操作,并且提供在所述两个代理之间的参数交换;以及
前进至配置状态,所述配置状态用于协商链路宽度并设置片的边界。
2.如权利要求1所述的方法,还包括:
一旦成功地协商了所述链路宽度,并且设置了所述片的边界,则前进至活动状态,所述活动状态使链路层能够传送和接收数据。
3.如权利要求1所述的方法,其中所述两个代理是从下述组中选择的组件,所述的组由处理器、存储器控制器、输入/输出集线器组件、芯片集,和这些组件的组合所组成。
4.如权利要求1所述的方法,其中一旦在所述检测状态中检测到测试探头,则在所有检测到测试探头的通路上传送测试样式。
5.如权利要求1所述的方法,其中训练所述链路,以利用所述参考时钟进行操作的步骤包括实现所述两个代理之间的位锁定、字节锁定和通路去时滞。
6.如权利要求5所述的方法,其中所述在两个代理之间交换的参数包括故障通路信息。
7.如权利要求6所述的方法,其中所述链路宽度的协商是基于所述故障通路信息。
8.如权利要求2所述的方法,其中一旦发生重启动事件,则在前进至所述活动状态之前放弃所述初始化。
9.如权利要求8所述的方法,其中所述重启动事件是从由下列事件所组成的组中选择的:超过指定的检测时间、没有观察到已知的DC检测样式、未能实现字节锁定、未能成功地协商链路宽度,以及未能设置片的边界。
10.如权利要求2所述的方法,还包括:
进入一种或多种低功率模式中的一种被选择的模式,至少一种低功率模式具有指定的相应的重新激活时间。
11.如权利要求10所述的方法,其中所述被选择的低功率模式依赖于所期望的休眠样式。
12.一种系统,包括:
通过点到点的基于链路的互连方案而互连的多个代理;
在所述代理中的每一个代理上所实现的状态机,所述状态机用于对连接着所述多个代理中的两个代理的链路的物理层进行初始化,所述状态机包括:
用于检测在所述链路对面的另一个代理的物理层的检测状态,所述检测状态能够区分另一个代理的物理层和测试探头;
用于训练链路,以利用参考时钟进行操作,并且提供在所述两个代理之间的参数交换的轮询状态;以及
用于协商链路宽度和设置片的边界的配置状态。
13.如权利要求12所述的系统,其中所述多个代理是从下述组中选择的组件,所述的组由处理器、存储器控制器、输入/输出集线器组件、芯片集,和这些组件的组合所组成。
14.如权利要求13所述的系统,其中训练所述链路,以利用所述参考时钟进行操作包括实现所述两个代理之间的位锁定、字节锁定和通路去时滞。
15.如权利要求14所述的系统,其中所述在两个代理之间交换的参数包括故障通路信息。
16.如权利要求12所述的系统,其中第一代理的一组引脚以倒转的顺序连接到第二代理的一组引脚。
17.如权利要求16所述的系统,其中所述连接顺序由单个位来指示。
18.一种制品,包括:
具有相关联的数据的机器可访问介质,其中所述数据当被访问时,使机器执行操作,以实现两个代理之间的物理层链路的初始化,所述操作包括:
进入检测状态,并且在一段指定的检测时间内保持在所述检测状态中,所述检测状态能够区分另一个代理的所述物理层和测试探头;
一旦检测到物理代理,则前进至轮询状态,所述轮询状态用于训练链路,以利用参考时钟进行操作,并且提供在所述两个代理之间的参数交换;以及
前进至配置状态,所述配置状态用于协商链路宽度并设置片的边界。
19.如权利要求18所述的制品,其中所述机器可访问介质还包括这样的数据,当访问该数据时,致使所述机器执行下列操作,包括:
一旦成功地协商了所述链路宽度,并且设置了所述片的边界,则前进至活动状态,所述活动状态使链路层能够传送和接收数据。
20.如权利要求18所述的制品,其中所述两个代理是从下述组中选择的组件,所述的组由处理器、存储器控制器、输入/输出集线器组件、芯片集,和这些组件的组合所组成。
21.如权利要求18所述的制品,其中训练所述链路,以利用所述参考时钟进行操作包括实现所述两个代理之间的位锁定、字节锁定和通路去时滞。
22.一种方法,包括:
提供定义了状态机的状态机定义,所述状态机用于实现通过点到点的基于链路的互连方案而互连的两个代理之间的链路的物理层初始化,所述状态机定义包括用于检测所述两个代理中的一个代理的物理层或者测试探头的检测状态,以及用于在所述测试状态检测到测试探头时提供测试样式的依从状态;以及
通过推进所述状态机的状态,初始化所述链路的物理层。
23.如权利要求22所述的方法,其中所述状态机定义还包括:
用于训练所述链路,以利用参考时钟进行操作,并且提供在所述两个代理之间的参数交换的轮询状态;
环路状态;以及
用于在所述两个代理之间协商链路宽度并同步片的边界的配置状态。
24.如权利要求23所述的方法,其中所述两个代理是从下述组中选择的组件,所述的组由处理器、存储器控制器、输入/输出集线器组件、芯片集,和这些组件的组合所组成。
25.如权利要求23所述的方法,其中训练所述链路,以利用所述参考时钟进行操作包括实现所述两个代理之间的位锁定、字节锁定和通路去时滞。
26.如权利要求25所述的方法,其中在所述两个代理之间所交换的所述参数包括故障通路信息。
27.如权利要求26所述的方法,其中用所述故障通路信息来创建可行的象限组合的按优先次序排列的列表。
28.一种用于实现两个代理之间的物理层链路的初始化的方法,该方法包括:
进入检测状态,并且保持在所述检测状态中,直到检测到物理代理的接收机上的时钟终止;
将转发时钟传送到所述物理代理的接收机;
前进至轮询状态,所述轮询状态用于训练链路,以利用参考时钟进行操作,并且提供在所述两个代理之间的参数交换;以及
前进至配置状态,所述配置状态用于协商链路宽度并设置片的边界。
29.如权利要求28所述的方法,还包括:
一旦成功地协商了所述链路宽度,并且设置了所述片的边界,则前进至活动状态,所述活动状态使链路层能够传送和接收数据。
30.如权利要求28所述的方法,其中通过使用一组冗余的确认位来实现前进至活动状态的步骤,所述一组冗余的确认位指示最后一个训练序列,所述最后一个训练序列由所述一组冗余的确认位中指定数量的被设置为指定值的位来指示。
CNA2004100968019A 2004-05-21 2004-12-01 对基于链路的系统互连进行物理层初始化的方法和装置 Pending CN1700701A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/850,810 2004-05-21
US10/850,810 US20060041696A1 (en) 2004-05-21 2004-05-21 Methods and apparatuses for the physical layer initialization of a link-based system interconnect

Publications (1)

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

Family

ID=34930812

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2004100968019A Pending CN1700701A (zh) 2004-05-21 2004-12-01 对基于链路的系统互连进行物理层初始化的方法和装置

Country Status (7)

Country Link
US (1) US20060041696A1 (zh)
EP (1) EP1598742B1 (zh)
KR (1) KR100699386B1 (zh)
CN (1) CN1700701A (zh)
AT (1) ATE384298T1 (zh)
DE (1) DE602004011322D1 (zh)
TW (1) TWI250420B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009059560A1 (fr) * 2007-11-05 2009-05-14 Huawei Technologies Co., Ltd. Procédé pour contrôler l'initialisation d'un dispositif de protection et dispositif pour le mettre en oeuvre
CN102318276A (zh) * 2008-12-15 2012-01-11 惠普开发有限公司 检测计算机系统中的不可靠的链路
CN104536929A (zh) * 2015-01-14 2015-04-22 浪潮(北京)电子信息产业有限公司 一种物理层初始化方法及客户端
CN107015924A (zh) * 2012-10-22 2017-08-04 英特尔公司 高性能互连物理层
CN109288637A (zh) * 2018-09-14 2019-02-01 山东建筑大学 一种康复机器人管控系统及其通信方法
CN109632842A (zh) * 2018-12-29 2019-04-16 明峰医疗系统股份有限公司 一种模块串行结构的ct探测器及其使用方法
US10795841B2 (en) 2012-10-22 2020-10-06 Intel Corporation High performance interconnect physical layer
TWI721036B (zh) * 2015-12-18 2021-03-11 美商英特爾公司 將高速通訊界面自我特徵化之技術

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050262184A1 (en) * 2004-05-21 2005-11-24 Naveen Cherukuri Method and apparatus for interactively training links in a lockstep fashion
US7711878B2 (en) * 2004-05-21 2010-05-04 Intel Corporation Method and apparatus for acknowledgement-based handshake mechanism for interactively training links
US7209907B2 (en) * 2004-06-25 2007-04-24 Intel Corporation Method and apparatus for periodically retraining a serial links interface
US7500131B2 (en) * 2004-09-07 2009-03-03 Intel Corporation Training pattern based de-skew mechanism and frame alignment
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
US20060146967A1 (en) * 2004-12-31 2006-07-06 Adarsh Panikkar Keep-out asynchronous clock alignment scheme
US7804890B2 (en) * 2005-06-23 2010-09-28 Intel Corporation Method and system for response determinism by synchronization
US8176340B2 (en) 2007-02-06 2012-05-08 Freescale Semiconductor, Inc. Method and system for initializing an interface between two circuits of a communication device while a processor of the first circuit is inactive and waking up the processor thereafter
JP2010204940A (ja) * 2009-03-03 2010-09-16 Fujitsu Ltd リンクアップ状態形成方法、情報処理装置およびリンクアップ状態形成プログラム
JP5585141B2 (ja) * 2010-03-18 2014-09-10 富士通株式会社 データ転送システム、データ転送システムの受信装置及びデータ転送システムの制御方法
US8327042B2 (en) * 2010-09-03 2012-12-04 Plx Technology, Inc. Automatic port accumulation
CN103918237B (zh) 2011-09-30 2018-03-06 英特尔公司 在高速通信链路的训练期间减小电源噪声的方法和系统
US8935578B2 (en) * 2012-09-29 2015-01-13 Intel Corporation Method and apparatus for optimizing power and latency on a link
US9355058B2 (en) 2012-10-22 2016-05-31 Intel Corporation High performance interconnect physical layer
JP6461959B2 (ja) 2013-12-26 2019-01-30 インテル コーポレイション マルチチップパッケージリンク
US11294848B1 (en) 2020-10-20 2022-04-05 Micron Technology, Inc. Initialization sequencing of chiplet I/O channels within a chiplet system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809331A (en) * 1996-04-01 1998-09-15 Apple Computer, Inc. System for retrieving configuration information from node configuration memory identified by key field used as search criterion during retrieval
US6925077B1 (en) * 2000-06-14 2005-08-02 Advanced Micro Devices, Inc. System and method for interfacing between a media access controller and a number of physical layer devices using time division multiplexing
US6690757B1 (en) * 2000-06-20 2004-02-10 Hewlett-Packard Development Company, L.P. High-speed interconnection adapter having automated lane de-skew
US6760838B2 (en) * 2001-01-31 2004-07-06 Advanced Micro Devices, Inc. System and method of initializing and determining a bootstrap processor [BSP] in a fabric of a distributed multiprocessor computing system
US6985502B2 (en) * 2001-11-19 2006-01-10 Hewlett-Packard Development Company, L.P. Time-division multiplexed link for use in a service area network
US7885282B2 (en) * 2003-07-24 2011-02-08 Seagate Technology Llc Dynamic control of physical layer quality on a serial bus
US20050024926A1 (en) * 2003-07-31 2005-02-03 Mitchell James A. Deskewing data in a buffer
US7444558B2 (en) * 2003-12-31 2008-10-28 Intel Corporation Programmable measurement mode for a serial point to point link
US20050270988A1 (en) * 2004-06-04 2005-12-08 Dehaemer Eric Mechanism of dynamic upstream port selection in a PCI express switch

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101431397B (zh) * 2007-11-05 2012-08-08 华为技术有限公司 一种控制保护设备初始化的方法和设备
WO2009059560A1 (fr) * 2007-11-05 2009-05-14 Huawei Technologies Co., Ltd. Procédé pour contrôler l'initialisation d'un dispositif de protection et dispositif pour le mettre en oeuvre
CN102318276A (zh) * 2008-12-15 2012-01-11 惠普开发有限公司 检测计算机系统中的不可靠的链路
CN102318276B (zh) * 2008-12-15 2014-07-02 惠普开发有限公司 检测计算机系统中的不可靠的链路
US10795841B2 (en) 2012-10-22 2020-10-06 Intel Corporation High performance interconnect physical layer
CN107015924A (zh) * 2012-10-22 2017-08-04 英特尔公司 高性能互连物理层
CN108228495A (zh) * 2012-10-22 2018-06-29 英特尔公司 高性能互连物理层
CN111737167B (zh) * 2012-10-22 2024-05-28 英特尔公司 用于高性能互连物理层的装置、方法和系统
CN108228495B (zh) * 2012-10-22 2021-05-25 英特尔公司 高性能互连物理层
CN107015924B (zh) * 2012-10-22 2020-10-30 英特尔公司 高性能互连物理层
CN111737167A (zh) * 2012-10-22 2020-10-02 英特尔公司 用于高性能互连物理层的装置、方法和系统
CN104536929A (zh) * 2015-01-14 2015-04-22 浪潮(北京)电子信息产业有限公司 一种物理层初始化方法及客户端
TWI721036B (zh) * 2015-12-18 2021-03-11 美商英特爾公司 將高速通訊界面自我特徵化之技術
CN109288637B (zh) * 2018-09-14 2020-09-08 山东建筑大学 一种康复机器人管控系统及其通信方法
CN109288637A (zh) * 2018-09-14 2019-02-01 山东建筑大学 一种康复机器人管控系统及其通信方法
CN109632842A (zh) * 2018-12-29 2019-04-16 明峰医疗系统股份有限公司 一种模块串行结构的ct探测器及其使用方法
CN109632842B (zh) * 2018-12-29 2023-09-12 明峰医疗系统股份有限公司 一种模块串行结构的ct探测器及其使用方法

Also Published As

Publication number Publication date
KR20050111521A (ko) 2005-11-25
KR100699386B1 (ko) 2007-03-26
EP1598742B1 (en) 2008-01-16
EP1598742A1 (en) 2005-11-23
TWI250420B (en) 2006-03-01
TW200538951A (en) 2005-12-01
ATE384298T1 (de) 2008-02-15
US20060041696A1 (en) 2006-02-23
DE602004011322D1 (de) 2008-03-06

Similar Documents

Publication Publication Date Title
CN1700701A (zh) 对基于链路的系统互连进行物理层初始化的方法和装置
US10467110B2 (en) Implementing cable failover in multiple cable PCI Express IO interconnections
US7793030B2 (en) Association of multiple PCI express links with a single PCI express port
US8495328B2 (en) Providing frame start indication in a memory system having indeterminate read data latency
US5838899A (en) Digital data processing methods and apparatus for fault isolation
US7952944B2 (en) System for providing on-die termination of a control signal bus
US9697167B2 (en) Implementing health check for optical cable attached PCIE enclosure
CN1799035A (zh) 具有位通道故障在线恢复的存储信道
US20220222198A1 (en) Sideband interface for die-to-die interconnects
US20220237138A1 (en) Link initialization training and bring up for die-to-die interconnect
US20220327083A1 (en) Standard interfaces for die to die (d2d) interconnect stacks
EP2294577A1 (en) Read data flow control in a cascade interconnect memory system
TW202240417A (zh) 快捷週邊組件互連(pcie)介面裝置及其操作方法
JP4755050B2 (ja) データ処理装置、モード管理装置、及びモード管理方法
US20220327276A1 (en) Lane repair and lane reversal implementation for die-to-die (d2d) interconnects
CN101296063B (zh) 主备倒换装置及方法、单板
US7111066B2 (en) Method of operating a storage device
EP1349069A2 (en) Multi-service platform module
CN116680224A (zh) 不对称PCIe总线设计方法、装置、总线装置及系统
CN117061458A (zh) 一种基于bit链路的雷达处理机拓扑灵活配置方法
JPH02245963A (ja) データ転送方式

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication