CN109656853A - 一种数据传输系统及方法 - Google Patents
一种数据传输系统及方法 Download PDFInfo
- Publication number
- CN109656853A CN109656853A CN201710943925.3A CN201710943925A CN109656853A CN 109656853 A CN109656853 A CN 109656853A CN 201710943925 A CN201710943925 A CN 201710943925A CN 109656853 A CN109656853 A CN 109656853A
- Authority
- CN
- China
- Prior art keywords
- fpga device
- high speed
- fpga
- storage unit
- data
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 129
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000003860 storage Methods 0.000 claims abstract description 191
- 238000004891 communication Methods 0.000 claims abstract description 5
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 241001269238 Data Species 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static 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
-
- 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/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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
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)
- Logic Circuits (AREA)
Abstract
本申请公开了一种数据传输系统及方法,包括:数据传输系统具有第一现场可编程门阵列FPGA器件;第二FPGA器件;以及与所述第一、二FPGA器件通信连接的高速存储单元,用于存储所述第一、二FPGA器件的共享数据,使FPGA器件之间可以通过高速存储单元进行数据传输,提高了传输时效性。
Description
技术领域
本发明涉及数据传输技术领域,特别是涉及一种数据传输系统及方法。
背景技术
现场可编程门阵列(FPGA,Field Programmable Gate Array),它是在可编程阵列逻辑(PAL,Programmable Array Logic)、通用阵列逻辑(GAL,generic array logic)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC,Application Specific IntegratedCircuit)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
在一个多FPGA组成的系统中,FPGA之间的数据共享面临着越来越严重的挑战。在一个典型的多FPGA系统中,通常一个主机(host)的多个FPGA各自挂在对应的高速串行计算机扩展总线标准开关(PCIE switch,peripheral component interconnect expressswitch)上,每个FPGA都会有自己对应的双倍速率同步动态随机存储器(DDR,Double DataRat)作为全局存储器(global memory)。在这个系统中,每个FPGA只能独立工作,如果其中一个FPGA F1想要访问另外一个FPGA F2的全局存储器,或者一块数据要从FPGA F1的全局存储器搬移到FPGA F2的全局存储器,通常需要经过一系列比较复杂流程,如点对点传输(Peer-To-Peer Access):F2先将数据从自己的全局存储器上复制到host上;然后F1再从host上把数据读到自己的全局存储器中,最后F1通过LD/ST操作从自己的全局存储器中读取数据。
在执行FPGA间共享数据的传输时,发明人发现现有技术中至少存在如下问题:共享数据需要分别经历从FPGA的DDR复制数据到host,从host再次复制数据到FPGA的DDR,使得数据传输的延迟特别大,使得共享数据传输的时效性较低。
发明内容
有鉴于此,本发明提供的一种数据传输系统及方法,主要目的在于提高FPGA器件间共享数据传输的时效性。
为了解决上述问题,本发明主要提供如下技术方案:
第一方面,本发明提供了一种数据传输系统,所述系统包括:
第一现场可编程门阵列FPGA器件;
第二现场可编程门阵列FPGA器件;以及
高速存储单元,与所述第一、二FPGA器件通信连接,用于存储所述第一、二FPGA器件的共享数据,使所述第一、二FPGA器件通过所述高速存储单元进行数据传输。
第二方面,本发明还提供一种数据传输方法,所述方法包括:
建立高速存储单元与第一现场可编程门阵列FPGA器件的第一传输通道;
建立所述高速存储单元与第二现场可编程门阵列FPGA器件的第二传输通道;
通过所述高速存储单元以及所述第一、二传输通道进行所述第一、二FPGA器件共享数据的传输。
第三方面,本发明还提供一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如上所述的数据传输方法。
本发明提供的数据传输系统及方法,与现有技术相比,该高速存储单元可以直接接收并存储FPGA器件的共享数据,当一个FPGA器件想获取FPGA器件的共享数据时,只需访问该高速存储单元即可获取对应的共享数据,无需通过繁杂的共享数据的反复拷贝,在一定程度上提高了FPGA器件共享数据传输的时效性。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种数据传输系统的结构示意图;
图2示出了本发明实施例提供的另一种数据传输系统的结构示意图;
图3示出了本发明实施例提供的另一种数据传输系统的结构示意图;
图4示出了本发明实施例提供的一种数据传输方法的流程图;
图5示出了本发明实施例提供的另一种数据传输方法的流程图;
图6示出了本发明实施例提供的另一种数据传输方法的流程图;
图7示出了本发明实施例提供的另一种数据传输方法的流程图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例提供一种数据传输系统,如图1所示,该系统包括:
第一FPGA器件;
第二FPGA器件;以及
高速存储单元,与所述第一、二FPGA器件通信连接,用于存储所述第一、二FPGA器件的共享数据,使所述第一、二FPGA器件通过所述高速存储单元进行数据传输。
其中,该系统包括的第一、二FPGA器件,可以为型号相同的器件,也可以为型号不相同的器件;可以是来自同一个厂家的器件,也可以是来自不同厂家的器件,具体的,本发明实施例对此不进行限制。本发明实施例中的第一、二FPGA器件用于区别不同的FPGA器件,并不用来限定FPGA器件的具体数量。
另外,如图1所示,该第一、二FPGA器件,分别有自己的DDR作为全局存储器。该高速存储单元,可能需要满足容量大,延迟低,带宽高,功耗小等特点;在具体实施时,可能还要求具有较好的随机读取性能,具体的本发明实施例对此也不进行限制,只要其能实现多个FPGA器件共享数据的传输即可。
基于上述图1所示的系统,在所述第一、二FPGA器件通过所述高速存储单元进行数据传输时,该高速存储单元和所述第一、二FPGA器件分别具体用于:
所述高速存储单元,用于接收并存储FPGA共享数据;其中,该FPGA共享数据可以是第一、二FPGA器件之间交换的数据,也可以是第一、二FPGA器件共用的数据,具体的本发明实施例对此不进行限制。当其是第一、二FPGA器件共用的数据时,该共用数据可以为所述高速存储单元接收的外部数据并共享给所述第一、二FPGA器件的共享数据,例如,当利用该系统做神经网络预测时,可以通过外部通信设备接口将神经网络模型的权值先写入并存储在该高速存储单元中,当在该系统中进行FPGA预测时,直接到该高速存储单元中读取对应的权值即可。当FPGA共享数据是第一、二FPGA器件之间进行交换的数据时,其可以是待交换的FPGA器件向所述高速存储单元发送并存储的共享数据。不论采用哪种方式,将FPGA共享数据存储写入高速存储单元之后,当该系统中共享所述高速存储器的任一FPGA器件需要获取该共享数据时,该均会向所述高速存储单元发送获取共享数据的共享数据获取请求。
进一步的,为了实现高速存储单元与所述第一、二FPGA器件通信连接,实现高速存储单元与所述第一、二FPGA器件之间的直接数据传输,本发明实施例还包括:
在所述第一FPGA器件和所述高速存储单元之间设有第一传输通道;
在所述第二FPGA器件和所述高速存储单元之间设有第二传输通道;
所述第一、二FPGA器件通过所述第一、二传输通道及所述高速存储单元进行共享数据的传输。
基于上述传输通道,所述第一、二FPGA器件可以将能够与其他FPGA器件进行交换的共享数据传输给所述高速存储单元,并存储在该高速存储单元中,以便其他FPGA器件到所述高速存储单元中进行读取。具体的,所述第一FPGA器件通过第一传输通道,将其能够交换的共享数据传输并存储到所述高速存储单元;所述第二FPGA器件通过第二传输通道,将其能够交换的共享数据传输并存储到所述高速存储单元。
需要说明的是,当上述的共享数据为所述第一、二FPGA器件间进行交换的数据时,本发明实施例以第一FPGA器件获取第二FPGA器件的共享数据为例进行具体说明。第一FPGA器件获取第二FPGA器件的共享数据时,可以通过向高速存储器发送共享数据获取请求获取,也可以由第二FPGA器件主动分享,具体的本发明实施例对此不进行限制。以下将以向高速存储器发送共享数据获取请求获取为例进行具体说明,该进行共享数据获取的具体步骤为:
所述第一FPGA器件通过所述第一传输通道向所述高速存储单元发送获取第二FPGA器件共享数据的共享数据获取请求,所述共享数据获取请求中携带有所述第一FPGA器件的标识信息、第二FPGA器件的标识信息以及第二FPGA器件共享数据的数据信息;这里需要说明的时,高速存储单元在接收到共享数据获取请求时,会分析该请求从哪里来,要获取什么内容,之后将内容返回到哪里去,基于该共享数据请求信息中包含的标识信息以及数据信息,便可以清楚的获知,该请求来自第一FPGA器件,要获取的共享数据为第二FPGA器件的共享数据,并将该第二FPGA器件的共享数据返回给该第一FPGA器件。
所述高速存储单元通过所述第一传输通道接收所述共享数据获取请求,查看所述高速存储单元中是否存在与所述数据信息对应的共享数据,若存在,说明所述第二FPGA器件提前将该共享数据传输并存储在所述高速存储单元中,则直接从该高速存储单元中获取该共享数据即可;并通过第一传输通道将所述共享数据发送给所述第一FPGA器件。
若不存在,则该高速存储单元通过第二传输通道向所述第二FPGA器件发送获取第二FPGA器件共享数据的共享数据获取请求,所述共享数据获取请求中包括第二FPGA器件共享数据的数据信息。
所述第二FPGA器件根据所述共享数据获取请求获取与所述数据信息对应的共享数据,并通过所述第二传输通道将所述共享数据发送给所述高速存储单元。
所述高速存储单元通过所述第二传输通道接收所述第二FPGA器件发送的共享数据,并通过第一传输通道将所述共享数据发送给所述第一FPGA器件。
进一步的,为了实现所述高速存储单元除了进行第一、二FPGA器件之间交换的数据,还可以共享外部设备输入的数据,所述高速存储单元具有与外部设备连接的第三传输通道,通过所述第三传输通道接收外部数据,并将所述外部数据共享给所述第一、二FPGA器件。所述高速存储单元接收到外部数据之后,将该外部数据存储在所述存储单元中。所述第一、二FPGA器件分别通过所述第一、第二传输通道从所述高速存储单元读取该共享的外部数据。
当所述第一、二FPGA器件从所述高速存储单元读取共享的外部数据时,该高速存储单元和所述第一、二FPGA器件分别具体用于:
所述第一FPGA器件通过第一传输通道向所述高速存储单元发送读取共享数据的共享数据请求,所述共享数据请求中包括所述第一FPGA器件的标识信息以及共享数据的数据信息;所述高速存储单元查询所述高速存储单元获取与所述数据信息对应的共享数据,并通过所述第一传输通道将所述第共享数据发送给所述第一FPGA器件。
所述第二FPGA器件通过第二传输通道向所述高速存储单元发送读取共享数据的共享数据请求,所述共享数据请求中包括所述第二FPGA器件的标识信息以及共享数据的数据信息;所述高速存储单元查询所述高速存储单元获取与所述数据信息对应的共享数据,并通过所述第二传输通道将所述第共享数据发送给所述第二FPGA器件。
本发明实施例中,该高速存储单元可以直接接收并存储FPGA共享数据,当一个FPGA器件想获取FPGA共享数据时,只需访问该高速存储单元即可获取对应的FPGA共享数据,无需通过繁杂的共享数据的反复拷贝,在一定程度上提高了FPGA器件共享数据传输的时效性。
进一步的,所述系统具有包括所述第一、二FPGA器件在内的多个FPGA器件,所述高速存储单元被配置给所述多个FPGA器件中的预定FPGA器件,允许所述预定FPGA器件对所述高速存储单元进行读写操作,允许所述预定FPGA器件之外的其他FPGA器件对所述高速存储单元进行只读操作。
进一步的,所述高速存储单元被配置给所述多个FPGA器件中的预定FPGA器件时,该高速存储单元可以被划分为多个存储块,即该高速存储单元可以由多个存储块构成,每个存储块设置有存储块标识。每个存储块可以被配置为一个FPGA器件可读写,其他FPGA器件仅读取;也可以被配置为多个FPGA器件均可读写。
进一步的,所述系统具有包括所述第一、二FPGA器件在内的多个FPGA器件,所述高速存储单元划分为多个存储块,所述多个存储块被分别配置给所述多个FPGA器件,用于缓存FPGA器件的数据,即被配置的存储块为仅供一个FPGA器件可读写。在具体实施时,可以根据具体需求具体配置,本发明实施例对此不进行具体限制。
当存储块被配置为一个FPGA器件可读写,其他FPGA器件仅读取时,具体的配置为:所述多个存储块中的第一存储块被配置给所述多个FPGA器件中的预定FPGA器件,所述预定FPGA器件可对所述第一存储块进行读写操作,所述多个FPGA器件中的其他FPGA器件可对所述第一存储块进行只读操作。其中,预定FPGA器件为所述多个FPGA器件中的某个FPGA器件;所述第一存储块为所述多个存储块中的任一块存储块,或者根据实际需求指定的所述多个存储中的特定存储块,本发明实施例对此不进行限制。
当存储块被配置为多个FPGA器件均可读写时,具体的配置为:所述多个存储块中的第二存储块被配置给所述多个FPGA器件中的预定FPGA器件,所述预定FPGA器件均可对所述第二存储块进行读写操作,所述预定FPGA器件为至少两个FPGA器件。其中,本发明实施例中的预定PGA器件均可对所述第二存储块进行读写操作,具体为,该预定FPGA器件中的任一个FPGA器件都可以将自身的共享数据写入该第二存储块中,该预定FPGA器件中的其他FPGA器件进行该第二存储块中共享数据的读取。另外,所述第二存储块为所述多个存储块中的任一块存储块,或者根据实际需求指定的所述多个存储中的特定存储块,本发明实施例对此不进行限制。
当存储块被配置为仅供一个FPGA器件可读写,即一个FPGA器件独占时,该存储块仅作为该FPGA器件的缓存设备,用作BRAM和DDR之间的缓存,使所述该独占存储块的FPGA器件通过所述存储块进行自身缓存数据的读写。其具体的分配为:所述多个存储块被配置给所述多个FPGA器件,每个FPGA器件对应一个存储块,每个FPGA器件对应的存储块用于缓存FPGA器件自身数据。
另外,需要说明的是,在对该高速存储单元进行存储块的划分时,可以将高速存储单元进行均匀划分,也可以根据实际需求划分成大小不同的存储块;在特殊场景下,也可以将整个高速存储单元作为一个存储块,划分给某个或某几个FPGA器件,具体的本发明实施例对此不进行限制,可以根据实际需求具体实施。
进一步的,当本发明实施例中的高速存储单元被划分为多个存储块,并且每块存储块对应预定数量的FPGA器件,在将第一、二FPGA器件的共享数据存储在该高速存储单元时,需要获取所述第一、二FPGA器件的对应的存储块,将接收到的所述第一、二FPGA器件的共享数据存储在对应的存储块中,这样方便共享一个存储块的其他FPGA器件进行共享数据的传输和交换。
另外,在将共享数据存储在对应的存储块后,若FPGA器件需要获取该共享数据时,该高速存储单元在接收到FPGA器件发送的获取该共享数据的请求之后,需要获取该存储该共享数据的存储块,进而从所述存储块中获取该共享数据。其中,存储该共享数据的数据块,可以由高速存储单元查询获取,也可以由FPGA器件在发送共享数据获取请求时,将该存储块的标识信息携带在该共享数据获取请求中。具体的本发明实施例对此不进行限制。
基于上述描述,使得本发明实施例中高速存储单元的存储块的存储能力变得可配置,并且可以灵活调节,使得高速存储单元的使用更具灵活性。
并且在实现多个FPGA器件共享数据的传输时,本发明实施例中将一个存储块设置为对应多个FPGA器件,被配置的存储块只能被对应的多个FPGA器件进行读写,其他没有被配置的FPGA器件不能进行该存储块的读写,该种设计,在一定程度上保证了FPGA器件共享数据的安全性。
进一步的,所述第一、二FPGA器件之间除了上述通过高速存储单元进行数据传输以外,其还可以通过PCIe总线进行数据传输,具体的,所述第一、二FPGA器件通过直接存储器存取DMA接口连接所述PCIe总线。具体该连接方式,本发明实施例还提供一种数据传输系统,如图2所示,该系统还包括PCIE开关(PCIE switch),所述第一、二FPGA器件通过DMA接口与所述PCIE开关连接,实现所述第一、二FPGA器件通过PCIe总线进行数据传输。基于图2所示的系统,本发明实施例中的FPGA器件之间除了通过高速存储单元进行互联之外,还可以通过PCIe总线进行互联;当通过PCIe总线进行互联时,如果一个FPGA想访问另外一个FPGA的数据,可以通过FPGADirect技术进行。关于FPGADirect技术,可以参考现有技术中的相关描述,本发明实施例此处将不再赘述。
本发明实施例提供的数据传输系统,FPGA共享数据的传输,是通过高速存储单元进行的,与现有技术中通过PCIe总线进行共享数据传输相比,解决了受PCIe带宽限制的问题。
基于图2中的FPGA器件通过PCIE开关进行互联,本发明实施例还提供一种数据传输系统,如图3所示,该系统包括:
至少由所述第一、二FPGA器件组成的第一FPGA设备;
至少由第三、四FPGA器件组成的第二FPGA设备;
所述第一FPGA设备与所述第二FPGA设备通过PCIe总线直连;
所述第一FPGA设备中供所述第一、二FPGA器件共享数据的所述高速存储单元,与所述第二FPGA设备中供所述第三、四FPGA器件共享数据的高速存储单元,通过所述PCIe总线直连进行数据传输。
由于PCIE插槽是有限的,但是本发明实施例中,一个PCIE插槽中插入的是一个FPGA设备,而一个FPGA设备至少包括两个FPGA器件,这与现有技术中一个PCIE插槽仅插入一个FPGA器件相比,同一个FPGA器件系统中,承载的FPGA器件的数量增加了至少一倍,为该FPGA器件系统提供了更高的计算能力。
基于图3所示的系统,当不同FPGA设备中的FPGA器件进行共享数据的交换时,其可以通过PCIE开关进行,具体的可以通过FPGADirect技术进行。关于FPGADirect技术,可以参考现有技术中的相关描述,本发明实施例此处将不再赘述。
另外,当不同的FPGA设备的高速存储单元进行共享数据的传输时,可以通过但不局限于以下的方法实现共享数据的传输,该方法包括:
第一FPGA设备中的FPGA器件,获取存储在第一FPGA设备的高速存储单元中供所述第一、二FPGA器件共享数据的共享数据,将该共享数据通过PCIe总线,基于FPGADirect技术发送给第二FPGA设备中的FPGA器件;所述第二FPGA设备中的FPGA器件,将该共享数据发送并存储在第二FPGA设备的高速存储单元中。其中,关于FPGADirect技术,可以参考现有技术中的相关描述,本发明实施例此处将不再赘述。
另外,第二FPGA设备的所有FPGA器件可以通过向第二FPGA设备的高速存储单元发送获取共享数据的共享数据获取请求,获取存储在第二PCIE设备高速存储单元中供所述第一、二FPGA器件的共享数据。关于本发明实施例中第二FPGA设备的所有FPGA器件可以通过向第二FPGA设备的高速存储单元发送获取共享数据的共享数据获取请求,获取存储在第二PCIE设备高速存储单元中供所述第一、二FPGA器件的共享数据的相关描述,可以参考图1对应的相关描述,本发明实施例此处将不再赘述。
基于上述数据传输系统,本发明实施例提供一种数据传输方法,如图4所示,该方法包括:
101、建立高速存储单元与第一FPGA器件的第一传输通道。
其中,所述高速存储单元与第一FPGA器件通过所述第一传输通道进行数据传输。
102、建立所述高速存储单元与第二现场可编程门阵列FPGA器件的第二传输通道。
其中,所述高速存储单元与第二FPGA器件通过所述第二传输通道进行数据传输。
其中,关于该高速存储单元与第一、第二FPGA器件的其他相关描述,可以参考图1数据传输系统中的相关描述,本发明实施例此处将不再赘述。
103、通过所述高速存储单元以及所述第一、二传输通道进行所述第一、二FPGA器件共享数据的传输。
本发明实施例中,该高速存储单元可以直接接收并存储FPGA器件的共享数据,当一个FPGA器件想获取共享数据时,只需访问该高速存储单元即可获取对应的共享数据,无需通过繁杂的共享数据的反复拷贝,在一定程度上提高了FPGA器件共享数据传输的时效性。
进一步的,本发明实施例还提供一种数据传输方法,该方法如图5所示,包括:
201、建立高速存储单元与第一FPGA器件的第一传输通道。
202、建立所述高速存储单元与第二FPGA器件的第二传输通道。
203、建立所述高速存储单元与外部设备连接的第三传输通道,并通过所述第三传输通道接收外部数据。
204、通过所述第一数据传输通道将所述外部数据共享给所述第一FPGA器件,以及通过所述第二数据传输通道将所述外部数据共享给所述第二FPGA器件。
基于上述图1和图2的数据传输方法,可以获知,该共享数据可以为第一、二FPGA器件间交换的共享数据,也可能是第一、二FPGA器件共用的共享数据。当通过所述高速存储单元以及所述第一、二传输通道进行传输的共享数据为所述第一、二FPGA器件之间交换的共享数据时,具体可以采用但不局限于以下的数据传输方法,该方法包括:
1、高速存储单元通过所述第一传输通道接收第一FPGA器件发送的获取第二FPGA器件共享数据的共享数据获取请求,所述共享数据获取请求中携带有获取的共享数据的数据信息。
2、所述高速存储单元根据所述共享数据获取请求获取第二FPGA器件中与所述数据信息对应的共享数据。
其中,在第二FPGA器件中与所述数据信息对应的共享数据时,可以采用但不局限于以下的方法实现,该方法包括:
查询所述高速存储单元中是否存储有第二FPGA器件中与所述数据信息对应的共享数据。
若存在,则直接获取所述第二FPGA器件中与所述数据信息对应的共享数据。
若不存在,则向所述第二FPGA器件发送获取第二FPGA器件共享数据的共享数据获取请求获取所述共享数据。其中,向所述第二FPGA器件发送获取第二FPGA器件共享数据的共享数据获取请求获取所述共享数据具体可以采用但不局限于以下的方法实现,该方法包括:所述高速存储单元向所述第二FPGA器件发送获取第二FPGA器件共享数据的共享数据获取请求,所述共享数据获取请求中包括第二FPGA器件共享数据的数据信息;
接收所述第二FPGA器件发送的根据所述数据信息获取的第二FPGA器件的共享数据。其中,所述第二FPGA器件接收所述高速存储单元发送的获取共享数据的共享数据获取请求,所述共享数据获取请求中包括待获取的共享数据的数据信息;根据所述数据信息获取对应的共享数据;将获取的共享数据发送给所述高速存储单元。
3、所述高速存储单元通过所述第一传输通道将所述共享数据发送给第一FPGA器件。
进一步的,所述系统具有包括所述第一、二FPGA器件在内的多个FPGA器件,在将FPGA共享数据存储在高速存储单元中时,将所述高速存储单元配置给包括所述第一、二FPGA器件在内的多个FPGA器件中的预定FPGA器件,允许所述预定FPGA器件对所述高速存储单元进行读写操作,允许所述预定FPGA器件之外的其他FPGA器件对所述高速存储单元进行只读操作。
将所述高速存储单元配置给包括所述第一、二FPGA器件在内的多个FPGA器件中的预定FPGA器件,具体可以为将该高速存储单元可以被划分为多个存储块,即该高速存储单元可以由多个存储块构成,每个存储块设置有存储块标识。每个存储块可以被配置为一个FPGA器件可读写,其他FPGA器件仅读取;也可以被配置为多个FPGA器件均可读写。在具体实施时,可以根据具体需求具体配置,本发明实施例对此不进行具体限制。
本发明实施例中,为了实现多个FPGA器件共享数据的传输,将存储块配置为对应多个FPGA器件,被配置的存储块只能被对应的多个FPGA器件进行读写,其他没有被配置的FPGA器件不能进行该存储块的读写,该种设计,在一定程度上保证了FPGA器件共享数据的安全性。
基于所高速存储单元被划分为多个存储块,所述第一、二FPGA器件为多个FPGA器件,并且所述多个存储块中的某个存储块被配置给所述多个FPGA器件中的某个或某些个FPGA器件进行读写操作时,上述根据所述共享数据获取请求获取与所述数据信息对应的共享数据可以采用但不局限于以下的方法实现,该方法包括:
b1、查询所述共享数据获取请求中是否携带存储所述共享数据的存储块的标识信息,则执行b2;若不包含存储块的标识信息,则执行b3。
b2、基于所述存储块获取与所述数据信息对应的共享数据。
b3、获取存储所述共享数据的存储块,并基于所述存储块获取与所述数据信息对应的共享数据。
基于本发明实施例中高速存储单元被划分为多块存储块,本发明实施例以将FPGA间交换的共享数据存储在存储块中,基于该存储块实现FPGA间共享数据的传输,该方法如图6所示,该方法包括:
301、第一FPGA器件向所述高速存储单元发送共享数据,以便将所述共享数据存储在所述高速存储单元中。其中,该共享数据为第一FPGA器件自身包含的第一、二FPGA器件的共享数据,由第一FPGA器件主动发送。当然,该第一、二FPGA器件的共享数据也可以应请求发送,具体的本发明实施例此处将不再赘述。
302、高速存储单元接收所述第一FPGA器件向所述高速存储单元发送的共享数据,并根据所述第一FPGA器件的标识信息获取对应的存储块标识信息。
该处需要说明的是,该第一FPGA器件向所述高速存储单元发送的共享数据时,可以将其对应的存储块的标识信息一起发送给所述高速存储单元,也可以不发送,若在发送共享数据的同时将存储该共享数据的存储块的标识信息也发送给所述高速存储单元,该高速存储单元在接收到共享数据之后,直接将共享数据存储在该标识信息对应的存储块中即可,省去了查询存储共享数据存储块的步骤,使得存储操作更快速。本发明实施例以不发送并由高速存储单元进行自行查找为例。
303、高速存储单元将接收到的所述共享数据存储在所述存储块标识信息对应的存储块中。
304、第二FPGA器件向所述高速存储单元发送获取第一FPGA器件的共享数据的共享数据获取请求,所述请求中携带有所述第二FPGA器件的标识信息和第一FPGA器件的共享数据的数据信息。
305、所述高速存储单元接收所述共享数据获取请求,所述请求中携带有所述第二FPGA器件的标识信息和第一FPGA器件的共享数据信息。
306、所述高速存储单元根据所述共享数据获取请求中带有的所述第二FPGA器件的标识信息确定存储所述共享数据对应的存储块。
如上所述的,在发送共享数据获取请求时,可以将存储该共享数据的存储块的标识信息携带在该共享数据获取请求中,也可以不携带,具体的本发明实施对此不进行限制。本发明实施例以不携带为例。
307、所述高速存储单元从所述存储块中获取与所述数据信息对应的共享数据。
308、所述高速存储单元将所述共享数据发送给所述第二FPGA器件的标识信息对应的第二FPGA器件。
309、第二FPGA器件接收所述高速存储单元发送的与所述数据信息对应的共享数据。
本发明实施例中的各个步骤中的相关描述,可以参考系统实施例中的对应描述,本发明实施例在此将不再赘述。
本发明实施例中,所涉及的数据传输系统如图2所示,本发明实施例还提供一种输出传输方法,该方法为:
建立所述第一、二FPGA器件之间的PCIe总线连接。
通过所述PCIe总线进行所述第一、二FPGA器件之间的通信。其中,关于通过所述PCIe总线进行所述第一、二FPGA器件之间的通信,可以参考现有技术中的相关描述,本发明实施例此处将不再赘述。
本发明实施例中,所涉及的数据传输系统如图3所示,即当至少由所述第一、二FPGA器件组成第一FPGA设备,至少由第三、四FPGA器件组成第二FPGA设备,所述第三、四FPGA器件与另一个高速存储单元通信连接;所述第一FPGA设备与所述第二FPGA设备通过PCIe总线直连时;本发明实施例还提供一种数据传输方法,该方法如7所示,包括:
401、将至少包括所述第一、二FPGA器件的多个FPGA器件组成第一FPGA设备。
402、将至少包括第三、四FPGA器件的多个FPGA器件组成第二FPGA设备。
403、建立所述第一FPGA设备与所述第二FPGA设备之间的PCIe总线连接。
404、通过所述PCIe总线连接进行所述第一FPGA设备中供所述第一、二FPGA器件共享数据的所述高速存储单元,与所述第二FPGA设备中供所述第三、四FPGA器件共享数据的高速存储单元的数据传输。
本发明实施中,在进行两个高速存储单元的数据传输时,可以采用但不局限于以下的方法实现,该方法包括:第一FPGA设备中供所述第一、二FPGA器件共享数据的所述高速存储单元接收所述第二FPGA设备中供所述第三、四FPGA器件共享数据的高速存储单元发送的获取共享数据的共享数据获取请求,所述共享数据获取请求中携带有待获取的共享数据的数据信息。
所述第一FPGA设备中供所述第一、二FPGA器件共享数据的所述高速存储单元获取与所述数据信息对应的共享数据,并将所述共享数据通过PCIe总线发送给所述第二FPGA设备中供所述第三、四FPGA器件共享数据的高速存储单元。
本发明实施例还提供一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如上所述的数据传输方法。
本发明实施例中,该高速存储单元可以直接接收并存储FPGA器件的共享数据,当一个FPGA器件想获取共享数据时,只需访问该高速存储单元即可获取对应的共享数据,无需通过繁杂的共享数据的反复拷贝,在一定程度上提高了FPGA器件共享数据传输的时效性。并且FPGA共享数据的传输,是通过高速存储单元进行的,与现有技术中通过PCIe总线进行共享数据传输相比,解决了受PCIe带宽限制的问题。
并且,本发明实施例中高速存储单元的存储块的存储能力变得可配置,并且可以灵活调节,使得高速存储单元的使用具体灵活性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (15)
1.一种数据传输系统,其特征在于,所述系统包括:
第一现场可编程门阵列FPGA器件;
第二现场可编程门阵列FPGA器件;以及
高速存储单元,与所述第一、二FPGA器件通信连接,用于存储所述第一、二FPGA器件的共享数据,使所述第一、二FPGA器件通过所述高速存储单元进行数据传输。
2.根据权利要求1所述的系统,其特征在于,
所述第一FPGA器件和所述高速存储单元之间设有第一传输通道;
所述第二FPGA器件和所述高速存储单元之间设有第二传输通道;
所述第一、二FPGA器件通过所述第一、二传输通道及所述高速存储单元进行共享数据的传输。
3.根据权利要求2所述的系统,其特征在于,
所述高速存储单元具有与外部设备连接的第三传输通道;
通过所述第三传输通道接收外部数据,并将所述外部数据共享给所述第一、二FPGA器件。
4.根据权利要求3所述的系统,其特征在于,
所述系统具有包括所述第一、二FPGA器件在内的多个FPGA器件;
所述高速存储单元被配置给所述多个FPGA器件中的预定FPGA器件,允许所述预定FPGA器件对所述高速存储单元进行读写操作,允许所述预定FPGA器件之外的其他FPGA器件对所述高速存储单元进行只读操作。
5.根据权利要求3所述的系统,其特征在于,
所述系统具有包括所述第一、二FPGA器件在内的多个FPGA器件,所述高速存储单元划分为多个存储块,所述多个存储块被分别配置给所述多个FPGA器件,用于缓存FPGA器件的数据。
6.根据权利要求1-5中任一项所述的系统,其特征在于,
所述第一、二FPGA器件还通过PCIe总线连接,其中,
所述第一、二FPGA器件通过直接存储器存取DMA接口连接所述PCIe总线。
7.根据权利要求6所述的系统,其特征在于,该系统包括:
至少由所述第一、二FPGA器件组成的第一FPGA设备;
至少由第三、四FPGA器件组成的第二FPGA设备;
所述第一FPGA设备与所述第二FPGA设备通过PCIe总线直连。
8.根据权利要求7所述的系统,其特征在于,
所述第一FPGA设备中供所述第一、二FPGA器件共享数据的所述高速存储单元,与所述第二FPGA设备中供所述第三、四FPGA器件共享数据的高速存储单元,通过所述PCIe总线直连进行数据传输。
9.一种数据传输方法,其特征在于,所述方法包括:
建立高速存储单元与第一现场可编程门阵列FPGA器件的第一传输通道;
建立所述高速存储单元与第二现场可编程门阵列FPGA器件的第二传输通道;
通过所述高速存储单元以及所述第一、二传输通道进行所述第一、二FPGA器件共享数据的传输。
10.根据权利要求9所述的方法,其特征在于,该方法还包括:
建立所述高速存储单元与外部设备连接的第三传输通道;
通过所述第三传输通道接收外部数据;
通过所述第一数据传输通道将所述外部数据共享给所述第一FPGA器件,以及通过所述第二数据传输通道将所述外部数据共享给所述第二FPGA器件。
11.根据权利要求9所述的方法,其特征在于,该方法还包括:
将所述高速存储单元配置给包括所述第一、二FPGA器件在内的多个FPGA器件中的预定FPGA器件,允许所述预定FPGA器件对所述高速存储单元进行读写操作,允许所述预定FPGA器件之外的其他FPGA器件对所述高速存储单元进行只读操作。
12.根据权利要求9所述的方法,其特征在于,该方法还包括:
将所述高速存储单元划分为多个存储块;
将所述多个存储块分别配置给包括所述第一、二FPGA器件在内的多个FPGA器件,用于缓存FPGA器件的数据。
13.根据权利要求9-12中任一项所述的方法,其特征在于,该方法还包括:
建立所述第一、二FPGA器件之间的PCIe总线连接;
通过所述PCIe总线进行所述第一、二FPGA器件之间的通信。
14.根据权利要求13所述的方法,其特征在于,该方法还包括:
将至少包括所述第一、二FPGA器件的多个FPGA器件组成第一FPGA设备;
将至少包括第三、四FPGA器件的多个FPGA器件组成第二FPGA设备;
建立所述第一FPGA设备与所述第二FPGA设备之间的PCIe总线连接;
通过所述PCIe总线连接进行所述第一FPGA设备中供所述第一、二FPGA器件共享数据的所述高速存储单元,与所述第二FPGA设备中供所述第三、四FPGA器件共享数据的高速存储单元的数据传输。
15.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求9-14中任意一项所述的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710943925.3A CN109656853A (zh) | 2017-10-11 | 2017-10-11 | 一种数据传输系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710943925.3A CN109656853A (zh) | 2017-10-11 | 2017-10-11 | 一种数据传输系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109656853A true CN109656853A (zh) | 2019-04-19 |
Family
ID=66108418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710943925.3A Pending CN109656853A (zh) | 2017-10-11 | 2017-10-11 | 一种数据传输系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109656853A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102436840A (zh) * | 2011-12-09 | 2012-05-02 | 北京经纬恒润科技有限公司 | 一种数字射频存储板 |
CN102497411A (zh) * | 2011-12-08 | 2012-06-13 | 南京大学 | 面向密集运算的层次化异构多核片上网络架构 |
CN103020002A (zh) * | 2012-11-27 | 2013-04-03 | 中国人民解放军信息工程大学 | 可重构多处理器系统 |
CN104583933A (zh) * | 2012-08-23 | 2015-04-29 | 微软公司 | Gpu和fpga组件之间的直接通信 |
CN105183683A (zh) * | 2015-08-31 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种多fpga芯片加速卡 |
US20160275034A1 (en) * | 2013-03-14 | 2016-09-22 | National Instruments Corporation | Fpga based atca (advanced telecommunications computing architecture) platform |
-
2017
- 2017-10-11 CN CN201710943925.3A patent/CN109656853A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497411A (zh) * | 2011-12-08 | 2012-06-13 | 南京大学 | 面向密集运算的层次化异构多核片上网络架构 |
CN102436840A (zh) * | 2011-12-09 | 2012-05-02 | 北京经纬恒润科技有限公司 | 一种数字射频存储板 |
CN104583933A (zh) * | 2012-08-23 | 2015-04-29 | 微软公司 | Gpu和fpga组件之间的直接通信 |
CN103020002A (zh) * | 2012-11-27 | 2013-04-03 | 中国人民解放军信息工程大学 | 可重构多处理器系统 |
US20160275034A1 (en) * | 2013-03-14 | 2016-09-22 | National Instruments Corporation | Fpga based atca (advanced telecommunications computing architecture) platform |
CN105183683A (zh) * | 2015-08-31 | 2015-12-23 | 浪潮(北京)电子信息产业有限公司 | 一种多fpga芯片加速卡 |
Non-Patent Citations (2)
Title |
---|
刘丹等: "基于SoC FPGA的中频数字接收机设计与实现", 《计算机与数字工程》 * |
马畅: "共享存储可重构计算机软硬件通信的优化实现之我见", 《计算机光盘软件与应用》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4489399B2 (ja) | プロセッサでのデータ処理方法及びデータ処理システム | |
JP4597553B2 (ja) | コンピュータ・プロセッサ及び処理装置 | |
JP4455822B2 (ja) | データ処理方法 | |
JP4768386B2 (ja) | 外部デバイスとデータ通信可能なインターフェイスデバイスを有するシステム及び装置 | |
US20180227146A1 (en) | Network-on-chip, data transmission method, and first switching node | |
CN101841471A (zh) | 具有连接成多维矩阵的节点的系统及其控制方法以及设备 | |
CN100407185C (zh) | 主机设备、设备单元、通信系统和数据发送/接收方法 | |
CN112347015B (zh) | 芯片片上系统异构多处理器间的通信装置及方法 | |
CN105874758B (zh) | 内存访问方法、交换机及多处理器系统 | |
US7970960B2 (en) | Direct memory access controller and data transmitting method of direct memory access channel | |
CN103873380B (zh) | 一种数据分发策略的调整方法、装置及系统 | |
CN103955436A (zh) | 一种数据处理装置和终端 | |
CN103336670B (zh) | 一种基于数据温度对数据块自动进行分布的方法和装置 | |
US10592465B2 (en) | Node controller direct socket group memory access | |
CN106059940A (zh) | 一种流量控制方法及装置 | |
CN209560543U (zh) | 大数据运算芯片 | |
CN117076140B (zh) | 一种分布式计算方法、装置、设备、系统及可读存储介质 | |
CN109561469A (zh) | 本地内容的缓存方法、装置、存储介质及电子装置 | |
CN103902472B (zh) | 基于内存芯片互连的内存访问处理方法、内存芯片及系统 | |
CN105704098B (zh) | 一种虚拟化网络的数据传输方法,节点控制器及系统 | |
CN101599910A (zh) | 报文发送的方法及设备 | |
CN109656853A (zh) | 一种数据传输系统及方法 | |
CN209784995U (zh) | 大数据运算加速系统和芯片 | |
CN102646058A (zh) | 多节点计算系统下选择共享内存所在节点的方法和装置 | |
US20230244626A1 (en) | Parallel dataflow routing scheme systems and methods |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190419 |