CN108153512B - 四步关联全加器 - Google Patents
四步关联全加器 Download PDFInfo
- Publication number
- CN108153512B CN108153512B CN201711270831.0A CN201711270831A CN108153512B CN 108153512 B CN108153512 B CN 108153512B CN 201711270831 A CN201711270831 A CN 201711270831A CN 108153512 B CN108153512 B CN 108153512B
- Authority
- CN
- China
- Prior art keywords
- bit
- row
- carry
- sum
- value
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- 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/50—Adding; Subtracting
- G06F7/501—Half or full adders, i.e. basic adder cells for one denomination
-
- 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/4824—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 using signed-digit representation
-
- 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/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/506—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Operations Research (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
- Memory System (AREA)
- Complex Calculations (AREA)
Abstract
一种四步关联全加器。一种用于使第一一位变量与第二一位变量以及低位进位位相加以生成总和位和高位进位位的方法,该方法包括:将总和位初始化为第二一位变量的值,将高位进位位初始化为低位进位位的值,以及如果对由第一一位变量、第二一位变量以及低位进位位的取反值形成的序列与预先定义的一组变化触发序列中的一个变化触发序列的比较匹配,则修改总和位和高位进位位。
Description
相关申请的交叉引用
本申请要求享有于2016年12月6日提交的美国临时专利申请62/430,372和同样于2016年12月6日提交的62/430,767的优先权,这两个申请通过引用并入本文。
技术领域
本发明总体上涉及关联计算,并且更具体地涉及使用关联计算的全加器实现。
背景技术
加法器是执行数字加法的数字电路。最常见的加法器对二进制数进行运算。二进制数仅使用两个不同的符号0和1来表示数值。二进制数的每个数字表示2的递增次幂,其中最右边的数字表示20,下一个数字表示21,然后是22,以此类推。二进制数的值可以通过公式1来计算:
X×20+Y×21+Z×22… 公式1
其中X、Y、Z等的值可以是0或1。
使两个单个数字的二进制数A和B相加是相对简单的。A+B的和是S和CY,其中总和S等于公式1中的X;而CY(其为“进位位”),等于公式1中的Y。
因此,使两个一位数A和B相加的四种可能方式产生:
(a)0+0→S=0,CY=0
(b)0+1→S=1,CY=0
(c)1+0→S+1,CY=0
(d)1+1→S=0,CY=1
在许多计算机和其他种类的处理器中,加法器不仅用于算术逻辑单元中,而且还用于处理器的其他部分中,其中加法器用于计算地址、表索引、增量和减量运算符以及类似的操作。
现在参考的图1示出了本领域公知的一位半加器100、一位全加器110以及多位加法器120。
本领域已知的一位半加器100使两个单个二进制数字A和B相加,并且具有两个输出,总和S以及进位CYout。进位表示溢出到多位数字加法的下一数字。
全加器110使二进制数相加并考虑低位进位(carry in)的值和高位进位(carryout)的值。一位全加器110使三个一位数A、B以及CYin相加,其中A和B是要相加的位,而CYin是从先前的一位全加器运算中低位进位的位。全加器的输出是S和CYout,其中S是所计算的三个输入位的总和,而CYout是高位进位的位。
多位加法器120由多个一位全加器构成,以使两个N位数P和Q相加。除了来自P的位A和来自Q的位B之外,每个全加器输入端还接收输入进位位CYin,其为先前加法器的输出进位位CYout。注意,第一个(并且仅第一个)全加器总是具有值为零的低位进位位CYin=0,因为没有来自先前步骤的低位进位。多位加法器120的示例是四位加法器,并且其由连接的四个一位加法器110构成,以使得一个加法器的高位进位是下一加法器的低位进位。多位加法器120的输出是多位数R,其由每个全加器110的得到的位S和最后一个(最左侧)全加器的CYout构成。
现在参考的图2是一位全加器的真值表200。表200中的每一行针对输入位A、B以及CYin中的每一个提供输入值的可能排列。表200还列出了期望的输出S(其是A+B+CYin求和的结果)以及高位进位位CYout(其是针对每个排列的求和运算的输出进位)。
在行210中,输入位的值是A=0,B=0以及CYin=0。得到的二进制总和为0(0+0+0),并且因此S的值为0且CYout的值为0。在行220、230以及250中,输入位中的一个输入位的值为1,而另外两个位的值为0。得到的二进制总和为1,并且因此S的值为1且CYout的值为0。在行240、260以及270中,位中的一个位的值为0,而另外两个位的值为1。二进制总和(1+1+0)是10,其中总和S为0且高位进位CYout为1。在行280中,所有输入位的值为1,因此结果是(1+1+1),并且因此S的值为1且CYout的值为1。
全加器可以由许多数字电路实现,具有许多逻辑门的组合。全加器也已经实现于存储器内的计算设备中,如在2016年5月5日提交并且转让给本申请的共同受让人的美国专利申请15/146,908中描述的。美国专利申请15/146,908通过引用并入本文。美国专利申请15/146,908中描述的全加器的关联计算花费12个时钟周期。
发明内容
根据本发明的优选实施例,提供了一种用于使第一一位变量和第二一位变量以及低位进位位相加以生成总和位和高位进位位的方法。该方法包括:将总和位初始化为第二一位变量的值;将高位进位位初始化为低位进位位的值;以及如果对由第一一位变量、第二一位变量以及低位进位位的取反值形成的序列与预先定义的一组用于触发变化的序列中的一个用于触发变化的序列的比较匹配,则修改总和位和高位进位位为预先定义的输出值。
进一步地,根据本发明的优选实施例,预先定义的一组用于触发变化的序列是000、010、111以及101,并且其相关联的总和位和高位进位位的取反值分别是(1,1)、(0,0)、(0,0)以及(1,1)。
更进一步地,根据本发明的优选实施例,比较和修改最多采用四个比较步骤。
更进一步地,根据本发明的优选实施例,比较和修改是在存储器阵列中进行的。
此外,根据本发明的优选实施例,该方法还包括将总和位写入第二一位变量在存储器阵列中的存储单元。
此外,根据本发明的优选实施例,方法还包括将高位进位位写入所述低位进位位在存储器阵列中的存储单元。
根据本发明的优选实施例,还提供了一种用于使第一多位变量和第二多位变量相加以生成多位数的多位总和以及高位进位位的方法,变量各自具有N个位,该方法包括:将多位总和初始化为第二多位变量的值;将低位进位位和高位进位位初始化为零。该方法包括:选择用于进行运算的位,从最低有效位开始直到达到最高有效位为止,并且对选定的位执行步骤(a)和(b):(a)如果对由来自第一多位变量的选定的位、来自第二多位变量的选定的位以及低位进位位的取反值形成的序列与预先定义的一组用于触发变化的序列的比较是匹配的,则将多位总和的选定的位的值和高位进位的值修改为预先定义的输出值;以及(b)将低位进位位的值设置为高位进位位的值。
进一步地,根据本发明的优选实施例,该方法还包括将多位总和写入第二多位变量在存储器阵列中的存储单元,并且将高位进位位写入所述低位进位在存储器阵列中的存储单元。
根据本发明的优选实施例,还提供了一种用于使第一一位变量和第二一位变量以及低位进位位相加以生成总和位和高位进位位的系统,该系统包括:非破坏性存储器阵列,其包括由位线连接的列,该列在第一行中存储第一一位变量,在第二行中存储第二一位变量,并且在第三行中存储低位进位位的反。该系统还包括计算表,其用于存储一组用于触发变化的序列,以及每个序列的相关联的总和位和相关联的高位进位位。系统还包括行解码器,其用于根据该组用于触发变化的序列来激活第一行、第二行以及第三行,一次根据一个当前用于触发变化的序列。该系统还包括列解码器,其用于接收来自位线的比较结果,该比较结果指示存储在列中的数据与当前用于触发变化的序列的匹配,行解码器激活存储器阵列的总和行和高位进位行,并且如果比较结果指示匹配,则列解码器通过位线来将与当前用于触发变化的序列相关联的总和位和高位进位位写入总和行和高位进位行。
进一步地,根据本发明的优选实施例,总和行是第二行;并且更进一步地,总和行是被初始化为第二行的值的第四行。
进一步地,根据本发明的优选实施例,高位进位行是第三行;并且更进一步地,高位进位行是被初始化为第三行的值的第五行。
根据本发明的优选实施例,还提供了一种存储器内的加法器系统,该系统包括:非破坏性存储器阵列,其具有存储数据的行和列,其中第一行存储第一一位变量,第二行存储第二一位变量,并且第三行存储低位进位位的反,并且其中总和位将被存储在第二行中,并且所述高位进位位的反将被存储在第三行中,并且其中总和位将被存储在总和行中,并且高位进位位的反将被存储在高位进位行中。系统还包括计算表,其用于存储一组用于触发变化的序列,以及其相关联的总和位和高位进位位;以及行解码器,其用于根据该组用于触发变化的序列来激活第一行、第二行以及第三行,一次根据一个当前用于触发变化的序列。系统还包括列解码器,其用于接收比较结果,该比较结果指示存储在列中的数据与当前用于触发变化的序列的匹配,行解码器激活存储器阵列的总和行和高位进位行,并且在其中比较结果指示匹配的每一列中,列解码器将与当前用于触发变化的序列相关联的总和位和高位进位位写入总和行和高位进位行。
进一步地,根据本发明的优选实施例,总和行是所述第二行;并且此外,总和行是被初始化为第二行的值的第四行。
更进一步地,根据本发明的优选实施例,高位进位行是第三行;并且更进一步地,高位进位行是被初始化为第三行的值的第五行。
根据本发明的优选实施例,还提供了一种存储器内的加法器系统,该系统包括:非破坏性存储器阵列,其具有存储数据的行和列,其中第一组行存储第一多位变量的位,第二组行存储第二多位变量的位,并且第三组行存储低位进位位的反。系统还包括计算表,其用于存储一组用于触发变化的序列,以及其相关联的总和位和相关联的高位进位位;行解码器,其用于根据该组用于触发变化的序列来激活一组当前行:第一组行、第二组行以及第三组行中的一行,一次根据一个当前用于触发变化的序列,一组当前行接着另一组当前行地激活。该系统还包括列解码器,其用于接收比较结果,该比较结果指示存储在列中的数据与当前用于触发变化的序列的匹配。行解码器激活存储器阵列中的与一组当前行相关联的总和行以及与下一组当前行相关联的高位进位行,并且在其中比较结果指示匹配的每一列中,列解码器将与当前用于触发变化的序列相关联的总和位和高位进位位写入被激活的总和行和高位进位行。
此外,根据本发明的优选实施例,该组用于触发变化的序列是000、010、111以及101,并且其相关联的总和位和高位进位位的取反值分别是(1,1)、(0,0)、(0,0)以及(1,1)。
附图说明
在说明书的结论部分中特别指出并清楚地要求保护关于本发明的主题。然而,当与附图一起阅读时,通过参考以下具体实施方式,可以更好地关于组织和操作方法连同其目的、特征以及优点理解本发明,其中:
图1是本领域公知的一位半加器、一位全加器以及多位加法器的图示;
图2是一位全加器的标准真值表;
图3A是突出输入位值与输出位值之间的变化的一位全加器的标准真值表;
图3B是使用低位进位的取反值的全加器真值表;
图4A和图4B是计算表及其根据具有低位进位的取反值的全加器真值表的创建逻辑的示意图;
图5是根据本发明的优选实施例构造和操作的一位全加器的操作流程的图示;
图6和图7是使用图5的一位全加器的多位加法器的示例的图示;
图8和图9是根据本发明的优选实施例构造和操作一个示例性多位全加器的图示,其能够使两个多位数相加;
图10是使用图8和图9中描述的实施例执行的示例计算的图示;
图11是能够执行XOR布尔运算的双端口SRAM单元的示意图;以及
图12是使用图11的双端口SRAM单元的多位全加器的替代实施例的示意图。
应该理解,为了简单且清楚地进行示例说明,附图中示出的元素不一定按比例绘制。例如,为了清楚起见,元素中的一些元素的尺寸可能相对于其他元素被放大。此外,在认为合适的情况下,可以在附图中重复附图标记以指示对应或类似的元素。
具体实施方式
在以下具体实施方式中,阐述了许多具体细节以便于提供对本发明的透彻理解。然而,本领域技术人员将会理解,可以在没有这些具体细节的情况下实践本发明。在其他情况下,没有详细描述公知的方法、过程以及组件,以免模糊本发明。
申请人已经注意到,对于图2的全加器真值表200中的行中的一些行,输出元素S和CYout的值与输入元素B和CYin的值完全相同。例如,在行210中就是这种情况,其中B和CYin的值都是0,S和CYout的值与其相同。申请人已经认识到,对于存储器内的计算,使用相同的存储器单元来存储输入元素B和CYin以及输出元素S和CYout(即,B和S存储在相同的存储单元,并且CYin和CYout存储在相同的存储单元)可以优化计算。当输入和输出具有相同的值时,不需要对结果执行写入操作,这可以改进全加器计算的效率。
对输入和输出使用共享单元可以在某些情况下消除对写入的需要,然而对于一些其他情况,输入元素(B和CYin)的值以及输出元素(S和CYout)的值不同,并且应当将新的值写入共享单元。例如,在行220中是这种情况,其中B的值为0而S(其与B共享相同的单元)的值为1,并且其中CYin的值为1而CYout(其与CYin共享相同的单元)的值为0。
现在参考的图3A示出了标准全加器真值表200',其中用正方形圈出了输入值与输出值不同的那些位。这些差异意味着可能需要写入操作。存储器内的全加器需要检测这种情况并且实现所需的变化。
图3A中的真值表200'中的输入单元B和CYin的值与输出单元S和CYout的值之间的比较示出了六个变化。
第2行中的两个变化:B的值为0而S的值为1,以及CYin的值为1而CYout的值为0。
第4行中的一个变化:B的值为1而S的值为0。
第5行中的一个变化:B的值为0而S的值为1。
第7行中的两个变化:B的值为1而S的值为0,以及CYin的值为0而CYout的值为1。
在表的所有其他行中,第1行、第3行、第6行以及第8行的输出值与输入值相同。
实现仅针对变化的写入操作的全加器系统可能需要六个周期来完成计算。在八种可能的情况中的四种情况下,输出与输入不同。在这四种情况中的两种情况下,变化可以在单个写入操作(第4行和第5行)中实现,并且在另外两种情况下(在第2行和第7行中)需要两个写入操作,因为0和1都需要被写入并且这两个值不能在单个周期内写入。
申请人进一步检查了图3A的真值表200',并且认识到可以通过使用输入和输出中的低位进位的反来进一步减少写入操作的次数。进位的反在本文中标记为CY',如图3B的表300中所示,现在参考图3B。如可以看出的,在第2行和第7行中,使用取反进位CY'可能导致在列B和列CY'in中具有相同的值,同时保持需要写入变化的情况的总数(四个)。
使用取反进位CY'可以将输入和输出之间的变化的总数减少到四个(而不是六个)。在表300的第2行中,B和CY'in的值均为0,并且S和CY'out的值均为1。第4行和第5行与图3A的第4行和第5行类似,并且在第7行中B和CY'in的值为1以及S和CY'out的值为0。表中的所有其他行,即第1行、第3行、第6行以及第8行保持如图3A中的不变。
对其中输出与输入不同的第2行、第4行、第5行以及第7行感兴趣,并且这些行在本文中称为“焦点行”。这些行的每一行中的输入位A、B以及CY'in的值在本文中称为“变化触发序列”(CTS),并且这些行中的输出位S和CY'out的值(总和的值以及高位进位位的值)在本文中称为“要求的输出”(RO)。
现在参考的图4A和图4B示出了如何使用进位的反来根据全加器真值表创建根据本发明的优选实施例构造和操作的计算表410。计算表410是由下面描述的全加器系统使用的主要逻辑。
图4A示出了使用进位的反CY'的全加器的真值表300',其中(类似于图3B)在输入CY'in和输出CY'out中用矩形圈出了焦点行。全加器计算是通过将在本文中称为输入序列位(ISB)的A、B以及CY'in的输入值与四个变化触发序列(CTS)进行比较来实现的。如果ISB与四个CTS中的一个CTS相同,则根据对应焦点行的要求的输出(RO)的值来将新的值写入S和CY'out。否则(ISB与四个CTS中的任何一个都不匹配,即,输入与其他“非焦点”行中的一行相同),则不做任何变化。
ISB(包括输入位A、B以及CY'in)可以匹配单个CTS,因为CTS表示真值表中的可能排列。对于输入B和输出S使用相同的存储器存储单元可能导致改变存储在输入位B的存储器存储单元中的值。这种变化可能产生新的ISB(包括原始输入位A、B的新值以及无论是原始的还是新的CY'in),其可能与另一CTS匹配。如果针对ISB检查了所有的CTS,则附加的匹配可能导致B的附加变化,这是应该避免的。申请人已经意识到,以特定次序来比较ISB与CTS可以避免发生这种情况。以确保所比较的CTS的RO不会导致ISB与接下来的CTS中的任一个CTS匹配的次序来建立CTS。
表400包括四个创建的CTS。CTS1(000)根据表300'中的第2行的A、B以及CY'in创建。CTS2(010)根据第4行的A、B以及CY'in创建,CTS3(111)根据第7行的位A、B以及CY'in的值创建,并且CTS4(101)根据第5行的A、B以及CY'in创建。可以理解,CTS的次序最多确保单个匹配,并且应该保持与ISB进行比较:首先将ISB与CTS1比较,然后与CTS2、CTS3以及CTS4比较。根据相关焦点行的S和CY'out的值(其是相同的)创建RO表401,并且RO表401可以指示要写入到相关输出存储单元的值(S并且可选地CY'out)。
申请人已经认识到,在一些情况下(即,在CTS2和CTS4中),CY'out和CY'in的值是相同的,因此CY'out的值是否被CY'in覆写并不改变CY'out的最终值,所以覆写CY'out或不覆写CY'out都有可能。
图4B示出了通过连接(attack)表400和401并将所得到的表转置而创建的计算表410。表的前三行包含输入位A、B以及CY'in的值(包括ISB),并且RO行包含要在与每个CTS相关联的S和CY'上写入的值(回想一下,该值对于S和对于CY'是相同的)。需要强调,可以以许多方式来实现计算表,而不一定按行和列实现,只要CTS及其相关联的RO是可清楚地识别的。
实现仅针对变化的写入操作的全加器系统(使用CY'而不是CY)可以产生理论计算仅采取四个步骤的全加器。在每个步骤中,将不同的CTS与ISB进行比较,并且只有在需要时才写入RO。
现在参考的图5示出了根据本发明的优选实施例构造和操作的一位全加器的操作流程。该流程包括初始化步骤510和计算步骤520。
该流程的初始化步骤510包括接收三个输入位A、B以及CY'in(ISB),利用B的值来初始化S的值,并且利用CY'in的值来初始化CY'out的值。
该流程的计算步骤520包括:将ISB与四个CTS进行比较,并且当发现匹配时将与匹配的CTS相关联的RO写入S并且可选地写入CY'out。如上文提及的,比较次序很重要,因此首先比较ISB与CTS1(即:A==0,B==0,CY'in==0),并且如果所有位都匹配,则将相关联的RO(1)写入S和CY'out(即,S=CY'out=1)。接着,比较ISB与CTS2(A==0,B==1,CY'in==0),并且如果所有位都匹配,则将相关联的RO(0)写入S并且可选地写入CY'out(即,S=0并且可选地CY'out=0,因为CY'out的值已经为0)。接下来,比较ISB与CTS3(即:A==1,B==1,CY'in==1),如果所有位都匹配,则将相关联的RO(0)写入S并且可选地写入CY'out(即,S=CY'out=0)。最后比较ISB与CTS4(即:A==1,B==0,CY'in==1),如果所有位都匹配,则将相关联的RO(1)写入S并且可选地写入CY'out(即,S=1并且可选的CY'out=1,因为CY'out的值已经为1)。
如已经指出的,CTS2和CTS4的RO仅需要写入S,因为CY'out的值与CY'in的值相同,但是该RO也可以写入CY'out,因为新的值与旧的值相同,所以不进行实际改变。可以理解,如果在ISB和CTS之间发现匹配,则比较可以停止,因为输入位仅可以与四个预定义的CTS中的一个匹配。
通过将输入与期望的输出值进行比较可以发现位值的变化,并且申请人已经认识到,可以使用由关联计算提供的高效搜索来在单个搜索操作中找到所有匹配的ISB。这样的搜索可以基于2011年8月1日提交的美国专利9,406,381,其通过引用并入本文,并且转让给本申请的共同受让人,
为了实现多位全加器,步骤n的CY'out可以变成步骤n+1的CY'in。多位全加器的结果(使两个N位数P和Q相加)是由每个全加器的结果位S和最后一个全加器的进位CY'out(称为溢出位)构成的多位数R。
现在参考的图6和图7说明了示出使用图5的一位加法器来使两个四位操作数P=0101和Q=1110相加的多位加法器的示例。计算的预期结果R是0011,其中预期的溢出位是1(注意,由于全加器以进位的反来进行运算,所以来自上次运算的预期进位位为0)。
图6示出了输入位表700,其包括四行:OP_A、OP_B、OP_CY'以及S,并且包括五列:溢出、col 1、col 2、col 3以及col 4。第一操作数0101的位被插入到行OP_A中,并且第二操作数1110的位被插入到行OP_B中。进位的值初始为0,所以进位的反的值为1,并且因此OP_CY'行具有位11111。总和行S初始化有OP_B的相同值,例如,1110。
可以理解,始终使用具有相同CTS和RO值的同一计算表410,而不管要相加的位的数量和操作数的值。
计算开始于col 4的ISB并继续直到其以col 1结束为止,之后提供所有列的S位以及溢出列的取反高位进位OP_CY'。将col 4的ISB(位OP_A、位OP_B以及位OP_CY')与计算表410中的每个CTS(为了方便,在图6中重复)进行比较。如果ISB与CTS匹配,则将相关联的RO写入相关列的行S和下一列的OP_CY'(例如,当比较列3的ISB时,将RO写入列3的S位和列2的OP_CY'位)。
在图7中,示出了ISB比较及其结果。在表710中,col 4(101)的ISB首先与CTS1(000)进行比较,然后与CTS2(010)、CTS3(111)以及CTS4(101)进行比较。ISB与RO值为1的CTS4匹配。因此,将值1写入列col 4的S行和下一列col 3的行OP_CY'。
在表720中,将列col 3的ISB 011与四个CTS进行比较,并且没有发现匹配。因此,不执行任何写入操作,并且S和下一列的OP_CY'的值不发生改变。
在表730中,将来自列col 2的ISB 111与CTS进行比较,并且发现其与CTS3匹配。因此,将相关的RO(其值为0)写入col 2的S以及前一位col 1的OP_CY'。
在表740中,将来自列col 1的下一ISB与CTS进行比较,并且发现其与CTS2匹配。因此,将相关的RO(其值为0)写入行S和溢出列的OP_CY'。
计算结果R的值是0011,现在存储在行S中,并且单个CY'out位(在溢出列的OP-CY'行中列出)是0。因此,计算结果为0011,进位为1(CY'out的反),这是预期的计算结果。
申请人已经注意到,有时应当避免使用相同的单元用于输入和输出,例如,当多于一次的计算需要相同的输入时,或者当使用管线方案时,其中读取和写入操作可以同时进行(即,在周期n中比较A、B、CY'in,并且在周期(n+1)中写入输出S和CY'out以同时进行A、B、CYin的下一次比较)。在这些情况下,S可以存储在专用的输出单元中(而不是重新使用B),初始化为与输入位B相同的值。在这种类型的实施例中,保持仅写入变化的概念,同时保持不接触输入位的原始值。
上文描述的四步关联全加器发明可以使用任何非破坏性存储器阵列来实现,其具有使用计算表410的每列两位线。在下文中,使用在美国专利9,558,812中描述的存储器内的计算设备来实现四步全加器的示例实现方式。
现在参考的图8和图9是根据本发明的优选实施例构造和操作的多位全加器800的一个示例性实施例的图示,其能够使两个多位数X和Y相加。多位全加器800包括存储器阵列810、计算表820、行解码器830以及列解码器840。
全加器计算基于存储在存储器阵列810中的ISB与四个CTS之间的比较。根据公式2,可以使用ISB与CTS之间的XOR逻辑运算来实现两个操作数的比较。
NOT(ISB XOR CTS) 公式2
全加器800可以使用以下等价公式3来执行存储器内的逻辑运算AND和NOR。
(ISB'AND CTS)NOR(ISB AND STC') 公式3
为了执行这种类型的计算,可以使用两个单元来存储ISB的每个位,并且可以使用两个单元来存储四个CTS中的每一个CTS的每个位。
存储器阵列810包括布置成矩阵的多个单元811。同一列中的所有单元811连接到相同的位线对BL和BL'。同一行中的所有单元连接到相同的读使能(RE)线和相同的写使能(WE)线。
ISB和ISB'存储在存储器阵列810中。存储器阵列810中的若干行用于存储多位二进制操作数X的所有位Ai,其他行用于存储第二多位二进制操作数Y的位Bi。一个行CY'用于存储进位的反。另外,存储器阵列810中的若干行用于存储A'i(操作数X的取反位),其他行用于存储B'i(操作数Y的取反位),并且一个行可以存储进位CY。
计算的总和可以存储在专用行Si中,以与Bi相同的位值开始。(如上面描述的,Si也可以存储在与Bi相同的行中)。A、A'、B、B'以及S中的行的数量可以是操作数X和Y中的位的数量。每行可以连接到不同的RE线和不同的WE线。CY和CY'各自可以是单个行。
计算表820包括要与ISB比较的CTS,以及在发现匹配时要写入的RO。
行解码器830包括多个读使能(RE)线和写使能(RE)线,并且可以对计算表820进行访问。行解码器830可以基于计算表820来选择用于读取的行,并且可以选择用于写入的行。
行解码器830可以通过激活对应的RE线来选择用于读取的行。可以通过对相关RE线充电来执行针对读取的行选择。可以同时激活若干RE线以接收在同一列上的单元之间的逻辑NOR运算。(如美国专利8,238,173中描述的)。在比较步骤期间,可以激活ISB的相关位的RE线。可以根据所比较的CTS的位的值来选择对应的ISB行。CTS中的值1可以对应于激活ISB的相关RE,并且CTS中的值0可以对应于不激活相关RE。
行解码器830可以通过激活对应的WE线来选择用于写入的行。可以同时激活若干WE线,以使能多写入操作。可以通过对相关WE行进行充电来执行针对写入的行选择。在RO的写入操作期间,可以激活S和/或CYout和CYin的相关行的WE。
列解码器840可以对计算表820进行访问,并且可以通过根据所需的操作:读取或写入用适当的电压对所选列的位线BL和BL'进行预充电和/或充电来控制列选择。列解码器840包括TAG单元842、预充电器844以及充电器846。
TAG单元842可以用于存储在存储于列中的ISB与CTS之间进行的比较的结果。每个列可以具有TAG单元842中的专用TAG元件。如果在ISB与CTS之间发现匹配,则对应列的TAG可以具有值1,否则具有值0。TAG的值是在指定的列上的所有激活的单元之间执行逻辑NOR的结果。
预充电器844可以对所有列的BL和BL'进行预充电,以便于执行存储在激活的列中的ISB与CTS之间的比较。
对于其中TAG值为1的所有列,充电器846可以根据计算表820中的相关RO的值来对BL和BL'进行充电。如果RO值为1,则充电器846可以将BL充电为1并且将BL'充电为0;并且如果RO的值为0,则充电器846可以将BL充电为0并且将BL'充电为1。可以将所有其他列(TAG值为0的列)的BL和BL'充电为1以防止写入。
图9示出了具有仅使用NOR和AND逻辑运算来执行比较所需的CTS的值的计算表820。计算表820包括原始CTS的值(如在计算表410中详述的),在计算需要时,原始CTS的值与其反连结。根据所比较的CTS中的相关位的值来设置RE线值。如上文描述的,只有当CTS位的值为1时,对应的RE才被充电。
关于不同CTS的值,计算表820'与计算表820类似。当在步骤2和步骤4的情况下不需要写入CY'时,计算表820'具有用于S和用于CY'的单独RO行,以使得能够仅写入S。
可以理解,全加器800可以在存储器阵列810的每一列上执行多位加法,因此可以通过存储器阵列810中的列的数量来定义并行的多位加法的数量。
现在参考的图10是使用上文描述的实施例执行的使存储器阵列810的一个特定列上的两个操作数相加的示例计算的图示。可以理解,相同的计算可以在存储器阵列810的每一列上完成,以提供大量多位加法器功能。
在这个示例中,两个多位数(与图6和图7中的先前示例中使用的相同)相加。可以将第一操作数(0101)的位写入A单元,并且可以将第二操作数(1110)的位写入B单元。在该示例中,A、B以及S各自包括四个行,因为操作数的位的数量是四。可以将第一操作数的取反位(1010)写入A'单元,并且将第二操作数的取反位(0001)写入B'单元。
计算表820可以包括在每个时钟周期clk1、clk2、clk3以及clk4中使用的CTS值,以及所需的RO值。每个操作数的RE线可以在相应周期中从相关CTS的相关位获得其值。根据公式4完成每个TAG的计算:
公式4
其中:
kA'是取自相关CTS的A'行的值。
A是取自ISB的操作数A的值。
kB'是取自相关CTS的B'行的值。
B是取自ISB的操作数B的值。
kCY是取自相关CTS的CY行的值。
CY'是取自ISB的操作数CY'的值。
kA是取自相关CTS的A行的值。
A'是取自ISB的操作数A'的值。
kB是取自相关CTS的B行的值。
B'是取自ISB的操作数B'的值。
kCY'是取自相关CTS的CY'行的值。
CY是取自ISB的操作数CY的值。
在计算的第一步骤中,计算第四位的ISB的TAG。使用公式4,将与第四位(A4、B4、CY'、A4'、B4'、CY-101010)相对应的ISB的值与CTS1(111000)、CTS2(101010)、CTS3(000111)以及CTS4(010101)一个接着另一个地进行比较。
发现与CTS4匹配(计算结果为1),因此B4的值和CY'的值被设置为RO4的值1,并且B4'和CY的值被设置为RO的反0。
接下来,使用公式4,将第三位(A3、B3、CY'、A3'、B3'、CY-011100)的ISB的值与CTS1(111000)、CTS2(101010)、CTS3(000111)以及CTS4(010101)一个接着另一个地进行比较。
没有发现匹配,因此不存在连续的写入操作。
接下来,使用公式4,将与第二位(A2、B2、CY'、A2'、B2'、CY-111000)相对应的ISB的值与CTS1(111000)、CTS2(101010)、CTS3(000111)以及CTS4(010101)一个接着另一个地进行比较。
发现与CTS3匹配,因此值B2和CY'的值被设置为0,并且B2'和CY的值被设置为1。
最后,使用公式4,将操作数的最后一位(A1、B1、CY'、A1'、B1'、CY-010101)的ISB的值与CTS1(111000)、CTS2(101010)、CTS3(000111)以及CTS4(010101)一个接着另一个地进行比较。
发现与CTS2匹配,因此值B2和CY'的值被设置为0,并且B2'和CY的值被设置为1。
计算的结果S在单元中是B4=1、B3=1、B2=0以及B1=0,并且进位CY是1,这产生了预期的结果。
如前面指出的,可能使用针对S的专用单元并且不覆写存储在B中的值,并且对于S和CYout可以存在单独的RO。可以理解,如果使用针对S的专用单元,则比较ISB的次序可能并不重要。还可以理解,仅当ISB与所有四个CTS比较时,比较ISB与CTS的次序可能是重要的。如果在发现匹配时停止计算,则比较的次序没有重要意义。另外,CTS的次序可以不同于上文描述的次序,只要在应用新的RO之后新的位的序列可以不匹配任何剩余的CTS。即,CTS2(010,RO为0)必须在CTS1(000,RO为1)之后,并且CTS4(101,RO为1)必须在CTS3(111,RO为0)之后。
图11是能够执行XOR布尔运算的双端口SRAM单元的描述,如本申请的申请人拥有且于2016年12月6日提交的题为“COMPUTATIONAL DUAL PORT SRAM CELL AND PROCESSINGARRAY DEVICE USING THE DUAL PORT SRAM CELLS FOR XOR AND XNOR COMPUTATIONS(使用双端口SRAM单元进行XOR和XNOR计算的计算双端口SRAM单元和处理阵列设备)”的美国临时专利申请62/430,767中描述的,该申请还作为美国申请第15/709,401号于2017年9月19日提交,并于2019年4月2日作为美国专利第10,240,362号发布。
图12是根据本发明的另一优选实施例构造和操作的能够使两个多位数X和Y相加的多位全加器1200的替代实施例的示意图。多位全加器1200包括由图11的多个双端口SRAM单元1100组成的存储器阵列1210、计算表1220、行解码器1230以及列解码器1240。
如上文解释的,全加器计算基于存储在存储器阵列1210中的ISB与四个CTS之间的比较。全加器1200可以执行存储器内的逻辑运算XOR,因此可以根据公式2使用XOR运算来执行比较。
可以通过将CTS值加载到RE线和REb线来进行比较。当CTS的位为1时,RE的值被置位为1,并且REb的值被置位为0。当CTS的位为0时,RE的值被置位为0,并且REb的值被置位为1。如果ISB与CTS相同,则RBL的值将等于1。如果在ISB与CTS之间至少有一位不同,则RBL将被放电到0,指示没有发现匹配。本实施例的其余计算细节类似于多位全加器800的计算细节。可以理解,四个计算步骤可以由多位全加器1200在四个时钟周期内执行。
可以理解,存储器内的两个多位数、总和以及进位的确切排列可以是任何排列而不一定如上文示出的那样。唯一的要求在于使来自多位数中的相同存储单元的位是位于同一列上的并且共享相同的位线(即,两个操作数的MSB和结果应当位于同一列上,并且以此类推直到LSB为止。另外,被初始化为0的第一进位与LSB位于同一列上,并且第一次计算所得到的进位应当与LSB+1位于同一列上,以此类推)。
除非另有特别说明,否则从前面的讨论显而易见的是,可以理解,在整个说明书中利用诸如“处理”、“计算”、“运算”、“确定”等的术语的讨论涉及以下任何类型的通用计算机的动作和/或过程:例如,客户端/服务器系统、移动计算设备、智能电器或类似的电子计算设备,其将在计算系统的寄存器和/或存储器内被表示为物理(例如,电子)量的数据操纵和/或转换成在计算系统的存储器、寄存器或其他这样的信息存储、传输或显示设备内被类似地表示为物理量的其他数据。
本发明的实施例可以包括用于执行本文的操作的装置。该装置可以专门构造用于期望的目的,或者其可以包括通过计算机中存储的计算机程序选择性地激活或重新配置的通用计算机。当由软件指示时,所得到的装置可以将通用计算机转变成如本文所讨论的创造性元素。这些指令可以定义创造性设备与对其而言期望的计算机平台一起操作。这种计算机程序可以存储在计算机可读存储介质中,例如但不限于任何类型的盘(包括光盘、磁光盘)、只读存储器(ROM)、易失性和非易失性存储器、随机存取存储器(RAM)、电可编程只读存储器(EPROM)、电可擦除和可编程只读存储器(EEPROM)、磁卡或光卡、闪速存储器、闪存盘、或适合于存储电子指令并且能够耦合到计算机系统总线的任何其他类型的介质。
本文呈现的过程和显示并不固有地涉及任何特定的计算机或其他装置。各种通用系统可以与根据本文的教导的程序一起使用,或者可以证明构造更专用的装置来执行期望的方法是方便的。根据下面的描述,用于各种这些系统的期望结构是显而易见的。另外,本发明的实施例没有参考任何特定的编程语言来描述。可以理解,可以使用各种编程语言来实现如本文描述的本发明的教导。
虽然本文已经说明并描述了本发明的某些特征,但是本领域的普通技术人员现在可以想到许多修改、替代、变化和等同物。因此,应理解,所附权利要求旨在覆盖落入本发明的真实精神内的所有这些修改和变化。
Claims (20)
1.一种用于使第一一位变量和第二一位变量以及低位进位位相加以生成总和位和高位进位位的方法,所述方法包括:
将所述总和位初始化为所述第二一位变量的值;
将所述高位进位位初始化为所述低位进位位的值;以及
如果对由所述第一一位变量、所述第二一位变量以及所述低位进位位的取反值形成的序列与预先定义的一组用于触发变化的序列中的一个用于触发变化的序列的比较匹配,则修改所述总和位和所述高位进位位为预先定义的输出值。
2.根据权利要求1所述的方法,其中,所述预先定义的一组用于触发变化的序列是000、010、111以及101,并且其相关联的总和位和高位进位位的取反值分别是(1,1)、(0,0)、(0,0)以及(1,1)。
3.根据权利要求1所述的方法,其中,所述比较和所述修改最多采用四个比较步骤。
4.根据权利要求1所述的方法,其中,所述比较和所述修改是在存储器阵列中进行的。
5.根据权利要求4所述的方法,并且还包括将所述总和位写入所述第二一位变量在所述存储器阵列中的存储单元。
6.根据权利要求4所述的方法,还包括将所述高位进位位写入所述低位进位位在所述存储器阵列中的存储单元。
7.一种用于使第一多位变量和第二多位变量相加以生成多位数的多位总和以及高位进位位的方法,所述变量各自具有N个位,所述方法包括:
将所述多位总和初始化为所述第二多位变量的值;
将低位进位位和所述高位进位位初始化为零;
选择用于进行运算的位,从最低有效位开始直到达到最高有效位为止,并且对选定的位执行步骤(a)和(b):
(a)如果对由来自所述第一多位变量的所述选定的位、来自所述第二多位变量的所述选定的位以及所述低位进位位的取反值形成的序列与预先定义的一组用于触发变化的序列的比较是匹配的,则将所述多位总和的所述选定的位的值以及所述高位进位位 的值修改为预先定义的输出值;以及
(b)将所述低位进位位的值设置为所述高位进位位的值。
8.根据权利要求7所述的方法,并且还包括将所述多位总和写入所述第二多位变量在存储器阵列中的存储单元,并且将所述高位进位位写入所述低位进位位 在所述存储器阵列中的存储单元。
9.一种用于使第一一位变量和第二一位变量以及低位进位位相加以生成总和位和高位进位位的系统,所述系统包括:
非破坏性存储器阵列,其包括由位线连接的列,所述列在第一行中存储所述第一一位变量,在第二行中存储所述第二一位变量,并且在第三行中存储所述低位进位位的反;
计算表,其用于存储一组用于触发变化的序列,以及每个序列的相关联的总和位和相关联的高位进位位;
行解码器,其用于根据所述一组用于触发变化的序列来激活所述第一行、所述第二行以及所述第三行,一次根据一个当前用于触发变化的序列;
列解码器,其用于接收来自所述位线的比较结果,所述比较结果指示存储在所述列中的数据与所述当前用于触发变化的序列的匹配,
所述行解码器激活所述存储器阵列的总和行和高位进位行,并且如果所述比较结果指示匹配,则所述列解码器通过所述位线来将与所述当前用于触发变化的序列相关联的总和位和高位进位位写入所述总和行和所述高位进位行。
10.根据权利要求9所述的系统,并且其中,所述总和行是所述第二行。
11.根据权利要求9所述的系统,并且其中,所述总和行是被初始化为所述第二行的值的第四行。
12.根据权利要求9所述的系统,并且其中,所述高位进位行是所述第三行。
13.根据权利要求9所述的系统,并且其中,所述高位进位行是被初始化为所述第三行的值的第五行。
14.一种存储器内的加法器系统,所述系统包括:
非破坏性存储器阵列,其具有存储数据的行和列,其中,第一行存储第一一位变量,第二行存储第二一位变量,并且第三行存储低位进位位的反,并且其中,总和位将被存储在所述第二行中,并且高位进位位的反将被存储在所述第三行中,并且其中,所述总和位将被存储在总和行中,并且所述高位进位位的反将被存储在高位进位行中;
计算表,其用于存储一组用于触发变化的序列,以及其相关联的总和位和高位进位位;
行解码器,其用于根据所述一组用于触发变化的序列来激活所述第一行、所述第二行以及所述第三行,一次根据一个当前用于触发变化的序列;
列解码器,其用于接收比较结果,所述比较结果指示存储在所述列中的数据与所述当前用于触发变化的序列的匹配,
所述行解码器激活所述存储器阵列的总和行和高位进位行,并且在其中所述比较结果指示匹配的每一列中,所述列解码器将与所述当前用于触发变化的序列相关联的总和位和高位进位位写入所述总和行和所述高位进位行。
15.根据权利要求14所述的系统,并且其中,所述总和行是所述第二行。
16.根据权利要求14所述的系统,并且其中,所述总和行是被初始化为所述第二行的值的第四行。
17.根据权利要求14所述的系统,并且其中,所述高位进位行是所述第三行。
18.根据权利要求14所述的系统,并且其中,所述高位进位行是被初始化为所述第三行的值的第五行。
19.一种存储器内的加法器系统,所述系统包括:
非破坏性存储器阵列,其具有存储数据的行和列,其中,第一组行存储第一多位变量的位,第二组行存储第二多位变量的位,并且第三组行存储低位进位位的反;
计算表,其用于存储一组用于触发变化的序列,以及其相关联的总和位和相关联的高位进位位;
行解码器,其用于根据所述一组用于触发变化的序列来激活一组当前行:所述第一组行、所述第二组行以及所述第三组行中的一行,一次根据一个当前用于触发变化的序列,一组当前行接着另一组当前行地激活;
列解码器,其用于接收比较结果,所述比较结果指示存储在所述列中的数据与所述当前用于触发变化的序列的匹配,
所述行解码器激活所述存储器阵列中的与所述一组当前行相关联的总和行以及与下一组当前行相关联的高位进位行,并且在其中所述比较结果指示匹配的每一列中,所述列解码器将与所述当前用于触发变化的序列相关联的总和位和高位进位位写入被激活的总和行和高位进位行。
20.根据权利要求19所述的系统,其中,所述一组用于触发变化的序列是000、010、111以及101,并且其相关联的总和位和高位进位位的取反值分别是(1,1)、(0,0)、(0,0)以及(1,1)。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662430767P | 2016-12-06 | 2016-12-06 | |
US201662430372P | 2016-12-06 | 2016-12-06 | |
US62/430,767 | 2016-12-06 | ||
US62/430,372 | 2016-12-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108153512A CN108153512A (zh) | 2018-06-12 |
CN108153512B true CN108153512B (zh) | 2020-11-10 |
Family
ID=62240066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711270831.0A Active CN108153512B (zh) | 2016-12-06 | 2017-12-05 | 四步关联全加器 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10534836B2 (zh) |
CN (1) | CN108153512B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102092263B1 (ko) * | 2016-07-17 | 2020-03-24 | 쥐에스아이 테크놀로지 인코포레이티드 | 일정한 처리 시간 내에 k개의 극값을 찾는 방법 |
US10860320B1 (en) | 2016-12-06 | 2020-12-08 | Gsi Technology, Inc. | Orthogonal data transposition system and method during data transfers to/from a processing array |
US11227653B1 (en) | 2016-12-06 | 2022-01-18 | Gsi Technology, Inc. | Storage array circuits and methods for computational memory cells |
US10943648B1 (en) | 2016-12-06 | 2021-03-09 | Gsi Technology, Inc. | Ultra low VDD memory cell with ratioless write port |
US10854284B1 (en) | 2016-12-06 | 2020-12-01 | Gsi Technology, Inc. | Computational memory cell and processing array device with ratioless write port |
US10770133B1 (en) | 2016-12-06 | 2020-09-08 | Gsi Technology, Inc. | Read and write data processing circuits and methods associated with computational memory cells that provides write inhibits and read bit line pre-charge inhibits |
US10891076B1 (en) | 2016-12-06 | 2021-01-12 | Gsi Technology, Inc. | Results processing circuits and methods associated with computational memory cells |
US10847213B1 (en) | 2016-12-06 | 2020-11-24 | Gsi Technology, Inc. | Write data processing circuits and methods associated with computational memory cells |
US10777262B1 (en) | 2016-12-06 | 2020-09-15 | Gsi Technology, Inc. | Read data processing circuits and methods associated memory cells |
US10847212B1 (en) | 2016-12-06 | 2020-11-24 | Gsi Technology, Inc. | Read and write data processing circuits and methods associated with computational memory cells using two read multiplexers |
US10249362B2 (en) | 2016-12-06 | 2019-04-02 | Gsi Technology, Inc. | Computational memory cell and processing array device using the memory cells for XOR and XNOR computations |
US10860318B2 (en) | 2016-12-06 | 2020-12-08 | Gsi Technology, Inc. | Computational memory cell and processing array device using memory cells |
US10635397B2 (en) * | 2018-03-08 | 2020-04-28 | Gsi Technology Inc. | System and method for long addition and long multiplication in associative memory |
US10803141B2 (en) | 2018-07-05 | 2020-10-13 | Gsi Technology Inc. | In-memory stochastic rounder |
US10891991B2 (en) | 2018-11-26 | 2021-01-12 | Gsi Technology Inc. | Massively parallel, associative multiplier accumulator |
US11941407B2 (en) | 2019-05-20 | 2024-03-26 | Gsi Technology Inc. | Pipeline architecture for bitwise multiplier-accumulator (MAC) |
US10958272B2 (en) | 2019-06-18 | 2021-03-23 | Gsi Technology, Inc. | Computational memory cell and processing array device using complementary exclusive or memory cells |
US10877731B1 (en) * | 2019-06-18 | 2020-12-29 | Gsi Technology, Inc. | Processing array device that performs one cycle full adder operation and bit line read/write logic features |
US10930341B1 (en) * | 2019-06-18 | 2021-02-23 | Gsi Technology, Inc. | Processing array device that performs one cycle full adder operation and bit line read/write logic features |
US11669302B2 (en) * | 2019-10-16 | 2023-06-06 | Purdue Research Foundation | In-memory bit-serial addition system |
US11200029B2 (en) * | 2020-04-16 | 2021-12-14 | Flashsilicon Incorporation | Extendable multiple-digit base-2n in-memory adder device |
CN111614350A (zh) | 2020-06-30 | 2020-09-01 | 深圳比特微电子科技有限公司 | 全加器、芯片和计算装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0362580A2 (en) * | 1988-10-07 | 1990-04-11 | International Business Machines Corporation | Leading 0/1 anticipator (LZA) |
CN1366234A (zh) * | 2000-12-19 | 2002-08-28 | 国际商业机器公司 | 运算电路和运算方法 |
CN101178645A (zh) * | 2007-12-20 | 2008-05-14 | 清华大学 | 一种并行浮点乘加单元 |
US7617269B2 (en) * | 2004-08-03 | 2009-11-10 | Stmicroelectronics Pvt. Ltd. | Logic entity with two outputs for efficient adder and other macro implementations |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7372296B2 (en) * | 2004-10-29 | 2008-05-13 | Sicronic Remote Kg, Llc | Configurable logic device providing enhanced flexibility, scalability and providing area efficient implementation of arithmetic operation on n-bit variables |
CN101803205B (zh) * | 2008-08-15 | 2013-12-18 | Lsi公司 | 近码字的ram列表解码 |
US8238173B2 (en) * | 2009-07-16 | 2012-08-07 | Zikbit Ltd | Using storage cells to perform computation |
JP5204186B2 (ja) * | 2010-09-24 | 2013-06-05 | 株式会社東芝 | メモリシステム |
US9558812B2 (en) | 2015-05-05 | 2017-01-31 | Gsi Technology Inc. | SRAM multi-cell operations |
DE102017004933A1 (de) | 2017-05-20 | 2018-11-22 | Daimler Ag | Differentialgetriebe für ein Kraftfahrzeug |
-
2017
- 2017-09-19 US US15/708,181 patent/US10534836B2/en active Active
- 2017-12-05 CN CN201711270831.0A patent/CN108153512B/zh active Active
-
2020
- 2020-01-13 US US16/740,584 patent/US11604850B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0362580A2 (en) * | 1988-10-07 | 1990-04-11 | International Business Machines Corporation | Leading 0/1 anticipator (LZA) |
CN1366234A (zh) * | 2000-12-19 | 2002-08-28 | 国际商业机器公司 | 运算电路和运算方法 |
US7617269B2 (en) * | 2004-08-03 | 2009-11-10 | Stmicroelectronics Pvt. Ltd. | Logic entity with two outputs for efficient adder and other macro implementations |
CN101178645A (zh) * | 2007-12-20 | 2008-05-14 | 清华大学 | 一种并行浮点乘加单元 |
Non-Patent Citations (2)
Title |
---|
A novel area-efficient binary adder;S.B. Furber;《 Conference Record of the Thirty-Fourth Asilomar Conference on Signals, Systems and Computers》;20020806;全文 * |
全加器功能及应用的仿真设计分析;孙津平;《电子设计工程》;20110905;全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20180157621A1 (en) | 2018-06-07 |
CN108153512A (zh) | 2018-06-12 |
US11604850B2 (en) | 2023-03-14 |
US20200151236A1 (en) | 2020-05-14 |
US10534836B2 (en) | 2020-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108153512B (zh) | 四步关联全加器 | |
US8028015B2 (en) | Method and system for large number multiplication | |
Haj-Ali et al. | Efficient algorithms for in-memory fixed point multiplication using magic | |
US20230333815A1 (en) | Concurrent multi-bit adder | |
CN108541313B (zh) | 虚拟寄存器堆 | |
JP6216878B2 (ja) | メモリ用の除算演算 | |
CN110597484B (zh) | 基于存内计算的多比特全加器、多比特全加运算控制方法 | |
CN114391135A (zh) | 用于对连续分配数据执行存储器内处理操作的方法及相关存储器装置和系统 | |
WO2022271244A1 (en) | Fpga processing block for machine learning or digital signal processing operations | |
Liu et al. | IM3A: Boosting Deep Neural Network Efficiency via I n-M emory A ddressing-A ssisted A cceleration | |
WO2021046566A1 (en) | Spatiotemporal fused-multiply-add, and related systems, methods and devices | |
CN111221500B (zh) | 大规模并行关联乘法器-累加器 | |
US20210263707A1 (en) | Iterative binary division with carry prediction | |
US11755240B1 (en) | Concurrent multi-bit subtraction in associative memory | |
US11669489B2 (en) | Sparse systolic array design | |
WO2023133438A1 (en) | Square root calculations on an associative processing unit | |
CN116991362A (zh) | 模乘运算处理方法、装置、电子设备及可读介质 | |
CN118176482A (zh) | 融合模乘加运算 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1256848 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |