首页 / 专利库 / 电脑零配件 / 计算机系统 / 硬件 / 中央处理器 / 算术逻辑单元 / 用以切换可配置逻辑单元的设备及方法

用以切换可配置逻辑单元的设备及方法

阅读:807发布:2020-05-12

专利汇可以提供用以切换可配置逻辑单元的设备及方法专利检索,专利查询,专利分析的服务。并且本文中所描述的实例包含系统及方法,其包含一种设备,所述设备包括多个可配置逻辑单元及多个切换器,其中每一切换器耦合到所述多个可配置逻辑单元中的至少一个可配置逻辑单元。所述设备进一步包含指令寄存器,所述指令寄存器经配置以基于将在所述多个可配置逻辑单元当中实施的计算将多个切换指令中的相应切换指令提供到每一切换器。举例来说,所述切换指令可包含:分配所述多个可配置逻辑单元来执行所述计算,且激活所述切换器的输入及所述切换器的输出以耦合至少第一可配置逻辑单元及第二可配置逻辑单元。在各种 实施例 中,可配置逻辑单元可包含 算术逻辑单元 ALU、位操纵单元BMU及乘法器-累加器单元MAC。,下面是用以切换可配置逻辑单元的设备及方法专利的具体信息内容。

1.一种设备,其包括:
多个可配置逻辑单元;
多个切换器,每一切换器耦合到所述多个可配置逻辑单元中的至少一个可配置逻辑单元;及
指令寄存器,其经配置以基于将在所述多个可配置逻辑单元当中实施的计算而将多个切换指令中的相应切换指令提供到每一切换器。
2.根据权利要求1所述的设备,其进一步包括:
互连件,其耦合到所述指令寄存器,
其中所述指令寄存器经配置以从所述互连件接收用以在所述多个可配置逻辑单元当中执行所述计算的指令。
3.根据权利要求2所述的设备,其中用以在所述多个可配置逻辑单元当中执行所述计算的所述指令包括:
基于所述多个可配置逻辑单元的一部分中的每一者的可用性状态而分配所述多个可配置逻辑单元的所述部分来执行所述计算;
经由所述多个所述切换器的一部分而确定穿过所述多个可配置逻辑单元的所述部分的路由路径;及
激活所述多个所述切换器的所述部分的相应输入及输出。
4.根据权利要求3所述的设备,其中分配所述多个可配置逻辑单元的所述部分来执行所述计算包括:
将所述可配置逻辑单元部分中的至少一个可配置逻辑单元配置成执行将在所述多个可配置逻辑单元当中实施的所述计算的特定子计算。
5.根据权利要求3所述的设备,其中经由所述多个所述切换器的所述部分而确定穿过所述多个可配置逻辑单元的所述部分的所述路由路径包括:
基于将在所述多个可配置逻辑单元当中实施的所述计算而在所述多个可配置逻辑单元的所述部分当中识别所述路由路径。
6.根据权利要求5所述的设备,其中所述路由路径包含将所述多个可配置逻辑单元的所述部分的最终可配置逻辑单元的输出耦合到所述多个可配置逻辑单元的所述部分的初始可配置逻辑单元的输入。
7.根据权利要求3所述的设备,其中多个切换指令中去往每一切换器的所述相应切换指令各自包括用以经由耦合到所述相应切换器的输入的可配置逻辑单元及耦合到所述相应切换器的输出的另一可配置逻辑单元而激活所述路由路径的指令。
8.根据权利要求3所述的设备,其中多个切换指令中去往每一切换器的所述相应切换指令各自包括基于将在所述多个可配置逻辑单元当中实施的所述计算对将通过所述多个可配置逻辑单元的所述部分执行的迭代次数的指示。
9.根据权利要求3所述的设备,其中将在所述多个可配置逻辑单元当中实施的所述计算包括平方根倒数运算,且其中穿过所述多个可配置逻辑单元的所述部分的所述路由路径经由实施为算术逻辑单元ALU的第一可配置逻辑单元及实施为乘法器-累加器单元MAC的第二可配置逻辑单元而提供一路径。
10.一种集成电路,其包括:
多个可配置逻辑单元,其包含第一可配置逻辑单元及第二可配置逻辑单元;
切换器,其至少将所述第一可配置逻辑单元耦合到所述第二可配置逻辑单元;及指令寄存器,其经配置以基于将在至少所述第一可配置逻辑单元及所述第二可配置逻辑单元中实施的计算而将切换指令提供到所述切换器。
11.根据权利要求10所述的集成电路,其中将所述切换指令提供到所述切换器包含在由所述切换器执行时经配置以致使所述切换器执行以下操作的指令,所述操作包括:
分配所述多个可配置逻辑单元来执行所述计算;及
激活所述切换器的输入及所述切换器的输出以耦合至少所述第一可配置逻辑单元及所述第二可配置逻辑单元。
12.根据权利要求11所述的集成电路,其中所述切换器的所述输入提供所述第一可配置逻辑单元的输出,且其中所述切换器的所述输出提供所述第二可配置逻辑单元的输入。
13.根据权利要求11所述的集成电路,其中分配所述多个可配置逻辑单元包括:
识别耦合到所述切换器的每一可配置逻辑单元的状态;及
确定所述第一可配置逻辑单元及所述第二可配置逻辑单元的所述相应状态指示用以执行所述计算的每一可配置逻辑单元的可用性。
14.根据权利要求10所述的集成电路,其中所述第一可配置逻辑单元包括算术逻辑单元ALU,且其中所述第二可配置逻辑单元包括位操纵单元BMU。
15.根据权利要求10所述的集成电路,其中所述第一可配置逻辑单元包括算术逻辑单元ALU,且其中所述第二可配置逻辑单元包括乘法器-累加器单元MAC。
16.根据权利要求10所述的集成电路,其中将在至少所述第一可配置逻辑单元及所述第二可配置逻辑单元中实施的所述计算包括伽罗瓦域乘法计算、伽罗瓦域除法计算或平方根倒数计算中的至少一者。
17.根据权利要求10所述的集成电路,其中所述指令寄存器经配置以从互连件接收用以在所述多个可配置逻辑单元当中执行所述计算的指令。
18.根据权利要求10所述的集成电路,其进一步包括:
额外切换器,其耦合到至少所述第二可配置逻辑单元及第三可配置逻辑单元,其中来自所述互连件的用以在所述多个可配置逻辑单元当中执行所述计算的所述指令包括用以为耦合到所述多个可配置逻辑单元中的至少一者的每一切换器提供多个切换指令的指令,所述切换器包含所述切换器及所述额外切换器。
19.一种方法,其包括:
将多个可配置逻辑单元中的至少两个可配置逻辑单元分配成执行将在所述多个可配置逻辑单元当中实施的计算;
经由多个切换器中的至少一个切换器而确定穿过所述至少两个可配置逻辑单元的路由路径;及
将切换指令提供到所述至少一个切换器以激活所述至少一个切换器的输入及输出。
20.根据权利要求19所述的方法,其中确定穿过所述至少两个可配置逻辑单元的所述路由路径包括:识别穿过所述至少两个可配置逻辑单元的包含将所述至少两个可配置逻辑单元中的一者的输出耦合到所述至少两个可配置逻辑单元中的另一者的输入的所述路由路径。
21.根据权利要求19所述的方法,其中将所述至少两个可配置逻辑单元分配成执行计算:
将所述至少两个可配置逻辑单元中的每一者配置成执行将在所述多个可配置逻辑单元当中实施的所述计算的特定子计算。
22.根据权利要求21所述的方法,其中将在所述多个可配置逻辑单元当中实施的所述计算包括伽罗瓦域乘法计算、伽罗瓦域除法计算或平方根倒数计算中的至少一者,且其中所述特定子计算包括加法、乘法-累加或位操纵中的至少一者。
23.一种系统,其包括:
至少一个处理单元,所述至少一个处理单元包括:
集成电路,其包含多个可配置逻辑单元;及
存储器,其经配置以存储用于配置所述集成电路的切换指令;
用于至少一个应用程序的可执行指令,其至少部分地由所述至少一个处理单元执行;

指令产生器,其耦合到所述至少一个处理单元且经配置以基于用于至少一个应用程序的所述可执行指令而提供所述切换指令。
24.根据权利要求23所述的系统,其中所述集成电路包含多个切换器,且其中所述切换指令指定所述多个切换器的设定。
25.根据权利要求23所述的系统,其中所述指令产生器经配置以至少部分地基于由用于所述至少一个应用程序的所述可执行指令使用的功能性而提供所述切换指令。

说明书全文

用以切换可配置逻辑单元的设备及方法

背景技术

[0001] 存在许多处理架构来实现数字信号处理(DSP)能,例如以组合方式利用的加法器、乘法器及其它算术逻辑单元(ALU)。举例来说,用于无线通信的数字信号处理(例如,数字基带处理或数字前端实施方案)可使用硬件(例如)计算平台而实施。多媒体处理及数字射频(RF)处理可使用专用集成电路(ASIC)而实施。因此,多种硬件平台可用于实施数字信号处理,例如ASIC、实施为现场可编程阵列(FPGA)的一部分的数字信号处理器(DSP)或单芯片系统(SoC)。然而,这些解中的每一者通常需要实施硬件实施方案特有的定制信号处理方法。定制构建的此类架构可无法(或无法高效地)实施并非专门为所述硬件架构设计的其它应用。附图说明
[0002] 图1到2是根据本发明实施例的实例性集成电路的框图
[0003] 图3是根据本发明的实施例的实例性FPGA的框图。
[0004] 图4是根据本发明的实施例的切换可配置逻辑单元(CLU)的实例性方法的流程图
[0005] 图5是根据本文中所描述的实例而布置的系统的示意性图解。

具体实施方式

[0006] 下文陈述某些细节以提供对本发明的实施例的充分理解。然而,所属领域的技术人员应清楚,可在不具有各种这些特定细节的情况下实践本发明的实施例。在一些例子中,未详细展示众所周知的无线通信组件、电路、控制信号、时序协议及软件操作以便避免使本发明的所描述实施例不必要地模糊。
[0007] 本文中所描述的实例性系统及方法包含基于将在耦合到切换器的输入及输出的多个可配置逻辑单元当中实施的计算为各种切换器提供切换指令的集成电路,例如FPGA。以此方式提供切换指令可允许集成电路中的可配置逻辑单元的高效分配,且可改进可涉及迭代或重复计算的计算的处理时间。举例来说,此等切换指令可改进无线通信处理、DSP运算、机器学习、张量处理、矩阵运算或人工智能运算的处理时间;举例来说,以用于通过用于相应处理任务的可配置逻辑单元的高效分配而更高效地执行此类运算及/或处理。举例来说,如果待实施的计算是快速傅里叶变换(FFT),那么可选择穿过多个可配置逻辑单元的一部分的路由路径来实现(举例来说)算术逻辑单元(ALU)及乘法器-累加器单元(MAC)的布置,此可计算与FFT或QR分解相关联的平方根倒数运算。举例来说,可使用QR分解来将矩阵A分解成正交矩阵Q及上三形矩阵R的乘积。举例来说,可使用QR分解来求解最小二乘问题。
在FPGA架构的一些当前实施方案中,处理此平方根倒数运算的DSP单元可实施于专门为此计算而配置的特定电路中。举例来说,程序员可在FPGA的特定部分中配置特定电路以将FPGA配置成在被类似FFT运算的运算调用时执行此计算。然而,此类配置(其可为预先设计的)不允许FPGA框架(举例来说)在被FPGA处的进程内运算调用时灵活地动态重新分配可配置逻辑单元的耦合或确定路由路径。因此,有利地,可提供一集成电路(例如,可编程逻辑装置(PLD)),使得可激活所述集成电路内的相应切换器的输入及输出以形成用于将在多个可配置逻辑单元当中实施的计算的路由路径。举例来说,所述计算在集成电路处所实施的过程或电路期间可被动态地调用。
[0008] 另外,一些运算可包含计算的迭代处理(例如,运算的重复使用)。举例来说,FFT或QR分解过程的平方根倒数运算可包含迭代处理,使得所述迭代处理增大平方根倒数计算的解的精确性。此平方根运算中的迭代处理还可促进平方反比运算的有效解。因此,有利地,可提供一集成电路(例如,可编程逻辑装置(PLD)),使得可激活所述集成电路内的相应切换器的输入及输出,以便可利用那些经激活输入及输出的所耦合可配置逻辑单元而执行迭代计算。如本文中所描述,此集成电路还可包含指定将迭代地执行的计算的迭代次数的切换指令;举例来说,在切换器处接收到针对所述运算的输入时。所述迭代处理可通过接收输入的初始切换器与将反馈(例如,中间处理结果)提供到初始切换器的最后切换器之间的直接耦合而促进。
[0009] 图1是根据本发明的实施例的实例性集成电路100的框图。实例性集成电路100包含至少一个可配置逻辑105。可配置逻辑块105可包含作为集成电路100的一部分的执行运算的电路元件或单个电路的布置。在一些实施例中,可配置逻辑块105可实施针对集成电路的各种功能性,例如针对无线通信处理、DSP运算、机器学习应用、张量处理、矩阵运算或人工智能运算的各种运算的计算处理。可配置逻辑块105可经配置以实施在集成电路100上执行的运算的特定计算或子计算。如图1中所描绘,可配置逻辑块105可包含用于经由切换器110a的输入而耦合到可配置逻辑块105的输入路径107的输入端口。可配置逻辑块105可包含用于经由切换器140的输出而耦合到可配置逻辑块105的输出路径140的输出端口。集成电路100可为可配置逻辑块105提供输入路径107以用于处理在集成电路100上执行的运算。可从可配置逻辑块105提供输出路径140,所述输出路径可在由可配置逻辑块105进行的处理完成后即刻提供数据。输入路径107可接收用于在可配置逻辑块105中处理的一或多个操作数。输出路径140可提供一或多个操作数以供经由可配置逻辑块105的反馈线路142而进一步处理或用于输入到在集成电路100上执行的运算。此类输入路径107及输出路径140可促进在集成电路100中执行的运算的处理;举例来说,通过利用可配置逻辑块105中的逻辑单元120a-120c、130a-130c的高效分配而促进。
[0010] 可配置逻辑块105包含切换器110a-110c及逻辑单元120a-120c、130a-130c。如所描绘,切换器110a-110c的输入及输出耦合到逻辑单元120a-120c、130a-130c的各种相应输出及输入。举例来说,切换器110a的第一输出耦合到ALU 120a的输入;切换器110a的第二输出耦合到MAC 120b的输入;且切换器110a的第三输出耦合到位操纵单元(BMU)120c的输入。继续在所述实例中,ALU 120a的输出耦合到切换器110b的第一输入;且MAC 120b的输出耦合到切换器110b的第二输入;且BMU 130c的输出耦合到切换器110b的第三输入。作为另一实例,切换器110b的第一输出耦合到ALU 130a的输入;切换器110b的第二输出耦合到MAC 
130b的输入;且切换器110b的第三输出耦合到BMU 130c的输入。继续在此实例中,ALU 130a的输出耦合到切换器110c的第一输入;且MAC 130b的输出耦合到切换器110c的第二输入;
且BMU 130c的输出耦合到切换器110c的第三输入。
[0011] 一般描述,ALU 120a、130b、MAC 120b、130b及BMU 120c、130c可为可配置逻辑单元(CLU)的实施方案。可配置逻辑单元可执行多种算术、矩阵、张量及/或DSP运算。CLU可为执行此运算的电路元件布置或单个电路。CLU可用于实施加法器单元(例如,ALU 120a、130b)、乘法器单元、累加器单元、乘积累加单元(例如,MAC 120b、130b)、进位输入单元、进位输出单元、位移位器、配置有“与非”门的逻辑单元,及/或可处理DSP运算的一般任何类型的算术逻辑单元或DSP逻辑单元。一或多个CLU可组合地工作以经由那些相应CLU的输入及输出端口而接收及处理操作数。
[0012] ALU 120a、130b可为可配置逻辑单元的特定实施方案。ALU 120a、130b可从用于加法运算的相应切换器110a、110b接收一或多个操作数。举例来说,ALU 120a可从切换器110a接收一操作数以与另一操作数相加。还可从切换器110a接收另一操作数;或在一些实施方案中,可从ALU 120a的寄存器或可配置逻辑块105的查找表检索另一操作数。ALU 120a将加法处理结果输出到切换器110b。
[0013] MAC 120b、130b可为可配置逻辑单元的特定实施方案。MAC 120b、130b可从用于加法运算的相应切换器110a、110b接收一或多个操作数。举例来说,MAC 120b可从切换器110a接收一操作数以与其它操作数乘以及累加。在所述实例中,MAC 120b可执行乘积累加运算,使得两个操作数A与B相乘且接着与C相加而产生新版本的C,所述新版本的C为MAC 120b的输出。还可从切换器110a接收其它操作数;或在一些实施方案中,可从MAC 120b的寄存器或可配置逻辑块105的查找表检索另一操作数。MAC 120b将乘积累加处理结果输出到切换器110b。
[0014] BMU 120c、130c可为可配置逻辑单元的特定实施方案。BMU 120c、130c可从用于位操纵运算的相应切换器110a、110b接收一或多个操作数。位操纵运算可包含对操作数的一或多个位的操纵。此类位操纵可包含:对位进行设定、对位进行清除、对位进行双态切换、对位进行测试、对位进行移位或对位执行按位运算。按位运算可包含对位进行的“与”、“或”、“异或”或者“非”逻辑运算。举例来说,BMU 120a可从切换器110a接收一操作数以更改所述操作数的位。在所述实例中,BMU 120a可执行对操作数的一或多个位的设定,使得所述操作数被设定为零向量(例如,将所有位设定为0)或单位向量(例如,将所有位设定为1)。BMU 120a将位操纵处理结果输出到切换器110b。
[0015] 可配置逻辑块105还包含指令寄存器150,所述指令寄存器经配置以基于将在ALU120a、130a、MAC 120b、130b及BMU 120c、130c中的至少一些当中实施的计算而将相应切换指令提供到每一切换器110a-110c。指令寄存器150可从集成电路100接收用以执行计算的此类指令(或表示切换指令的指令)。指令寄存器150可(举例来说)从耦合到可配置逻辑块105的互连件(例如,图3中的耦合可配置逻辑块305a-305f的互连件302)接收此类指令。在一些实例中,指令寄存器150可从在集成电路100上执行的运算或与集成电路100交互的用户接收计算模式选择。计算模式选择可指示用于可配置逻辑块105的特定计算模式。切换指令可利用计算模式选择来分配可配置逻辑块105的相应ALU 120a、130a、MAC 120b、130b及BMU 120c、130c以用于处理来自输入数据路径107的数据以产生提供到输出数据路径140的数据或反馈142。计算模式可基于将在ALU 120a、130a、MAC120b、130b及BMU 120c、130c当中实施的计算使用可存储模式指示符的指令寄存器150而实施。针对待实施的计算,指令寄存器150可利用可配置逻辑块105的计算模式来确定在ALU 120a、130a、MAC 120b、130b及BMU 120c、130c当中的路由路径。指令寄存器150可识别ALU 120a、130a、MAC 120b、130b及BMU 120c、130c中的每一者的可用性状态。举例来说,如果ALU 130a正执行在可配置逻辑块
105上执行的另一过程的计算,那么ALU 130a可为不可用的。如果ALU 120a未执行可配置逻辑块105上的计算或未经调度以执行可配置逻辑块105上的计算,那么ALU 120a可为可用的。
[0016] 针对待实施的计算,指令寄存器150可在ALU 120a、130a、MAC 120b、130b及BMU120c、130c当中分配特定任务。在一些实例中,执行切换指令可包含将ALU 120a、130a、MAC 120b、130b及BMU 120c、130c分配成根据计算模式而操作。执行切换指令可包含将选择信号提供到切换器110a-110c,以指定针对所述特定计算将激活相应切换器的哪些输入及输出。举例来说,如果待实施的计算是平方根倒数运算,其可与FFT运算或QR分解相关联,那么可确定穿过ALU 120a、130a、MAC 120b、130b及BMU 120c、130c的路由路径以执行平方根倒数运算。因此,切换指令可提供可激活可配置逻辑块105的相应输入及输出的选择信号以实施此计算。在平方根倒数运算的实例中,此类切换指令可包含:指示将激活切换器110a的耦合到ALU 120a的输入的第一输出的选择信号;以及指示将激活ALU 120a的耦合到切换器110b的第一输入的输出的另一选择信号。举例来说,此类选择信号可从指令寄存器150提供到切换器110a、110b。切换指令可进一步包含:可指示将激活切换器110b的耦合到MAC 130b的输入的第二输出的选择信号;以及指示将激活MAC 130b的耦合到切换器110c的第二输入的输出的另一选择信号。举例来说,此类选择信号可从指令寄存器150提供到相应切换器
110b、110c。
[0017] 作为指令寄存器150在ALU 120a、130a、MAC 120b、130b及BMU 120c、130c当中进行的分配的另一实例,如果待实施的计算为伽罗瓦域(Galois-Field)除法,那么可提供实施伽罗瓦域除法的全部或一部分的穿过ALUS 120a、130a、MAC 120b、130b及BMU120c、130c的路由路径。举例来说,切换指令可提供激活可配置逻辑块105的相应输入及输出以实施伽罗瓦域除法的选择信号。此类切换指令可包含:指示将激活切换器110a的耦合到ALU 120a的输入第一输出的选择信号;以及指示将激活ALU 120a的耦合到切换器110b的第一输入的输出的另一选择信号。举例来说,此类选择信号可从指令寄存器150提供到切换器110a、110b。切换指令可进一步包含:指示将激活切换器110b的耦合到BMU 130c的输入的第三输出的选择信号;以及指示激活BMU 130的耦合到切换器110c的第三输入的输出的另一选择信号。举例来说,此类选择信号可从指令寄存器150提供到相应切换器110b、110c。
[0018] 在提供切换指令中,指令寄存器150还可包含对通过ALU 120a、130a、MAC 120b、130b及BMU 120c、130c的经分配以执行计算的部分将执行的迭代次数的指示。在各种实施例中,指令寄存器150处所接收的计算模式选择中可指定迭代次数。迭代次数可基于将在ALU 120a、130a、MAC 120b、130b及BMU 120c、130c当中实施的所述计算。在迭代中,可配置逻辑块105可针对所述计算模式利用反馈线路142将中间处理结果从所确定路由路径的最终可配置逻辑单元往回提供到所述同一所确定路由路径的初始可配置逻辑单元。
[0019] 在一些实例中,执行切换指令可包含提供包含迭代次数的选择信号以根据针对所述计算的所指定迭代而操作。执行切换指令可包含将选择信号提供到切换器110a-110c,以指定针对ALU 120a、130a、MAC 120b、130b及BMU 120c、130c的所分配部分将调度多少操作数执行。举例来说,如果待实施的计算为平方根倒数运算,那么切换指令可包含:指示将操作数提供到切换器110a的耦合到ALU 120a的输入的第一输出的迭代次数的选择信号;以及指示从ALU 120a的耦合到切换器110b的第一输入的输出接收操作数的迭代次数的另一选择信号。举例来说,此类选择信号可从指令寄存器150提供到切换器110a、110b。切换指令可进一步包含:指示将操作数提供到切换器110b的耦合到MAC 130b的输入的第二输出的相同迭代次数的选择信号;以及指示从MAC 130b的耦合到切换器110c的第二输入的输出接收操作数的相同迭代次数的另一选择信号。举例来说,此类选择信号可从指令寄存器150提供到相应切换器110b、110c。在一些实例中,通过此路由进行的迭代次数可为3次、10次、128次、256次或512次迭代。在迭代中,可配置逻辑块105可利用反馈线路142,以经由所述反馈线路将中间处理结果从MAC 130b经由切换器110c往回提供到ALU 120a。迭代次数可指定利用反馈线路的迭代次数。
[0020] 作为在切换指令中提供迭代次数的另一实例,如果待实施的计算为伽罗瓦域运算,例如乘法,那么切换指令可包含:指示将操作数提供到切换器110a的耦合到ALU 120a的输入的第一输出的迭代次数的选择信号;以及指示从ALU 120a的耦合到切换器110b的第一输入的输出接收操作数的迭代次数的另一选择信号。举例来说,此类选择信号可从指令寄存器150提供到切换器110a、110b。切换指令可进一步包含:指示将操作数提供到切换器110b的耦合到BMU 130c的输入的第三输出的相同迭代次数的选择信号;以及指示从BMU 
130的耦合到切换器110c的第三输入的输出接收操作数的相同迭代次数的另一选择信号。
举例来说,此类选择信号可从指令寄存器150提供到相应切换器110b、110c。在一些实例中,通过此路由进行的迭代次数可为2次、10次、128次、256次或512次迭代。在迭代中,可配置逻辑块105可利用反馈线路142,以经由所述反馈线路将中间处理结果从BMU 130c经由切换器
110c往回提供到ALU 120a。
[0021] 有利地,图1的集成电路100可激活所述集成电路内的相应切换器的输入及输出,以形成用于将在ALU 120a、130a、MAC 120b、130b及BMU 120c、130c当中实施的计算的路由路径。因此,所述计算在集成电路100处所实施的过程或电路期间可被动态地调用,其中切换指令为切换器110a-110c提供选择信号以在可配置逻辑块105中实施所述计算。虽然是在集成电路的脉络中进行描述,但可了解,可配置逻辑块105可包含于例如ASIC、FPGA或SoC等任何硬件平台中。
[0022] 图2是根据本发明的实施例的实例性集成电路200的框图。实例性集成电路200包含至少一个可配置逻辑块205。图2的类似地编号的元件包含与图1的那些编号的元件相似的功能性。举例来说,指令寄存器250可类似图1的指令寄存器150而操作及配置。可配置逻辑块205包含CLU 220a-220c、230a-230c。如本文中所描述,例如CLU 220a-220c、230a-230c的可配置逻辑单元可执行多种算术、矩阵、张量或DSP运算。CLU 220a-220c、230a-230c中的任一者可用于实施加法器单元(例如,类似ALU 120a、130b)、乘法器单元、累加器单元、乘积累加单元(例如,类似MAC 120b、130b)、进位输入单元、进位输出单元、位移位器、位操纵单元(例如,类似BMU 120c、130c)、配置有“与非”门的逻辑单元,及/或可处理DSP运算的一般任何类型的算术逻辑单元或DSP逻辑单元。
[0023] 指令寄存器250可根据将在CLU 220a-220c、230a-230c中的至少一些当中实施的计算而将相应切换指令提供到每一切换器210a-210c。指令寄存器250可从集成电路200接收用以执行计算的此类指令(或表示切换指令的指令)。指令寄存器250可(举例来说)从耦合到可配置逻辑块205的互连件(例如,图3中的耦合可配置逻辑块305a-305f的互连件302)接收此类指令。指令寄存器250一些实例可接收计算模式选择,举例来说,来自在集成电路200上执行的运算或与集成电路200交互的用户的计算模式选择。计算模式选择可指示用于可配置逻辑块205的特定计算模式。切换指令可利用计算模式选择来分配可配置逻辑块205的相应CLU 220a-220c、230a-230c以用于处理输入数据路径207以产生输出数据路径240或反馈242。计算模式可基于将在CLU 220a-220c、230a-230c当中实施的计算使用存储模式指示符的指令寄存器250而实施。针对待实施的计算,指令寄存器250可利用可配置逻辑块205的计算模式来确定在CLU 220a-220c、230a-230c当中的路由路径。
[0024] 执行切换指令可包含将选择信号提供到切换器210a-210c,以指定针对所述特定计算将激活相应切换器的哪些输入及输出。举例来说,计算可包含至少加法运算及乘法运算。加法运算及乘法运算可称为所述计算的子计算。穿过CLU 220a-220c、230a-230c的路由路径可经确定为用以执行相应加法及乘法运算的CLU 220b及CLU 230b的分配。因此,切换指令可提供激活可配置逻辑块205的相应输入及输出以实施此计算的选择信号。在包含加法及乘法运算的计算的实例中,此类切换指令可包含:指示将激活切换器210a的耦合到CLU 220b的输入的第二输出的选择信号;以及指示将激活CLU 220b的耦合到切换器210b的第二输入的输出的另一选择信号。举例来说,此类选择信号可从指令寄存器250提供到切换器
210a、210b。切换指令可进一步包含:指示将激活切换器210b的耦合到CLU 220c的输入的第二输出的选择信号;以及指示将激活CLU 220c的耦合到切换器110c的第二输入的输出的另一选择信号。举例来说,此类选择信号可从指令寄存器150提供到相应切换器110b、110c。在各种实施例中,可利用切换器210a-210c的当前未被激活的输入及输出当中的输入及输出。
选择信号还可指示将利用切换器的另一输出或输入而非已激活的路径。因此,在CLU 220c的耦合到切换器110c的第二输入的输出的所描绘路径的实例中,替代地,选择信号可指示将CLU 220c的输出耦合到切换器110c的第三输入。
[0025] 指令寄存器250可将使CLU 220a-220c、230a-230c中的至少一些配置成执行将在CLU220a-220c、230a-230c当中实施的计算的特定子计算的相应切换指令提供到每一切换器210a-210c。举例来说,第一CLU 220a可从切换器接收要被配置为加法器单元的指令,所述加法器单元使从切换器210a接收的一操作数与另一操作数相加。还可从切换器110a接收其它操作数;或在一些实施方案中,可从CLU 220a的寄存器或可配置逻辑块205的查找表检索另一操作数。第二CLU 220b可从切换器接收要被配置为乘法器单元的指令,所述乘法器单元使经由切换器210b的经激活第二输入及第二输出而接收的来自第一CLU 220a的加法运算的结果与另一操作数相乘。
[0026] 在提供切换指令的过程中,指令寄存器250还可包含对将通过CLU 220a-220c、230a-230c的经分配以执行计算的部分执行的迭代次数的指示。在各种实施例中,指令寄存器250处所接收的计算模式选择中可指定迭代次数。迭代次数可基于将在CLU220a-220c、
230a-230c当中实施的所述计算。在迭代中,可配置逻辑块205可针对所述计算模式利用反馈线路242将中间处理结果从所确定路由路径的最终可配置逻辑单元往回提供到同一所确定路由路径的初始可配置逻辑单元。
[0027] 虽然是在包含加法及乘法子计算的计算的实例的脉络中进行描述,但可了解,CLU220a-220c、230a-230c可执行多种计算,其中将在CLU 220a-220c、230a-230c当中实施子计算以执行所述计算。此类计算可包含平方根倒数运算、伽罗瓦域除法、伽罗瓦域乘法,或在用于执行无线通信处理、DSP运算、机器学习、张量处理、矩阵运算或人工智能运算的集成电路中执行的任何其它计算。此类运算及/或处理可通过CLU 220a-220c、230a-230c的针对处理任务的高效分配而更高效地执行。虽然图2描绘两列CLU220a-220c、230a-230c及三个切换器110a-110c,但可了解,(举例来说)在集成电路200上的物理空间允许的情况下,可配置逻辑块205中可包含任何数目列CLU 220a-220c、230a-及任何数目个切换器110a-110c。
[0028] 图3是根据本发明的实施例的实例性FPGA 300的框图。实例性FPGA 300是具有例如可配置逻辑块105或可配置逻辑块205的可配置逻辑块的集成电路的实例。FPGA 300包含互连件302,其中可配置逻辑块305a-305f及I/O块310a-310j耦合到所述互连件。虽然图3中仅描绘八个可配置逻辑块305a-305f及十个I/O块310a-310j,但可了解,FPGA 300可包含任何数目个可配置逻辑块及I/O块310a-310j。FPGA 300可使可配置逻辑块305a-305f级联在一起,使得可配置逻辑块305a-305f可提供至少一个输出路径作为去往另一可配置逻辑块的至少一个输入路径。可配置逻辑块305a-305f可使用可编程逻辑块而实施,所述可编程逻辑块例如存储指令的计算机可读媒体,或包括例如一或多个“与非”门的一或多个逻辑单元的逻辑电路。可配置逻辑块305a-305f可跨越逻辑行及列与I/O块310a-310j级联,所述I/O块形成用于连接到FPGA 300外部的相应行及列的边界。可配置逻辑块305a-305f可实施执行各种计算的可配置逻辑块,例如可配置逻辑块105或205。经配置以操作为可配置逻辑块105或205的某些可配置逻辑块305a-305f可为在FPGA 300中经级联以执行单个或多个计算的逻辑上相似或类似的电路。由可配置逻辑块105或205执行的计算可个别地或以组合方式改变。在一个实施方案中,FPGA 300可包含实施为可配置逻辑块105或205的若干个可配置逻辑块305a-305f,以执行平方根倒数运算。
[0029] 图4是根据本文中所描述的实例的方法400的流程图。实例性方法400可使用(举例来说)图1中的集成电路100或者图1到3中所描绘及/或本文中所描述的系统中的任一系统或所述系统的组合来实施。块408-424中所描述的运算可作为控制指令而存储于集成电路(例如,集成电路100)的计算机可读媒体或耦合到集成电路(例如,集成电路100)的计算机可读媒体或者集成电路可存取的存储器中。
[0030] 实例性方法400可开始切换CLU的方法。方法400可包含块408,块408叙述“将至少两个可配置逻辑单元分配成执行计算”。指令寄存器可接收指示用于可配置逻辑块的特定计算模式的计算模式选择。切换指令可利用计算模式选择来分配可配置逻辑块的相应CLU以用于处理输入数据以产生输出数据及/或反馈。指令寄存器可识别CLU中的每一者的可用性状态。举例来说,如果CLU正执行在可配置逻辑块上执行的另一过程的计算,那么所述CLU可为不可用的。如果CLU未执行可配置逻辑块上的计算或未经调度以执行可配置逻辑块上的计算,那么CLU可为可用的。块408后面可接着为块412,块412叙述“将至少两个可配置逻辑单元中的每一者配置成执行特定子计算”。由于从块408到块412是用虚线描绘,因此块412可为任选步骤。指令寄存器可经配置以将相应切换指令提供到可配置逻辑块的一些切换器,使得将CLU中至少一些CLU配置成执行将在CLU当中实施的计算的特定子计算。举例来说,第一CLU可从切换器接收要被配置为具有可用于所述CLU的特定功能性的CLU的指令,且第二CLU可从另一切换器接收要被配置为具有可用于所述CLU的特定功能性的CLU或配置为促进第一CLU的功能性的CLU的指令。
[0031] 块412后面可接着为块416,块416叙述“经由至少一个切换器而确定穿过至少两个可配置逻辑单元的路由路径”。一旦已识别可用性状态,指令寄存器便可针对待实施的计算而确定在CLU当中的路由路径。举例来说,计算模式选择可指示将由CLU执行的若干功能性以及用以基于那些功能性而执行计算的若干CLU。计算模式选择还可指示为计算所述计算的最终处理结果将执行的迭代次数。指令寄存器可利用此信息至少基于所述计算或可配置逻辑块中的CLU的可用性状态而确定在CLU当中的路由路径。块416后面可接着为块420,块420叙述“将切换指令提供到至少一个切换器以激活至少一个切换器的输入及输出”。指令寄存器可提供包含选择信号的切换指令,所述选择信号激活切换器的相应输入及输出以实施所述计算。指令寄存器可提供包含对通过CLU的经分配以执行计算的部分将执行的迭代次数的指示的切换指令。切换指令的选择信号还可指示将利用切换器的另一输出或输入而非已激活的耦合。块420后面可接着为块424,块424可结束方法400。
[0032] 所描述实例性方法400中所包含的块是出于图解目的。在一些实施例中,所述块可以不同次序执行。在一些其它实施例中,可消除各种块。在仍其它实施例中,可将各种块划分成补充其它块的额外块,或可将各种块一处组合成更少块。涵盖这些特定块的其它变化形式,包含块的次序的改变、被分成或组合成其它块的块的内容的改变等。
[0033] 图5是根据本文中所描述的实例而布置的系统的示意性图解。系统506包含处理单元508,所述处理单元可包含具有可配置逻辑块的集成电路502及切换指令504。系统506还可包含操作系统510、应用程序512及/或指令产生器514,所述指令产生器可包含系统506可存取的一或多个电子存储装置上所存储的且可由处理单元508执行的可执行指令。
[0034] 包含切换指令504及具有可配置逻辑块的集成电路502的处理单元508可使用本文中(例如参考图1-4)所描述的集成电路的实例而实施。举例来说,处理单元508可使用一或多个FPGA、DSP、ASIC及/或SOC而实施。在一些实例中,处理单元508中可包含除切换指令504及具有可配置逻辑块的集成电路502之外的其它电路。应用程序512可经提供以实施多种功能性中的任一者,例如但不限于无线应用、视频/编解码器应用及/或机器学习应用。在一些实例中,可提供指令产生器514,所述指令产生器可产生与应用程序512及/或操作系统510协作的切换指令504。举例来说,基于在执行应用程序512时可为合意的运算,指令产生器514可产生可致使具有可配置逻辑块的集成电路502执行某些功能性(例如平方根倒数运算)的切换指令504。如果执行不同应用程序,那么指令产生器514可产生可致使具有可配置逻辑块的集成电路502执行不同功能性的不同切换指令504。以此方式,根据切换指令,可使用相同硬件来执行如本文中所描述的不同功能性。
[0035] 虽然图5中展示指令产生器514,但在其它实例中,可不存在指令产生器。在一些实例中,切换指令504可为预译码的,及/或可针对不同情景而存储切换指令库。然而,在一些实例中,指令产生器514可经提供以基于将由系统506执行的应用程序512而产生切换指令504。举例来说,指令产生器514可实施为编译器或其它可执行指令(例如软件)的一部分。
[0036] 在本发明的实施例中,一种设备包含多个可配置逻辑单元及多个切换器,每一切换器耦合到所述多个可配置逻辑单元中的至少一个可配置逻辑单元。所述设备进一步包含指令寄存器,所述指令寄存器经配置以基于将在所述多个可配置逻辑单元当中实施的计算将多个切换指令中的相应切换指令提供到每一切换器。
[0037] 另外或另一选择为,所述设备进一步包含耦合到所述指令寄存器的互连件。所述指令寄存器经配置以从所述互连件接收用以在所述多个可配置逻辑单元当中执行所述计算的指令。
[0038] 另外或另一选择为,用以在所述多个可配置逻辑单元当中执行所述计算的所述指令包含:基于所述多个可配置逻辑单元的一部分中的每一者的可用性状态而分配所述多个可配置逻辑单元的所述部分来执行所述计算;经由所述多个所述切换器的一部分而确定穿过所述多个可配置逻辑单元的所述部分的路由路径;及激活所述多个所述切换器的所述部分的相应输入及输出。
[0039] 另外或另一选择为,分配所述多个可配置逻辑单元的所述部分来执行所述计算包含:将所述可配置逻辑单元部分中的至少一个可配置逻辑单元配置成执行将在所述多个可配置逻辑单元当中实施的所述计算的特定子计算。
[0040] 另外或另一选择为,经由所述多个所述切换器的所述部分而确定穿过所述多个可配置逻辑单元的所述部分的所述路由路径包含:基于将在所述多个可配置逻辑单元当中实施的所述计算而在所述多个可配置逻辑单元的所述部分当中识别所述路由路径。
[0041] 另外或另一选择为,所述路由路径包含将所述多个可配置逻辑单元的所述部分的最终可配置逻辑单元的输出耦合到所述多个可配置逻辑单元的所述部分的初始可配置逻辑单元的输入。
[0042] 另外或另一选择为,多个切换指令中去往每一切换器的所述相应切换指令各自包含用以经由耦合到所述相应切换器的输入的可配置逻辑单元及耦合到所述相应切换器的输出的另一可配置逻辑单元而激活所述路由路径的指令。
[0043] 另外或另一选择为,多个切换指令中去往每一切换器的所述相应切换指令各自包含基于将在所述多个可配置逻辑单元当中实施的所述计算对通过所述多个可配置逻辑单元的所述部分将执行的迭代次数的指示。
[0044] 另外或另一选择为,将在所述多个可配置逻辑单元当中实施的所述计算包含平方根倒数运算。穿过所述多个可配置逻辑单元的所述部分的所述路由路径经由实施为算术逻辑单元(ALU)的第一可配置逻辑单元及实施为乘法器-累加器单元(MAC)的第二可配置逻辑单元而提供一路径。
[0045] 在本发明的另一方面中,一种集成电路包含:多个可配置逻辑单元,其包含第一可配置逻辑单元及第二可配置逻辑单元;切换器,其至少将所述第一可配置逻辑单元耦合到所述第二可配置逻辑单元;及指令寄存器,其经配置以基于将在至少所述第一可配置逻辑单元及所述第二可配置逻辑单元中实施的计算而将切换指令提供到所述切换器。
[0046] 另外或另一选择为,将所述切换指令提供到所述切换器包含在由所述切换器执行时经配置以致使所述切换器执行以下操作的指令,所述操作包含:分配所述多个可配置逻辑单元来执行所述计算;及激活所述切换器的输入及所述切换器的输出以耦合至少所述第一可配置逻辑单元及所述第二可配置逻辑单元。
[0047] 另外或另一选择为,所述切换器的所述输入提供所述第一可配置逻辑单元的输出。所述切换器的所述输出提供所述第二可配置逻辑单元的输入。
[0048] 另外或另一选择为,分配所述多个可配置逻辑单元包含:识别耦合到所述切换器的每一可配置逻辑单元的状态;及确定所述第一可配置逻辑单元及所述第二可配置逻辑单元的所述相应状态指示用以执行所述计算的每一可配置逻辑单元的可用性。
[0049] 另外或另一选择为,所述第一可配置逻辑单元包括算术逻辑单元(ALU),且所述第二可配置逻辑单元包括位操纵单元(BMU)。
[0050] 另外或另一选择为,所述第一可配置逻辑单元包括算术逻辑单元(ALU),且所述第二可配置逻辑单元包括乘法器-累加器单元(MAC)。
[0051] 另外或另一选择为,将在至少所述第一可配置逻辑单元及所述第二可配置逻辑单元中实施的所述计算包含伽罗瓦域乘法计算、伽罗瓦域除法计算或平方根倒数计算中的至少一者。
[0052] 另外或另一选择为,所述指令寄存器经配置以从互连件接收用以在所述多个可配置逻辑单元当中执行所述计算的指令。
[0053] 另外或另一选择为,所述集成电路进一步包括额外切换器,所述额外切换器耦合到至少所述第二可配置逻辑单元及第三可配置逻辑单元。来自所述互连件的用以在所述多个可配置逻辑单元当中执行所述计算的所述指令包含用以为耦合到所述多个可配置逻辑单元中的至少一者的每一切换器提供多个切换指令的指令,所述切换器包含所述切换器及所述额外切换器。
[0054] 在本发明的另一方面中,一种方法包含:将多个可配置逻辑单元中的至少两个可配置逻辑单元分配成执行将在所述多个可配置逻辑单元当中实施的计算;经由多个切换器中的至少一个切换器而确定穿过所述至少两个可配置逻辑单元的路由路径。所述方法进一步包含:将切换指令提供到所述至少一个切换器以激活所述至少一个切换器的输入及输出。
[0055] 另外或另一选择为,确定穿过所述至少两个可配置逻辑单元的所述路由路径包含:识别穿过所述至少两个可配置逻辑单元的包含将所述至少两个可配置逻辑单元中的一者的输出耦合到所述至少两个可配置逻辑单元中的另一者的输入的所述路由路径。
[0056] 另外或另一选择为,将所述至少两个可配置逻辑单元分配成执行计算包含:将所述至少两个可配置逻辑单元中的每一者配置成执行将在所述多个可配置逻辑单元当中实施的所述计算的特定子计算。
[0057] 另外或另一选择为,将在所述多个可配置逻辑单元当中实施的所述计算包含伽罗瓦域乘法计算、伽罗瓦域除法计算或平方根倒数计算中的至少一者。所述特定子计算包含加法、乘法-累加或位操纵中的至少一者。
[0058] 在本发明的另一方面中,一种系统包含至少一个处理单元。所述至少一个处理单元包含:集成电路,其包含多个可配置逻辑单元;及存储器,其经配置以存储用于配置所述集成电路的切换指令。所述系统进一步包含:用于至少一个应用程序的可执行指令,其至少部分地由所述至少一个处理单元执行;及指令产生器,其耦合到所述至少一个处理单元且经配置以基于用于至少一个应用程序的所述可执行指令而提供所述切换指令。
[0059] 另外或另一选择为,所述集成电路进一步包含多个切换器,且所述切换指令指定所述多个切换器的设定。
[0060] 另外或另一选择为,所述指令产生器经配置以至少部分地基于由用于所述至少一个应用程序的所述可执行指令使用的功能性而提供所述切换指令。
[0061] 依据前述内容将了解,尽管本文中已出于图解说明目的描述了本发明的具体实施例,但在不背离本发明的精神及范围的情况下可做出各种修改
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈