[发明专利]基于FPGA局部动态重构技术的异型流水线设计方法有效
申请号: | 201711278509.2 | 申请日: | 2017-12-06 |
公开(公告)号: | CN108228966B | 公开(公告)日: | 2021-08-20 |
发明(设计)人: | 陈更生;叶汉辰;倪思宇;黄超 | 申请(专利权)人: | 复旦大学 |
主分类号: | G06F30/34 | 分类号: | G06F30/34 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;陆尤 |
地址: | 200433 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明属于微电子技术领域,具体为一种基于FPGA局部动态重构技术的异型流水线设计方法。本发明利用FPGA局部动态重构技术,在FPGA上划分出若干个局部可重构区块,于运行时依次动态重构,通过以时间换空间的方式循环复用FPGA可编程逻辑资源,使原本无法部署在单块FPGA上的大规模应用能够完整呈现,很大程度上突破了FPGA硬件资源的限制;此外,将重构块的重构过程作为独立流水级,与用户逻辑的运算过程并行进行,显著地增加了计算的粘性。当流水线饱和时,所有的运算‑重构过程以及结果输出、数据输入的过程均处在深度流水状态,达到同等资源消耗下的最优系统吞吐率与可接受的运算延时。本发明具有很强的通用性和扩展性。 | ||
搜索关键词: | 基于 fpga 局部 动态 技术 异型 流水线 设计 方法 | ||
【主权项】:
1.一种基于FPGA局部动态重构技术的异型流水线设计方法,其特征在于,具体步骤为:(1)生成n级用户逻辑单元:N1,N2……Nn,依次对应FPGA上m个可重构区块:M1,M2,…Mk,…Mm,每个可重构区块对应的用户逻辑单元数量均为n/m,其中可重构区块Mk(k∈[1,m])对应的用户逻辑单元为:Nk,Nk+m……Nk+m×i,j∈[0,n/m‑1];设等待输入的数据为D1,D2……;(2)将m个可重构区块作为流水线上的m个流水级,每个流水周期依次指定1个区块作为重构块,执行动态重构操作;其余(m‑1)个区块作为运算块,执行用户逻辑的运算操作;(3)在第0个流水周期即上电时,区块M1动态重构用户逻辑单元N1;(4)在第1个流水周期,区块M1已重构为用户逻辑单元N1,输入数据D1进行运算;同时,区块M2动态重构用户逻辑单元N2;(5)在第x个流水周期,1≤x<m‑1,区块M(x‑y‑1)%m+1已重构为用户逻辑单元N(x‑y‑1)%n+1,输入数据Dy+1或Dy+1的中间结果进行运算,0≤y<x;同时,区块Mx%m+1动态重构用户逻辑单元Nx%n+1;此时流水线未饱和;(6)在第x个流水周期,m‑1+t·n≤x≤(t+1)·n,t≥0,区块M(x‑y‑1)%m+1,已重构为用户逻辑单元N(x‑y‑1)%n+1,输入数据Dy+1+t·(m‑1)或Dy+1+t·(m‑1)的中间结果进行运算,0≤y<m‑1;同时,区块Mx%m+1动态重构用户逻辑单元Nx%n+1;此时流水线饱和;(7)在第x个流水周期,t·n<x<m‑1+t·n,t≥1,区块M(x‑y‑1)%m+1已重构为用户逻辑单元N(x‑y‑1)%n+1,输入数据Dy+1+t·(m‑1)或Dy+1+t·(m‑1)的中间结果进行运算,0≤y<x%n;区块M(x‑y‑1)%m+1已重构为用户逻辑单元N(x‑y‑1)%n+1,输入数据Dy+1+(t‑1)·(m‑1)或Dy+1+(t‑1)·(m‑1)的中间结果进行运算,x%n≤y<m‑1;同时,区块Mx%m+1动态重构用户逻辑单元Nx%n+1,此时流水线饱和;数据在区块M1部署为用户逻辑单元N1时输入流水线,运算结果在区块Mm部署为用户逻辑单元Nn的流水周期结束时输出流水线;这里,N表示用户逻辑单元,n为生成的用户逻辑单元总数,M表示FPGA上的可重构区块,m为可重构区块总数,D表示等待输入的数据,依次编号为D1,D1……;x表示流水线运作过程中的某个流水周期;j、y、t均为整数变量。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201711278509.2/,转载请声明来源钻瓜专利网。