CN115098427B - 一种链路宽度自适应的实现方法 - Google Patents
一种链路宽度自适应的实现方法 Download PDFInfo
- Publication number
- CN115098427B CN115098427B CN202210723815.7A CN202210723815A CN115098427B CN 115098427 B CN115098427 B CN 115098427B CN 202210723815 A CN202210723815 A CN 202210723815A CN 115098427 B CN115098427 B CN 115098427B
- Authority
- CN
- China
- Prior art keywords
- link
- state machine
- mode
- ltssm
- machine module
- 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 abstract description 33
- 238000012549 training Methods 0.000 claims abstract description 40
- 230000003247 decreasing effect Effects 0.000 claims abstract description 4
- 230000006978 adaptation Effects 0.000 claims description 9
- 230000002159 abnormal effect Effects 0.000 claims description 6
- 238000011084 recovery Methods 0.000 claims description 4
- 125000004122 cyclic group Chemical group 0.000 claims 1
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
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/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4072—Drivers or receivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Small-Scale Networks (AREA)
- Communication Control (AREA)
Abstract
本发明涉及一种链路宽度自适应的实现方法,所述实现方法基于链路宽度自适应装置系统,且装置系统包括:轮询方式选择装置、LTSSM状态机模块、链路训练状态判断模块,端口间采用轮询的方式进行链路训练:从最大链路宽度开始,若linkup不成功,则以逐步递减的轮询模式进行链路训练,直到以某一链路宽度linkup成功;且轮询模式中采用链路协商机制,链路协商机制通过LTSSM状态机模块跳转实现,LTSSM状态机模块控制着PCIE链路协商的整个过程。本发明所述的实现方法可使正确的链路训练过程不需要依赖于PHY检测链路远端是否存在接收设备的正确结果。
Description
技术领域
本发明涉及电子技术领域,尤其是指一种规避PHY无法自适应训练链路宽度的方法。
背景技术
PCIExpress是用来互联诸如计算和通信平台应用中外围设备的第三代高性能I/O总线。为了提高总线性能,减少整个系统的成本并利用计算机设计方面新的开发成果,PCIExpress在原有总线的基础上进行大量的重新设计,相较于PCI与PCI-X两种多点并行互联总线,PCIExpress实现两台设备之间通信的串行、点对点类型的互联,多台PCIExpress设备使用桥片(switch)实现互联,这意味着在一个系统中可以连接许多设备;另一方面,与原有总线相比PCIExpress总线的带宽有了显著的提升,PCIE1.0的带宽为2.5Gbps、PCIE2.0的带宽为5Gbps,同时互联的PCIE设备间可以存在多条链路,实现带宽数的倍增,因此需要相应的链路协商机制来控制链路的正常工作。
链路协商机制由LTSSM状态机模块进行实现,LTSSM状态机模块控制着链路协商的整个过程,例如:PCIELTSSM状态机模块主要包括以下几种状态:Detect、Polling、Configuration、L0、L0s、L1、L2、Recovery、Loopback、Hot Reset、Disabled,中Detect状态就是通过PHY检测链路远端是否存在接收设备,从而决定状态机的下一个状态:若PHY检测链路远端设备的功能正常,则检测到接收器的通道数(lane)与链路协商的结果相符,则下一状态为Polling.Active子状态,从而LTSSM状态机模块可以正常跳转直至L0状态,linkup成功;否则,下一状态又跳转回为Detect.Quiet状态机子状态,从而陷入死循环,导致无法link up。
但是存在部分PCIEPHY无法正确进行检测这一过程,当两个PCIE设备间链路(lane)宽度不一致时,PCIE设备的控制器检测到接收器的通道数(lane)与链路协商的结果不符,造成LTSSM状态机模块无法正常跳转至下一状态Polling.Active子状态,从而无法正确进行链路训练。在这种情况下,应该采用某种规避方法使链路训练正确进行。
发明内容
为解决上述技术问题,本发明的一种链路宽度自适应的实现方法,通过更改PHY发起接收器检测序列请求的方法进行链路训练的方式,所述实现方法基于链路宽度自适应装置系统,且装置系统包括:轮询方式选择装置、LTSSM状态机模块、链路训练状态判断模块,,所述的轮询方式选择装置中轮询模式通过外部装置配置;同时若轮询模式使能,则进入轮询模式下的LTSSM状态机模块跳转,否则,则进入普通的LTSSM状态机模块跳转;且轮询模式中采用链路协商机制,链路协商机制通过LTSSM状态机模块跳转实现,LTSSM状态机模块控制着PCIE链路协商的整个过程。
在本发明的一个实施例中,所述的轮询模式过程中最大宽度和异常次数阈值参数通过通过外部装置配置,或直接使用默认参数值。
在本发明的一个实施例中,所述的链路协商机制包括以下几种状态:Detect、Polling、Configuration、L0、L0s、L1、L2、Recovery、Loopback、Hot Reset、Disabled,而轮询模式下的链路协商过程中,Detect状态不需要依赖PHY检测链路远端是否存在接收设备。
在本发明的一个实施例中,所述的轮询模式下,在循环最开始的状态,将根据当前链路训练状态判断模块决定是否继续该轮循环模式,若当前链路训练不成功的循环的次数已超过某个阈值,则退出该循环,链路训练结果link up不成功,否则继续该轮循环。
在本发明的一个实施例中,循环模式下,包含如下步骤:
步骤S1:采用最大链路宽度X2n模式进行链路训练(n的默认值取决于设备支持的最大链路宽度,可通过外部配置,通过直接使用默认参数值,例如:设备支持的最大链路宽度为32,则n=5);
步骤S2:若LTSSM状态机模块正常跳转至L0状态,则link up成功;否则,若超过一定的时间期限或者LTSSM状态机模块跳转出现异常的次数超过某个值后,仍未link up成功,则继续改用X2n-1的链路宽度进入链路训练模式;
步骤S3:在X2n-1链路宽度模式下进行链路训练,重复上述步骤S2,若超过一定的时间期限或者LTSSM状态机模块跳转出现异常的次数超过阈值后,仍未link up成功,则逐步递减的轮询方式进行链路训练(X2n-2,X2n-3,…X1),直到以某一链路宽度link up成功;
步骤S4:若递减到X1模式,仍未link up成功,则返回循环最开始的判断状态,根据当前链路训练状态判断模块决定是否继续该轮循环模式。
本发明的上述技术方案相比现有技术具有以下优点:PCIE链路协商机制通过LTSSM状态机模块跳转实现,LTSSM状态机模块控制着PCIE链路协商的整个过程,其主要包括以下几种状态:Detect、Polling、Configuration、L0、L0s、L1、L2、Recovery、Loopback、Hot Reset、Disabled,其中Detect状态就是通过PHY检测链路远端是否存在接收设备,从而决定状态机的下一个状态:若PHY检测链路远端设备的功能正常,则检测到接收器的通道数(lane)与链路协商的结果相符,则下一状态为Polling.Active子状态,从而LTSSM状态机模块可以正常跳转直至L0状态,link up成功;否则,下一状态又跳转回为Detect.Quiet状态机子状态,从而陷入死循环,导致无法link up。如果PCIEPHY无法正确检测链路远端是否存在接收设备时,当两个PCIE设备间链路(lane)宽度不一致时,检测到接收器的通道数(lane)与链路协商的结果不符,造成LTSSM状态机模块无法正常跳转至下一状态Polling.Active子状态,从而无法正确进行链路训练。在这种情况下,本发明所述的链路宽度自适应的实现方法,克服了上述技术中的不足,使正确的链路训练过程不需要依赖于PHY检测链路远端是否存在接收设备的正确结果。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明。
图1是本发明在链路宽度自适应的实现方法在实施方式中的流程示意图;
图2是本发明在链路宽度自适应的实现方法在实施方式中的结构框图。
具体实施方式
如图1和图2所示,本实施例提供一种链路宽度自适应的实现方法,所述实现方法基于链路宽度自适应装置系统,且链路宽度自适应装置100主要包括:轮询方式选择装置110;LTSSM状态机模块120;链路训练状态判断模块130。
链路宽度自适应装置100包括轮询方式选择装置110,其用于选择是否进入轮询模式,选择结果SWMODE发送给LTSSM状态机模块120,LTSSM状态机模块120根据选择结果SWMODE进行LTSSM状态机的跳转方式;LTSSM状态机的跳转的过程状态,即链路训练状态LKSTS传递给链路训练状态判断模块130,链路训练状态判断模块130回复判断结果T给LTSSM状态机模块120,LTSSM状态机模块120根据回复结果T进行LTSSM状态机的跳转方式,最终输出链路宽度自适应装置100的运行结果,即Link up状态。
轮询方式选择装置110可以是拨码开关、或EEPROM、Flash等,链路宽度自适应装置100上电启动后,首先通过轮询方式选择装置110选择是否进入轮询模式。轮询方式选择装置110通过接口150向LTSSM状态机模块120发送选择结果,例如:EEPROM通过I2C接口,或Flash通过SPI接口,加载相关寄存器,由该寄存器控制LTSSM状态机模块120中的状态机跳转方式。
LTSSM状态机模块120包括最大宽度配置和异常次数阈值配置端口180,和轮询方式选择端口150,根据配置端口180和选择端口150的输入,LTSSM状态机按特定方式跳转,跳转的流程如图2所示。
LTSSM状态机模块120中的LTSSM状态机的跳转的过程状态,即链路训练状态LKSTS,将发送给链路训练状态判断模块130,链路训练状态判断模块130最终的判断结果T反馈回LTSSM状态机模块120,根据回复的判断结果T,LTSSM状态机按特定方式跳转,跳转的流程如图1所示。
如图2所示,LTSSM状态机模块120中,若轮询模式使能,则进入轮询模式下的LTSSM状态机跳转,否则,则进入普通的LTSSM状态机跳转:跳转状态Detect将通过PHY检测链路远端是否存在接收设备,从而决定状态机的下一个状态,若正常跳转至L0状态,则link up成功,否则,链路训练结果link up不成功。
如图1所示,进入轮询模式后,将根据链路训练状态判断模块130最终的判断结果T决定是否继续该轮循环模式,其中,判断结果T的判据为:若当前链路训练不成功循环的次数小于某个阈值,则继续该轮循环,否则,则退出该循环,链路训练结果link up不成功。
如图2所示,循环模式下,包含如下步骤:
步骤S1:采用最大链路宽度X2n模式进行链路训练(n的默认值取决于设备支持的最大链路宽度,通过通过外部配置,例如:设备支持的最大链路宽度为32,则n=5);
步骤S2:若LTSSM状态机正常跳转至L0状态,则link up成功。否则,若超过一定的时间期限或者LTSSM状态机跳转出现异常的次数超过某个值后,仍未link up成功,则继续改用X2n-1的链路宽度进入链路训练模式;
步骤S3:在X2n-1链路宽度模式下进行链路训练,重复上述步骤S2,若超过一定的时间期限或者LTSSM状态机跳转出现异常的次数超过某个值后,仍未link up成功,则逐步递减的轮询方式进行链路训练(X2n-2,X2n-3,…X1),直到以某一链路宽度link up成功;
步骤S4:若递减到X1模式,仍未link up成功,则返回循环最开始的状态:根据链路训练状态判断模块130最终的判断结果T决定是否继续该轮循环模式。
显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (3)
1.一种链路宽度自适应的实现方法,所述实现方法基于链路宽度自适应装置系统,且装置系统包括:轮询方式选择装置、LTSSM状态机模块、链路训练状态判断模块,其特征在于,所述的轮询方式选择装置中轮询模式通过外部装置配置;同时若轮询模式使能,则进入轮询模式下的LTSSM状态机模块跳转,否则,则进入普通的LTSSM状态机模块跳转;且轮询模式中采用链路协商机制,链路协商机制通过LTSSM状态机模块跳转实现,LTSSM状态机模块控制着PCIE链路协商的整个过程;
所述的轮询模式下,在循环最开始的状态,将根据当前链路训练状态判断模块决定是否继续该轮循环模式,若当前链路训练不成功的循环的次数已超过某个阈值,则退出该循环,链路训练结果link up不成功,否则继续该轮循环;
具体循环模式下,包含如下步骤:
步骤S1:采用最大链路宽度X2n模式进行链路训练;
步骤S2:若LTSSM状态机模块正常跳转至L0状态,则link up成功;否则,若超过一定的时间期限或者LTSSM状态机模块跳转出现异常的次数超过某个值后,仍未link up成功,则继续改用X2n-1的链路宽度进入链路训练模式;
步骤S3:在X2n-1链路宽度模式下进行链路训练,重复上述步骤S2,若超过一定的时间期限或者LTSSM状态机模块跳转出现异常的次数超过阈值后,仍未link up成功,则逐步递减的轮询方式进行链路训练(X2n-2,X2n-3,…X1),直到以某一链路宽度link up成功;
步骤S4:若递减到X1模式,仍未link up成功,则返回循环最开始的判断状态,根据当前链路训练状态判断模块决定是否继续该轮循环模式。
2.根据权利要求1所述的链路宽度自适应的实现方法,其特征在于:所述的轮询模式过程中最大宽度和异常次数阈值参数通过外部装置配置,或直接使用默认参数值。
3.根据权利要求1所述的链路宽度自适应的实现方法,其特征在于:所述的链路协商机制包括以下几种状态:Detect、Polling、Configuration、L0、L0s、L1、L2、Recovery、Loopback、Hot Reset、Disabled,而轮询模式下的链路协商过程中,Detect状态不需要依赖PHY检测链路远端是否存在接收设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210723815.7A CN115098427B (zh) | 2022-06-24 | 2022-06-24 | 一种链路宽度自适应的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210723815.7A CN115098427B (zh) | 2022-06-24 | 2022-06-24 | 一种链路宽度自适应的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115098427A CN115098427A (zh) | 2022-09-23 |
CN115098427B true CN115098427B (zh) | 2024-05-07 |
Family
ID=83292253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210723815.7A Active CN115098427B (zh) | 2022-06-24 | 2022-06-24 | 一种链路宽度自适应的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115098427B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118012812B (zh) * | 2024-04-10 | 2024-06-18 | 芯瞳半导体技术(山东)有限公司 | Pcie链路训练方法、装置、电子设备及计算机存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7136953B1 (en) * | 2003-05-07 | 2006-11-14 | Nvidia Corporation | Apparatus, system, and method for bus link width optimization |
US7426597B1 (en) * | 2003-05-07 | 2008-09-16 | Nvidia Corporation | Apparatus, system, and method for bus link width optimization of a graphics system |
CN103514133A (zh) * | 2013-10-12 | 2014-01-15 | 江苏华丽网络工程有限公司 | 一种用于pcie高速链路管理的方法 |
-
2022
- 2022-06-24 CN CN202210723815.7A patent/CN115098427B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7136953B1 (en) * | 2003-05-07 | 2006-11-14 | Nvidia Corporation | Apparatus, system, and method for bus link width optimization |
US7426597B1 (en) * | 2003-05-07 | 2008-09-16 | Nvidia Corporation | Apparatus, system, and method for bus link width optimization of a graphics system |
CN103514133A (zh) * | 2013-10-12 | 2014-01-15 | 江苏华丽网络工程有限公司 | 一种用于pcie高速链路管理的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115098427A (zh) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115098427B (zh) | 一种链路宽度自适应的实现方法 | |
US8036245B2 (en) | System and method for packet based communications and arrangement therefor | |
US20190171609A1 (en) | Non-destructive outside device alerts for multi-lane i3c | |
CN109932891A (zh) | 一种异构冗余的拟态mcu | |
CN109074294A (zh) | 通信装置和通信系统 | |
CN112039516A (zh) | 一种芯片引脚复用电路和方法 | |
JP5041070B2 (ja) | 受信装置、伝送装置及び伝送方法 | |
CN112713938B (zh) | 光模块控制方法、装置和设备 | |
CN109074343B (zh) | 通信设备、通信方法、程序、以及通信系统 | |
US20070220296A1 (en) | Data processing apparatus | |
US5636343A (en) | Microcomputer with built-in serial input-output circuit and collision detection circuit responsive to common input-output line being occupied | |
CN104253667A (zh) | 一种应用于手机平台的串行同步总线校验反馈系统和方法 | |
US7848856B2 (en) | Communication system and electronic control unit including communication system for vehicle control | |
JP5644570B2 (ja) | 通信方法、通信システム及びそのデバイス | |
JP4822171B2 (ja) | 送信装置および画像データ伝送システム | |
CN113830009B (zh) | 一种信号传输方法、装置及电动汽车 | |
JP6344302B2 (ja) | 組電池制御装置 | |
KR101539579B1 (ko) | Rs232c 직렬 통신 하드웨어 이상 감지 처리장치 및 그 방법 | |
US10574514B2 (en) | Duplex control device and duplex system | |
US11876192B2 (en) | Assembled battery monitoring apparatus | |
US20100158007A1 (en) | Method and apparatus for aggregating single packets in a single session | |
KR101172387B1 (ko) | 직렬 주변장치 인터페이스 통신을 이용한 마이크로제어장치의 계산 오류 검사장치 | |
CN212367252U (zh) | 一种芯片引脚复用电路 | |
EP4266585A1 (en) | Data error correction circuit and data transmission method | |
CN112162895B (zh) | 一种异常状态检测方法、装置、系统、设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |