CN106775579B - 基于可配置技术的浮点运算加速单元 - Google Patents

基于可配置技术的浮点运算加速单元 Download PDF

Info

Publication number
CN106775579B
CN106775579B CN201611073974.8A CN201611073974A CN106775579B CN 106775579 B CN106775579 B CN 106775579B CN 201611073974 A CN201611073974 A CN 201611073974A CN 106775579 B CN106775579 B CN 106775579B
Authority
CN
China
Prior art keywords
data
floating
operation result
control signal
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611073974.8A
Other languages
English (en)
Other versions
CN106775579A (zh
Inventor
亓洪亮
于立新
彭和平
庄伟�
宋立国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Microelectronic Technology Institute
Mxtronics Corp
Original Assignee
Beijing Microelectronic Technology Institute
Mxtronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Microelectronic Technology Institute, Mxtronics Corp filed Critical Beijing Microelectronic Technology Institute
Priority to CN201611073974.8A priority Critical patent/CN106775579B/zh
Publication of CN106775579A publication Critical patent/CN106775579A/zh
Application granted granted Critical
Publication of CN106775579B publication Critical patent/CN106775579B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations

Abstract

本发明公开了一种基于可配置计术的浮点运算加速单元,包括:第一输入端口fifo1、第二输入端口fifo2,可配置寄存器组、控制运算逻辑模块、结果选择器和结果输出单元;可配置寄存器组中包括:配置寄存器和至少一个数据寄存器;控制运算逻辑模块包括:至少一个运算器和至少一个选择器;fifo1和fifo2分别用于接收外部输入数据;至少一个数据寄存器用于对数据进行存储;配置寄存器用于生成运算用的配置信息;控制运算逻辑模块用于根据配置信息控制执行相应的运算,得到运算结果;结果选择器用于选择对应的运算结果;结果输出单元用于将选择的运算结果输出。通过本发明在提高计算能效的同时保证了计算的灵活性。

Description

基于可配置技术的浮点运算加速单元
技术领域
本发明属于可配置计算技术领域,尤其涉及一种基于可配置技术的浮点运算加速单元。
背景技术
目前,ASIC(Application Specific Integrated Circuit,集成电路)、GPU(Graphics Processing Unit,图形处理器)、DSP(digital signal processor,数字信号处理器)和CPU(Central Processing Unit,中央处理器)等在微电子技术领域被广泛应用,完成各种计算相关的任务。
然而,现有技术存在诸多问题,以ASIC为例:ASIC一般都是专用的,通过牺牲编程能力换取更高的计算性能和能量效率,研发周期长、投入高、功能单一、无法复用;随着微电子技术的发展,系统应用规模和复杂度急剧增加,多种标准和算法并存,专用ASIC难以满足不同应用场景的需求。又例如,GPU虽然具有很高的可编程性、灵活性高,但是却存在能效低的问题。
如何在提高计算能效的同时保证计算的灵活性是本领域技术人员亟需解决的问题之一。
发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种基于可配置技术的浮点运算加速单元,旨在提高计算能效的同时保证计算的灵活性。
为了解决上述技术问题,本发明公开了一种基于可配置技术的浮点运算加速单元,包括:第一输入端口fifo1、第二输入端口fifo2,可配置寄存器组、控制运算逻辑模块、结果选择器和结果输出单元;其中,所述可配置寄存器组中包括:配置寄存器和至少一个数据寄存器;所述控制运算逻辑模块包括:至少一个运算器和至少一个选择器;
所述第一输入端口fifo1,用于接收外部输入的第一数据;
所述第二输入端口fifo2,用于接收外部输入的第二数据;
所述至少一个数据寄存器,用于对根据配置信号确定的至少一个第三数据进行存储;
所述配置寄存器,用于根据待执行运算,生成配置信息;
所述控制运算逻辑模块,用于接收配置寄存器生成的配置信息,根据配置信息生成控制信号;根据所述控制信号控制所述至少一个运算器和至少一个选择器,对所述第一数据、和/或第二数据、和/或第三数据进行运算,得到所述待执行运算对应的运算结果;
所述结果选择器,用于从所述控制运算逻辑模块中选择所述待执行运算对应的运算结果;
所述结果输出单元,用于将结果选择器选择的运算结果输出。
在上述基于可配置技术的浮点运算加速单元中,所述至少一个运算器,包括:第一浮点加法器、第二浮点加法器、第三浮点加法器、第一浮点减法器、第二浮点减法器、第三浮点减法器、第一浮点乘法器、第二浮点乘法器、第三浮点乘法器、第四浮点乘法器和浮点除法器;
所述至少一个选择器包括:第一二选一选择器、第二二选一选择器、第三二选一选择器、第四二选一选择器和第五二选一选择器;
所述控制信号包括:用于指示执行蝶形运算的第一子控制信号、用于指示执行复数乘法运算的第二子控制信号、用于指示执行复数加法运算的第三子控制信号、用于指示执行复数减法运算的第四子控制信号、用于指示执行单精度浮点乘运算的第五子控制信号、用于指示执行单精度浮点除法运算的第六子控制信号。
在上述基于可配置技术的浮点运算加速单元中,所述加速单元还包括:第三输入端口fifo3和缓存端口fifo4;其中,所述第三输入端口fifo3,用于接收蝶形运算对应的旋转因子数据;
所述第一浮点加法器,用于根据所述第一子控制信号,分别接收所述第一输入端口fifo1输入的第一数据的高32位和所述第二输入端口fifo2输入的第二数据的高32位,作加法,得到第一运算结果;
所述第二浮点加法器,用于根据所述第一子控制信号,分别接收所述第一输入端口fifo1输入的第一数据的低32位和所述第二输入端口fifo2输入的第二数据的低32位,作加法,得到第二运算结果;
所述缓存端口fifo4,用于根据所述第一子控制信号,接收所述第一运算结果和第二运算结果,合并第一运算结果和第二运算结果,得到第三运算结果,并缓存所述第三运算结果;
所述第一浮点减法器,用于根据所述第一子控制信号,分别接收所述第一输入端口fifo1输入的第一数据的高32位和所述第二输入端口fifo2输入的第二数据的高32位,作减法,得到第四运算结果;
所述第二浮点减法器,用于根据所述第一子控制信号,分别接收所述第一输入端口fifo1输入的第一数据的低32位和所述第二输入端口fifo2输入的第二数据的低32位,作减法,得到第五运算结果;
所述第二二选一选择器,用于根据所述第一子控制信号,选择接收所述第一浮点减法器输出的第四运算结果;
所述第三二选一选择器,用于根据所述第一子控制信号,选择接收所述第二浮点减法器输出的第五运算结果;
所述第四二选一选择器,用于根据所述第一子控制信号,选择接收所述第三输入端口fifo3输入的旋转因子数据的高32位;
所述第五二选一选择器,用于根据所述第一子控制信号,选择接收所述第三输入端口fifo3输入的旋转因子数据的低32位;
所述第一浮点乘法器,用于根据所述第一子控制信号,选择分别接收所述第二二选一选择器输出的第四运算结果所述第四二选一选择器输出的旋转因子数据的高32位,作乘法,得到第六运算结果;
所述第二浮点乘法器,用于根据所述第一子控制信号,选择分别接收所述第三二选一选择器输出的第五运算结果和所述第五二选一选择器输出的旋转因子数据的低32位,作乘法,得到第七运算结果;
所述第三浮点乘法器,用于根据所述第一子控制信号,选择分别接收所述第二二选一选择器输出的第四运算结果和所述第五二选一选择器输出的旋转因子数据的低32位,作乘法,得到第八运算结果;
所述第四浮点乘法器,用于根据所述第一子控制信号,选择分别接收所述第三二选一选择器输出的第五运算结果和所述第四二选一选择器输出的旋转因子数据的高32位,作乘法,得到第九运算结果;
所述第三浮点减法器,用于根据所述第一子控制信号,选择分别接收所述第一浮点乘法器输出的第六运算结果和所述第二浮点乘法器输出的第七运算结果,作减法,得到第十运算结果;
所述第三浮点加法器,用于根据所述第一子控制信号,选择分别接收所述第三浮点乘法器输出的第八运算结果和所述第四浮点乘法器输出的第九运算结果,作加法,得到第十一运算结果;
所述结果选择器,用于根据所述第一子控制信号,选择分别接收所述第三浮点减法器输出的第十运算结果和所述第三浮点加法器输出的第十一运算结果,合并所述第十运算结果和第十一运算结果,得到第十二运算结果,将所述第十二运算结果输出至结果输出单元;
所述结果输出单元,用于在接收到所述结果选择器输出的第十二运算结果时,从所述缓存端口fifo4中获取缓存的第三运算结果;将所述第十二运算结果和所述第三运算结果同时输出。
在上述基于可配置技术的浮点运算加速单元中,所述第一二选一选择器,用于根据所述第二子控制信号,选择接收所述第二输入端口fifo2输入的第二数据,或者,从所述至少一个数据寄存器中获取存储在所述至少一个数据寄存器中的第三数据;
所述第二二选一选择器,用于根据所述第二子控制信号,选择接收所述第一输入端口fifo1输入的第一数据的高32位;
所述第三二选一选择器,用于根据所述第二子控制信号,选择接收所述第一输入端口fifo1输入的第一数据的低32位;
所述第四二选一选择器,用于根据所述第二子控制信号,选择接收所述第一二选一选择器输出的第二数据或第三数据的高32位;
所述第五二选一选择器,用于根据所述第二子控制信号,选择接收所述第一二选一选择器输出的第二数据或第三数据的低32位;
所述第一浮点乘法器,用于根据所述第二子控制信号,选择分别接收所述第二二选一选择器输出的第一数据的高32位,以及,所述第四二选一选择器输出的第二数据或第三数据的高32位,作乘法,得到第十三运算结果;
所述第二浮点乘法器,用于根据所述第二子控制信号,选择分别接收所述第三二选一选择器输出的第一数据的低32位,以及,所述第五二选一选择器输出的第二数据或第三数据的低32位,作乘法,得到第十四运算结果;
所述第三浮点乘法器,用于根据所述第二子控制信号,选择分别接收所述第二二选一选择器输出的第一数据的高32位,以及,所述第五二选一选择器输出的第二数据或第三数据的低32位,作乘法,得到第十五运算结果;
所述第四浮点乘法器,用于根据所述第二子控制信号,选择分别接收所述第三二选一选择器输出的第一数据的低32,以及,所述第四二选一选择器输出的第二数据或第三数据的高32位,作乘法,得到第十六运算结果;
所述第三浮点减法器,用于根据所述第二子控制信号,选择分别接收所述第一浮点乘法器输出的第十三运算结果和所述第二浮点乘法器输出的第十四运算结果,作减法,得到第十七运算结果;
所述第三浮点加法器,用于根据所述第二子控制信号,选择分别接收所述第三浮点乘法器输出的第十五运算结果和所述第四浮点乘法器输出的第十六运算结果,作加法,得到第十八运算结果;
所述结果选择器,用于根据所述第二子控制信号,选择分别接收所述第三浮点减法器输出的第十七运算结果和所述第三浮点加法器输出的第十八运算结果,合并所述第十七运算结果和第十八运算结果,得到第十九运算结果,将所述第十九运算结果输出至结果输出单元;
所述结果输出单元,用于将所述结果选择器合并得到第十九运算结果输出。
在上述基于可配置技术的浮点运算加速单元中,所述第一二选一选择器,用于根据所述第三子控制信号,选择接收所述第二输入端口fifo2输入的第二数据,或者,从所述至少一个数据寄存器中获取存储在所述至少一个数据寄存器中的第三数据;
所述第一浮点加法器,用于根据所述第三子控制信号,选择分别接收所述第一输入端口fifo1输入的第一数据的高32,以及,所述第一二选一选择器输出的第二数据或第三数据的高32位,作加法,得到第二十运算结果;
所述第二浮点加法器,用于根据所述第三子控制信号,选择分别接收所述第一输入端口fifo1输入的第一数据的低32位,以及,所述第一二选一选择器输出的第二数据或第三数据的低32位,作加法,得到第二十一运算结果;
所述结果选择器,用于根据所述第三子控制信号,选择分别接收所述第一浮点加法器输出的第二十运算结果和所述第二浮点加法器输出的第二十一运算结果,合并所述第二十运算结果和第二十一运算结果,得到第二十二运算结果,将所述第二十二运算结果输出至结果输出单元;
所述结果输出单元,用于将所述结果选择器合并得到第二十二运算结果输出。
在上述基于可配置技术的浮点运算加速单元中,所述第一二选一选择器,用于根据所述第四子控制信号,选择接收所述第二输入端口fifo2输入的第二数据,或者,从所述至少一个数据寄存器中获取存储在所述至少一个数据寄存器中的第三数据;
所述第一浮点减法器,用于根据所述第四子控制信号,选择分别接收所述第一输入端口fifo1输入的第一数据的高32,以及,所述第一二选一选择器输出的第二数据或第三数据的高32位,作减法,得到第二十三运算结果;
所述第二浮点减法器,用于根据所述第四子控制信号,选择分别接收所述第一输入端口fifo1输入的第一数据的低32位,以及,所述第一二选一选择器输出的第二数据或第三数据的低32位,作减法,得到第二十四运算结果;
所述结果选择器,用于根据所述第四子控制信号,选择分别接收所述第一浮点减法器输出的第二十三运算结果和所述第二浮点减法器输出的第二十四运算结果,合并所述第二十三运算结果和第二十四运算结果,得到第二十五运算结果,将所述第二十五运算结果输出至结果输出单元;
所述结果输出单元,用于将所述结果选择器合并得到第二十五运算结果输出。
在上述基于可配置技术的浮点运算加速单元中,所述第一二选一选择器,用于根据所述第五子控制信号,选择接收所述第二输入端口fifo2输入的第二数据,或者,从所述至少一个数据寄存器中获取存储在所述至少一个数据寄存器中的第三数据;
所述第二二选一选择器,用于根据所述第五子控制信号,选择接收所述第一输入端口fifo1输入的第一数据;
所述第四二选一选择器,用于根据所述第五子控制信号,选择接收所述第一二选一选择器输出的第二数据或第三数据;
所述第一浮点乘法器,用于根据所述第五子控制信号,选择分别接收所述第二二选一选择器输出的第一数据,以及,所述第四二选一选择器输出的第二数据或第三数据,作乘法,得到第二十六运算结果;
所述结果选择器,用于根据所述第五子控制信号,选择接收所述第一浮点乘法器输出的第二十六运算结果,将所述第二十六运算结果输出至结果输出单元;
所述结果输出单元,用于将所述结果选择器接收的第二十六运算结果输出。
在上述基于可配置技术的浮点运算加速单元中,所述第一二选一选择器,用于根据所述第六子控制信号,选择接收所述第二输入端口fifo2输入的第二数据,或者,从所述至少一个数据寄存器中获取存储在所述至少一个数据寄存器中的第三数据;
所述浮点除法器,用于根据所述第六子控制信号,选择分别接收所述第一二选一选择器输出的第二数据,以及,所述第一输入端口fifo1输入的第一数据,得到第二十七运算结果;
所述结果选择器,用于根据所述第六子控制信号,选择接收所述浮点除法器输出的第二十七运算结果,将所述第二十七运算结果输出至结果输出单元;
所述结果输出单元,用于将所述结果选择器接收的第二十七运算结果输出。
在上述基于可配置技术的浮点运算加速单元中,所述至少一个数据寄存器包括:32个数据寄存器;
所述控制运算逻辑模块,还用于根据所述配置信息,选择接收所述第一输入端口fifo1输入的第一数据、或接收所述第二输入端口fifo2输入的第二数据、或获取所述32个数据寄存器中的任意一个或多个数据寄存器中保存的第一数据、或获取所述32个数据寄存器中的任意一个或多个数据寄存器中保存的第三数据。
本发明具有以下优点:
(1)本发明所述的加速单元基于可配置计术提出,通过第一输入端口fifo1、第二输入端口fifo2,可配置寄存器组、控制运算逻辑模块、结果选择器和结果输出单元等实现对设备内部硬件的逻辑功能和连接配置的重构,将软件的灵活性与硬件的高效、低功耗相结合,利用硬件来实现软件算法,在提高计算能效的同时保证了计算的灵活性,能够适应不同的计算场景。
(2)本发明实现了蝶形运算、复数乘运算、复数加法运算、复数减法运算、单精度浮点乘运算和单精度浮点除法运算六种运算,以流处理的方式加速大量数据的规则运算,根据不同的配置指令,执行不同的运算。有效的提高了复杂算法处理的能力,大幅度提高了系统芯片的性能。
(3)在实际应用中,可以根据需要配置其中一种运算功能运行,大大提高了处理复杂算法的灵活性,满足多种算法需要,具有较强的实用性。
附图说明
图1是本发明实施例中一种基于可配置技术的浮点运算加速单元的结构框图;
图2是本发明实施例中一种基于可配置技术的浮点运算加速单元在做蝶形运算时的逻辑连接结构示意图;
图3是本发明实施例中一种基于可配置技术的浮点运算加速单元在做复数乘法运算时的逻辑连接结构示意图;
图4是本发明实施例中一种基于可配置技术的浮点运算加速单元在做复数加法运算时的逻辑连接结构示意图;
图5是本发明实施例中一种基于可配置技术的浮点运算加速单元在做复数减法运算时的逻辑连接结构示意图;
图6是本发明实施例中一种基于可配置技术的浮点运算加速单元在做单精度浮点乘运算时的逻辑连接结构示意图;
图7是本发明实施例中一种基于可配置技术的浮点运算加速单元在做单精度浮点除法运算时的逻辑连接结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明公共的实施方式作进一步详细描述。
参照图1,示出了本发明实施例中一种基于可配置技术的浮点运算加速单元的结构框图。在本实施例中,所述基于可配置技术的浮点运算加速单元包括:第一输入端口fifo1、第二输入端口fifo2,可配置寄存器组、控制运算逻辑模块、结果选择器和结果输出单元。其中,所述可配置寄存器组中包括:配置寄存器和至少一个数据寄存器;所述控制运算逻辑模块包括:至少一个运算器和至少一个选择器。其中:
所述第一输入端口fifo1,用于接收外部输入的第一数据;所述第二输入端口fifo2,用于接收外部输入的第二数据。
在本实施例中,所述第一数据和所述第二数据可以是复数数据也可以是实数数据,本实施例对此不作限制。
所述至少一个数据寄存器,用于对根据配置信号确定的至少一个第三数据进行存储。其中,配置信号可以用于对可配置寄存器组中的各个寄存器(包括:数据寄存器和配置寄存器)进行配置,所述配置信号包括但不仅限于:寄存器配置地址信号、寄存器配置数据信号、寄存器读使能信号和寄存器写使能信号。配置时根据寄存器配置地址信号、寄存器配置数据信号和寄存器写使能信号配置可配置寄存器组内部的配置缓存器;调试时根据寄存器配置地址信号、寄存器配置数据信号、寄存器读使能信号的值输出配置寄存器的值。
所述配置寄存器,用于根据待执行运算,生成配置信息。
在本实施例中,通过本实施例所述的加速单元可以执行的待执行运算包括但不仅限于:蝶形运算、复数乘运算、复数加法运算、复数减法运算、单精度浮点乘运算和单精度浮点除法运算。优选的,当待执行运算不同时,生成的配置信息也不同。
所述控制运算逻辑模块,用于接收配置寄存器生成的配置信息,根据配置信息生成控制信号;根据所述控制信号控制所述至少一个运算器和至少一个选择器,对所述第一数据、和/或第二数据、和/或第三数据进行运算,得到所述待执行运算对应的运算结果。
在本实施例中,如前所述,当待执行运算不同时,配置寄存器生成的配置信息也不同,因此,所述控制运算逻辑模块根据配置信息生成的控制信号也不同。优选的,所述控制信号可以包括:用于指示执行蝶形运算的第一子控制信号、用于指示执行复数乘法运算的第二子控制信号、用于指示执行复数加法运算的第三子控制信号、用于指示执行复数减法运算的第四子控制信号、用于指示执行单精度浮点乘运算的第五子控制信号、用于指示执行单精度浮点除法运算的第六子控制信号。
所述结果选择器,用于从所述控制运算逻辑模块中选择所述待执行运算对应的运算结果。
在本实施例中,通过所述控制运算逻辑模块输出的运算结果可以是蝶形运算运算结果、复数乘运算运算结果、复数加法运算运算结果、复数减法运算运算结果、单精度浮点乘运算运算结果和单精度浮点除法运算运算结果中的任意一种。优选的,所述结果选择器可以根据控制信号从所述控制运算逻辑模块中选择对应于所述待执行运算的运算结果。
所述结果输出单元,用于将结果选择器选择的运算结果输出。
其中,需要说明的是,在本实施例中,所述至少一个数据寄存器的数量可以是32个数据,最多支持16个64位复数数据。
优选的,所述控制运算逻辑模块,还可以用于根据所述配置信息,选择接收所述第一输入端口fifo1输入的第一数据、或接收所述第二输入端口fifo2输入的第二数据、或获取所述32个数据寄存器中的任意一个或多个数据寄存器中保存的第三数据。
换而言之,在本实施例中,用于进行运输的数据可以是直接从输入端口(fifo1或fifo2)输入的数据,也可以是根据配置信号确定的已保存在数据寄存器中的数据。其中,在从数据寄存器中获取数据时,若待获取的数据是复数数据,则一次读取两个连续的寄存器中的数据,即64位数据;若待获取的数据是实数数据,则只取一个寄存器中的数据。
在本实施例的一优选方案中,所述至少一个运算器可以包括:第一浮点加法器、第二浮点加法器、第三浮点加法器、第一浮点减法器、第二浮点减法器、第三浮点减法器、第一浮点乘法器、第二浮点乘法器、第三浮点乘法器、第四浮点乘法器和浮点除法器。所述至少一个选择器可以包括:第一二选一选择器、第二二选一选择器、第三二选一选择器、第四二选一选择器和第五二选一选择器。在实际运算过程中,所述控制运算逻辑模块可以根据控制信号控制所述至少一个运算器与所述至少一个选择器之间,以及,各个运算器之间和各个选择器之间的逻辑连接关系,实现对输入数据的运算,得到相应的运算结果。
下面分别对所述基于可配置技术的浮点运算加速单元在处理不同的运算时,各模块单元之间的逻辑连接关系进行说明。
一、蝶形运算
参照图2,示出了本发明实施例中一种基于可配置技术的浮点运算加速单元在做蝶形运算时的逻辑连接结构示意图。在上述实施例的基础上,如图2所示,所述加速单元还包括:第三输入端口fifo3和缓存端口fifo4。
在本实施例中,所述基于可配置技术的浮点运算加速单元在做蝶形运算时,适合输入自然顺序,输出乱序且满足码位倒置规则的fft运算。具体的:
第一输入端口fifo1和第二输入端口fifo2分别用于接收蝶形运算的二个数据;第三输入端口fifo3用于接收蝶形运算对应的旋转因子数据。在本实施例中,第三输入端口fifo3和缓存端口fifo4只提供给蝶形运算使用。
所述第一浮点加法器,用于根据所述第一子控制信号,分别接收所述第一输入端口fifo1输入的第一数据的高32位和所述第二输入端口fifo2输入的第二数据的高32位,作加法(也即,将复数的实部相加),得到第一运算结果。
所述第二浮点加法器,用于根据所述第一子控制信号,分别接收所述第一输入端口fifo1输入的第一数据的低32位和所述第二输入端口fifo2输入的第二数据的低32位,作加法(也即,将复数的虚部相加),得到第二运算结果。
所述缓存端口fifo4,用于根据所述第一子控制信号,接收所述第一运算结果和第二运算结果,合并第一运算结果和第二运算结果,得到第三运算结果(合并后得到的一个64位的复数),并缓存所述第三运算结果。
所述第一浮点减法器,用于根据所述第一子控制信号,分别接收所述第一输入端口fifo1输入的第一数据的高32位和所述第二输入端口fifo2输入的第二数据的高32位,作减法(也即,将复数的实部相减),得到第四运算结果。
所述第二浮点减法器,用于根据所述第一子控制信号,分别接收所述第一输入端口fifo1输入的第一数据的低32位和所述第二输入端口fifo2输入的第二数据的低32位,作减法(也即,将复数的虚部相减),得到第五运算结果。
所述第二二选一选择器其中一个输入是第一浮点减法器的输出,在做蝶形运算时,所述第二二选一选择器,具体用于根据所述第一子控制信号,选择接收所述第一浮点减法器输出的第四运算结果。
所述第三二选一选择器其中一个输入是第二浮点减法器的输出,在做蝶形运算时,所述第三二选一选择器,具体用于根据所述第一子控制信号,选择接收所述第二浮点减法器输出的第五运算结果。
所述第四二选一选择器其中一个输入是第三输入端口fifo3的输出,在做蝶形运算时,所述第四二选一选择器,具体用于根据所述第一子控制信号,选择接收所述第三输入端口fifo3输入的旋转因子数据的高32位。
所述第五二选一选择器其中一个输入是第三输入端口fifo3的输出,在做蝶形运算时,所述第五二选一选择器,具体用于根据所述第一子控制信号,选择接收所述第三输入端口fifo3输入的旋转因子数据的低32位。
所述第一浮点乘法器的两个输入分别是第二二选一选择器和第四二选一选择器的输出,在做蝶形运算时,所述第一浮点乘法器,具体用于根据所述第一子控制信号,选择分别接收所述第二二选一选择器输出的第四运算结果所述第四二选一选择器输出的旋转因子数据的高32位,作乘法,得到第六运算结果。
所述第二浮点乘法器的两个输入分别是第三二选一选择器和第五二选一选择器的输出,在做蝶形运算时,所述第二浮点乘法器,具体用于根据所述第一子控制信号,选择分别接收所述第三二选一选择器输出的第五运算结果和所述第五二选一选择器输出的旋转因子数据的低32位,作乘法,得到第七运算结果。
所述第三浮点乘法器的两个输入分别是第二二选一选择器与第五二选一选择器的输出,在做蝶形运算时,所述第三浮点乘法器,具体用于根据所述第一子控制信号,选择分别接收所述第二二选一选择器输出的第四运算结果和所述第五二选一选择器输出的旋转因子数据的低32位,作乘法,得到第八运算结果。
所述第四浮点乘法器的两个输入分别是第三二选一选择器与第四二选一选择器的输出,在做蝶形运算时,所述第四浮点乘法器,具体用于根据所述第一子控制信号,选择分别接收所述第三二选一选择器输出的第五运算结果和所述第四二选一选择器输出的旋转因子数据的高32位,作乘法,得到第九运算结果。
所述第三浮点减法器的两个输入分别是第一浮点乘法器与第二浮点乘法器的输出,在做蝶形运算时,所述第三浮点减法器,具体用于根据所述第一子控制信号,选择分别接收所述第一浮点乘法器输出的第六运算结果和所述第二浮点乘法器输出的第七运算结果,作减法,得到第十运算结果。
所述第三浮点加法器的两个输入分别是第三浮点乘法器与第四浮点乘法器的输出,在做蝶形运算时,所述第三浮点加法器,具体用于根据所述第一子控制信号,选择分别接收所述第三浮点乘法器输出的第八运算结果和所述第四浮点乘法器输出的第九运算结果,作加法,得到第十一运算结果。
所述结果选择器,用于根据所述第一子控制信号,选择分别接收所述第三浮点减法器输出的第十运算结果和所述第三浮点加法器输出的第十一运算结果,合并所述第十运算结果和第十一运算结果,得到第十二运算结果,将所述第十二运算结果输出至结果输出单元。
所述结果输出单元,用于在接收到所述结果选择器输出的第十二运算结果时,从所述缓存端口fifo4中获取缓存的第三运算结果;将所述第十二运算结果和所述第三运算结果同时输出。
二、复数乘法运算
参照图3,示出了本发明实施例中一种基于可配置技术的浮点运算加速单元在做复数乘法运算时的逻辑连接结构示意图。在上述实施例的基础上,如图3所示,
第一二选一选择器其中一个输入是第二输入端口fifo2的输出,另一个输入是可配置寄存器组中的数据寄存器,在做复数乘法运算时,所述第一二选一选择器,具体用于根据所述第二子控制信号,选择接收所述第二输入端口fifo2输入的第二数据,或者,从所述至少一个数据寄存器中获取存储在所述至少一个数据寄存器中的第三数据。
第二二选一选择器其中一个输入是第一输入端口fifo1的输出,在做复数乘法运算时,所述第二二选一选择器,具体用于根据所述第二子控制信号,选择接收所述第一输入端口fifo1输入的第一数据的高32位。
第三二选一选择器其中一个输入是第一输入端口fifo1的输出,在做复数乘法运算时,所述第三二选一选择器,具体用于根据所述第二子控制信号,选择接收所述第一输入端口fifo1输入的第一数据的低32位。
第四二选一选择器其中一个输入是第一二选一选择器的输出,在做复数乘法运算时,所述第四二选一选择器,具体用于根据所述第二子控制信号,选择接收所述第一二选一选择器输出的第二数据或第三数据的高32位。
第五二选一选择器其中一个输入是第一二选一选择器的输出,在做复数乘法运算时,所述第五二选一选择器,具体用于根据所述第二子控制信号,选择接收所述第一二选一选择器输出的第二数据或第三数据的低32位。
第一浮点乘法器的两个输入分别是第二二选一选择器和第四二选一选择器的输出,在做复数乘法运算时,所述第一浮点乘法器,具体用于根据所述第二子控制信号,选择分别接收所述第二二选一选择器输出的第一数据的高32位,以及,所述第四二选一选择器输出的第二数据或第三数据的高32位,作乘法,得到第十三运算结果。
第二浮点乘法器的两个输入分别是第三二选一选择器和第五二选一选择器的输出,在做复数乘法运算时,所述第二浮点乘法器,具体用于根据所述第二子控制信号,选择分别接收所述第三二选一选择器输出的第一数据的低32位,以及,所述第五二选一选择器输出的第二数据或第三数据的低32位,作乘法,得到第十四运算结果。
第三浮点乘法器的两个输入分别是第二二选一选择器和第五二选一选择器的输出,在做复数乘法运算时,所述第三浮点乘法器,具体用于根据所述第二子控制信号,选择分别接收所述第二二选一选择器输出的第一数据的高32位,以及,所述第五二选一选择器输出的第二数据或第三数据的低32位,作乘法,得到第十五运算结果。
第四浮点乘法器的两个输入分别是第三二选一选择器和第四二选一选择器的输出,在做复数乘法运算时,所述第四浮点乘法器,具体用于根据所述第二子控制信号,选择分别接收所述第三二选一选择器输出的第一数据的低32位,以及,所述第四二选一选择器输出的第二数据或第三数据的高32位,作乘法,得到第十六运算结果。
第三浮点减法器的两个输入分别是第一浮点乘法器和第二浮点乘法器的输出,在做复数乘法运算时,所述第三浮点减法器,具体用于根据所述第二子控制信号,选择分别接收所述第一浮点乘法器输出的第十三运算结果和所述第二浮点乘法器输出的第十四运算结果,作减法,得到第十七运算结果。
第三浮点加法器的两个输入分别是第三浮点乘法器和第四浮点乘法器的输出,在做复数乘法运算时,所述第三浮点加法器,具体用于根据所述第二子控制信号,选择分别接收所述第三浮点乘法器输出的第十五运算结果和所述第四浮点乘法器输出的第十六运算结果,作加法,得到第十八运算结果。
所述结果选择器,用于根据所述第二子控制信号,选择分别接收所述第三浮点减法器输出的第十七运算结果和所述第三浮点加法器输出的第十八运算结果,合并所述第十七运算结果和第十八运算结果,得到第十九运算结果,将所述第十九运算结果输出至结果输出单元。
所述结果输出单元,用于将所述结果选择器合并得到第十九运算结果输出。
三、复数加法运算
参照图4,示出了本发明实施例中一种基于可配置技术的浮点运算加速单元在做复数加法运算时的逻辑连接结构示意图。在上述实施例的基础上,如图4所示,
第一二选一选择器其中一个输入是第二输入端口fifo2的输出,另一个输入是可配置寄存器组中的数据寄存器,在做复数加法运算时,所述第一二选一选择器,具体用于根据所述第三子控制信号,选择接收所述第二输入端口fifo2输入的第二数据,或者,从所述至少一个数据寄存器中获取存储在所述至少一个数据寄存器中的第三数据。
所述第一浮点加法器,用于根据所述第三子控制信号,选择分别接收所述第一输入端口fifo1输入的第一数据的高32,以及,所述第一二选一选择器输出的第二数据或第三数据的高32位,作加法,得到第二十运算结果。
所述第二浮点加法器,用于根据所述第三子控制信号,选择分别接收所述第一输入端口fifo1输入的第一数据的低32位,以及,所述第一二选一选择器输出的第二数据或第三数据的低32位,作加法,得到第二十一运算结果。
所述结果选择器,用于根据所述第三子控制信号,选择分别接收所述第一浮点加法器输出的第二十运算结果和所述第二浮点加法器输出的第二十一运算结果,合并所述第二十运算结果和第二十一运算结果,得到第二十二运算结果,将所述第二十二运算结果输出至结果输出单元。
所述结果输出单元,用于将所述结果选择器合并得到第二十二运算结果输出。
四、复数减法运算
参照图5,示出了本发明实施例中一种基于可配置技术的浮点运算加速单元在做复数减法运算时的逻辑连接结构示意图。在上述实施例的基础上,如图5所示,
第一二选一选择器其中一个输入是第二输入端口fifo2的输出,另一个输入是可配置寄存器组中的数据寄存器,在做复数减法运算时,所述第一二选一选择器,具体用于根据所述第四子控制信号,选择接收所述第二输入端口fifo2输入的第二数据,或者,从所述至少一个数据寄存器中获取存储在所述至少一个数据寄存器中的第三数据。
所述第一浮点减法器,用于根据所述第四子控制信号,选择分别接收所述第一输入端口fifo1输入的第一数据的高32,以及,所述第一二选一选择器输出的第二数据或第三数据的高32位,作减法,得到第二十三运算结果。
所述第二浮点减法器,用于根据所述第四子控制信号,选择分别接收所述第一输入端口fifo1输入的第一数据的低32位,以及,所述第一二选一选择器输出的第二数据或第三数据的低32位,作减法,得到第二十四运算结果。
所述结果选择器,用于根据所述第四子控制信号,选择分别接收所述第一浮点减法器输出的第二十三运算结果和所述第二浮点减法器输出的第二十四运算结果,合并所述第二十三运算结果和第二十四运算结果,得到第二十五运算结果,将所述第二十五运算结果输出至结果输出单元。
所述结果输出单元,用于将所述结果选择器合并得到第二十五运算结果输出。
五、单精度浮点乘运算
参照图6,示出了本发明实施例中一种基于可配置技术的浮点运算加速单元在做单精度浮点乘运算时的逻辑连接结构示意图。在上述实施例的基础上,如图6所示,
第一二选一选择器其中一个输入是第二输入端口fifo2的输出,另一个输入是可配置寄存器组中的数据寄存器,在做单精度浮点乘运算时,所述第一二选一选择器,具体用于根据所述第五子控制信号,选择接收所述第二输入端口fifo2输入的第二数据,或者,从所述至少一个数据寄存器中获取存储在所述至少一个数据寄存器中的第三数据。
第二二选一选择器其中一个输入是第一输入端口fifo1的输出,在做单精度浮点乘运算时,所述第二二选一选择器,具体用于根据所述第五子控制信号,选择接收所述第一输入端口fifo1输入的第一数据。
第四二选一选择器其中一个输入是第一二选一选择器的输出,在做单精度浮点乘运算时,所述第四二选一选择器,具体用于根据所述第五子控制信号,选择接收所述第一二选一选择器输出的第二数据或第三数据。
第一浮点乘法器的两个输入分别是第二二选一选择器和第四二选一选择器的输出,在做单精度浮点乘运算时,所述第一浮点乘法器,具体用于根据所述第五子控制信号,选择分别接收所述第二二选一选择器输出的第一数据,以及,所述第四二选一选择器输出的第二数据或第三数据,作乘法,得到第二十六运算结果。
所述结果选择器,用于根据所述第五子控制信号,选择接收所述第一浮点乘法器输出的第二十六运算结果,将所述第二十六运算结果输出至结果输出单元。
所述结果输出单元,用于将所述结果选择器接收的第二十六运算结果输出。
六、单精度浮点除法运算
参照图7,示出了本发明实施例中一种基于可配置技术的浮点运算加速单元在做单精度浮点除法运算时的逻辑连接结构示意图。在上述实施例的基础上,如图7所示,
第一二选一选择器其中一个输入是第二输入端口fifo2的输出,另一个输入是可配置寄存器组中的数据寄存器,在做单精度浮点除法运算时。所述第一二选一选择器,具体用于根据所述第六子控制信号,选择接收所述第二输入端口fifo2输入的第二数据,或者,从所述至少一个数据寄存器中获取存储在所述至少一个数据寄存器中的第三数据。
所述浮点除法器,用于根据所述第六子控制信号,选择分别接收所述第一二选一选择器输出的第二数据或第三数据,以及,所述第一输入端口fifo1输入的第一数据,作除法,得到第二十七运算结果。
所述结果选择器,用于根据所述第六子控制信号,选择接收所述浮点除法器输出的第二十七运算结果,将所述第二十七运算结果输出至结果输出单元;
所述结果输出单元,用于将所述结果选择器接收的第二十七运算结果输出。
综上所述,本发明实施例所述的加速单元基于可配置计术提出,通过第一输入端口fifo1、第二输入端口fifo2,可配置寄存器组、控制运算逻辑模块、结果选择器和结果输出单元等实现对设备内部硬件的逻辑功能和连接配置的重构,将软件的灵活性与硬件的高效、低功耗相结合,利用硬件来实现软件算法,在提高计算能效的同时保证了计算的灵活性,能够适应不同的计算场景。
其次,通过本发明实施例实现了蝶形运算、复数乘运算、复数加法运算、复数减法运算、单精度浮点乘运算和单精度浮点除法运算六种运算,以流处理的方式加速大量数据的规则运算,根据不同的配置指令,执行不同的运算。有效的提高了复杂算法处理的能力,大幅度提高了系统芯片的性能。
再次,实际应用中,本发明实施例所述的基于可配置技术的浮点运算加速单元可以根据需要配置其中一种运算功能运行,大大提高了处理复杂算法的灵活性,满足多种算法需要,具有较强的实用性。
以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。

Claims (8)

1.一种基于可配置技 术的浮点运算加速单元,其特征在于,包括:第一输入端口fifo1、第二输入端口fifo2,可配置寄存器组、控制运算逻辑模块、结果选择器和结果输出单元;其中,所述可配置寄存器组中包括:配置寄存器和至少一个数据寄存器;所述控制运算逻辑模块包括:至少一个运算器和至少一个选择器;
所述第一输入端口fifo1,用于接收外部输入的第一数据;
所述第二输入端口fifo2,用于接收外部输入的第二数据;
所述至少一个数据寄存器,用于对根据配置信号确定的至少一个第三数据进行存储;
所述配置寄存器,用于根据待执行运算,生成配置信息;
所述控制运算逻辑模块,用于接收配置寄存器生成的配置信息,根据配置信息生成控制信号;根据所述控制信号控制所述至少一个运算器和至少一个选择器,对所述第一数据、和/或第二数据、和/或第三数据进行运算,得到所述待执行运算对应的运算结果;
所述结果选择器,用于从所述控制运算逻辑模块中选择所述待执行运算对应的运算结果;
所述结果输出单元,用于将结果选择器选择的运算结果输出;
其中,所述至少一个数据寄存器包括:32个数据寄存器;
所述控制运算逻辑模块,还用于根据所述配置信息,选择接收所述第一输入端口fifo1输入的第一数据、或接收所述第二输入端口fifo2输入的第二数据、或获取所述32个数据寄存器中的任意一个或多个数据寄存器中保存的第三数据。
2.根据权利要求1所述的加速单元,其特征在于,
所述至少一个运算器,包括:第一浮点加法器、第二浮点加法器、第三浮点加法器、第一浮点减法器、第二浮点减法器、第三浮点减法器、第一浮点乘法器、第二浮点乘法器、第三浮点乘法器、第四浮点乘法器和浮点除法器;
所述至少一个选择器包括:第一二选一选择器、第二二选一选择器、第三二选一选择器、第四二选一选择器和第五二选一选择器;
所述控制信号包括:用于指示执行蝶形运算的第一子控制信号、用于指示执行复数乘法运算的第二子控制信号、用于指示执行复数加法运算的第三子控制信号、用于指示执行复数减法运算的第四子控制信号、用于指示执行单精度浮点乘运算的第五子控制信号、用于指示执行单精度浮点除法运算的第六子控制信号。
3.根据权利要求2所述的加速单元,其特征在于,所述加速单元还包括:第三输入端口fifo3和缓存端口fifo4;其中,所述第三输入端口fifo3,用于接收蝶形运算对应的旋转因子数据;
所述第一浮点加法器,用于根据所述第一子控制信号,分别接收所述第一输入端口fifo1输入的第一数据的高32位和所述第二输入端口fifo2输入的第二数据的高32位,作加法,得到第一运算结果;
所述第二浮点加法器,用于根据所述第一子控制信号,分别接收所述第一输入端口fifo1输入的第一数据的低32位和所述第二输入端口fifo2输入的第二数据的低32位,作加法,得到第二运算结果;
所述缓存端口fifo4,用于根据所述第一子控制信号,接收所述第一运算结果和第二运算结果,合并第一运算结果和第二运算结果,得到第三运算结果,并缓存所述第三运算结果;
所述第一浮点减法器,用于根据所述第一子控制信号,分别接收所述第一输入端口fifo1输入的第一数据的高32位和所述第二输入端口fifo2输入的第二数据的高32位,作减法,得到第四运算结果;
所述第二浮点减法器,用于根据所述第一子控制信号,分别接收所述第一输入端口fifo1输入的第一数据的低32位和所述第二输入端口fifo2输入的第二数据的低32位,作减法,得到第五运算结果;
所述第二二选一选择器,用于根据所述第一子控制信号,选择接收所述第一浮点减法器输出的第四运算结果;
所述第三二选一选择器,用于根据所述第一子控制信号,选择接收所述第二浮点减法器输出的第五运算结果;
所述第四二选一选择器,用于根据所述第一子控制信号,选择接收所述第三输入端口fifo3输入的旋转因子数据的高32位;
所述第五二选一选择器,用于根据所述第一子控制信号,选择接收所述第三输入端口fifo3输入的旋转因子数据的低32位;
所述第一浮点乘法器,用于根据所述第一子控制信号,选择分别接收所述第二二选一选择器输出的第四运算结果所述第四二选一选择器输出的旋转因子数据的高32位,作乘法,得到第六运算结果;
所述第二浮点乘法器,用于根据所述第一子控制信号,选择分别接收所述第三二选一选择器输出的第五运算结果和所述第五二选一选择器输出的旋转因子数据的低32位,作乘法,得到第七运算结果;
所述第三浮点乘法器,用于根据所述第一子控制信号,选择分别接收所述第二二选一选择器输出的第四运算结果和所述第五二选一选择器输出的旋转因子数据的低32位,作乘法,得到第八运算结果;
所述第四浮点乘法器,用于根据所述第一子控制信号,选择分别接收所述第三二选一选择器输出的第五运算结果和所述第四二选一选择器输出的旋转因子数据的高32位,作乘法,得到第九运算结果;
所述第三浮点减法器,用于根据所述第一子控制信号,选择分别接收所述第一浮点乘法器输出的第六运算结果和所述第二浮点乘法器输出的第七运算结果,作减法,得到第十运算结果;
所述第三浮点加法器,用于根据所述第一子控制信号,选择分别接收所述第三浮点乘法器输出的第八运算结果和所述第四浮点乘法器输出的第九运算结果,作加法,得到第十一运算结果;
所述结果选择器,用于根据所述第一子控制信号,选择分别接收所述第三浮点减法器输出的第十运算结果和所述第三浮点加法器输出的第十一运算结果,合并所述第十运算结果和第十一运算结果,得到第十二运算结果,将所述第十二运算结果输出至结果输出单元;
所述结果输出单元,用于在接收到所述结果选择器输出的第十二运算结果时,从所述缓存端口fifo4中获取缓存的第三运算结果;将所述第十二运算结果和所述第三运算结果同时输出。
4.根据权利要求2所述的加速单元,其特征在于,
所述第一二选一选择器,用于根据所述第二子控制信号,选择接收所述第二输入端口fifo2输入的第二数据,或者,从所述至少一个数据寄存器中获取存储在所述至少一个数据寄存器中的第三数据;
所述第二二选一选择器,用于根据所述第二子控制信号,选择接收所述第一输入端口fifo1输入的第一数据的高32位;
所述第三二选一选择器,用于根据所述第二子控制信号,选择接收所述第一输入端口fifo1输入的第一数据的低32位;
所述第四二选一选择器,用于根据所述第二子控制信号,选择接收所述第一二选一选择器输出的第二数据或第三数据的高32位;
所述第五二选一选择器,用于根据所述第二子控制信号,选择接收所述第一二选一选择器输出的第二数据或第三数据的低32位;
所述第一浮点乘法器,用于根据所述第二子控制信号,选择分别接收所述第二二选一选择器输出的第一数据的高32位,以及,所述第四二选一选择器输出的第二数据或第三数据的高32位,作乘法,得到第十三运算结果;
所述第二浮点乘法器,用于根据所述第二子控制信号,选择分别接收所述第三二选一选择器输出的第一数据的低32位,以及,所述第五二选一选择器输出的第二数据或第三数据的低32位,作乘法,得到第十四运算结果;
所述第三浮点乘法器,用于根据所述第二子控制信号,选择分别接收所述第二二选一选择器输出的第一数据的高32位,以及,所述第五二选一选择器输出的第二数据或第三数据的低32位,作乘法,得到第十五运算结果;
所述第四浮点乘法器,用于根据所述第二子控制信号,选择分别接收所述第三二选一选择器输出的第一数据的低32位,以及,所述第四二选一选择器输出的第二数据或第三数据的高32位,作乘法,得到第十六运算结果;
所述第三浮点减法器,用于根据所述第二子控制信号,选择分别接收所述第一浮点乘法器输出的第十三运算结果和所述第二浮点乘法器输出的第十四运算结果,作减法,得到第十七运算结果;
所述第三浮点加法器,用于根据所述第二子控制信号,选择分别接收所述第三浮点乘法器输出的第十五运算结果和所述第四浮点乘法器输出的第十六运算结果,作加法,得到第十八运算结果;
所述结果选择器,用于根据所述第二子控制信号,选择分别接收所述第三浮点减法器输出的第十七运算结果和所述第三浮点加法器输出的第十八运算结果,合并所述第十七运算结果和第十八运算结果,得到第十九运算结果,将所述第十九运算结果输出至结果输出单元;
所述结果输出单元,用于将所述结果选择器合并得到第十九运算结果输出。
5.根据权利要求2所述的加速单元,其特征在于,
所述第一二选一选择器,用于根据所述第三子控制信号,选择接收所述第二输入端口fifo2输入的第二数据,或者,从所述至少一个数据寄存器中获取存储在所述至少一个数据寄存器中的第三数据;
所述第一浮点加法器,用于根据所述第三子控制信号,选择分别接收所述第一输入端口fifo1输入的第一数据的高32,以及,所述第一二选一选择器输出的第二数据或第三数据的高32位,作加法,得到第二十运算结果;
所述第二浮点加法器,用于根据所述第三子控制信号,选择分别接收所述第一输入端口fifo1输入的第一数据的低32位,以及,所述第一二选一选择器输出的第二数据或第三数据的低32位,作加法,得到第二十一运算结果;
所述结果选择器,用于根据所述第三子控制信号,选择分别接收所述第一浮点加法器输出的第二十运算结果和所述第二浮点加法器输出的第二十一运算结果,合并所述第二十运算结果和第二十一运算结果,得到第二十二运算结果,将所述第二十二运算结果输出至结果输出单元;
所述结果输出单元,用于将所述结果选择器合并得到第二十二运算结果输出。
6.根据权利要求2所述的加速单元,其特征在于,
所述第一二选一选择器,用于根据所述第四子控制信号,选择接收所述第二输入端口fifo2输入的第二数据,或者,从所述至少一个数据寄存器中获取存储在所述至少一个数据寄存器中的第三数据;
所述第一浮点减法器,用于根据所述第四子控制信号,选择分别接收所述第一输入端口fifo1输入的第一数据的高32,以及,所述第一二选一选择器输出的第二数据或第三数据的高32位,作减法,得到第二十三运算结果;
所述第二浮点减法器,用于根据所述第四子控制信号,选择分别接收所述第一输入端口fifo1输入的第一数据的低32位,以及,所述第一二选一选择器输出的第二数据或第三数据的低32位,作减法,得到第二十四运算结果;
所述结果选择器,用于根据所述第四子控制信号,选择分别接收所述第一浮点减法器输出的第二十三运算结果和所述第二浮点减法器输出的第二十四运算结果,合并所述第二十三运算结果和第二十四运算结果,得到第二十五运算结果,将所述第二十五运算结果输出至结果输出单元;
所述结果输出单元,用于将所述结果选择器合并得到第二十五运算结果输出。
7.根据权利要求2所述的加速单元,其特征在于,
所述第一二选一选择器,用于根据所述第五子控制信号,选择接收所述第二输入端口fifo2输入的第二数据,或者,从所述至少一个数据寄存器中获取存储在所述至少一个数据寄存器中的第三数据;
所述第二二选一选择器,用于根据所述第五子控制信号,选择接收所述第一输入端口fifo1输入的第一数据;
所述第四二选一选择器,用于根据所述第五子控制信号,选择接收所述第一二选一选择器输出的第二数据或第三数据;
所述第一浮点乘法器,用于根据所述第五子控制信号,选择分别接收所述第二二选一选择器输出的第一数据,以及,所述第四二选一选择器输出的第二数据或第三数据,作乘法,得到第二十六运算结果;
所述结果选择器,用于根据所述第五子控制信号,选择接收所述第一浮点乘法器输出的第二十六运算结果,将所述第二十六运算结果输出至结果输出单元;
所述结果输出单元,用于将所述结果选择器接收的第二十六运算结果输出。
8.根据权利要求2所述的加速单元,其特征在于,
所述第一二选一选择器,用于根据所述第六子控制信号,选择接收所述第二输入端口fifo2输入的第二数据,或者,从所述至少一个数据寄存器中获取存储在所述至少一个数据寄存器中的第三数据;
所述浮点除法器,用于根据所述第六子控制信号,选择分别接收所述第一二选一选择器输出的第二数据或第三数据,以及,所述第一输入端口fifo1输入的第一数据,作除法,得到第二十七运算结果;
所述结果选择器,用于根据所述第六子控制信号,选择接收所述浮点除法器输出的第二十七运算结果,将所述第二十七运算结果输出至结果输出单元;
所述结果输出单元,用于将所述结果选择器接收的第二十七运算结果输出。
CN201611073974.8A 2016-11-29 2016-11-29 基于可配置技术的浮点运算加速单元 Active CN106775579B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611073974.8A CN106775579B (zh) 2016-11-29 2016-11-29 基于可配置技术的浮点运算加速单元

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611073974.8A CN106775579B (zh) 2016-11-29 2016-11-29 基于可配置技术的浮点运算加速单元

Publications (2)

Publication Number Publication Date
CN106775579A CN106775579A (zh) 2017-05-31
CN106775579B true CN106775579B (zh) 2019-06-04

Family

ID=58898564

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611073974.8A Active CN106775579B (zh) 2016-11-29 2016-11-29 基于可配置技术的浮点运算加速单元

Country Status (1)

Country Link
CN (1) CN106775579B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107133012B (zh) * 2017-04-27 2020-06-16 湖南省瞬渺通信技术有限公司 一种高速自定义浮点复数除法器
CN108196881B (zh) * 2017-12-01 2020-10-16 北京时代民芯科技有限公司 一种基于可配置技术的定点运算加速单元
CN109783054B (zh) * 2018-12-20 2021-03-09 中国科学院计算技术研究所 一种rsfq fft处理器的蝶形运算处理方法及系统
CN111158756B (zh) * 2019-12-31 2021-06-29 百度在线网络技术(北京)有限公司 用于处理信息的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360281A (zh) * 2011-10-31 2012-02-22 中国人民解放军国防科学技术大学 用于微处理器的多功能定点mac运算装置
CN102520903A (zh) * 2011-12-13 2012-06-27 中国科学院自动化研究所 支持定浮点可重构的长度可配置的向量最大/最小值网络
CN104317774A (zh) * 2014-10-14 2015-01-28 中国航天科技集团公司第九研究院第七七一研究所 利用处理器浮点单元进行复数乘和蝶形运算的装置和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102360281A (zh) * 2011-10-31 2012-02-22 中国人民解放军国防科学技术大学 用于微处理器的多功能定点mac运算装置
CN102520903A (zh) * 2011-12-13 2012-06-27 中国科学院自动化研究所 支持定浮点可重构的长度可配置的向量最大/最小值网络
CN104317774A (zh) * 2014-10-14 2015-01-28 中国航天科技集团公司第九研究院第七七一研究所 利用处理器浮点单元进行复数乘和蝶形运算的装置和方法

Also Published As

Publication number Publication date
CN106775579A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
CN106775579B (zh) 基于可配置技术的浮点运算加速单元
CN107729989B (zh) 一种用于执行人工神经网络正向运算的装置及方法
CN105468335B (zh) 流水级运算装置、数据处理方法及片上网络芯片
CN106951211B (zh) 一种可重构定浮点通用乘法器
CN104375802B (zh) 一种乘除法器及运算方法
CN104111816A (zh) Gpdsp中多功能simd结构浮点融合乘加运算装置
CN104268122A (zh) 一种可变点数的浮点fft处理器
CN103955447B (zh) 基于dsp芯片的fft加速器
CN102629189A (zh) 基于fpga的流水浮点乘累加方法
CN107305484A (zh) 一种非线性函数运算装置及方法
CN104461449A (zh) 基于向量指令的大整数乘法实现方法及装置
CN105607889A (zh) Gpdsp共享乘法器结构的定点浮点运算部件
CN107544942A (zh) 一种快速傅里叶变换的vlsi设计方法
CN109284083A (zh) 一种乘法运算装置及方法
CN108762719B (zh) 一种并行广义内积重构控制器
CN107092462B (zh) 一种基于fpga的64位异步乘法器
CN116167425B (zh) 一种神经网络加速方法、装置、设备及介质
CN107688469A (zh) 兼顾通用指令和专用指令的可重构计算装置
US20070198811A1 (en) Data-driven information processor performing operations between data sets included in data packet
CN108196881A (zh) 一种基于可配置技术的定点运算加速单元
CN105975436A (zh) 一种SoC系统中通用可配置加速单元的IP电路
CN111930674B (zh) 乘累加运算装置及方法、异构智能处理器及电子设备
CN107291420A (zh) 整合算术及逻辑处理的装置
CN102693118A (zh) 一种标量浮点运算加速器
CN202281998U (zh) 一种标量浮点运算加速器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant