一种计算x|(x+1)的加速电路及计算设备制造技术

技术编号:37995851 阅读:9 留言:0更新日期:2023-06-30 10:10
本发明专利技术公开了一种计算x|(x+1)的加速电路及计算设备,本发明专利技术采用依次串联的第一计算模块B0~B

【技术实现步骤摘要】
一种计算x|(x+1)的加速电路及计算设备


[0001]本专利技术涉及一种计算x|(x+1)的加速电路及计算设备,属于计算机领域。

技术介绍

[0002]随着计算数据的以指数级增长,计算机的算术逻辑单元(Arithmeticlogical Unit,ALU)需要承担更多的计算压力,耗费更多的计算资源,ALU在计算过程中是对计算对象逐步进行计算,并且将每一步计算的结果保存到寄存器之后,再进行下一步的计算,会使用大量的处理器资源,调用诸多计算模块和逻辑模块,不仅耗费较多时间同时耗费大量资源。
[0003]目前,采用加速电路实现ALU的部分计算功能,使得计算机ALU模块只需要进行数据的传输调度和加速器的调用,而不用参与到数据的计算处理当中,可以极大的降低了功耗,从而释放更多的资源。
[0004]x|(x+1)计算是为了将输入的二进制数据最右位的0变为1,在编程和计算机科学、电子学、数据结构和算法、加密和安全性等领域中被广泛应用,例如,它在计数器重置、生成下一个排列或组合、数字信号处理、通信、文件处理、伪随机数生成器等方面都很有用。x|(x+1)若采用ALU进行计算,则需要消耗大量的资源,为了释放资源现在急需计算x|(x+1)的加速电路。

技术实现思路

[0005]本专利技术提供了一种计算x|(x+1)的加速电路及计算设备,解决了
技术介绍
中披露的问题。
[0006]为了解决上述技术问题,本专利技术所采用的技术方案是:
[0007]一种计算x|(x+1)的加速电路,包括依次串联的第一计算模块B0~B
n
‑2和第二计算模块B
n
‑1;
[0008]第一计算模块B0~B
n
‑2分别与x的0位至n

2位对应;其中,x为输入所述加速电路的n位二进制数;
[0009]第一计算模块B0的两路输入分别为A0和1,两路输出分别为A0和1;其中,1作为y的0位数值,A0作为第一计算模块B1的输入,A0为x的0位数值;
[0010]第一计算模块B
i
的两路输入分别为A
i
和两路输出分别为和其中,作为y的i位数值,作为第一计算模块B
i+1
的输入,A
i
为x的i位数值,y为所述加速电路输出的n位二进制数,i和j均为整数,0<i≤n

2;
[0011]第二计算模块B
n
‑1与x的n

1位对应,第二计算模块B
n
‑1两路输入分别为A
n
‑1和
一路输出为其中,A
n
‑1为x的n

1位数值。
[0012]第一计算模块包括与门和或门,第一计算模块的两路输入为与门的输入,也是或门的输入,或门的输出作为对应的y位数值,与门的输出作为下一级第一计算模块或第二计算模块的输入。
[0013]第二计算模块为或门。
[0014]与门为二输入或门。
[0015]或门为二输入与门。
[0016]一种计算设备,包括中央处理器和所述的加速电路;中央处理器的算术逻辑单元向所述的加速电路输入x,接收所述的加速电路反馈的y。。
[0017]本专利技术所达到的有益效果:本专利技术采用依次串联的第一计算模块B0~B
n
‑2和第二计算模块B
n
‑1,第二计算模块B
n
‑1对应输入二进制的最高位,第一计算模块B0~B
n
‑2对应输入二进制的其余位,各计算模块根据输入二进制对应位的数值和上一级计算模块的一路输出,获得输出二进制对应位的数值和下一级计算模块的输入,实现计算x|(x+1)的加速电路,可解放ALU的计算资源,降低计算资源的消耗。
附图说明
[0018]图1为加速电路的示意图;
[0019]图2为迭代结构。
具体实施方式
[0020]下面结合附图对本专利技术作进一步描述。以下实施例仅用于更加清楚地说明本专利技术的技术方案,而不能以此来限制本专利技术的保护范围。
[0021]如图1所示,一种计算x|(x+1)的加速电路,包括依次串联的第一计算模块B0~B
n
‑2和第二计算模块B
n
‑1。
[0022]第一计算模块B0~B
n
‑2分别与x的0位至n

2位对应,第二计算模块B
n
‑1与x的n

1位对应;其中,x为输入所述加速电路的n位二进制数。
[0023]第一计算模块B0的两路输入分别为A0和1,两路输出分别为A0和1;其中,1作为y的0位数值,A0作为第一计算模块B1的输入,A0为x的0位数值;第一计算模块B
i
的两路输入分别为A
i
和两路输出分别为和其中,作为y的i位数值,作为第一计算模块B
i+1
的输入,A
i
为x的i位数值,y为所述加速电路输出的n位二进制数,i和j均为整数,0<i≤n

2。
[0024]第二计算模块B
n
‑1与x的n

1位对应,第二计算模块B
n
‑1两路输入分别为A
n
‑1和一路输出为其中,A
n
‑1为x的n

1位数值。
[0025]上述电路采用依次串联的第一计算模块B0~B
n
‑2和第二计算模块B
n
‑1,第二计算模块B
n
‑1对应输入二进制的最高位,第一计算模块B0~B
n
‑2对应输入二进制的其余位,各计算
模块根据输入二进制对应位的数值和上一级计算模块的一路输出,获得输出二进制对应位的数值和下一级计算模块的输入,实现计算x|(x+1)的加速电路,可解放ALU的计算资源,降低计算资源的消耗。
[0026]x|(x+1)计算是为了将输入的二进制数最右位的0变为1,如输入00001011计算后的结果为00001111,即将2位变为0,由于是按位计算,将x+1视为x与二进制数0(即二进制数00000000)相加再与x进行与运算,将1即(00000001)视为第一个进位数值。利用进位加法器的思想,将每位的计算结果作为更高一位的输入之一。
[0027]因此可设计一个迭代结构,如图2所示,或门输入为低一位的进位输出和该位的数据输入,或门输出为该位计算后的输出;与门的输入为低一位的进位输出和该位的数据输入,与门的输出为该位计算后向更高一位的进位输出。
[0028]定义当前为i位,图中,C
i
‑1为前一位的进位输入,A
i
为输入二进制数(即x)的i位数值,C
i
为计算后向高一位的进位,Y...

【技术保护点】

【技术特征摘要】
1.一种计算x|(x+1)的加速电路,其特征在于,包括依次串联的第一计算模块B0~B
n
‑2和第二计算模块B
n
‑1;第一计算模块B0~B
n
‑2分别与x的0位至n

2位对应;其中,x为输入所述加速电路的n位二进制数;第一计算模块B0的两路输入分别为A0和1,两路输出分别为A0和1;其中,1作为y的0位数值,A0作为第一计算模块B1的输入,A0为x的0位数值;第一计算模块B
i
的两路输入分别为A
i
和两路输出分别为和其中,作为y的i位数值,作为第一计算模块B
i+1
的输入,A
i
为x的i位数值,y为所述加速电路输出的n位二进制数,i和j均为整数,0<i≤n

2;第二计算模块B
n
‑1与x的n
...

【专利技术属性】
技术研发人员:尚德龙孙拓拓李犇刘伟佳乔树山周玉梅
申请(专利权)人:中科南京智能技术研究院
类型:发明
国别省市:

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

1