您的位置 首页 动态

根据FPGA硬件渠道的可重构体系调度算法详解

基于FPGA硬件平台的可重构系统调度算法详解- 可重构系统是指以软件改变硬件结构以实现具体应用的计算平台,一般由非柔性但可编程的处理器和柔性的以程序控制重构的数字逻辑器件构成。目前国内外的可重构系统研究中,采用的可重构硬件主要是现场可编程门阵列(Field Programming Gate Array, FPGA)。可重构系统非常适合于那些对功耗有严格要求或者计算密集的应用,因为此类应用在FPGA上实现的功耗要大大低于在处理器上实现的功耗。将在FPGA上运行的任务视为“硬件任务”纳入实时操作系统(Realtime Operating System, RTOS)的统一管理范围,可简化系统的设计与管理。因此,需要在传统的RTOS中引入硬件任务管理器,实现硬件任务的管理和调度。

导言

可重构体系是指以软件改动硬件结构以完结详细运用的核算渠道,一般由非柔性但可编程的处理器和柔性的以程序控制重构的数字逻辑器材构成。现在国内外的可重构体系研讨中,选用的可重构硬件主要是现场可编程门阵列(Field Programming Gate Array, FPGA)。可重构体系十分适合于那些对功耗有严格要求或许核算密布的运用,由于此类运用在FPGA上完结的功耗要大大低于在处理器上完结的功耗。将在FPGA上运转的使命视为“硬件使命”归入实时操作体系(RealTIme OperaTIng System, RTOS)的一致办理规模,可简化体系的规划与办理。因而,需求在传统的RTOS中引进硬件使命办理器,完结硬件使命的办理和调度。

现在,该研讨现已取得了必定发展。如在参考文献[1]中提出的商用可重构体系OS4RS,包括的主要功用有使命的创立/毁掉、异构使命的动态搬迁、使命之间的彼此通讯等。支撑软/硬件使命调试以及答应对操作体系模块和用户使命的盯梢监控,是可重构硬件操作体系的重要特征。在参考文献[2]中规划了一种依据软/硬件一致多使命模型的实时操作体系SHUMμCOS,完结了一致使命的办理、依据静态优先级的软/硬件使命独立调度、硬件资源的办理以及软/硬件使命依据软件层的通讯等机制。

可是大多数研讨者考虑的软/硬件调度算法一般难以在现有的FPGA硬件渠道上完结,如参考文献[2]中FORS算法选用的2D FPGA资源模型。这是由于当时的FPGA技能只答应一切的使命占用相同的“高度”[3],而且上述作业中几乎没有将功耗归入考虑领域。因而,相似在嵌入式微处理器中广泛选用动态电压调整(Dynamic Voltage Scaling, DVS)技能以下降体系功耗,本文提出了一种动态调整FPGA作业频率的算法,在可重构体系的功能需求和功耗需求之间抵达平衡,而且能够在当时的FPGA技能条件下完结。

1 调度模型

1.1 可重构体系体系结构

本文只考虑在当时FPGA技能条件下的可重构体系结构,如图1所示。FPGA分为动态和静态两部分。动态部分包括许多可重构模块(Reconfigurable Modules, RM),每个硬件使命运转在1个RM上,各个RM占用的FPGA宽度能够不相等,一般由若干同列的CLB(Configurable Logic Block,可重构单元)组成。静态部分则担任与CPU和RM之间的数据交互。

可重构体系体系结构

图1 可重构体系体系结构

假定FPGA是由许多CLB成阵列摆放而成,每1个CLB能够当作1个1&TImes;1的单位正方形,1个FPGA则是1个面积为w&TImes;h的长方形。其间w为长方形的宽度,h为长方形

依据FPGA硬件渠道的可重构体系调度算法详解

图2 1块5×4的FPGA

的高度,w×h为该FPGA包括CLB的总数(即面积)。图2所示为1块5×4的FPGA。

在完结中,由于每个RM都运用相同的FPGA高度,即h,所以最小的RM的面积是wmin×h,其间,wmin的巨细依赖于硬件使命需求运用的CLB的个数。所以,1块FPGA上RM最多能够有:

当对1块FPGA进行装备时,其动态部分能够划分红具有不同宽度的RM,然后具有不同CLB需求的多个硬件使命能够一同运转在FPGA上。别的,对其间1个RM进行装备时,关于其他正在运转的部分没有影响,然后可重装备硬件使得硬件使命以一种真实的动态多使命办法运转。

1.2 使命界说

① 硬件使命:硬件使命是指可重构体系中依据FPGA完结的功用模块。一个硬件使命装备完结后即可开端履行,在完结之前一般不会开释其占用的可重装备资源,即不能被其他硬件使命抢占。

② 一个硬件使命可表明为Ti(fi,max,wi,ai,ci,ti,ei,fworking)。其间,fi,max是硬件使命能够运转在RM上的最大时钟频率,这个频率是由每个详细硬件使命规划的时序状况决议的,所以每个使命fi,max或许不同。wi是使命占用的可重构硬件的宽度资源,ai表明硬件使命的抵达时刻,ci表明硬件使命的最终完结时限,ti是硬件使命作业在fi,max时的运转时刻。本文中不独自考虑硬件使命在FPGA上的装备时刻,而是把它并入运转时刻中一同考虑。e是硬件使命作业在fi,max时的功耗,可由参考文献[4]树立的功耗模型进行预算。fworking是该使命在运转时FPGA的实践频率。

硬件使命的功耗和硬件的运转频率直接相关,因而,能够运用以下2个公式对硬件使命实践的运转时刻和功耗进行预算:

其间,f是硬件使命实践的运转频率。

2 功耗相关硬件使命调度算法EEHTS

2.1 硬件使命调度器规划

方针体系如图3所示。用户程序分为2部分,其间软件使命运转在CPU上,硬件使命运转在FPGA上。本文中只考虑功耗相关的硬件使命的调度,方针是将软/硬件使命一致起来进行考虑,在满意使命截止时限要求的状况下下降体系的全体功耗,即:

依据FPGA硬件渠道的可重构体系调度算法详解

图3 硬件使命调度器

2.2 调度准则和放置准则

在嵌入式体系中,使命的正确性不光依赖于其功用正确性,而且依赖于其履行的及时性,所以确保使命不错失截止期是最重要的调度依据。在满意使命截止时刻的前提下,1个新抵达的硬件使命Ti的最迟开端履行时刻(Last Starting time, LST)为LST(Ti)=ci-ti,假如Ti在放置时没有找到适宜的方位,调度器并不马上回绝Ti,由于只要在LST(Ti)之前有满意Ti需求的资源被开释,那么Ti依然能够满意其截止期要求。在EEHTS算法中,需求保护抵达使命列表Alist,Alist中保存一切现已抵达且未能成功分配的使命。已抵达列表的使命依照使命的LST增序摆放,即依照最早最迟开端时刻优先(Earliest Last Starting time First , ELST)的准则进行调度。

硬件使命调度器的中心是进行定位分配,即依据硬件使命占用FPGA资源巨细在FPGA上寻觅适宜的方位对FPGA进行装备,如参考文献[5]中提出的MER算法。可是此类算法选用的FPGA面积模型都是2D资源模型,并不能在当时的FPGA技能条件下完结,所以本文选用相似传统操作体系办理存储器资源的办法,即初次适配(FirstFit)[6]算法。在EEHTS算法中,需求保护空白资源列表B,B中保存了一切当时未被运用的FPGA上的空白区域。放置成功的硬件使命即可开端装备运转,因而在EEHTS算法中需求保护正在运转的使命列表Elist。履行列表Elist中包括一切正在运转的硬件使命Ti,使命依照履行结束时刻的增序摆放。

在硬件使命完结之前,不能被其他使命抢占;当硬件使命完结之后,即可开释其占用的FPGA资源,并将履行结束的使命刺进到履行结束使命列表Flist中。这个特点是硬件使命和软件使命的明显差异。

2.3 功耗相关硬件使命调度算法EEHTS

(1) 算法1:EEHTS算法

1: for Ti∈Alist do

2: if ( FirstFit (Ti,B) ) then

3:Place Ti on FPGA

4:Elist=Elist+Ti

5:Alist=Alist-Ti

6: fe=SelectWorkingFrequency(Elist,F)

7:if (fe

8:fworking=fe

9:endif

10:start Ti at fworking

11:return ACCEPT

12:elseif LST(Ti)》=t

13:return REJECT

14:else

15:return NULL

16:end if

在任何时刻t,EEHTS算法首要查看Alist行列中的第1个使命Ti,函数有3种或许的回来成果:ACCEPT、REJECT和NULL。第2行中假如FPGA空白区域列表B中有适宜的方位放置使命Ti,那么将Ti加入到Elist中,然后第6行从头核算1个愈加优化的FPGA频率fe,假如fe小于当时FPGA运转的频率fworking,而且在fe下一切Elist中使命均能在其截止期内完结,那么阐明能够在确保使命截止期的条件下经过下降频率而下降硬件使命的全体功耗,所以此刻算法回来ACCEPT;第13行假如使命行将或许现已错失最迟开端时刻,那么此刻函数回来REJECT,表明此使命被回绝;第15行假如当时时刻没有适宜的方位,可是使命仍没有到其最迟开端时刻,表明在将来的时刻依然或许取得使命所需资源,所以函数回来成果NULL。

算法1中第6行从头核算FPGA作业频率的算法如算法2所示,其间F是一切硬件使命作业频率值的调集。需求阐明的是,同一时刻在FPGA运转的硬件使命的作业频率值有必要相同,而且挑选5作为FPGA频率的增量也是符合实践FPGA技能状况的。

(2) 算法2:挑选最优的频率值作为FPGA的运转频率

过程1: fscheduled,max=min(fi,min|Ti∈Elist)

过程2: 关于F调集中的满意fmin≤f≤fscheduled,max的每个f值,核算:

选取使得核算过程2中成果最小的f值作为FPGA的运转频率值,然后使得FPGA的全体功耗最低。

3 模拟试验及剖析

由于当时并没有一个一致的基准用于点评可重构体系功耗相关的调度算法,因而采取了相似参考文献[2]中的模拟试验模型规划了离散时钟的模拟器,仿照实时体系中的时钟滴答以进行使命截止期的查看。然后规划随机使命生成器,生成别离含有1 000、2 000、3 000、4 000、5 000、6 000个Ti(fi,max,wi,ai,ci,ti,ei,fworking)的使命集,硬件使命的宽度和履行时刻也是随机生成的。

假定方针器材为 Xilinx Virtex XCV1000,共 96列×64 行,其间可用于装备硬件使命的动态部分是80 列,其他用于操作体系进行通讯和 I/O。模拟试验中选用的参数如下: 使命的最小宽度wmin=1,Nmax=80,使命的宽度规模wi为1~80;fmin=20 MHz,fmax=100 MHz,所以各个使命的可运转的最大频率fi,max∈[20,25,…,1 000];

使命在fi,max频率时的运转时刻ti规模为100~1 000 ms。ei规模为20~200 mJ,ei的巨细和使命宽度相关。抵达时刻规模0.5~500 ms,模拟器的时钟滴答设置为500 μs。别离模拟了选用ELST算法和EEHTS算法的使命集的全体运转时刻和全体功耗,如图4和图5所示。从图4中能够看到,选用ELST算法的使命运转时刻曲线要比选用EEHTS算法的低,这是由于只选用ELST算法时并不改动FPGA的运转频率,FPGA一直运用最高频率运转,明显这种办法的功耗会大于EEHTS算法,试验成果也证明了这点。如图5所示,EEHTS算法尽管献身了一些时刻功能,可是硬件使命依然能够在其截止期内完结,而且相关于ELST算法,硬件使命功耗大约下降了32%。

依据FPGA硬件渠道的可重构体系调度算法详解

图4 全体运转时刻

依据FPGA硬件渠道的可重构体系调度算法详解

图5 全体使命功耗

结语

在嵌入式体系中,低功耗是十分重要的方针。本文经过对可重构体系中硬件使命调度算法的研讨,在对硬件使命调度时加入了对功耗的考虑,动态改动硬件使命运转的频率,然后下降体系全体功耗。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/dongtai/339343.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部