[发明专利]基于FPGA的高速低延迟浮点累加器及其实现方法有效
申请号: | 201010594926.X | 申请日: | 2010-12-17 |
公开(公告)号: | CN102033732A | 公开(公告)日: | 2011-04-27 |
发明(设计)人: | 陈耀武;袁龙涛;周凡 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F7/57 | 分类号: | G06F7/57 |
代理公司: | 杭州天勤知识产权代理有限公司 33224 | 代理人: | 胡红娟 |
地址: | 310027 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga 高速 延迟 浮点 累加器 及其 实现 方法 | ||
技术领域
本发明涉及FPGA技术及高性能计算技术领域,具体来说是一种基于FPGA的高速低延迟浮点累加器及其实现方法。
背景技术
浮点累加运算是浮点计算中的一个重要操作,在过程控制、数字信号处理等领域广泛存在。以前的浮点运算系统通常采用通用浮点处理器或DSP实现,虽然具有技术较为成熟、实现工具完善、编程简单等优点,但是由于其内部结构的限制,处理器在进行计算时经常会出现缓存扑空(Cache Miss)等现象,影响系统计算性能。基于通用处理器和DSP技术的设计通常持续计算性能只能维持在其峰值计算性能的10%~33%,无法取得很高的计算性能。
近年来FPGA技术取得了飞速发展,已经从最初只能面向纯逻辑替代的应用转变为能够面向复杂的计算密集型应用。最新推出的FPGA器件中,不仅集成有丰富的可配置逻辑块资源(Configurable Logic Block,CLB),还包括大量面向计算密集应用的DSP单元、块状RAM(Block RAM,BRAM)和用于高速串行通信的RocketIO GTP收发器单元。同时为方便FPGA的调试,各FPGA厂商还推出了片内逻辑分析测试工具(如Xilinx公司的ChipScope),在软硬件上保证了在FPGA上实现高性能计算的可行性。在浮点运算方面,凭借着更灵活的配置特性和较低的功耗,FPGA也正获得越来越多的应用。
在FPGA内部,浮点加法器通常通过逻辑资源或可配置的DSP模块实现,为了获得更高的运算速度,浮点加法器往往需要使用多达10级以上的流水线实现,这样浮点加法结果的输出往往具有较大延迟。因此,在常规设计中,基于FPGA的浮点累加器通常对不同级数的加法运算依照级数大小顺序进行,通过内部缓冲器存储每一级加法运算结果,并用于下一级运算。这样,对于一些累加次数与浮点加法器流水线级数相当甚至更小的情形,由于需要等待加法流水线操作完成的时间比输入数据的时间更长,加法器往往出现空闲工作状态,最终累加结果的输出相对于原始数据的输入往往具有很大的时间延迟。在这种情况下,下一次浮点累加操作的原始数据需要等待上一次浮点累加操作接近全部完成的时候才允许输入,从而造成较大的延迟。在一些实时性要求很高的场合,这种累加器就无法满足应用需求。虽然可以通过增加浮点加法器的数目来解决该问题,但是由于浮点运算的复杂度,对FPGA的逻辑资源或DSP模块消耗急剧增加。
发明内容
本发明提供了一种具备优良实时性能的、基于FPGA的高速低延迟浮点累加器及其实现方法,能够有效提高浮点加法器的利用率,在所需逻辑或DSP资源基本不变的同时具有较低的延迟。
一种基于FPGA的高速低延迟浮点累加器,包括:
一个浮点加法器单元,用于对输入的浮点数进行加法操作,所述的浮点数包括原始数据和各级浮点累加运算的中间结果数据;以及用于对输入的浮点数的标志位进行与相应的浮点数的加法操作同步的延迟;所述的浮点加法器单元包括一个常规的浮点加法模块和一个标志位同步延迟逻辑模块,可使用FPGA内部逻辑资源或可配置的DSP模块实现;为了获得更高的运算速度,浮点加法器单元通常采用多级流水线的方式实现;
N个中间结果缓冲器单元,分别与各级浮点累加运算对应,用于缓存各级浮点累加运算的中间结果;所述的中间结果缓冲器单元利用FPGA内部fifo实现,由于各级浮点累加运算得到的中间结果数据总量并不一致,对中间结果缓冲器单元的大小需求也会有所差别,因此,为了获得更高的资源利用率,可以根据各级浮点累加运算得到的中间结果数据量,为存储不同浮点累加运算级数中间结果的中间结果缓冲器单元选择合适大小和类型的fifo,从而减少对FPGA内部存储资源的消耗;
输入控制单元,用于接收原始数据和各级浮点累加运算的中间结果数据,并对不同来源的数据设立不同的优先级,按照优先级高低将相同优先级的成对数据输入到浮点加法器单元进行加法操作,同时给每对输入到浮点加法器单元的数据设立标志位,标示对于当前数据对进行加法操作所属的浮点累加运算级数;其中,对不同来源的数据设立不同的优先级,为:将原始数据设为最高优先级,对于各级浮点累加运算的中间结果数据,其对应的浮点累加运算级数越高,越是靠近最终结果,其优先级越高;
输出控制单元,用于根据所述的浮点加法器单元同步延迟输出的标志位,确定浮点加法器单元当前输出的数据所属的浮点累加运算级数,判断所述的浮点加法器单元输出的当前加法操作的计算结果是中间结果还是最终结果,将中间结果存入相应浮点累加运算级数的中间结果缓冲器单元;将最终结果输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010594926.X/2.html,转载请声明来源钻瓜专利网。