一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于CORDIC的可重构计算引擎的制作方法

2022-02-19 02:15:56 来源:中国专利 TAG:

一种基于cordic的可重构计算引擎
技术领域
1.本发明涉及一种基于cordic的可重构计算引擎,特别是涉及soc架构下的ip核设计技术领域。


背景技术:

2.硬件加速器通常用于特定领域的设计,常常作为ip核被集成到soc系统中,以完成特定场景或特定应用程序的任务。近些年来,随着5g通信技术和人工智能的发展,除了传统的算法硬件加速器外,常见的复杂的数学函数的硬件实现也有着巨大的需求。
3.然而,相较于软件实现类似于超越函数的复杂数学函数,硬件实现这些函数显得尤为困难,传统的方法例如查找表法、线性近似法以及非线性近似法,要么精度不够,要么所使用的硬件资源过多,不尽理想。
4.cordic算法的出现为解决复杂数学函数的硬件实现问题提供了新的思路,其利用简单的硬件友好的移位、加法以及小型查找表运算,结合多次的迭代,便能逼近一些常见的复杂函数。然而,现有的一些基于cordic的复杂函数的硬件实现大多着眼于单个函数的实现,其实际应用价值有限,当一些场合需要使用多种函数时,需要集成多个ip,其硬件资源利用率较低,同时也增加了硬件之间交互的复杂程度。


技术实现要素:

5.发明目的:提出一种基于cordic的可重构计算引擎,以解决现有技术存在的上述问题,针对现有技术中存在的加速器不灵活,仅仅实现单个复杂函数,导致硬件资源利用率低,增加硬件之间交互复杂程度的问题,通过cordic的可重构计算引擎,灵活实现29种常见复杂数学函数的硬件计算。
6.技术方案:提出了一种基于cordic的可重构计算引擎,具体包括:数据接口、指令接口、重构控制器、计算单元mux以及计算单元。其中,数据接口与重构控制器连接,被设置作为计算时源数据的输入以及计算结果的输出通道;指令接口与重构控制器连接,被设置为作为复杂函数选择的配置通道;重构控制器与数据接口、指令接口以及计算单元mux连接,被设置实现对可重构计算引擎的数据流控制、数据的前后处理以及函数功能的重构;计算单元mux与重构控制器和计算单元连接,被设置实现对计算单元中cordic算子的选择;计算单元与计算单元mux连接,被设置为对复杂函数提供计算支持。
7.在第一方面的一些可实现方式中,为满足不同函数的需求,通过所述数据接口进行信号交互的信号进一步包括:in_1输入信号、in_2输入信号、cal_req输入信号、res_1输出信号、res_2输出信号、finish输出信号;call_type信号通过所述指令接口,配置函数计算的类型;所述重构控制器进一步包括运算控制状态机fsm和数据处理模块;所述计算单元mux进一步包括cu_mux1模块、cu_mux2模块、cu_mux3模块、cu_mux4模块、cu_mux5模块和cu_mux6模块;所述计算单元进一步包括cr1、cv1、lr1、lv1、hr1、hv1、ghr1、ghv1、lv2和hv2共10个cordic基本算子。
8.具体的,通过所述数据接口的in_1输入信号作为单变量函数的输入,in_2输入信号作为双变量函数的补充输入,cal_req输入信号作为计算的请求信号;res_1输出信号作为单输出函数的结果输出,res_2输出信号作为双输出函数的补充结果输出,finish输出信号作为计算完成信号。通过指令接口的call_type信号,可以配置29种函数的类型,用于供重构控制器解析,配置简单的同时,还易于控制。
9.进一步的,运算控制状态机fsm,通过解析指令接口传来的call_type信号,根据复杂函数的数学结构,重构相应的控制流,通过不超过6级流水计算,控制整个流水计算过程。
10.所述重构控制器下的数据处理模块,在所述运算控制状态机fsm的控制下完成对每一级流水计算数据的前处理以及后处理。
11.在第一方面的一些可实现方式中,计算单元mux下的6个cu_mux模块,对应于6级流水计算的不同阶段,在运算控制状态机fsm的控制下选择计算单元中的cordic算子。
12.计算单元下的cordic算子,包含6种类型,分别为圆坐标系下旋转模式的cordic算子cr、圆坐标系下向量模式的算子cv、线性坐标系下旋转模式的算子lr、线性坐标系下向量模式的算子lv、双曲坐标系下以e为底旋转模式的算子hr、双曲坐标系下以e为底向量模式的算子hv、双曲坐标系下以2为底旋转模式的算子ghr、双曲坐标系下以2为底向量模式的算子ghv。
13.其中,cordic算子,通过移位、加法以及查找表运算,并结合迭代过程,通过硬件实现函数计算过程。cordic算子的迭代过程,采用流水线工作,即每一次迭代过程都有具体的硬件实现,保证了可重构引擎的流水工作流程。
14.有益效果:本发明提出了一种基于cordic的可重构计算引擎,相比于现有技术,本发明通过分析复杂函数的数学特征及表达式转换,并利用各种cordic算子的特性,将29种复杂数学函数高效映射到10个cordic算子上。其中涉及到的重构控制器通过指令接口接受配置指令,为不同的复杂函数重构特定的数据通路,并控制数据的流水化计算,最终输出相应复杂函数计算的结果。因此,本发明所提出的基于cordic的可重构计算引擎具有硬件资源利用率高、配置简易灵活、主频高、面积小及功耗低等优点。
附图说明
15.图1为本发明中基于cordic的可重构计算引擎的架构图。
16.图2是本发明中计算单元mux的详细结构图。
17.图3是本发明中计算单元里hv的结构图。
具体实施方式
18.在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。
19.申请人认为现有的一些基于cordic的复杂函数的硬件实现大多着眼于单个函数的实现,其实际应用价值有限,因此当一些场合需要使用多种函数时,需要集成多个ip,使得其硬件资源利用率较低,同时也增加了硬件之间交互的复杂程度。
20.在本技术中,我们提出了一种基于cordic的可重构计算引擎,通过分析复杂函数的数学特征及表达式转换,并利用各种cordic算子的特性,将29种复杂数学函数高效映射到10个cordic算子上。其中涉及到的重构控制器通过指令接口接受配置指令,为不同的复杂函数重构特定的数据通路,并控制数据的流水化计算,最终输出相应复杂函数计算的结果,进一步达到硬件资源利用率高、配置简易灵活、主频高、面积小及功耗低等目标。
21.实施例一本实施例提出一种基于cordic的可重构计算引擎,通过分析复杂函数的数学特征及表达式转换,并利用各种cordic算子的特性,将29种复杂数学函数高效映射到10个cordic算子上,从而提高了硬件资源的利用率,降低了硬件之间交互的复杂度。
22.具体的,如图1所示,本实例提出的基于cordic的可重构计算引擎包括:数据接口、指令接口、重构控制器、计算单元mux以及计算单元;其中,数据接口作为计算时源数据的输入以及计算结果的输出通道;指令接口作为复杂函数选择的配置通道;重构控制器用于对可重构计算引擎的数据流控制、数据的前后处理以及函数功能的重构;计算单元mux用于对计算单元中cordic算子的选择;计算单元提供对复杂函数的计算支持。
23.在进一步的实施例中,重构控制器在接收到指令接口传来的配置信息后,控制计算单元mux完成对指定复杂函数的控制流和数据流映射;其中,涉及到需要计算的源数据,从存储器中通过数据接口传入计算引擎,待计算完成后,再通过数据接口输出至存储器中的指定位置。
24.在此实施例下,提出的可重构计算引擎在tsmc 28nm的工艺下,工作频率能够达到2ghz,在此频率下,硬件的综合面积为0.132mm2,功耗仅为61.315mw。
25.实施例二在实施例一的基础上,计算单元mux具体包含包括cu_mux1模块、cu_mux2模块、cu_mux3模块、cu_mux4模块、cu_mux5模块、cu_mux6模块以及最终的结果选择模块。详细结构如图2所示。
26.重构控制器根据指令接口传来的配置信息call_type,控制计算单元mux中的cu_mux1~ cu_mux6完成对特定复杂函数的数据通路映射。cu_mux1~ cu_mux6与计算单元中的10个cordic算子直接交互,通过分时复用,完成对特定复杂函数的逐级计算。优选实施中,本发明中的计算引擎支持的29种复杂函数,满足最多需要6个cordic算子级联计算,最少只需要1级cordic算子计算,因此计算单元mux分为6级,根据各函数的需要,映射成1~6级计算。重构控制器根据配置控制结果选择模块,选择各函数的实际输出位置。
27.在此实例下,本发明提出的基于cordic的可重构计算引擎具有硬件资源利用率高、配置简易灵活的特点。
28.实施例三在实例一的基础上,计算单元中的10个cordic算子都具有如图3所示的基本结构。
29.在每个cordic算子中,为使得整个计算过程流水进行,cordic算法需要的迭代过程被设置为多个基本的迭代算子,迭代算子之间逐级连接,完成迭代运算。迭代算子有3种类型,其中i≥0的迭代算子属于传统的迭代方式,i<0的迭代算子是改进的迭代方式(i代表第i次迭代),目的是扩大cordic算子支持的计算范围。
30.在此实例下,提出的基于cordic的可重构计算引擎能够支持复杂函数的流水计算,提高计算的效率,实用性高。
31.综合以上实施例所述,本发明通过分析复杂函数的数学特征及表达式转换,并利用各种cordic算子的特性,将29种复杂数学函数高效映射到10个cordic算子上。重构控制器通过指令接口接受配置指令,为不同的复杂函数重构特定的数据通路,并控制数据的流水化计算,最终输出相应复杂函数计算的结果。最终本发明所提出的基于cordic的可重构计算引擎具有硬件资源利用率高、配置简易灵活、主频高、面积小及功耗低等优点。
32.如上所述,尽管参照特定的优选实施例已经表示和表述了本发明,但其不得解释为对本发明自身的限制。在不脱离所附权利要求定义的本发明的精神和范围前提下,可对其在形式上和细节上做出各种变化。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献