k簇残数系统及其进行加减运算及乘法运算的方法与流程

文档序号:37935756发布日期:2024-05-11 00:14阅读:13来源:国知局
k簇残数系统及其进行加减运算及乘法运算的方法与流程

本发明有关于一种k簇残数系统(k-cluster residue number system;简称k-rns),尤其关于一种基于存储器且使用具有减少数据容量的查找表的k簇残数系统。


背景技术:

1、边缘人工智能(edge ai)计算是一快速增长的领域,它将神经网络与物联网(internet of things;简称iot)加以结合,应用于电脑视觉、自然语言处理和自动驾驶汽车领域,并将浮点数量化为定点数,以执行推理操作。内部存储器架构(in-memoryarchitecture)是重要的边缘人工智能计算平台之一,其将存储器堆叠在以存储器为中心的神经运算(memory centric neural computing;简称mcnc)的逻辑电路之上。数据直接从堆叠的存储器上传到处理器件(processing element;简称pe)进行计算,如此避免从外部存储器上传数据以减少数据传输、降低延迟并加快了操作。使用残数系统(residue numbersystem;简称rns)进一步提高了运算性能,其充分利用内部存储器来储存整数运算的数据。

2、残数系统是一种数字系统,其首先定义模集(modular set)并借由模除法将数字转换为整数余数(也称为“残数”),然后便可对余数进行算术运算(加法和乘法)。例如,当模集定义为(7,8,9)时,动态范围会由模集的3个模数的乘积7*8*9=504来定义。以数字13及17来说,这两个数字首先借由3个模数将数字转换为残数,即13→(6,5,4)和17→(3,1,8),然后若要对13及17执行加法和乘法,只要对其残数执行加法和乘法即可,(6,5,4)+(3,1,8)=(9,6,12)→(2,6,3),等于30。(6,5,4)*(3,1,8)=(18,5,32)→(4,5,5),等于221。由于余数的幅度小得多,因此只需要简单的逻辑即可进行平行计算

3、为了清楚起见,残数系统的动态范围可以以下列公式(1)定义:

4、

5、其中:

6、m是残数系统的动态范围;以及

7、mi是残数系统的模集(m0,m1,…,mn)的第i个模数。

8、残数系统的所有算术运算都可以使用存储器的查找表,以实现平行分布式计算。然而,使用查找表,在残数系统中,其存储器需求是一个缺点。存储器的所需大小取决于每个模数的平方以及模数的位数,并且可以下列公式(2)表示:

9、

10、其中:

11、mem是所需的存储器大小;

12、mi是第i个模数;以及

13、bi是第i个模数的位数。

14、例如,它选择残数系统模集为(15,17),动态范围m=15×17=2552。由于第一个模数(即15)的长度为4位,第二个模数(即17)的长度为5位,对于所有三种算术运算(即加法、减法和乘法),其存储器需求的总量估计为3×(152×4+172×5)=7035位。其与逻辑电路设计(例如残数系统的处理单元(pe))相比,所需的存储器太大了。


技术实现思路

1、本发明一实施例提供一种在k簇残数系统(k-cluster residue number system)中进行加减运算的方法,其包含:产生一个包含2mi个储存格的加法减法查找表,用于以升幂的方式记录从零到(mi-1)的数值两次,其中mi是k簇残数系统的模集(modular set)的互质整数;将加法减法查找表储存于k簇残数系统的存储器中;当对两个整数a和b进行加法运算时,检索记录在加法减法查找表的位置q的储存格中的数值,其中q=((amod mi)+(b modmi));以及当整数x减去整数y时,检索记录在加法减法查找表的位置r的储存格中的值,其中r=(x mod mi)-(y mod mi)=(x mod mi)+(mi-(ymod mi))=rx+(mi-ry)=rx+ry’,rx等于(x mod mi),ry等于(y mod mi),而ry'等于(mi-(y mod mi))。

2、本发明另一实施例提供一种在k簇残数系统中进行乘法运算的方法,其包含:为k簇残数系统的模集中的互质整数mi,产生乘法查找表,其中互质整数mi不等于2,乘法查找表由s个储存格所组成,将乘法查找表储存在k簇残数系统的存储器中;以及使用乘法查找表对被乘数和乘数进行乘法运算。

3、其中,使用乘法查找表对被乘数和乘数进行乘法运算包含:判断被乘数的补数是否大于或等于乘数;以及根据行输入项(column entry)和列输入项(row entry),从乘法查找表中检索数值,以作为被乘数和乘数的乘积。其中,如果判断出被乘数的补数大于或等于乘数,则执行以下步骤;选择被乘数作为行输入项,选择乘数作为列输入项,并判断行输入项是否大于或等于列输入项;如果判断出行输入项大于或等于列输入项,则保留行输入项和列输入项;以及如果判断出行输入项小于列输入项,则将行输入项和列输入项互换。其中,如果判断出被乘数的补数小于乘数,则执行以下步骤;选择被乘数的补数作为行输入项,选择乘数的补数作为列输入项,并判断行输入项是否大于或等于列输入项;如果判断出行输入项大于或等于列输入项,则保留列输入项和行输入项;以及如果判断出行输入项小于列输入项,则将行输入项和列输入项互换。

4、本发明另一实施例提供一种k簇残数系统,其包含处理器以及存储器。处理器用以:产生一个包含2mi个储存格的加法减法查找表,用于以升幂的方式记录从零到(mi-1)的数值两次,其中mi是k簇残数系统的模集的互质整数;当对两个整数a和b进行加法运算时,检索记录在加法减法查找表的位置q的储存格中的数值,其中q=((amod mi)+(b mod mi));以及当整数x减去整数y时,检索记录在加法减法查找表的位置r的储存格中的值,其中r=(x mod mi)-(y mod mi)=(x mod mi)+(mi-(ymod mi))=rx+(mi-ry)=rx+ry’,rx等于(x mod mi),ry等于(y mod mi),而ry'等于(mi-(y mod mi))。此外,存储器耦接于处理器,并用以储存加法减法查找表。

5、本发明另一实施例提供一种其包含处理器以及存储器。处理器用以:为k簇残数系统的模集中的互质整数mi,产生乘法查找表,其中互质整数mi不等于2,乘法查找表由s个储存格所组成,将乘法查找表储存在k簇残数系统的存储器中;以及使用乘法查找表对被乘数和乘数进行乘法运算。其中,使用乘法查找表对被乘数和乘数进行乘法运算包含:判断被乘数的补数是否大于或等于乘数;以及根据行输入项和列输入项,从乘法查找表中检索数值,以作为被乘数和乘数的乘积。其中,如果判断出被乘数的补数大于或等于乘数,则执行以下步骤;选择被乘数作为行输入项,选择乘数作为列输入项,并判断行输入项是否大于或等于列输入项;如果判断出行输入项大于或等于列输入项,则保留行输入项和列输入项;以及如果判断出行输入项小于列输入项,则将行输入项和列输入项互换。其中,如果判断出被乘数的补数小于乘数,则执行以下步骤;选择被乘数的补数作为行输入项,选择乘数的补数作为列输入项,并判断行输入项是否大于或等于列输入项;如果判断出行输入项大于或等于列输入项,则保留列输入项和行输入项;以及如果判断出行输入项小于列输入项,则将行输入项和列输入项互换。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1