CN115291898B - 一种多fpga从模式快速烧录方法及装置 - Google Patents
一种多fpga从模式快速烧录方法及装置 Download PDFInfo
- Publication number
- CN115291898B CN115291898B CN202210927405.4A CN202210927405A CN115291898B CN 115291898 B CN115291898 B CN 115291898B CN 202210927405 A CN202210927405 A CN 202210927405A CN 115291898 B CN115291898 B CN 115291898B
- Authority
- CN
- China
- Prior art keywords
- fpga
- operated
- packet
- message
- transit
- 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 50
- 230000008569 process Effects 0.000 claims abstract description 18
- 238000012546 transfer Methods 0.000 claims description 42
- 239000000872 buffer Substances 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 14
- 238000004806 packaging method and process Methods 0.000 claims description 8
- 238000007781 pre-processing Methods 0.000 claims description 3
- 239000012634 fragment Substances 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002035 prolonged effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种多FPGA从模式快速烧录方法及装置,该方法通过CPU从文件系统读取被操作FPGA固件,对被操作FPGA固件分片,并封装为携带被操作FPGA编号的网络报文;依次将封装后的被操作FPGA固件首包网络报文,通过网口以自定义MAC类型A发送到中转FPGA;等待接收中转FPGA的反馈包,若收到中转FPGA的反馈包,判断被操作FPGA固件的报文是否发送完成,若被操作FPGA固件的报文发送完成,结束进程;通过中转FPGA检查接收的网络报文的MAC类型,若接收的网络报文的MAC类型为自定义MAC类型A,将网络报文数据送到对应发送接口X以发送到目标FPGA。本发明在保证速度的同时减少了CPU的IO占用。
Description
技术领域
本发明涉及计算机通信技术领域,具体涉及一种多FPGA从模式快速烧录方法及装置。
背景技术
目前,随着电子技术的发展,电路系统也越来越向着多功能化和高集成化迈进。在一些集成了多个FPGA芯片的电路系统中,FPGA固件的加载分为主模式和从模式。从模式是指FPGA被动地通过配置接口接收固件,在从模式下,FPGA作为从属器件,由相应的控制电路或微处理器提供配置所需的时序,实现配置数据的下载。
按照配置接口的数据总线宽度,又可将从模式的配置接口分为x1/x8/x16/x32等。使用x1配置接口时,CPU虽然可以同时给多个FPGA烧录固件,但是串行接口限制了FPGA的加载速度,使电路系统的启动时间大大延长,常常不能满足性能指标。使用x8/x16/x32等配置接口时,受限于CPU的IO数量,无法为更多的FPGA提供固件烧录。如何在保证加载速度的前提下减少CPU的IO占用,以满足性能指标具有现实的应用价值。
发明内容
为此,本发明提供一种多FPGA从模式快速烧录方法及装置,以解决传统方案加载速度慢及难以满足性能指标的问题。
为了实现上述目的,本发明提供如下技术方案:一种多FPGA从模式快速烧录方法,包括:
通过CPU从文件系统读取被操作FPGA固件,对被操作FPGA固件分片,并封装为携带被操作FPGA编号的网络报文;
依次将封装后的被操作FPGA固件首包网络报文,通过网口以自定义MAC类型A发送到中转FPGA;
等待接收中转FPGA的反馈包,若收到中转FPGA的反馈包,判断被操作FPGA固件的报文是否发送完成,若被操作FPGA固件的报文发送完成,结束进程;
通过中转FPGA检查接收的网络报文的MAC类型,若接收的网络报文的MAC类型为自定义MAC类型A,根据网络报文携带的被操作FPGA编号,将网络报文数据送到对应发送接口X以发送到目标FPGA。
作为多FPGA从模式快速烧录方法优选方案,当CPU上电完成复位后,初始化CPU运行参数和网络接口,并配置中转FPGA;
当中转FPGA上电完成复位后,初始化中转FPGA的网络接口,通过完成初始化的中转FPGA的MAC接口接收CPU发送的网络报文。
作为多FPGA从模式快速烧录方法优选方案,若被操作FPGA固件的报文未发送完成,结合反馈报文判断中转FPGA是否有空闲且未发送完成通道,若中转FPGA存在空闲且未发送完成通道,依次发送各空闲通道对应的剩余首包网络报文,等待接收中转FPGA的反馈包。
作为多FPGA从模式快速烧录方法优选方案,若中转FPGA不存在空闲且未发送完成通道,以自定义MAC类型B发送查询包,查询中转FPGA的各通道状态。
作为多FPGA从模式快速烧录方法优选方案,若中转FPGA检查接收的网络报文的MAC类型为自定义MAC类型B,返回当前缓存数量少于2的通道给CPU。
作为多FPGA从模式快速烧录方法优选方案,将网络报文数据送到对应发送接口X以发送到目标FPGA,包括:
将网络报文数据缓存到FIFO,若缓存一包数据完成将当前通道缓存数量+1;
读取缓存池,当缓存池缓存大于等于一包数据时,读取缓存直至一包数据读完,若一包数据读取完成将当前通道缓存数量+1;
将读取的缓存数据通过配置接口发送到目标FPGA。
本发明还提供一种多FPGA从模式快速烧录装置,包括:
FPGA预处理模块,用于通过CPU从文件系统读取被操作FPGA固件,对被操作FPGA固件分片,并封装为携带被操作FPGA编号的网络报文;
报文中转发送模块,用于依次将封装后的被操作FPGA固件首包网络报文,通过网口以自定义MAC类型A发送到中转FPGA;
反馈处理模块,用于等待接收中转FPGA的反馈包,若收到中转FPGA的反馈包,判断被操作FPGA固件的报文是否发送完成,若被操作FPGA固件的报文发送完成,结束进程;
MAC类型检查模块,用于通过中转FPGA检查接收的网络报文的MAC类型;
目标FPGA转发模块,用于若接收的网络报文的MAC类型为自定义MAC类型A,根据网络报文携带的被操作FPGA编号,将网络报文数据送到对应发送接口X以发送到目标FPGA。
作为多FPGA从模式快速烧录装置优选方案,还包括:
CPU初始配置模块,用于当CPU上电完成复位后,初始化CPU运行参数和网络接口,并配置中转FPGA;
中转FPGA初始化模块,用于当中转FPGA上电完成复位后,初始化中转FPGA的网络接口,通过完成初始化的中转FPGA的MAC接口接收CPU发送的网络报文。
作为多FPGA从模式快速烧录装置优选方案,所述反馈处理模块中,若被操作FPGA固件的报文未发送完成,结合反馈报文判断中转FPGA是否有空闲且未发送完成通道;
所述反馈处理模块中,若中转FPGA存在空闲且未发送完成通道,依次发送各空闲通道对应的剩余首包网络报文,等待接收中转FPGA的反馈包;
所述反馈处理模块中,若中转FPGA不存在空闲且未发送完成通道,以自定义MAC类型B发送查询包,查询中转FPGA的各通道状态。
作为多FPGA从模式快速烧录装置优选方案,所述MAC类型检查模块中,若中转FPGA检查接收的网络报文的MAC类型为自定义MAC类型B,返回当前缓存数量少于2的通道给CPU。
作为多FPGA从模式快速烧录装置优选方案,所述目标FPGA转发模块包括:
报文数据缓存子模块,用于将网络报文数据缓存到FIFO,若缓存一包数据完成将当前通道缓存数量+1;
缓存读取子模块,用于读取缓存池,当缓存池缓存大于等于一包数据时,读取缓存直至一包数据读完,若一包数据读取完成将当前通道缓存数量+1;
缓存发送子模块,用于将读取的缓存数据通过配置接口发送到目标FPGA。
本发明具有如下优点:通过CPU从文件系统读取被操作FPGA固件,对被操作FPGA固件分片,并封装为携带被操作FPGA编号的网络报文;依次将封装后的被操作FPGA固件首包网络报文,通过网口以自定义MAC类型A发送到中转FPGA;等待接收中转FPGA的反馈包,若收到中转FPGA的反馈包,判断被操作FPGA固件的报文是否发送完成,若被操作FPGA固件的报文发送完成,结束进程;通过中转FPGA检查接收的网络报文的MAC类型,若接收的网络报文的MAC类型为自定义MAC类型A,根据网络报文携带的被操作FPGA编号,将网络报文数据送到对应发送接口X以发送到目标FPGA。本发明基于CPU和中转FPGA实现多被操作FPGA从模式快速烧录,在保证速度的同时减少了CPU的IO占用,利用FPGA的并行运算特点和IO优势,将固件通过多个配置接口并行发送到被操作FPGA,避免了中转FPGA的缓存溢出风险,FPGA和CPU之间的协同合作、取长补短,使得多个被操作FPGA的快速烧录得以实现,最终提高了应用系统的启动速度,优化了资源占用。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引申获得其他的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。
图1为本发明实施例1提供的多FPGA从模式应用系统示意图;
图2为本发明实施例1提供的多FPGA从模式快速烧录方法CPU处理流程示意图;
图3为本发明实施例1提供的多FPGA从模式快速烧录方法中转FPGA处理流程示意图;
图4为本发明实施例2提供的多FPGA从模式快速烧录装置示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于使用x1配置接口时,CPU虽然可以同时给多个FPGA烧录固件,但是串行接口限制了FPGA的加载速度,使电路系统的启动时间大大延长,常常不能满足性能指标。使用x8/x16/x32等配置接口时,受限于CPU的IO数量,无法为更多的FPGA提供固件烧录。
有鉴于此,本发明提供一种多FPGA从模式快速烧录方法及装置,利用CPU和FPGA之间的千兆网络接口来传输固件到中转FPGA,在保证速度的同时减少了CPU的IO占用,再利用FPGA的并行运算特点和IO优势,将固件通过多个x8/x16/x32配置接口并行发送到被操作FPGA,以提高应用系统的启动速度,优化资源占用。以下为本发明技术方案的具体实施情况。
实施例1
本发明实施例1提供一种多FPGA从模式快速烧录方法,基于CPU和中转FPGA实现多被操作FPGA快速烧录,采用FPGA和CPU分工合作思想,其中,CPU承担了初始化FPGA配置、固件分片、报文封装、通道管理等流程;中转FPGA承担了报文解封装、缓存读写控制、反馈报文发送、数据发送等功能。
参见图1和图2,多FPGA从模式快速烧录过程中,CPU的处理流程如下:
S001:CPU上电后完成复位,初始化运行参数和网络接口,配置中转FPGA,下一步转到S002;
S002:CPU从文件系统读取各被操作FPGA固件,分别进行分片,封装成携带被操作FPGA编号的网络报文,下一步转到S003;
S003:依次将S002得到的被操作FPGA各固件首包网络报文,通过网络接口以自定义MAC类型A发送到中转FPGA,下一步转到S004;
S004:CPU等待接收反馈包,若收到反馈包,则下一步转到S005;
S005:CPU判断所有网络报文是否都发送完成,若所有网络报文都发送完成,则转到S008结束进程;否则转到S006;
S006:结合反馈报文判断中转FPGA是否有空闲且未发送完成的通道,若存在空闲且未发送完成的通道,转到S007;否则,转到S009;
S007:依次发送各空闲通道对应的剩余首包报文,转到S004;
S008:结束进程;
S009:以自定义MAC类型B发送查询包,查询中转FPGA的各通道状态。
辅助图1、图2,参见图3,多FPGA从模式快速烧录过程中,中转FPGA的处理流程如下:
S101:中转FPGA上电后完成复位,初始化中转FPGA的网络接口等,下一步转到S102;
S102:中转FPGA通过完成初始化的MAC接口接收网络报文;
S103:中转FPGA检查网络报文的MAC类型:若为MAC类型A数据报文,下一步转到S104;或为MAC类型B通道查询报文,下一步转到S105;否则,转到S106;
S104:根据网络报文携带的被操作FPGA编号,将报文数据送到对应发送接口X,下一步转到S1X1;
S105:中转FPGA返回当前缓存数量少于2的通道给CPU,下一步转到S102;
S106:丢弃其它类型报文,下一步转到S102;
S1X1:将报文数据缓存到FIFO,若缓存一包完成时,将当前通道缓存数量+1,下一步跳到S1X2;
S1X2:读取缓存池,当缓存池缓存大于等于一包数据时,开始读取缓存直至一包数据读完,下一步转到S1X3;
S1X3:将读取的缓存数据通过配置接口发送到目标FPGA,若一包数据读取完成,下一步跳到S1X4;
S1X4:一包数据发送完成,缓存数量-1;下一步转到S105。
其中,A、B指代的是自定义的MAC类型,X指代的是对应目标FPGA的发送接口。
综上所述,本发明当CPU上电完成复位后,初始化CPU运行参数和网络接口,并配置中转FPGA;当中转FPGA上电完成复位后,初始化中转FPGA的网络接口,通过完成初始化的中转FPGA的MAC接口接收CPU发送的网络报文。通过CPU从文件系统读取被操作FPGA固件,对被操作FPGA固件分片,并封装为携带被操作FPGA编号的网络报文;依次将封装后的被操作FPGA固件首包网络报文,通过网口以自定义MAC类型A发送到中转FPGA;等待接收中转FPGA的反馈包,若收到中转FPGA的反馈包,判断被操作FPGA固件的报文是否发送完成,若被操作FPGA固件的报文发送完成,结束进程;通过中转FPGA检查接收的网络报文的MAC类型,若接收的网络报文的MAC类型为自定义MAC类型A,根据网络报文携带的被操作FPGA编号,将网络报文数据送到对应发送接口X以发送到目标FPGA。作为多FPGA从模式快速烧录方法优选方案,若被操作FPGA固件的报文未发送完成,结合反馈报文判断中转FPGA是否有空闲且未发送完成通道,若中转FPGA存在空闲且未发送完成通道,依次发送各空闲通道对应的剩余首包网络报文,等待接收中转FPGA的反馈包。若中转FPGA不存在空闲且未发送完成通道,以自定义MAC类型B发送查询包,查询中转FPGA的各通道状态。若中转FPGA检查接收的网络报文的MAC类型为自定义MAC类型B,返回当前缓存数量少于2的通道给CPU。将网络报文数据送到对应发送接口X以发送到目标FPGA过程中:将网络报文数据缓存到FIFO,若缓存一包数据完成将当前通道缓存数量+1;读取缓存池,当缓存池缓存大于等于一包数据时,读取缓存直至一包数据读完,若一包数据读取完成将当前通道缓存数量+1;将读取的缓存数据通过配置接口发送到目标FPGA。本发明基于CPU和中转FPGA实现多被操作FPGA从模式快速烧录,在保证速度的同时减少了CPU的IO占用,利用FPGA的并行运算特点和IO优势,将固件通过多个配置接口并行发送到被操作FPGA,避免了中转FPGA的缓存溢出风险,FPGA和CPU之间的协同合作、取长补短,使得多个被操作FPGA的快速烧录得以实现,最终提高了应用系统的启动速度,优化了资源占用。
需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
实施例2
参见图4,本发明实施例2提供一种多FPGA从模式快速烧录装置,包括:
FPGA预处理模块11,用于通过CPU从文件系统读取被操作FPGA固件,对被操作FPGA固件分片,并封装为携带被操作FPGA编号的网络报文;
报文中转发送模块12,用于依次将封装后的被操作FPGA固件首包网络报文,通过网口以自定义MAC类型A发送到中转FPGA;
反馈处理模块13,用于等待接收中转FPGA的反馈包,若收到中转FPGA的反馈包,判断被操作FPGA固件的报文是否发送完成,若被操作FPGA固件的报文发送完成,结束进程;
MAC类型检查模块21,用于通过中转FPGA检查接收的网络报文的MAC类型;
目标FPGA转发模块22,用于若接收的网络报文的MAC类型为自定义MAC类型A,根据网络报文携带的被操作FPGA编号,将网络报文数据送到对应发送接口X以发送到目标FPGA。
本实施例中,还包括:
CPU初始配置模块10,用于当CPU上电完成复位后,初始化CPU运行参数和网络接口,并配置中转FPGA;
中转FPGA初始化模块20,用于当中转FPGA上电完成复位后,初始化中转FPGA的网络接口,通过完成初始化的中转FPGA的MAC接口接收CPU发送的网络报文。
本实施例中,所述反馈处理模块13中,若被操作FPGA固件的报文未发送完成,结合反馈报文判断中转FPGA是否有空闲且未发送完成通道;
所述反馈处理模块13中,若中转FPGA存在空闲且未发送完成通道,依次发送各空闲通道对应的剩余首包网络报文,等待接收中转FPGA的反馈包;
所述反馈处理模块13中,若中转FPGA不存在空闲且未发送完成通道,以自定义MAC类型B发送查询包,查询中转FPGA的各通道状态。
本实施例中,所述MAC类型检查模块21中,若中转FPGA检查接收的网络报文的MAC类型为自定义MAC类型B,返回当前缓存数量少于2的通道给CPU。
本实施例中,所述目标FPGA转发模块22包括:
报文数据缓存子模块221,用于将网络报文数据缓存到FIFO,若缓存一包数据完成将当前通道缓存数量+1;
缓存读取子模块222,用于读取缓存池,当缓存池缓存大于等于一包数据时,读取缓存直至一包数据读完,若一包数据读取完成将当前通道缓存数量+1;
缓存发送子模块223,用于将读取的缓存数据通过配置接口发送到目标FPGA。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本申请实施例1中的方法实施例基于同一构思,其带来的技术效果与本申请方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。
实施例3
本发明实施例3提供一种非暂态计算机可读存储介质,所述计算机可读存储介质中存储有多FPGA从模式快速烧录方法的程序代码,所述程序代码包括用于执行实施例1或其任意可能实现方式的多FPGA从模式快速烧录方法的指令。
计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(SolidState Disk、SSD))等。
实施例4
本发明实施例4提供一种电子设备,包括:存储器和处理器;
所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行实施例1或其任意可能实现方式的多FPGA从模式快速烧录方法。
具体的,处理器可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,该处理器可以是逻辑电路、集成电路等;当通过软件来实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现,该存储器可以集成在处理器中,可以位于所述处理器之外,独立存在。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (4)
1.一种多FPGA从模式快速烧录方法,其特征在于,包括:
通过CPU从文件系统读取被操作FPGA固件,对被操作FPGA固件分片,并封装为携带被操作FPGA编号的网络报文;
依次将封装后的被操作FPGA固件首包网络报文,通过网口以自定义MAC类型A发送到中转FPGA;
等待接收中转FPGA的反馈包,若收到中转FPGA的反馈包,判断被操作FPGA固件的报文是否发送完成,若被操作FPGA固件的报文发送完成,结束进程;
通过中转FPGA检查接收的网络报文的MAC类型,若接收的网络报文的MAC类型为自定义MAC类型A,根据网络报文携带的被操作FPGA编号,将网络报文数据送到对应发送接口X以发送到目标FPGA;
若被操作FPGA固件的报文未发送完成,结合反馈报文判断中转FPGA是否有空闲且未发送完成通道,若中转FPGA存在空闲且未发送完成通道,依次发送各空闲通道对应的剩余首包网络报文,等待接收中转FPGA的反馈包;
若中转FPGA不存在空闲且未发送完成通道,以自定义MAC类型B发送查询包,查询中转FPGA的各通道状态;
若中转FPGA检查接收的网络报文的MAC类型为自定义MAC类型B,返回当前缓存数量少于2的通道给CPU;
将网络报文数据送到对应发送接口X以发送到目标FPGA,包括:
将网络报文数据缓存到FIFO,若缓存一包数据完成将当前通道缓存数量+1;
读取缓存池,当缓存池缓存大于等于一包数据时,读取缓存直至一包数据读完,若一包数据读取完成将当前通道缓存数量+1;
将读取的缓存数据通过配置接口发送到目标FPGA。
2.根据权利要求1所述的一种多FPGA从模式快速烧录方法,其特征在于,当CPU上电完成复位后,初始化CPU运行参数和网络接口,并配置中转FPGA;
当中转FPGA上电完成复位后,初始化中转FPGA的网络接口,通过完成初始化的中转FPGA的MAC接口接收CPU发送的网络报文。
3.一种多FPGA从模式快速烧录装置,其特征在于,包括:
FPGA预处理模块,用于通过CPU从文件系统读取被操作FPGA固件,对被操作FPGA固件分片,并封装为携带被操作FPGA编号的网络报文;
报文中转发送模块,用于依次将封装后的被操作FPGA固件首包网络报文,通过网口以自定义MAC类型A发送到中转FPGA;
反馈处理模块,用于等待接收中转FPGA的反馈包,若收到中转FPGA的反馈包,判断被操作FPGA固件的报文是否发送完成,若被操作FPGA固件的报文发送完成,结束进程;
MAC类型检查模块,用于通过中转FPGA检查接收的网络报文的MAC类型;
目标FPGA转发模块,用于若接收的网络报文的MAC类型为自定义MAC类型A,根据网络报文携带的被操作FPGA编号,将网络报文数据送到对应发送接口X以发送到目标FPGA;
所述反馈处理模块中,若被操作FPGA固件的报文未发送完成,结合反馈报文判断中转FPGA是否有空闲且未发送完成通道;
所述反馈处理模块中,若中转FPGA存在空闲且未发送完成通道,依次发送各空闲通道对应的剩余首包网络报文,等待接收中转FPGA的反馈包;
所述反馈处理模块中,若中转FPGA不存在空闲且未发送完成通道,以自定义MAC类型B发送查询包,查询中转FPGA的各通道状态;
所述MAC类型检查模块中,若中转FPGA检查接收的网络报文的MAC类型为自定义MAC类型B,返回当前缓存数量少于2的通道给CPU;
所述目标FPGA转发模块包括:
报文数据缓存子模块,用于将网络报文数据缓存到FIFO,若缓存一包数据完成将当前通道缓存数量+1;
缓存读取子模块,用于读取缓存池,当缓存池缓存大于等于一包数据时,读取缓存直至一包数据读完,若一包数据读取完成将当前通道缓存数量+1;
缓存发送子模块,用于将读取的缓存数据通过配置接口发送到目标FPGA。
4.根据权利要求3所述的一种多FPGA从模式快速烧录装置,其特征在于,还包括:
CPU初始配置模块,用于当CPU上电完成复位后,初始化CPU运行参数和网络接口,并配置中转FPGA;
中转FPGA初始化模块,用于当中转FPGA上电完成复位后,初始化中转FPGA的网络接口,通过完成初始化的中转FPGA的MAC接口接收CPU发送的网络报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210927405.4A CN115291898B (zh) | 2022-08-03 | 2022-08-03 | 一种多fpga从模式快速烧录方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210927405.4A CN115291898B (zh) | 2022-08-03 | 2022-08-03 | 一种多fpga从模式快速烧录方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115291898A CN115291898A (zh) | 2022-11-04 |
CN115291898B true CN115291898B (zh) | 2023-11-10 |
Family
ID=83827156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210927405.4A Active CN115291898B (zh) | 2022-08-03 | 2022-08-03 | 一种多fpga从模式快速烧录方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115291898B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106020864A (zh) * | 2016-05-10 | 2016-10-12 | 西安电子工程研究所 | 基于网络和光纤数据传输实现的多板卡fpga程序烧写方法 |
CN106874051A (zh) * | 2017-02-20 | 2017-06-20 | 中国电子科技集团公司第二十九研究所 | 一种基于以太网的多片fpga高速动态加载装置及方法 |
CN107918545A (zh) * | 2017-12-13 | 2018-04-17 | 天津光电通信技术有限公司 | 一种基于zynq的远程升级系统及其实现方法 |
CN109086055A (zh) * | 2018-07-13 | 2018-12-25 | 武汉精测电子集团股份有限公司 | 一种多通道并行工业烧录器 |
CN110069441A (zh) * | 2019-03-21 | 2019-07-30 | 中国科学院计算技术研究所 | 一种用于流计算的fpga网络及流计算系统与方法 |
CN110175056A (zh) * | 2019-05-30 | 2019-08-27 | 西安微电子技术研究所 | 一种异构平台远程动态加载多目标fpga的控制装置及控制方法 |
CN111030944A (zh) * | 2019-11-25 | 2020-04-17 | 杭州迪普科技股份有限公司 | 一种报文发送方法及设备 |
CN112214345A (zh) * | 2020-11-02 | 2021-01-12 | 西安电子工程研究所 | 一种基于多重加载的多fpga软件烧写故障恢复方法 |
CN112910932A (zh) * | 2021-04-30 | 2021-06-04 | 北京数盾信息科技有限公司 | 一种数据处理方法、装置及系统 |
CN114020302A (zh) * | 2021-12-14 | 2022-02-08 | 苏州长风航空电子有限公司 | 一种主cpu对多fpga在线升级的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130232328A1 (en) * | 2010-11-18 | 2013-09-05 | Thomson Licensing | Method to safely reprogram an fpga |
-
2022
- 2022-08-03 CN CN202210927405.4A patent/CN115291898B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106020864A (zh) * | 2016-05-10 | 2016-10-12 | 西安电子工程研究所 | 基于网络和光纤数据传输实现的多板卡fpga程序烧写方法 |
CN106874051A (zh) * | 2017-02-20 | 2017-06-20 | 中国电子科技集团公司第二十九研究所 | 一种基于以太网的多片fpga高速动态加载装置及方法 |
CN107918545A (zh) * | 2017-12-13 | 2018-04-17 | 天津光电通信技术有限公司 | 一种基于zynq的远程升级系统及其实现方法 |
CN109086055A (zh) * | 2018-07-13 | 2018-12-25 | 武汉精测电子集团股份有限公司 | 一种多通道并行工业烧录器 |
CN110069441A (zh) * | 2019-03-21 | 2019-07-30 | 中国科学院计算技术研究所 | 一种用于流计算的fpga网络及流计算系统与方法 |
CN110175056A (zh) * | 2019-05-30 | 2019-08-27 | 西安微电子技术研究所 | 一种异构平台远程动态加载多目标fpga的控制装置及控制方法 |
CN111030944A (zh) * | 2019-11-25 | 2020-04-17 | 杭州迪普科技股份有限公司 | 一种报文发送方法及设备 |
CN112214345A (zh) * | 2020-11-02 | 2021-01-12 | 西安电子工程研究所 | 一种基于多重加载的多fpga软件烧写故障恢复方法 |
CN112910932A (zh) * | 2021-04-30 | 2021-06-04 | 北京数盾信息科技有限公司 | 一种数据处理方法、装置及系统 |
CN114020302A (zh) * | 2021-12-14 | 2022-02-08 | 苏州长风航空电子有限公司 | 一种主cpu对多fpga在线升级的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115291898A (zh) | 2022-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10204070B2 (en) | Method, device, system and storage medium for implementing packet transmission in PCIE switching network | |
US10802995B2 (en) | Unified address space for multiple hardware accelerators using dedicated low latency links | |
WO2016187813A1 (zh) | 一种光电混合网络的数据传输方法及装置 | |
CN107728936B (zh) | 用于传输数据处理请求的方法和装置 | |
CN112272128B (zh) | Hinoc组帧方法、系统、介质、计算机设备及应用 | |
US20230080588A1 (en) | Mqtt protocol simulation method and simulation device | |
US11935600B2 (en) | Programmable atomic operator resource locking | |
US11403023B2 (en) | Method of organizing a programmable atomic unit instruction memory | |
CN111147391B (zh) | DPDK用户态与linux内核网络协议栈之间的数据传输方法及系统 | |
CN113986791A (zh) | 一种智能网卡快速dma设计方法、系统、设备及终端 | |
CN105141603A (zh) | 通信数据传输方法及系统 | |
CN116547644A (zh) | 检测可编程原子事务中的无限循环 | |
CN110895516A (zh) | 使用管理数据输入/输出接口将外部phy设备连接到mac设备 | |
US10489322B2 (en) | Apparatus and method to improve performance in DMA transfer of data | |
CN114513472A (zh) | 网络拥塞控制方法及装置 | |
CN113079113B (zh) | 数据传输装置和数据传输系统 | |
CN115291898B (zh) | 一种多fpga从模式快速烧录方法及装置 | |
CN116529721A (zh) | 按需可编程原子内核加载 | |
CN114928575B (zh) | 基于fpga的多算法核数据包保序方法及装置 | |
US7751269B2 (en) | Coupling device for transmitting data | |
CN117234977B (zh) | 数据处理方法、系统、设备及计算机可读存储介质 | |
CN116893987B (zh) | 硬件加速方法、硬件加速器及硬件加速系统 | |
US20240069754A1 (en) | Computing system and associated method | |
US20230036404A1 (en) | System and method for facilitating dynamic triggered operation management in a network interface controller (nic) | |
CN112988633A (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 |