兼顾通用指令和专用指令的可重构计算装置转让专利

申请号 : CN201611209206.0

文献号 : CN107688469B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 樊广超贺庆礼王琳

申请人 : 北京国睿中数科技股份有限公司中国电子科技集团公司第十四研究所

摘要 :

本发明提出一种兼顾通用指令和专用指令的可重构计算装置,包括:输入数据存储单元,用于存储输入的计算数据;指令存储单元,用于存储专用指令,专用指令对应的专用计算库及通用指令;指令解析单元,对专用指令或通用指令进行解析,以转换成内部指令编码;可重构多级控制单元,根据内部指令编码,输出相应的多级流水计算命令;可重构多级计算单元,用于根据多级流水计算命令对计算数据执行相应的通用计算或专用计算,并输出相应的计算结果;输出数据存储单元,用于存储计算结果。本发明可以作为DSP处理器的协处理器,或单独作为加速计算核,提高通用计算能力的同时加快了专用算法,有效利用了硬件资源,具有极大的应用范围。

权利要求 :

1.一种兼顾通用指令和专用指令的可重构计算装置,其特征在于,包括:输入数据存储单元,用于存储输入的计算数据;

指令存储单元,用于存储通用指令、专用指令及所述专用指令对应的专用计算库;

指令解析单元,对所述指令存储单元中存储的专用指令或通用指令进行解析,以将专用指令或通用指令转换成内部指令编码,并发送给可重构多级控制单元;

所述可重构多级控制单元,用于根据所述内部指令编码,进入对应的多级状态机中,并输出相应的多级流水计算命令至可重构多级计算单元;

所述可重构多级计算单元分别与所述输入数据存储单元和可重构多级控制单元相连,用于根据所述多级流水计算命令对所述计算数据执行相应的通用计算或专用计算,并输出相应的计算结果;

输出数据存储单元,与可重构多级计算单元相连,用于存储所述计算结果。

2.根据权利要求1所述的兼顾通用指令和专用指令的可重构计算装置,其特征在于,所述可重构多级计算单元用于:当待处理指令为通用指令时,对所述计算数据执行对应于所述通用指令的并行计算或多级流水计算;或者当待处理指令为专用指令,对所述计算数据执行对应于所述专用指令的多级批计算。

3.根据权利要求1所述的兼顾通用指令和专用指令的可重构计算装置,其特征在于,所述输入数据存储单元用于根据所述计算数据的地址,通过DMA从DDR中读取所述计算数据,并存储所述计算数据。

4.根据权利要求1所述的兼顾通用指令和专用指令的可重构计算装置,其特征在于,所述输出数据存储单元用于根据所述计算结果对应的地址,通过DMA将所述计算结果写回到DDR。

5.根据权利要求1所述的兼顾通用指令和专用指令的可重构计算装置,其特征在于,所述专用指令的专用计算库通过所述可重构多级控制单元可识别的内部指令编码组合得到。

6.根据权利要求1所述的兼顾通用指令和专用指令的可重构计算装置,其特征在于,所述可重构多级控制单元包括输入数据、数据计算及输出数据的三级流水。

7.根据权利要求6所述的兼顾通用指令和专用指令的可重构计算装置,其特征在于,其中,所述数据计算流水包括专用指令状态机和通用指令状态机。

8.根据权利要求6所述的兼顾通用指令和专用指令的可重构计算装置,其特征在于,在所述输入数据流水及输出数据流水中均使用专用指令。

9.根据权利要求1所述的兼顾通用指令和专用指令的可重构计算装置,其特征在于,所述可重构多级计算单元至少包括:多个乘加计算子单元、多个除法计算子单元、多个比较计算子单元及多个三角函数计算子单元。

10.根据权利要求9所述的兼顾通用指令和专用指令的可重构计算装置,其特征在于,所述可重构多级计算单元用于根据所述多级流水计算命令,对所述多个乘加计算子单元、多个除法计算子单元、多个比较计算子单元及多个三角函数计算子单元进行路由控制。

说明书 :

兼顾通用指令和专用指令的可重构计算装置

技术领域

[0001] 本发明涉及数字信号处理技术领域,特别涉及一种兼顾通用指令和专用指令的可重构计算装置。

背景技术

[0002] 在数字信号处理领域,经常需要进行某种专用算法的大量数据计算,比如FFT(Fast Fourier Transformation,快速傅氏变换)、FIR(Finite Impulse Response,有限长
单位冲激响应)、矩阵计算等。由于通用DSP(Digital Signal Process,数字信号处理)处理
器的局限性,在专用算法下,效率不高,影响了通用DSP处理器的计算速度。但是通用DSP处
理器的通用计算指令扩展了DSP计算的多样性和通用性。专用算法处理器虽然对于专用算
法,计算速度很快,但是限制了算法,在非专用算法的应用期间,无法使用,浪费了计算性
能。
[0003] 现有的可重构计算装置,针对多种算法实现可重构,在需要特定算法计算时,修改寄存器配置等,重构计算单元的组成方式,完成特定算法的快速计算。但其本质上还是专用
算法,在通用DSP没有特定算法时,不能工作,浪费了计算性能。这些问题是由于这个可重构
计算装置的实际应用场景还是比较单一,缺少对通用性的支持。

发明内容

[0004] 本发明旨在至少解决上述技术问题之一。
[0005] 为此,本发明的目的在于提出一种兼顾通用指令和专用指令的可重构计算装置,该装置可以作为DSP处理器的协处理器,或单独作为加速计算核,提高通用计算能力的同时
加快了专用算法,有效利用了硬件资源,具有极大的应用范围。
[0006] 为了实现上述目的,本发明的实施例提出了一种兼顾通用指令和专用指令的可重构计算装置,包括:输入数据存储单元,用于存储输入的计算数据;指令存储单元,用于存储
专用指令,专用指令对应的专用计算库及通用指令;指令解析单元,对所述指令存储单元中
存储的专用指令或通用指令进行解析,以将专用指令或通用指令转换成内部指令编码,并
发送给可重构多级控制单元;所述可重构多级控制单元,用于根据所述内部指令编码,进入
对应的多级状态机中,并输出相应的多级流水计算命令至可重构多级计算单元;所述可重
构多级计算单元分别与所述输入数据存储单元和可重构多级控制单元相连,用于根据所述
多级流水计算命令对所述计算数据执行相应的通用计算或专用计算,并输出相应的计算结
果;输出数据存储单元,与可重构多级计算单元相连,用于存储所述计算结果。
[0007] 另外,根据本发明上述实施例的兼顾通用指令和专用指令的可重构计算装置还可以具有如下附加的技术特征:
[0008] 在一些示例中,所述可重构多级计算单元用于:当待处理指令为通用指令时,对所述计算数据执行对应于所述通用指令的并行计算或多级流水计算;或者当待处理指令为专
用指令,对所述计算数据执行对应于所述专用指令的多级批计算。
[0009] 在一些示例中,所述输入数据存储单元用于根据所述计算数据的地址,通过DMA从DDR中读取所述计算数据,并存储所述计算数据。
[0010] 在一些示例中,所述输出数据存储单元用于根据所述计算结果对应的地址,通过DMA将所述计算结果写回到DDR。
[0011] 在一些示例中,所述专用指令的专用计算库通过所述可重构多级控制单元可识别的内部指令编码组合得到。
[0012] 在一些示例中,所述可重构多级控制单元包括输入数据、数据计算及输出数据的三级流水。
[0013] 在一些示例中,其中,所述数据计算流水包括专用指令状态机和通用指令状态机。
[0014] 在一些示例中,在所述输入数据流水及输出数据流水中均使用专用指令。
[0015] 在一些示例中,所述可重构多级计算单元至少包括:多个乘加计算子单元、多个除法计算子单元、多个比较计算子单元及多个三角函数计算子单元。
[0016] 在一些示例中,所述可重构多级计算单元用于根据所述多级流水计算命令,对所述多个乘加计算子单元、多个除法计算子单元、多个比较计算子单元及多个三角函数计算
子单元进行路由控制。
[0017] 根据本发明实施例的兼顾通用指令和专用指令的可重构计算装置,兼顾了DSP的通用计算指令,兼容了已有的现成软件编程库,显著提高了DSP处理器的通用计算能力;实
现了专用的加速计算指令,并可灵活编程扩展,提高了专用算法计算的效率,极大的扩展了
使用场景,显著的提高了DSP处理器的计算性能。该装置可以作为DSP处理器的协处理器,或
单独作为加速计算核,提高通用计算能力的同时加快了专用算法,有效利用了硬件资源,具
有极大的应用范围。
[0018] 本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

[0019] 本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0020] 图1是根据本发明实施例的兼顾通用指令和专用指令的可重构计算装置的结构框图;
[0021] 图2是根据本发明一个实施例的可重构多级控制单元的结构示意图;
[0022] 图3是根据本发明一个实施例的可重构多级计算单元的结构示意图。

具体实施方式

[0023] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附
图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0024] 在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对
本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0025] 在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本
发明中的具体含义。
[0026] 以下结合附图描述根据本发明实施例的兼顾通用指令和专用指令的可重构计算装置。
[0027] 图1是根据本发明一个实施例的兼顾通用指令和专用指令的可重构计算装置的结构框图。如图1所示,该装置100包括:输入数据存储单元110、指令存储单元120、指令解析单
元130、可重构多级控制单元140、可重构多级计算单元150和输出数据存储单元160。
[0028] 其中,输入数据存储单元110(例如输入数据ram)用于存储输入的计算数据。
[0029] 具体地,输入数据存储单元110用于根据计算数据的地址,通过DMA(Direct Memory Access,直接内存存取)从DDR(Double Data Rate,双倍速率同步动态随机存储器)
中读取计算数据,并存储计算数据。
[0030] 指令存储单元120(例如指令ram)用于存储专用指令,专用指令对应的专用计算库及通用指令。其中,专用指令的专用计算库例如通过可重构多级控制单元可识别的内部指
令编码组合得到,可编程扩展,从DDR中更新;在处理通用指令时,从DDR读取通用指令并存
储。
[0031] 指令解析单元130对指令存储单元120中存储的专用指令或通用指令进行解析,以将专用指令或通用指令转换成内部指令编码,并发送给可重构多级控制单元140。其中,专
用指令根据对应的专用计算库解析。
[0032] 可重构多级控制单元140用于根据内部指令编码,进入对应的多级状态机中,并输出相应的多级流水计算命令至可重构多级计算单元150。
[0033] 在本发明的一个实施例中,结合图2所示,可重构多级控制单元140包括输入数据、数据计算及输出数据的三级流水。其中,输入数据,输出数据都使用专用指令,作为数据流
的基本控制指令,可以实现大量快速的数据搬运。计算单元可使用通用计算指令/专用指令
解析出的内部编码,灵活计算。进一步地,数据计算流水包括专用指令状态机和通用指令状
态机。
[0034] 可重构多级计算单元150分别与输入数据存储单元110和可重构多级控制单元140相连,用于根据多级流水计算命令对计算数据执行相应的通用计算或专用计算,并输出相
应的计算结果。
[0035] 具体地,在本发明的一个实施例中,可重构多级计算单元150用于:当待处理指令为通用指令时,对计算数据执行对应于通用指令的并行计算或多级流水计算;或者当待处
理指令为专用指令,对计算数据执行对应于专用指令的多级批计算。
[0036] 在本发明的一个实施例中,结合图3所示,可重构多级计算单元150至少包括:多个乘加计算子单元、多个除法计算子单元、多个比较计算子单元及多个三角函数计算子单元。
更为具体地,可重构多级计算单元150用于根据多级流水计算命令,对多个乘加计算子单
元、多个除法计算子单元、多个比较计算子单元及多个三角函数计算子单元进行路由控制,
实现多级,并行,灵活分配。对于通用指令,调用计算单元,进行通用的并行计算,或多级流
水计算;对于专用指令,分配计算单元进行多级批计算,完成特定的加速计算。换言之,即可
重构多级计算单元150的每级包括若干计算单元,不同级可包含不同的计算单元;如果是通
用指令,进行通用指令的并行计算,或多级流水计算;如果是专用指令,使用指令ram的专用
计算库,进行专用计算。
[0037] 输出数据存储单元160(例如输入出数据ram)与可重构多级计算单元150相连,用于存储计算结果。具体地,输出数据存储单元160用于根据计算结果对应的地址,通过DMA将
计算结果写回到DDR。
[0038] 换言之,本发明实施例的兼顾通用指令和专用指令的可重构计算装置包括:两个数据ram,一个存储输入的计算数据,一个存储输出的计算数据;一个指令ram,保存专用指
令,专用指令对应的专用计算库,在处理通用指令时,存储通用指令;一个指令解析单元,对
通用指令或专用指令进行解析,发送给可重构多级控制单元;一个可重构多级控制单元,根
据通用指令或专用指令解析的结果,进入对应的多级状态机中,将多级控制信号输出给可
重构多级计算单元;一组可重构多级计算单元,根据控制信号,进行加减乘除等计算,可并
行计算多组数据,或者进行多级计算,最后将计算结果输出。这种可重构计算装置可使用通
用指令编程,兼容了已有的计算函数库,或使用专用指令编程,实现更快的专用计算算法,
可作为可重构的协处理器,或作为加速计算核,显著的提高了DSP处理器的计算性能。
[0039] 作为具体的示例,该装置的具体实现过程可概述如下:
[0040] 1.DSP将编程好的一组通用指令,或一组专用指令,写入DDR中。其中,一组通用指令指:使用专用指令配置算法的输入/输出数据地址,计算类型等,作为一组指令的开始部
分,然后加入一批通用计算指令,编程为一组指令。一组专用指令指:使用专用指令配置算
法的输入/输出数据地址,计算类型等,加入一批专用计算指令,编程为一组指令。
[0041] 2.DSP将这组指令,写入DDR中,并通知可重构计算装置,可以开始工作,并告知这组指令所在DDR的地址,可重构计算装置从DDR读取计算指令组。
[0042] 3.指令解析单元解析指令,并将解析后的内部编码或对应的专用计算库传递给可重构多级控制单元。
[0043] 4.可重构多级控制单元根据收到的指令类型,控制输入数据,数据计算,输出数据的三级流水,从DDR读取源数据到读ram;读ram读取数据完毕后,可重构多级控制单元发送
多级流水计算命令给可重构多级计算单元。
[0044] 5.一组可重构多级计算单元,根据多级流水计算命令,组织计算单元进行数据的多级流水/并行计算。此时,可流水2,3,4的步骤,以读取下一组指令和数据。
[0045] 6.计算完成后,存入写ram,根据可重构多级控制单元的命令写入DDR。
[0046] 综上,本发明的兼顾通用和专用体现在兼顾通用计算指令和专用指令,其中,通用计算指令指的是DSP核使用的向量通用计算指令,可实现类似DSP的多级流水/顺序/并行/
相关计算,兼容了已有的现成软件编程库;专用指令可实现专用算法的多级/流水/并行/循
环/快速计算,并可灵活编程扩展。
[0047] 本发明的可重构体现在计算单元的组织形式可重构,包含一定数量的乘法,加法,除法,比较,三角函数等多种基本的计算单元。这些计算单元可分为多级,每级可包含多个
计算单元,可重构多级控制单元根据内部指令编码,发出多级流水计算命令来进行路由组
织,每级流水之间包含数据寄存器,缓存流水之间的数据传递。
[0048] 根据本发明实施例的兼顾通用指令和专用指令的可重构计算装置,兼顾了DSP的通用计算指令,兼容了已有的现成软件编程库,显著提高了DSP处理器的通用计算能力;实
现了专用的加速计算指令,并可灵活编程扩展,提高了专用算法计算的效率,极大的扩展了
使用场景,显著的提高了DSP处理器的计算性能。该装置可以作为DSP处理器的协处理器,或
单独作为加速计算核,提高通用计算能力的同时加快了专用算法,有效利用了硬件资源,具
有极大的应用范围。
[0049] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不
一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何
的一个或多个实施例或示例中以合适的方式结合。
[0050] 尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本
发明的范围由权利要求及其等同限定。