CN116401189A - 基于pcie控制器的多芯片通信方法、设备及存储介质 - Google Patents
基于pcie控制器的多芯片通信方法、设备及存储介质 Download PDFInfo
- Publication number
- CN116401189A CN116401189A CN202310667701.XA CN202310667701A CN116401189A CN 116401189 A CN116401189 A CN 116401189A CN 202310667701 A CN202310667701 A CN 202310667701A CN 116401189 A CN116401189 A CN 116401189A
- Authority
- CN
- China
- Prior art keywords
- pcie controller
- chip
- data
- transmitted
- pcie
- 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.)
- Granted
Links
- 238000004891 communication Methods 0.000 title claims abstract description 62
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000005540 biological transmission Effects 0.000 claims abstract description 45
- 230000006870 function Effects 0.000 claims abstract description 29
- 238000006243 chemical reaction Methods 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012790 confirmation Methods 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 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/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本申请公开了一种基于PCIE控制器的多芯片通信方法、设备及存储介质,第一芯片的第一PCIE控制器与第二芯片的第二PCIE控制器连接,包括:获取第一芯片待传输至第二芯片的第一待传输数据;利用第一PCIE控制器的直接内存访问引擎,将第一待传输数据传输至第二PCIE控制器,以通过第二PCIE控制器的地址转换功能将第一待传输数据转发到第二芯片的内存,以供第二芯片读取第一待传输数据。本申请将不同芯片的PCIE控制器直连,利用DMA引擎完成多个芯片之间的数据传输,以将DMA技术应用于多芯片通信,避免了加速器模块的限制,提高了多芯片通信的IO吞吐能力,降低了成本,提供了更简单的芯片高速互联组网的拓扑结构。
Description
技术领域
本申请涉及多芯片互联技术领域,具体涉及一种基于PCIE控制器的多芯片通信方法、设备及存储介质。
背景技术
在实现不同芯片之间的互联时,往往是使用RC-N-RC的方案,其中,RC为PCIE控制器(PCI Express root complex),N为加速器模块。
由于此方案需要使用加速器模块来连接两个RC,因此所有的通信数据均需要从加速器模块进行中转,使得芯片之间的通信效率受到加速器模块的限制,极大降低了多芯片通信的IO吞吐能力。
发明内容
本申请实施例提供一种基于PCIE控制器的多芯片通信方法、设备及存储介质,旨在提高多芯片通信的IO吞吐能力。
一方面,本申请提供一种基于PCIE控制器的多芯片通信方法,所述方法应用于第一芯片,第一芯片的第一PCIE控制器与第二芯片的第二PCIE控制器连接,所述方法包括:
获取所述第一芯片待传输至所述第二芯片的第一待传输数据;
利用所述第一PCIE控制器的直接内存访问引擎,将所述第一待传输数据传输至所述第二PCIE控制器,以通过所述第二PCIE控制器的地址转换功能将所述第一待传输数据转发到所述第二芯片的内存中,以供所述第二芯片从所述第二芯片的内存中读取所述第一待传输数据。
在一实施例中,所述第一PCIE控制器与第二PCIE控制器连接形成有第一数据通道,所述利用所述第一PCIE控制器的直接内存访问引擎,将所述第一待传输数据传输至所述第二PCIE控制器,以通过所述第二PCIE控制器的地址转换功能将所述第一待传输数据转发到所述第二芯片的内存中,以供所述第二芯片从所述第二芯片的内存中读取所述第一待传输数据,包括:
利用所述第一PCIE控制器的直接内存访问引擎,执行将所述第一待传输数据发送至所述第一数据通道的步骤,以使所述第二PCIE控制器在接收到所述第一待传输数据时,通过所述第二PCIE控制器的地址转换功能将所述第一待传输数据转发到所述第二芯片的内存中;
当所述第一待传输数据发送完成时,利用所述第一PCIE控制器的直接内存访问引擎,将所述第一待传输数据的中断指令发送至所述第一数据通道,以供所述第二芯片在所述第二PCIE控制器将所述第一待传输数据转发到所述第二芯片的内存中后,基于所述中断指令,读取所述第二芯片的内存中的所述第一待传输数据。
在一实施例中,所述将所述第一待传输数据的中断指令发送至所述第一数据通道之前,还包括:
获取所述第一PCIE控制器中预先存储的所述第二PCIE控制器的第二中断地址;
获取所述第一待传输数据的预设中断号;
生成向所述第二中断地址写入所述预设中断号的写入指令,并作为所述中断指令,以供所述第二PCIE控制器在所述第二中断地址处获取数据并转换为所述预设中断号,从而触发所述第一待传输数据的中断信号,其中,所述第二芯片在接收所述中断信号时,读取所述第二芯片的内存中的所述第一待传输数据。
在一实施例中,所述第一PCIE控制器与第二PCIE控制器连接形成有第二数据通道,所述方法还包括:
通过所述第一PCIE控制器,接收所述第二PCIE控制器利用所述第二芯片的直接内存访问引擎发送至所述第二数据通道的第二待传输数据;
确定所述第二待传输数据的指定写入地址;
基于所述指定写入地址,写入所述第二待传输数据。
在一实施例中,所述基于所述指定写入地址,写入所述第二待传输数据包括:
通过所述第一PCIE控制器,获取所述第一PCIE控制器的地址转换功能中预设的地址映射关系;
确定所述预设的地址映射关系中与所述指定写入地址关联的预设安全地址,所述预设安全地址为所述第一芯片的内存中的地址;
向所述预设安全地址,写入所述第二待传输数据。
在一实施例中,所述第一芯片还包括第四PCIE控制器,所述第四PCIE控制器与第三芯片的第三PCIE控制器连接,所述接收所述第二PCIE控制器利用所述第二芯片的直接内存访问引擎发送至所述第二数据通道的第二待传输数据的步骤之后,还包括:
确定所述第二待传输数据的目标传输对象;
在所述目标传输对象为所述第一芯片时,执行所述确定所述第二待传输数据的指定写入地址的步骤,其中,在所述目标传输对象为所述第三芯片时,将所述第二待传输数据传输至所述第三PCIE控制器,以通过所述第三PCIE控制器的地址转换功能将所述第二待传输数据转发到所述第三芯片的内存中,以供所述第三芯片从所述第三芯片的内存中读取所述第二待传输数据。
在一实施例中,所述获取所述第一芯片待传输至第二芯片的第一待传输数据之前,还包括:
检测到所述第一PCIE控制器与所述第二PCIE控制器上电连通时,间隔第一预设时长后发送第一连接请求至所述第二PCIE控制器,以在所述第一PCIE控制器与第二PCIE控制器之间形成第一数据通道和第二数据通道,第一数据通道和第二数据通道组成全双工数据通道;
其中,所述第二芯片在检测到所述第一PCIE控制器与所述第二PCIE控制器上电连通时,间隔第二预设时长后发送第二连接请求至所述第一PCIE控制器,以在所述第一PCIE控制器与第二PCIE控制器之间形成所述第一数据通道和所述第二数据通道,所述第二预设时长与所述第一预设时长可以不相等。
在一实施例中,所述间隔第一预设时长后发送第一连接请求至所述第二PCIE控制器,以在所述第一PCIE控制器与第二PCIE控制器之间形成第一数据通道和第二数据通道,包括:
间隔所述第一预设时长后发送所述第一连接请求至所述第二PCIE控制器;
在接收所述第二PCIE控制器反馈的基于所述第一连接请求的连接确认请求时,执行PCIE初始化处理,所述PCIE初始化处理包括确定所述第一PCIE控制器与所述第二PCIE控制器之间的数据传输速率阈值,以在所述第一PCIE控制器与第二PCIE控制器之间形成设定有所述数据传输速率阈值的所述第一数据通道和所述第二数据通道。
另一方面,本申请还提供一种基于PCIE控制器的多芯片通信设备,所述基于PCIE控制器的多芯片通信设备用于执行以实现上述中任一项所述的基于PCIE控制器的多芯片通信方法中的步骤。
另一方面,本申请还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行上述中任一项所述的基于PCIE控制器的多芯片通信方法中的步骤。
本申请实施例提供的基于PCIE控制器的多芯片通信方法、设备及存储介质,方法应用于第一芯片,第一芯片的第一PCIE控制器与第二芯片的第二PCIE控制器连接,方法包括:获取第一芯片待传输至第二芯片的第一待传输数据;利用第一PCIE控制器的直接内存访问引擎,将第一待传输数据传输至第二PCIE控制器,以通过所述第二PCIE控制器的地址转换功能将所述第一待传输数据转发到所述第二芯片的内存中,以供第二芯片从所述第二芯片的内存中读取第一待传输数据。本申请实施例通过将不同芯片的PCIE控制器直连,并利用直接内存访问引擎完成多个芯片之间的数据传输,以将用于访问磁盘等附加设备的DMA技术应用于多个芯片之间的通信,避免了加速器模块的限制,提高了多芯片通信的IO吞吐能力,降低了成本,提供了更简单的芯片高速互联组网的拓扑结构。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例中提供的基于PCIE控制器的多芯片DMA通信的一个示意图;
图2是本申请实施例中提供的基于PCIE控制器的多芯片通信方法的一个流程示意图;
图3是本申请实施例中提供的基于PCIE控制器的多芯片通信方法的另一流程示意图;
图4是本申请实施例中提供的多芯片的一种连接关系的示意图;
图5是本申请实施例中提供的计算机设备的一个实施例终端结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本申请中,“示例性”一词用来表示“用作例子、例证或说明”。本申请中被描述为“示例性”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任何技术人员能够实现和使用本申请,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本申请。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必要的细节使本申请的描述变得晦涩。因此,本申请并非旨在限于所示的实施例,而是与符合本申请所公开的原理和特征的最广范围相一致。
需要说明的是,本申请实施例方法由于是在计算机设备中执行,各计算机设备的处理对象均以数据或信息的形式存在,例如时间,实质为时间信息,可以理解的是,后续实施例中若提及数量、位置等,均为对应的数据存在,以便计算机设备进行处理,具体此处不作赘述。
本申请实施例提供一种基于PCIE控制器的多芯片通信方法、设备及存储介质,以下分别进行详细说明。
首先,如图1所示,图1为基于PCIE控制器的多芯片DMA通信的一个示意图。
在图1中,多芯片互联包括第一芯片与第二芯片的互联。第一芯片中包括第一PCIE控制器,第二芯片中包括第二PCIE控制器,第一PCIE控制器与第二PCIE控制器直接电连接,以便于基于第一PCIE控制器、第二PCIE控制器实现第一芯片与第二芯片的直接通信。其中,PCIE(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,用于实现第一芯片与第二芯片之间的高速数据传输。
在本实施例中,为了实现第一PCIE控制器与第二PCIE控制器之间的直接通信,在第一PCIE控制器、第二PCIE控制器中分别设置有DMA(Direct Memory Access,直接内存访问)的IP核(Intellectual Property core,知识产权核),在第一PCIE控制器、第二PCIE控制器之间需要通信时,可通过DMA的IP核来实现,例如在第一PCIE控制器需要发送数据至第二PCIE控制器时,可通过DMA的IP核调用第一芯片中存储的标准的直接内存访问引擎,来将数据从第一PCIE控制器传输至第二PCIE控制器。
并且,在图1中,第一PCIE控制器与第二PCIE控制器形成有用于DMA数据传输的第一数据通道,该第一数据通道的数据传输方向为从第一PCIE控制器至第二PCIE控制器。类似地,第一PCIE控制器与第二PCIE控制器形成有用于DMA数据传输的第二数据通道,该第二数据通道的数据传输方向为从第二PCIE控制器至第一PCIE控制器。第一数据通道和第二数据通道组成全双工数据通道,以便于第一PCIE控制器与第二PCIE控制器之间的双向同时传输数据。
进一步地,参照图2,基于图1所示的基于PCIE控制器的多芯片通信连接,提供一种基于PCIE控制器的多芯片通信方法。具体地,基于PCIE控制器的多芯片通信方法包括:
201、获取第一芯片待传输至第二芯片的第一待传输数据;
在本实施例中,第一待传输数据为第一芯片需要通过第一PCIE控制器传输至第二芯片的数据。
202、利用第一PCIE控制器的直接内存访问引擎,将第一待传输数据传输至第二PCIE控制器,以通过第二PCIE控制器的地址转换功能将第一待传输数据转发到第二芯片的内存中,以供第二芯片从第二芯片的内存中读取第一待传输数据。
在本实施例中,第一PCIE控制器对接至直接内存访问引擎,因此可通过DMA的IP核,调用直接内存访问引擎来实现第一PCIE控制器至第二PCIE控制器的数据传输,从而将第一待传输数据传输至第二PCIE控制器。
需要说明的是,DMA技术一般是用于将数据从附加设备(如磁盘驱动器)直接发送到计算机主板的内存上,在本实施例中,将DMA技术应用于第一PCIE控制器与第二PCIE控制器直连场景下的数据传输,实现了第一PCIE控制器与第二PCIE控制器直连时的数据传输适配。并且,本申请是直接调用直接内存访问引擎来完成数据传输,简化了数据传输上的使用成本。
在本实施例的技术方案中,通过将不同芯片的PCIE控制器直连,并利用直接内存访问引擎完成多个芯片之间的数据传输,以将用于访问磁盘等附加设备的DMA技术应用于多个芯片之间的通信,避免了加速器模块的限制,提高了多芯片通信的IO(Input/Output,输入/输出)吞吐能力。并且,在RC-N-RC的方案中,由于加速器模块的存在,会提高实施成本,并且网络结构比较单一、缺乏灵活性,因此本实施例例的技术方案,还可降低实施成本,并提供了更简单、灵活的芯片高速互联组网的拓扑结构。
参照图3,考虑到多媒体以及音频传输等场景时对时延要求比较高,第一PCIE控制器的直接内存访问引擎,将第一待传输数据传输至第二PCIE控制器,以通过第二PCIE控制器的地址转换功能将第一待传输数据转发到第二芯片的内存中,以供第二芯片从第二芯片的内存中读取第一待传输数据,可以包括:
301、利用第一PCIE控制器的直接内存访问引擎,由硬件(例如第一PCIE控制器)开始执行将第一待传输数据发送至第一数据通道的步骤,以使第二PCIE控制器在接收到第一待传输数据时,通过第二PCIE控制器的地址转换功能将第一待传输数据转发到第二芯片的内存中;
在本实施例中,第一PCIE控制器将第一待传输数据发送至第一数据通道的步骤执行需要一定时间,第二PCIE控制器开始写入第一待传输数据也需要一定时间,因此存在开始执行和执行结束的动作。其中,第二芯片的内存可以是第二芯片中的受保护内存,第二芯片的软件可访问并使用该可保护内存中存储的第一待传输数据。
302、当第一待传输数据发送完成时,利用第一PCIE控制器的直接内存访问引擎,将第一待传输数据的中断指令由硬件(例如第一PCIE控制器)自动同时发送至第一数据通道,其中,在第二PCIE控制器将第一待传输数据转发到第二芯片的内存中后,第二芯片基于中断指令,通知第二芯片中的软件读取第二芯片的内存中的第一待传输数据。
在本实施例中,由于第一待传输数据的传输需要一定时间,因此存在第一待传输数据发送完成,而第二PCIE控制器仍在将从第一数据通道接收到的第一待传输数据转发到第二芯片的内存中的情况。此时,第一PCIE控制器可在第一待传输数据发送完成时,利用第一PCIE控制器的直接内存访问引擎,立即直接将第一待传输数据的中断指令发送至第一数据通道,以便于在第二PCIE控制器将第一待传输数据转发到第二芯片的内存中的动作完成后,第二PCIE控制器可立即得到中断指令,从而使第二芯片立即知晓第一待传输数据转发到第二芯片的内存中的动作完成的情况,这样,第二芯片的软件可访问并使用第二芯片的内存中的第一待传输数据。这样,在第一待传输数据为多媒体、音频传输等对时延要求比较高的数据时,第二芯片的软件可更加快速开始读取并播放写入完成的多媒体、音频传输等数据,从而降低多媒体、音频等场景下的时延。
需要举例说明的是,在CPU向磁盘中写入数据时,一般是在数据发送并写入完成后,才开始发出中断指令,使得磁盘需要等待较长时间才可接收到中断指令,从而知晓数据已发送并写入完成。而在本实施例中,在基于第一PCIE控制器、第二PCIE控制器实现第一芯片与第二芯片之间的通信时,则是在数据发送完成,但第二PCIE控制器将第一待传输数据转发到第二芯片的内存中的动作还未完成时,就立即发送中断指令,这样第二芯片需要等待的时间更短,从而降低时延。其中,由于第一待传输数据和中断指令均是通过第一数据通道来传输的,而中断指令是在第一待传输数据发送完成后立即发出的,因此第二PCIE控制器也必然是先得到通过第一数据通道传输的第一待传输数据,再得到通过第一数据通道传输的中断指令,因此不会出现先得到中断指令,再得到第一待传输数据的情况。
在进一步的实施例中,将第一待传输数据的中断指令发送至第一数据通道之前,还可以包括:
401、获取第一PCIE控制器中预先存储的第二PCIE控制器的第二中断地址;
在本实施例中,事先对第一PCIE控制器、第二PCIE控制器进行了中断机制的适配。具体地,对第一PCIE控制器、第二PCIE控制器中分别设置了标准的中断控制器的API接口,以供第一PCIE控制器、第二PCIE控制器在需要触发中断时,通过该API接口实现中断的触发。标准的中断控制器可以是MSI(Message Signaled Interrupts,消息信号中断)/MSI-X(Extended Message Signaled Interrupts,扩展消息信号中断)等的中断控制器。
其中,由于在RC-EP(Endpoint,终端设备)的模式下,是由RC主动探测EP,并随机分配给EP一个中断地址(target msi address),并存储在RC的寄存器中。但对于RC-RC的连接(即第一PCIE控制器与第二PCIE控制器直连),由于对端也是PCIE控制器,无法对对端的PCIE控制器进行配置,因此本申请实施例中可事先设置好固定的中断地址,即第一PCIE控制器中预先存储的第二PCIE控制器的第二中断地址,第二PCIE控制器中预先存储的第一PCIE控制器的第一中断地址。第一中断地址、第二中断地址均为固定地址。
402、获取第一待传输数据的预设中断号;
在本实施例中,不同的行为预先设置有不同的中断号,因此可获取第一待传输数据的预设中断号,以用于触发第一待传输数据的中断信号。
403、生成向第二中断地址写入预设中断号的写入指令,并作为中断指令,以供第二PCIE控制器在第二中断地址处获取数据并转换为预设中断号,从而触发第一待传输数据的中断信号,其中,第二芯片在接收中断信号时,读取第二芯片的内存中的第一待传输数据。
在本实施例中,基于第一PCIE控制器发送的向第二中断地址写入预设中断号的写入指令,第二PCIE控制器的第二中断地址被写入数据,以使第二PCIE控制器可在第二中断地址处获取数据,并将转换为第二芯片可识别的预设中断号,即可在第二PCIE控制器中触发第一待传输数据的中断信号,第一待传输数据的中断信号用于表明第一待传输数据已在第二芯片的内存中写入完成。这样,第二芯片在接收中断信号时,可及时读取第二芯片的内存中的第一待传输数据。
可以看出,本实施例对第一PCIE控制器、第二PCIE控制器直连时的中断机制进行了适配,以便于基于PCIE控制器的多芯片通信。并且,本实施例将第一PCIE控制器、第二PCIE控制器对接至标准的中断控制器API,通过标准的中断控制器API即可触发中断信号,简化了数据传输时的使用成本。并且,基于上述的DMA技术、中断机制,在基于第一PCIE控制器、第二PCIE控制器直连的两个芯片之间,实现了原本基于异构SoC(System on Chip,系统级芯片)使用的RPMsg功能(Remote Processor Messaging,远程处理器消息),这样,在多个芯片之间进行通信时,可以不用感知多芯片系统与异构系统之间的差异,提高了软件的复用性与通用性,也即实现了基于PCIE控制器的多芯片通信方式的操作系统的DMA、中断控制器等基本组件的标准化,使得其它软件系统对基于PCIE控制器的多芯片互联技术可无感知迁移使用。
在本申请的一些实施例中,与第一芯片至第二芯片的第一待传输数据的传输过程类似,第二芯片也可将第二待传输数据传输至第一芯片。具体地:通过第一PCIE控制器,接收第二PCIE控制器利用第二芯片的直接内存访问引擎发送至第二数据通道的第二待传输数据;确定第二待传输数据的指定写入地址;基于指定写入地址,写入第二待传输数据。从而基于第一数据通道、第二数据通道,实现第一PCIE控制器、第二PCIE控制器之间的双向通信。
在进一步的实施例中,为了提高第一PCIE控制器与第二PCIE控制器之间的通信安全性,第一PCIE控制器中还可设置有地址转换功能,地址转换功能一般通过SMMU(systemmemory management unit,系统存储管理单元)实现。地址转换功能中包括预设的地址映射关系,用于避免利用PCIE机制互联双方上的程序恶意攻击对端操作系统。具体地,基于指定写入地址,写入第二待传输数据,可以包括:获取第一PCIE控制器的地址转换功能中存储的预设的地址映射关系;确定预设的地址映射关系中与指定写入地址关联的预设安全地址,预设安全地址为第一芯片的内存中的地址;向预设安全地址,写入第二待传输数据。从而避免向除预设安全地址之外的地址进行访问、避免恶意攻击。可以看出,本实施例采用地址转换功能,将PCIE访问的区域映射到安全域,提高了第一PCIE控制器、第二PCIE控制器双方访问的安全性。
在进一步的实施例中,如图4所示,对本申请的多芯片互联方法进行拓展。在如4中,第一芯片还包括第四PCIE控制器,第四PCIE控制器与第三芯片的第三PCIE控制器连接,即第二芯片与第三芯片并未直接连接。因此,接收第二PCIE控制器利用第二芯片的直接内存访问引擎发送至第二数据通道的第二待传输数据的步骤之后,还可以包括:确定第二待传输数据的目标传输对象,第二待传输数据的目标传输对象可通过解析第二待传输数据实现;在目标传输对象为第一芯片时,执行确定第二待传输数据的指定写入地址及其后续步骤。而在目标传输对象为第三芯片时,将第二待传输数据通过第四PCIE控制器传输至第三PCIE控制器,以通过第三PCIE控制器的地址转换功能将第二待传输数据转发到第三芯片的内存中,以供第三芯片从第三芯片的内存中读取第二待传输数据。从而使得第一芯片可完成第二待传输数据在不同芯片之间的转发,使得第二芯片与第三芯片在并未直接连接时可实现基于第一芯片的间接通信。
在本申请的一些实施例中,获取第一芯片待传输至第二芯片的第一待传输数据之前,即在第一PCIE控制器与第二PCIE控制器的上电初始化过程中,还可包括:检测到第一PCIE控制器与第二PCIE控制器上电连通时,间隔第一预设时长后发送第一连接请求至第二PCIE控制器,以在第一PCIE控制器与第二PCIE控制器之间形成第一数据通道和第二数据通道,第一数据通道和第二数据通道组成全双工数据通道。并且,第二芯片在检测到第一PCIE控制器与第二PCIE控制器上电连通时,间隔第二预设时长后发送第二连接请求至第一PCIE控制器,以在第一PCIE控制器与第二PCIE控制器之间形成第一数据通道和第二数据通道。其中,第二预设时长与第一预设时长可以不相等(在另一些情况下,第二预设时长与第一预设时长也可以相等,在此不做限定),从而通过软件设置来自动避免第一PCIE控制器、第二PCIE控制器同时向对方发送连接请求而产生冲突,例如第二预设时长可大于第一预设时长,这样,在第一PCIE控制器与第二PCIE控制器的上电初始化过程中,第一PCIE控制器往往可以先向第二PCIE控制器发送第一连接请求,而第二PCIE控制器在接收到该第一连接请求时,则取消执行发送第二连接请求至第一PCIE控制器的步骤,而是执行对该第一连接请求进行响应的步骤。同样地,以第二预设时长小于第一预设时长为例,检测到第一PCIE控制器与第二PCIE控制器上电连通时,若第一PCIE控制器在第一预设时长内接收到第二PCIE控制器发送的第二连接请求,则取消执行发送第一连接请求至第二PCIE控制器,而是执行对该第二连接请求进行响应的步骤。
需要举例说明的是,在RC-EP(Endpoint,终端设备)的模式下,往往是由RC发起连接请求,而EP只能被动接收连接请求。但对于RC-RC的连接(即第一PCIE控制器与第二PCIE控制器直连),由于对端也是PCIE控制器,双方的PCIE控制器均可发起连接请求,因此可通过第二预设时长、第一预设时长之间的取值不同,避免双方的PCIE控制器同时发起连接请求而产生冲突。
在进一步的实施例中,第一连接请求、第二连接请求相当于通信连接时的握手请求,并可用于获取第一PCIE控制器、第二PCIE控制器分别的最大数据传输能力值(即负载能力,payload)、带宽等信息。因此,间隔第一预设时长后发送第一连接请求至第二PCIE控制器,以在第一PCIE控制器与第二PCIE控制器之间形成第一数据通道和第二数据通道,可以包括:间隔第一预设时长后发送第一连接请求至第二PCIE控制器;在接收第二PCIE控制器反馈的基于第一连接请求的连接确认请求时,执行PCIE初始化处理,PCIE初始化处理包括确定第一PCIE控制器与第二PCIE控制器之间的数据传输速率阈值,以在第一PCIE控制器与第二PCIE控制器之间形成设定有数据传输速率阈值的第一数据通道和第二数据通道,以对第一PCIE控制器与第二PCIE控制器的数据传输能力进行匹配。其中,数据传输速率阈值可基于第一PCIE控制器、第二PCIE控制器分别的最大数据传输能力值来协商得到,例如可将第一PCIE控制器的最大数据传输能力值、第二PCIE控制器的最大数据传输能力值中的较小值,作为数据传输速率阈值。
在进一步的实施例中,需要举例说明的是,在RC-EP(Endpoint,终端设备)的模式下,RC在执行PCIE初始化处理需要识别EP属于哪一种PCIE的设备(即确定EP所属的PCIE设备类别,例如PCIE设备类别可以是网卡、固态硬盘等),但对于RC-RC的连接(即第一PCIE控制器与第二PCIE控制器直连),由于对端也是PCIE控制器,并不存在PCIE设备类别,因此上述的PCIE初始化处理中可删除确定对端所属的PCIE设备类别的步骤(即不执行确定对端所属的PCIE设备类别的步骤),从而简化PCIE初始化处理,提高PCIE初始化效率。
在本申请的一些实施例中,第一PCIE控制器、第二PCIE控制器中还分别设置有指定的数据传输路径(inbound/outbound),指定的数据传输路径用于限制第一待传输数据、第二待传输数据在第一PCIE控制器与第二PCIE控制器之间的数据传输路径,进一步加强第一PCIE控制器与第二PCIE控制器之间的访问安全。
本申请实施例还提供一种基于PCIE控制器的多芯片通信设备,基于PCIE控制器的多芯片通信设备用于执行以实现上述实施例中任一实施例所述的基于PCIE控制器的多芯片通信方法中的步骤。
本申请实施例还提供一种计算机设备,其集成了本申请实施例所提供的任一种基于PCIE控制器的多芯片通信设备。如图5所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,具体来讲:
该计算机设备可以包括一个或者一个以上处理核心的处理器501、一个或一个以上计算机可读存储介质的存储器502、电源503和输入单元504等部件。本领域技术人员可以理解,图5中示出的计算机设备结构并不以构建对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器501是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选地,处理器501可包括一个或多个处理核心;优选的,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。
存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器501对存储器502的访问。
计算机设备还包括给各个部件供电的电源503,优选的,电源503可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源503还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该计算机设备还可包括输入单元504,该输入单元504可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器501会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能,例如实现上述的基于PCIE控制器的多芯片通信方法。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种计存储介质,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行本申请实施例所提供的任一种基于PCIE控制器的多芯片通信方法中的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对其他实施例的详细描述,此处不再赘述。
具体实施时,以上各个单元或结构可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元或结构的具体实施可参见前面的方法实施例,在此不再赘述。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种基于PCIE控制器的多芯片通信方法、设备及存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;对于本领域技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种基于PCIE控制器的多芯片通信方法,其特征在于,所述方法应用于第一芯片,第一芯片的第一PCIE控制器与第二芯片的第二PCIE控制器连接,所述方法包括:
获取所述第一芯片待传输至所述第二芯片的第一待传输数据;
利用所述第一PCIE控制器的直接内存访问引擎,将所述第一待传输数据传输至所述第二PCIE控制器,以通过所述第二PCIE控制器的地址转换功能将所述第一待传输数据转发到所述第二芯片的内存中,以供所述第二芯片从所述第二芯片的内存中读取所述第一待传输数据。
2.如权利要求1所述的基于PCIE控制器的多芯片通信方法,其特征在于,所述第一PCIE控制器与第二PCIE控制器连接形成有第一数据通道,所述利用所述第一PCIE控制器的直接内存访问引擎,将所述第一待传输数据传输至所述第二PCIE控制器,以通过所述第二PCIE控制器的地址转换功能将所述第一待传输数据转发到所述第二芯片的内存中,以供所述第二芯片从所述第二芯片的内存中读取所述第一待传输数据,包括:
利用所述第一PCIE控制器的直接内存访问引擎,执行将所述第一待传输数据发送至所述第一数据通道的步骤,以使所述第二PCIE控制器在接收到所述第一待传输数据时,通过所述第二PCIE控制器的地址转换功能将所述第一待传输数据转发到所述第二芯片的内存中;
当所述第一待传输数据发送完成时,利用所述第一PCIE控制器的直接内存访问引擎,将所述第一待传输数据的中断指令发送至所述第一数据通道,以供所述第二芯片在所述第二PCIE控制器将所述第一待传输数据转发到所述第二芯片的内存中后,基于所述中断指令,读取所述第二芯片的内存中的所述第一待传输数据。
3.如权利要求2所述的基于PCIE控制器的多芯片通信方法,其特征在于,所述将所述第一待传输数据的中断指令发送至所述第一数据通道之前,还包括:
获取所述第一PCIE控制器中预先存储的所述第二PCIE控制器的第二中断地址;
获取所述第一待传输数据的预设中断号;
生成向所述第二中断地址写入所述预设中断号的写入指令,并作为所述中断指令,以供所述第二PCIE控制器在所述第二中断地址处获取数据并转换为所述预设中断号,从而触发所述第一待传输数据的中断信号,其中,所述第二芯片在接收所述中断信号时,读取所述第二芯片的内存中的所述第一待传输数据。
4.如权利要求2所述的基于PCIE控制器的多芯片通信方法,其特征在于,所述第一PCIE控制器与第二PCIE控制器连接形成有第二数据通道,所述方法还包括:
通过所述第一PCIE控制器,接收所述第二PCIE控制器利用所述第二芯片的直接内存访问引擎发送至所述第二数据通道的第二待传输数据;
确定所述第二待传输数据的指定写入地址;
基于所述指定写入地址,写入所述第二待传输数据。
5.如权利要求4所述的基于PCIE控制器的多芯片通信方法,其特征在于,所述基于所述指定写入地址,写入所述第二待传输数据包括:
通过所述第一PCIE控制器,获取所述第一PCIE控制器的地址转换功能中预设的地址映射关系;
确定所述预设的地址映射关系中与所述指定写入地址关联的预设安全地址,所述预设安全地址为所述第一芯片的内存中的地址;
向所述预设安全地址,写入所述第二待传输数据。
6.如权利要求5所述的基于PCIE控制器的多芯片通信方法,其特征在于,所述第一芯片还包括第四PCIE控制器,所述第四PCIE控制器与第三芯片的第三PCIE控制器连接,所述接收所述第二PCIE控制器利用所述第二芯片的直接内存访问引擎发送至所述第二数据通道的第二待传输数据的步骤之后,还包括:
确定所述第二待传输数据的目标传输对象;
在所述目标传输对象为所述第一芯片时,执行所述确定所述第二待传输数据的指定写入地址的步骤,其中,在所述目标传输对象为所述第三芯片时,利用所述第四PCIE控制器的直接内存访问引擎,将所述第二待传输数据传输至所述第三PCIE控制器,以通过所述第三PCIE控制器的地址转换功能将所述第二待传输数据转发到所述第三芯片的内存中,以供所述第三芯片从所述第三芯片的内存中读取所述第二待传输数据。
7.如权利要求1所述的基于PCIE控制器的多芯片通信方法,其特征在于,所述获取所述第一芯片待传输至第二芯片的第一待传输数据之前,还包括:
检测到所述第一PCIE控制器与所述第二PCIE控制器上电连通时,间隔第一预设时长后发送第一连接请求至所述第二PCIE控制器,以在所述第一PCIE控制器与第二PCIE控制器之间形成第一数据通道和第二数据通道,第一数据通道和第二数据通道组成全双工数据通道;
其中,所述第二芯片在检测到所述第一PCIE控制器与所述第二PCIE控制器上电连通时,间隔第二预设时长后发送第二连接请求至所述第一PCIE控制器,以在所述第一PCIE控制器与第二PCIE控制器之间形成所述第一数据通道和所述第二数据通道,所述第二预设时长与所述第一预设时长不相等。
8.如权利要求7所述的基于PCIE控制器的多芯片通信方法,其特征在于,所述间隔第一预设时长后发送第一连接请求至所述第二PCIE控制器,以在所述第一PCIE控制器与第二PCIE控制器之间形成第一数据通道和第二数据通道,包括:
间隔所述第一预设时长后发送所述第一连接请求至所述第二PCIE控制器;
在接收所述第二PCIE控制器反馈的基于所述第一连接请求的连接确认请求时,执行PCIE初始化处理,所述PCIE初始化处理包括确定所述第一PCIE控制器与所述第二PCIE控制器之间的数据传输速率阈值,以在所述第一PCIE控制器与第二PCIE控制器之间形成设定有所述数据传输速率阈值的所述第一数据通道和所述第二数据通道。
9.一种基于PCIE控制器的多芯片通信设备,其特征在于,所述基于PCIE控制器的多芯片通信设备用于执行以实现权利要求1至8中任一项所述的基于PCIE控制器的多芯片通信方法中的步骤。
10.一种存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求1至8中任一项所述的基于PCIE控制器的多芯片通信方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310667701.XA CN116401189B (zh) | 2023-06-07 | 2023-06-07 | 基于pcie控制器的多芯片通信方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310667701.XA CN116401189B (zh) | 2023-06-07 | 2023-06-07 | 基于pcie控制器的多芯片通信方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116401189A true CN116401189A (zh) | 2023-07-07 |
CN116401189B CN116401189B (zh) | 2023-10-10 |
Family
ID=87009083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310667701.XA Active CN116401189B (zh) | 2023-06-07 | 2023-06-07 | 基于pcie控制器的多芯片通信方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116401189B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8244930B1 (en) * | 2010-05-05 | 2012-08-14 | Hewlett-Packard Development Company, L.P. | Mechanisms for synchronizing data transfers between non-uniform memory architecture computers |
CN109828843A (zh) * | 2019-01-30 | 2019-05-31 | 郑州云海信息技术有限公司 | 一种计算节点间数据传输的方法、系统及电子设备 |
CN114048164A (zh) * | 2022-01-14 | 2022-02-15 | 湖北芯擎科技有限公司 | 芯片互联方法、系统、设备及可读存储介质 |
CN115714839A (zh) * | 2022-09-09 | 2023-02-24 | 维沃移动通信有限公司 | 图像处理电路、装置、方法、芯片及电子设备 |
CN115994115A (zh) * | 2023-03-22 | 2023-04-21 | 成都登临科技有限公司 | 芯片控制方法、芯片组及电子设备 |
-
2023
- 2023-06-07 CN CN202310667701.XA patent/CN116401189B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8244930B1 (en) * | 2010-05-05 | 2012-08-14 | Hewlett-Packard Development Company, L.P. | Mechanisms for synchronizing data transfers between non-uniform memory architecture computers |
CN109828843A (zh) * | 2019-01-30 | 2019-05-31 | 郑州云海信息技术有限公司 | 一种计算节点间数据传输的方法、系统及电子设备 |
CN114048164A (zh) * | 2022-01-14 | 2022-02-15 | 湖北芯擎科技有限公司 | 芯片互联方法、系统、设备及可读存储介质 |
CN115714839A (zh) * | 2022-09-09 | 2023-02-24 | 维沃移动通信有限公司 | 图像处理电路、装置、方法、芯片及电子设备 |
CN115994115A (zh) * | 2023-03-22 | 2023-04-21 | 成都登临科技有限公司 | 芯片控制方法、芯片组及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116401189B (zh) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200351354A1 (en) | System and method for supporting data communication in a heterogeneous environment | |
JP2004021613A (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
WO2015070640A1 (zh) | 设备远程访问的方法、瘦客户端和虚拟机 | |
US11449456B2 (en) | System and method for scheduling sharable PCIe endpoint devices | |
JP5242100B2 (ja) | 通信システム内のポートのアクティブ状態からスタンバイ状態への遷移 | |
CN112100100A (zh) | Spi通信方法及spi设备 | |
JP2002055936A (ja) | Usbデバイス機器、usbデバイス機器間の通信システムおよび通信方法 | |
US9170963B2 (en) | Apparatus and method for generating interrupt signal that supports multi-processor | |
JP3726898B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
CN114817110B (zh) | 一种数据传输方法及装置 | |
US20160077986A1 (en) | Electronic apparatus providing real-time switching and sharing of usb electronic devices among hosts | |
JPH08328991A (ja) | インタフェース装置 | |
JP3636158B2 (ja) | データ転送制御装置及び電子機器 | |
CN101479711B (zh) | 供装置在总线上共享公共地址的设备、方法和系统 | |
JP2005529430A (ja) | バスシステム、バスシステム内で用いるためのステーション、及びバスインタフェース | |
CN116401189B (zh) | 基于pcie控制器的多芯片通信方法、设备及存储介质 | |
CN114138481A (zh) | 一种数据处理方法、装置及介质 | |
US20130311699A1 (en) | Operations using direct memory access | |
JP3636160B2 (ja) | データ転送制御装置、電子機器及びデータ転送制御方法 | |
TWI789122B (zh) | 指令轉換系統以及指令轉換方法 | |
CN109189705A (zh) | 一种usb扩展方法、装置、设备、存储介质及系统 | |
JPH0511938A (ja) | 高機能並列ポートインタフエース | |
EP1096734A2 (en) | Data transfer control device and electronic equipment | |
CN116594951B (zh) | 一种基于fpga的数据传输系统及方法 | |
CN114884768B (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 | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Zhou Mingrui Inventor after: Zhou Hai Inventor after: Shao Hua Inventor before: Zhou Mingrui Inventor before: Zhou Hai Inventor before: Shao Hua |