本发明专利技术公开的可重构硬件任务动态布局方法,涉及计算机技术领域,通过将新到达的硬件任务放置在己布局硬件任务的顶点处,通过对可重构芯片内部计算单元进行编码,可以迅速判断新任务是否可放置在该顶点。顶点除了包括硬件任务的顶点外,还包括硬件任务外延到x、y轴的顶点,如果硬件任务无法放置,可以通过旋转该硬件任务再进行判断,提高了可重构芯片空间的利用率,有效地减少了布局开销,提高了布局速度。
【技术实现步骤摘要】
一种可重构硬件任务动态布局方法
本专利技术涉及计算机
,具体涉及一种可重构硬件任务动态布局方法。
技术介绍
在计算平台中,每个可重构硬件任务都会占用可重构芯片上的相应资源且要求占用的可重构逻辑单元在空间上是连续的。这些硬件任务在可重构资源上以并行的方式运行。当硬件任务分配的方式不当时,可能造成大量无法合并的碎片。当新的硬件任务提出空间要求时,即使可重构芯片上的剩余资源超过要求的数量,但是因为空间分布不连续从而无法接收该硬件任务的请求。如果这样的情况频繁发生,可重构系统的性能将严重下降。正如内存管理策略不佳,操作系统的执行效率也随之降低。管理可重构芯片上的空闲资源和在线分配,是软件定义动态可重构系统的核心问题之一,也即是可重构系统的布局问题。布局不仅关系到可重构芯片资源的合理、有效利用,也是研究可重构芯片上硬件模块重定位、调度和整理可重构芯片上资源碎片的基础,它的效率是可重构系统的使能技术。作为动态可重构系统的瓶颈,可重构硬件任务动态布局方法必须在保证运行速度的基础上,尽量增加可重构芯片的利用率。就目前看来,现有的硬件布局方法大都存在布局质量不高、布局方法开销过大等问题,部分方法存在未考虑硬件任务重用、不支持二维资源模型,以及需要提供过多的先决信息等限制,因而在实际中难以应用,有待于进一步优化和提升。现有的用于可重构硬件任务动态布局方法主要包括以下几种方案:(1)非重叠空闲矩形布局:当放置一个硬件任务到可重构器件上去时,将硬件任务的某一顶点与空闲矩形的顶点相重合,剩下的空闲部分被划分为不相重叠的矩形。划分的方法由不同的启发规则决定,常用的启发规则有选择更短分割线、选择更长分割线、划分后最大矩形更接近正方形;(2)基于相互重叠的最大空闲矩形布局:生成、维护可重构芯片上所有最大空闲矩阵信息,这些矩阵是可以相互重叠的。当有新硬件任务到达时,搜索足够容纳新硬件任务的空闲矩阵。若搜索成功,则将硬件任务放置在被选中的最大空闲矩阵中,更新剩下的最大空闲矩阵信息;(3)保持硬件任务顶点的布局方法:当新硬件任务到达可重构系统时,尝试将硬件任务与可重构芯片中的各顶点相匹配,若匹配成功,则根据二进制背包策略,返回该顶点,或者继续匹配芯片中后续顶点以得到代价函数最低的顶点;若匹配失败,继续将硬件任务与芯片中剩余顶点相匹配。这些方案存在以下缺陷:(1)布局速度慢非重叠空闲矩形布局和基于相互重叠的最大空闲矩形布局在使用时搜索次数过多,导致布局速度慢。(2)布局开销大已有布局方法需要引入复杂的结构维护空闲矩阵之间的相互关系,带来大量布局开销,无法在实际的可重构系统中采用。(3)芯片利用率低在使用时得到的布局均存在质量不高的问题,会出现很多无法使用的碎片,浪费大量宝贵的芯片资源。
技术实现思路
为解决现有技术的不足,本专利技术实施例提供了一种可重构硬件任务动态布局方法,该方法包括以下步骤:S1对于具有H×W个可重构逻辑单元的可重构芯片,建立一个二维权值矩阵M[H,W],其中,矩阵M[H,W]的每一个元素即一个可重构逻辑单元,其值为一个二元组{h,w},h和w分别表示从可重构逻辑单元的左下脚开始记数的列数和行数,h或w为整数;S2建立记录表C,保存当前运行中硬件任务的顶点V(h1,w1),其中,记录表C的初始状态包含可重构芯片的1个顶点(0,0),记录表C中仅保存运行中硬件任务的右下角坐标及已布局区域在x轴、y轴上的投影点,记录表C中的信息按硬件任务的顶点距离原点的距离升序排序,其中,h1表示顶点V所在的坐标上方有h1个单元可用,w1表示顶点V所在的坐标右方有w1个单元可用;S3当硬件任务T(h2,w2)到达时,按顺序提取记录表C中的顶点V(h,w)与其匹配,匹配过程如下:若h1不小于h2且w1不小于w2,表示以该顶点为硬件任务的左下顶点,有足够空间用以布局硬件任务,则匹配成功,转向步骤S4;搜索记录表C中的下一个顶点信息继续进行匹配,若匹配成功,转向步骤S4;若不成功,则转向步骤S3,提取记录表C中的下一个顶点并重复上述匹配过程,直至记录表C的末尾;S4接受硬件任务T(h2,w2),在合适的时机触发硬件任务T(h2,w2),并按照记录表的规则,更新记录表C中投影点和硬件任务顶点的信息并结束所有步骤;S5确定当前芯片上无法为硬件任务分配足够空间,将硬件任务T(h2,w2)放入等待队列或拒绝硬件任务T(h2,w2)并结束所有步骤。优选地,所述方法还包括:当一个硬件任务执行结束后,回收该硬件任务占用的空间,并按照记录表的规则,更新记录表C中投影点和硬件任务的信息并回收多余的记录表空间。优选地,提取记录表C中的下一个顶点并重复上述匹配过程,直至记录表C的末尾包括:若已搜索至记录表C的末尾,仍未获得匹配且未旋转硬件任务T(h2,w2),则旋转硬件任务T(h2,w2),形成旋转硬件任务T’(w2,h2)并重新进行硬件任务匹配。优选地,提取记录表C中的下一个顶点并重复上述匹配过程,直至记录表C的末尾还包括:若已对硬件任务T(h2,w2)进行旋转操作,则说明硬件任务T(h2,w2)旋转后仍无法完成布局,匹配失败,转向步骤S5。本专利技术实施例提供的可重构硬件任务动态布局方法具有以下有益效果:(1)在硬件任务所需空间较大时,由于考虑了硬件任务的旋转性,硬件任务可以沿X轴或者Y轴两个方向进行布局,提高了可重构芯片的利用率;(2)二维数据维护的空闲矩阵信息表能准确反映可重构芯片空闲资源分布情况,使得匹配过程更加高效,有效地减少了布局开销,同时提高了布局速度。附图说明图1a-图1c为本专利技术实施例提供的同一个硬件任务的三种不同构造形式示意图;图2为本专利技术实施例提供的可重构硬件任务动态布局方法流程示意图;图3为本专利技术实施例提供的可重构芯片对应的二维权值矩阵示意图;图4为本专利技术实施例提供的与图3所示的二维权值矩阵对应的顶点记录示意图。具体实施方式以下附图和结合具体实施例对本专利技术作具体的介绍。名词解释硬件任务:通常指经过综合后,可以被配置到可重构器件中的功能模块,通常为一个矩形块。可重构芯片:是由一定数量的最小可重构逻辑单元以及它们之间的互连逻辑组成。空闲矩形:是指可重构芯片上当前未被硬件任务占用的矩形区域。碎片:指硬件任务边界外无法利用的资源。最小可重构逻辑单元:是可重构芯片配置的最小单位,当电路功能发生任意改变时,可重构系统至少需要配置的最小单元。一般认为,硬件任务形状的各异是造成布局碎片的主要原因。以往对硬件任务的定义默认硬件任务不能旋转。随着技术的发展,一个最小可重构逻辑单元与其上下左右的最小可重构逻辑单元都是完全同一的,没有方向上的区别。因此,一个(1,4)矩形形状的硬件任务可以生成(1,4)矩形形状的硬件任务以及旋转后的(4,1)矩形形状的硬本文档来自技高网...
【技术保护点】
1.一种可重构硬件任务动态布局方法,其特征在于,包括:/nS1对于具有H×W个可重构逻辑单元的可重构芯片,建立一个二维权值矩阵M[H,W],其中,矩阵M[H,W]的每一个元素即一个可重构逻辑单元,其值为一个二元组{h,w},h和w分别表示从可重构逻辑单元的左下脚开始记数的列数和行数,h或w为整数;/nS2建立记录表C,保存当前运行中硬件任务的顶点V(h
【技术特征摘要】
1.一种可重构硬件任务动态布局方法,其特征在于,包括:
S1对于具有H×W个可重构逻辑单元的可重构芯片,建立一个二维权值矩阵M[H,W],其中,矩阵M[H,W]的每一个元素即一个可重构逻辑单元,其值为一个二元组{h,w},h和w分别表示从可重构逻辑单元的左下脚开始记数的列数和行数,h或w为整数;
S2建立记录表C,保存当前运行中硬件任务的顶点V(h1,w1),记录表C的初始状态包含可重构芯片的1个顶点(0,0),其中,记录表C中仅保存运行中硬件任务的右下角坐标及已布局区域在x轴、y轴上的投影点,记录表C中的信息按硬件任务的顶点距离原点的距离升序排序,其中,h1表示顶点V所在的坐标上方有h1个单元可用,w1表示顶点V所在的坐标右方有w1个单元可用;
S3当硬件任务T(h2,w2)到达时,按顺序提取记录表C中的顶点V(h,w)与之匹配,匹配过程如下:
若h1不小于h2且w1不小于w2,表示以该顶点为硬件任务的左下顶点,有足够空间用以布局硬件任务,则匹配成功,转向步骤S4;
搜索记录表C中的下一个顶点信息继续进行匹配,若匹配成功,转向步骤S4;若不成功,则转向步骤S3,提取记录表C中的下一个顶点并重复上述匹配过程,直至记录表C的末尾;
S4接受硬件任务T(h2,w2),...
【专利技术属性】
技术研发人员:程胜,赵新鹏,蔡铭,邱化强,崔小磊,
申请(专利权)人:北京神舟航天软件技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。