CN112817899A - 基于pcie的数据传输方法、装置、存储介质和电子设备 - Google Patents
基于pcie的数据传输方法、装置、存储介质和电子设备 Download PDFInfo
- Publication number
- CN112817899A CN112817899A CN202110415664.4A CN202110415664A CN112817899A CN 112817899 A CN112817899 A CN 112817899A CN 202110415664 A CN202110415664 A CN 202110415664A CN 112817899 A CN112817899 A CN 112817899A
- Authority
- CN
- China
- Prior art keywords
- memory address
- equipment
- address
- pcie
- data transmission
- 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
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/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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
Abstract
本发明公开一种基于PCIE的数据传输方法、装置、存储介质和电子设备,包括:交换设备从RC设备获取内存Memory地址的映射关系,所述Memory地址的映射关系为:所述RC设备为所述EP设备的BAR分配的第一Memory地址与所述EP设备为自身的BAR分配的第二Memory地址的映射关系;所述交换设备接收第一EP设备的写请求,所述写请求的目的地址为第二EP设备的第一Memory地址;所述交换设备根据所述Memory地址的映射关系,确定所述第二EP设备的第一Memory地址所映射的第二EP设备的第二Memory地址;所述交换设备将所述写请求的数据写入所述第二EP设备的第二Memory地址对应的BAR,可以提高EP设备之间的数据传输效率。
Description
技术领域
本发明涉及数据传输领域,尤其涉及一种基于PCIE的数据传输方法、装置、存储介质和电子设备。
背景技术
PCIE 是外围设备互连(Peripheral Component Interconnect Express)的简称,作为一种通用的总线接口标准,在目前的计算机系统中得到了非常广泛的应用。
PCIE采用的是树形拓扑结构,它的体系架构由RC(根复合体,root complex)设备和EP(端点,endpoint)设备组成。RC设备是PCIE最重要的一个组成部件,与整个系统的其他部分进行通讯。PCIE的EP设备,比如网卡、显卡等。PCIE树形拓扑结构中一般还会有Switch芯片(交换设备),用于扩展PCIE总线,给RC设备提供更多的端口用来连接更多的EP设备。
而现有的方案中,EP设备之间的数据传输时都需要将数据传输给RC设备,RC设备先将数据写入自己的地址空间,在确定了对端EP设备的地址之后,再从自己的地址空间中读出数据,写入对端EP设备,完成EP设备之间的数据传输,如此,EP设备之间的数据传输均需要在RC设备上执行一次读写操作,在EP设备之间传输大数据时,效率较低。
发明内容
本发明提供一种基于PCIE的数据传输方法、装置、存储介质和电子设备,以至少解决现有技术中存在的以上技术问题。
本发明一方面提供一种基于PCIE的数据传输方法,该方法应用于交换设备,所述交换设备一侧通过外围设备互连PCIE总线与根复合体RC设备连接,所述交换设备另一侧通过PCIE总线与多个端点EP设备连接,该方法包括:
从所述RC设备获取存储Memory地址的映射关系,所述Memory地址的映射关系为:所述RC设备为所述EP设备的基地址寄存器BAR分配的第一Memory地址与所述EP设备为自身的BAR分配的第二Memory地址的映射关系;
接收第一EP设备的写请求,所述写请求的目的地址为第二EP设备的第一Memory地址;
根据所述Memory地址的映射关系,确定所述第二EP设备的第一Memory地址所映射的第二EP设备的第二Memory地址;
将所述写请求的数据写入所述第二EP设备的第二Memory地址对应的BAR。
在一个示例中,所述写请求的目的地址由所述RC设备告知所述第一EP设备;
所述写请求的数据量为所述第二EP设备的第二Memory地址对应的BAR的滑动窗口的长度,所述滑动窗口的长度由所述RC设备告知所述第一EP设备,所述滑动窗口的长度为固定长度。
在一个示例中,所述目的地址是在所述RC设备接收到第一EP设备的数据传输请求时,由所述RC设备根据数据传输请求的所述第二EP设备的第二Memory地址,查找所述Memory地址的映射关系得到的。
在一个示例中,所述滑动窗口的起始地址由所述RC设备接收到第一EP设备的数据传输请求时对所述滑动窗口进行配置的,所述滑动窗口的起始地址为所述数据传输请求的所述第二EP设备的第二Memory地址。
在一个示例中,所述目的地址是在所述RC设备接收到所述第二EP设备发送的写请求完成消息时,由所述RC设备对所述滑动窗口重新配置后根据所述滑动窗口当前的起始地址确定的;
若所述滑动窗口当前的起始地址属于所述第二EP设备的第二Memory地址对应的BAR,则所述目的地址为该BAR对应的第一Memory地址。
在一个示例中,所述滑动窗口的起始地址是在所述RC设备接收到写请求完成的消息时,由所述RC设备对所述滑动窗口重新配置的,重新配置的滑动窗口的起始地址为滑动窗口的上一个结束地址。
在一个示例中,所述交换设备将所述写请求的数据写入所述第二EP设备的第二Memory地址对应的BAR,包括:
确定所述第二EP设备的第二Memory地址对应的BAR;
在所述第二EP设备的第二Memory地址对应的BAR的所述滑动窗口中写入所述写请求的数据。
本发明另一方面提供一种基于PCIE的数据传输装置,该装置应用于交换设备,所述交换设备一侧通过PCIE总线与RC设备连接,所述交换设备另一侧通过PCIE总线与多个EP设备连接,该装置包括:
配置模块,用于从所述RC设备获取Memory地址的映射关系,所述Memory地址的映射关系为:所述RC设备为所述EP设备的BAR分配的第一Memory地址与所述EP设备为自身的BAR分配的第二Memory地址的映射关系;
交互模块,用于接收第一EP设备的写请求,所述写请求的目的地址为第二EP设备的第一Memory地址;
映射模块,用于根据所述Memory地址的映射关系,确定所述第二EP设备的第一Memory地址所映射的第二EP设备的第二Memory地址;
访问模块,用于将所述写请求的数据写入所述第二EP设备的第二Memory地址对应的BAR。
本发明再一方面提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行本发明所述的基于PCIE的数据传输方法。
本发明还一方面提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本发明所述的基于PCIE的数据传输方法。
在上述的过程中,交换设备能根据地址映射判断写请求的目的地址是在第二EP设备上,根据RC配置好的第二EP设备的滑动窗口,可实现直接将第一EP设备的数据发往第二EP设备,交换设备无需对传输数据在本地空间再进行读写操作,相比现有通过RC设备实现的EP设备之间的数据传输方案,节省了一次读写操作,在传输大数据需要进行多次传输的场景下,由于读写操作的减少,能够显著的提高数据传输效率。
附图说明
图1示出了PCIE架构示意图;
图2示出了本公开一示例提供的基于PCIE的数据传输方法流程示意图;
图3示出了本公开一示例提供的基于PCIE的数据传输过程示意图;
图4示出了本公开一示例提供的基于PCIE的数据传输装置结构示意图。
具体实施方式
为使本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了提高PCIE的EP设备之间大数据传输的效率,本公开一示例提供了一种基于PCIE的数据传输方法,该方法适用于如图1所示的PCIE架构,该架构中包括:RC设备、多个EP设备(图中示例性的为第一EP设备和第二EP设备)和交换设备,其中,交换设备用于扩展PCIE总线,给RC设备提供更多的端口用来连接更多的EP设备。
如图2所示,为本公开一示例提供的基于PCIE的数据传输方法,该方法应用于图1所示的交换设备,交换设备一侧通过PCIE总线与RC设备连接,另一侧通过PCIE总线与多个EP设备连接,该方法包括:
步骤201,从RC设备获取Memory地址的映射关系,Memory地址的映射关系为:RC设备为EP设备的BAR分配的第一Memory地址与EP设备为自身的BAR分配的第二Memory地址的映射关系。
交换设备上电时,对PCIE的拓扑进行扫描,能够从RC设备获取到Memory地址的映射关系,该映射关系记录的是RC设备为EP设备的BAR(基地址寄存器)分配的Memory地址(称为第一Memory地址)与EP设备为自身的BAR分配的Memory地址(称为第二Memory地址)的映射关系。
上述的Memory地址是指PCIE MEMORY地址。每个PCIE设备(RC设备和EP设备)均有自己的PCIE MEMORY空间,每个EP设备均有自己的多个BAR,EP设备上电时会将自己的PCIEMEMORY空间分配给多个BAR,即为每个BAR分配一个PCIE MEMORY地址(即第二Memory地址)。RC设备上电时,扫描所有的EP,RC将自己的PCIE MEMORY地址和EP的PCIE MEMORY进行映射,即EP的每个BAR对应了两个Memory地址,一个是由EP自己分配的第二Memory地址,一个是由RC分配的第一Memory地址,第一Memory地址和第二Memory地址之间存在映射关系。
步骤202,接收第一EP设备的写请求,写请求的目的地址为第二EP设备的第一Memory地址。
在EP之间进行数据传输时,将数据的发送方称为第一EP设备,将数据的接收方称为第二EP设备。
在第一EP设备发送写请求之前,第一EP设备先向RC设备发送向第二EP设备传输数据的请求(称为数据传输请求),该请求中声明了第二EP设备的某个第二Memory地址以及本次请求传输的数据量。
RC设备收到该数据传输请求后,根据其中携带的第二EP设备的第二Memory地址,确定出本次传输的数据写入的BAR,并配置该BAR的滑动窗口,包括:确定滑动窗口的起始地址和滑动窗口的长度,起始地址为该请求中携带的第二Memory地址;滑动窗口的长度为预设的固定长度。这里,设备可供写入数据的地址空间可用窗口来表示,而多次对设备写入数据时,由于每次写入数据的地址空间发生了变化,因此,需要对窗口的地址进行修改、即窗口发生了滑动,根据滑动后的窗口执行数据的写入操作,这种地址空间的表示方式可称为滑动窗口。
进行滑动窗口配置的同时,RC设备还可以根据Memory地址的映射关系确定该第二Memory地址对应的第一Memory地址。
RC设备将该第一Memory地址和滑动窗口的长度告知第一EP设备,第一EP设备依据此来构造第一个写请求,其中,第一Memory地址作为写请求的目的地址,滑动窗口的长度用于限制传输的数据量大小。
对于大数据量的传输而言,一次写请求不足以传输完成所有数据,需要多次传输。
那么,后续的传输过程如下:当某个写请求完成时,第二EP设备会通知RC设备写请求完成消息,然后,RC设备重新对该滑动窗口进行配置,包括:滑动窗口的长度不变,滑动窗口的起始地址为上一个结束地址。进一步地,RC还可以根据Memory地址的映射关系确定滑动窗口当前的起始地址所属的BAR,并确定该BAR的第一Memory地址。然后,RC设备将该第一Memory地址和滑动窗口的长度告知第一EP设备,第一EP设备依据此来构造下一个写请求。
综上所述,每一个写请求的目的地址均由所述RC设备告知所述第一EP设备;每一个写请求的数据量均为所述第二EP设备的第二Memory地址对应的BAR的滑动窗口的长度,所述滑动窗口的长度由所述RC设备告知所述第一EP设备,所述滑动窗口的长度为固定长度。
对于第一个写请求的场景:
其目的地址是在所述RC设备接收到第一EP设备的数据传输请求时,由所述RC设备根据数据传输请求的所述第二EP设备的第二Memory地址,查找所述Memory地址的映射关系得到的;
滑动窗口的起始地址由所述RC设备接收到第一EP设备的数据传输请求时对所述滑动窗口进行配置的,所述滑动窗口的起始地址为所述数据传输请求的所述第二EP设备的第二Memory地址。
对于后续写请求的场景:
其目的地址是在所述RC设备接收到所述第二EP设备发送的写请求完成消息时,由所述RC设备对所述滑动窗口重新配置后,根据所述滑动窗口当前的起始地址确定的,若所述滑动窗口当前的起始地址属于所述第二EP设备的第二Memory地址对应的BAR的Memory空间,则所述目的地址为该BAR对应的第一Memory地址;
滑动窗口的起始地址是在所述RC设备接收到写请求完成的消息时,由所述RC设备对所述滑动窗口重新配置的,重新配置的滑动窗口的起始地址为滑动窗口的上一个结束地址。
步骤203,根据Memory地址的映射关系,确定第二EP设备的第一Memory地址所映射的第二EP设备的第二Memory地址。
交换设备接受到写请求后,由于目的地址为第一Memory地址,即RC设备的Memory地址,那么需要进行映射,可以确定出对应的第二Memory地址,即第二EP设备的Memory地址。
步骤204,将写请求的数据写入第二EP设备的第二Memory地址对应的BAR。
在一个示例中,由于RC已经配置了BAR的滑动窗口,因此,交换设备根据写请求从第一EP设备的PCIE MEMORY空间读取了数据后直接在第二EP设备的该滑动窗口中写入数据即可。如此,数据在交换设备上没有执行读写操作,相比于现有技术中RC设备的传输方案(先从第一EP设备的PCIE MEMORY空间读取数据,写入本地的PCIE MEMORY空间,然后再从本地的PCIE MEMORY空间读取数据写入第二EP设备的PCIE MEMORY空间),数据传输的过程中节省了一次读写操作。当传输大数据时,由于滑动窗口的限制,需要将数据拆分多次传输,那么采用本公开的方案,可以显著减少数据读写的次数,大大提高了数据在EP之间传输的效率。
如果本次写请求完成,那么第二EP设备会向RC设备通知该事件,RC设备调整滑动窗口,将滑动窗口的上一个结束地址作为滑动窗口当前的起始地址。同时,RC设备通知第一EP设备第一个写请求完成,可以开始第二次传输,直至数据传输完毕。
下面通过再一个示例来说明上述的数据传输过程:
EP1上电,为自己的6个BAR分配的第二MEMORY地址,如表1所示:
BAR(10) | 0x10000000 |
BAR(11) | 0x20000000 |
BAR(12) | 0x30000000 |
BAR(13) | 0x40000000 |
BAR(14) | 0x50000000 |
BAR(15) | 0x60000000 |
表1
EP2上电,为自己的6个BAR分配的第二MEMORY地址,如表2所示:
BAR(20) | 0x70000000 |
BAR(21) | 0x80000000 |
BAR(22) | 0x90000000 |
BAR(23) | 0xA0000000 |
BAR(24) | 0xB0000000 |
BAR(25) | 0xC0000000 |
表2
RC上电时,扫描所有的EP,RC将自己的第一MEMORY地址分配给每个EP的每个BAR,如此,在RC端就可以针对EP维护Memory地址的映射关系:
RC为EP1分配第一MEMORY地址,并维护MEMORY地址的映射关系,如表3所示:
EP1的BAR | 第一Memory地址 | 第二Memory地址 |
BAR(10) | 0x11000 | 0x10000000 |
BAR(11) | 0x12000 | 0x20000000 |
BAR(12) | 0x 13000 | 0x30000000 |
BAR(13) | 0x14000 | 0x40000000 |
BAR(14) | 0x15000 | 0x50000000 |
BAR(15) | 0x16000 | 0x60000000 |
表3
RC为EP2分配第一MEMORY地址,并维护MEMORY地址的映射关系,如表4所示:
EP2的BAR | 第一MEMORY地址 | 第二MEMORY地址 |
BAR(20) | 0x21000 | 0x70000000 |
BAR(21) | 0x22000 | 0x80000000 |
BAR(22) | 0x 23000 | 0x90000000 |
BAR(23) | 0x24000 | 0xA0000000 |
BAR(24) | 0x25000 | 0xB0000000 |
BAR(25) | 0x26000 | 0xC0000000 |
表4
则EP1向EP2传输数据的过程如图3所示,包括:
301、EP1向RC发送数据传输请求:EP1需要向EP2的0x70000000写数据,数据大小为10M。
302、RC接收到该通知后,根据表4确定写入的BAR为BAR(20),确定0x70000000映射的第一MEMORY地址为0x21000,RC对BAR(20)的滑动窗口进行配置,将滑动窗口起始地址确定为0x70000000,滑动窗口的长度为固定长度2M。
303、RC将滑动窗口长度(2M)以及0x21000通知给EP1。
304、EP1构造写请求1,该写请求1的目的地址为0x21000,该写请求1请求的数据量为2M。
305、EP1发送该写请求1,该写请求1被EP1连接的交换设备截获。
306、交换设备根据表4确定写请求1的目的地址0x21000映射的第二MEMORY地址为0x70000000,即是向EP2的BAR(20)写数据。
307、交换设备可以直接向EP2的BAR(20)写数据。由于 BAR(20)滑动窗口已经配置完毕,起始地址在0x70000000,滑动窗口长度为2M,因此,交换设备根据写请求1从EP1读取了2M数据后,可直接向该滑动窗口中写入数据。写请求1完成后,交换设备通知EP2写请求1完成。
308、EP2将写请求1完成的消息通知RC。
309、RC接收到该消息之后,RC重新配置BAR(20)滑动窗口,起始地址确定为0x70000000+2M(即滑动窗口的上一个结束地址),根据表4进行映射可以确定:0x70000000+2M属于BAR(20)的MEMORY空间。
310、交换设备仍然将滑动窗口长度(2M)以及0x21000通知给EP1,以告知EP1开始下一次数据传输。
311、EP1收到写请求1完成的通知消息时,确定数据传输未完成,那么构造写请求2,该写请求2的目的地址为0x21000,该写请求2请求的数据量为2M。
312、EP1发送该写请求2,该写请求2被EP1连接的交换设备截获。
313、交换设备根据表4确定写请求2的目的地址0x21000映射的第二MEMORY地址为0x70000000,即是向EP2的BAR(20)写数据,如此,交换设备从EP1读取了2M数据之后,可以直接向EP2的BAR(20)写数据。
314、由于 BAR(20)滑动窗口已经配置完毕(309),起始地址在0x70000000+2M,滑动窗口长度为2M,因此,交换设备可直接向该滑动窗口中写入写请求2的数据。写请求2完成后,交换设备通知EP2写请求2完成。
315、EP2将写请求2完成的消息通知RC。
RC接收到写请求2完成的消息之后,RC重新配置滑动窗口将滑动窗口的起始地址确定为0x70000000+4M,并根据表4进行映射可以确定:0x70000000+4M属于BAR(20)对应的MEMORY空间,因此,将0x21000通知给EP1,以通知EP1开始下一次数据传输(重复执行309-315),直到写请求5完成后,EP1又收到了RC发送的开始下一次传输的消息时,EP1确定本次的10M数据传输完成,则流程结束。
为了实现上述的数据传输方法,如图4所示,本公开一示例提供了一种基于PCIE的数据传输装置,该装置应用于图1所示的交换设备中,所述交换设备一侧通过PCIE总线与RC设备连接,所述交换设备另一侧通过PCIE总线与多个EP设备连接,该装置包括:
配置模块41,用于从所述RC设备获取Memory地址的映射关系,所述Memory地址的映射关系为:所述RC设备为所述EP设备的BAR分配的第一Memory地址与所述EP设备为自身的BAR分配的第二Memory地址的映射关系;
交互模块42,用于接收第一EP设备的写请求,所述写请求的目的地址为第二EP设备的第一Memory地址;
映射模块43,用于根据所述Memory地址的映射关系,确定所述第二EP设备的第一Memory地址所映射的第二EP设备的第二Memory地址;
访问模块44,用于将所述写请求的数据写入所述第二EP设备的第二Memory地址对应的BAR。
其中,所述写请求的目的地址由所述RC设备告知所述第一EP设备;
所述写请求的数据量为所述第二EP设备的第二Memory地址对应的BAR的滑动窗口的长度,所述滑动窗口的长度由所述RC设备告知所述第一EP设备,所述滑动窗口的长度为固定长度。
其中,访问模块44,具体用于在所述第二EP设备的第二Memory地址对应的BAR的所述滑动窗口中写入所述写请求的数据。
除了上述的方法和装置,本公开示例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述基于PCIE的数据传输方法。
本公开示例还提供了一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述基于PCIE的数据传输方法。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (10)
1.一种基于PCIE的数据传输方法,其特征在于,该方法应用于交换设备,所述交换设备一侧通过外围设备互连PCIE总线与根复合体RC设备连接,所述交换设备另一侧通过PCIE总线与多个端点EP设备连接,该方法包括:
从所述RC设备获取内存Memory地址的映射关系,所述Memory地址的映射关系为:所述RC设备为所述EP设备的基地址寄存器BAR分配的第一Memory地址与所述EP设备为自身的BAR分配的第二Memory地址的映射关系;
接收第一EP设备的写请求,所述写请求的目的地址为第二EP设备的第一Memory地址;
根据所述Memory地址的映射关系,确定所述第二EP设备的第一Memory地址所映射的第二EP设备的第二Memory地址;
将所述写请求的数据写入所述第二EP设备的第二Memory地址对应的BAR。
2.根据权利要求1所述的基于PCIE的数据传输方法,其特征在于,
所述写请求的目的地址由所述RC设备告知所述第一EP设备;
所述写请求的数据量为所述第二EP设备的第二Memory地址对应的BAR的滑动窗口的长度,所述滑动窗口的长度由所述RC设备告知所述第一EP设备,所述滑动窗口的长度为固定长度。
3.根据权利要求2所述的基于PCIE的数据传输方法,其特征在于,
所述目的地址是在所述RC设备接收到第一EP设备的数据传输请求时,由所述RC设备根据数据传输请求的第二EP设备的第二Memory地址,查找所述Memory地址的映射关系得到的。
4.根据权利要求3所述的基于PCIE的数据传输方法,其特征在于,
所述滑动窗口的起始地址由所述RC设备接收到第一EP设备的数据传输请求时对所述滑动窗口进行配置的,所述滑动窗口的起始地址为所述数据传输请求的第二EP设备的第二Memory地址。
5.根据权利要求2所述的基于PCIE的数据传输方法,其特征在于,
所述目的地址是在所述RC设备接收到所述第二EP设备发送的写请求完成消息时,由所述RC设备对所述滑动窗口重新配置后根据所述滑动窗口当前的起始地址确定的;
若所述滑动窗口当前的起始地址属于所述第二EP设备的第二Memory地址对应的BAR,则所述目的地址为该BAR对应的第一Memory地址。
6.根据权利要求5所述的基于PCIE的数据传输方法,其特征在于,
所述滑动窗口的起始地址是在所述RC设备接收到写请求完成的消息时,由所述RC设备对所述滑动窗口重新配置的,重新配置的滑动窗口的起始地址为滑动窗口的上一个结束地址。
7.根据权利要求4或6所述的基于PCIE的数据传输方法,其特征在于,将所述写请求的数据写入所述第二EP设备的第二Memory地址对应的BAR,包括:
确定所述第二EP设备的第二Memory地址对应的BAR;
在所述第二EP设备的第二Memory地址对应的BAR的所述滑动窗口中写入所述写请求的数据。
8.一种基于PCIE的数据传输装置,其特征在于,该装置应用于交换设备,所述交换设备一侧通过PCIE总线与RC设备连接,所述交换设备另一侧通过PCIE总线与多个EP设备连接,该装置包括:
配置模块,用于从所述RC设备获取Memory地址的映射关系,所述Memory地址的映射关系为:所述RC设备为所述EP设备的BAR分配的第一Memory地址与所述EP设备为自身的BAR分配的第二Memory地址的映射关系;
交互模块,用于接收第一EP设备的写请求,所述写请求的目的地址为第二EP设备的第一Memory地址;
映射模块,用于根据所述Memory地址的映射关系,确定所述第二EP设备的第一Memory地址所映射的第二EP设备的第二Memory地址;
访问模块,用于将所述写请求的数据写入所述第二EP设备的第二Memory地址对应的BAR。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-7任一项所述的基于PCIE的数据传输方法。
10.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-7任一项所述的基于PCIE的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110415664.4A CN112817899B (zh) | 2021-04-19 | 2021-04-19 | 基于pcie的数据传输方法、装置、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110415664.4A CN112817899B (zh) | 2021-04-19 | 2021-04-19 | 基于pcie的数据传输方法、装置、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112817899A true CN112817899A (zh) | 2021-05-18 |
CN112817899B CN112817899B (zh) | 2021-07-09 |
Family
ID=75863643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110415664.4A Active CN112817899B (zh) | 2021-04-19 | 2021-04-19 | 基于pcie的数据传输方法、装置、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817899B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742269A (zh) * | 2021-11-03 | 2021-12-03 | 浙江国利信安科技有限公司 | 用于epa设备的数据传输方法、处理设备和介质 |
CN114647603A (zh) * | 2022-04-06 | 2022-06-21 | 星宸科技股份有限公司 | 数据传输控制装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885919A (zh) * | 2014-03-20 | 2014-06-25 | 北京航空航天大学 | 一种多dsp和fpga并行处理系统及实现方法 |
CN109445905A (zh) * | 2018-06-22 | 2019-03-08 | 华为技术有限公司 | 虚拟机数据通信方法和系统以及虚拟机配置方法和装置 |
CN112363959A (zh) * | 2021-01-14 | 2021-02-12 | 北京欣博电子科技有限公司 | 一种数据寻址方法、存储装置、芯片和数据存储系统 |
-
2021
- 2021-04-19 CN CN202110415664.4A patent/CN112817899B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885919A (zh) * | 2014-03-20 | 2014-06-25 | 北京航空航天大学 | 一种多dsp和fpga并行处理系统及实现方法 |
CN109445905A (zh) * | 2018-06-22 | 2019-03-08 | 华为技术有限公司 | 虚拟机数据通信方法和系统以及虚拟机配置方法和装置 |
CN112363959A (zh) * | 2021-01-14 | 2021-02-12 | 北京欣博电子科技有限公司 | 一种数据寻址方法、存储装置、芯片和数据存储系统 |
Non-Patent Citations (3)
Title |
---|
FPGA开发圈: "PCIe连载(二)PCIe总线架构和层次结构", 《HTTPS://WWW.SOHU.COM/A/347265561_292853》 * |
慕田会: "[Xilinx PCIe] PCIe IP使用中的地址映射", 《HTTPS://BLOG.CSDN.NET/JTW_5/ARTICLE/DETAILS/90339210》 * |
橘子汽水: "PCIE学习笔记(一)", 《HTTPS://ZHUANLAN.ZHIHU.COM/P/216034122》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742269A (zh) * | 2021-11-03 | 2021-12-03 | 浙江国利信安科技有限公司 | 用于epa设备的数据传输方法、处理设备和介质 |
CN114647603A (zh) * | 2022-04-06 | 2022-06-21 | 星宸科技股份有限公司 | 数据传输控制装置 |
CN114647603B (zh) * | 2022-04-06 | 2023-11-21 | 星宸科技股份有限公司 | 数据传输控制装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112817899B (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10394723B2 (en) | Data accessing method and PCIe storage device | |
CN112130748B (zh) | 一种数据访问方法、网卡及服务器 | |
CN112817899B (zh) | 基于pcie的数据传输方法、装置、存储介质和电子设备 | |
EP3125126A1 (en) | Data processing system and data processing method | |
CN103970520A (zh) | MapReduce架构中的资源管理方法、装置和架构系统 | |
CN113900982B (zh) | 一种分布式异构加速平台通信方法、系统、设备及介质 | |
CN105335309B (zh) | 一种数据传输方法及计算机 | |
WO2015035887A1 (zh) | 一种数据存储方法、装置及系统 | |
CN106662895B (zh) | 计算机设备和计算机设备数据读写的方法 | |
CN104461698A (zh) | 虚拟磁盘动态挂载的方法、管理装置及分布式存储系统 | |
JP2011243142A (ja) | 通信制御装置、データ通信方法及びプログラム | |
CN109446147B (zh) | 一种网络存储设备与pcie设备的数据交互方法 | |
CN112947857A (zh) | 一种数据搬移方法、装置、设备及计算机可读存储介质 | |
CN115114042A (zh) | 存储数据访问方法、装置、电子设备和存储介质 | |
CN112422485B (zh) | 一种传输控制协议的通信方法及装置 | |
CN116049081A (zh) | 一种SMBus slave数字模块设计方法及装置 | |
US20220253238A1 (en) | Method and apparatus for accessing solid state disk | |
CN116483259A (zh) | 一种数据处理方法以及相关装置 | |
CN115827524A (zh) | 一种数据传输方法以及装置 | |
CN113434089B (zh) | 数据搬移方法、装置及pcie系统 | |
CN105022707B (zh) | 接口单元装置 | |
WO2020034080A1 (zh) | 一种基于dma的数据处理方法及相关产品 | |
CN112732176B (zh) | 基于fpga的ssd访问方法及装置、存储系统及存储介质 | |
CN113986134B (zh) | 存储数据的方法、读取数据的方法和装置 | |
CN117194388B (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 |