CN116680224A - 不对称PCIe总线设计方法、装置、总线装置及系统 - Google Patents
不对称PCIe总线设计方法、装置、总线装置及系统 Download PDFInfo
- Publication number
- CN116680224A CN116680224A CN202310530559.4A CN202310530559A CN116680224A CN 116680224 A CN116680224 A CN 116680224A CN 202310530559 A CN202310530559 A CN 202310530559A CN 116680224 A CN116680224 A CN 116680224A
- Authority
- CN
- China
- Prior art keywords
- pcie
- receiving
- asymmetric
- host
- transmitting
- 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
Links
- 238000013461 design Methods 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000001514 detection method Methods 0.000 claims abstract description 141
- 238000012549 training Methods 0.000 claims abstract description 43
- 230000005540 biological transmission Effects 0.000 claims abstract description 25
- 230000003068 static effect Effects 0.000 claims description 21
- 230000002093 peripheral effect Effects 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 12
- 230000005856 abnormality Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 abstract description 11
- 238000013135 deep learning Methods 0.000 description 6
- 238000013473 artificial intelligence Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000001360 synchronised 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/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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
-
- 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
- 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
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明属于PCIe总线设计技术领域,具体提供不对称PCIe总线设计方法、装置、总线装置及系统,所述方法包括如下步骤:确定主机端和设备端之间的连接具有非对称带宽要求;且基于连接的非对称带宽要求修改主机端和设备端的PCIe接口模块的物理线路,使主机端到设备端的传输通道中每个通道设置多个发送端对应一个接收端;将主机端和设备端链路训练状态机的检测状态的逻辑进行修改,使多个发送端接收到的信息通过同通道中的接收端返回给主机端。实现连接非对称PCIe总线时可以正常进行数据传输,提升了服务器配置灵活性,解决AI计算中的PCIe的带宽问题,并且提升了系统整体性能。
Description
技术领域
本发明涉及PCIe总线设计技术领域,具体涉及不对称PCIe总线设计方法、装置、总线装置及系统。
背景技术
PCIe总线是一种高速串行总线,用于连接计算机的各种外设,例如显卡、网卡、声卡、存储设备等。PCIe总线的工作方式类似于网络传输,数据通过多个差分信号线进行传输,每个差分信号线传输一位二进制数据。PCIe总线的速度通常以每秒传输的字节数来度量,例如PCIe 3.0的速度为每秒8GB。PCIe总线有多个版本,每个版本都具有不同的速度和带宽。当前最新的版本是PCIe 5.0,其速度是PCIe 4.0的两倍。PCIe总线还有多个通道,每个通道都具有一定的带宽,可以同时传输多个数据流。PCIe总线是一种高速、可靠、灵活的总线,适用于连接各种外设,并提供高效的数据传输和性能。
深度学习是一种人工智能技术,深度学习背后的关键技术包括反向传播算法、卷积神经网络、循环神经网络、生成对抗网络等等。同时,深度学习还需要大量的数据和计算资源来训练和优化模型,因此大规模的深度学习应用通常需要高性能计算和大数据存储和处理能力。存算一体处理器是一种集成存储器和计算功能的处理器架构。与传统的计算机架构不同,CIM允许在内存中直接执行计算操作,从而大大提高计算效率和能效比。CIM的核心思想是将存储器和处理器结合在一起,从而避免了传统计算机中数据在存储器和处理器之间频繁传输的瓶颈。具体来说,CIM通过在存储器中集成处理单元,从而实现了计算和存储的本地化,可以直接在内存中执行矩阵乘法、卷积运算等计算密集型操作,从而大大减少了数据传输和延迟,提高了计算效率和能效比。
CIM技术已经被广泛应用于人工智能加速器、图像处理器、计算机视觉处理器等领域。与传统处理器相比,CIM可以实现更高的并行性、更低的能耗和更高的性能。同时,CIM还可以通过集成硬件加速器和软件优化等方式进一步提高计算效率和能效比。在进行AI模型训练时PCIe总线的读写带宽并不对等,设备会装载大量数据,得出计算结果后传回小规模数据,因此PCIe的带宽将是AI计算的关键瓶颈点。如何设计一种不对称PCIe总线拓扑是本申请解决的技术问题。
发明内容
在进行AI模型训练时PCIe总线的读写带宽并不对等,设备会装载大量数据,得出计算结果后传回小规模数据,PCIe的带宽将是AI计算的关键瓶颈点,鉴于此,本发明提供不对称PCIe总线设计方法、装置、总线装置及系统。
第一方面,本发明技术方案提供一种不对称PCIe总线设计方法,不对称PCIe总线用于连接主机端和设备端,主机端和设备端均设置有PCIe接口模块,所述方法包括如下步骤:
确定主机端和设备端之间的连接具有非对称带宽要求;且基于连接的非对称带宽要求修改主机端和设备端的PCIe接口模块的物理线路,使主机端到设备端的传输通道中每个通道设置多个发送端对应一个接收端,或每个通道设置多个接收端对应一个发送端;
将主机端和设备端链路训练状态机的检测状态的逻辑进行修改,使多个发送端接收到的信息后通过同通道中的接收端返回给主机端,或发送端接收到的信息后,分配给同通道中的各接收端返回给主机端。
作为本发明技术方案的优选,将主机端和设备端链路训练状态机的检测状态的逻辑进行修改的步骤包括:
在发送端发送的检测序列中设置发送端的编号,多个发送端发出的检测序列都通过同一通道的接收端接收;
接收端接收到检测序列后,通过编号识别到对应的发送端。
作为本发明技术方案的优选,在发送端发送的检测序列中设置发送端的编号的步骤包括:
在发送端发送的检测序列的起始码中编辑用于识别发送端的编号,使检测序列的总长度不变。
作为本发明技术方案的优选,将主机端和设备端链路训练状态机的检测状态的逻辑进行修改,使多个发送端接收到的信息通过同通道中的接收端返回给主机端的步骤之后包括:
对主机端连接到设备端的一个或多个通道执行链路训练;
在链路训练期间检测通道中所有配置发送端以发送数据,均通过配置接收端以接收数据并识别出对应的发送端。
作为本发明技术方案的优选,状态机的检测状态包括检测静止状态和检测活跃状态,对主机端连接到设备端的一个或多个通道执行链路训练的步骤包括:
设备端的高速串行扩展总线设备进入检测活跃状态后,发送端发送带有发送端编号的检测序列,检测接收端是否正常;
若所有通道的所有发送端发出的带有发送端编号的检测序列都被正常接收,并通过编号识别到所有的发送端,则接收端检测正常,高速串行扩展总线设备进入链接训练状态;
若所有通道的所有发送端发出的带有发送端编号的检测序列均未正常接收,则接收端检测异常,高速串行扩展总线设备返回检测静止状态。
作为本发明技术方案的优选,该方法还包括:
若有部分通道正常接收到发送端发出的带有发送端编号的检测序列并通过编号识别出发送端,设定时间间隔后,将所有未正常接收的通道的发送端重新发送带有发送端编号的检测序列;
若重新发送的检测结果与上次的检测结果相同;
将所有未检测成功的通道设置为电气空闲状态,并进入链路训练状态;
若重新发送的检测结果与上次的检测结果不同,则返回检测静止状态。
作为本发明技术方案的优选,该方法还包括:
当高速串行扩展总线设备处于检测静止状态超过设定时间阈值后,或检测到高速串行扩展总线中任一通道退出电气空闲状态时,高速串行扩展总线设备进入检测活跃状态。
作为本发明技术方案的优选,非对称带宽要求包括总线通道中发送端与接收端的比率是3:1。
第二方面,本发明技术方案还提供一种不对称PCIe总线设计装置,不对称PCIe总线用于连接主机端和设备端,主机端和设备端均设置有PCIe接口模块,所述装置包括通道设计模块和状态机设置模块;
通道设计模块,用于确定主机端和设备端之间的连接具有非对称带宽要求;且基于连接的非对称带宽要求修改主机端和设备端的PCIe接口模块的物理线路,使主机端到设备端的传输通道中每个通道设置多个发送端对应一个接收端,或每个通道设置多个接收端对应一个发送端;
状态机设置模块,用于将主机端和设备端链路训练状态机的检测状态的逻辑进行修改,使多个发送端接收到的信息后通过同通道中的接收端返回给主机端,或发送端接收到的信息后,分配给同通道中的各接收端返回给主机端。
作为本发明技术方案的优选,状态机设置模块包括序列设置单元和识别单元;
序列设置单元,用于在发送端发送的检测序列中设置发送端的编号,多个发送端发出的检测序列都通过同一通道的接收端接收;具体用于在发送端发送的检测序列的起始码中编辑用于识别发送端的编号,使检测序列的总长度不变;
识别单元,用于接收端接收到检测序列后,通过编号识别到发送端。
作为本发明技术方案的优选,该装置还包括链路训练执行模块,用于对主机端连接到设备端的一个或多个通道执行链路训练;在链路训练期间检测通道中所有配置发送端以发送数据,均通过配置接收端以接收数据并识别出对应的发送端。
状态机的检测状态包括检测静止状态和检测活跃状态,设备端的高速串行扩展总线设备进入检测活跃状态后,链路训练执行模块具体执行如下过程:发送端发送带有发送端编号的检测序列,检测接收端是否正常;若所有通道的所有发送端发出的带有发送端编号的检测序列都被正常接收,并通过编号识别到所有的发送端,则接收端检测正常,高速串行扩展总线设备进入链接训练状态;若所有通道的所有发送端发出的带有发送端编号的检测序列均未正常接收,则接收端检测异常,高速串行扩展总线设备返回检测静止状态。若有部分通道正常接收到发送端发出的带有发送端编号的检测序列并通过编号识别出发送端,设定时间间隔后,将所有未正常接收的通道的发送端重新发送带有发送端编号的检测序列;若重新发送的检测结果与上次的检测结果相同;将所有未检测成功的通道设置为电气空闲状态,并进入链路训练状态;若重新发送的检测结果与上次的检测结果不同,则返回检测静止状态。高速串行扩展总线设备处于检测静止状态超过设定时间阈值后,或检测到高速串行扩展总线中任一通道退出电气空闲状态时,高速串行扩展总线设备进入检测活跃状态。
第三方面,本发明技术方案还提供一种不对称PCIe总线装置,包括主机处理器;所述主机处理器包括用于以下操作的逻辑电路:
向通过PCIe链路与主机处理器通信的设备发送用于指示同一通道中发送端与接收端比率的命令信号;其中,所述比率不等于1;
接收到设备返回的能够支持非对称配置比率的指令后,主机处理器基于发送端与接收端的比率将通道动态配置发送端或接收端,通过配置完成的通道将通信信号连接至设备端。
作为本发明技术方案的优选,主机处理器包括用于以下操作的逻辑电路:
通过一个接收端接收设备端发送数据模式;以及通过多个发送端向设备端发送数据模式。
作为本发明技术方案的优选,主机处理器包括用于以下操作的逻辑电路:
通过一个发送端向设备端发送数据模式;以及通过多个接收端接收设备端发送数据模式。
作为本发明技术方案的优选,该装置还包括PCIe接口模块,所述PCIe接口模块包括用于将物理层配置用于非对称发送端和接收端配置的逻辑电路以及用于对被配置用于非对称发送端和接收端的物理层的信号进行处理的逻辑电路。
作为本发明技术方案的优选,所述PCIe接口模块包括用于将数据包根据同一通道中发送端与接收端比率进行拆分的逻辑电路。
第四方面,本发明技术方案还提供一种不对称PCIe总线系统,包括主机处理器以及外围设备,所述外围设备包括用于以下操作的逻辑电路:
识别通过PCIe链路耦合至主机处理器的多个设备;
基于设备和主机处理器的应用来识别主机处理器和设备基于所述应用的读取与写入比率,并向主机处理器提供所述比率;
主机处理器包括用于以下操作的逻辑电路:
向通过PCIe链路与主机处理器通信的设备发送用于指示同一通道中发送端与接收端比率的命令信号;其中,所述比率不等于1;所述比率为外围设备向主机处理器提供的比率;
接收到设备返回的能够支持非对称配置比率的指令后,主机处理器基于发送端与接收端的比率将通道被动态配置发送端或接收端,通过配置完成的通道将通信信号连接至设备端。
作为本发明技术方案的优选,主机处理器包括用于以下操作的逻辑电路:
通过一个接收端接收设备端发送数据模式;以及通过多个发送端向设备端发送数据模式。
作为本发明技术方案的优选,主机处理器包括用于以下操作的逻辑电路:
通过一个发送端向设备端发送数据模式;以及通过多个接收端接收设备端发送数据模式。
作为本发明技术方案的优选,PCIe的链路包括将主机处理器与所述设备进行互连的PCIex4槽、PCIex12槽、PCIex16槽或PCIex32槽中的一个。
从以上技术方案可以看出,本发明具有以下优点:
实现连接非对称PCIe总线时可以正常进行数据传输,大大提升了服务器配置灵活性,增加发送端的数量减少接收端的数量设计的不对称PCIe总线并对状态机进行修改,解决AI计算中的PCIe的带宽问题,并且提升了系统整体性能。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的CPU与PCIe设备之间通过不对称PCIe总线连接示意图。
图3是LTSSM状态机图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要是说明的是,PCIe,Peripheral Component Interconnect Express,高速串行计算机扩展总线标准。
CIM,Compute-In-Memory Processor,存算一体处理器。
AI,Artificial Intelligence,人工智能。
LTSSM,ink Training and Status State Machine,链路训练状态机。
本发明实施例提供一种不对称PCIe总线服务器设计方法,不对称PCIe总线用于连接主机端和设备端,主机端和设备端均设置有PCIe接口模块,所述方法包括如下步骤:
步骤1:确定主机端和设备端之间的连接具有非对称带宽要求;且基于连接的非对称带宽要求修改主机端和设备端的PCIe接口模块的物理线路,使主机端到设备端的传输通道中每个通道设置多个发送端对应一个接收端;
步骤2:将主机端和设备端链路训练状态机的检测状态的逻辑进行修改,使多个发送端接收到的信息通过同通道中的接收端返回给主机端。
在现有资源基础上扩展了不对称总线连接设备硬件配置的灵活性,在面对深度学习计算或者连接存算一体芯片设备这种需要单向大量数据传输的场景提供更有性价比的选择。本申请需要主机端和设备端在硬件上进行支持,修改链路训练状态机的设置,由于本身申请信号发生变化,并且在PCB板上也需要修改线路和元件以优化信号质量,这样就可以实现不对称的数据传输线路,更有效地利用了PCB板卡上的空间资源,并且可以更灵活地支持多设备连接。
本发明实施例提供一种不对称PCIe总线设计方法,不对称PCIe总线用于连接主机端和设备端,主机端和设备端均设置有PCIe接口模块,如图1所示,所述方法包括如下步骤:
步骤1:确定主机端和设备端之间的连接具有非对称带宽要求;且基于连接的非对称带宽要求修改主机端和设备端的PCIe接口模块的物理线路,使主机端到设备端的传输通道中每个通道设置多个发送端对应一个接收端;
也就是,在主机端根据连接的高速串行扩展总线设备类型设计相应数量的通道到高速串行扩展总线设备端;
步骤2:将主机端和设备端链路训练状态机的检测状态的逻辑进行修改,使多个发送端接收到的信息通过同通道中的接收端返回给主机端。
本步骤中,将主机端和设备端链路训练状态机的检测状态的逻辑进行修改,将通过发送端接收到的信息通过同通道中的接收端返回给主机端。具体的,在发送端发送的检测序列中设置发送端的编号,多个发送端发出的检测序列都通过同一通道的接收端接收;接收端接收到检测序列后,通过编号识别到发送端。实际上,是在发送端发送的检测序列的起始码中编辑用于识别发送端的编号,使检测序列的总长度不变。
步骤3:对主机端连接到设备端的一个或多个通道执行链路训练;在链路训练期间检测通道中所有配置发送端以发送数据,均通过配置接收端以接收数据并识别出对应的发送端。
在现有资源基础上扩展了服务器主板上硬件配置的灵活性,在面对深度学习计算或者连接存算一体芯片设备这种需要单向大量数据传输的场景提供更有性价比的选择。本申请需要主机端和设备端在硬件上进行支持,修改链路训练状态机的设置,由于本身申请信号发生变化,并且在PCB板上也需要修改线路和元件以优化信号质量,这样就可以实现不对称的数据传输线路,更有效地利用了PCB板卡上的空间资源,并且可以更灵活地支持多设备连接。
不对称的PCIe总线在主机端CPU和设备端PCIe设备之间的连接如图2所示,CPU和PCIe设备之间通过数条发送端TX和接收端RX数据传输差分信号相连,MISC为PCIe协议中规定的一些其他所需控制信号。普通的PCIe x4总线中,一个TX和一个RX组成一条通道,总共有4对TX差分线和4对RX差分线,而在本实施例中的不对称PCIe总线设计中,TX和RX的数量可以按需组合,图中的发送端TX和接收端RX的数量不同,设计有6对TX信号线和2对RX差分线,可以在有限的PCB板走线空间中提供更多下行带宽。
在PCIe协议中设备之间的物理链路检测和协商是由LTSSM状态机来控制的,在LTSSM状态机的Detect状态中,Host端会对每条PCIe通道进行检测,若检测不到对应RX信号返回的数据就会放弃这条lane,因此在不对称PCIe设计中,不符合PCIe协议的规定,需要在硬件上对状态机进行修改,在图2中,TX_1和TX_2被视为TX_0的附属通道,在不对称总线的设计中,首先要根据所连接PCIe设备的类型来确定具体的线路设计,例如设备如果有1条RX通道,3条TX通道,则Host端和主板上就要设计对应的3条TX通道,1条RX通道,由于TX通道和RX通道在物理设计上是不同的,因此在设备制造出后通道的序号就被固定了,例如pin脚A0_DN和A0_DP就会被固件识别为TX_0,相应的识别信息会根据设计存储在固件中。在设备开始协商时,设备端的LTSSM状态机会将TX_1和TX_2接收到的协商信息都通过RX_0返回,TX_0,TX_1,TX_2,RX_0,整体被视为一条通道。
同时在物理层上,标准PCIe协议里从数据链路层接收到的数据包会根据lane的数量进行拆分,分别发送到接收端,而在非对称设计中,需要优化进行拆分的Byte Stripping部件,以针对任意的TX数进行拆分,当逻辑子层从数据链路层获取到数据包后,会将数据包通过Byte Stripping部件来拆分给每条通道lane的TX,Byte Stripping主要的功能是调整不同lane上数据传输产生的漂移,导致数据不同步,而在非对称总线的设计中,多个TX信号被视为同一条lane,需要注意的是Byte Stripping只是一个逻辑上的模块,其具体线路由门电路直接实现,往往会被集成到芯片内部中,修改也是对其真值表和状态机进行修改后由EDA工具综合生成门电路。
需要说明的是,状态机的检测状态包括检测静止状态和检测活跃状态,该方法还包括:
设备端的高速串行扩展总线设备进入检测活跃状态后,发送端发送带有发送端编号的检测序列,检测接收端是否正常;
若所有通道的所有发送端发出的带有发送端编号的检测序列都被正常接收,并通过编号识别到所有的发送端,则接收端检测正常,高速串行扩展总线设备进入链接训练状态;
若所有通道的所有发送端发出的带有发送端编号的检测序列均未正常接收,则接收端检测异常,高速串行扩展总线设备返回检测静止状态。
若有部分通道正常接收到发送端发出的带有发送端编号的检测序列并通过编号识别出发送端,设定时间间隔后,将所有未正常接收的通道的发送端重新发送带有发送端编号的检测序列;
若重新发送的检测结果与上次的检测结果相同;
将所有未检测成功的通道设置为电气空闲状态,并进入链路训练状态;
若重新发送的检测结果与上次的检测结果不同,则返回检测静止状态。
当高速串行扩展总线设备处于检测静止状态超过设定时间阈值后,或检测到高速串行扩展总线中任一通道退出电气空闲状态时,高速串行扩展总线设备进入检测活跃状态。
本发明提供的方案中需要将PCIe数据总线拆分,将不同数量的TX和RX信号连接到PCIe设备,同时修改LTSSM状态机以识别非对称状况,本发明的具体实施方法如下:
将Host端和Device端LTSSM状态机的Detect状态的逻辑进行修改,当PCIe设备进入Detect.Active状态时,会通过TX发送Receiver Detection序列,并检测对应的RX通道是否接收到序列,在不对称总线设计中,需要将Receiver Detection序列增加编号,因为多个TX发出的序列都会通过同一RX通道返回,编号需要能表明是哪个TX发出的此检测序列,若所有的TX发出的序列都被正常接收,并通过编号识别到了所有的TX,则就可以认为检测成功,而无需将每条Lane的TX和RX都一一对应,需要注意的是Detect状态机只是一个逻辑上的模块,其具体线路由门电路直接实现,往往会被集成到芯片内部中,修改也是对其真值表和状态机进行修改后由EDA工具综合生成门电路。
也就是本申请需要可以识别到非对称总线的状态,同时修改PCIe接口物理层的逻辑,使其可以在非对称的总线状态正常收发数据。
在主板上的PCIe线路会根据实际的设备和业务需求来连接,以非对称的方式将TX和RX线路从处理器连接给设备,相应的外围线路也会进行变更。
本发明技术方案提供一种不对称PCIe总线设计装置,不对称PCIe总线用于连接主机端和设备端,主机端和设备端均设置有PCIe接口模块,所述装置包括通道设计模块和状态机设置模块;
通道设计模块,用于确定主机端和设备端之间的连接具有非对称带宽要求;且基于连接的非对称带宽要求修改主机端和设备端的PCIe接口模块的物理线路,使主机端到设备端的传输通道中每个通道设置多个发送端对应一个接收端;
状态机设置模块,用于将主机端和设备端链路训练状态机的检测状态的逻辑进行修改,使多个发送端接收到的信息通过同通道中的接收端返回给主机端。
状态机设置模块,具体用于将主机端和设备端链路训练状态机的检测状态的逻辑进行修改,将通过发送端接收到的信息通过同通道中的接收端返回给主机端。
状态机设置模块包括序列设置单元和识别单元;
序列设置单元,用于在发送端发送的检测序列中设置发送端的编号,多个发送端发出的检测序列都通过同一通道的接收端接收;具体用于在发送端发送的检测序列的起始码中编辑用于识别发送端的编号,使检测序列的总长度不变;
识别单元,用于接收端接收到检测序列后,通过编号识别到发送端。
PCIe设备进入检测状态活跃后,发送端发送带有发送端编号的检测序列,检测接收端是否正常工作;若所有通道的接收端都正常工作时,PCIe设备进入链接训练状态;若没有一个通道的接收端被检测到,PCIe设备返回检测静止状态。若有部分通道正确检测到接收端的存在,设定时间间隔后,将所有未检测成功的通道的发送端重新发送带有发送端编号的检测序列;若本次的检测结果与上次的检测结果相同;将所有未检测成功的通道设置为电气空闲状态,并进入链路训练状态;若本次的检测结果与上次的检测结果不同,则返回检测静止状态。当PCIe设备处于检测静止状态超过设定时间阈值后,或检测到PCIe总线中任一通道退出电气空闲状态时,PCIe设备进入检测活跃状态。
本发明实施例还提供一种不对称PCIe总线装置,包括主机处理器;所述主机处理器包括用于以下操作的逻辑电路:
向通过PCIe链路与主机处理器通信的设备发送用于指示同一通道中发送端与接收端比率的命令信号;其中,所述比率不等于1;
接收到设备返回的能够支持非对称配置比率的指令后,主机处理器基于发送端与接收端的比率将通道动态配置发送端或接收端,通过配置完成的通道将通信信号连接至设备端。
本实施例中,主机处理器和设备之间通过数条发送端TX和接收端RX数据传输差分信号相连,普通的PCIe x4总线中,一个TX和一个RX组成一条通道,总共有4对TX差分线和4对RX差分线,而在本实施例中的不对称PCIe总线连接,TX和RX的数量可以按需组合,发送端TX和接收端RX的数量不同,设计有6对TX信号线和2对RX差分线,也就是1个RX和3个TX组成一个通道,可以在有限的PCB板走线空间中提供更多下行带宽。
在有些实施例中,主机处理器包括用于以下操作的逻辑电路:
通过一个接收端接收设备端发送数据模式;以及通过多个发送端向设备端发送数据模式。
在有些实施例中,主机处理器包括用于以下操作的逻辑电路:
通过一个发送端向设备端发送数据模式;以及通过多个接收端接收设备端发送数据模式。
在有些实施例中,该装置还包括PCIe接口模块,所述PCIe接口模块包括用于将物理层配置用于非对称发送端和接收端配置的逻辑电路以及用于对被配置用于非对称发送端和接收端的物理层的信号进行处理的逻辑电路。
在有些实施例中,所述PCIe接口模块包括用于将数据包根据同一通道中发送端与接收端比率进行拆分的逻辑电路。
本发明实施例还提供一种不对称PCIe总线系统,包括主机处理器以及外围设备,所述外围设备包括用于以下操作的逻辑电路:
识别通过PCIe链路耦合至主机处理器的多个设备;
基于设备和主机处理器的应用来识别主机处理器和设备基于所述应用的读取与写入比率,并向主机处理器提供所述比率;
主机处理器包括用于以下操作的逻辑电路:
向通过PCIe链路与主机处理器通信的设备发送用于指示同一通道中发送端与接收端比率的命令信号;其中,所述比率不等于1;所述比率为外围设备向主机处理器提供的比率;
接收到设备返回的能够支持非对称配置比率的指令后,主机处理器基于发送端与接收端的比率将通道被动态配置发送端或接收端,通过配置完成的通道将通信信号连接至设备端。
本发明实施例中的外围设备可以是存储之类的设备。
在有些实施例中,主机处理器包括用于以下操作的逻辑电路:
通过一个接收端接收设备端发送数据模式;以及通过多个发送端向设备端发送数据模式。
在有些实施例中,主机处理器包括用于以下操作的逻辑电路:
通过一个发送端向设备端发送数据模式;以及通过多个接收端接收设备端发送数据模式。
在有些实施例中,PCIe的链路包括将主机处理器与所述设备进行互连的PCIex4槽、PCIex12槽、PCIex16槽或PCIex32槽中的一个。
本发明实施例提供一种不对称PCIe总线服务器,所述服务器包括主机端和PCIe设备端,主机端和设备端均设置有PCIe接口模块;确定主机端和设备端之间的连接具有非对称带宽要求;且基于连接的非对称带宽要求修改主机端和设备端的PCIe接口模块的物理线路,使主机端到设备端的传输通道中每个通道设置多个发送端对应一个接收端;将主机端和设备端链路训练状态机的检测状态的逻辑进行修改,使多个发送端接收到的信息通过同通道中的接收端返回给主机端。所述服务器包括主板,主机端和PCIe设备端均设置在主板上;主机端包括CPU,设备端包括加速卡;
在发送端发送的检测序列中设置发送端的编号,多个发送端发出的检测序列都通过同一通道的接收端接收;接收端接收到检测序列后,通过编号识别到发送端。实际上是,在发送端发送的检测序列的起始码中编辑用于识别发送端的编号,使检测序列的总长度不变。
状态机的检测状态包括检测静止状态和检测活跃状态,设备端的高速串行扩展总线设备进入检测活跃状态后,发送端发送带有发送端编号的检测序列,检测接收端是否正常;若所有通道的所有发送端发出的带有发送端编号的检测序列都被正常接收,并通过编号识别到所有的发送端,则接收端检测正常,高速串行扩展总线设备进入链接训练状态;若所有通道的所有发送端发出的带有发送端编号的检测序列均未正常接收,则接收端检测异常,高速串行扩展总线设备返回检测静止状态。若有部分通道正常接收到发送端发出的带有发送端编号的检测序列并通过编号识别出发送端,设定时间间隔后,将所有未正常接收的通道的发送端重新发送带有发送端编号的检测序列;若重新发送的检测结果与上次的检测结果相同;将所有未检测成功的通道设置为电气空闲状态,并进入链路训练状态;若重新发送的检测结果与上次的检测结果不同,则返回检测静止状态。高速串行扩展总线设备处于检测静止状态超过设定时间阈值后,或检测到高速串行扩展总线中任一通道退出电气空闲状态时,高速串行扩展总线设备进入检测活跃状态。
不对称的PCIe总线在主机端CPU和设备端PCIe设备之间的连接如图2所示,CPU和PCIe设备之间通过数条发送端TX和接收端RX数据传输差分信号相连,MISC为PCIe协议中规定的一些其他所需控制信号。普通的PCIe x4总线中,一个TX和一个RX组成一条通道,总共有4对TX差分线和4对RX差分线,而在本实施例中的不对称PCIe总线设计中,TX和RX的数量可以按需组合,图中的发送端TX和接收端RX的数量不同,设计有6对TX信号线和2对RX差分线,可以在有限的PCB板走线空间中提供更多下行带宽。
在PCIe协议中设备之间的物理链路检测和协商是由LTSSM状态机来控制的,LTSSM状态机如图3示,状态机的Detect状态中,Host端会对每条PCIe通道进行检测,若检测不到对应RX信号返回的数据就会放弃这条lane,因此在不对称PCIe设计中,不符合PCIe协议的规定,需要在硬件上对状态机进行修改,在图2中,TX_1和TX_2被视为TX_0的附属通道,在不对称总线的设计中,首先要根据所连接PCIe设备的类型来确定具体的线路设计,例如设备如果有1条RX通道,3条TX通道,则Host端和主板上就要设计对应的3条TX通道,1条RX通道,由于TX通道和RX通道在物理设计上是不同的,因此在设备制造出后通道的序号就被固定了,例如pin脚A0_DN和A0_DP就会被固件识别为TX_0,相应的识别信息会根据设计存储在固件中。在设备开始协商时,设备端的LTSSM状态机会将TX_1和TX_2接收到的协商信息都通过RX_0返回,TX_0,TX_1,TX_2,RX_0,整体被视为一条通道。
在有些实施例中,设备端也可以是存储芯片,存储芯片被配置为不对阵PCIe总线端口与主机端进行数据传输。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种不对称PCIe总线设计方法,其特征在于,不对称PCIe总线用于连接主机端和设备端,主机端和设备端均设置有PCIe接口模块,所述方法包括如下步骤:
确定主机端和设备端之间的连接具有非对称带宽要求;且基于连接的非对称带宽要求修改主机端和设备端的PCIe接口模块的物理线路,使主机端到设备端的传输通道中每个通道设置多个发送端对应一个接收端,或每个通道设置多个接收端对应一个发送端;
将主机端和设备端链路训练状态机的检测状态的逻辑进行修改,使多个发送端接收到的信息后通过同通道中的接收端返回给主机端,或发送端接收到的信息后,分配给同通道中的各接收端返回给主机端。
2.根据权利要求1所述的不对称PCIe总线设计方法,其特征在于,将主机端和设备端链路训练状态机的检测状态的逻辑进行修改的步骤包括:
在发送端发送的检测序列中设置发送端的编号,多个发送端发出的检测序列都通过同一通道的接收端接收;
接收端接收到检测序列后,通过编号识别到对应的发送端。
3.根据权利要求2所述的不对称PCIe总线设计方法,其特征在于,在发送端发送的检测序列中设置发送端的编号的步骤包括:
在发送端发送的检测序列的起始码中编辑用于识别发送端的编号,使检测序列的总长度不变。
4.根据权利要求3所述的不对称PCIe总线设计方法,其特征在于,将主机端和设备端链路训练状态机的检测状态的逻辑进行修改,使多个发送端接收到的信息通过同通道中的接收端返回给主机端的步骤之后包括:
对主机端连接到设备端的一个或多个通道执行链路训练;
在链路训练期间检测通道中所有配置发送端以发送数据,均通过配置接收端以接收数据并识别出对应的发送端。
5.根据权利要求4所述的不对称PCIe总线设计方法,其特征在于,状态机的检测状态包括检测静止状态和检测活跃状态,对主机端连接到设备端的一个或多个通道执行链路训练的步骤包括:
设备端的PCIe设备进入检测活跃状态后,发送端发送带有发送端编号的检测序列,检测接收端是否正常;
若所有通道的所有发送端发出的带有发送端编号的检测序列都被正常接收,并通过编号识别到所有的发送端,则接收端检测正常,PCIe设备进入链接训练状态;
若所有通道的所有发送端发出的带有发送端编号的检测序列均未正常接收,则接收端检测异常,PCIe设备返回检测静止状态。
6.根据权利要求5所述的不对称PCIe总线设计方法,其特征在于,该方法还包括:
若有部分通道正常接收到发送端发出的带有发送端编号的检测序列并通过编号识别出发送端,设定时间间隔后,将所有未正常接收的通道的发送端重新发送带有发送端编号的检测序列;
若重新发送的检测结果与上次的检测结果相同;
将所有未检测成功的通道设置为电气空闲状态,并进入链路训练状态;
若重新发送的检测结果与上次的检测结果不同,则返回检测静止状态。
7.根据权利要求6所述的不对称PCIe总线设计方法,其特征在于,该方法还包括:
当PCIe设备处于检测静止状态超过设定时间阈值后,或检测到PCIe总线中任一通道退出电气空闲状态时,PCIe设备进入检测活跃状态。
8.一种不对称PCIe总线设计装置,其特征在于,不对称PCIe总线用于连接主机端和设备端,主机端和设备端均设置有PCIe接口模块,所述装置包括通道设计模块和状态机设置模块;
通道设计模块,用于确定主机端和设备端之间的连接具有非对称带宽要求;且基于连接的非对称带宽要求修改主机端和设备端的PCIe接口模块的物理线路,使主机端到设备端的传输通道中每个通道设置多个发送端对应一个接收端,或每个通道设置多个接收端对应一个发送端;
状态机设置模块,用于将主机端和设备端链路训练状态机的检测状态的逻辑进行修改,使多个发送端接收到的信息后通过同通道中的接收端返回给主机端,或发送端接收到的信息后,分配给同通道中的各接收端返回给主机端。
9.一种不对称PCIe总线装置,其特征在于,包括主机处理器;
所述主机处理器包括用于以下操作的逻辑电路:
向通过PCIe链路与主机处理器通信的设备发送用于指示同一通道中发送端与接收端比率的命令信号;其中,所述比率不等于1;
接收到设备返回的能够支持非对称配置比率的指令后,主机处理器基于发送端与接收端的比率将通道动态配置发送端或接收端,通过配置完成的通道将通信信号连接至设备端。
10.根据权利要求9所述的不对称PCIe总线装置,其特征在于,主机处理器包括用于以下操作的逻辑电路:
通过一个接收端接收设备端发送数据模式;以及通过多个发送端向设备端发送数据模式。
11.根据权利要求9所述的不对称PCIe总线装置,其特征在于,主机处理器包括用于以下操作的逻辑电路:
通过一个发送端向设备端发送数据模式;以及通过多个接收端接收设备端发送数据模式。
12.根据权利要求9所述的不对称PCIe总线装置,其特征在于,该装置还包括PCIe接口模块,所述PCIe接口模块包括用于将物理层配置用于非对称发送端和接收端配置的逻辑电路以及用于对被配置用于非对称发送端和接收端的物理层的信号进行处理的逻辑电路。
13.根据权利要求12所述的不对称PCIe总线装置,其特征在于,所述PCIe接口模块包括用于将数据包根据同一通道中发送端与接收端比率进行拆分的逻辑电路。
14.一种不对称PCIe总线系统,其特征在于,包括主机处理器以及外围设备,所述外围设备包括用于以下操作的逻辑电路:
识别通过PCIe链路耦合至主机处理器的多个设备;
基于设备和主机处理器的应用来识别主机处理器和设备基于所述应用的读取与写入比率,并向主机处理器提供所述比率;
主机处理器包括用于以下操作的逻辑电路:
向通过PCIe链路与主机处理器通信的设备发送用于指示同一通道中发送端与接收端比率的命令信号;其中,所述比率不等于1;所述比率为外围设备向主机处理器提供的比率;
接收到设备返回的能够支持非对称配置比率的指令后,主机处理器基于发送端与接收端的比率将通道被动态配置发送端或接收端,通过配置完成的通道将通信信号连接至设备端。
15.根据权利要求14所述的不对称PCIe总线系统,其特征在于,主机处理器包括用于以下操作的逻辑电路:
通过一个接收端接收设备端发送数据模式;以及通过多个发送端向设备端发送数据模式。
16.根据权利要求14所述的不对称PCIe总线系统,其特征在于,主机处理器包括用于以下操作的逻辑电路:
通过一个发送端向设备端发送数据模式;以及通过多个接收端接收设备端发送数据模式。
17.根据权利要求14所述的不对称PCIe总线系统,其特征在于,PCIe的链路包括将主机处理器与所述设备进行互连的PCIex4槽、PCIex12槽、PCIex16槽或PCIex32槽中的一个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310530559.4A CN116680224A (zh) | 2023-05-11 | 2023-05-11 | 不对称PCIe总线设计方法、装置、总线装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310530559.4A CN116680224A (zh) | 2023-05-11 | 2023-05-11 | 不对称PCIe总线设计方法、装置、总线装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116680224A true CN116680224A (zh) | 2023-09-01 |
Family
ID=87782714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310530559.4A Pending CN116680224A (zh) | 2023-05-11 | 2023-05-11 | 不对称PCIe总线设计方法、装置、总线装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116680224A (zh) |
-
2023
- 2023-05-11 CN CN202310530559.4A patent/CN116680224A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7757020B2 (en) | Point-to-point link negotiation method and apparatus | |
CN113227991B (zh) | 替代协议选择 | |
US9760525B2 (en) | Sideband signal consolidation fanout using a clock generator chip | |
US20220114132A1 (en) | Data Switch Chip and Server | |
US5964845A (en) | Processing system having improved bi-directional serial clock communication circuitry | |
KR19990060566A (ko) | 인터넷을 이용한 프로세스 간의 정보교환 장치 | |
CN116680224A (zh) | 不对称PCIe总线设计方法、装置、总线装置及系统 | |
US11782792B2 (en) | PCIe interface and interface system | |
US8954623B2 (en) | Universal Serial Bus devices supporting super speed and non-super speed connections for communication with a host device and methods using the same | |
CN115391261A (zh) | 高速外围组件互连装置以及包括其的计算系统 | |
CN107643990B (zh) | 可配置架构的通信设备 | |
CN107659413B (zh) | 小型通信设备 | |
CN107704403B (zh) | 一种优化主背板信号传输的装置及方法 | |
US20230315672A1 (en) | Interface device and computing system including the same | |
US20230315591A1 (en) | PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME | |
US10846085B2 (en) | Multi-lane data processing circuit and system | |
CN114968860B (zh) | 高速外围组件互连接口装置以及包括该接口装置的系统 | |
US11960367B2 (en) | Peripheral component interconnect express device and operating method thereof | |
WO2024001874A1 (zh) | 模式协商方法、装置、设备、系统及计算机可读存储介质 | |
JP2001142852A (ja) | 高速並列計算用同期及び通信制御装置 | |
CN117749718A (zh) | 基于ack和nop机制的dma传输保序处理方法和装置 | |
CN114911736A (zh) | 一种主从机系统 | |
CN117707042A (zh) | 一种高速plc扩展总线系统 | |
CN115168262A (zh) | 标卡连接系统和服务器 | |
CN116185936A (zh) | 一种spi通信数据收发异常检测控制系统及检测方法 |
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 |