CN108595149A - 可重构乘加运算装置 - Google Patents
可重构乘加运算装置 Download PDFInfo
- Publication number
- CN108595149A CN108595149A CN201810409323.4A CN201810409323A CN108595149A CN 108595149 A CN108595149 A CN 108595149A CN 201810409323 A CN201810409323 A CN 201810409323A CN 108595149 A CN108595149 A CN 108595149A
- Authority
- CN
- China
- Prior art keywords
- multiply
- formula
- add
- storage address
- basic
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/57—Arithmetic 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Logic Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种可重构乘加运算装置,包括:算法控制器用于接收子运算所包含的算式元素的标识和元素值所在的第一存储地址,向算式生成器发送第一存储地址和存储乘加算式的乘加结果的第二存储地址;算式生成器用于获取第一存储地址处的元素值,根据基础算式及元素值生成乘加算式,将乘加算式发送给基本算粒组;将乘加结果存储在第二存储地址处,发送第二存储地址给算法控制器;以及,若子运算中的乘加算式全部计算完毕,发送子运算的运算结果给下一个基本处理单元;基本算粒组用于计算接收到的乘加算式,将得到的乘加结果发送给算式生成器,缓解现有技术中存在的硬件电路的使用灵活性低的技术问题,达到了提高硬件电路的使用灵活性的技术效果。
Description
技术领域
本发明涉及乘加运算技术领域,尤其是涉及一种可重构乘加运算装置。
背景技术
在众多的工程应用中都有可能涉及大规模的乘加运算,如矩阵运算和FFT运算等。要执行这些大规模的乘加运算,可以将包括乘加运算的算法转换为硬件电路,并在FPGA和AISC等硬件器件上运行。通常情况下,硬件电路进行大规模的乘加运算的运算速度要高于软件。
在实际应用中,进行并行运算(关于乘加运算)的硬件电路往往只为某一种或者某一类计算场景设计,一旦运算算法或者计算场景发生改变,整个硬件电路就要进行相应的修改,所以,硬件电路的使用灵活性低。
发明内容
有鉴于此,本发明的目的在于提供一种可重构乘加运算装置,以缓解现有技术中存在的硬件电路的使用灵活性低的技术问题。
第一方面,本发明实施例提供了一种可重构乘加运算装置,所述装置用于处理待处理运算,所述装置包括:至少一个用于处理所述待处理运算中子运算的基本处理单元,每个所述子运算包含至少一个乘加算式,每个所述乘加算式中包含多个算式元素,所述基本处理单元包括算法控制器、算式生成器和基本算粒组;
所述算法控制器,用于接收所述子运算所包含的所述乘加算式中所述算式元素的标识和元素值所在的第一存储地址,向所述算式生成器发送所述元素值所在的第一存储地址和存储所述乘加算式的乘加结果的第二存储地址,所述第二存储地址与所述第一存储地址不同;
所述算式生成器,用于获取所述第一存储地址处的所述元素值,根据预设的基础算式及所述元素值生成所述乘加算式,将所述乘加算式发送给所述基本算粒组;将接收到的所述乘加结果存储在所述第二存储地址处,发送所述第二存储地址给所述算法控制器;以及,若所述子运算中的所述乘加算式全部计算完毕,发送所述子运算的运算结果给下一个所述基本处理单元;
所述基本算粒组,用于计算接收到的所述乘加算式,将得到的所述乘加结果发送给所述算式生成器。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述基础算式为:其中,Y为所述乘加算式,n为自然数。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述算法控制器,还用于根据所述标识,在至少一个所述乘加算式中确定包含所述标识的乘加算式,对于确定的每一个所述乘加算式,判断所述乘加算式中包括的全部所述标识是否被包括在所述标识中,若所述乘加算式中包括的全部所述标识被包括在所述标识中,则确定与全部所述标识分别对应的所述元素值所在的所述第一存储地址。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,多个所述基本处理单元根据所述待处理运算中任意相邻的两个所述子运算之间的运算关系连接。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,多个所述基本处理单元采用片上网络或者交叉开关矩阵网络互联。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述算法控制器为可编程的逻辑结构,或者为可配置的逻辑结构。
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述基本算粒组分别和多个所述算式生成器连接。
结合第一方面,本发明实施例提供了第一方面的第七种可能的实施方式,其中,所述子运算为矩阵分解运算、矩阵求逆运算或者FFT运算。
结合第一方面,本发明实施例提供了第一方面的第八种可能的实施方式,其中,所述算式生成器和所述基本算粒组之间的总线的格式是根据所述基础算式确定的。
结合第一方面,本发明实施例提供了第一方面的第九种可能的实施方式,其中,所述基本算粒包括:乘法器、加法器和累加器。
本发明实施例带来了以下有益效果:本发明实施例提供的可重构乘加运算装置,所述装置用于处理待处理运算,所述装置包括:至少一个用于处理所述待处理运算中子运算的基本处理单元,每个所述子运算包含至少一个乘加算式,每个所述乘加算式中包含多个算式元素,所述基本处理单元包括算法控制器、算式生成器和基本算粒组;所述算法控制器,用于接收所述子运算所包含的所述乘加算式中所述算式元素的标识和元素值所在的第一存储地址,向所述算式生成器发送所述元素值所在的第一存储地址和存储所述乘加算式的乘加结果的第二存储地址,所述第二存储地址与所述第一存储地址不同;所述算式生成器,用于获取所述第一存储地址处的所述元素值,根据预设的基础算式及所述元素值生成所述乘加算式,将所述乘加算式发送给所述基本算粒组;将接收到的所述乘加结果存储在所述第二存储地址处,发送所述第二存储地址给所述算法控制器;以及,若所述子运算中的所述乘加算式全部计算完毕,发送所述子运算的运算结果给下一个所述基本处理单元;所述基本算粒组,用于计算接收到的所述乘加算式,将得到的所述乘加结果发送给所述算式生成器。
所以,本发明实施例中的所述算法控制器上预先设置了多种子运算,当计算场景A需要基本处理单元处理子运算A时,用户发送用于使能算法控制器上的子运算A的使能信号A,算式生成器和基本算粒组保持不变。算法控制器,用于接收子运算A所包含的所述乘加算式中所述算式元素的标识和元素值所在的第一存储地址,向所述算式生成器发送所述元素值所在的第一存储地址和存储所述乘加算式的乘加结果的第二存储地址;所述算式生成器,用于获取所述第一存储地址处的所述元素值,根据预设的基础算式及所述元素值生成所述乘加算式,将所述乘加算式发送给所述基本算粒组;将接收到的所述乘加结果存储在所述第二存储地址处,发送所述第二存储地址给所述算法控制器;以及,若子运算A中的所述乘加算式全部计算完毕,发送子运算A的运算结果给下一个所述基本处理单元;所述基本算粒组,用于计算接收到的所述乘加算式,将得到的所述乘加结果发送给所述算式生成器。
当计算场景B需要基本处理单元处理子运算B时,用户发送用于使能算法控制器上的子运算B的使能信号B,此时,子运算A的部分不起作用,算式生成器和基本算粒组保持不变。算法控制器用于接收子运算B所包含的所述乘加算式中所述算式元素的标识和元素值所在的第一存储地址,向所述算式生成器发送所述元素值所在的第一存储地址和存储所述乘加算式的乘加结果的第二存储地址;所述算式生成器用于获取所述第一存储地址处的所述元素值,根据预设的基础算式及所述元素值生成所述乘加算式,将所述乘加算式发送给所述基本算粒组;将接收到的所述乘加结果存储在所述第二存储地址处,发送所述第二存储地址给所述算法控制器;以及,若子运算B中的所述乘加算式全部计算完毕,发送子运算B的运算结果给下一个所述基本处理单元;所述基本算粒组,用于计算接收到的所述乘加算式,将得到的所述乘加结果发送给所述算式生成器。所以,当所述可重构乘加运算装置需要适配不同的子运算时,只需要将所述算法控制器部分进行重构或者做冗余设计即可,算式生成器和基本算粒组保持不变,不需要全部重新进行设计,避免一旦运算算法或者计算场景发生改变而导致的整个硬件电路进行相应修改的问题,因此,缓解了现有技术中存在的硬件电路的使用灵活性低的技术问题,达到了提高硬件电路的使用灵活性的技术效果。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基本处理单元的结构示意图;
图2为本发明实施例提供的算式生成器和基本算粒组之间的总线的接口时序图;
图3为本发明实施例提供的可重构乘加运算装置的第一种结构示意图;
图4为本发明实施例提供的可重构乘加运算装置的第二种结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,在众多的工程应用中都有可能涉及大规模的乘加运算,如矩阵运算和FFT运算等。要执行这些大规模的乘加运算,可以将包括乘加运算的算法转换为硬件电路,并在FPGA和AISC等硬件器件上运行。通常情况下,硬件电路进行大规模的乘加运算的运算速度要高于软件。
在实际应用中,进行并行运算(关于乘加运算)的硬件电路往往只为某一种或者某一类计算场景设计,一旦运算算法或者计算场景发生改变,整个硬件电路就要进行相应的修改,所以,硬件电路的使用灵活性低,基于此,本发明实施例提供的一种可重构乘加运算装置,可以缓解现有技术中存在的硬件电路的使用灵活性低的技术问题,达到提高硬件电路的使用灵活性的技术效果。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种可重构乘加运算装置进行详细介绍,所述装置用于处理待处理运算,所述装置包括:至少一个用于处理所述待处理运算中子运算的基本处理单元,每个所述子运算包含至少一个乘加算式,每个所述乘加算式中包含多个算式元素,如图1所示,所述基本处理单元11包括算法控制器12、算式生成器13和基本算粒组14。
示例性的,所述待处理运算可以为利用LU分解的矩阵求逆运算。利用LU分解的矩阵求逆运算可以分为三个步骤,第一步是将n阶矩阵A分解为一个下三角矩阵L和一个上三角矩阵U,第二步是分别求矩阵L和矩阵U的逆矩阵,第三步是将矩阵L的逆矩阵乘以矩阵U的逆矩阵。所以,所述子运算可以为矩阵分解运算、矩阵求逆运算、矩阵相乘运算或者FFT运算。
所述算法控制器12,用于接收所述子运算所包含的所述乘加算式中所述算式元素的标识和元素值所在的第一存储地址,向所述算式生成器13发送所述元素值所在的第一存储地址和存储所述乘加算式的乘加结果的第二存储地址,所述第二存储地址与所述第一存储地址不同。
示例性的,所述算法控制器12可以为可编程的逻辑结构,或者可以为可配置的逻辑结构。
示例性的,以所述子运算为矩阵分解运算为例进行说明。矩阵A可以为矩阵A可以分解为一个下三角矩阵L和一个上三角矩阵U,即矩阵A分解运算所包含的乘加算式为:U1j=a1j,j=1,2,...,4
矩阵A中的a11为算式元素的标识,a11的值4为元素值。矩阵A的值存储在所述算式生成器中。
示例性的,所述算法控制器12还用于根据所述标识,在至少一个所述乘加算式中确定包含所述标识的乘加算式,对于确定的每一个所述乘加算式,判断所述乘加算式中包括的全部所述标识是否被包括在所述标识中,若所述乘加算式中包括的全部所述标识被包括在所述标识中,则确定与全部所述标识分别对应的所述元素值所在的所述第一存储地址。
示例性的,所述算法控制器还用于根据标识aij,i=1,2,...,4;j=1,2,...,4,在至少一个所述乘加算式中确定包含标识aij的乘加算式U1j,Li1,Uij和Lij,对于确定的每一个所述乘加算式,判断所述乘加算式中包括的全部所述标识是否被包括在所述标识中,以乘加算式U11=a11为例进行说明,由于a11=4是已知的,所以可以启动计算U11的运算,将a11的元素值4所在的第一存储地址发送给所述算式生成器,同时发送存储乘加结果U11的第二存储地址给所述算式生成器13。
示例性的,由于乘加算式U11=a11、U12=a12、U13=a13和U14=a14之间不存在依赖关系,且各个乘加算式中的标识都是已知的,所以,这四个乘加算式的运算可以并行启动。举例说明,乘加算式中包括U11和标识a21,如果要启动计算L21的运算,就要同时已知U11和标识a21,如果U11未知,那么计算L21的运算就不能够启动,当算法控制器12中的标识增加了U11,这时标识U11和标识a21均已知,才可以启动计算L21的运算。
示例性的,以矩阵A为例进行说明。首先已知标识aij,根据多个乘加算式可以并行计算U11,U12,U13和U14,得到U11,U12,U13和U14的元素值,将U11,U12,U13和U14的标识加到已有的标识中,此时标识包括:aij、U11,U12,U13和U14。根据现有的标识和多个乘加算式可以并行计算L21,L31,L41,得到L21,L31,L41的元素值,将L21,L31,L41的标识加到已有的标识中,此时标识包括:aij,L21,L31,L41,U11,U12,U13和U14。根据现有的标识和多个乘加算式可以并行计算U22,U23,U24,得到U22,U23,U24的元素值,将U22,U23,U24的标识加到已有的标识中,此时标识包括:aij,L21,L31,L41,U22,U23,U24,U11,U12,U13和U14。根据现有的标识和多个乘加算式可以并行计算L32,L42,得到L32,L42的元素值,将L32,L42的标识加到已有的标识中,此时标识包括:aij,L21,L31,L41,U22,U23,U24,L32,L42,U11,U12,U13和U14。根据现有的标识和多个乘加算式可以并行计算U33,U34,得到U33,U34的元素值,将U33,U34的标识加到已有的标识中,此时标识包括:aij,L21,L31,L41,U22,U23,U24,L32,L42,U33,U34,U11,U12,U13和U14。根据现有的标识和多个乘加算式可以计算L43,得到L43的元素值,将L43的标识加到已有的标识中,此时标识包括:aij,L21,L31,L41,U22,U23,U24,L32,L42,U33,U34,L43,U11,U12,U13和U14。根据现有的标识和多个乘加算式可以计算U44,得到U44的元素值,将U44的标识加到已有的标识中,此时标识包括:aij,L21,L31,L41,U22,U23,U24,L32,L42,U33,U34,L43,U44,U11,U12,U13和U14。
示例性的,所述算法控制器12的总线指示可以如表1所示。
表1
信号名 | 位宽 | 描述 |
ready | 1 | 总线空闲指示 |
vaid | 1 | 算式组帧指示,与ready是一对握手信号 |
mul_a_row_min | 7 | 乘数a的行下标起始值 |
mul_a_row_max | 7 | 乘数a的行下标终止值 |
mul_a_col_min | 7 | 乘数a的列下标起始值 |
mul_a_col_max | 7 | 乘数a的列下标终止值 |
a_row_add | 1 | 乘数a的行下标循环展开指示 |
a_col_add | 1 | 乘数a的列下标循环展开指示 |
mul_b_row_min | 7 | 乘数b的行下标起始值 |
mul_b_row_max | 7 | 乘数b的行下标终止值 |
mul_b_col_min | 7 | 乘数b的列下标起始值 |
mul_b_col_max | 7 | 乘数b的列下标终止值 |
b_row_add | 1 | 乘数b的行下标循环展开指示 |
b_col_add | 1 | 乘数b的列下标循环展开指示 |
add_addr | 14 | 加数地址 |
add_en | 1 | 加数使能指示 |
sum_mult_addr | 14 | 累加后的乘数地址 |
sum_mult_en | 1 | 累加后的乘数使能指示 |
y_addr | 14 | 计算结果在矩阵中的位置 |
所述算式生成器13,用于获取所述第一存储地址处的所述元素值,根据预设的基础算式及所述元素值生成所述乘加算式,将所述乘加算式发送给所述基本算粒组14;将接收到的所述乘加结果存储在所述第二存储地址处,发送所述第二存储地址给所述算法控制器12;以及,若所述子运算中的所述乘加算式全部计算完毕,发送所述子运算的运算结果给下一个所述基本处理单元。
示例性的,算式生成器13内可以设置存储单元,所述存储单元内存储元素值,算式生成器13根据所述第一存储地址读取所述存储单元内第一存储地址处的所述元素值。
示例性的,所述基础算式可以为:其中,Y为所述乘加算式,n为自然数。在实际应用中,C的值可以为0,D的值可以为1。如图2所示,所述算式生成器和所述基本算粒组之间的总线的格式是根据所述基础算式确定的。type信号用于指示总线数据上的计算规则,由算式生成器13逻辑输出,具体含义包括:type信号为01时表示本周期的mul_a和mul_b相乘;type信号为00时表示本周期的mul_a与本算式的其他周期的数据相加;type信号为10时表示本周期的mul_b与本算式其他周期的数据相乘;type信号为11时表示本周期的mul_a先与本算式的其他周期的数据相加,然后本周期的mul_b再与本算式的其他的数据相乘。Length信号用于指示算式运行周期。valid信号和ready信号同时为高表示mul_a和mul_b总线上的数据为有效数据,valid信号、ready信号和last信号同时为高表示算式的最后一组数据,用来实现不同算式之间的分界。ID信号用来指示不同用户的数据。seq_num信号用来指示同一个矩阵运算里的算式序列号。pro信号用来指示同一个矩阵运算里的算式的优先级。图2中所示是三个计算公式Y1=A1×B1+C1、Y2=(A2×B2+C2×D2)×E2和Y3=(A3×B3+C3)×D3的接口时序。计算公式Y1=A1×B1+C1的运行周期为1,ID信号为ID1,序列号为0,优先级为2。计算公式Y2=(A2×B2+C2×D2)×E2的运行周期为2,ID信号为ID2,序列号为5,优先级为2。计算公式Y3=(A3×B3+C3)×D3的运行周期为1,ID信号为ID1,序列号为1,优先级为1。
所述基本算粒组,用于计算接收到的所述乘加算式,将得到的所述乘加结果发送给所述算式生成器。
示例性的,所述基本算粒可以包括:乘法器、加法器和累加器。
示例性的,算式生成器13将接收到的所述乘加结果存储在所述第二存储地址处,发送所述第二存储地址给所述算法控制器12,所述算法控制器12接收到所述第二存储地址后,将所述乘加结果的标识添加到已有的标识中。
示例性的,多个所述基本处理单元根据所述待处理运算中任意相邻的两个所述子运算之间的运算关系连接。如图3所示,可重构乘加运算装置21可以包括:基本处理单元11、基本处理单元22和基本处理单元23。基本处理单元11、基本处理单元22和基本处理单元23内均包括利用LU分解的矩阵求逆运算(矩阵求逆运算包括:矩阵分解子运算、矩阵求逆子运算和矩阵相乘子运算),在基本处理单元11中使能矩阵分解子运算,基本处理单元11的运算结果作为基本处理单元22的输入数据,在基本处理单元22中使能矩阵求逆子运算,基本处理单元22的运算结果作为基本处理单元23的输入数据,在基本处理单元23中使能矩阵相乘子运算。实现了各个基本处理单元间的解耦合设计。同时,实现了矩阵求逆运算的流水展开。这样的可重构乘加运算装置可以根据实际的应用场景,简单的改变基本处理单元间的拓扑结构,体现了动态可重构的特性。
示例性的,如图4所示,可重构乘加运算装置21可以包括:基本处理单元32、基本处理单元33、基本处理单元34、基本处理单元35、基本处理单元36、基本处理单元37、基本处理单元38、基本处理单元39和基本处理单元40。这9个基本处理单元均包括利用LU分解的矩阵求逆运算(矩阵求逆运算包括:矩阵分解子运算、矩阵求逆子运算和矩阵相乘子运算),在基本处理单元32中使能矩阵分解子运算,基本处理单元32的运算结果作为基本处理单元33的输入数据,在基本处理单元33中使能矩阵求逆子运算,基本处理单元33的运算结果作为基本处理单元34的输入数据,在基本处理单元34中使能矩阵相乘子运算。
在基本处理单元35中使能矩阵分解子运算,基本处理单元35的运算结果作为基本处理单元36的输入数据,在基本处理单元36中使能矩阵求逆子运算,基本处理单元36的运算结果作为基本处理单元37的输入数据,在基本处理单元37中使能矩阵相乘子运算。
在基本处理单元38中使能矩阵分解子运算,基本处理单元38的运算结果作为基本处理单元39的输入数据,在基本处理单元39中使能矩阵求逆子运算,基本处理单元39的运算结果作为基本处理单元40的输入数据,在基本处理单元40中使能矩阵相乘子运算。通过对基本处理单元中的算法控制器12的冗余设计,使得无需改变算式生成器13和基本算粒组14的逻辑结构,基本处理单元就可以实现不同的运算功能。同时,通过对基本处理单元间的互联网络配置,可以很方便的对基本处理单元之间的拓扑结构进行重构,实现大规模的并行运算,且,这种重构是动态实时的。
示例性的,可重构乘加运算装置的结构可大可小,可以将待处理运算的乘加算式按流水级展开,也可以多个相同或者不同的乘加算式运算同时执行,可以根据实际算法复杂程度、逻辑资源使用限制及运算速率的要求,灵活决定最适合的装置规模和拓扑结构。
本发明实施例中,可重构乘加运算装置,所述装置用于处理待处理运算,所述装置包括:至少一个用于处理所述待处理运算中子运算的基本处理单元,每个所述子运算包含至少一个乘加算式,每个所述乘加算式中包含多个算式元素,所述基本处理单元包括算法控制器、算式生成器和基本算粒组;所述算法控制器,用于接收所述子运算所包含的所述乘加算式中所述算式元素的标识和元素值所在的第一存储地址,向所述算式生成器发送所述元素值所在的第一存储地址和存储所述乘加算式的乘加结果的第二存储地址,所述第二存储地址与所述第一存储地址不同;所述算式生成器,用于获取所述第一存储地址处的所述元素值,根据预设的基础算式及所述元素值生成所述乘加算式,将所述乘加算式发送给所述基本算粒组;将接收到的所述乘加结果存储在所述第二存储地址处,发送所述第二存储地址给所述算法控制器;以及,若所述子运算中的所述乘加算式全部计算完毕,发送所述子运算的运算结果给下一个所述基本处理单元;所述基本算粒组,用于计算接收到的所述乘加算式,将得到的所述乘加结果发送给所述算式生成器。
所以,本发明实施例中的所述算法控制器上预先设置了多种子运算,当计算场景A需要基本处理单元处理子运算A时,用户发送用于使能算法控制器上的子运算A的使能信号A,算式生成器和基本算粒组保持不变。算法控制器,用于接收子运算A所包含的所述乘加算式中所述算式元素的标识和元素值所在的第一存储地址,向所述算式生成器发送所述元素值所在的第一存储地址和存储所述乘加算式的乘加结果的第二存储地址;所述算式生成器,用于获取所述第一存储地址处的所述元素值,根据预设的基础算式及所述元素值生成所述乘加算式,将所述乘加算式发送给所述基本算粒组;将接收到的所述乘加结果存储在所述第二存储地址处,发送所述第二存储地址给所述算法控制器;以及,若子运算A中的所述乘加算式全部计算完毕,发送子运算A的运算结果给下一个所述基本处理单元;所述基本算粒组,用于计算接收到的所述乘加算式,将得到的所述乘加结果发送给所述算式生成器。
当计算场景B需要基本处理单元处理子运算B时,用户发送用于使能算法控制器上的子运算B的使能信号B,此时,子运算A的部分不起作用,算式生成器和基本算粒组保持不变。算法控制器用于接收子运算B所包含的所述乘加算式中所述算式元素的标识和元素值所在的第一存储地址,向所述算式生成器发送所述元素值所在的第一存储地址和存储所述乘加算式的乘加结果的第二存储地址;所述算式生成器用于获取所述第一存储地址处的所述元素值,根据预设的基础算式及所述元素值生成所述乘加算式,将所述乘加算式发送给所述基本算粒组;将接收到的所述乘加结果存储在所述第二存储地址处,发送所述第二存储地址给所述算法控制器;以及,若子运算B中的所述乘加算式全部计算完毕,发送子运算B的运算结果给下一个所述基本处理单元;所述基本算粒组,用于计算接收到的所述乘加算式,将得到的所述乘加结果发送给所述算式生成器。所以,当所述可重构乘加运算装置需要适配不同的子运算时,只需要将所述算法控制器部分进行重构或者做冗余设计即可,算式生成器和基本算粒组保持不变,不需要全部重新进行设计,避免一旦运算算法或者计算场景发生改变而导致的整个硬件电路进行相应修改的问题,因此,缓解了现有技术中存在的硬件电路的使用灵活性低的技术问题,达到了提高硬件电路的使用灵活性的技术效果。
在本发明的又一实施例中,多个所述基本处理单元采用片上网络或者交叉开关矩阵网络互联。
示例性的,多个所述基本处理单元采用片上网络或者交叉开关矩阵网络互联,使得数据具备在基本处理单元间任意流动的能力,有利于进行大规模的并行运算。
在本发明的又一实施例中,所述基本算粒组分别和多个所述算式生成器连接。
示例性的,所述基本算粒组可以根据需要扩充或者裁剪,且相邻的算式生成器还可以和同一个所述基本算粒组连接,使得可重构乘加运算装置具有较强的灵活性,提高可重构乘加运算装置的运算效率。
示例性的,一个算式生成器可以分别和多个算法控制器连接,使得可重构乘加运算装置可以支持更多的乘加算式,使得可重构乘加运算装置具有较强的灵活性,提高可重构乘加运算装置的运算效率。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种可重构乘加运算装置,其特征在于,所述装置用于处理待处理运算,所述装置包括:至少一个用于处理所述待处理运算中子运算的基本处理单元,每个所述子运算包含至少一个乘加算式,每个所述乘加算式中包含多个算式元素,所述基本处理单元包括算法控制器、算式生成器和基本算粒组;
所述算法控制器,用于接收所述子运算所包含的所述乘加算式中所述算式元素的标识和元素值所在的第一存储地址,向所述算式生成器发送所述元素值所在的第一存储地址和存储所述乘加算式的乘加结果的第二存储地址,所述第二存储地址与所述第一存储地址不同;
所述算式生成器,用于获取所述第一存储地址处的所述元素值,根据预设的基础算式及所述元素值生成所述乘加算式,将所述乘加算式发送给所述基本算粒组;将接收到的所述乘加结果存储在所述第二存储地址处,发送所述第二存储地址给所述算法控制器;以及,若所述子运算中的所述乘加算式全部计算完毕,发送所述子运算的运算结果给下一个所述基本处理单元;
所述基本算粒组,用于计算接收到的所述乘加算式,将得到的所述乘加结果发送给所述算式生成器。
2.根据权利要求1所述的可重构乘加运算装置,其特征在于,所述基础算式为:其中,Y为所述乘加算式,n为自然数。
3.根据权利要求2所述的可重构乘加运算装置,其特征在于,所述算法控制器,还用于根据所述标识,在至少一个所述乘加算式中确定包含所述标识的乘加算式,对于确定的每一个所述乘加算式,判断所述乘加算式中包括的全部所述标识是否被包括在所述标识中,若所述乘加算式中包括的全部所述标识被包括在所述标识中,则确定与全部所述标识分别对应的所述元素值所在的所述第一存储地址。
4.根据权利要求3所述的可重构乘加运算装置,其特征在于,多个所述基本处理单元根据所述待处理运算中任意相邻的两个所述子运算之间的运算关系连接。
5.根据权利要求3所述的可重构乘加运算装置,其特征在于,多个所述基本处理单元采用片上网络或者交叉开关矩阵网络互联。
6.根据权利要求4和5任一所述的可重构乘加运算装置,其特征在于,所述算法控制器为可编程的逻辑结构,或者为可配置的逻辑结构。
7.根据权利要求6所述的可重构乘加运算装置,其特征在于,所述基本算粒组分别和多个所述算式生成器连接。
8.根据权利要求7所述的可重构乘加运算装置,其特征在于,所述子运算为矩阵分解运算、矩阵求逆运算或者FFT运算。
9.根据权利要求8所述的可重构乘加运算装置,其特征在于,所述算式生成器和所述基本算粒组之间的总线的格式是根据所述基础算式确定的。
10.根据权利要求9所述的可重构乘加运算装置,其特征在于,所述基本算粒包括:乘法器、加法器和累加器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810409323.4A CN108595149B (zh) | 2018-04-28 | 2018-04-28 | 可重构乘加运算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810409323.4A CN108595149B (zh) | 2018-04-28 | 2018-04-28 | 可重构乘加运算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108595149A true CN108595149A (zh) | 2018-09-28 |
CN108595149B CN108595149B (zh) | 2021-05-04 |
Family
ID=63620422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810409323.4A Active CN108595149B (zh) | 2018-04-28 | 2018-04-28 | 可重构乘加运算装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108595149B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158636A (zh) * | 2019-12-03 | 2020-05-15 | 中国人民解放军战略支援部队信息工程大学 | 可重构计算结构及乘累加计算处理阵列的路由寻址方法、装置 |
CN113064854A (zh) * | 2021-04-15 | 2021-07-02 | 天津芯海创科技有限公司 | 一种硬件计算重构方法、装置、计算机设备及存储介质 |
CN113076083A (zh) * | 2021-06-04 | 2021-07-06 | 南京后摩智能科技有限公司 | 数据乘加运算电路 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060228027A1 (en) * | 2001-03-28 | 2006-10-12 | Canon Kabushiki Kaisha | Dynamically reconfigurable signal processing circuit, pattern recognition apparatus, and image processing apparatus |
CN101840324A (zh) * | 2010-04-28 | 2010-09-22 | 中国科学院自动化研究所 | 支持复数运算和子字并行的64位定浮点乘法器 |
CN101986264A (zh) * | 2010-11-25 | 2011-03-16 | 中国人民解放军国防科学技术大学 | 用于simd向量微处理器的多功能浮点乘加运算装置 |
CN102495719A (zh) * | 2011-12-15 | 2012-06-13 | 中国科学院自动化研究所 | 一种向量浮点运算装置及方法 |
CN102799563A (zh) * | 2011-05-26 | 2012-11-28 | 上海红神信息技术有限公司 | 一种可重构计算阵列及构建方法 |
CN103294446A (zh) * | 2013-05-14 | 2013-09-11 | 中国科学院自动化研究所 | 一种定点乘累加器 |
CN103345380A (zh) * | 1995-08-31 | 2013-10-09 | 英特尔公司 | 控制移位分组数据的位校正的装置 |
CN103970720A (zh) * | 2014-05-30 | 2014-08-06 | 东南大学 | 基于大规模粗粒度嵌入式可重构系统及其处理方法 |
CN107688469A (zh) * | 2016-12-23 | 2018-02-13 | 北京国睿中数科技股份有限公司 | 兼顾通用指令和专用指令的可重构计算装置 |
-
2018
- 2018-04-28 CN CN201810409323.4A patent/CN108595149B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345380A (zh) * | 1995-08-31 | 2013-10-09 | 英特尔公司 | 控制移位分组数据的位校正的装置 |
US20060228027A1 (en) * | 2001-03-28 | 2006-10-12 | Canon Kabushiki Kaisha | Dynamically reconfigurable signal processing circuit, pattern recognition apparatus, and image processing apparatus |
CN101840324A (zh) * | 2010-04-28 | 2010-09-22 | 中国科学院自动化研究所 | 支持复数运算和子字并行的64位定浮点乘法器 |
CN101986264A (zh) * | 2010-11-25 | 2011-03-16 | 中国人民解放军国防科学技术大学 | 用于simd向量微处理器的多功能浮点乘加运算装置 |
CN102799563A (zh) * | 2011-05-26 | 2012-11-28 | 上海红神信息技术有限公司 | 一种可重构计算阵列及构建方法 |
CN102495719A (zh) * | 2011-12-15 | 2012-06-13 | 中国科学院自动化研究所 | 一种向量浮点运算装置及方法 |
CN103294446A (zh) * | 2013-05-14 | 2013-09-11 | 中国科学院自动化研究所 | 一种定点乘累加器 |
CN103970720A (zh) * | 2014-05-30 | 2014-08-06 | 东南大学 | 基于大规模粗粒度嵌入式可重构系统及其处理方法 |
CN107688469A (zh) * | 2016-12-23 | 2018-02-13 | 北京国睿中数科技股份有限公司 | 兼顾通用指令和专用指令的可重构计算装置 |
Non-Patent Citations (1)
Title |
---|
沈剑良: "一种基于体系结构模板的粗粒度可重构SoC设计方法", 《一种基于体系结构模板的粗粒度可重构SOC设计方法》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158636A (zh) * | 2019-12-03 | 2020-05-15 | 中国人民解放军战略支援部队信息工程大学 | 可重构计算结构及乘累加计算处理阵列的路由寻址方法、装置 |
CN111158636B (zh) * | 2019-12-03 | 2022-04-05 | 中国人民解放军战略支援部队信息工程大学 | 可重构计算结构及计算处理阵列的路由寻址方法、装置 |
CN113064854A (zh) * | 2021-04-15 | 2021-07-02 | 天津芯海创科技有限公司 | 一种硬件计算重构方法、装置、计算机设备及存储介质 |
CN113064854B (zh) * | 2021-04-15 | 2022-07-19 | 天津芯海创科技有限公司 | 一种硬件计算重构方法、装置、计算机设备及存储介质 |
CN113076083A (zh) * | 2021-06-04 | 2021-07-06 | 南京后摩智能科技有限公司 | 数据乘加运算电路 |
CN113076083B (zh) * | 2021-06-04 | 2021-08-31 | 南京后摩智能科技有限公司 | 数据乘加运算电路 |
Also Published As
Publication number | Publication date |
---|---|
CN108595149B (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI803663B (zh) | 一種運算裝置和運算方法 | |
CN109101273A (zh) | 神经网络处理装置及其执行向量最大值指令的方法 | |
CN105005911B (zh) | 深度神经网络的运算系统及运算方法 | |
CN103109271A (zh) | 一种平台间迁移应用的实现方法及系统 | |
EP2877905A2 (en) | Neural processing engine and architecture using the same | |
CN108595149A (zh) | 可重构乘加运算装置 | |
CN103853618A (zh) | 基于截止日期驱动的云系统代价最小化资源分配方法 | |
CN105677755B (zh) | 一种处理图数据的方法及装置 | |
CN110147249A (zh) | 一种网络模型的计算方法及装置 | |
CN110780921A (zh) | 数据处理方法和装置、存储介质及电子装置 | |
CN108491924B (zh) | 一种面向人工智能计算的神经网络数据串行流水处理装置 | |
CN105302536A (zh) | MapReduce应用的相关参数的配置方法和装置 | |
CN109726353A (zh) | 卷积运算装置和方法 | |
CN110166304A (zh) | 一种跨域sfc的编排方法、装置、电子设备及存储介质 | |
CN106155822A (zh) | 一种处理能力评估方法及装置 | |
CN107957977A (zh) | 一种计算方法及相关产品 | |
CN113556101B (zh) | Iir滤波器及其数据处理方法 | |
CN108647007B (zh) | 运算系统及芯片 | |
CN110442753A (zh) | 一种基于opc ua的图数据库自动建立方法及装置 | |
CN111381882B (zh) | 数据处理装置及相关产品 | |
CN109408722B (zh) | 社区划分方法、装置、计算设备及存储介质 | |
CN106933882A (zh) | 一种大数据增量计算方法和装置 | |
CN115080496A (zh) | 网络映射方法、数据处理方法及装置、设备、系统和介质 | |
Kuppannagari et al. | Ip cores for graph kernels on fpgas | |
CN115016947A (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 |