基于混合数据输入的存算一体电路、芯片及计算装置的制作方法

文档序号:28322588发布日期:2022-01-04 23:40阅读:135来源:国知局
基于混合数据输入的存算一体电路、芯片及计算装置的制作方法

1.本公开涉及计算机技术领域,尤其是一种基于混合数据输入的存算一体电路、芯片及计算装置。


背景技术:

2.存算一体是将静态随机存储器与计算模块融合为一体的一种存算结合的设计,通常包含存储结构和乘加结构。相比传统的存储器,存算一体的设计除了有写入存储数据的端口外,还有与存储数据做乘法运算的输入数据的端口,该端口负责将输入数据传送到存储计算单元进行计算。
3.现有的实现方案是将存储数据写入端口和运算数据的输入端口分开设计,由于运算数据的输入端口往往和存储器的字线数量一样多,所以造成存储一体的设计比传统存储器多出较多端口,使整体存算一体设计的面积增加,以及外部使用存算一体设计时的对接输入端口的走线明显增加。


技术实现要素:

4.本公开的实施例提供了一种基于混合数据输入的存算一体电路,该电路包括:存储计算单元阵列、混合数据输入单元阵列,存储计算单元阵列包括第一预设数量个存储计算单元组,每个存储计算单元组中的存储计算单元与混合数据输入单元阵列中的混合数据输入单元一一对应;混合数据输入单元阵列中的混合数据输入单元包括计算数据输入子单元、存储数据输入子单元、数据切换子单元、数据输入端口和数据切换信号输入端口;存储数据输入子单元与对应的存储计算单元包括的数据存储子单元连接,计算数据输入子单元与对应的存储计算单元组中的存储计算单元包括的计算子单元连接;数据切换子单元用于根据数据切换信号输入端口输入的数据切换信号,将数据输入端口接收的数据输入数据存储子单元或计算子单元。
5.在一些实施例中,计算子单元包括乘法器,乘法器用于将对应的数据存储子单元和计算子单元中的数据进行乘法计算。
6.在一些实施例中,该电路还包括的主控制器,主控制器用于调整当前的存算模式,其中,存算模式包括存储模式和计算模式,在存储模式下,主控制器向数据切换信号输入端口发送第一切换信号;在计算模式下,主控制器向数据切换信号输入端口发送第二切换信号;其中,第一切换信号用于指示将当前数据输入端口接收的数据输入对应的存储数据输入子单元中;第二切换信号用于指示将当前数据输入端口接收的数据输入对应的计算数据输入子单元中。
7.在一些实施例中,该电路还包括地址译码器;主控制器还用于获取待输入数据地址,并将待输入数据地址发送至地址译码器;地址译码器用于根据待输入数据地址,从第一预设数量个存储计算单元组中确定目标存储计算单元组;主控制器还用于通过混合数据输入单元阵列中的混合数据输入单元包括的数据输入端口,将待输入数据发送至目标存储计
算单元组。
8.在一些实施例中,该电路还包括加法器阵列,加法器阵列用于对从第一预设数量个存储计算单元组输入的计算结果进行相加,得到累加结果。
9.在一些实施例中,加法器阵列包括第二预设数量个加法器组,第二预设数量个加法器组通过级联的方式依次连接,且第二预设数量个加法器组中的第一级加法器组包括的加法器的输入端分别与对应的存储计算单元组连接。
10.在一些实施例中,该电路还包括移位累加器,移位累加器用于对加法器阵列先后输出的至少两个数值进行相应位数的移位以及累加,得到累加结果。
11.根据本公开实施例的另一个方面,提供了一种芯片,该芯片包括上述基于混合数据输入的存算一体电路。
12.根据本公开实施例的另一个方面,提供了一种计算装置,该计算装置包括上述芯片。
13.本公开上述实施例提供的基于混合数据输入的存算一体电路、芯片及计算装置,通过将计算数据的输入端口和存储数据的输入端口整合到一个混合数据输入单元内,将存算一体电路的输入端口的数量缩减到与传统的只有存储功能的存储器的输入端口的数量相同,从而减少了存算一体电路内部和外部与数据输入端口的连接走线造成的走线资源的消耗。通过将计算数据输入子单元和存储数据输入子单元合并,相比传统的存储数据输入单元和计算数据输入单元分开设置的方案,本公开实施例通过设置混合数据输入单元,减小了电路布局的面积。
14.下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
15.通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
16.图1是现有技术中的存算一体电路的结构示意图。
17.图2是本公开一示例性实施例提供的基于混合数据输入的存算一体电路的结构示意图。
18.图3是本公开一示例性实施例提供的混合数据输入单元的结构示意图。
19.图4是本公开一示例性实施例提供的加法器阵列的结构示意图。
具体实施方式
20.下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
21.应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
22.本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别
不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
23.还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
24.还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
25.另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
26.还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
27.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
28.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
29.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
30.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
31.申请概述
32.目前的存算一体设计架构相较传统的存储器多了额外的计算数据输入单元,带来面积增加的同时,输入数据端口也增多。如图1所示,128位存储数据的输入和128位计算数据的输入,共需要256位数据输入端口,即128个存储数据输入单元和128个计算数据输入单元。现有技术由于输入数据的端口数较多,造成整体的存算一体电路的面积较大,在外部使用存算一体电路时,所需的对接输入端口的走线资源消耗明显增加。
33.示例性结构
34.图2是本公开一示例性实施例提供的基于混合数据输入的存算一体电路的结构示意图。该电路包含的各个组成部分可以集成到一个芯片中,也可以设置到不同的芯片或电路板中,这些芯片或电路板之间建立数据通信的链路。
35.如图2所示,该电路包括:存储计算单元阵列201、混合数据输入单元阵列202。其中,存储计算单元阵列201包括第一预设数量个存储计算单元组,每个存储计算单元组中的存储计算单元与混合数据输入单元阵列202中的混合数据输入单元一一对应。如图2所示,第一预设数量为n,每一行内的m个cell(即存储计算单元)表示一个存储计算单元组,即一个存储计算单元组可以存储m个单比特数据。混合数据输入单元阵列202包括m个混合数据输入单元。
36.在本实施例中,混合数据输入单元阵列202中的每个混合数据输入单元还对应于一个存储计算单元组。例如,图2所示的第m个混合数据输入单元对应于第n个存储计算单元组(即第n行cell)。
37.如图3所示,其示出了其中一个混合数据输入单元2021的结构。混合数据输入单元
2021包括计算数据输入子单元20211、存储数据输入子单元20212、数据切换子单元20213、数据输入端口20214和数据切换信号输入端口20215。存储数据输入子单元20212与对应的存储计算单元2011包括的数据存储子单元20112连接,计算数据输入子单元20211与对应的存储计算单元组(即图2中的一行cell,包括图3中的存储计算单元2011、2012、

、2013)中的存储计算单元包括的计算子单元(如图3中的计算子单元20111、20121、

、20131)连接。
38.其中,数据存储子单元20112用于存储一个单比特数据,计算子单元20111用于对数据存储子单元20112中的存储数据和计算数据输入子单元20211输入的单比特的计算数据进行预设方式的计算。其他计算子单元的功能相同,这里不再赘述。
39.需要说明的是,如图2所示的一行cell通常存储一个多比特数据中的不同位,因此,在进行存储数据和计算数据的计算时,计算数据输入子单元20211同时向一行cell输入相同的单比特数据,经过多次输入,可以将一个完整的多比特计算数据包括的单比特位分别与该行cell内存储的多比特存储数据进行计算。
40.在本实施例中,数据切换子单元20213用于根据数据切换信号输入端口20215输入的数据切换信号,将数据输入端口20214接收的数据输入数据存储子单元20112或计算子单元20111。
41.其中,数据切换信号可以是该电路包括的主控制器或外部电子设备发送的信号。数据切换子单元20213可以包括模拟单刀双掷开关的电路模块,该电路模块可以将数据切换信号输入端口20215与计算数据输入子单元20211或存储数据输入子单元20212连接。
42.本公开的上述实施例提供的电路,通过将计算数据的输入端口和存储数据的输入端口整合到一个混合数据输入单元内,将存算一体电路的输入端口的数量缩减到与传统的只有存储功能的存储器的输入端口的数量相同,从而减少了存算一体电路内部和外部与数据输入端口的连接走线造成的走线资源的消耗。通过将计算数据输入子单元和存储数据输入子单元合并,相比传统的存储数据输入单元和计算数据输入单元分开设置的方案,本公开实施例通过设置混合数据输入单元,减小了电路布局的面积。
43.在一些可选的实现方式中,计算子单元可以包括乘法器,乘法器用于将对应的数据存储子单元和计算子单元中的数据进行乘法计算。该乘法器通常为单比特乘法器,单比特乘法器的实现方式可以为各种,例如与门,非门与或非门的结合(即存储数据和计算数据取反后再进行或非运算)等。
44.本实现方式将计算子单元设置为单比特乘法器,可以实现存内乘法运算,还可以结合加法器阵列,实现存内乘加运算,从而有效利用了该电路端口数量少的特点,提高存内乘法或乘加运算的效率。
45.在一些可选的实现方式中,如图2所示,电路还包括的主控制器203,主控制器203用于调整当前的存算模式。其中,存算模式包括存储模式和计算模式。
46.在存储模式下,主控制器203向数据切换信号输入端口发送第一切换信号;在计算模式下,主控制器向数据切换信号输入端口发送第二切换信号。
47.其中,参考图3,第一切换信号用于指示将当前数据输入端口20214接收的数据输入对应的存储数据输入子单元20212中;第二切换信号用于指示将当前数据输入端口20214接收的数据输入对应的计算数据输入子单元20211中。
48.具体地,若该电路用于传统的数据存储场景,主控制器203可以将存算模式调整为
存储模式,此时混合数据输入单元阵列202相当于传统的存储数据输入阵列。若该电路用于对神经网络等算法进行存内计算的场景,控制器可以首先将存算模式调整为存储模式,此时混合数据输入单元阵列202将数据输入端口接收的存储数据输入相应的存储计算单元组中存储。然后,主控制器203可以将存算模式调整为计算模式,数据输入端口接收的计算数据输入相应的存储计算单元组中进行计算。
49.本实现方式通过在电路中设置主控制器并由主控制器调整存算模式,可以有效控制电路中各部件的数据传输以及数据计算,使存算一体电路的功能更加完善,提高从存算一体电路进行存储计算的效率。
50.在一些可选的实现方式中,如图2所示,该电路还包括地址译码器204。
51.主控制器203还用于获取待输入数据地址,并将待输入数据地址发送至地址译码器。其中,待输入数据地址可以由主控制器203上的程序运行时自动确定。
52.地址译码器用于根据待输入数据地址,从第一预设数量个存储计算单元组中确定目标存储计算单元组。将待输入数据地址add1发送至地址译码器204后,地址译码器204进一步选择目标存储计算单元组。如图2所示,位于第一行的存储计算单元组为目标存储计算单元组。
53.主控制器203还用于通过混合数据输入单元阵列202中的混合数据输入单元包括的数据输入端口,将待输入数据发送至目标存储计算单元组。具体地,主控制器203可以控制目标存储计算单元组对应的字线与混合数据输入单元阵列202连通,由主控制203根据当前的存算模式,向各混合数据输入单元中的数据切换信号输入端口发送数据切换信号,从而使各混合数据输入单元将待输入数据发送至目标存储计算单元组进行数据存储或计算。
54.本实现方式通过设置地址译码器,可以精确地确定目标存储计算单元组,从而有助于在使用较少的数据输入端口的情况下,进一步提高数据传输的精确性。
55.在一些可选的实现方式中,如图2所示,该电路还包括加法器阵列205,加法器阵列205用于对从第一预设数量个存储计算单元组输入的计算结果进行相加,得到累加结果。
56.本实现方式通过设置加法器阵列,可以将存储计算单元阵列输出的计算结果相加而得到累加结果,可以支持神经网络等场景的乘加运算,通过减少数据输入端口的数量,降低乘加运算电路的面积和耗费的走线资源。
57.在一些可选的实现方式中,加法器阵列包括第二预设数量个加法器组,第二预设数量个加法器组通过级联的方式依次连接,且第二预设数量个加法器组中的第一级加法器组包括的加法器的输入端分别与对应的存储计算单元组连接。
58.如图4所示,加法器阵列包括p(即第二预设数量)列,每一列包括的加法器为一个加法器组,即标记为“加法器_1”的第一列为第一级加法器组,标记为“加法器_2”的第二列为第二级加法器组,
……
,标记为“加法器_p”的第p列为第p级加法器组。从第二级加法器组开始,每个加法器对应前一级的两个加法器,即前一级两个加法器的输出作为后一级加法器的输入。第一级加法器组包括的每个加法器接收对应的存储计算单元输入的计算结果,第p级加法器组只包括一个加法器,其输出的数据为n个存储计算单元组分别输出的数据的和。
59.本实现方式通过设置级联的加法器组,可以有效节约加法器阵列占用的面积,提高电路的面积利用率,并缩短电路内数据传输线路的长度,有利于降低电路功耗。
60.在一些可选的实现方式中,如图2所示,该电路还包括移位累加器206,移位累加器用于对加法器阵列先后输出的至少两个数值进行相应位数的移位以及累加,得到累加结果。
61.作为示例,若混合数据输入单元阵列202分四次依次通过各个计算数据输入子单元输入n个计算数据的第0位、第1位,第2位,第3位,则加法器阵列依次输出的求和结果为s0、s1、s2、s3,移位累加器按照下式计算得到乘加结果:sum=s3*8+s2*4+s1*2+s0。
62.本实现方式通过设置移位累加器,可以实现多比特数据的乘加运算,有效利用数据输入端口较少的特点,进一步提高多比特数据乘加运算电路的面积利用率,降低电路内的走线复杂度,有利于降低电路功耗。
63.本公开的实施例还提供了一种芯片,芯片上集成了基于混合数据输入的存算一体电路,基于混合数据输入的存算一体电路的技术细节如图1

图4和相关描述所示,此处不再展开描述。
64.本公开的实施例还提供了一种计算装置,该计算装置包括上述实施例描述的芯片。此外,该计算装置还可以包括输入装置、输出装置以及必要的存储器等。其中,输入装置可以包括诸如鼠标、键盘、触控屏、通信网络连接器等,用于输入存储数据、计算数据等。输出装置可以包括诸如显示器、打印机、以及通信网络及其所连接的远程输出设备等等,用于输出累加结果等数据。存储器用于存储上述输入装置输入的数据,以及基于混合数据输入的存算一体电路运行过程中产生的数据。存储器可以包括易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。
65.以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
66.本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。
67.本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
68.可能以许多方式来实现本公开的电路。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的电路。用于电路中的方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的电路的功能的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的电路的功能的程序的记录介质。
69.还需要指出的是,在本公开的电路中,各部件或各步骤是可以分解和/或重新组合
的。这些分解和/或重新组合应视为本公开的等效方案。
70.提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
71.为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1