CN105511897B - 用于初始化可编程器件的方法和装置 - Google Patents

用于初始化可编程器件的方法和装置 Download PDF

Info

Publication number
CN105511897B
CN105511897B CN201410502449.8A CN201410502449A CN105511897B CN 105511897 B CN105511897 B CN 105511897B CN 201410502449 A CN201410502449 A CN 201410502449A CN 105511897 B CN105511897 B CN 105511897B
Authority
CN
China
Prior art keywords
programming
data
module
memory
file
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
Application number
CN201410502449.8A
Other languages
English (en)
Other versions
CN105511897A (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.)
H3C Holding Ltd
Original Assignee
H3C Holding 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 H3C Holding Ltd filed Critical H3C Holding Ltd
Priority to CN201410502449.8A priority Critical patent/CN105511897B/zh
Publication of CN105511897A publication Critical patent/CN105511897A/zh
Application granted granted Critical
Publication of CN105511897B publication Critical patent/CN105511897B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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

Abstract

本发明为了初始化可编程器件,先将包含第一模块的编程文件加载至可编程器件中,再解复位可编程器件,然后将第一数据加载至连接可编程器件的内存中,使内存中的第一数据能够在可编程器件中被第一模块转换为第二数据;并且,当内存中的第一数据被可编程器件中的第一模块转换为第二数据后,将第二模块加载至可编程器件中并替换编程文件中的第一模块,使第二数据能够被第二模块访问。

Description

用于初始化可编程器件的方法和装置
技术领域
[0001 ]本发明涉及可编程器件的初始化。
背景技术
[0002]为了使可编程器件能够承担指定的逻辑功能,需要对可编程器件进行相应的初始 化。然而,对可编程器件的初始化往往会导致额外的资源占用。例如,当CPU承担可编程器件 的初始化时,会额外占用CRJ资源。
发明内容
[0003]在一个实施例中,一种用于初始化可编程器件的方法能够减少额外的资源占用, 该方法包括:
[0004]将包含第一模块的编程文件加载至可编程器件中;
[0005] 解复位可编程器件;
[0006]将第一数据加载至连接可编程器件的内存中;
[0007]当内存中的第一数据被可编程器件中的第一模块转换为第二数据后,将第二模块 加载至可编程器件中并替换编程文件中的第一模块,使保存在内存中的第二数据被可编程 器件中的第二模块访问。
[0008]在另一个实施例中,一种用于初始化可编程器件的方法能够减少额外的资源占 用,该装置包括:
[0009]文件加载模块,将包含第一模块的编程文件加载至可编程器件中;
[0010]解复位模块,解复位可编程器件;
[0011 ]数据加载模块,将第一数据加载至连接可编程器件的内存中;
[0012]加载替换模块,当内存中的第一数据被可编程器件中的第一模块转换为第二数据 后,将第二模块加载至可编程器件中并替换编程文件中的第一模块。
[0013]在又一个实施例中,一种网络设备包括包括CPU、可编程器件、以及连接CPU的第一 内存和连接可编程器件的第二内存:
[0014] CPU将包含第一模块的编程文件加载至可编程器件中;
[0015] CPU解复位可编程器件;
[0016] CHJ将第一内存中的第一数据加载至第二内存中;
[0017]当第二内存中的第一数据被可编程器件中的第一模块转换为第二数据后,CPU将 第二模块加载至可编程器件中并替换编程文件中的第一模块。
[0018]在上述的各实施例中,可编程器件的初始化能够部分地由可编程器件承担,因此, 初始化可编程器件的额外资源占用能够被减少。
附图说明
[0019]图la至图lc为一个实施例中初始化可编程器件的原理图;
[0020]图2a至图2b为一个比较例中初始化可编程器件的原理图;
[0021]图3a至图3b为图la至图lc示出的实施例中的初始化可编程器件的时序图;
[0022]图4为图2a至图2b示出的比较例中的初始化可编程器件的时序图;
[0023]图5为另一个实施例中的初始化可编程器件的流程图;
[0024]图6为另一个实施例中的初始化可编程器件的逻辑图。
具体实施方式
[0025] 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对 本发明进一步详细说明。
[0026] 图la至图lc为一个实施例中初始化可编程器件的原理图。请参见图la至图lc,在 一个实施例中,CPU11承担可编程器件12的初始化,并且,可编程器件12可以是例如FPGA (Field — Programmable Gate Array,现场可编程门阵列)、或CPLD (Complex Programmable Logic Device,复杂可编程逻辑器件)等任一种器件。
[0027] 在该实施例中,CPU11连接可编程器件12,例如,CPU11可以通过PCIE (Peripheral Component Interconnect Express,高速周边原件互连)总线接口等接口连接可编程器件 12;并且,CPU11连接第一内存13、可编程器件连接第二内存14,其中,第一内存13和第二内 存14可以是物理内存。
[0028] 在该实施例中,可编程器件12在完成初始化之后承担的逻辑功能依赖于CPU11提 供的数据,并且,这些数据在可编程器件12的初始化过程中被转换为适合可编程器件12使 用的格式。对于这些数据的转换,在该实施例中由可编程器件12来完成。为了便于描述,将 转换前的数据称为第一数据121,将转换后的数据称为第二数据122。在某些特定的场景下, 对数据的转换可以采用例如Compile (编译)等方式,相应地,第一数据121可以被理解为Raw Data (原始数据),第二数据122可以被理解为Compiled Data (编译数据)。
[0029] 如图la至lc所示,该实施例中对可编程器件12的初始化可以按照以下原理予以实 现:
[0030] S11,CPU11将包含第一模块111的编程文件110加载至可编程器件12中。其中,编程 文件110中不限于包括第一模块111,除了第一模块111之外,编程文件110中至少还可以包 括管理可编程器件12与CPU11和第二内存14进行通信的接口的接口管理模块,进一步,编程 文件110中还可以支持其承担的逻辑功能的其他模块。其中,对于编程文件的加载可以使 FPGA实现该编程文件所对应的功能,例如对数据进行编译或者对数据进行查找等。
[0031] S12,CPU11解复位可编程器件12,使可编程器件12基于编程文件110进入工作状 态。其中,在对FPGA进行初始化前,会先将FPGA置于复位状态,这里所述的解复位是指解除 FPGA的复位状态,使被复位的FPGA开始运行。
[0032] S13,CHJ11将其连接的第一内存13中的第一数据121加载至可编程器件12连接的 第二内存14中。其中,如前文所述,编程文件110中可以包括管理可编程器件12与CPU11和第 二内存14进行通信的接口的接口管理模块,因此,CPU11可以通过进入工作状态的可编程器 件12访问连接可编程器件12的第二内存14。
[0033] S14,可编程器件12中的第一模块111将第二内存14中的第一数据121转换为第二 数据122。
[0034] S15,CPU11将第二模块112加载至可编程器件I2中并替换编程文件110中的第一模 块111,即,图la和图lb中示出的编程文件11〇在其包含的第一模块111被替换为第二模块 112之后,变为图lc中示出的编程文件11〇’,从而,使得第二内存14中保存的第二数据122可 以被可编程器件12中的第二模块112访问。
[0035] 其中,相比于SI 1对编程文件110的全局加载,S15中的CPU11将第二模块112加载至 可编程器件12的过程可以采用局部加载的方式,这里所述的局部加载是指对编程文件110 中的一部分的加载,局部加载主要用于对编程文件的局部进行替换。并且,S15可以发生 在可编程器件12所属设备完成启动之后,即,可编程器件12所属设备能够利用可编程器件 12承担指定的逻辑功能正常运行之后。并且,第二模块II2可以是通过访问第二数据122而 支持可编程器件12承担的逻辑功能的模块。
[0036] 从该实施例的上述原理可见,可编程器件12的初始化过程中的数据转换由可编程 器件12承担,因此,当初始化可编程器件时,至少能够减少数据转换所导致的额外的CPU资 源占用。
[0037] 在上述的该实施例中,可编程器件12可以是支持局部加载的器件,并且,对于可编 程器件12为FPGA的情况,编程文件110可以是例如Altera公司定义的RBF (Raw Binary File,原始二进制文件)格式、或Xilinx公司定义的BIN(binary,二进制)格式、或其他支持 局部加载的类似格式的文件。该局部加载用于对编程文件中的部分模块进行替换,以使 FPGA实现其他编程文件的功能。
[0038] 图2a至图2b为一个比较例中初始化可编程器件的原理图。如图2a至图2b所示的与 传统初始化方式相似,以更明显地体现出上述实施例减少的额外的资源占用。
[0039] 请参见图2a至图2b,在该比较例中,CRJ21承担可编程器件22的初始化,并且,可编 程器件22可以是例如FPGA、或CPLD等任一种器件。
[0040] 在该比较例中,CPU21连接可编程器件22,例如,CPU21可以通过PCIE总线接口等接 口连接可编程器件22;并且,(PU21连接第一内存23、可编程器件连接第二内存24,其中,第 一内存23和第二内存24可以是物理内存。并且,数据的转换由CPU21来完成。
[0041]如图2a至2b所示,该比较例中对可编程器件22的初始化可以按照以下原理予以实 现:
[0042] S21,CPU21将包含第二模块212的编程文件210加载至可编程器件22中。其中,编程 文件210可以与图lc中示出的编程文件110’相同或基本相同。
[0043] S22,CPU21解复位可编程器件22,使可编程器件22基于编程文件210进入工作状 〇
[0044] S23,CPU21将其连接的第一内存23中的第一数据221转换为第二数据222。其中,将 第一数据221转换为第二数据222可以与图lb中示出的将第一数据121转换为第二数据122 的S14相同或基本相同。
[0045] S24,CHJ21将第一内存23中的第二数据222加载至可编程器件22连接的第二内存 24中,从而,使得第二内存M中保存的第二数据222可以被可编程器件22中的第二模块212 访问。其中,编程文件21〇中可以包括使可编程器件22与CPU21和第二内存24通信的接口,因 此,CPU21可以通过进入工作状态的可编程器件22访问第二内存24。
[0046] 从该比较例的上述原理可见,可编程器件22的初始化过程中的数据转换由CPU21 承担,因此,当初始化可编程器件时,数据转换所导致的额外的CPU资源占用不能被减少。
[0047] 并且,在上述的实施例中,CinJll可以在可编程器件12将第一数据U1转换为第二 数据122时并行地执行post-startup (后启动)操作,S卩,CPU11和可编程器件12所属设备的 启动操作完成;但在上述的比较例中,CTOM是在将第二数据M2加载至第二内存24之后执 行post-startup操作。因此,在上述的实施例中,将CPU11和可编程器件12所属设备的启动 时间缩短就变为可能。其中,这里所述的后启动是指在开始初始化可编程器件12之后的启 动过程,所谓的后启动是相比于在开始初始化可编程器件12之前的前启动过程而言;并且, 后启动可以至少包括各种配置过程。
[0048] 图3a至图3b为图1 a至图1 c示出的实施例中的初始化可编程器件的时序图;图4为 图2a至图2b示出的比较例中的初始化可编程器件的时序图。
[0049] 请参见图3a至图3b并结合图la至图lc,在上述的一个实施例中,CPU11解复位可编 程器件12在初始化的过程中占用的时间可以忽略不计,相应地,该实施例中的初始化的过 程耗费的时间主要包括:
[0050] CPU11将编程文件110加载至可编程器件12的时间T_S11;
[0051] CPU11将第一数据121加载至第二内存14的时间T_S13;
[0052] 可编程器件12将第一数据121转换为第二数据122的时间T_S14;
[0053] CPU11将第二模块112以局部加载的方式加载至可编程器件12的时间T_S15;
[0054] 以及,post-startup 时间T_ post-startup〇
[0055] 如上可见,对于该实施例中涉及初始化过程的时间T_S11、T_S13、乙S14以及T_ 315,0卩1]11在1'_311、1'_513以及1'_315被占用,但在1'_814未被占用。
[0056] 并且,当CPU11将第一数据121加载至第二内存14之后,CPU11开始执行post-startup操作,以辅助完成所属设备的启动,与此同时,可编程器件I2开始将第一数据121转 换为第二数据122。因此,上述实施例中的时间1'_514和1'_口〇31:-3131'1;即可以是并行发生的。 相应地,该实施例中的设备启动时间的总长度可以表示为:
[0057] T_Sll+T_S13+Max(T—post-startup,T—S14+T_S15),其中Max()表示取最大值的函 数。
[0058] 请参见图4并结合图2a至图2b,在上述的比较例中,CPU21解复位可编程器件22在 初始化的过程中占用的时间可以忽略不计,相应地,该比较例中的初始化的过程耗费的时 间主要包括:
[0059] CPU21将编程文件210加载至可编程器件22的时间T_S21,T_S21与图3中示出的丁_ S11相同或基本相同;
[0060] CPU21将第一数据221转换为第二数据222的时间T_S23;
[0061] CPU21将第二数据222加载至第二内存24的时间T_S24,T_S21与图3中示出的11313 相同或基本相同;
[0062] 以及,post-startup 时间T_post_startup。
[0063] 如上可见,对于该比较例中涉及初始化过程的时间T_S21、T_S23以及T_S24,CPU21 都被占用。
[0064] 并且,该比较例中的设备启动时间的总长度可以表示为:
[0065] T_S21+T_S23+T_S24+T_post-startup〇
[0066] 将上述的一个实施例与比较例相比可知,比较例中初始化可编程器件22的过程对 CPU21的占用率为100%;但在上述的一个实施例中初始化可编程器件22的过程对CPU11的 占用率为[T_S 11+T_S 13+T_S 15] / [T_S 11+T_S 13+T—S14+T—S15],其小于 100 %。因此,相比于 比较例,上述的一个实施例降低了 CPU11在对可编程器件12的初始化过程中的占用率。
[0067] 并且,对于多数设备来说,post-startup操作的耗时不会短于数据转换及数据加 载的耗时之和,即,上述的一个实施例中的T_post-startup像如图3a所示的那样长于1'_314 +T_S15、或者T_post-startup等于乙S14+T_S15。此时,基于前文描述的时间对等关系,上述 的一个实施例与比较例的设备启动时间的总长度之差可以近似表示为T_S23。因此,相比于 比较例,上述的一个实施例还缩短了设备启动时间的总长度,从而加速设备的启动。并且, 启动时间被缩短的时间长度为CPU21将第一数据221转换为第二数据222的时间T_S23,从而 使设备启动的加速较为显著。
[0068] 即便在某些情况下,上述的一个实施例中的T_post_startup可能如图3b所示的那 样短于T_S14+T_S15,此时,只要T_S14+T_S15短于T_S23+T_S24,上述的一个实施例相比于 比较例还是能够缩短设备启动时间的总长度,从而加速设备的启动。其中,经实验测得,T_ S14小于T_S23是可行的,并且T_S15和T_S2«#T_S14与T_S23之间的关系影响较小,因此,T_ S14+T_S15 短于 T_S23+T_S24 能够实现。
[0069] 进一步,在上述的一个实施例中,当第一数据111中的内容变更、并由此导致第二 数据II2需要对应于第一数据111的内容变更而被更新时,CPU11能够检测到第一数据ill的 内容变更、并可以通过局部加载将第一模块111加载至可编程器件12中并替换编程文件 110’中的第二模块112,即,图lc中示出的编程文件110’变回至图la和图lb中示出的编程文 件110,并且,利用第一模块111对刷新的第一数据111的转换得到更新后的第二数据112。然 后,CPU11再通过局部加载将第二模块112加载至可编程器件12中并替换编程文件11〇中的 第一模块111,即,图la和图lb中不出的编程文件11〇变为图lc中示出的编程文件no’,即可 通过第二模块112对更新后的第二数据122的访向而继续支持可编程器件i 2承担的逻辑功 能的模块。即,上述的实施例中的初始化原理还可以进一步适用于可编程器件12的升级维 护。然而,在比较例中,不能实现这样的模块切换。
[0070] 图5为另一个实施例中的初始化可编程器件的流程图。基于与如图ia至图丨c所示 的实施例相似的原理,在另一个实施例中,如图5所示,一种用于初始化可编程器件的方法 包括:
[0071]步骤501,将包含第一模块的编程文件加载至可编程器件中。
[0072] 步骤502,解复位可编程器件。
[0073]步骤5〇3,将第一数据加载至连接可编程器件的内存中。
[0074] 步骤504,当内存中的第一数据被可编程器件中的第一模块转换为第二数据后,将 第二模块加载至可编程器件中并替换编程文件中的第一模块,使保存在内存中的第二数据 被可编程器件中的第二模块访问。
[0075] 进一步,当该方法应用在例如网络设备等电子设备时,该方法可以进一步包括:当 内存中的第一数据开始被可编程器件中的第一模块向第二数据转换后,执行后启动操作, 以辅助相应设备的启动。优选地,后启动操作的时长大于或等于第一数据被转换为第二数 据的时长。 >
[0076]第一数据存在发生变更的可能性,那么则会导致第二内存中编译生成的第二数据 所对应的第一数据与变更后的第一数据之间存在差异,这样一来,则需要根据变更后的第 一数据重新编译生成新的第二数据。进一步,当CHJ检测到第一数据发生变更时,该方法可 以进一步包括:将第一模块加载至可编程器件中并替换编程文件中的第二模块,以适应对 可编程器件的升级维护。
[0077]上述的方法可以运行在如图la至图lc所示的实施例中的CPU11、或类似于该cpuil 的器件中。并且,上述方法中的可编程器件和内存可以分别为如图la至图1c所示的实施例 中的可编程器件12和第二内存14、或类似于该可编程器件12和第二内存M的器件。
[0078]图6为另一个实施例中的初始化可编程器件的逻辑图。基于与如图la至图lc所示 的实施例相似的原理,在另一个实施例中,如图6所示,一种用于初始化可编程器件的装置 包括:
[0079]文件加载模块ei,将包含第一模块的编程文件加载至可编程器件中。
[0080]解复位模块62,解复位可编程器件。
[0081]数据加载模块63,将第一数据加载至连接可编程器件的内存中。
[0082]加载替换模块M,当内存中的第一数据被可编程器件中的第一模块转换为第二数 据后,将第二模块加载至可编程器件中并替换编程文件中的第一模块。其中,第二数据可以 被保存在内存中并被第二模块访问。
[0083]进一步,当该装置应用在例如网络设备等电子设备时,该装置可以进一步包括:当 内存中的第一数据开始被可编程器件中的第一模块向第二数据转换后,执行后启动操作, 以辅助相应设备的启动。优选地,后启动操作的时长大于或等于第一数据被转换为第二数 据的时长。
[0084]第一数据存在发生变更的可能性,那么则会导致第二内存中编译生成的第二数据 所对应的第一数据与变更后的第一数据之间存在差异,这样一来,则需要根据变更后的第 一数据重新编译生成新的第二数据。进一步,该装置可以进一步包括:加载恢复模块,当第 一数据发生变更时,将第一模块加载至可编程器件中并替换编程文件中的第二模块,以适 应对可编程器件的升级维护。
[0085]如同6所示,上述的装置可以承载于如图la至图lc所示的实施例中的第一内存13 中,并被如图la至图lc所示的实施例中的CPU11调用;并且,上述装置中的可编程器件和内 存可以分别为如图la至图lc所示的实施例中的可编程器件12和第二内存14。
[0086]或者,上述的装置也可以承载于类似于第一内存13的器件中、并被类似于CPU11的 器件调用;并且,上述装置中的可编程器件和内存可以分别为类似于可编程器件12和第二 内存14的器件。
[0087]另外,在另一个实施例中,一种网络设备,例如交换设备或者路由设备,包括如图 la至图lc所示的实施例中的CPU11、可编程器件12、以及第一内存13和第二内存14。其中,网 络设备中的CPU11可以运行如图5所示的方法,或者,网络设备中的CPU11可以调用承载于第 一内存13中的如图6所示的装置。
[0088]并且,第二数据中可以包括数据平面的转发信息,例如,FIB(Forwarding Information Base,转发信息库)信息或者ACL (Access Control List,接入控制列表)信息 等,相应地,第二模块通过对第二数据的访问支持可编程器件12承担的数据平面的转发功 能。
[0089]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

1. 一种用于初始化可编程器件的方法,其特征在于,包括: 将包含第一模块的编程文件加载至可编程器件中; 解除可编程器件的复位状态; 将第一数据加载至连接可编程器件的内存中; 当内存中的第一数据被可编程器件中的第一模块转换为第二数据后,将第二模块加载 至可编程器件中并替换编程文件中的第一模块,使保存在内存中的第二数据被可编程器件 中的第二模块访问。
2.根据权利要求1所述的方法,其特征在于,进一步包括: 当内存中的第一数据开始被可编程器件中的第一模块向第二数据转换后,执行后启动 操作,其中,后启动操作的时长大于或等于第一数据被转换为第二数据的时长。
3.根据权利要求1所述的方法,其特征在于,进一步包括: 当第一数据发生变更时,将第一模块加载至可编程器件中并替换编程文件中的第二模 块。
4. 一种用于初始化可编程器件的装置,其特征在于,包括: 文件加载模块,将包含第一模块的编程文件加载至可编程器件中; 解复位模块,解除可编程器件的复位状态; 数据加载模块,将第一数据加载至连接可编程器件的内存中; 加载替换模块,当内存中的第一数据被可编程器件中的第一模块转换为第二数据后, 将第二模块加载至可编程器件中并替换编程文件中的第一模块,使保存在内存中的第二数 据被可编程器件中的第二模块访问。
5.根据权利要求4所述的装置,其特征在于,进一步包括: 后启动模块,当内存中的第一数据开始被可编程器件中的第一模块向第二数据转换 后,执行后启动操作,其中,后启动操作的时长大于或等于第一数据被转换为第二数据的时 长。
6. 根据权利要求4所述的装置,其特征在于,进一步包括: 加载恢复模块,当第一数据发生变更时,将第一模块加载至可编程器件中并替换编程 文件中的第二模块。
7. —种网络设备,包括CPU、可编程器件、以及连接CPU的第一内存和连接可编程器件的 第二内存,其特征在于: CPU将包含第一模块的编程文件加载至可编程器件中; CHJ解除可编程器件的复位状态; CHJ将第一内存中的第一数据加载至第二内存中; 当第二内存中的第一数据被可编程器件中的第一模块转换为第二数据后,CPU将第二 模块加载至可编程器件中并替换编程文件中的第一模块,使保存在第二内存中的第二数据 被可编程器件中的第二模块访问。
8. 根据权利要求7所述的网络设备,其特征在于,第二数据中包括数据平面的转发信 肩、。
9.根据权利要求7所述的网络设备,其特征在于,当内存中的第一数据开始被可编程器 件中的第一模块向第二数据转换后,(PU进一步执行后启动操作,其中,后启动操作的时长 大于或等于第一数据被转换为第二数据的时长。
10.根据权利要求7所述的网络设备,其特征在于,CPU进一步在检测到第一数据发生变 更时,将第一模块加载至可编程器件中并替换编程文件中的第二模块。
CN201410502449.8A 2014-09-26 2014-09-26 用于初始化可编程器件的方法和装置 Active CN105511897B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410502449.8A CN105511897B (zh) 2014-09-26 2014-09-26 用于初始化可编程器件的方法和装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410502449.8A CN105511897B (zh) 2014-09-26 2014-09-26 用于初始化可编程器件的方法和装置
PCT/CN2015/090683 WO2016045609A1 (en) 2014-09-26 2015-09-25 Initialize programmable components
US15/514,123 US10268631B2 (en) 2014-09-26 2015-09-25 Initialize programmable components

Publications (2)

Publication Number Publication Date
CN105511897A CN105511897A (zh) 2016-04-20
CN105511897B true CN105511897B (zh) 2018-11-09

Family

ID=55580331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410502449.8A Active CN105511897B (zh) 2014-09-26 2014-09-26 用于初始化可编程器件的方法和装置

Country Status (3)

Country Link
US (1) US10268631B2 (zh)
CN (1) CN105511897B (zh)
WO (1) WO2016045609A1 (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101404492A (zh) * 2008-11-14 2009-04-08 华为技术有限公司 加载现场可编程门阵列的方法、装置和系统
CN201886458U (zh) * 2010-12-10 2011-06-29 四川赛狄信息技术有限公司 一种大规模现场可编程逻辑器件的代码加载系统
CN103064695A (zh) * 2011-10-21 2013-04-24 上海湾流仪器技术有限公司 现场可编程门阵列的动态加载系统及其加载方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6629311B1 (en) * 1999-11-17 2003-09-30 Altera Corporation Apparatus and method for configuring a programmable logic device with a configuration controller operating as an interface to a configuration memory
US8402409B1 (en) * 2006-03-10 2013-03-19 Xilinx, Inc. Method and apparatus for supporting run-time reconfiguration in a programmable logic integrated circuit
US8275979B2 (en) * 2007-01-30 2012-09-25 International Business Machines Corporation Initialization of a data processing system
JP5169486B2 (ja) * 2008-05-26 2013-03-27 富士通株式会社 Fpgaコンフィグレーション装置及びこれを有する回路基板、電子装置、及びfpgaコンフィグレーション方法
CN102043636B (zh) 2009-10-19 2015-05-20 中兴通讯股份有限公司 现场可编程门阵列位文件下载的方法及装置
CN102033767B (zh) 2010-12-08 2015-08-12 中兴通讯股份有限公司 一种单板及单板在线升级的方法
CN102087606B (zh) * 2011-02-16 2014-02-05 电子科技大学 一种fpga配置文件更新装置
JP5948806B2 (ja) * 2011-11-16 2016-07-06 富士通株式会社 プラグインカード収容装置及びプラグインカード制御方法
CN103677868A (zh) 2012-09-06 2014-03-26 合肥科盛微电子科技有限公司 一种通过芯片内部的mcu配置芯片内置fpga的方法
US9483282B1 (en) * 2014-05-30 2016-11-01 Altera Corporation Methods and systems for run-time hardware configuration change management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101404492A (zh) * 2008-11-14 2009-04-08 华为技术有限公司 加载现场可编程门阵列的方法、装置和系统
CN201886458U (zh) * 2010-12-10 2011-06-29 四川赛狄信息技术有限公司 一种大规模现场可编程逻辑器件的代码加载系统
CN103064695A (zh) * 2011-10-21 2013-04-24 上海湾流仪器技术有限公司 现场可编程门阵列的动态加载系统及其加载方法

Also Published As

Publication number Publication date
WO2016045609A1 (en) 2016-03-31
CN105511897A (zh) 2016-04-20
US10268631B2 (en) 2019-04-23
US20170300341A1 (en) 2017-10-19

Similar Documents

Publication Publication Date Title
US10732879B2 (en) Technologies for processing network packets by an intelligent network interface controller
US10915774B2 (en) Bus translator
TWI590096B (zh) 來自程序的返回目標限制返回指令、處理器、方法、及系統
US10691803B2 (en) Secure execution environment on a server
US9810729B2 (en) Tester with acceleration for packet building within a FPGA block
JP5665188B2 (ja) ソフトウエア更新を適用した情報処理装置を検査するシステム
US9952276B2 (en) Tester with mixed protocol engine in a FPGA block
JP5581326B2 (ja) 生物学の影響を受けたハードウェアセルアーキテクチャ
US10210120B2 (en) Method, apparatus and system to implement secondary bus functionality via a reconfigurable virtual switch
US8997033B1 (en) Techniques for generating a single configuration file for multiple partial reconfiguration regions
US20140196022A1 (en) Cloud Based Application Packaging
US20200310782A1 (en) Gateway device, in-vehicle network system, and firmware update method
US7802245B2 (en) Methods and apparatus for performing in-service upgrade of software in network processor
JP5758995B2 (ja) 仮想マシン間で分析の結果を共有するためのシステム、方法及びコンピュータ可読記憶媒体
CN101849230B (zh) 在多主机环境中共享遗留设备
US8166437B2 (en) Automated pad ring generation for programmable logic device implementation of integrated circuit design
US8386654B2 (en) System and method for transforming PCIe SR-IOV functions to appear as legacy functions
US9933968B2 (en) Method, system, and device for modifying a secure enclave configuration without changing the enclave measurement
TWI331281B (en) Method and apparatus for shared i/o in a load/store fabric
EP3252603A1 (en) Virtualization management/orchestration apparatus, virtualization management/orchestration method, and program
US20140236525A1 (en) Test architecture having multiple fpga based hardware accelerator blocks for testing multiple duts independently
JP2009129447A (ja) デザイン構造、ネットワーク・オン・チップ(‘noc’)でのデータ処理方法、ネットワーク・オン・チップ、およびネットワーク・オン・チップでのデータ処理のためのコンピュータ・プログラム(パーティションを有するネットワーク・オン・チップのためのデザイン構造)
US9904749B2 (en) Configurable FPGA sockets
US20160162436A1 (en) Peripheral component interconnect express devices with efficient memory mapping
US20080040526A1 (en) Processing apparatus and method of modifying system configuration

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant after: Xinhua three Technology Co., Ltd.

Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant before: Huasan Communication Technology Co., Ltd.

GR01 Patent grant
GR01 Patent grant