一种数据运算电路及存算一体芯片制造技术

技术编号:29936182 阅读:24 留言:0更新日期:2021-09-04 19:13
本发明专利技术提供了一种数据运算电路及存算一体芯片,该数据运算电路包括译码电路、查询表阵列。译码电路包括被乘数输入端、乘数输入端、译码输出端;被乘数输入端的位宽为N1,输入2

【技术实现步骤摘要】
一种数据运算电路及存算一体芯片


[0001]本专利技术涉及半导体
,尤其涉及一种数据运算电路及存算一体芯片。

技术介绍

[0002]存内运算(Processing in Memory,PIM)是在内存中完成部分运算,在处理器中完成部分运算。相较于内存运算将运算所需的所有数据放入到内存中,所有运算由处理器完成的方式,存内运算的方式降低了数据在内存与高速缓存、以及高速缓存与CPU(中央处理器)之间移动的能耗,提高内存运算系统的性能。
[0003]现有的存内运算的实现方式主要采用模拟存内运算方式。模拟存内运算的主要缺点有:需要同时打开多条字线对存储单元的数值进行运算,在此过程中,由于打开的字线根数较多,对写操作的干扰较为严重。而且乘法运算周期较长,能量损耗较大,效率较低。

技术实现思路

[0004]本专利技术提供了一种数据运算电路及存算一体芯片,以减少打开字线根数,减少对写操作的干扰;同时缩短运算周期,减少能耗,提高运算效率。
[0005]第一方面,本专利技术提供了一种数据运算电路,该数据运算电路包括译码电路和查询表阵列。其中,译码电路包括被乘数输入端、乘数输入端以及译码输出端;被乘数输入端的位宽为N1,用于输入2
N1
种被乘数;乘数输入端的位宽为N2,用于输入2
N2
种乘数;译码输出端的位宽为2
N1+N2
,用于输出2
N1+N2
种译码输出信号,且每种译码输出信号对应一种被乘数和乘数组合。查询表阵列包括与译码输出端连接的存储阵列、以及与存储阵列连接的读出电路;存储阵列中存储有2
N1+N2
种运算结果,每种运算结果为一种被乘数和乘数组合相乘所得的运算结果,且每种运算结果对应一种译码输出信号;读出电路用于根据传输给存储阵列的一种译码输出信号,读取存储阵列中和该种译码输出信号对应的运算结果。
[0006]在上述的方案中,通过采用译码电路和查询表阵列的方式组成乘法运算电路,由译码电路通过被乘数输入端接收2
N1
种被乘数,由乘数输入端接收2
N2
种乘数,并将2
N1
种被乘数和2
N2
种乘数组成的共2
N1+N2
被乘数和乘数组合相乘的所有运算结果预先存储在存储阵列中。在进行乘法运算时,译码电路只需根据输入的被乘数和乘数组合,生成对应的译码输出信号,并将译码输出信号传输给存储阵列,之后由读出电路读出预先存储在存储阵列中的该被乘数和乘数组合相乘的运算结果即可。与现有技术采用模拟存内运算的方式相比,本申请的方式只需通过译码电路产生的译码输出信号对存储阵列中存储的运行结果进行寻址及读取即可,从而无需打开多条字线对存储单元中的数值进行运算,减少打开字线根数,减少对写操作的干扰。且将乘法的运算改为预先将运算结果存储在存储阵列中,并经过查询的方式即可得到一种被乘数和乘数相乘的运算结果,无需进行大量的运算,从而缩短运算周期,减少能耗,提高运算效率。在应用时,对于固定位数的被乘数和乘数而言,将所有的乘积均转换为小规模的乘法运算,对于大量重复的乘法运算而言,本申请使用查询表阵列替代大量重复的乘法运算,能够大量减少运算量,且提高运算效率。且本申请的方案相比现
有技术的方案,可支持被乘数输入端的位宽N1和乘数输入端的位宽N2不相等的组合方式,从而能够更加灵活。
[0007]在一个具体的实施方式中,存储阵列包括至少2
N1+N2
根字线、至少(N1+N2)根位线、以及形成在任意一根字线和任意一根位线相交处的存储单元。译码输出端与2
N1+N2
根字线连接,以向2
N1+N2
根字线传输2
N1+N2
种译码输出信号;2
N1+N2
种运算结果与2
N1+N2
根字线一一对应,每种运算结果由高位到低位依次存储在对应字线的(N1+N2)个存储单元内;读出电路包含有(N1+N2)个读出电路单元,该(N1+N2)个读出电路单元和(N1+N2)根位线一一对应,每个读出电路单元连接对应的位线,以根据传输给2
N1+N2
根字线的译码输出信号,读取存储在对应字线上的(N1+N2)个存储单元内的运算结果。将2
N1+N2
种运算结果中的每个运算结果存储在一根位线的存储单元中,在读出电路读出运算结果时,只需打开其中的一根字线即可,减少打开字线根数,降低对写操作的干扰。且至少使用(N1+N2)存储单元存储每种运算结果,防止出现存在运算结果由于占位较多而不能够存储的情形。
[0008]在一个具体的实施方式中,译码输出端的2
N1+N2
个位宽和2
N1+N2
根字线一一对应,每种译码输出信号包含有打开2
N1+N2
根字线中的其中一根字线,同时关闭其他根字线的信号。使译码输出端的一个比特位和一根字线对应,从而通过控制译码输出端每个比特位的值为“0”或“1”,来控制打开或关闭对应的字线,便于寻址到对应的运算结果。
[0009]在一个具体的实施方式中,存储阵列中至少包含有(N1+N2+N3)根位线,每根字线上有(N1+N2+N3)个存储单元。(N1+N2+N3)个存储单元中由高位到低位依次存储有N3位进位补偿位、(N1+N2)位的运算结果。读出电路包含有(N1+N2+N3)个读出电路单元,该(N1+N2+N3)个读出电路单元和(N1+N2+N3)根位线一一对应,每个读出电路单元连接对应的位线。通过增设N3位进位补偿位,来存储运算结果,以便于后续进行加法运算时,防止出现溢位情况。
[0010]在一个具体的实施方式中,该数据运算电路还包括(N1+N2+N3)个全加器、以及(N1+N2+N3)个D触发器。其中,(N1+N2+N3)个全加器和(N1+N2+N3)个读出电路单元一一对应,每个全加器具有第一输入端、第二输入端、低位进位输入端、高位进位输出端、本位求和输出端,每个全加器的第一输入端和对应的读出电路单元连接。(N1+N2+N3)个D触发器和(N1+N2+N3)个全加器一一对应,每个D触发器具有数据输入端、数据输出端、时钟信号端,每个D触发器的数据输入端与对应的全加器的本位求和输出端连接,每个D触发器的数据输出端与对应的全加器的第二输入端连接。且高低位相邻的两个全加器之间,高位全加器中的低位进位输入端和低位全加器的高位进位输出端连接;位数最低的全加器中的低位进位输入端接低电平,位数最高的全加器中的高位进位输出端接低电平。通过一组全加器及D触发器即可实现自累加加法运算,无需采用现有技术中由若干个加法器组成加法器树的形式实现多位的加法。减少加法运算层级,提高运算效率。
[0011]在一个具体的实施方式中,该数据运算电路还包括与时钟信号端连接以给时钟信号端传输控制信号的控制电路,且该控制电路还与读出电路连接。以便于通过控制电路控制时钟信号端的启动自累加加法运算或停止自累加加法运算。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据运算电路,其特征在于,包括:译码电路,包括被乘数输入端、乘数输入端以及译码输出端;其中,所述被乘数输入端的位宽为N1,用于输入2
N1
种被乘数;所述乘数输入端的位宽为N2,用于输入2
N2
种乘数;所述译码输出端的位宽为2
N1+N2
,用于输出2
N1+N2
种译码输出信号,且每种译码输出信号对应一种被乘数和乘数组合;查询表阵列,包括与所述译码输出端连接的存储阵列、以及与所述存储阵列连接的读出电路;其中,所述存储阵列中存储有2
N1+N2
种运算结果,每种运算结果为一种被乘数和乘数组合相乘所得的运算结果,且每种运算结果对应一种译码输出信号;所述读出电路用于根据传输给所述存储阵列的一种译码输出信号,读取所述存储阵列中和该种译码输出信号对应的运算结果。2.如权利要求1所述的数据运算电路,其特征在于,所述存储阵列包括至少2
N1+N2
根字线、至少(N1+N2)根位线、以及形成在任意一根字线和任意一根位线相交处的存储单元;所述译码输出端与所述2
N1+N2
根字线连接,以向所述2
N1+N2
根字线传输所述2
N1+N2
种译码输出信号;所述2
N1+N2
种运算结果与所述2
N1+N2
根字线一一对应,每种运算结果由高位到低位依次存储在对应字线的(N1+N2)个存储单元内;所述读出电路包含有和所述(N1+N2)根位线一一对应的(N1+N2)个读出电路单元,每个读出电路单元连接对应的位线,以根据传输给所述2
N1+N2
根字线的译码输出信号,读取存储在对应字线上的(N1+N2)个存储单元内的运算结果。3.如权利要求2所述的数据运算电路,其特征在于,所述译码输出端的2
N1+N2
个位宽和所述2
N1+N2
根字线一一对应;每种译码输出信号包含有打开所述2
N1+N2
根字线中的其中一根字线,同时关闭其他根字线的信号。4.如权利要求2所述的数据运算电路,其特征在于,所述存储阵列中至少包含有(N1+N2+N3)根位线,每根字线上有(N1+N2+N3)个存储单元;其中,所述(N1+N2+N3)个存储单元中由高位到低位依次存储有N3位进位补偿位、(N1+N2)位的所述运算结果;所述读出电路包含有和所述...

【专利技术属性】
技术研发人员:佘一奇吴守道郑坚斌
申请(专利权)人:苏州兆芯半导体科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1