CN101441674B - 基于fpga的动态可重构系统的分片配置方法 - Google Patents
基于fpga的动态可重构系统的分片配置方法 Download PDFInfo
- Publication number
- CN101441674B CN101441674B CN2008101632094A CN200810163209A CN101441674B CN 101441674 B CN101441674 B CN 101441674B CN 2008101632094 A CN2008101632094 A CN 2008101632094A CN 200810163209 A CN200810163209 A CN 200810163209A CN 101441674 B CN101441674 B CN 101441674B
- Authority
- CN
- China
- Prior art keywords
- configuration
- sheet
- fpga
- layoutprocedure
- configuration sheet
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种基于FPGA的动态可重构系统的分片配置方法,它通过将FPGA的配置过程进行分割,形成配置片,配置过程以片为单位进行FPGA的重构配置。本发明的有益效果是:配置片完成配置工作后即可开始运行,使得任务的运行无需等待FPGA全部的重构配置过程完成,以达到减少重构配置延时,提高FPGA利用率;优化配置过程,不依赖于硬件支持,不需要预测技术,不需要改变原程序结构;采用流水化配置过程,从而隐藏配置时间,减少系统开销。本发明对于基于FPGA的动态可重构系统具有重大意义。
Description
技术领域
本发明属于基于FPGA的动态可重构系统的配置过程设计领域,尤其涉及一种基于FPGA的动态可重构系统的分片配置方法。
背景技术
20世纪人类的杰出成果之一是计算机技术把人类社会带入了信息化时代。多核处理器已经进入了我们的视野,于此同时,可重构技术也随着半导体工艺的不断提高而愈发成熟,动态可重构系统从系统定制与再适应的角度,使系统的性能成倍增长。当前使用最多的动态可重构硬件是现场可编程门阵列,由于硬件工艺原因,该类可重构硬件的配置过程需要一定时间,如何减少配置过程带来的系统开销,正成为突破动态可重构系统应用瓶颈的研究热点。
动态可重构系统,是随着动态可重构硬件器件的发展而出现的新型平台,该类平台的特点,就是可以根据不同应用的需要,进行硬件模块的重配置,从而达到应用定制系统的性能,减小了开发和使用的成本。英特尔公司的集成加速器技术QuickAssist就是该类系统。该类系统的核心器件,就是现场可编程门阵列FPGA。随着半导体工艺的飞速发展,现场可编程门阵列的规模越来越大,同时,性能也愈发提高,加上其固有的灵活性以及可定制性,使得动态可重构系统愈发强大,在当今多核领域开启了一个新的研究方向,有着巨大的发展潜力与市场前景。
由于现场可编程门阵列的工艺特点,决定了重配置完整的一块FPGA,需要花费一定时间,根据该器件的容量不同而不同,越大容量的器件需要更长时间的配置过程,通常需要达到毫秒级。这样的配置开销成为了阻碍动态可重构系统的瓶颈,研究如何减少重配置代价,成为了该技术领域内的一大研究热点。
目前的研究成果中,减少重配置代价的方法,主要是通过配置数据的预取以及增加配置数据缓存的方法,前者利用了提前配置过程的方法,在运行前配置现场可编程门阵列,这种方法依赖于对于配置需求的准确预测。后者使用了加速配置数据传送到方法,将配置数据预先放入快速缓存中,这种方法依赖于缓存的性能。
发明内容
为克服现有技术的上述缺陷,本发明的目的在于提供一种基于FPGA的动态可重构系统的分片配置方法。
本发明解决技术问题所采用的技术方案是:
1)硬件代码的分片:
为了能够将FPGA的配置过程分割成多个配置片,需要对硬件代码部分进行分片。每个硬件代码段将分别生成各个配置片的配置数据,每个代码段与一个配置片对应。在硬件代码分割时,保证数据处理的完整性,即每个代码段的包括数据的输入,处理与输出三个部分。配置片之间的先后顺序,反映了成个程序的数据流。
2)配置过程的分片:
硬件代码段经过综合工具,整合成为二进制配置数据,即可进行对FPGA的重构配置。配置过程按照配置片的先后顺序进行配置,当前一个配置片完成配置工作之后,后一个配置片开始进行配置。这一过程中,原本作为FPGA整体重构配置的过程,被分成了多个配置片的配置过程。
3)流水化的配置过程:
由于FPGA的特点,同一时间,只能进行一个配置任务,因此,各个配置片必须按照先后顺序进行配置。当一个配置片完成配置工作之后,就可以开始进入到运行状态,而后续的配置片同时开始进行配置过程。整个配置过程实现流水化。流水化的配置过程可以隐藏配置代价。
4)每个配置片之间插入缓存:
完成配置过程后,进入运行状态的配置片将输入进行处理,并输出中间结构,这些中间结果由于下一级配置片还未完成配置过程而无法得到处理,因此,必须在每个配置片之间,插入缓存。缓存的作用即存放中间结果,等待下一级配置片完成配置并进入运行状态后,为其提供待处理的输入数据。
5)配置片与缓存之间根据外部协议通过外部电路进行控制:
由于缓存是由硬件构成,需要占用FPGA的硬件资源,因此,其容量有限。配置片与缓存之间需要定义外部协议以达到状态传递的作用,当缓存有剩余空间时,通过外部电路告知上一级配置片可以进行数据处理,并将中间结果存放其中。如果在缓存满时,下一级配置片尚未完成配置过程,则缓存通过外部电路告知上一级配置片,使其进入停滞状态,待下一级配置片完成配置工作进入运行状态时,通知上一级配置片恢复到运行状态。
与现有技术相比,本发明的有益效果是:
该设计是一种基于FPGA的动态可重构系统的分片配置方法,利用将配置过程分片的方法,实现流水化配置过程,达到隐藏配置时间的方法,减小配置开销,提高硬件利用率:
(1)优化配置过程,不依赖于硬件支持,不需要预测技术,不需要改变原程序结构。
(2)流水化配置过程,隐藏配置时间。由于配置过程改变成为了配置片流水,原本完整的配置过程被划分为多个片,当前配置片不需要等到下一片完成配置工作即可运行,重叠了配置与运行的时间,从而隐藏配置时间,减少系统开销。
(3)由于系统的运行不需要等到整个硬件完成配置过程就可以开始运行,则已经完成处理工作的配置片也无需等待整个硬件完成工作,就可以进入下一个配置过程,提高了FPGA的利用率。
附图说明
图1是本发明一种基于FPGA的动态可重构系统的分片配置方法实施例的流程示意图;
图2是本发明一种实施例的非分片配置过程与分片配置过程对比示意图;
图3是本发明一种实施例的配置片与缓存关系示意图;
图4是本发明一种实施例的配置片状态转换示意图。
具体实施方法
本发明的基于FPGA的动态可重构系统的分片配置方法,利用了流水化配置过程的特点,隐藏了配置时间。本实施例的分片配置过程,如图1所示。图2为采用了分片配置方法与非分片方法对比图,与非分片配置方法相比较,图中阴影部分,为配置代价隐藏部分,该部分时间将被已经完成配置过程的配置片1所利用,进行其实际的运行。
由于需要存放配置片所输出的中间结果,缓存被加入到各个配置片之间,如图3所示。每个配置片有四种状态,即空闲状态,配置状态,运行状态以及停滞状态,如图4所示。
本实施例分片配置过程的运行关键步骤如下:
1)硬件代码的分片:
为了能够将FPGA的配置过程分割成多个配置片,需要对硬件代码部分进行分片。每个硬件代码段将分别生成各个配置片的配置数据,每个代码段与一个配置片对应。在硬件代码分割时,保证数据处理的完整性,即每个代码段的包括数据的输入,处理与输出三个部分。配置片之间的先后顺序,反映了整个程序的数据流。硬件代码段的分割依据为:根据数据流图,将程序按照工作量进行分割,每个程序段之间,仅仅包括单向的数据传递。等工作量的分割是为了让每个配置片的配置时间一致,以减少由于配置时间差异引起的配置片停滞状态,提高系统的效率。程序段经过综合工具生成二进制配置数据。
2)配置过程的分片:
硬件代码段经过综合工具,整合成为二进制配置数据,即可进行对FPGA的重构配置。配置过程按照配置片的先后顺序进行配置,当前一个配置片完成配置工作之后,后一个配置片开始进行配置。这一过程中,原本作为FPGA整体重构配置的过程,被分成了多个配置片的配置过程。
3)流水化的配置过程:
由于FPGA的特点,同一时间,只能进行一个配置任务,因此,各个配置片必须按照先后顺序进行配置。当一个配置片完成配置工作之后,就可以开始进入到运行状态,而后续的配置片同时开始进行配置过程。整个配置过程实现流水化。流水化的配置过程可以隐藏配置代价。可重配置硬件FPGA一开始处于空闲状态。当重配置任务开始运行,第一个配置片开始进入配置状态,配置控制器读入配置数据开始进行配置过程。当配置片完成配置,其就从配置状态转变为工作状态,开始处理输入数据,同时,下一个配置片开始进入配置状态。运行产生的中间结果,存入两者之间的缓存中。若缓存满且下一个配置片的配置过程尚未完成,则前一个配置片需要进入停滞状态,待下一个配置片进入运行状态并开始处理缓存中的数据后,才恢复到运行状态继续处理输入数据。当配置片完成了其所有的工作,则进入到空闲状态。此时,代表该配置片的工作已经完成,可以进行下一次的重配置任务。
4)每个配置片之间插入缓存
完成配置过程后,进入运行状态的配置片将输入进行处理,并输出中间结构,这些中间结果由于下一级配置片还未完成配置过程而无法得到处理,因此,必须在每个配置片之间,插入缓存。缓存的作用即存放中间结果,等待下一级配置片完成配置并进入运行状态后,为其提供待处理的输入数据。
5)配置片与缓存之间根据外部协议通过外部电路进行控制
由于缓存是由硬件构成,需要占用FPGA的硬件资源,因此,其容量有限。配置片与缓存之间需要定义外部协议以达到状态传递的作用,当缓存有剩余空间时,通过外部电路告知上一级配置片可以进行数据处理,并将中间结果存放其中。如果在缓存满时,下一级配置片尚未完成配置过程,则缓存通过外部电路告知上一级配置片,使其进入停滞状态,待下一级配置片完成配置工作进入运行状态时,通知上一级配置片恢复到运行状态。
Claims (1)
1.一种基于FPGA的动态可重构系统的分片配置方法,其特征在于包括:
1)硬件代码的分片
为了能够将FPGA的配置过程分割成多个配置片,需要对硬件代码部分进行分片:每个硬件代码段将分别生成各个配置片的配置数据,每个代码段与一个配置片对应;在硬件代码分割时,保证数据处理的完整性,即每个代码段包括数据的输入、处理与输出三个部分;
2)配置过程的分片
硬件代码段经过综合工具,整合成为二进制配置数据,即可进行对FPGA的重构配置:配置过程按照配置片的先后顺序进行配置,当前一个配置片完成配置工作之后,后一个配置片开始进行配置,这一过程中,原本作为FPGA整体重构配置的过程,被分成多个配置片的配置过程;
3)流水化的配置过程
各个配置片必须按照先后顺序进行配置:当一个配置片完成配置工作之后,就可以开始进入到运行状态,而后续的配置片同时开始进行配置过程,整个配置过程实现流水化;
4)每个配置片之间插入缓存
完成配置过程后,必须在每个配置片之间,插入缓存,用于存放中间结果,等待下一级配置片完成配置并进入运行状态后,为其提供待处理的输入数据;
5)配置片与缓存之间根据外部协议通过外部电路进行控制
配置片与缓存之间需要定义外部协议以达到状态传递的作用,当缓存有剩余空间时,通过外部电路告知上一级配置片可以进行数据处理,并将中间结果存放其中;如果在缓存满时,下一级配置片尚未完成配置过程,则缓存通过外部电路告知上一级配置片,使其进入停滞状态,待下一级配置片完成配置工作进入运行状态时,通知上一级配置片恢复到运行状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101632094A CN101441674B (zh) | 2008-12-15 | 2008-12-15 | 基于fpga的动态可重构系统的分片配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101632094A CN101441674B (zh) | 2008-12-15 | 2008-12-15 | 基于fpga的动态可重构系统的分片配置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101441674A CN101441674A (zh) | 2009-05-27 |
CN101441674B true CN101441674B (zh) | 2010-08-11 |
Family
ID=40726108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101632094A Expired - Fee Related CN101441674B (zh) | 2008-12-15 | 2008-12-15 | 基于fpga的动态可重构系统的分片配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101441674B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455714B (zh) * | 2013-08-20 | 2017-02-08 | 西安电子科技大学 | 基于FPGA的DPR SoC自重构系统的耗时计算方法及应用 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771408B (zh) * | 2010-01-05 | 2012-05-02 | 中国人民解放军信息工程大学 | 一种fpga硬件构件的生成方法及装置 |
CN101797849B (zh) * | 2010-01-07 | 2011-12-07 | 浙江大学 | 基于FPGA的数据块按bit旋转装置及方法 |
CN101814316B (zh) * | 2010-04-28 | 2012-05-30 | 中国航天科技集团公司第五研究院第五一三研究所 | 一种静态存储型现场可编程逻辑门阵列的配置方法 |
CN104598310B (zh) * | 2015-01-23 | 2017-08-08 | 武汉理工大学 | 基于fpga部分动态可重构技术模块划分的低功耗调度方法 |
CN107544819B (zh) * | 2016-06-29 | 2022-04-19 | 中兴通讯股份有限公司 | 一种用于可编程器件的业务实现方法、装置和通信终端 |
CN107168708A (zh) * | 2017-05-15 | 2017-09-15 | 东南大学 | 一种可重构系统配置控制器及其流水调度方法 |
CN107808031B (zh) * | 2017-09-27 | 2020-07-24 | 浙江大学 | 一种基于fpga的可重构计算系统实现方法 |
CN108132811B (zh) * | 2017-12-15 | 2021-09-21 | 杭州迪普科技股份有限公司 | 一种fpga程序数据的加载方法及装置 |
CN110278093B (zh) * | 2018-03-13 | 2021-12-28 | 华为技术有限公司 | 网络设备的配置方法和装置 |
CN109918321B (zh) * | 2019-02-25 | 2021-01-05 | 浙江中控研究院有限公司 | 一种基于PCIe总线的在线重构方法 |
CN110096474A (zh) * | 2019-04-28 | 2019-08-06 | 北京超维度计算科技有限公司 | 一种基于可重构计算的高性能弹性计算架构及方法 |
CN113190497B (zh) * | 2021-04-09 | 2022-09-09 | 珠海一微半导体股份有限公司 | 一种可重构处理器的任务处理方法及可重构处理器 |
-
2008
- 2008-12-15 CN CN2008101632094A patent/CN101441674B/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455714B (zh) * | 2013-08-20 | 2017-02-08 | 西安电子科技大学 | 基于FPGA的DPR SoC自重构系统的耗时计算方法及应用 |
Also Published As
Publication number | Publication date |
---|---|
CN101441674A (zh) | 2009-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101441674B (zh) | 基于fpga的动态可重构系统的分片配置方法 | |
Abnous et al. | Ultra-low-power domain-specific multimedia processors | |
US9632559B2 (en) | Delaying execution in a processor to increase power savings | |
CN103116599A (zh) | 一种基于改进Bloom Filter结构的城市海量数据流快速冗余消除方法 | |
CN104331421A (zh) | 一种大数据的高效处理方法及系统 | |
CN106780149A (zh) | 一种基于定时任务调度的设备实时监测系统 | |
CN101727423B (zh) | 可重配置fpga上可抢占硬件多任务系统及其实现方法 | |
CN103984677A (zh) | 基于大规模粗粒度嵌入式可重构系统及其处理方法 | |
CN205507633U (zh) | 一种基于FPGA的高性能运算PCI-e加速卡 | |
Yang et al. | Improving Spark performance with MPTE in heterogeneous environments | |
Mueller et al. | FPGAs: a new point in the database design space | |
Park et al. | Optimizing DCNN FPGA accelerator design for handwritten hangul character recognition: work-in-progress | |
CN205540138U (zh) | 一种可脱机运行的多轴运动控制系统 | |
CN1716228A (zh) | 处理器 | |
Li et al. | Heterogeneous computing platform based on CPU+ FPGA and working modes | |
Cheng et al. | Advancements in Accelerating Deep Neural Network Inference on AIoT Devices: A Survey | |
CN103150157B (zh) | 基于访存分歧的gpu核心程序重组优化方法 | |
CN100562864C (zh) | 一种嵌入式异构多核体系片上通信的实现方法 | |
CN103020008B (zh) | 计算能力增强的可重构微服务器 | |
CN112149814A (zh) | 一种基于fpga的卷积神经网络加速系统 | |
CN105608046A (zh) | 基于MapReduce编程模型的多核处理器架构 | |
CN102929714A (zh) | 基于uC/OS-II的硬件任务管理器 | |
CN110502337A (zh) | 针对Hadoop MapReduce中混洗阶段的优化系统及方法 | |
Heysters et al. | A reconfigurable function array architecture for 3G and 4G wireless terminals | |
CN102073580B (zh) | 性能剖析方法、剖析工具和计算机系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100811 Termination date: 20121215 |