CN111857867A - 一种逻辑文件的加载方法、装置和网络设备 - Google Patents
一种逻辑文件的加载方法、装置和网络设备 Download PDFInfo
- Publication number
- CN111857867A CN111857867A CN202010612754.8A CN202010612754A CN111857867A CN 111857867 A CN111857867 A CN 111857867A CN 202010612754 A CN202010612754 A CN 202010612754A CN 111857867 A CN111857867 A CN 111857867A
- Authority
- CN
- China
- Prior art keywords
- register
- fpga
- logic file
- target fpga
- programmable device
- 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
- 238000011068 loading method Methods 0.000 title claims abstract description 136
- 238000000034 method Methods 0.000 claims abstract description 64
- 230000008569 process Effects 0.000 claims description 34
- 238000010586 diagram Methods 0.000 description 7
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7817—Specially adapted for signal processing, e.g. Harvard architectures
-
- 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)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Stored Programmes (AREA)
- Logic Circuits (AREA)
Abstract
本申请涉及一种逻辑文件的加载方法、装置和网络设备,涉及通信设备领域。一种方法,应用于包括至少两个FPGA的网络设备,包括:根据配置参数在可编程器件的选择寄存器中标记需要加载逻辑文件的目标FPGA,以使可编程器件分别获取目标FPGA的状态信息并记录在可编程器件的状态寄存器中;从可编程器件的状态寄存器中读取目标FPGA的状态信息;当确定目标FPGA处于加载状态时,从存储器中获取与目标FPGA对应的逻辑文件,并向可编程器件中与目标FPGA对应的数据寄存器写入逻辑文件,以使目标FPGA加载对应的逻辑文件。通过上述的逻辑文件的加载方法、装置和网络设备,能够提高网络设备的上电效率。
Description
技术领域
本申请涉及通信设备领域,尤其涉及一种逻辑文件的加载方法、装置和网络设备。
背景技术
现场可编程逻辑门阵列(Field Programmable Gate Array,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所需要的时间,提升网络设备的上电效率。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1为本申请所涉及的一种逻辑文件的加载方法的流程图;
图2为本申请所涉及的一种网络设备的结构示意图;
图3为以往逻辑文件的加载方式所消耗的时间的示意图;
图4为本申请所涉及的一种逻辑文件的加载方法中第一种加载方式所消耗的时间的示意图;
图5为本申请所涉及的一种逻辑文件的加载方法中第二种加载方式所消耗的时间的示意图;
图6为本申请所涉及的另一种网络设备的结构示意图;
图7为本申请所涉及的一种逻辑文件的加载方法中第三种加载方式所消耗的时间的示意图;
图8为本申请所涉及的一种逻辑文件的加载装置的结构示意图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请实施例。本申请实施例和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
本申请提供了一种逻辑文件的加载方法,如图1所示,应用于包括至少两个FPGA的网络设备,包括:
S100、根据配置参数在可编程器件的选择寄存器中标记需要加载逻辑文件的目标FPGA,以使可编程器件分别获取目标FPGA的状态信息并记录在可编程器件的状态寄存器中。
网络设备,如图2所示,包括处理器、可编程器件、存储器以及至少两个FPGA。如图中所示,包含FPGA1、FPGA2……FPGAn,其中,FPGA的数量根据实际需求设置,不做限制。该可编程器件可以为CPLD、FPGA等,在此不做限制,该存储器可以为闪存FLASH,电可擦可编程只读内存EEPROM(Electrically erasable programmable read only memory)等等,在此不做限制。
处理器通过数据总线与可编程器件连接,并通过数据线连接存储器。可编程器件包含若干引脚用于连接FPGA,其中,根据功能划分可以包括时序控制PROGRAM_B、时序反馈INIT_B、时钟CCLK、数据写入DIN和完成反馈DONE。
在可编程器件中可以形成有多个寄存器,用于记录状态、实现时序控制等功能,包括控制寄存器、选择寄存器、状态寄存器和数据寄存器。控制寄存器用于标记是否启动针对FPGA的逻辑文件加载;选择寄存器用于标记对网络设备中的哪些FPGA进行加载;状态寄存器用于记录每一个FPGA的状态信息,包括指示能够进行逻辑文件加载的加载状态以及逻辑文件加载完成的完成状态;数据寄存器用于对输出到FPGA的逻辑文件写入和向FPGA的输出。
针对选择寄存器,需要根据网络设备中FPGA的数量进行配置,比如包含n个FPGA时,则该选择寄存器至少设置n个比特位,每一个比特位对应选择一个FPGA。如果是对所有的FPGA进行加载,还可以单独设置一个比特位作为全局加载比特位。另外,也可以针对每一个FPGA单独设置一个选择寄存器进行标记,针对实现方式不做限制。具体而言,当选择寄存器中的比特位为0时,则认为对应的FPGA未被选中,不进行加载;当选择寄存器中的比特位为1时,则可以认为对应的FPGA被选中,需要进行加载。选择寄存器中被标记的FPGA可以称为目标FPGA。
在进行标记时,处理器可以先从存储器中读取配置参数,该配置参数预先存储在存储器中,可以包括速率模式和加载对象等字段。速率模式用于表示FPGA加载的逻辑文件适用于哪一种速率,比如包括100G速率和40G速率等,加载对象用于标记一种逻辑文件加载到哪一个FPGA。此处,速率模式和加载对象之间存在对应关系,即,通过速率模式和加载对象,需要确定对哪一个FPGA加载哪一种逻辑文件。另外,加载对象可以包含多种字段,比如用于对多个FPGA进行分组的分组信息等。当然,在配置参数中还可以包括其他的信息,在此不做限制。另外,也可以是在确定目标FPGA后,确定FPGA的速率模式,处理器根据速率模式直接从存储器中获取对应的逻辑文件。
针对控制寄存器,举例来说,可以设置一个比特位,当控制寄存器中的比特值置为0时,则认为可编程器件不进行逻辑文件的加载流程,当控制寄存器中的比特值置为1时,则认为可编程器件启动逻辑文件的加载流程。处理器可以下发启动指令,以将控制寄存器中的比特值置为1。
针对状态寄存器,举例来说,可以设置两个比特位,其中,第一比特位用于标记FPGA是否处于加载状态,第二比特位用于标记FPGA是否完成了逻辑文件的记载。当第一比特位为0时,则认为FPGA处于非加载状态,不进行逻辑文件的加载;当第一比特位为1时,则认为FPGA处于加载状态,可编程器件通过CCLK引脚输出时钟,进行逻辑文件的加载。当第二比特位为0时,则表示FPGA未完成逻辑文件的加载,当第二比特位为1时,则表示FPGA完成了逻辑文件的加载。需要说明的是,状态寄存器需要针对每一个FPGA进行设置,形式上可以是为每一个FPGA单独设置一个状态寄存器,也可以是通过一个状态寄存器中不同的比特位来标记不同的FPGA,对状态寄存器具体的设置形式不做限定。
时序控制和时序反馈用于可编程器件和FPGA进行状态信息的确认,二者需要进行根据电平的状态来确定FPGA的状态信息。比如,在处理器向可编程器件的控制寄存器写入1时,可编程器件通过PROGRAM_B引脚向FPGA输出低电平,并检测INIT_B引脚的电平。FPGA在PROGRAM_B引脚接收到低电平后,通过INIT_B引脚向可编程器件反馈低电平。在可编程器件通过INIT_B引脚接收到低电平后,再通过PROGRAM_B引脚向FPGA发送一次高电平,FPGA接收到高电平后,再通过INIT_B引脚向可编程器件反馈一次高电平。在可编程器件接收到高电平后,则认为可以对FPGA进行加载,并在相对应该FPGA的状态寄存器中将第一比特位设置为1,以表示该FPGA可以接收逻辑文件并进行加载。
此处,可编程器件会根据选择寄存器中所选择的目标FPGA进行检测,并在对应的状态寄存器中记录该FPGA的状态信息。
S102、从可编程器件的状态寄存器中读取目标FPGA的状态信息。
在处理器通过可编程器件的选择寄存器标记需要进行加载的FPGA以及通过可编程器件的控制寄存器启动逻辑文件的加载流程后,处理器会获取可编程器件中状态寄存器中存储的内容,以确定各FPGA的状态信息。
获取状态寄存器中存储的内容,处理器可以通过定时轮询的方式实现,即处理器中设定一个计时器,在计时器到达预设时间时,通过总线向可编程器件发送读取请求,可编程器件在接收到读取请求后,将状态寄存器中的状态信息反馈给处理器。其中,根据状态寄存器的设置方式不同,读取请求的发送数量也不同。比如,当可编程器件中设置一个多比特位的状态寄存器分别记录各FPGA的当前状态时,处理器可以发送一个读取请求以使可编程器件一次反馈该状态寄存器中存储的内容;当可编程器件中针对每一个FPGA设置一个状态寄存器时,则处理器可以发送多个读取请求以获取每一个FPGA的状态信息。
或者,处理器也可以通过中断的形式实现状态信息的获取,在处理器通过可编程器件启动FPGA的加载流程后,可编程器件中的状态寄存器中存储的比特值可能出现变化。举例来说,可以在可编程器件确定第一比特位的比特值或者第二比特位的比特值发生变化时,向处理器反馈一个中断信号,从而触发处理器从反馈中断信号的状态寄存器中获取状态信息,以确定对应的FPGA的当前状态;还可以在可编程器件确定第一比特位的比特值或者第二比特位的比特值发生变化时,向处理器反馈携带有变化后的比特值的中断信号,以使处理器直接获取该状态寄存器中的状态信息。
状态信息获取的具体方式,可以根据实际的需求进行设置,对此不作限制。
S104、当确定目标FPGA处于加载状态时,从存储器中获取与目标FPGA对应的逻辑文件,并向可编程器件中与目标FPGA对应的数据寄存器写入逻辑文件,以使目标FPGA加载对应的逻辑文件。
处理器根据从可编程器件获取的状态信息,确定可编程器件所连接的各FPGA的当前状态,比如,根据状态信息确定FPGA1~FPGAn的处于加载状态。那么,处理器则可以从存储器中获取FPGA1~FPGAn所需要逻辑文件,例如,FPGA1~FPGAn需要加载相同的100G速率的逻辑文件。此时,处理器根据之前获取的配置参数,从存储器中读取100G速率的配置所对应的逻辑文件。当然,如果FPGA1~FPGAn需要加载不同的逻辑文件,则处理器可以根据配置参数从存储器中获取多个逻辑文件,并对各FPGA进行分别加载。
在进行加载时,根据数据寄存器的空间将逻辑文件分割成多个数据段进行写入。举例来说,在可编程器件中可以设置存储空间为1字节的数据寄存器,那么,一个50MB的逻辑文件,可以分为50×1024×1024个数据段进行写入。在处理器确定FPGA处于加载状态时,从存储器中读取逻辑文件的数据段1,并将数据段1写入到数据存储器中,并等待一段时间以保证数据寄存器将写入其中的数据段1输出到FPGA进行加载,避免数据寄存器中写入的数据段1未完成对FPGA输出的情况下,处理器将逻辑文件的数据段2写入到数据寄存器,从而覆盖了数据寄存器中原有的数据段1。在等待数据段1被输出到FPGA后,处理器读取逻辑文件的数据段2并以上述方式继续向可编程器件的数据寄存器写入,以此类推,当一个逻辑文件的所有数据段都被输出到FPGA后,FPGA对写入的逻辑文件进行校验,并通过DONE引脚向可编程器件发送完成反馈,至此完成针对一个FPGA的逻辑文件加载流程。
以往的加载方式中,处理器启动对FPGA1的加载流程,获取FPGA1的状态信息,在确定FPGA1进入加载模式后,逐一获取对应的逻辑文件的数据段并写入到FPGA1进行加载,之后,等待FPGA1校验完成,并在查询到FPGA1加载完成的状态信息后,对FPGA2执行上述流程,直至完成n个FPGA的加载。在此过程中,如图3所示,横轴为时间T。其中,针对一个FPGA而言,处理器需要先启动加载流程,与FPGA进行状态确认,消耗时间为t1;在处理器确定FPGA进入加载状态后,从存储器中读取逻辑文件的数据段1,消耗时间为t2;向FPGA写入数据段1,消耗时间为t3;等待数据寄存器完成数据段1输出,消耗时间为t4;重复上述读取数据段至等待数据寄存器完成数据段输出完成的过程,直至逻辑文件完整地输出到FPGA1。
基于上述的时间消耗,可以得出对于部署有n个FPGA的网络设备而言,逻辑文件的加载流程需要消耗的加载时间T0为n×[t1+m×(t2+t3+t4)+t5]。
通过本申请提供的一种逻辑文件的加载方法,通过可编程器件的选择寄存器标记需要进行逻辑文件加载的目标FPGA,使得可编程器件可以分别与目标FPGA确认状态信息,并在确认目标FPGA处于加载状态时,可以通过数据寄存器分别对多个目标FPGA执行加载流程,从而缩短了将逻辑文件加载到FPGA所需要的时间,提升网络设备的工作效率。与以往的加载方式相比,至少可以节省(n-1)×t1的时间消耗。
需要说明的是,根据可编程器件中形成的数据寄存器的方式不同,可以执行不同的加载方式。
方式1:
当可编程器件中预置有一个数据寄存器时,可以实现FPGA1~FPGAn加载同一种逻辑文件。那么,该数据寄存器分别对应到FPGA1~FPGAn,在处理器从存储器中获取到逻辑文件的数据段后,直接写入到该数据寄存器中,并通过可编程器件与每个FPGA连接的DIN引脚,向每一个FPGA传输数据寄存器中的数据段,直至逻辑文件的所有数据段输出至FPGA,等待FPGA校验后,通过DONE引脚向可编程器件发送完成反馈,完成FPGA的逻辑文件加载流程。
当采用上述方式1加载逻辑文件时,由于可以通过可编程器件中预置的选择寄存器标记需要进行加载的目标FPGA,因此,可编程器件可以同时与目标FPGA进行状态信息的确认。如图4所示,对于采用方式1的网络设备中FPGA的加载时间T1为t1+m×(t2+t3+t4)+t5。虽然,方式1相对于以往的加载方式节省了n-1次逻辑文件加载所消耗的时间,但仅限于n个FPGA加载相同的逻辑文件的情况。
方式2:
当可编程器件中预置有一个数据寄存器,也可以实现FPGA1~FPGAn这N个FPGA中所加载不同的逻辑文件。此时,该数据寄存器需要对应各FPGA,并且在存储器中需要包括多种逻辑文件,举例来说,FPGA1~FPGA5对应第一种逻辑文件1,FPGA6~FPGAn对应第二种逻辑文件。
在配置参数中还需要包括分组信息,其中,分组信息可以包含在加载对象这一字段中,也可以是单独于速率模式和加载对象的字段。比如,在配置参数的加载对象字段中,FPGA1~FPGA5被分到第一组中,对应的速率模式为40G速率,FPGA5~FPGAn被分到第二组中,对应的速率模式为100G速率。并且,在配置参数中,还可以包含顺序信息,该顺序信息中记载按照组别的顺序进行加载,即先加载第一组中的FPGA,后加载第二组中的FPGA。
步骤S100、根据配置参数在可编程器件的选择寄存器中标记需要加载逻辑文件的目标FPGA,包括:
S1000、当根据分组信息确定存在未加载的FPGA组时,根据分组信息,在可编程器件的选择寄存器中标记当前FPGA组中需要加载逻辑文件的目标FPGA。
S1001、当根据分组信息确定分组参数中不存在未加载的FPGA组时,结束逻辑文件的加载流程。
处理器根据分组信息确定FPGA1~FPGAn中包含两个分组,即包含FPGA1~FPGA5的第一FPGA组,和包含FPGA6~FPGAn的第二FPGA组。
此时,处理器可以根据分组信息中的第一FPGA组将选择寄存器中的FPGA1~FPGA5标记为目标FPGA。
在标记完成后,可编程器件和处理器可以按照上述的步骤S102~步骤S104对第一FPGA组中所包含的FPGA1~FPGA5进行其对应的第一种逻辑文件的加载流程。
所述方法中,在向可编程器件中与目标FPGA对应的数据寄存器写入所述逻辑文件之后,还包括:
S106A、向可编程器件发送清除指令,以清除可编程器件中与加载逻辑文件相关的寄存器。
在加载完成后,在状态寄存器中FPGA1~FPGA5被标记为加载完成。此时,处理器可以根据状态寄存器的读取来确定FPGA1~FPGA5已经完成了逻辑文件的加载,记录第一FPGA组已经被加载完成。此后,处理器可以在向可编程器件下发一个清除指令,可编程器件可以根据清除指令,清除与加载逻辑文件相关的寄存器(包括选择寄存器、控制寄存器,状态寄存器和数据寄存器等),这里所提到的清除是指清除这些寄存器中的数据。
在可编程器件中的选择寄存器、状态寄存器和数据寄存器被清除后,可以向处理器返回一个清除完成的状态。处理器在接收到清除完成的状态后,将第一FPGA组记录为完成加载,并根据继续根据分组信息判断是否仍存在未完成加载的FPGA。此时,处理器判断出第二FPGA组未加载逻辑文件,根据分组信息中第二FPGA组中所包含的FPGA6~FPGAn再次在选择寄存器中标记目标FPGA。
在标记完成后,可编程器件和处理器可以按照上述的步骤S102~步骤S104对第二FPGA组中所包含的FPGA6~FPGAn进行其对应的第二种逻辑文件的加载流程。
当处理器接收到可编程器件发送的第二次的加载完成的反馈后,将第二FPGA组标记为完成加载,并再次进行判断。此时,可以确定分组信息中的第一FPGA组和第二FPGA组都已经完成了加载,不存在未加载的FPGA组,结束FPGA的加载流程。
针对FPGA组的加载顺序,可以通过多种方式获知,比如,可以在分组信息中包含一个顺序字段,标注加载顺序,也可以在配置参数中单独配置一个顺序信息的字段来标记加载的顺序,或者,还可以通过已完成加载逻辑文件的FPGA确定对应的FPGA组是否完成加载,并在确定一个未加载逻辑文件的FPGA时,将该FPGA所包含在的FPGA组确定为需要加载逻辑文件的FPGA组,对于具体的判断方式,在此不做限制。
需要说明的是,针对一个FPGA组,其中可以包含一个FPGA,也可以包含多个FPGA,具体的分组设置需要基于网络设备中FPGA的实际加载需求来确定。
另外,清除指令可以是一条专用的指令,以指示可编程器件清除与FPGA加载逻辑文件相关的寄存器(例如,选择寄存器,状态寄存器,控制寄存器和数据寄存器)中的数据,也可以是一条写入指令,以初始值(例如,0)覆盖可编程器件中与FPGA加载逻辑文件相关的寄存器。对于清除寄存器中的数据这一方式,可以专门为可编程器件和处理器之间设置一个清除引脚,使处理器能够对可编程器件进行清除操作。对于覆盖寄存器中的数据这一方式,可以通过数据总线直接写入。
当采用上述方式2加载逻辑文件时,对网络设备中的n个FPGA进行了分组进行多次的加载流程。如图5所示,网络设备中的n个FPGA被分为了两组,即包含FPGA1~FPGA5的第一FPGA组以及包含FPGA6~FPGAn的第二FPGA组。
其中,针对一个FPGA组的加载时间与方式1中相同,即为t1+m×(t2+t3+t4)+t5,那么如果n个FPGA被分为了x组,则针对x组FPGA的加载时间为x×[t1+m×(t2+t3+t4)+t5]。在相邻两组的FPGA进行加载的间隙,需要对前一次FPGA加载时可编程器件的寄存器中的数据进行清除,假设清除过程消耗的时间为t6。该清除过程包含上述提到的两种方式,即下发的清除指令中包含覆盖可编程器件中寄存器的数据,或者下发清除指令指示可编程器件自身清除寄存器中的数据。
一般来说,覆盖寄存器中的数据所需要的时间会多于可编程器件自身清除寄存器中的数据所需要的时间,而覆盖一种寄存器中的数据所需要的时间与一个数据段的写入时间相近,因此,覆盖选择寄存器、控制寄存器、状态寄存器和一个数据寄存器所需要的时间大致会3-4个t3。那么,对于x组FPGA的加载时间T2大致为x×[t1+m×(t2+t3+t4)+t5+4t3],这样一来,与以往的逻辑文件的加载方式的时间差值为T0-T2=(n-x)×[t1+m(t2+t3+t4)+t5]-4×x×t3。
由于分组的数量x是根据FPGA所加载的速率模式确定的,对于一台网络设备而言,最多会设置2-3种速率模式,这样一来,设置可编程器件通过一个数据寄存器分别向多个同组中的FPGA输出逻辑文件,就可以减少一个数据寄存器向每个FPGA输出数据寄存器所消耗的时间。针对以数据段的形式对逻辑文件进行写入的方式,一份50MB的逻辑文件,则需要写入50×1024次,因此,可以看出加载逻辑文件的过程中最消耗时间的过程在于重复的读取、写入和等待,清除可编程器件所消耗的时间与加载逻辑文件的过程中所消耗的时间不在同一量级。综上,对加载相同逻辑文件的FPGA进行分组加载的方式能够节省更多的时间,进而也提升了网络设备的工作效率。
方式3:
可编程器件中可以预制有两种类型的数据寄存器,如图6所示,包括全局寄存器和与至少两个FPGA中的每一个逐一对应的局部寄存器。其中,全局寄存器用于当网络设备中的所有FPGA都加载同一种逻辑文件时写入逻辑文件的数据,局部寄存器用于当网络设备中的FPGA加载不同的逻辑文件时写入逻辑文件的数据。在可编程器件中,需要将DIN引脚分别连接到两个数据寄存器,即一个FPGA所对应的局部寄存器以及全局寄存器,这样一来,可编程器件可以通过DIN引脚向FPGA输出全局寄存器中所写入的数据段或者对应的局部寄存器中所写入的数据段。
针对局部寄存器而言,加载的逻辑文件存在不同时便可以使用,但不要求每一个FPGA都加载不同的逻辑文件,比如FPGA1~FPGA7加载第一种逻辑文件,FPGA8~FPGAn加载第二种逻辑文件。
在处理器根据配置参数在可编程器件的选择寄存器中标记出目标FPGA后,可编程器件分别获取目标FPGA的状态信息并记录在状态寄存器中,其中,可编程器件需要获取FPGA1~FPGAn的状态信息。
向可编程器件中与目标FPGA对应的数据寄存器写入逻辑文件,包括:
S1040、当根据配置参数确定目标FPGA加载相同的逻辑文件时,将逻辑文件写入全局寄存器;
S1041、当根据配置参数确定目标FPGA加载不同的逻辑文件时,根据所述配置参数从第一个目标FPGA开始,按照目标FPGA的顺序逐个从存储器中获取目标FPGA对应的逻辑文件的一个数据段并写入目标FPGA对应的局部寄存器,直至最后一个目标FPGA的最后一个数据段被写入到最后一个目标FPGA对应的局部寄存器。
在处理器根据配置参数确定所有的目标FPGA写入相同的逻辑文件时,可以将逻辑文件直接写入到全局寄存器中,此时,目标FPGA分别通过其与可编程器件连接的DIN引脚从全局寄存器中接收逻辑文件的数据段并进行加载。
在处理器根据配置参数确定目标FPGA需要写入不同的逻辑文件时,则处理器需要依次向每个局部寄存器写入逻辑文件,并且每个局部寄存器需要写入的逻辑文件和该局部寄存器对应的FPGA向匹配。这种匹配关系配置在了配置参数中。例如,FPGA1加载40G速率对应的逻辑文件,那么在配置参数中需要配置有FPGA1对应的局部寄存器的地址,FPGA2加载100G速率对应的逻辑文件,那么在配置参数中需要配置有FPGA2对应的局部寄存器的地址。
在处理器确定目标FPGA已经处于加载状态后,开始对其进行逻辑文件的加载。此时,处理器从存储器中读取逻辑文件1的数据段1,并写入到局部寄存器1,数据段1写入完成后,处理器直接从存储器中读取逻辑文件2的数据段1,并写入局部寄存器2中,并以此方式分别将多个逻辑文件的数据段1写入到对应的局部寄存器;此后,处理器将会从存储器中读取逻辑文件1的数据段2,并写入到局部寄存器1,并向局部寄存器1写入。通过上述方式的重复写入,直至将逻辑文件n的最后一个数据段(数据段m),写入到局部寄存器n,并在等待FPGAn通过DONE_n引脚向可编程器件发送完成反馈后,完成所有目标FPGA的加载流程。
其中,逻辑文件1、逻辑文件2并非指不同的逻辑文件,而是针对不同FPGA所需要加载的逻辑文件,在进行加载的过程中,即使是相同的逻辑文件,由于处理器向数据寄存器写入的过程中是按照数据段的形式写入,也需要处理器重复地从存储器中进行读取。
需要说明的是,在本方式中,通过局部寄存器加载逻辑文件时,不限于目标FPGA加载不同的逻辑文件,也可以是所有的目标FPGA加载相同的逻辑文件。
当采用上述方式3加载逻辑文件时,包含两种情况,第一种是通过全局寄存器向至少两个FPGA进行加载,另一种是通过与每一个FPGA对应的局部寄存器分别加载逻辑文件。第一种情况所消耗的时间与方式1相同,不再展开描述。针对第二种情况所消耗的时间,如图7所示,通过选择寄存器同时启动对于目标FPGA的加载,处理器以数据段的形式依次向FPGA1~FPGAn对应的局部寄存器写入,即以FPGA1数据段1、FPGA2数据段1……FPGAn数据段1向各FPGA对应的局部寄存器写入各逻辑文件的第一个数据段,之后再开始各FPGA对应的局部寄存器写入逻辑文件的第二个数据段,直至完成向各FPGA对应的局部寄存器写入逻辑文件的第m个数据段。
在上述方式3中,在对一个局部寄存器写入数据段后,处理器无需等待局部寄存器将写入的数据段输出到FPGA,便可以去读下一个FPGA的数据段,相当于等待输出到FPGA的时候,已经开始了下一个FPGA对应的逻辑文件的第一个数据段的写入过程,覆盖了等待所消耗的时间。以此方式循环,当FPGA1接收到对应的逻辑文件的第m个数据段后,对完整的逻辑文件进行校验,并在校验后向可编程器件发送完成反馈。此时,由于后面的FPGA还没有完成写入,因此,校验所消耗的时间也被后面的FPGA的写入所覆盖。这样一来,从网络设备的n个FPGA加载的完成过程来看,仅剩下第n个FPGA加载第m个数据段后的等待和校验时间需要单独被记录,第1个FPGA的第1个数据段到第n-1个FPGA加载的第m个数据段后的等待和校验时间被覆盖。
最终,采用方式3所消耗的时间T3为t1+n×m(t2+t3)+t4+t5,与以往的逻辑文件的加载方式的时间差值为T0-T3=(n-1)×(t1+t5)+(n×m-1)×t4。从T0-T3可以看出,可以大量节省出等待局部寄存器写入到FPGA所消耗的时间,并且在逻辑文件越大的情况下,节省出的时间越可观。
当然针对上述的方式1~方式3,也可以不对n个FPGA全部进行加载,而只加载其中的一部分,但为了便于解释加载逻辑文件的加载时间,仅通过对n个FPGA进行加载为例进行描述。
相对应的,本申请还提供了一种逻辑文件的加载装置,如图8所示,应用于包括至少两个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所需要的时间,提升网络设备的工作效率。
相对应的,本申请还提供了一种网络设备,如图2所示,包括:处理器、存储器、可编程器件和至少两个FPGA;可编程器件中形成有选择寄存器、状态寄存器和数据寄存器;
处理器根据配置参数在可编程器件的选择寄存器中标记需要加载逻辑文件的目标FPGA;
可编程器件分别获取目标FPGA的状态信息,并记录在状态寄存器中,其中,状态寄存器用于记录每一个FPGA的状态信息;
处理器从状态寄存器中读取目标FPGA的状态信息;
当确定目标FPGA处于加载状态时,处理器从存储器中获取与目标FPGA对应的逻辑文件,并向与目标FPGA对应的数据寄存器写入逻辑文件;
可编程器件将写入到数据寄存器中的逻辑文件输出给该数据寄存器对应的目标FPGA。
其中,可编程器件和处理器之间通过数据总线进行连接,并通过数据总线向可编程器件中写入和读取寄存器中的数据。
可选的,如图6所示,数据寄存器,包括:与至少两个FPGA中的每一个逐一对应的局部寄存器;逻辑文件包括若干数据段;
处理器向可编程器件中与目标FPGA对应的数据寄存器写入逻辑文件,包括:
当处理器根据配置参数确定目标FPGA加载不同的逻辑文件时,处理器根据配置参数从第一个目标FPGA开始,按照目标FPGA的顺序逐个从存储器中获取目标FPGA对应的逻辑文件的一个数据段并写入目标FPGA对应的局部寄存器,直至最后一个目标FPGA的最后一个数据段被写入到最后一个目标FPGA对应的局部寄存器。
进一步的,数据寄存器还包括全局寄存器;
处理器向可编程器件中与目标FPGA对应的数据寄存器写入逻辑文件,还包括:
当处理器根据配置参数确定目标FPGA加载相同的逻辑文件时,处理器将逻辑文件写入全局寄存器,可编程器件将全局寄存器接收到的逻辑文件分别输出到目标FPGA。
可选的,数据寄存器对应至少两个FPGA;配置参数中包括分组信息;
处理器根据配置参数在可编程器件的选择寄存器中标记需要加载逻辑文件的目标FPGA,包括:
当处理器根据分组信息确定存在未加载的FPGA组时,处理器根据分组信息,在可编程器件的选择寄存器中标记当前FPGA组中需要加载逻辑文件的目标FPGA;
当处理器根据分组信息确定中不存在未加载的FPGA组时,结束逻辑文件的加载流程;
处理器向与目标FPGA对应的数据寄存器写入逻辑文件之后,还包括。
处理器向可编程器件下发清除指令;
可编程器件根据清除指令,清除与加载逻辑文件相关的寄存器。
通过本申请提供的一种网络设备,通过可编程器件的选择寄存器标记需要进行逻辑文件加载的目标FPGA,使得可编程器件可以分别与目标FPGA确认状态信息,并在确认目标FPGA处于加载状态时,可以通过数据寄存器分别对多个目标FPGA执行加载流程,从而缩短了将逻辑文件加载到FPGA所需要的时间,提升网络设备的工作效率。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (11)
1.一种逻辑文件的加载方法,其特征在于,应用于包括至少两个FPGA的网络设备,包括:
根据配置参数在可编程器件的选择寄存器中标记需要加载逻辑文件的目标FPGA,以使所述可编程器件分别获取所述目标FPGA的状态信息并记录在所述可编程器件的状态寄存器中;
从所述可编程器件的状态寄存器中读取所述目标FPGA的状态信息;
当确定所述目标FPGA处于加载状态时,从存储器中获取与所述目标FPGA对应的逻辑文件,并向所述可编程器件中与所述目标FPGA对应的数据寄存器写入所述逻辑文件,以使所述目标FPGA加载对应的逻辑文件。
2.根据权利要求1所述的方法,其特征在于,所述数据寄存器,包括:和与所述至少两个FPGA中的每一个逐一对应的局部寄存器;所述逻辑文件包括若干数据段;
所述从存储器中获取与所述目标FPGA对应的逻辑文件,并向所述可编程器件中与所述目标FPGA对应的数据寄存器写入所述逻辑文件,包括:
当根据所述配置参数确定所述目标FPGA加载不同的逻辑文件时,根据所述配置参数从第一个目标FPGA开始,按照所述目标FPGA的顺序逐个从所述存储器中获取所述目标FPGA对应的逻辑文件的一个数据段并写入所述目标FPGA对应的局部寄存器,直至最后一个目标FPGA的最后一个数据段被写入到所述最后一个目标FPGA对应的局部寄存器。
3.根据权利要求2所述的方法,其特征在于,所述数据寄存器,还包括全局寄存器;
所述向所述可编程器件中与所述目标FPGA对应的数据寄存器写入所述逻辑文件,包括:
当根据所述配置参数确定所述目标FPGA加载相同的逻辑文件时,将所述逻辑文件写入所述全局寄存器。
4.根据权利要求1所述的方法,其特征在于,所述数据寄存器对应所述至少两个FPGA;所述配置参数中包括分组信息;
所述根据配置参数在可编程器件的选择寄存器中标记需要加载逻辑文件的目标FPGA,包括:
当根据分组信息确定存在未加载的FPGA组时,根据所述分组信息,在可编程器件的选择寄存器中标记当前FPGA组中需要加载逻辑文件的目标FPGA;
当根据分组信息确定不存在未加载的FPGA组时,结束逻辑文件的加载流程;
在向所述可编程器件中与所述目标FPGA对应的数据寄存器写入所述逻辑文件之后,还包括:
向所述可编程器件下发清除指令,以使所述可编程器件清除与加载逻辑文件相关的寄存器。
5.一种逻辑文件的加载装置,其特征在于,应用于包括至少两个FPGA的网络设备,包括:
标记单元,用于根据配置参数在可编程器件的选择寄存器中标记需要加载逻辑文件的目标FPGA,以使所述可编程器件分别获取所述目标FPGA的状态信息并记录在可编程器件的状态寄存器中;
查询单元,用于从所述可编程器件的状态寄存器中读取所述目标FPGA的状态信息;
写入单元,用于当确定所述目标FPGA处于加载状态时,从存储器中获取与所述目标FPGA对应的逻辑文件,并向所述可编程器件中与所述目标FPGA对应的数据寄存器写入所述逻辑文件,以使所述目标FPGA加载对应的逻辑文件。
6.根据权利要求5所述的装置,其特征在于,所述数据寄存器,包括:全局寄存器和与所述至少两个FPGA中的每一个逐一对应的局部寄存器;所述逻辑文件包括若干数据段;
所述写入单元,具体用于当根据所述配置参数确定所述目标FPGA加载相同的逻辑文件时,将所述逻辑文件写入所述全局寄存器;当根据所述配置参数确定所述目标FPGA加载不同的逻辑文件时,根据所述配置参数从第一个目标FPGA开始,按照所述目标FPGA的顺序逐个从所述存储器中获取所述目标FPGA对应的逻辑文件的一个数据段并写入所述目标FPGA对应的局部寄存器,直至最后一个目标FPGA的最后一个数据段被写入到所述最后一个目标FPGA对应的局部寄存器。
7.根据权利要求5所述的装置,其特征在于,所述数据寄存器对应所述至少两个FPGA;所述配置参数中包括分组信息;
所述标记单元,具体用于当根据分组信息确定存在未加载的FPGA组时,根据所述分组信息,在可编程器件的选择寄存器中标记当前FPGA组中需要加载逻辑文件的目标FPGA;当根据分组信息确定中不存在未加载的FPGA组时,结束逻辑文件的加载流程;
所述装置,还包括清除单元,用于向所述可编程器件下发清除指令,以使所述可编程器件清除与加载逻辑文件相关的寄存器。
8.一种网络设备,其特征在于,包括:处理器、存储器、可编程器件和至少两个FPGA;所述可编程器件中形成有选择寄存器、状态寄存器和数据寄存器;
所述处理器根据配置参数在可编程器件的选择寄存器中标记需要加载逻辑文件的目标FPGA;
所述可编程器件分别获取所述目标FPGA的状态信息,并记录在所述状态寄存器中,其中,所述状态寄存器用于记录每一个FPGA的状态信息;
所述处理器从所述状态寄存器中读取所述目标FPGA的状态信息;
当确定所述目标FPGA处于加载状态时,所述处理器从存储器中获取与所述目标FPGA对应的逻辑文件,并向与所述目标FPGA对应的数据寄存器写入所述逻辑文件;
所述可编程器件将写入到所述数据寄存器中的逻辑文件输出给该数据寄存器对应的目标FPGA。
9.根据权利要求8所述的网络设备,其特征在于,所述数据寄存器,包括:与所述至少两个FPGA中的每一个逐一对应的局部寄存器;所述逻辑文件包括若干数据段;
所述处理器向所述可编程器件中与所述目标FPGA对应的数据寄存器写入所述逻辑文件,包括:
当所述处理器根据所述配置参数确定所述目标FPGA加载不同的逻辑文件时,所述处理器根据所述配置参数从第一个目标FPGA开始,按照所述目标FPGA的顺序逐个从所述存储器中获取所述目标FPGA对应的逻辑文件的一个数据段并写入所述目标FPGA对应的局部寄存器,直至最后一个目标FPGA的最后一个数据段被写入到所述最后一个目标FPGA对应的局部寄存器。
10.根据权利要求9所述的网络设备,其特征在于,所述数据寄存器还包括全局寄存器;
所述处理器向所述可编程器件中与所述目标FPGA对应的数据寄存器写入所述逻辑文件,还包括:
当所述处理器根据所述配置参数确定所述目标FPGA加载相同的逻辑文件时,所述处理器将所述逻辑文件写入所述全局寄存器,所述可编程器件将所述全局寄存器接收到的逻辑文件分别输出到所述目标FPGA。
11.根据权利要求8所述的网络设备,其特征在于,所述数据寄存器对应所述至少两个FPGA;所述配置参数中包括分组信息;
所述处理器根据配置参数在可编程器件的选择寄存器中标记需要加载逻辑文件的目标FPGA,包括:
当所述处理器根据分组信息确定存在未加载的FPGA组时,所述处理器根据所述分组信息,在所述可编程器件的选择寄存器中标记当前FPGA组中需要加载逻辑文件的目标FPGA;
当所述处理器根据分组信息确定中不存在未加载的FPGA组时,结束逻辑文件的加载流程;
所述处理器向与所述目标FPGA对应的数据寄存器写入所述逻辑文件之后,还包括:
所述处理器向所述可编程器件下发清除指令;
所述可编程器件根据所述清除指令,清除与加载逻辑文件相关的寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010612754.8A CN111857867B (zh) | 2020-06-30 | 2020-06-30 | 一种逻辑文件的加载方法、装置和网络设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010612754.8A CN111857867B (zh) | 2020-06-30 | 2020-06-30 | 一种逻辑文件的加载方法、装置和网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111857867A true CN111857867A (zh) | 2020-10-30 |
CN111857867B CN111857867B (zh) | 2024-03-08 |
Family
ID=72988962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010612754.8A Active CN111857867B (zh) | 2020-06-30 | 2020-06-30 | 一种逻辑文件的加载方法、装置和网络设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111857867B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827568A (zh) * | 2022-11-23 | 2023-03-21 | 芯华章科技(北京)有限公司 | 获取逻辑系统设计的数据的方法、电子设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781756A (en) * | 1994-04-01 | 1998-07-14 | Xilinx, Inc. | Programmable logic device with partially configurable memory cells and a method for configuration |
CN1464421A (zh) * | 2002-06-28 | 2003-12-31 | 华为技术有限公司 | 一种对现场可编程门阵列的在线加载方法 |
CN1514377A (zh) * | 2003-06-13 | 2004-07-21 | Ut斯达康(中国)有限公司 | 对多个可编程逻辑器件进行在线加载的方法和装置 |
CN101286738A (zh) * | 2008-05-15 | 2008-10-15 | 华为技术有限公司 | 一种根据设备信息加载逻辑文件的方法、装置和系统 |
CN102262547A (zh) * | 2010-05-31 | 2011-11-30 | 中兴通讯股份有限公司 | 场可编程门阵列加载方法和装置 |
WO2018032764A1 (zh) * | 2016-08-15 | 2018-02-22 | 华为技术有限公司 | 一种数据加载系统 |
CN107908823A (zh) * | 2017-10-23 | 2018-04-13 | 北京中电华大电子设计有限责任公司 | 一种存储多个fpga文件的装置及加载方法 |
US10216254B1 (en) * | 2016-06-29 | 2019-02-26 | Altera Corporation | Methods and apparatus for selectively extracting and loading register states |
-
2020
- 2020-06-30 CN CN202010612754.8A patent/CN111857867B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781756A (en) * | 1994-04-01 | 1998-07-14 | Xilinx, Inc. | Programmable logic device with partially configurable memory cells and a method for configuration |
CN1464421A (zh) * | 2002-06-28 | 2003-12-31 | 华为技术有限公司 | 一种对现场可编程门阵列的在线加载方法 |
CN1514377A (zh) * | 2003-06-13 | 2004-07-21 | Ut斯达康(中国)有限公司 | 对多个可编程逻辑器件进行在线加载的方法和装置 |
CN101286738A (zh) * | 2008-05-15 | 2008-10-15 | 华为技术有限公司 | 一种根据设备信息加载逻辑文件的方法、装置和系统 |
CN102262547A (zh) * | 2010-05-31 | 2011-11-30 | 中兴通讯股份有限公司 | 场可编程门阵列加载方法和装置 |
US10216254B1 (en) * | 2016-06-29 | 2019-02-26 | Altera Corporation | Methods and apparatus for selectively extracting and loading register states |
WO2018032764A1 (zh) * | 2016-08-15 | 2018-02-22 | 华为技术有限公司 | 一种数据加载系统 |
CN107908823A (zh) * | 2017-10-23 | 2018-04-13 | 北京中电华大电子设计有限责任公司 | 一种存储多个fpga文件的装置及加载方法 |
Non-Patent Citations (3)
Title |
---|
IOANA MOT: "Performance Enhancement of Serial Based FPGA Probabilistic Fault Emulation Techniques", 《IEEE XPLORE》 * |
姜学东: "大数据存储中的优化架构结构的设计与实现", 《现代电子技术》, vol. 39, no. 24 * |
魏;罗小成;华伊;张朝路;钟鸣;: "Virtex7系列FPGA宇航应用存储电路与配置加载设计", 信息通信, no. 09 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115827568A (zh) * | 2022-11-23 | 2023-03-21 | 芯华章科技(北京)有限公司 | 获取逻辑系统设计的数据的方法、电子设备和存储介质 |
CN115827568B (zh) * | 2022-11-23 | 2023-07-28 | 芯华章科技(北京)有限公司 | 获取逻辑系统设计的数据的方法、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111857867B (zh) | 2024-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5734849A (en) | Dual bus memory transactions using address bus for data transfer | |
JP3979486B2 (ja) | 不揮発性記憶装置およびデータ格納方法 | |
US6009496A (en) | Microcontroller with programmable embedded flash memory | |
US6131139A (en) | Apparatus and method of simultaneously reading and writing data in a semiconductor device having a plurality of flash memories | |
EP0964338B1 (en) | Method and apparatus for operating on a memory unit via a JTAG port | |
US3771136A (en) | Control unit | |
WO1999048001A1 (en) | Improvements in microprocessor development systems | |
US5274765A (en) | Multifunctional coupler for connecting a central processing unit of a computer to one or more peripheral devices | |
KR100958850B1 (ko) | 플래시 메모리의 작동을 모니터링하기 위한 디바이스 및방법 | |
CN107797821B (zh) | 重试读取方法以及使用该方法的装置 | |
US5761456A (en) | Processor device having automatic bus sizing | |
US6944649B1 (en) | Electronic control unit having single non-volatile memory for multiple central processing units and data retrieval method | |
CN111857867B (zh) | 一种逻辑文件的加载方法、装置和网络设备 | |
US10658046B2 (en) | Memory device and method for operating the same | |
CN108538332B (zh) | 与非门闪存的读取方法 | |
KR100441533B1 (ko) | 반도체장치에사용된주변디바이스식별방법 | |
EP0397778B1 (en) | An early start mode method and apparatus | |
US6598176B1 (en) | Apparatus for estimating microcontroller and method thereof | |
US5724535A (en) | Data processing system | |
US10522201B2 (en) | Methods and systems for serial memory device control | |
US8166228B2 (en) | Non-volatile memory system and method for reading and storing sub-data during partially overlapping periods | |
US10629285B2 (en) | Verification of a bridge having a late write buffer | |
US7577560B2 (en) | Microcomputer logic development device | |
US6542945B1 (en) | Instant configuration of a digital device | |
US6360319B1 (en) | Method and apparatus for storing and retrieving system revision information |
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 |