CN108132811A - 一种fpga程序数据的加载方法及装置 - Google Patents

一种fpga程序数据的加载方法及装置 Download PDF

Info

Publication number
CN108132811A
CN108132811A CN201711348549.XA CN201711348549A CN108132811A CN 108132811 A CN108132811 A CN 108132811A CN 201711348549 A CN201711348549 A CN 201711348549A CN 108132811 A CN108132811 A CN 108132811A
Authority
CN
China
Prior art keywords
write
program data
fpga
buffer area
loading
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
Application number
CN201711348549.XA
Other languages
English (en)
Other versions
CN108132811B (zh
Inventor
项东阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN201711348549.XA priority Critical patent/CN108132811B/zh
Publication of CN108132811A publication Critical patent/CN108132811A/zh
Application granted granted Critical
Publication of CN108132811B publication Critical patent/CN108132811B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供一种FPGA程序数据的加载方法及装置,应用于网络设备,所述方法包括:从外部设备的指定位置获取程序数据,并将所述程序数据存储至用户态空间;将所述程序数据复制到内核态空间的程序数据缓存区;向版本控制FPGA发送加载指令,以由所述版本控制FPGA从所述程序数据缓存区将所述程序数据加载至业务处理FPGA。在本申请技术方案中,取消了FPGA程序数据加载过程中反复拆卸flash芯片及在flash芯片上擦写程序数据的动作,显著降低了加载FPGA程序数据的时间。

Description

一种FPGA程序数据的加载方法及装置
技术领域
本申请涉及计算机技术领域,特别涉及一种FPGA程序数据的加载方法及装置。
背景技术
FPGA(Field-Programmable Gate Array,现场可编程门阵列)是基于SRAM(StaticRandom Access Memory,静态随机存取存储器)编程的,在系统断电时SRAM上存储的FPGA的程序数据会丢失。其中,程序数据包括FPGA上运行的程序软件。每次对系统上电时,需要由CPU(Central Processing Unit,中央处理器)从FPGA外部的存储芯片中存储的程序数据重新写入FPGA内部的SRAM中。其中,存储芯片包括EEPROM(Electrically ErasableProgrammable read only memory,电可擦除只读存储器)和flash芯片(Flash EEPROMMemory)等。
参见图1,为现有技术的一种网络设备的架构图,如图1所示,网络设备上电后,CPU通过并行总线读取存储于flash芯片中的FPGA的程序数据,然后通过CPLD(ComplexProgrammable Logic Device,复杂可编程逻辑器件)模拟FPGA加载时序,将程序数据加载到FPGA的SRAM当中。
然后,现有技术通过擦写flash芯片的方式将FPGA的程序数据写入flash芯片当中,擦写速度较慢,且每次擦写前需从网络设备上将flash拆卸下来。在调试FPGA的程序数据的功能时,需要反复更换FPGA的程序数据,则每次都讲flash芯片从网络设备上拆卸并擦写程序数据,耗时过大。
发明内容
有鉴于此,本申请提供一种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;
整个加载过程无需反复拆卸flash芯片及在flash芯片上擦写程序数据,显著降低了加载FPGA程序数据的时间。
附图说明
图1是现有技术的一种网络设备的架构图;
图2是本申请示出的一种网络设备的架构图;
图3是本申请示出的一种FPGA程序数据的加载方法的流程图;
图4是本申请示出的另一种FPGA程序数据的加载方法的流程图;
图5是本申请示出的一种程序数据缓存区的数据结构示意图;
图6是本申请示出的一种FPGA程序数据的加载装置的实施例框图;
图7是本申请示出的一种FPGA程序数据的加载装置的硬件结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对现有技术方案和本发明实施例中的技术方案作进一步详细的说明。
参见图2,为本申请示出的一种网络设备的架构图,如图2所示,网络设备上包括CPU、内存和版本控制FPGA和业务处理FPGA;其中,版本控制FPGA用于为业务处理FPGA加载程序数据,功能与背景技术中的CPLD类似。网络设备的内存分为用户态空间和内核态空间,分别具有不同的权限级别。
另外,版本控制FPGA上为业务处理FPGA加载程序数据的程序,可以参照现有技术在上电后从flash芯片获取;由于版本控制FPGA上的程序不会多次调试,上述flash芯片也无需多次拆卸、擦写,不会对本申请中的加载方法造成影响。具体参照现有技术,本申请不再赘述。
参见图3,为本申请示出的一种FPGA程序数据的加载方法的流程图,所述方法应用于网络设备,包括:
步骤301:从外部设备的指定位置获取程序数据,并将所述程序数据存储至用户态空间。
其中,上述外部设备可以是为网络设备提供FPGA程序数据的计算机主机或服务器。
上述指定位置可以为上述外部设备用以存储程序数据的内存地址或缓存地址,可以预先配置在网络设备上。
作为一种实施例,网络设备可以通过TFTP(Trivial File Trasfer Protocol,简单文件传送协议)协议从外部设备的指定位置获取程序数据,然后将获取到的上述程序数据存储至用户态空间。
当然,网络设备也可以通过其它传输协议从外部设备获取程序数据,比如,FTP(File Transfer Protocol,文件传输协议)协议。
步骤302:将所述程序数据复制到内核态空间的程序数据缓存区。
网络设备可以将上述程序数据从上述用户态空间复制到内核态空间的程序数据缓存区,以便于后续由上述版本控制FPGA从上述程序数据缓存区获取上述程序数据。
当然,在将上述程序数据复制到上述程序数据缓存区前,网络设备首先需在上述内核态空间分配用于存放程序数据的程序数据缓存区。
参见图4,为本申请示出的另一种FPGA程序数据的加载方法的流程图,如图4所示,网络设备在从外部设备获取程序数据后,可以首先在内核态空间分配程序数据缓存区。
具体地,网络设备接收到缓存区分配指令,然后在内核态空间分配程序数据缓存区,并确定是否分配成功;
一方面,如果未分配成功,则输出失败提示信息;使得用户查找失败原因,并可以人为决定是否重新下发缓存区分配指令;该措施可避免持续分配失败造成的资源浪费;
另一方面,如果分配成功,则网络设备可以将上述程序数据缓存区的缓存区起始位置、缓存区大小和回写确认地址写入上述版本控制FPGA。
上述版本控制FPGA后续可以基于上述缓存区起始位置和上述缓存区大小从上述程序数据缓存区获取程序数据。
其中,上述缓存区大小可以基于实际应用环境和程序数据进行调整,比如,若程序数据较大,则缓存区大小也可以相应大一些,这样可以提高后续加载的速度。
上述回写确认地址可以写入回写完成标识或回写未完成标识;其中,回写完成标识表明版本控制FPGA已将上述程序数据缓存区中的数据加载到业务处理FPGA;回写未完成标识表明版本控制FPGA尚未将上述程序数据缓存区中的数据加载到业务处理FPGA。
参见图5,为本申请示出的一种程序数据缓存区的数据结构示意图,如图5所示,缓存区大小为1M,回写确认区为32bit。当然,上述回写完成标识可以是1,上述回写未完成标识可以是0,这样的话,实际上回写确认区的只有1bit用于记录回写完成标识或回写未完成标识,可以通过第一个bit记录上述回写完成标识。
网络设备将上述程序数据缓存区的缓存区起始位置、缓存区大小和回写确认地址写入上述版本控制FPGA后,可以上述程序数据从上述用户态空间复制到内核态空间。
在示出的一种实施方式中,如果上述程序数据小于缓存区大小,则上述程序数据可以一次性加载完成,此时,网络数据可以直接将上述程序数据复制到上述程序数据缓存区。另外,网络数据还可以在上述回写确认地址写入回写未完成标识。
在示出的另一种实施方式中,如果上述程序数据大于缓存区大小,则上述程序数据需要分多次加载才能加载完成。
在这种情况下,网络设备可以基于上述缓存区大小将程序数据划分为若干程序子数据,然后依次将上述若干程序子数据选为目标子数据。
网络设备将上述目标子数据从上述用户态空间复制到上述程序数据缓存区。另外,可以在上述回写确认地址写入回写未完成标识。
步骤303:向版本控制FPGA发送加载指令,以由所述版本控制FPGA从所述程序数据缓存区将所述程序数据加载至业务处理FPGA。
具体地,网络设备可以向上述版本控制FPGA发送加载指令。上述版本控制FPGA接收到上述加载指令后,可以基于上述缓存区起始地址和上述缓存区大小将上述程序数据缓存区中的数据加载到业务处理FPGA中,并在上述回写确认地址中写入上述回写确认标识。
网络设备可以在发送加载指令后,检查上述回写确认地址是否写入回写完成标识。作为一种实施例,网络设备可以基于预设的周期时长反复去上述回写确认地址中读取其中的内容,从而确认是否写入回写完成标识。
参见图4,网络设备检查上述回写确认地址是否写入回写完成标识。
一方面,如果上述回写确认地址写入回写完成标识,则网络设备可以确定上述程序数据缓存区中的数据已经加载到业务处理FPGA中。
进一步地,网络设备可以确定上述程序数据是否加载完成。
此时,若上述程序数据可以一次性加载完成,则上述程序数据已经加载完成,网络设备可以结束加载流程。
若上述程序数据需分多次加载才能加载完成,则网络设备可以通过确定是否存在下一个目标子数据来判断上述程序数据是否加载完成。
当不存在下一个程序子数据,则确定上述程序数据已经加载完成,结束加载流程;
当存在下一个程序子数据,则确定上述程序数据尚未加载完成,可以将下一个程序子数据选为目标子数据。
另一方面,如果上述回写确认地址尚未写入回写完成标识,则网络设备可以等待预设时长后,重新检查上述回写确认地址是否写入回写完成标识。
需要指出的是,若网络设备是以预设的周期时长反复读取上述回写确认周期中的内容,则上述预设时长就是上述预设的周期时长。
作为一种实施例,仍旧参见图4,网络设备可以在重新检查上述回写确认地址是否写入上述回写完成标识前,首先判断本次加载是否超时。
在示出的一种实施方式中,网络设备可以在上述回写确认地址写入回写未完成标识时,启动一个定时器。后续每次重新检查上述回写确认地址前,首先检查该定时器是否达到预设的超时时长。
当网络设备从上述回写确认地址读取到回写完成标识,并重新向程序数据缓存区写入数据后,可以对定时器进行复位,然后重新启动定时器。使得定时器每次记录的都是本次加载花费的时长。
一方面,如果网络设备确定本次加载超时,则可以结束加载流程;
另一方面,如果网络设备确定本次加载未超时,则可以重新检查上述回写确认地址是否写入上述回写完成标识。
通过该措施,网络设备可以在加载出现异常时,直接结束加载流程,避免无效的加载流程造成资源的浪费。
综上所述,在本申请技术方案中,网络设备通过网络传输的方式从外部设备的指定位置获取到程序数据,然后将上述程序数据从用户态空间复制到内核态空间,并向版本控制FPGA发送加载指令,以由版本控制FPGA可以将上述程序数据加载至业务处理FPGA;
程序数据加载至业务处理FPGA的过程无需反复拆卸flash芯片,也无需在flash芯片上反复擦写程序数据,显著降低了加载FPGA程序数据的时间,提高了加载效率。
与前述FPGA程序数据的加载方法的实施例相对应,本申请还提供了FPGA程序数据的加载装置的实施例。
参见图6,为本申请示出的一种FPGA程序数据的加载装置的实施例框图:
如图6所示,该FPGA程序数据的加载装置60包括:
获取单元610,用于从外部设备的指定位置获取程序数据,并将所述程序数据存储至用户态空间。
复制单元620,用于将所述程序数据复制到内核态空间的程序数据缓存区。
发送单元630,用于向版本控制FPGA发送加载指令,以由所述版本控制FPGA从所述程序数据缓存区将所述程序数据加载至业务处理FPGA。
在本例中,所述装置还包括:
接收单元640(图中未示出),用于接收到缓存区分配指令;
分配单元650(图中未示出),用于在所述内核态空间分配所述程序数据缓存区,并确定是否分配成功;
输出单元660(图中未示出),用于如果否,输出失败提示信息;
写入单元670(图中未示出),用于如果是,将所述程序数据缓存区的缓存区起始位置、缓存区大小和回写确认地址写入所述版本控制FPGA。
在本例中,所述复制单元620,进一步用于:
基于所述缓存区大小将所述程序数据划分为若干程序子数据;
依次将若干程序子数据选为目标子数据;
将所述目标子数据从所述用户态空间复制到所述程序数据缓存区。
在本例中,所述发送单元630,进一步用于:
向所述版本控制FPGA发送所述加载指令,以由所述版本控制FPGA基于所述缓存区起始地址和所述缓存区大小将所述目标子数据加载至所述业务处理FPGA并在所述回写确认地址写入所述回写完成标识。
在本例中,所述复制单元620,进一步用于:
检查所述回写确认地址是否写入回写完成标识;其中,所述回写完成标识表征所述版本控制FPGA已将所述目标子数据加载至所述业务处理FPGA;
如果是,将下一个程序子数据选为目标子数据,并将所述回写确认地址的所述回写完成标识更换为回写未完成标识;
如果否,等待预设时长后,重新检查所述回写确认地址是否写入所述回写完成标识。
在本例中,所述复制单元620,进一步用于:
确定所述程序数据是否加载完成;
如果是,结束加载流程;
如果否,将下一个程序子数据选为目标子数据。
在本例中,所述复制单元620,进一步用于:
等待预设时长后,确定所述目标子数据的加载是否超时;
如果是,结束加载流程;
如果否,重新检查所述回写确认地址是否写入所述回写完成标识。
本申请FPGA程序数据的加载装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在网络设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本申请FPGA程序数据的加载装置所在网络设备的一种硬件结构图,除了图7所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的网络设备通常根据该FPGA程序数据的加载装置的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (14)

1.一种FPGA程序数据的加载方法,应用于网络设备,其特征在于,包括:
从外部设备的指定位置获取程序数据,并将所述程序数据存储至用户态空间;
将所述程序数据复制到内核态空间的程序数据缓存区;
向版本控制FPGA发送加载指令,以由所述版本控制FPGA从所述程序数据缓存区将所述程序数据加载至业务处理FPGA。
2.根据权利要求1所述的方法,其特征在于,所述将所述程序数据复制到内核态空间的程序数据缓存区前,所述方法还包括:
接收到缓存区分配指令;
在所述内核态空间分配所述程序数据缓存区,并确定是否分配成功;
如果否,输出失败提示信息;
如果是,将所述程序数据缓存区的缓存区起始位置、缓存区大小和回写确认地址写入所述版本控制FPGA。
3.根据权利要求2所述的方法,其特征在于,所述将所述程序数据复制到内核态空间的程序数据缓存区,包括:
基于所述缓存区大小将所述程序数据划分为若干程序子数据;
依次将若干程序子数据选为目标子数据;
将所述目标子数据从所述用户态空间复制到所述程序数据缓存区。
4.根据权利要求3所述的方法,其特征在于,所述向版本控制FPGA发送加载指令,以由所述版本控制FPGA从所述程序数据缓存区将所述程序数据加载至业务处理FPGA,包括:
向所述版本控制FPGA发送所述加载指令,以由所述版本控制FPGA基于所述缓存区起始地址和所述缓存区大小将所述目标子数据加载至所述业务处理FPGA并在所述回写确认地址写入所述回写完成标识。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
检查所述回写确认地址是否写入回写完成标识;其中,所述回写完成标识表征所述版本控制FPGA已将所述目标子数据加载至所述业务处理FPGA;
如果是,将下一个程序子数据选为目标子数据,并将所述回写确认地址的所述回写完成标识更换为回写未完成标识;
如果否,等待预设时长后,重新检查所述回写确认地址是否写入所述回写完成标识。
6.根据权利要求5所述的方法,其特征在于,所述将下一个程序子数据选为目标子数据,包括:
确定所述程序数据是否加载完成;
如果是,结束加载流程;
如果否,将下一个程序子数据选为目标子数据。
7.根据权利要求5所述的方法,其特征在于,所述等待预设时长后,重新检查所述回写确认地址是否写入所述回写完成标识的步骤,包括:
等待预设时长后,确定所述目标子数据的加载是否超时;
如果是,结束加载流程;
如果否,重新检查所述回写确认地址是否写入所述回写完成标识。
8.一种FPGA程序数据的加载装置,应用于网络设备,其特征在于,包括:
获取单元,用于从外部设备的指定位置获取程序数据,并将所述程序数据存储至用户态空间;
复制单元,用于将所述程序数据复制到内核态空间的程序数据缓存区;
发送单元,用于向版本控制FPGA发送加载指令,以由所述版本控制FPGA从所述程序数据缓存区将所述程序数据加载至业务处理FPGA。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
接收单元,用于接收到缓存区分配指令;
分配单元,用于在所述内核态空间分配所述程序数据缓存区,并确定是否分配成功;
输出单元,用于如果否,输出失败提示信息;
写入单元,用于如果是,将所述程序数据缓存区的缓存区起始位置、缓存区大小和回写确认地址写入所述版本控制FPGA。
10.根据权利要求9所述的装置,其特征在于,所述复制单元,进一步用于:
基于所述缓存区大小将所述程序数据划分为若干程序子数据;
依次将若干程序子数据选为目标子数据;
将所述目标子数据从所述用户态空间复制到所述程序数据缓存区。
11.根据权利要求10所述的装置,其特征在于,所述发送单元,进一步用于:
向所述版本控制FPGA发送所述加载指令,以由所述版本控制FPGA基于所述缓存区起始地址和所述缓存区大小将所述目标子数据加载至所述业务处理FPGA并在所述回写确认地址写入所述回写完成标识。
12.根据权利要求11所述的装置,其特征在于,所述复制单元,进一步用于:
检查所述回写确认地址是否写入回写完成标识;其中,所述回写完成标识表征所述版本控制FPGA已将所述目标子数据加载至所述业务处理FPGA;
如果是,将下一个程序子数据选为目标子数据,并将所述回写确认地址的所述回写完成标识更换为回写未完成标识;
如果否,等待预设时长后,重新检查所述回写确认地址是否写入所述回写完成标识。
13.根据权利要求12所述的装置,其特征在于,所述复制单元,进一步用于:
确定所述程序数据是否加载完成;
如果是,结束加载流程;
如果否,将下一个程序子数据选为目标子数据。
14.根据权利要求12所述的装置,其特征在于,所述复制单元,进一步用于:
等待预设时长后,确定所述目标子数据的加载是否超时;
如果是,结束加载流程;
如果否,重新检查所述回写确认地址是否写入所述回写完成标识。
CN201711348549.XA 2017-12-15 2017-12-15 一种fpga程序数据的加载方法及装置 Active CN108132811B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711348549.XA CN108132811B (zh) 2017-12-15 2017-12-15 一种fpga程序数据的加载方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711348549.XA CN108132811B (zh) 2017-12-15 2017-12-15 一种fpga程序数据的加载方法及装置

Publications (2)

Publication Number Publication Date
CN108132811A true CN108132811A (zh) 2018-06-08
CN108132811B CN108132811B (zh) 2021-09-21

Family

ID=62390267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711348549.XA Active CN108132811B (zh) 2017-12-15 2017-12-15 一种fpga程序数据的加载方法及装置

Country Status (1)

Country Link
CN (1) CN108132811B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109753368A (zh) * 2018-12-20 2019-05-14 清华大学 一种实时数据发送方法及系统
CN111831405A (zh) * 2019-04-18 2020-10-27 阿里巴巴集团控股有限公司 一种数据处理方法、逻辑芯片及其设备
CN113849238A (zh) * 2021-09-29 2021-12-28 浪潮电子信息产业股份有限公司 数据通信方法、装置、电子设备及可读存储介质
CN116541084A (zh) * 2023-06-29 2023-08-04 深圳艾为电气技术有限公司 压缩机驱动器的驱动装载控制方法、装置、设备及介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070089082A1 (en) * 2000-09-02 2007-04-19 Actel Corporation Freeway routing system for a gate array
CN101441674A (zh) * 2008-12-15 2009-05-27 浙江大学 基于fpga的动态可重构系统的分片配置方法
CN101826025A (zh) * 2010-03-22 2010-09-08 太仓市同维电子有限公司 现场可编程逻辑器件固件升级装置及其方法
CN102438116A (zh) * 2011-08-17 2012-05-02 中国科学院光电技术研究所 一种基于嵌入式Linux系统的高速图像记录装置
CN102999350A (zh) * 2012-10-24 2013-03-27 绵阳市维博电子有限责任公司 一种数字信号处理平台中fpga程序升级在线下载方法
CN103970665A (zh) * 2014-05-28 2014-08-06 广州视源电子科技股份有限公司 一种模拟spi flash的fpga系统及调试方法
CN104881312A (zh) * 2015-06-02 2015-09-02 嘉应学院 一种fpga逻辑代码可迭代升级的方法及电路
CN105159731A (zh) * 2015-10-12 2015-12-16 中国电子科技集团公司第五十四研究所 一种fpga配置文件远程升级的装置
CN105490857A (zh) * 2015-12-11 2016-04-13 中国航空工业集团公司西安航空计算技术研究所 一种fc网络设备逻辑远程升级系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070089082A1 (en) * 2000-09-02 2007-04-19 Actel Corporation Freeway routing system for a gate array
CN101441674A (zh) * 2008-12-15 2009-05-27 浙江大学 基于fpga的动态可重构系统的分片配置方法
CN101826025A (zh) * 2010-03-22 2010-09-08 太仓市同维电子有限公司 现场可编程逻辑器件固件升级装置及其方法
CN102438116A (zh) * 2011-08-17 2012-05-02 中国科学院光电技术研究所 一种基于嵌入式Linux系统的高速图像记录装置
CN102999350A (zh) * 2012-10-24 2013-03-27 绵阳市维博电子有限责任公司 一种数字信号处理平台中fpga程序升级在线下载方法
CN103970665A (zh) * 2014-05-28 2014-08-06 广州视源电子科技股份有限公司 一种模拟spi flash的fpga系统及调试方法
CN104881312A (zh) * 2015-06-02 2015-09-02 嘉应学院 一种fpga逻辑代码可迭代升级的方法及电路
CN105159731A (zh) * 2015-10-12 2015-12-16 中国电子科技集团公司第五十四研究所 一种fpga配置文件远程升级的装置
CN105490857A (zh) * 2015-12-11 2016-04-13 中国航空工业集团公司西安航空计算技术研究所 一种fc网络设备逻辑远程升级系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ZHUO QIAN.ETC: ""Low power RAM-based hierarchical CAM on FPGA"", 《2014 INTERNATIONAL CONFERENCE ON RECONFIGURABLE COMPUTING AND FPGAS (RECONFIG14)》 *
曹蓓等: ""一种基于FPGA的SOC设计与实现"", 《电子设计工程》 *
王文植: ""驱动多FPGA的实时嵌入式操作系统核心技术研究与设计"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109753368A (zh) * 2018-12-20 2019-05-14 清华大学 一种实时数据发送方法及系统
CN109753368B (zh) * 2018-12-20 2020-12-04 清华大学 一种实时数据发送方法及系统
CN111831405A (zh) * 2019-04-18 2020-10-27 阿里巴巴集团控股有限公司 一种数据处理方法、逻辑芯片及其设备
CN111831405B (zh) * 2019-04-18 2024-05-14 阿里巴巴集团控股有限公司 一种数据处理方法、逻辑芯片及其设备
CN113849238A (zh) * 2021-09-29 2021-12-28 浪潮电子信息产业股份有限公司 数据通信方法、装置、电子设备及可读存储介质
CN113849238B (zh) * 2021-09-29 2024-02-09 浪潮电子信息产业股份有限公司 数据通信方法、装置、电子设备及可读存储介质
CN116541084A (zh) * 2023-06-29 2023-08-04 深圳艾为电气技术有限公司 压缩机驱动器的驱动装载控制方法、装置、设备及介质
CN116541084B (zh) * 2023-06-29 2023-12-15 深圳艾为电气技术有限公司 压缩机驱动器的驱动装载控制方法、装置、设备及介质

Also Published As

Publication number Publication date
CN108132811B (zh) 2021-09-21

Similar Documents

Publication Publication Date Title
CN108132811A (zh) 一种fpga程序数据的加载方法及装置
US7873763B2 (en) Multi-reader multi-writer circular buffer memory
CN106951289A (zh) 一种在线升级方法、dsp控制器及升级系统
CN105359114B (zh) 用于在寻址方案之间进行迁移的方法和系统
CN105144120A (zh) 基于存储器地址将来自高速缓存行的数据存储到主存储器
US10776042B2 (en) Methods for garbage collection and apparatuses using the same
CN110647359B (zh) 半导体装置、其操作方法和具有其的层叠存储装置
CN109815171A (zh) 用于存储器控制器发现供应商特定非易失性存储器设备的方法和装置
CN107797821A (zh) 重试读取方法以及使用该方法的装置
US10782919B2 (en) Command processing method and storage controller using the same
CN104317716B (zh) 分布式节点间的数据传输方法及分布式节点设备
CN103812739B (zh) Fpga与dsp的通信装置和通信方法
US20170228302A1 (en) Method and apparatus for updating a system on chip (soc) image from a host computer system without using dma
CN108763098B (zh) 一种内存数据处理测试系统
US9223697B2 (en) Computer reprogramming method, data storage medium and motor vehicle computer
CN108021413A (zh) 一种fpga在线升级方法及设备
CN110222019B (zh) 文件系统所占空间的调整方法及装置
CN105988724B (zh) 多副本写入存储设备的方法及存储设备
CN107924370A (zh) 单一中断服务例程线程中处理关联于多个请求的返回实体的方法以及使用该方法的装置
CN112885403B (zh) 一种Flash控制器的功能测试方法、装置及设备
CN112860595B (zh) Pci设备或pcie设备、数据存取方法及相关组件
CN111371799B (zh) Mctp控制器收发数据的控制方法、装置及设备
CN105867847B (zh) 访存控制方法、装置及系统
CN112559116B (zh) 内存迁移方法、装置及计算设备
CN105429733B (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