CN113391788B - 存储器内算术处理器及存储器内算术处理方法 - Google Patents

存储器内算术处理器及存储器内算术处理方法 Download PDF

Info

Publication number
CN113391788B
CN113391788B CN202010164809.3A CN202010164809A CN113391788B CN 113391788 B CN113391788 B CN 113391788B CN 202010164809 A CN202010164809 A CN 202010164809A CN 113391788 B CN113391788 B CN 113391788B
Authority
CN
China
Prior art keywords
bit
arithmetic
memory
operand
column
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
Application number
CN202010164809.3A
Other languages
English (en)
Other versions
CN113391788A (zh
Inventor
王立中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinlijia Integrated Circuit Hangzhou Co ltd
Original Assignee
Xinlijia Integrated Circuit Hangzhou Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xinlijia Integrated Circuit Hangzhou Co ltd filed Critical Xinlijia Integrated Circuit Hangzhou Co ltd
Priority to CN202010164809.3A priority Critical patent/CN113391788B/zh
Publication of CN113391788A publication Critical patent/CN113391788A/zh
Application granted granted Critical
Publication of CN113391788B publication Critical patent/CN113391788B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/57Arithmetic 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
    • G06F7/575Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Logic Circuits (AREA)

Abstract

本发明揭露一种存储器内算术处理器,可进行n位对n位的乘法操作、n位对n位的加法操作以及n位对n位的减法操作。本发明存储器内算术处理器对以二个n位二进位码表示的二个输入整数,进行单一步骤操作后,即可得到以二进位格式表示的结果码,而不同于传统算术二进位处理器须进行连续的多个步骤操作。本发明存储器内算术处理器是以二维的存储器阵列来实施,且该存储器阵列对要进行算术操作的该二个输入整数,具有X及Y方向的解码功能。

Description

存储器内算术处理器及存储器内算术处理方法
技术领域
本发明是有关于无须使用运算迭代法(computing iterations)的创新算术存储器处理器,特别地,存储器内算术处理器不使用操控二进位码的多重步骤,而是利用内建的算术表,在单一步骤内处理完二进位数字。该存储器内算术处理器的处理效率在数据流量(traffic)及功率消耗方面有大幅改善,且该存储器内算术处理器可利用IC芯片内具紧密性的半导体存储器阵列来实施。
背景技术
如图1所示的现代化范纽曼型运算架构(Von Neumann computing architecture)中,中央处理单元(CPU)10根据来自主存储器11的指令及数据,执行逻辑运算。CPU 10包含一主存储器11、一算术与逻辑单元(arithmetic and logic unit)12、一输出/输入装置13及一程序控制单元14。在计算行程(computation process)之前,由该程序控制单元14设定CPU 10指向储存在主存储器11中起始(initial)指令的起始地址码。之后,根据由程序控制单元14中与时脉同步(clock-synchronized)的地址指标(address pointer)所存取的主存储器11的循序指令,以算术与逻辑单元12处理所述数字数据。一般而言,CPU10的数字逻辑运算行程是同步执行的且由一组预先写好并储存于存储器的循序指令所驱动。
在范纽曼型运算系统中,以二进位格式来表示所有数字。例如,整数I以n位二进位格式表示如下:
I=bn-12n-1+bn-22n-2+…+b121+b0:=(bn-1bn-2…b1b0),其中,bi=[0,1]且i=0,…,(n-1)。
对整数的乘法、加法、减法及除法的算术操作需要操作多个整数的二进位字串(binary string),以得到作为结果的二进位整数的正确表示。该二进位字串的操作包含馈入至不同的组合逻辑栅(combinational logic gate)以及将位放在IC芯片中暂存器(register)内的正确位置。在整个算术运算过程中,以二进位码格式储存于指令存储器单元的连续指令,控制了储存于数据存储器单元的多个整数的二进位码移动进出不同逻辑单元及二进位暂存器。通常,通过连接的汇流排线,将输入的二进位数据串(datastring)移动进出不同存储器单元、二进位暂存器及组合逻辑栅以得到结果的二进位字串的操作步骤越多,运算功率也消耗得越多。特别地,假设当运算处理器降低标准至仅操作数据串的单一位的层级时,随着操作步骤的增加,将大幅增加由于汇流排线、逻辑栅、暂存器的栅及存储器内电容的充放电而导致的功率消耗,而消耗功率可利用数学式表示为P~f×C×VDD 2,其中f表示时脉频率、C表示运算过程中充放电总电容值(capacitance)以及VDD表示电路的正供电电压。例如,通常利用下列所谓的位乘积累加(bit multiply-accumulation)程序来完成二个n位字串的乘法:一开始是一运算元(operand)的各位与另一运算元相乘(AND操作)来得到n个n位字串;将该n个n位字串平移(shift)至n行(row)的2n位暂存器的正确位置;以零填满所述2n位暂存器中空的暂存器;操作n个2n位字串的n个加法步骤(2n位字串的加法),以得到最后的二进位2n位字串。上述位层级操作的冗长步骤增加了运算处理器的负担。将数据串移动进出不同存储器单元、逻辑栅、暂存器的沉重负担也造成密集运算处理器的汇流排线雍塞。由于沉重数据流量的汇流排线雍塞引起的所谓范纽曼型瓶颈是降低运算效率的主要原因,同时,运算过程中,完成运算所需的操作步骤越多,就需要更多的存储器空间来储存指令码。
发明内容
本发明提供了一种存储器内算术处理器及存储器内算术处理方法,以避免冗长的位层级操作步骤。
本发明提供了一种存储器内算术处理器,用以接收一算术操作的一个n位的第一运算元及一个n位的第二运算元,并产生一个m位的输出数字,所述存储器内算术处理器包含:
一存储器阵列,包含多个存储器单元,配置为p行及q列的电路组态、预先储存一算术表的多个m位的表格单元格值以及回应与所述n位的第二运算元有关的一被启动的行驱动信号以产生q个m位的表格单元格值,其中,所述算术表用来定义所述算术操作;以及
一列选择器,回应与所述n位的第一运算元有关的一被启动的列驱动信号,从所述q个m位的表格单元格值中选择其一输出当作所述m位的输出数字;
其中,所述存储器单元的数目与所述m位的表格单元格值的数目有关。
本发明还提供了一种存储器内算术处理方法,用以接收一算术操作的一个n位的第一运算元及一个n位的第二运算元,并产生一个m位的输出数字,所述方法包含:
以一存储器阵列,预先储存一算术表的多个m位的表格单元格值,其中,所述算术表用来定义所述算术操作以及所述存储器阵列包含多个存储器单元,配置为p行及q列的电路组态;
以所述存储器阵列,回应与所述n位的第二运算元有关的一被启动的行驱动信号,产生q个m位的表格单元格值;以及
以一列选择器,回应与所述n位的第一运算元有关的一被启动的列驱动信号,从所述q个m位的表格单元格值中选择其一输出当作所述m位的输出数字,其中,所述列选择器包含q个切换器;
其中,所述存储器单元的数目与所述m位的表格单元格值的数目有关。
本发明通过对二个输入变数进行X及Y方向的解码以指向所述存储器阵列中对应行及列的存储器单元,进而输出作为结果的二进位码,来回应所述算术表的该对应行及列的表格单元格。
附图说明
图1显示一典型CPU的现有范纽曼型计算架构。
图2显示一个十进位乘法表。
图3显示一个十进位加法表。
图4显示一个十进位减法表。
图5显示本发明n位对n位的乘法表。
图6显示本发明n位对n位的加法表。
图7显示本发明n位对n位的减法表。
图8显示本发明存储器内算术处理器的架构图,其中该存储器内算术处理器包含一个2n×2n的存储器阵列、二个n位暂存器、二个n位解码器及二个驱动器以实现本发明之该些算术表。
图9根据本发明一实施例,显示m位ROM单元的架构图,其中该m位ROM单元是根据选自该存储器阵列的一表格单元格,储存一结果二进位码。
图10根据本发明一实施例,显示Y切换器830的架构图,其中该Y切换器830包含2n组Y切换器,且该2n组Y切换器用以连接一组m位输出位线至2n组m位输入位线。
图11根据本发明一实施例,显示4位对4位的乘法表。
图12根据本发明一实施例,显示4位对4位的加法表。
图13根据本发明一实施例,显示4位对4位的减法表。
附图标号:
10 CPU
11 主存储器
12 算术与逻辑单元
13 输出/输入装置
14 程序控制单元
110 一组切换器
800 存储器内算术处理器
810 n位暂存器(B)
820 n位暂存器(A)
811、821 n位解码器
812 字线驱动器
822 Y切换驱动器
830 Y切换器
840 m位输出暂存器(C)
850 存储器阵列或ROM阵列
85BL 位线
83BL 输出位线
XSj、YSi 节点
BSi 位线切换器
Wj 字线
901 栅极
902 漏极电极
903 源极电极
910 ROM单元
911 金属接点
920 VSS的垂直金属线
930 VDD的垂直金属线
940 金属位线
950 水平字线Wj
85ij、900 存储器单元
具体实施方式
以下详细说明仅为示例,而非限制。应了解的是,可使用其他实施例,且对结构可进行各种变形或变更,均应落入本发明权利要求的范围。而且,应了解的是,本说明书使用的语法及术语仅为进行说明,而不应被视为限制。熟悉本领域者应可理解,本说明书中方法及示意图的实施例仅为示例,而非限制。因本说明书的揭露而了解本发明精神的熟悉本领域者,可使用其他实施例,均应落入本发明权利要求的范围。
为避免冗长的位层级操作步骤,本发明应用多个算术表及采用单一步骤的位串处理,来改善运算效率及节省运算功率,类似于人们通过记住熟悉的十进位乘法表、加法表及减法表,分别如图2、图3、图4所示,来改善自己的算术能力。为了在硅基(silicon)硬件中实施所述算术表,本发明根据算术表的值,将所述算术表中作为结果的二进位码储存于存储器阵列中。为了进行所述存储器阵列的二维阵列操作,本发明通过对二个输入变数进行X及Y方向的解码以指向所述存储器阵列中对应行及列的存储器单元,进而输出作为结果的二进位码,来回应所述算术表的该对应行及列的表格单元格。
图5显示具有2n×2n表格单元格(table cell)的n位对n位的乘法表。参考图5,乘法表中各表格单元格包含一个整数,分别以十进位格式(上)及二进位格式(下)表示。n位对n位的乘法表中最上面第一行(row),由左至右填入下列连续整数索引(index):0、1、2、…、(2n-1-1)、…、(2n-2)及(2n-1),亦即,最上面第一行表格单元格的内容由左至右为A:0/(00..00..00b),1/(00..00..01b),2/(00..00..10b),...,(2n-1–1)/(01..11..11b),…,(2n–2)/(11..11..10b),(2n–1)/(11..11..11b)。n位对n位的乘法表中最左边第一列(column),由上至下填入下列连续整数索引:0、1、2、…、(2n-1-1)、…、(2n-2)及(2n-1),亦即,最左边第一列表格单元格的内容由上至下为B:0/(00..00..00b),1/(00..00..01b),2/(00..00..10b),...,(2n-1–1)/(01..11..11b),…,(2n–2)/(11..11..10b),(2n–1)/(11..11..11b)。乘积C=A×B=(p-2)×(q-2),分别以十进位格式及二进位格式:(p×q-2×p-2×q+4)/(xx..xx..xx xx..xx..xxb),被填入第p列及第q行的表格单元格中,其中p,q=[2,3,4,…,(2n+1)]。请注意,二个n位整数相乘的结果得到的是一个长度为2n位的整数。举例而言,若第二列(A=0)及第三行(B=1)相乘,乘积C=A×B=0×1=0,以2n位二进位格式表示为:(00..00..00 00..00..00b),如填入至第二列及第三行的表格单元格的内容:0/(00..00..00 00..00..00b);若A=(2n–1)及B=(2n-1–1),乘积C=A×B=(2n–1)×(2n-1–1)=(22n–2n–2n-1+1),以2n位二进位格式表示为:(01..11..10 10..00..01b),如填入至第(2n+1)列及第(2n-1+1)行的表格单元格的内容:(22n–2n–2n-1+1)/(01..11..10 10..00..01b)。其他表格单元格的内容以此类推。
图6显示具有2n×2n表格单元格的n位对n位的加法表。参考图6,加法表中各表格单元格包含一个整数,分别以十进位格式(上)及二进位格式(下)表示。n位对n位的加法表中最上面第一行,由左至右填入下列连续整数索引:0、1、2、…、(2n-1-1)、…、(2n-2)及(2n-1),亦即,最上面第一行表格单元格的内容由左至右为A:0/(00..00..00b),1/(00..00..01b),2/(00..00..10b),...,(2n-1–1)/(01..11..11b),…,(2n–2)/(11..11..10b),(2n–1)/(11..11..11b)。n位对n位的加法表中最左边第一列,由上至下填入下列连续整数索引:0、1、2、…、(2n-1-1)、…、(2n-2)及(2n-1),亦即,最左边第一列表格单元格的内容由上至下为B:0/(00..00..00b),1/(00..00..01b),2/(00..00..10b),...,(2n-1–1)/(01..11..11b),…,(2n–2)/(11..11..10b),(2n–1)/(11..11..11b)。总和C=A+B=(p-2)+(q-2),分别以十进位格式及二进位格式:(p+q-4)/(xx..xx..xx xx..xx..xxb),被填入第p列及第q行的表格单元格中,其中p,q=[2,3,4,…,(2n+1)]。请注意,二个n位整数相加的结果是得到一个(n+1)位的整数,包含一个位于左侧的额外进位(carry-over)位。举例而言,若第二列(A=0)及第三行(B=1)相乘,总和C=A+B=0+1=1,以(n+1)位二进位格式表示为:(0 00..00..0000..00..01b),如填入至第二列及第三行的表格单元格的内容:1/(00..00..0000..00..01b);若A=(2n–1)及B=(2n-1–1),总和C=A+B=(2n–1)+(2n-1–1)=(2n+2n-1-2),以(n+1)位二进位格式表示为:(1 01..11..10b),如填入至第(2n+1)列及第(2n-1+1)行的表格单元格的内容:(2n+2n-1-2)/(1 01..11..10b)。其他表格单元格的内容以此类推。
图7显示具有2n×2n表格单元格的n位对n位的减法表。参考图7,减法表中各表格单元格包含一个整数,分别以十进位格式(上)及二进位格式(下)表示。n位对n位的减法表中最上面第一行,由左至右填入下列连续整数索引:0、1、2、…、(2n-1-1)、…、(2n-2)及(2n-1),亦即,最上面第一行表格单元格的内容由左至右为A:0/(00..00..00b),1/(00..00..01b),2/(00..00..10b),...,(2n-1–1)/(01..11..11b),…,(2n–2)/(11..11..10b),(2n–1)/(11..11..11b)。n位对n位的减法表中最左边第一列,由上至下填入下列连续整数索引:0、1、2、…、(2n-1-1)、…、(2n-2)及(2n-1),亦即,最左边第一列表格单元格的内容由上至下为B:0/(00..00..00b),1/(00..00..01b),2/(00..00..10b),...,(2n-1–1)/(01..11..11b),…,(2n–2)/(11..11..10b),(2n–1)/(11..11..11b)。差值C=A-B=(p-2)-(q-2),分别以十进位格式及二进位格式:(p-q)/(xx..xx..xx xx..xx..xxb),被填入第p列及第q行的表格单元格中,其中p,q=[2,3,4,…,(2n+1)]。请注意,二个n位整数相减的结果是得到一个(n+1)位的整数,包含一个位于左侧的符号位(sign bit),定义为1表示负,0表示正。举例而言,若第二列(A=0)及第三行(B=1)相减,差值C=A-B=0-1=-1,以(n+1)位二进位格式表示为:(-1)/(1 00..00..00 00..00..01b),如填入至第二列及第三行的表格单元格的内容;若A=(2n–1)及B=(2n-1–1),差值C=A-B=(2n–1)-(2n-1–1)=(2n-2n-1),以(n+1)位二进位格式表示为:(2n-2n-1)/(0 10..00..00b),如填入至第(2n+1)列及第(2n-1+1)行的表格单元格的内容。其他表格单元格的内容以此类推。
为了在硅基硬件中实施二进位算术表(如图5至图7中的乘法表、加法表及减法表),本发明存储器内算术处理器800包含一个n位暂存器(B)810、一个n位暂存器(A)820、二个n位解码器(decoder)811及821、一个字线驱动器(driver)812、一个Y切换驱动器822、一存储器阵列850、一个Y切换器(switch)830以及一个m位输出暂存器(C)840,如图8所示。
来自该n位暂存器(A)820及该n位暂存器(B)810的任二个n位输入整数A=an- 1an-2..ai..a1a0b(二进位)及B=bn-1bn-2..bj..b1b0b(二进位),是同时分别被馈入至该二个n位解码器821及811,其中,各位ai,bj=[0,1],且位值1代表电压信号VDD,而位值0代表电压信号VSS。根据该二个输入码A及B,该二个n位解码器821及811解码以在选定的YSi节点及XSj节点上启动(activate)高电压信号VDD,其中,i,j=[0,1,…,(2n-1)]。在选定的XSj节点及YSi节点上的高电压信号VDD,分别通过字线驱动器812及Y切换驱动器822,驱动选定的字线Wj及位线切换器BSi。之后,在该存储器阵列850中,施加一被启动的字线Wj至第j行以导通(turn on)第j行的所有2n个存储器单元(85ij),进而存取储存于整个第j行的2n个存储器单元的码。由于其他字线未被启动,故截止(turn off)该存储器阵列850中其他行的存储器单元。同时,通过连接多条位线(bitline)85BL至该Y切换器830,只启动一选定的位线切换器BSi,将该存储器阵列850的第j行及第i列的存储器单元的电压信号通过汇流排线83BL传送至该m位输出暂存器(C)840。由于其他位线切换器未被启动,故禁止送出该存储器阵列850的第j行中其他列的存储器单元的电压信号。该m位输出暂存器(C)840是用来暂存一个m位码,该m位码预存于该存储器阵列850的第j行及第i列的存储器单元中。
对于二笔n位整数相乘,本发明应用图5中的n位对n位的乘法表,是将各结果码储存于该存储器阵列850的各存储器单元85ij中。关于n位对n位的乘法,根据图5的n位对n位的乘法表中对应的第(i+2)列及第(j+2)行的表格单元格的二进位码,各存储器单元85ij储存长度为2n位的结果码。请注意,图8中该m位输出暂存器(C)840储存该二笔n位整数相乘后的结果码,其中,数字m=2×n。
对于二笔n位整数相加,本发明应用图6中的n位对n位的加法表,将各结果码储存于该存储器阵列850的各存储器单元85ij中。关于n位对n位的加法,根据图6的n位对n位的加法表中对应的第(i+2)列及第(j+2)行的表格单元格的二进位码,各存储器单元85ij储存长度为(n+1)位的结果码(包含一进位位)。请注意,图8中该m位输出暂存器(C)840储存该二笔n位整数相加后的结果码,其中,数字m=(n+1)。
对于二笔n位整数相减,本发明应用图7中的n位对n位的减法表,将各结果码储存于该存储器阵列850的各存储器单元85ij中。关于n位对n位的减法,根据图7的n位对n位的减法表中对应的第(i+2)列及第(j+2)行的表格单元格的二进位码,各存储器单元85ij储存长度为(n+1)位的结果码(包含一符号位)。请注意,图8中该m位输出暂存器(C)840储存该二笔n位整数相减后的结果码,其中,数字m=(n+1)。
为说明该存储器内算术处理器800的概念,本发明应用一唯读存储器(read onlymemory,ROM)阵列来实施IC芯片中的算术表。虽然该存储器阵列850的实施例是以一ROM阵列来说明,应理解的是该存储器阵列850的实施例不因此受限,而可使用其他类型的存储器阵列,例如SRAM阵列、DRAM阵列及非易失性RAM阵列。
一实施例中,ROM阵列850包含多个存储器单元900(对应至图8的存储器单元85ij),如图9所示。该ROM阵列850包含2n列及2n行的存储器单元900,且各存储器单元900以位于同一行的m个ROM单元910(用以储存m个位结果码)来代表。各ROM单元910包含一N型金氧半场效晶体管(NMOSFET)装置915、二条用来施加数字电压VDD及VSS的垂直金属线930及920及一条垂直输出金属位线940。一行中m个NMOSFET装置915的源极(source)电极903连接至其对应的垂直输出金属位线940,且该行中所有NMOSFET装置915的栅极(gate)901连接至一水平字线Wj950。在各ROM单元910中,该NMOSFET装置915的漏极(drain)电极902利用一金属接点(contact)911连接至该单元的VSS线920以储存0或该单元的VDD线930以储存1。例如,一行中m位ROM单元910来代表二进位码(01…00…11b),如图9所示。当以“高电压状态”启动一字线Wj950时,该ROM阵列850中第j行全部的2n组m位码的电压信号就被传送至2n组m条位线85BL。
同时,该Y切换器830包含2n组切换器110,如图10所示。在图10中,各组切换器110包含m个NMOSFET装置,各组切换器110中所有NMOSFET装置的栅极相连以形成一位线切换器BSi,其连接至该Y切换驱动器822,如图8所示,其中i=0,1,…,(2n-1)。当启动所述位线切换器BSi之一时,会导通对应的一组m个NMOSFET装置以连接对应的一组位线85BL至所述输出位线83BL,进而传送储存于该存储器阵列850中对应的第(i+1)列及第(j+1)行的存储器单元的m位结果码Cij,其中i=0,1,…,(2n-1)。由于该二个暂存器810及820、该二个解码器811及821、该字线驱动器812及该Y切换驱动器822的架构及运作方式已为本领域技术人员所习知,故在此不予赘述。
以下,利用传统十六进位格式来说明后续实施例中应用4位对4位(n=4)的算术操作。然而,进行算术操作的运算元的位数是大于1的任何整数。对于二笔4位的整数/运算元的相乘所得到的各整数,图11的各表格单元格分别以十进位格式(上)及以8位十六进位格式(下)表示。根据图8的架构图,本实施例利用4位解码器821来解码4位码A以控制该Y切换器830内16列的位线切换、4位解码器811来解码4位码B以控制该ROM阵列850内16行的字线切换,以及该ROM阵列850内16×16×8个ROM单元910。请参考图9,一行中,每8个ROM单元910(m=8)储存图11的4位对4位的乘法表中对应表格单元格的8位结果码C。请注意,储存于存储器单元85ij中且以十六位格式来表示的8位结果码C是利用下列机制来实施:在各ROM单元910中,利用一金属接点911将MOSFET装置915的漏极电极902连接至VSS线920以储存0或VDD线930以储存1,如图9所示。例如,2×3=6=(06h)=(0000 0110b)表示在对应存储器单元85ij的8个ROM单元910中,由左至右,是利用其各自的金属接点911,将对应MOSFET装置915的漏极电极902分别连接至电压偏压(VSSVSSVSSVSSVSSVDDVDDVSS),其中i,j=2,3(根据图11的4位对4位的乘法表中对应第4列及第5行表格单元格的二进位码);7×15=105=(69h)=(0110 1001b)表示在对应存储器单元85ij的8个ROM单元910中,由左至右,是利用其各自的金属接点911,将对应MOSFET装置915的漏极电极902分别连接至电压偏压(VSSVDDVDDVSSVDDVSSVSSVDD),其中i,j=7,15(根据图11的4位对4位的乘法表中对应第9列及第17行表格单元格的二进位码);15×15=225=(e1h)=(1110 0001b)表示在对应存储器单元85ij的8个ROM单元910中,由左至右,是利用其各自的金属接点911,将对应MOSFET装置915的漏极电极902分别连接至电压偏压(VDDVDDVDDVSSVSSVSSVSSVDD),其中i,j=15,15(根据图11的4位对4位的乘法表中对应第17列及第17行表格单元格的二进位码)。其他ROM单元910的内容以此类推。
对于二笔4位的整数/运算元的相加所得到的各整数,图12的各表格单元格分别以十进位格式(上)及以5位(m=5)二进位格式(下)表示。根据图8的架构图,本实施例利用4位解码器821来解码4位码A以控制Y切换器830内16列的位线切换、4位解码器811来解码4位码B以控制该ROM阵列850内16行的字线切换,以及该ROM阵列850内16×16×5个ROM单元910。请参考图9,一行中,每5个ROM单元910储存图12的4位对4位的加法表中对应表格单元格的5位结果码C(包含一进位位)。请注意,储存于存储器单元85ij中且以二进位格式来表示的5位结果码C是利用下列机制来实施:在各ROM单元910中,是利用一金属接点911将MOSFET装置915的漏极电极902连接至VSS线920以储存0或VDD线930以储存1,如图9所示。例如,2+3=5=(0 0101b)表示在对应存储器单元85ij的5个ROM单元910中,由左至右,是利用其各自的金属接点911,将对应MOSFET装置915的漏极电极902分别连接至电压偏压(VSSVSSVDDVSSVDD),其中i,j=2,3(根据图12的4位对4位的加法表中对应第4列及第5行表格单元格的二进位码);7+15=22=(1 0110b)表示在对应存储器单元85ij的5个ROM单元910中,由左至右,是利用其各自的金属接点911,将对应MOSFET装置915的漏极电极902分别连接至电压偏压(VDDVSSVDDVDDVSS),其中i,j=7,15(根据图12的4位对4位的加法表中对应第9列及第17行表格单元格的二进位码);15+15=30=(1 1110b)表示在对应存储器单元85ij的5个ROM单元910中,由左至右,是利用其各自的金属接点911,将对应MOSFET装置915的漏极电极902分别连接至电压偏压(VDDVDDVDDVDDVSS),其中i,j=15,15(根据图12的4位对4位的加法表中对应第17列及第17行表格单元格的二进位码)。其他ROM单元910的内容以此类推。
对于二笔4位的整数/运算元的相减所得到的各整数,图13的各表格单元格分别以十进位格式(上)及以5位(m=5)二进位格式(下)表示。根据图8的架构图,本实施例利用4位解码器821来解码4位码A来控制Y切换器830内16列的位线切换、4位解码器811来解码4位码B来控制该ROM阵列850内16行的字线切换,以及该ROM阵列850内16×16×5个ROM单元910。请参考图9,一行中,每5个ROM单元910储存图13的4位对4位的减法表中对应表格单元格的5位结果码C(包含一符号位)。请注意,储存于存储器单元85ij中且以二进位格式来表示的5位结果码C是利用下列机制来实施:在各ROM单元910中,是利用一金属接点911将MOSFET装置915的漏极电极902连接至VSS线920以储存0或VDD线930以储存1,如图9所示。例如,2-3=-1=(1 0001b)表示在对应存储器单元85ij的5个ROM单元910中,由左至右,是利用其各自的金属接点911,将对应MOSFET装置915的漏极电极902分别连接至电压偏压(VDDVSSVSSVSSVDD),其中i,j=2,3(根据图13的4位对4位的减法表中对应第4列及第5行表格单元格的二进位码);15-7=8=(0 1000b)表示在对应存储器单元85ij的5个ROM单元910中,由左至右,是利用其各自的金属接点911,将对应MOSFET装置915的漏极电极902分别连接至电压偏压(VSSVDDVSSVSSVSS),其中i,j=15,7(根据图13的4位对4位的减法表中对应第17列及第9行表格单元格的二进位码);15-15=0=(0 0000b)表示在对应存储器单元85ij的5个ROM单元910中,由左至右,是利用其各自的金属接点911,将对应MOSFET装置915的漏极电极902分别连接至电压偏压(VSSVSS VSSVSSVSS),其中i,j=15,15(根据图13的4位对4位的减法表中对应第17列及第17行表格单元格的二进位码)。其他ROM单元910的内容以此类推。
以上提供的较佳实施例仅用以说明本发明,而非要限定本发明至一明确的类型或示范的实施例。因此,本说明书应视为说明性,而非限制性。以上提供的较佳实施例是为了有效说明本发明的要旨及其最佳模式可实施应用,藉以让熟悉本领域技术人员了解本发明的各实施例及各种变更,以适应于特定使用或实施目的。本发明的范围由权利要求及其相等物(equivalent)来定义,其中所有的名称(term)皆意指最广泛合理的涵义,除非另有特别指明。因此,“本发明”等类似的用语,并未限缩权利要求的范围至一特定实施例,而且,本发明特定较佳实施例的任何参考文献并不意味着限制本发明,以及没有如此的限制会被推定。本发明仅被权利要求的范围及精神来定义。依据法规的要求而提供本发明的摘要,以便搜寻者能从本说明书核准的任何专利快速确认此技术揭露书的主题(subject matter),并非用来诠释或限制权利要求的范围及涵义。任何优点及益处可能无法适用于本发明所有的实施例。应了解的是,该行业者可进行各种变形或变更,均应落入权利要求所定义的本发明的范围。再者,本说明书中的所有元件及构件(component)都没有献给大众的意图,无论权利要求是否列举所述元件及构件。

Claims (12)

1.一种存储器内算术处理器,用以接收一算术操作的一个n位的第一运算元及一个n位的第二运算元,并产生一个m位的输出数字,其特征在于,所述存储器内算术处理器包含:
一存储器阵列,包含多个存储器单元,配置为p行及q列的电路组态、预先储存一算术表的多个m位的表格单元格值以及回应与所述n位的第二运算元有关的一被启动的行驱动信号以产生q个m位的表格单元格值,其中,所述算术表用来定义所述算术操作;以及
一列选择器,回应与所述n位的第一运算元有关的一被启动的列驱动信号,从所述q个m位的表格单元格值中选择其一输出当作所述m位的输出数字;
其中,所述存储器单元的数目与所述m位的表格单元格值的数目有关;
其中,各存储器单元预先储存所述算术表的一对应的m位的表格单元格值且所述算术表的尺寸等于2n×2n,其中若所述算术操作为一乘法操作,则所述算术表为一乘法表且m=2×n,其中若所述算术操作为一加法操作,则所述算术表为一加法表且m=n+1,以及其中若所述算术操作为一减法操作,则所述算术表为一减法表且m=n+1。
2.如权利要求1所述的存储器内算术处理器,其特征在于,还包含:
一第一输入电路,根据所述n位的第一运算元,启动q个列驱动信号的其一,以分别施加所述被启动的列驱动信号及(q-1)个未启动的列驱动信号至所述列选择器;以及
一第二输入电路,根据所述n位的第二运算元,启动p个行驱动信号的其一,以分别施加所述被启动的行驱动信号及(p-1)个未启动的行驱动信号至所述存储器阵列的p条字线。
3.如权利要求2所述的存储器内算术处理器,其特征在于,所述第一输入电路包含:
一第一输入暂存器,用以储存所述n位的第一运算元;
一第一解码器,连接至所述第一输入暂存器且具有2n个第一输出节点,其中所述第一解码器根据所述n位的第一运算元,启动所述2n个第一输出节点的其一;以及
一列驱动器,连接至所述第一解码器且根据所述被启动的第一输出节点,传送所述被启动的列驱动信号及所述(q-1)个未启动的列驱动信号至所述列选择器。
4.如权利要求2所述的存储器内算术处理器,其特征在于,所述第二输入电路包含:
一第二输入暂存器,用以储存所述n位的第二运算元;
一第二解码器,连接至所述第二输入暂存器且具有2n个第二输出节点,其中所述第二解码器根据所述n位的第二运算元,启动所述2n个第二输出节点的其一;以及
一字线驱动器,连接至所述第二解码器且根据所述被启动的第二输出节点,传送所述被启动的行驱动信号及所述(p-1)个未启动的行驱动信号至所述存储器阵列的p条字线。
5.如权利要求1所述的存储器内算术处理器,其特征在于,各存储器单元包含位于同一行的m个单元格,其中各单元格包含:
一第一垂直金属线,连接至一数字电压节点;
一第二垂直金属线,连接至一接地节点;
一垂直金属位线;以及
一第一NMOS装置,其中所述第一NMOS装置的源极电极连接至所述垂直金属位线,以及根据其对应位值,所述第一NMOS装置的漏极电极连接至所述第一垂直金属线及所述第二垂直金属线之一;其中
其中,位于同一行的所述第一NMOS装置的栅极相连以形成所述存储器阵列的p条字线之一,以接收其对应的行驱动信号。
6.如权利要求1所述的存储器内算术处理器,其特征在于,所述列选择器包含q个切换器且各切换器包含位于同一行的m个第二NMOS装置,以及其中位于同一行的所述第二NMOS装置的栅极相连以接收其对应的列驱动信号。
7.如权利要求1所述的存储器内算术处理器,其特征在于,还包含:
一输出暂存器,用以储存所述m位的输出数字。
8.如权利要求1所述的存储器内算术处理器,其特征在于,所述存储器阵列为一SRAM阵列、一DRAM阵列、一ROM阵列以及一非易失性RAM阵列其中之一。
9.一种存储器内算术处理方法,用以接收一算术操作的一个n位的第一运算元及一个n位的第二运算元,并产生一个m位的输出数字,其特征在于,所述方法包含:
以一存储器阵列,预先储存一算术表的多个m位的表格单元格值,其中,所述算术表用来定义所述算术操作以及所述存储器阵列包含多个存储器单元,配置为p行及q列的电路组态;
以所述存储器阵列,回应与所述n位的第二运算元有关的一被启动的行驱动信号,产生q个m位的表格单元格值;以及
以一列选择器,回应与所述n位的第一运算元有关的一被启动的列驱动信号,从所述q个m位的表格单元格值中选择其一输出当作所述m位的输出数字,其中,所述列选择器包含q个切换器;
其中,所述存储器单元的数目与所述m位的表格单元格值的数目有关;
其中,各存储器单元预先储存所述算术表的一对应的m位的表格单元格值且所述算术表的尺寸等于2n×2n,其中若所述算术操作为一乘法操作,则所述算术表为一乘法表且m=2×n,其中若所述算术操作为一加法操作,则所述算术表为一加法表且m=n+1,以及其中若所述算术操作为一减法操作,则所述算术表为一减法表且m=n+1。
10.如权利要求9所述的方法,其特征在于,还包含:
在所述选择步骤之前及所述预先储存步骤之后,根据所述n位的第一运算元,启动q个列驱动信号的其一,以分别施加所述被启动的列驱动信号及(q-1)个未启动的列驱动信号至所述列选择器的所述q个切换器。
11.如权利要求9所述的方法,其特征在于,还包含:
在所述产生步骤之前及所述预先储存步骤之后,根据所述n位的第二运算元,启动p个行驱动信号的其一,以分别施加所述被启动的行驱动信号及(p-1)个未启动的行驱动信号至所述存储器阵列的p条字线。
12.如权利要求9所述的方法,其特征在于,所述存储器阵列为一SRAM阵列、一DRAM阵列、一ROM阵列以及一非易失性RAM阵列其中之一。
CN202010164809.3A 2020-03-11 2020-03-11 存储器内算术处理器及存储器内算术处理方法 Active CN113391788B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010164809.3A CN113391788B (zh) 2020-03-11 2020-03-11 存储器内算术处理器及存储器内算术处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010164809.3A CN113391788B (zh) 2020-03-11 2020-03-11 存储器内算术处理器及存储器内算术处理方法

Publications (2)

Publication Number Publication Date
CN113391788A CN113391788A (zh) 2021-09-14
CN113391788B true CN113391788B (zh) 2024-01-26

Family

ID=77615305

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010164809.3A Active CN113391788B (zh) 2020-03-11 2020-03-11 存储器内算术处理器及存储器内算术处理方法

Country Status (1)

Country Link
CN (1) CN113391788B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4566075A (en) * 1982-12-21 1986-01-21 Texas Instruments Incorporated Table lookup multiplier employing compressed data read only memory
JPS62290918A (ja) * 1986-06-10 1987-12-17 Mikuni Kogyo Co Ltd テ−ブル・ルックアップ式演算装置
CN105849690A (zh) * 2014-07-02 2016-08-10 上海兆芯集成电路有限公司 使用第一和第二子运算的分路融合乘积-累加运算

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8238173B2 (en) * 2009-07-16 2012-08-07 Zikbit Ltd Using storage cells to perform computation
US10340007B2 (en) * 2015-06-05 2019-07-02 King Abdullah University Of Science And Technology Resistive content addressable memory based in-memory computation architecture
US10943652B2 (en) * 2018-05-22 2021-03-09 The Regents Of The University Of Michigan Memory processing unit
US20190057727A1 (en) * 2018-10-15 2019-02-21 Amrita MATHURIYA Memory device to provide in-memory computation functionality for a pipeline circuit architecture
US10884957B2 (en) * 2018-10-15 2021-01-05 Intel Corporation Pipeline circuit architecture to provide in-memory computation functionality

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4566075A (en) * 1982-12-21 1986-01-21 Texas Instruments Incorporated Table lookup multiplier employing compressed data read only memory
JPS62290918A (ja) * 1986-06-10 1987-12-17 Mikuni Kogyo Co Ltd テ−ブル・ルックアップ式演算装置
CN105849690A (zh) * 2014-07-02 2016-08-10 上海兆芯集成电路有限公司 使用第一和第二子运算的分路融合乘积-累加运算
CN106325810A (zh) * 2014-07-02 2017-01-11 上海兆芯集成电路有限公司 微处理器
CN106339202A (zh) * 2014-07-02 2017-01-18 上海兆芯集成电路有限公司 微处理器及其方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种基于新型查表方法的统一计算设备架构并行计算全息算法;蒋晓瑜;《光学学报》;第35卷(第02期);88-95 *

Also Published As

Publication number Publication date
CN113391788A (zh) 2021-09-14

Similar Documents

Publication Publication Date Title
US11662980B2 (en) In-memory arithmetic processors
US10579336B2 (en) Division operations for memory
US11568223B2 (en) Neural network circuit
CN116798468B (zh) 用于存储器对准的设备及方法
US20180067656A1 (en) Computing reduction and prefix sum operations in memory
US3988717A (en) General purpose computer or logic chip and system
US20220335278A1 (en) Parallel acceleration method for memristor-based neural network, parallel acceleration processor based on memristor-based neural network and parallel acceleration device based on memristor-based neural network
US9754668B1 (en) Digital perceptron
US20200098428A1 (en) Digital rram-based convolutional block
WO2023056779A1 (zh) 一种用于卷积神经网络的内存计算eDRAM加速器
WO2021199386A1 (ja) 曖昧検索回路
US20220019407A1 (en) In-memory computation circuit and method
CN113535120B (zh) 可延展的多位数2n进位内存储加法器装置及操作方法
US9933998B2 (en) Methods and apparatuses for performing multiplication
US10622034B2 (en) Element value comparison in memory
CN113918119A (zh) 存储器内多位数二进制乘法装置及其操作方法
US3965459A (en) Selectable eight or twelve digit integrated circuit calculator and conditional gate output signal modification circuit therefor
CN113391788B (zh) 存储器内算术处理器及存储器内算术处理方法
US11031079B1 (en) Dynamic digital perceptron
US12032829B2 (en) Memory device performing in-memory operation and method thereof
US11600320B2 (en) Perpectual digital perceptron
CN115910152A (zh) 电荷域存内计算电路以及具有正负数运算功能的存算电路
Lakshmi et al. Inner product computation in-Memory using distributed arithmetic
US20240221859A1 (en) Digital verify failbit count (vfc) circuit
CN114078519A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220614

Address after: 208, building 1, Information Port Phase V, No. 733, Jianshe Third Road, Xiaoshan Economic and Technological Development Zone, Hangzhou City, Zhejiang Province

Applicant after: Xinlijia integrated circuit (Hangzhou) Co.,Ltd.

Address before: California, USA

Applicant before: FlashSilicon Inc.

GR01 Patent grant
GR01 Patent grant