CN101198943B - 点到点链路协商方法和装置 - Google Patents
点到点链路协商方法和装置 Download PDFInfo
- Publication number
- CN101198943B CN101198943B CN200680021368XA CN200680021368A CN101198943B CN 101198943 B CN101198943 B CN 101198943B CN 200680021368X A CN200680021368X A CN 200680021368XA CN 200680021368 A CN200680021368 A CN 200680021368A CN 101198943 B CN101198943 B CN 101198943B
- Authority
- CN
- China
- Prior art keywords
- link
- point
- state
- equipment
- state machine
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 28
- 238000011084 recovery Methods 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 7
- 238000000926 separation method Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 230000015572 biosynthetic process Effects 0.000 claims description 2
- 238000012549 training Methods 0.000 description 24
- 230000008859 change Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 6
- 239000003999 initiator Substances 0.000 description 5
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000005194 fractionation Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
- G06F13/4278—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using an embedded synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Credit Cards Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
- Computer And Data Communications (AREA)
Abstract
以最低可用速度建立设备之间的点到点链路,并在到达操作状态之后协商一个更快的链路速度。
Description
技术领域
本发明一般涉及点到点链路,更具体地,涉及点到点链路中代理之间的协商。
背景技术
基于链路的***使用点到点链路在设备之间进行通信。通常,基于链路的***经过精细的训练过程来识别出链路两端上的设备的能力。随着设备运行的更快且具有更高的能力,链路训练过程变得更加复杂。
发明内容
本领域存在以下技术问题:对于在基于链路的***中改变链路速度而言,需要繁复的、包含有多个状态的训练过程。
为了解决上述技术问题,本申请在通过点到点通信链路连接的两个设备之间,对更快的链路速度进行动态协商而不丢弃所述链路,其中,在所述动态地协商期间所述两个设备不被置于复位状态。
根据一个方面,提供了一种用于链路协商的方法,包括:使用最低可用链路速度在两个设备之间配置点到点通信链路;以及在所述两个设备之间动态地协商更快的链路速度,而不丢弃所述点到点通信链路。在所述方法中,在所述动态地协商期间所述两个设备不被置于复位状态。
根据另一个方面,提供了一种用于链路协商的设备,包括:状态机,用于配置与第二设备的点到点链路。所述状态机包括:第一状态,用于通知所述设备的速度能力;第二状态,用于记录所述第二设备的速度能力;以及第三状态,用于将所述点到点链路配置为以最低可用速度进行操作。所述状态机还包括用于与所述第二设备动态地协商不同链路速度的至少一个状态,并且其中,在所述动态地协商期间所述状态机不被置于复位状态。
根据另一个方面,提供了一种集成电路,其具有多个互连以形成与至少一个其它集成电路的点到点链路,所述集成电路包括状态机,所述状态机具有用于配置各条点到点链路的至少一个状态以及用于从链路错误中进行恢复而不复位所述集成电路的至少一个状态,其中,所述用于从链路错误中进行恢复而不复位所述集成电路的至少一个状态包括链路速度协商能力,并且其中,所述从链路错误中进行恢复而不复位所述集成电路包括与所述至少一个其它集成电路动态地协商不同链路速度,并且其中,在所述动态地协商期间所述状态机不被置于复位状态。
根据另一个方面,提供了一种电子***,包括:处理器;电路互连,用于与能够支持点到点链路的电路进行通信;输入/输出控制器,其耦合到所述处理器和所述电路互连,所述输入/输出控制器包括状态机,以配置与耦合到所述电路互连的分离电路的点到点链路。所述状态机包括:第一状态,用于通知所述输入/输出控制器的速度能力;第二状态,用于记录所述分离电路的速度能力;以及第三状态,用于将所述点到点链路配置为以最低可用速度进行操作。所述状态机还包括用于与所述耦合到所述电路互连的分离电路动态地协商不同链路速度的至少一个状态,并且其中,在所述动态地协商期间所述状态机不被置于复位状态。
根据本发明,可以动态地改变链路速度而不用断开链路,否则,如果断开链路的话,则将涉及到软件干预的操作。
附图说明
图1示出了通过点到点链路所耦合的多个设备的视图;
图2和图3示出了描述点到点链路状态机的操作的状态机视图;
图4示出了根据本发明的各种实施例的流程图;以及
图5示出了根据本发明的各种实施例的***视图。
具体实施方式
在下面的详细描述中,参考附图以示例的方式示出了实现本发明的特定实施例。对这些实施例进行了足够详细的描述,以使本领域技术人员能够实现本发明。应当理解,虽然本发明的各种实施例不同,但是这些实施例并不必是彼此排除的。例如,在不脱离本发明的精神和范围的情况下,可以将本文中结合一个实施例所描述的特定特征、结构或特性实现在其它实施例中。此外,应当理解,在不脱离本发明的精神和范围的情况下,可以对所公开的每个实施例中的各个元件的位置或布置进行修改。因此,不应将下面的详细描述看作是限制性的,本发明的范围仅由经适当解释的所附权利要求以及赋予这些权利要求的全部等价范围所定义。在附图中,相似的参考标号在若干视图中指示相同或相似的功能。
图1示出了通过点到点链路所耦合的多个设备的视图。设备110(也称为设备A)被显示为在点到点链路上与设备120(设备B)、130(设备C)和140(设备D)进行通信。例如,设备A被显示为使用点到点链路124与设备B进行通信,设备A被显示为使用点到点链路134与设备C进行通信,以及设备A被显示为使用点到点链路144与设备D进行通信。
在一些实施例中,图1中所示出的设备和连接这些设备的点到点链路与例如外设部件互连(PCI)Express标准等互连标准相兼容地或部分兼容地进行操作,但是本发明并不局限于此。例如,本发明的各种实施例与Infiniband和CSI相兼容地或部分兼容地操作点到点链路。如本文所使用的,术语“PCI”指任意过去、现在或未来的PCI标准或其扩展,包括但不局限于PCI Express。
设备110、120、130和140可以是能够在点到点链路上作为代理的任意类型的设备。例如,这些设备可以是集成电路、包括集成电路的电路卡或者可以包括多个电路卡的模块。此外,设备110、120、130或140中的每一个可以包括分级设备。
各个设备之间的点到点链路可以具有任意宽度。例如,链路124可被显示为具有八“通道(lane)”宽度,链路134和144分别被显示为具有四通道宽度。每个通道包括发送/接收对,并且信号可以是单端的或者差分的。
设备可以具有不同的链路速度能力。例如,较老设备或前一代设备可能具有比较新设备或更新一代设备更低的链路速度能力。图1中的设备被显示为具有一个或两个链路速度能力,表示为速度X和速度Y,其中X低于Y。例如,设备A、B和D具有X和Y两个链路速度能力,而设备C只具有链路速度能力X。
在本发明的各个实施例中,在设备到达以最低可用速度进行操作的操作状态之后,在这些设备之间协商点到点链路的速度。例如,当开始操作时,设备A、B、C和D可以互相通知(advertise)它们的链路速度能力,然后形成以最低可用速度进行操作的链路。在该实例中,链路124、134和144全部到达以速度X进行操作的操作状态。在到达采用速度X的操作状态之后,这些设备可以互相协商以便以不同的速度进行操作。除了协商点到点链路的速度之外,还可以在到达操作状态之后协商链路的宽度。例如,通过协商,链路124的宽度可以从八通道降低到四通道或者更少。
设备110、120、130和140中的每一个包括提供上述链路协商能力的状态机(SM)。例如,设备110包括状态机112,设备120包括状态机122,设备130包括状态机132,以及设备140包括状态机142。图1中所示出的各个状态机可以与其它设备中的状态机进行协商,并且还可以对位于设备内的电路提供配置。例如,状态机112可以与设备140中的状态机142进行协商,并且还可以对在链路144上进行通信的设备110内的电路进行配置。
在一些实施例中,每个设备可以包括多个状态机。例如,状态机112可以包括三个独立的状态机,其分别用于与状态机122、132和142中的各状态机进行协商。此外,在一些实施例中,状态机操作可能受到硬件或软件的影响。例如,设备110中的硬件可以指示状态机112协商较低的链路速度以便提高可靠性。此外,例如,设备110所执行的软件或在其它地方所执行的软件可以指示状态机112协商较低的链路速度或降低链路宽度以便节省功率。
图2示出了描述点到点链路状态机的操作的状态机视图。在本发明的一些实施例中,状态机112、122、132和142(图1)中的一个或多个可以根据状态机视图200所示进行操作。
状态210是复位状态。可以在功率中断或者发生软件或硬件复位之后到达复位状态。当离开复位状态时,状态机210具有很少的或不具有关于其它设备是否耦合到链路互连上的信息。例如,当离开复位状态时,状态机200不知道该互连上是否存在设备(或存在多少设备)、这些设备的速度能力如何或者它们的链路宽度如何。
当离开复位状态时,状态机200转移到状态220,在状态220中,点到点链路被配置在最低可能链路速度。例如,再次参考图1,状态机112将设备A配置为在点到点链路144上以速度X进行通信,即使设备A和D都能够以速度Y进行通信。在状态220期间,状态机200通知本地设备的速度能力,并记录耦合到链路互连上的其它设备的速度能力。在状态220期间,状态机200还可以检测其它设备的存在、确定链路宽度、对各条链路分配标识符以及将对多条链路的控制切换到其它状态机。
在将点到点链路配置为以最低可用速度进行操作之后,状态机200转移到操作状态230。操作状态230是可以在点到点链路上发生常规通信的状态。例如,操作状态中的常规通信可以包括传送图形数据、存储器数据或任意其它数据。
操作状态230可以从硬件或软件接收控制信息。例如,如232所示,操作状态230可能受到硬件控制的影响,以及如234所示,操作状态230可能受到软件控制的影响。在一些实施例中,可以通过寄存器来影响软件控制。例如,状态机200可以对软件可访问的寄存器中所保持的数字信息做出响应。状态机200可以包括允许对链路速度、链路宽度以及点到点链路的其它属性进行软件控制的寄存器组。
在多种情况下,硬件控制可能影响状态机200的操作。例如,在第一次到达操作状态230之后,状态机220可以在硬件控制之下立即协商以较高链路速度进行操作。在状态机200位于具有较高链路速度能力的设备中并且正在与也具有较高链路速度能力的设备进行通信时可能出现上述情况。此外,例如,如果链路遇到错误,则状态机200可在硬件控制之下协商较低链路速度以便尝试提高链路性能。
在硬件控制或软件控制之下,状态机200可以在状态240中协商链路速度的改变。从操作状态230进入状态240并且返回到操作状态230。通过以这种方式协商链路速度的改变,状态机200不经过复位状态210或配置状态220来修改链路速度。在修改链路速度时,可以协商链路速度的改变而不丢弃链路。
在状态240中,可以增大或减小链路速度。例如,可以增大链路速度以提高性能,或者可以减小链路速度以减少功耗。在一些实施例中,也可以在状态240中协商增大或减小链路宽度。
图3示出了描述链路训练和状况状态机(LTSSM)的操作的状态机视图。针对PCI Express***的情况描述图3的LTSSM,但是本发明并不局限于此。如上所述,本发明的各个实施例可以在任意包括点到点链路的基于链路的***中使用。
状态机300包括检测状态310、轮询状态、配置状态、L0状态340以及恢复状态。轮询状态包括Polling.Active(轮询.激活)子状态322和Polling.Config(轮询.配置)子状态324;配置状态包括Config.Linkwid(配置.链路宽度)子状态332、Config.Lanenum(配置.通道号)子状态334和Config.Complete(配置.完成)子状态336;以及恢复状态包括Recovery.Speed(恢复.速度)子状态352、Recovery.Rcvrlock(恢复.恢复锁定)子状态354、Recovery.Rcvrcfg(恢复.恢复配置)子状态356和Recovery.Idle(恢复.空闲)子状态358。可能的状态和子状态并不局限于所显示的那些状态和子状态。例如,检测状态310可以包括多个子状态,并且被显示为具有多个子状态的状态可被缩减为单个状态。
如基于PCI-Express的***等基于链路的***在使链路到达操作状态之前会经过一个精细的训练过程,该过程包括多个状态。例如,链路训练算法在检测状态期间检测通道上的接收机,并且尝试在进入L0操作状态之前通过以下操作来达到符号锁定,所述操作包括:在轮询状态期间交换训练序列,在配置状态期间建立链路宽度、对启用通道进行通道号分配以及接着进行通道到通道纠偏(lane-to-lanedeskew)。在L0期间,交换事务。可以通过恢复状态来处理不能通过链路级重试而被处理的链路级错误(例如符号锁定丢失),其中恢复状态保持链路并通过在进入L0之前重新建立符号锁定、确定哪些通道被启用以及在启用通道上执行通道到通道纠偏来尝试恢复。
基于链路的链路训练协议中的主要问题之一是缺乏任何带内机制以传送链路的状态或配置。由于基于链路的***的主要优点之一是以低管脚数(pincount)来传递高带宽,所以这些***为链路训练协议带来大量的复杂性,以确定所连接组件中的链路状态及其配置和能力。例如,上游设备可以具有16个PCI-E通道,其可被配置为一个×16链路或者两个×8链路或者四个×4链路或者一个×8链路和两个×4链路的组合。上游设备经过链路训练过程,以在分配通道号和使用各条链路之前确定其连接到多少个下游设备、这些设备的宽度、连接的类型(通道反向、极性反转)以及两个方向中各个通道的状况。考虑到链路训练状态机必须应对可能处于链路训练过程的不同状态的各个下游设备并且链路内的各条通道可能未被同步地给定通道到通道纠偏以及应从中进行恢复的长系列暂时错误的概率,上述过程可能会是一个复杂的过程。
如图3所示,LTSSM能够进行拆分,并且允许一个或多个次级LTSSM接管将形成独立链路的通道子集。图3示出了链路训练状态机能够进行拆分的两个位置。一个位置位于从检测状态离开期间。如果检测到多个设备,则一些设备可能脱离复位状态,而其它设备可能仍处于复位状态。由此造成一些通道检测到接收机而其它通道未检测到接收机。检测到接收机的那些通道将在一个(或更多个)LTSSM下向前继续操作,而未检测到接收机的那些通道仍将处于一个(或多个)独立的LTSSM的控制之下。下一次拆分发生在建立对独立链路的标识的配置状态期间。
在轮询状态期间,以Gen 1速度发送训练序列(TS)排序集合,并且通知本地设备的速度能力。在一些实施例中,在轮询和L0之间发送的所有TS排序集合包括速度能力(或“数据速率标识符”)。
在如图3所示的本发明的各个实施例中,链路总是以Gen 1(最低可用)速度到达L0状态。在配置状态中及在Gen 1速度的链路训练期间,以及在已经建立链路宽度并且已经分配通道号之后,每个设备通过其在建立通道到通道纠偏期间所接收到的数据速率标识符,来记录其所连接到的设备的速度能力。应当注意,由于在已经分配了通道号之后记录数据速率标识符,所以LTSSM只处理一个连接的设备,这是因为在通道号分配后出现配置状态期间进行了LTSSM拆分。因此,改变速度并不涉及拆分LTSSM的复杂性。一旦链路处于L0,则其就能够通过从L0到恢复状态再回到L0的转移路径而经由软件或硬件发起速度改变。
Recovery.Speed子状态是一个执行到新的链路速度的改变的状态。可以通过将期望的速度写入到配置寄存器来调用用于改变速度的软件机制。可以由较高层协议来调用硬件机制,以便例如初始地改变到较高速度或对例如可能希望改变速度的错误或功率管理等事件做出响应。
在本发明的各个实施例中,可选地,在已完成初始的流控制操作之后,允许仅在L0状态中发起链路中的速度改变。当发起方决定改变速度时,其进入恢复状态(Recovery.RcvrLock子状态)并发送在恢复状态期间所发送的训练序列。如果想要改变速度,则发起方在训练序列中设置一个比特,以指示其希望改变速度并且仅通知达到并包括其操作所要基于的速度的那些速度。在从发起方接收到设置了速度改变指示符的最小数目的所述训练序列时,接收方在进入Recovery.Speed之前也在最小数目的训练序列中设置相同的速度改变比特。发起方接收速度改变指示并进入Recovery.Speed。双方都将选择已被通知的最大速度,该最大速度是在双方所交换的设置了速度改变比特的训练序列中通知的。双方将在Recovery.Speed中处于电空闲(electrical idle),它们在以新速度重新进入Recovery.RcvrLock之前改变到新速度。
如果任一方不能以新速度进行操作,则不能以新速度接收的一方将退出到Recovery.Speed并且将另一方从Recovery.RcvrCfg拉入到Recovery.Speed。在第二次进入Recovery.Speed期间,速度被还原到L0速度,并且常规恢复操作将保证链路返回到原始速度。这可能在接收机即使等待到超时时间段之后也不能在Recovery.RcvrLock期间实现符号锁定时发生。然后,不能实现符号锁定的一方上的LTSSM将进入Recovery.Speed,在Recovery.Speed中其将恢复到原速度。另一方可以处于Recovery.RcvrCfg,但是在其以与L0速度不同的速度操作时观测到电空闲之后,该另一方将会返回到Recovery.Speed。
由于链路首次以Gen 1速度到达L0,所以速度并不会使已经很复杂的链路训练协议变得更加复杂。此外,通过总是接近最低可用速度,图3的LTSSM提供了与现有的较早一代设备的互操作性,这是因为不会以比较早一代设备能够处理的速度更高的速度来驱动到该较早一代设备的通道。此外,可以通过在L0之前协商链路速度来将链路训练时间保持得较短。
本发明的各个实施例允许链路速度在常规操作期间发生改变。可以选择根据链路的运行时带宽要求来动态地改变链路速度,以实现更好的功率管理。例如,如果链路以Gen 2速度进行操作,则可以在带宽要求暂时较低的情况下选择将链路降低到Gen 1速度以节省功率。可以动态地完成该处理而不断开链路,其中,如果断开链路则将涉及软件干预以便配置该链路下的整个分级结构。
可以将链路速度的改变用于实现更好的可靠性和可用性。例如,如果可以应用的话,当链路在以特定频率进行操作时变为临界的,则可以改变链路速度并且可以在决定再次改变频率之前监测错误率。因此,由于链路在速度改变过程期间得以保持,所以链路速度是一个可以被修改以达到期望的可靠性和可用性的变量。
图4示出了根据本发明的各个实施例的流程图。在一些实施例中,可以由与点到点链路进行通信的设备中的状态机来使用方法400。在一些实施例中,方法400或其一部分由集成电路、处理器或电子***来执行,其实施例在各个视图中示出。方法400并不局限于特定类型的执行该方法的装置、软件单元或***。可以用所显示的顺序或者不同的顺序来执行方法400中的各个操作。此外,在一些实施例中,从方法400中省略了图4中列出的一些操作。
方法400被显示为从方框410开始,在方框410,设备通知所支持的链路速度。在PCI Express***的情况下,链路速度可以对应于代编号(例如,Gen 1、Gen 2等)。在其它情况下,链路速度可以对应于数字表示的数据速率。可以在链路训练序列期间将所支持的链路速度通知给其它设备。例如,可以在如状态220(图2)或状态332、334和336(图3)的配置状态期间、在如状态322或324(图3)的轮询状态期间或者在其它状态期间通知链路速度。
在420,记录其它设备所支持的链路速度。可以在例如状态220(图2)或状态332、334和336(图3)的配置状态中记录链路速度。在一些实施例中,在记录链路速度之前,已经在许多TS排序集合中接收到了所述链路速度。此外,在一些实施例中,直到在最小数目的TS排序集合中接收到链路速度之后才对其进行记录。在430,使用最低可用速度建立点到点链路。在PCI Express***的情况下,总是首先以Gen 1速度建立点到点链路。在其它***的情况下,总是以与两个设备都兼容的最低速度建立点到点链路。
在440,链路进入操作状态。在PCI Express***的情况下,操作状态是L0。在其它***的情况下,操作状态可以是允许跨链路执行事务的任意状态。在一些实施例中,在到达操作状态之前,由于状态机的拆分,多个链路可能涉及多个状态机。每个状态机首先以最低可用速度使其各自链路进入操作状态。
在450,动态地协商一个较高的速度,而不丢弃链路。在一些实施例中,这对应于PCI兼容设备(“发起方”)中的状态机,其中该PCI兼容设备进入通常与从链路错误中进行恢复相关联的恢复状态。例如,如图3所示,可以进入恢复状态,以动态地协商较高的链路速度,而不丢弃链路。
在一些实施例中,在没有软件干预的情况下执行方框450。例如,如果在链路训练序列期间,两个设备都通知了所支持的比最低可能速度高的链路速度,则在以最低可用速度进入操作状态之后,两个设备都可以自动进入恢复状态,以协商较高的速度。在其它实施例中,可以作为软件干预的结果来执行方框450。例如,软件可以向配置寄存器中进行写入,以使得状态机尝试协商更高的链路速度。
在460,可以在硬件或软件的控制之下,动态地协商增大或减小链路速度或链路宽度。可以协商减小链路速度或宽度或者这两者,以降低功率或增加可靠性,可以协商增大链路速度或宽度或者这两者,以增加通信带宽。
图5示出了根据本发明的各个实施例的***视图。电子***500包括处理器510、输入/输出(I/O)控制器530、电路互连520以及以太网接口540。在一些实施例中,电子***500可以是具有点到点链路的计算机。在一些实施例中,电子***500可以表示包括与点到点链路进行通信的设备并且还包括以太网接口的***。多个实例包括无线网络中的接入点或移动台、计算机或者具有以太网接口的数码相机。
处理器510表示任意类型的处理器,包括但不局限于微处理器、数字信号处理器、微控制器等。在一些实施例中,处理器510使用点到点链路512与I/O控制器530进行通信。例如,在一些实施例中,链路512可以是具有如上所述的动态速度协商能力的链路。
以太网接口540可以提供电子***500和其它***之间的通信。例如,在一些实施例中,电子***500可以是利用以太网接口540与有线网络进行通信或者与其它接入点进行通信的接入点。本发明的一些实施例不包括以太网接口540。例如,在一些实施例中,电子***500可以是网络接口卡(NIC),其使用总线或其它类型的端口与计算机或网络进行通信。
I/O控制器530使用点到点链路提供电子***500中的各个其它模块之间的通信。例如,在PCI Express的情况下,I/O控制器530可以是根联合体(RC:root complex)。电路互连520表示用于使用点到点链路将分离的电路耦合到I/O控制器530上的任意类型的互连。在一些实施例中,电路互连520包括电路板上的迹线,而在其它实施例中,电路互连520包括电缆或导线。在另一些实施例中,电路互连520包括电路板上的集成电路印迹或者能够容纳电路卡的一个或多个插槽。电路互连520可以容许任意类型的能够使用点到点链路与I/O控制器530进行通信的电路。例如,耦合到电路互连520的电路可以作为PCI Express兼容***中的端点。示例性的端点包括但不局限于PCI Express附接图形控制器或PCI Express USB主控制器。
尽管已经结合特定实施例对本发明进行了描述,但是应当理解,在不脱离本发明的精神和范围的情况下,可以实现本领域技术人员易于理解的修改和变形。这些修改和变形被认为是在本发明和所附权利要求的范围之内。
Claims (19)
1.一种用于链路协商的方法,包括:
使用最低可用链路速度在两个设备之间配置点到点通信链路;以及
在所述两个设备之间动态地协商更快的链路速度,而不丢弃所述点到点通信链路,
其中,在所述动态地协商期间所述两个设备不被置于复位状态。
2.如权利要求1所述的方法,其中,动态地协商更快的链路速度包括进入与错误恢复相关的状态。
3.如权利要求2所述的方法,其中,进入与错误恢复相关的状态由软件发起。
4.如权利要求2所述的方法,其中,进入与错误恢复相关的状态由硬件发起。
5.如权利要求1所述的方法,还包括:动态地协商不同的链路宽度。
6.如权利要求1所述的方法,还包括:动态地协商更低的链路速度以降低功耗。
7.一种用于链路协商的设备,包括:
状态机,用于配置与第二设备的点到点链路,其中,所述状态机包括:第一状态,用于通知所述设备的速度能力;第二状态,用于记录所述第二设备的速度能力;以及第三状态,用于将所述点到点链路配置为以最低可用速度进行操作,
其中,所述状态机还包括用于与所述第二设备动态地协商不同链路速度的至少一个状态,并且其中,在所述动态地协商期间所述状态机不被置于复位状态。
8.如权利要求7所述的设备,其中,所述点到点链路至少部分兼容于外设部件互连标准。
9.如权利要求7所述的设备,其中,所述状态机包括至少一个状态,用于与所述第二设备动态地协商不同的链路速度。
10.如权利要求7所述的设备,其中,所述状态机包括至少一个状态,其能够响应于当前链路性能而动态地协商增大或减小链路速度。
11.如权利要求7所述的设备,其中,所述状态机包括至少一个状态,其能够响应于软件控制下的命令而动态地协商增大或减小链路速度。
12.如权利要求7所述的设备,其中,所述状态机包括至少一个状态,其能够响应于软件控制下的命令而动态地协商增大或减小链路宽度。
13.一种集成电路,其具有多个互连以形成与至少一个其它集成电路的点到点链路,所述集成电路包括状态机,所述状态机具有用于配置各条点到点链路的至少一个状态以及用于从链路错误中进行恢复而不复位所述集成电路的至少一个状态,其中,所述用于从链路错误中进行恢复而不复位所述集成电路的至少一个状态包括链路速度协商能力,并且其中,所述从链路错误中进行恢复而不复位所述集成电路包括与所述至少一个其它集成电路动态地协商不同链路速度,并且其中,在所述动态地协商期间所述状态机不被置于复位状态。
14.如权利要求13所述的集成电路,其中,能够在软件控制下调用所述链路速度协商能力。
15.如权利要求13所述的集成电路,其中,所述用于从链路错误中进行恢复而不复位所述集成电路的至少一个状态还包括链路宽度协商能力,以用于修改所述多个互连中用于与其它集成电路进行通信的互连的数量。
16.如权利要求15所述的集成电路,其中,能够在软件控制下调用所述链路宽度协商能力。
17.如权利要求13所述的集成电路,其中,所述集成电路至少部分兼容于外设部件互连规范。
18.一种电子***,包括:
处理器;
电路互连,用于与能够支持点到点链路的电路进行通信;
输入/输出控制器,其耦合到所述处理器和所述电路互连,所述输入/输出控制器包括状态机,以配置与耦合到所述电路互连的分离电路的点到点链路,其中,所述状态机包括:第一状态,用于通知所述输入/输出控制器的速度能力;第二状态,用于记录所述分离电路的速度能力;以及第三状态,用于将所述点到点链路配置为以最低可用速度进行操作,
其中,所述状态机还包括用于与所述耦合到所述电路互连的分离电路动态地协商不同链路速度的至少一个状态,并且其中,在所述动态地协商期间所述状态机不被置于复位状态。
19.如权利要求18所述的电子***,其中,所述点到点链路至少部分兼容于外设部件互连标准。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/169,527 US7757020B2 (en) | 2005-06-29 | 2005-06-29 | Point-to-point link negotiation method and apparatus |
US11/169,527 | 2005-06-29 | ||
PCT/US2006/025951 WO2007002942A1 (en) | 2005-06-29 | 2006-06-29 | Point-to-point link negotiation method and apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101198943A CN101198943A (zh) | 2008-06-11 |
CN101198943B true CN101198943B (zh) | 2011-11-30 |
Family
ID=37103050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680021368XA Active CN101198943B (zh) | 2005-06-29 | 2006-06-29 | 点到点链路协商方法和装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7757020B2 (zh) |
JP (1) | JP4768017B2 (zh) |
KR (1) | KR100968641B1 (zh) |
CN (1) | CN101198943B (zh) |
DE (1) | DE112006001643B4 (zh) |
GB (1) | GB2439891B (zh) |
TW (1) | TWI343007B (zh) |
WO (1) | WO2007002942A1 (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6358580A (ja) * | 1986-08-29 | 1988-03-14 | Canon Inc | 画像編集装置 |
US7536490B2 (en) * | 2006-07-20 | 2009-05-19 | Via Technologies, Inc. | Method for link bandwidth management |
US20080248835A1 (en) * | 2007-04-04 | 2008-10-09 | Sony Ericsson Mobile Communications Ab | Accessory communication method and system for mobile services |
US8199770B2 (en) | 2007-12-17 | 2012-06-12 | Broadcom Corporation | Method and system for asymmetric operation in a network node in an energy efficient ethernet network |
US8151145B2 (en) * | 2008-04-03 | 2012-04-03 | Oracle America, Inc. | Flow control timeout mechanism to detect PCI-express forward progress blockage |
JP5272704B2 (ja) * | 2008-12-17 | 2013-08-28 | 富士ゼロックス株式会社 | 情報伝送システム、情報送信装置及び情報受信装置 |
US8301813B2 (en) * | 2009-12-24 | 2012-10-30 | Ati Technologies Ulc | Method and device for disabling a higher version of a computer bus and interconnection protocol for interoperability with a device compliant to a lower version of the computer bus and interconnection protocol |
US8477831B2 (en) * | 2010-02-17 | 2013-07-02 | Altera Corporation | Multi-protocol multiple-data-rate auto-speed negotiation architecture for a device |
JP5402726B2 (ja) * | 2010-03-03 | 2014-01-29 | 株式会社リコー | データ通信装置、情報処理装置、データ通信方法、データ通信プログラム及び記録媒体 |
JP2011186894A (ja) * | 2010-03-10 | 2011-09-22 | Ricoh Co Ltd | データ転送装置、画像処理装置、データ転送方法、データ転送プログラム及び記録媒体 |
JP4881454B2 (ja) * | 2010-03-17 | 2012-02-22 | 株式会社東芝 | 電子機器 |
KR101338702B1 (ko) * | 2010-04-26 | 2013-12-06 | 한국전자통신연구원 | 다중 레인 기반의 고속 이더넷에서 동적 레인 정보를 송수신하는 방법 및 그 장치 |
TWI439869B (zh) * | 2010-08-18 | 2014-06-01 | Pegatron Corp | 調整連結速度的方法及其電腦系統 |
US8886856B1 (en) * | 2011-06-21 | 2014-11-11 | Altera Corporation | Methods and apparatus for communicating low-latency word category over multi-lane link |
CN102439916B (zh) * | 2011-07-27 | 2013-10-09 | 华为技术有限公司 | Pci快速通道设备、链路能量管理方法及*** |
US8949497B2 (en) * | 2011-08-24 | 2015-02-03 | Nvidia Corporation | Method and apparatus for interleaving bursts of high-speed serial interconnect link training with bus data transactions |
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 |
TW201324175A (zh) * | 2011-12-05 | 2013-06-16 | Asix Electronics Corp | 具有省電管理功能之通用序列匯流排裝置以及省電管理方法 |
US9330031B2 (en) | 2011-12-09 | 2016-05-03 | Nvidia Corporation | System and method for calibration of serial links using a serial-to-parallel loopback |
US8446903B1 (en) * | 2012-05-22 | 2013-05-21 | Intel Corporation | Providing a load/store communication protocol with a low power physical unit |
US9331922B2 (en) * | 2012-08-10 | 2016-05-03 | Broadcom Corporation | Automatic recover after loss of signal event in a network device |
US9077448B2 (en) * | 2012-08-23 | 2015-07-07 | International Business Machines Corporation | Read optical power link service for link health diagnostics |
US9690741B2 (en) * | 2013-07-15 | 2017-06-27 | Altera Corporation | Configuration via high speed serial link |
KR102108380B1 (ko) | 2014-02-04 | 2020-05-08 | 삼성전자주식회사 | 송신 데이터 오류를 복구하도록 작동하는 인터페이스 회로 |
JP6285750B2 (ja) * | 2014-02-26 | 2018-02-28 | パナソニック株式会社 | データ転送装置、ホスト装置、データ転送システム、および通信方式設定方法 |
CN103921870B (zh) * | 2014-04-29 | 2017-02-08 | 江苏项瑛农机有限公司 | 不易夹腿及脚部的自行车防护后座架 |
DE102014010553A1 (de) | 2014-07-16 | 2015-01-15 | Daimler Ag | Verfahren zum automatischen Initialisieren einer Master/Slave-Konfiguration in einem Ethernet-Netzwerk sowie ein Kraftfahrzeug |
JP6369224B2 (ja) | 2014-08-28 | 2018-08-08 | 富士通株式会社 | 情報処理システム、情報処理装置、及び情報処理システムの制御方法 |
CN104484306B (zh) * | 2014-12-31 | 2017-06-20 | 哈尔滨工业大学 | 基于差分信号的主从同步串行通讯总线及其实现方法 |
CN106033252B (zh) * | 2015-03-11 | 2020-05-08 | 瑞昱半导体股份有限公司 | 三方交握方法以及电脑可读媒体 |
WO2016149212A1 (en) * | 2015-03-14 | 2016-09-22 | Intel Corporation | Ethernet auto-negotiation techniques for determining link width |
US10860512B2 (en) | 2019-04-26 | 2020-12-08 | Dell Products L.P. | Processor interconnect link training system |
US11815976B2 (en) * | 2019-05-22 | 2023-11-14 | Qualcomm Incorporated | Bandwidth based power management for peripheral component interconnect express devices |
JP7324637B2 (ja) * | 2019-07-23 | 2023-08-10 | 株式会社Pfu | コンピュータ装置及び再起動方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6675243B1 (en) * | 1999-03-17 | 2004-01-06 | Adaptec, Inc. | Methods and apparatus for implementing a device side advanced serial protocol |
US6732190B1 (en) * | 1999-03-09 | 2004-05-04 | Intel Corporation | Method and apparatus for conserving power consumed by a network interface device in packet filtering mode |
US20040117674A1 (en) * | 2002-12-17 | 2004-06-17 | Michael Gutman | Ethernet link-up protocol |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5124943A (en) | 1988-08-22 | 1992-06-23 | Pacific Bell | Digital network utilizing telephone lines |
US5878028A (en) * | 1996-06-06 | 1999-03-02 | Advanced Micro Devices, Inc. | Data structure to support multiple transmit packets for high performance |
DE19749770A1 (de) * | 1997-11-11 | 1999-05-12 | Cit Alcatel | Verfahren zum Einrichten einer digitalen Nachrichtenverbindung, Teilnehmerendgerät und Vermittlungsstelle |
US6556589B2 (en) * | 1998-04-17 | 2003-04-29 | Advanced Micro Devices, Inc. | Network transceiver for steering network data to selected paths based on determined link speeds |
KR100389922B1 (ko) * | 2001-01-15 | 2003-07-04 | 삼성전자주식회사 | 1000베이스-t 표준을 이용하는 기가비트 이더넷에서의고속 링크를 위한 자동-교섭 방법 및 이를 수행하기 위한장치 |
US6665742B2 (en) * | 2001-01-31 | 2003-12-16 | Advanced Micro Devices, Inc. | System for reconfiguring a first device and/or a second device to use a maximum compatible communication parameters based on transmitting a communication to the first and second devices of a point-to-point link |
US6791942B2 (en) * | 2001-06-20 | 2004-09-14 | General Instrument Corporation | Dynamic ethernet power management |
US7023876B2 (en) | 2001-07-09 | 2006-04-04 | Quantum Corporation | Point-to-point protocol |
JP2004080133A (ja) * | 2002-08-12 | 2004-03-11 | Fujitsu I-Network Systems Ltd | Xdslデータ伝送におけるリンク状態切換方式 |
US7620062B2 (en) * | 2003-05-01 | 2009-11-17 | Genesis Microchips Inc. | Method of real time optimizing multimedia packet transmission rate |
US7136953B1 (en) * | 2003-05-07 | 2006-11-14 | Nvidia Corporation | Apparatus, system, and method for bus link width optimization |
JP2005086642A (ja) * | 2003-09-10 | 2005-03-31 | Sony Corp | 通信装置および転送速度切替方法 |
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 |
JP2006133895A (ja) * | 2004-11-02 | 2006-05-25 | Internatl Business Mach Corp <Ibm> | 情報処理装置、制御方法、及びプログラム |
-
2005
- 2005-06-29 US US11/169,527 patent/US7757020B2/en active Active
-
2006
- 2006-06-28 TW TW095123377A patent/TWI343007B/zh active
- 2006-06-29 WO PCT/US2006/025951 patent/WO2007002942A1/en active Application Filing
- 2006-06-29 GB GB0721277A patent/GB2439891B/en active Active
- 2006-06-29 CN CN200680021368XA patent/CN101198943B/zh active Active
- 2006-06-29 KR KR1020077030507A patent/KR100968641B1/ko active IP Right Grant
- 2006-06-29 DE DE112006001643T patent/DE112006001643B4/de active Active
- 2006-06-29 JP JP2008519682A patent/JP4768017B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6732190B1 (en) * | 1999-03-09 | 2004-05-04 | Intel Corporation | Method and apparatus for conserving power consumed by a network interface device in packet filtering mode |
US6675243B1 (en) * | 1999-03-17 | 2004-01-06 | Adaptec, Inc. | Methods and apparatus for implementing a device side advanced serial protocol |
US20040117674A1 (en) * | 2002-12-17 | 2004-06-17 | Michael Gutman | Ethernet link-up protocol |
Non-Patent Citations (1)
Title |
---|
全文. |
Also Published As
Publication number | Publication date |
---|---|
GB2439891B (en) | 2009-07-29 |
US20070008898A1 (en) | 2007-01-11 |
US7757020B2 (en) | 2010-07-13 |
TW200715128A (en) | 2007-04-16 |
KR20080016685A (ko) | 2008-02-21 |
JP4768017B2 (ja) | 2011-09-07 |
KR100968641B1 (ko) | 2010-07-06 |
DE112006001643T5 (de) | 2008-05-08 |
WO2007002942A1 (en) | 2007-01-04 |
CN101198943A (zh) | 2008-06-11 |
DE112006001643B4 (de) | 2011-09-15 |
JP2008547362A (ja) | 2008-12-25 |
GB0721277D0 (en) | 2007-12-12 |
GB2439891A (en) | 2008-01-09 |
TWI343007B (en) | 2011-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101198943B (zh) | 点到点链路协商方法和装置 | |
CN100568211C (zh) | 用可编程器件实现访问多个i2c从器件的方法及装置 | |
US20050270988A1 (en) | Mechanism of dynamic upstream port selection in a PCI express switch | |
CN100511200C (zh) | 单串口多cpu的控制方法、***及设备 | |
CN101242371B (zh) | 基于PCIe交换架构路由器堆叠的方法、***和装置 | |
CN113227991B (zh) | 替代协议选择 | |
US7715369B1 (en) | Common backplane for physical layer system and networking layer system | |
SG194018A1 (en) | Network transpose box and switch operation based on backplane ethernet | |
WO2008000193A1 (fr) | Système et procédé d'échange permettant d'augmenter la bande passante d'échange | |
US20080123552A1 (en) | Method and system for switchless backplane controller using existing standards-based backplanes | |
CN105379213A (zh) | 用于堆叠包交换机的专用控制路径架构 | |
CN113177018B (zh) | 一种使用双槽cpu的服务器 | |
KR102033112B1 (ko) | Pci 익스프레스 스위치 장치 및 그의 접속 제어 방법 | |
CN107181702B (zh) | 一种实现RapidIO和以太网融合交换的装置 | |
CN101247235B (zh) | 机架式设备及其主控模块和子模块 | |
CN101296063B (zh) | 主备倒换装置及方法、单板 | |
CN110162287A (zh) | 用于实现PCIE Box的VGA显示的方法及装置 | |
US6542952B1 (en) | PCI computer system having a transition module and method of operation | |
CN101459860A (zh) | 用于机架式设备标准槽位扩展的转接板及实现方法 | |
CN114138354A (zh) | 一种支持multihost的板载OCP网卡***及服务器 | |
CN107659413B (zh) | 小型通信设备 | |
CN107256070A (zh) | 一种支持服务器多节点供电的电源板及电源切换电路 | |
CN214098421U (zh) | 板卡和通信*** | |
CN207022032U (zh) | 一种业务线卡及基于pcie总线背板的通信*** | |
CN212411050U (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |