一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种自适应配置存算一体阵列SOC芯片及配置方法

2022-06-02 16:35:21 来源:中国专利 TAG:

一种自适应配置存算一体阵列soc芯片及配置方法
技术领域
1.本发明涉及半导体集成电路技术领域,更具体的说是涉及一种自适应配置存算一体阵列soc芯片及配置方法。


背景技术:

2.在soc芯片执行计算数据功能时,中央处理器负责读取指令,对指令译码并执行指令。存储器与处理器之间通过数据总线进行数据传输。在面对大数据分析应用场景中,数据总线的带宽严重制约处理器性能与能量效率;另外,现有soc芯片在需要对内存中的数据进行操作时,由于需要对数据进行频繁迁移,数据在计算和访存时的频繁迁移会带来严重的传输功耗问题,导致电路功耗大、响应慢。
3.存算一体芯片就是为解决上述问题而存在的,然而,现有包含存算一体阵列的soc芯片架构一经定制,其电路结构即被固定下来,其存算阵列的具体配置及相应功能也被固定下来,不能根据soc所要求的实际任务量进行灵活调节,导致了存算阵列资源的浪费,通常会使用扩大存算阵列面积或添加算术运算单元的方法进行弥补,但这样也导致电路面积大,不能适应集成化、小型化的需要。
4.因此,如何实现存算一体阵列soc芯片的灵活配置是本领域技术人员亟需解决的问题。


技术实现要素:

5.有鉴于此,本发明提供了一种自适应配置存算一体阵列soc芯片及配置方法,通过芯片内部的存算控制模块、阵列配置器、存算一体阵列协同配合,根据实际应用需求对存算一体阵列进行自适应配置,能够根据实际任务进行灵活调节,使芯片能够根据实际任务灵活调节存算一体阵列中各子阵列的存储模式与计算模式的转变,且adc、dac等其余部件能够实现复用,进而减小芯片面积,适应集成化、小型化的需要,并有效降低了芯片成本。
6.为了实现上述目的,本发明采用如下技术方案:
7.一种自适应配置存算一体阵列soc芯片,包括:存算一体阵列、阵列配置器和存算控制模块;
8.所述存算一体阵列包括若干工作在存储模式或计算模式的存算一体子阵列;
9.所述阵列配置器包括地址译码单元和模式配置单元;地址译码单元,用于选中待设置工作模式的存算一体子阵列;模式配置单元,用于对选中的存算一体子阵列配置成存储模式或计算模式;
10.所述存算控制模块,读取实际执行任务信息,结合配置方案计算出阵列存算功能具体占比,并根据阵列存算功能具体占比发出配置指令。
11.优选的,所述自适应配置存算一体阵列soc芯片,还包括:
12.总线,各种功能部件、模块之间传送信息的公共通信干线;
13.存储器,用来存储程序和各种数据信息;
14.中央处理器,负责读取soc芯片所有指令,对指令译码并执行指令,发出存取指令;
15.内存,暂时存放中央处理器中的运算数据,以及与硬盘等外部存储器交换的数据;所述运算数据包括指令译码以及获取的操作数;
16.数模转换模块,输入端连接总线,输出端连接所述存算一体阵列,用于将总线上的运算数据转换为模拟信号并传输至所述存算一体阵列,所述存算一体阵列对于所述模拟信号进行模拟向量-矩阵乘法运算并输出运算结果;
17.模数转换模块,输入端连接所述存算一体阵列,输出端连接所述总线,用于将所述模拟向量-矩阵乘法运算结果转换为数字信号并输至所述总线上。
18.优选的,阵列配置器中的地址译码单元,连接所述存算一体阵列以及总线,通过总线接收存算控制模块发出的配置指令与中央处理器发出的存取指令,并选中需要待设置的存算一体子阵列;存算控制模块发送配置指令到总线,中央处理器发送存取指令到总线,地址译码单元从总线上读取上述两个指令并完成选中工作;
19.阵列配置器中的模式配置单元,连接所述存算一体阵列以及总线,通过总线接收存算控制模块发出的配置指令,并输出配置阵列工作模式的电平信号,修改由地址译码单元选中的存算一体子阵列为对应工作模式。
20.优选的,所述存算控制模块设置有配置方案,其包括:
21.当soc芯片未执行卷积运算时,该芯片执行配置方案1:在单位时间内,存算控制模块从总线读取计算指令与存取指令,记录计算指令数n1与存取指令数n2,再依据存取指令数与计算指令数的比例获得计存比;计存比分为当前计存比r与工作计存比r0,其中当前计存比为当前状态的计存比,工作计存比为用以工作状态的计存比;当工作计存比与当前计存比的差值绝对值小于或等于10%,判断存算一体阵列配置情况无需更新,工作计存比r0不变;当工作计存比与当前计存比的差值绝对值大于10%,更新存算一体阵列配置情况,将工作计存比r0值更新为当前计存比r;存算控制模块获取当前存算一体阵列配置情况并计算出下一状态配置情况,根据当前配置情况与下一状态配置情况输出配置指令一;工作计存比更新为当前计存比,而存算一体阵列中工作在计算模式的存算一体子阵列数目/工作在存储模式的存算一体子阵列数目=工作计存比;阵列配置器根据前一状态的阵列配置情况以及最新的工作计存比,通过地址译码单元选中需要更改工作模式的存算一体子阵列,而模式配置单元将选中的存算一体子阵列更改其工作模式;
22.当soc芯片执行卷积神经网络的卷积运算时,该芯片执行配置方案2:存算控制模块读取卷积核行列大小,计算下一状态配置情况;当行列数相等时,下一状态应工作在计算模式的存算一体子阵列数应为卷积核行数;当行列数不相等时,下一状态应工作在计算模式的存算一体子阵列数应为卷积核行数与列数的较大值;存算控制模块获取当前存算一体阵列的配置情况,根据下一状态应工作在计算模式的存算一体子阵列数,输出存算一体阵列的配置指令二;
23.进一步的,所述配置信息一包括应工作在计算模式的存算一体子阵列和应工作在存储模式的存算一体子阵列,其中工作在计算模式的存算一体子阵列数目占存算一体阵列数目的比例与工作计存比r0相同。
24.进一步的,配置信息二包括应工作在计算模式的存算一体子阵列和应工作在存储
模式的存算一体子阵列,其中工作在计算模式的存算一体子阵列的数目与卷积核行数或列数相同,其余存算一体子阵列工作在存储模式;阵列配置器根据配置信息设置相应阵列工作在计算模式或存储模式。
25.优选的,配置方案具体包括:在所述存算控制模块监听总线中的指令信息时,如果在若干个时钟周期内连续内存地址空间取数据操作指令的密集度大于设定的阈值,则将所述存算一体阵列中部分存算一体子阵列转化为存储模式,并将对应地址空间的数据按照设定数量映射到处于存储模式的所述存算一体子阵列中存储。
26.经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种自适应配置存算一体阵列的soc芯片及配置方法,自适应配置存算一体阵列soc芯片的总线上挂载多个模块,包括中央处理器、存算控制模块、阵列配置器、存算一体阵列、内存和通用存储器。存算一体阵列包括用于可动态配置分别执行数据存储或模拟向量-矩阵乘法/卷积运算的多个可配置存算一体子阵列,在存算一体阵列和总线之间存在对数据进行转化的数模转换模块(dac)和模数转换模块(adc);存算控制模块根据总线数据信息通过总线向配置存算一体阵列的阵列配置器发出控制信号;阵列配置器包括模式配置单元和地址译码单元,其中模式配置单元根据存算控制模块的控制信号确定存算一体子阵列需要转变的模式,而地址译码单元根据存算控制模块的控制信号选通存算一体阵列对应的行,实现soc芯片中存算一体阵列的动态配置。本发明的soc芯片能够根据实际任务量灵活调节存算一体阵列各个部分的工作模式,且adc、dac、地址译码单元等电路能够与soc芯片所搭载的其他模块实现复用,进而减小了电路面积,适应了集成化、小型化的需要。
附图说明
27.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
28.图1附图为本发明提供的自适应配置存算一体阵列soc芯片结构示意图;
29.图2附图为本发明提供的自适应配置存算一体阵列soc芯片具体结构示意图;
30.图3附图为本发明提供的配置方法流程示意图;
31.图4附图为本发明提供的配置方案一流程示意图;
32.图5附图为本发明提供的配置方案二流程示意图;
33.图6附图为本发明提供的阵列配置器配置结构示意图;
34.图7附图为本发明提供的mram基本存算单元结构示意图;
35.图8附图为本发明提供的sram基本存算单元结构示意图。
具体实施方式
36.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.本发明实施例公开了一种自适应配置存算一体阵列的soc芯片及配置方法。
38.实施例1
39.图1为本发明实施例自适应配置存算一体阵列soc芯片的结构图。该自适应配置存算一体阵列soc芯片包括:存算控制模块10、阵列配置器20和存算一体阵列30,其他soc芯片可能搭载的ip核,以及搭载上述几个模块的soc总线40。
40.该存算一体阵列30包括用于可动态配置分别执行数据存储或模拟向量-矩阵乘法/卷积运算的多个可配置存算一体子阵列。
41.其中,多个可配置存算一体子阵列可为结构相同的可配置存储运算子阵列,如图2所示,可以根据实际应用需求,配置一部分可配置存算一体子阵列用于数据运算,另一部分用于数据存储,比如各个可配置存算一体子阵列的行数和列数可以根据实际应用需求进行设置,本发明实施例对此不作限制。
42.该阵列配置器20包含模式配置单元20-1和地址译码单元20-2,如图2所示,其中地址译码单元20-2根据存算控制模块的控制信号选定存算一体阵列需要转换模式的对应行,模式配置单元20-1根据存算控制模块的控制信号对地址译码单元20-2选定的行进行工作模式配置,配置成存储模式或计算模式。
43.该存算控制模块10根据总线40上的信息对可配置存算一体子阵列进行组合配置,实现soc中存算一体阵列的动态配置。
44.其中,可以根据实际应用需求,通过总线40所传输的数据信息,得到存算一体阵列所需的配置指令。
45.具体地,该存算控制模块10根据总线40所传输的数据信息生成配置指令对阵列配置器20进行控制,通过总线向配置存算阵列的阵列配置器发出控制信号,阵列配置器20连接到存算一体阵列30,并根据存算控制模块10给出的控制信号控制模式配置单元20-1和地址译码单元20-2对对多个可配置存算一体子阵列进行组合配置,选择控制一定数量的可配置存算一体子阵列执行数据运算,另一部分执行数据存储。实现soc芯片搭载的存算阵列的动态配置,不仅能够根据实际任务灵活调节存算阵列配置,还能实现对adc、dac、等外围电路能够实现复用,进而减小了电路面积,适应集成化、小型化的需要。
46.实施例2
47.基于实施例1在另一个可选的实施例中,如图2所示,该自适应配置存算一体阵列soc芯片还可以包括:数模转换模块30-1和模数转换模块30-2。
48.数模转换模块30-1的输入端连接总线40,输出端连接该存算一体阵列30的输入端,用于将来自总线的外部输入数据或待处理数据转换为模拟信号并输至该存算一体阵列30,该存算一体阵列30根据控制信号对该模拟信号进行模拟向量-矩阵乘法运算并输出模拟运算结果或在存算一体阵列中进行存储。
49.模数转换模块30-2输入端连接存算一体阵列30,输出端连接总线40,用于将存算一体阵列中的模拟运算结果或所存储数据转换为数字信号并输出到总线40上供总线的其他模块进行读取。
50.其中,存算控制模块10连接总线40,用于根据总线数据信息提供存算一体阵列配置信息,由阵列配置器接收后对上述可配置存算一体阵列进行动态配置;存算控制模块10根据配置信息对与其连接的各电路模块进行动态配置。
51.该配置信息包括:可配置存算一体子阵列301~30n的配置信息,包含存算一体子阵列地址信号和存算一体子阵列模式信号,根据该配置信息阵列配置器对与其连接的存算一体阵列进行动态配置;
52.动态配置可以包括:根据该可配置存算一体子阵列301~30n的配置信息控制各可配置存算一体子阵列30-3对应部分的工作状态,分别为存储状态和运算状态,使多个可配置存算一体子阵列30-3实现工作模式的动态配置。
53.实施例3
54.在一个实施例中,动态配置方法如图3所示,具体为:当soc芯片执行卷积神经网络中的卷积运算时,采用方案2进行配置;当不执行卷积运算时,采用方案1进行配置。
55.当soc芯片处于正常的工作状态时,不执行卷积运算,该芯片执行配置方案一,如图4所示。在单位时间内,存算控制模块从总线读取计算指令与存取指令,记录计算指令数n1与存取指令数n2,再依据存取指令数与计算指令数的比例并将此比例命名为计存比。计存比分为当前计存比r与工作计存比r0。当工作计存比与当前计存比的差值绝对值小于10%,存算阵列配置情况无需更新,工作计存比r0不变;当工作计存比与当前计存比的差值绝对值大于10%,存算阵列配置情况更新,工作计存比r0值更新为当前计存比值r。存算控制模块获取目前阵列配置情况并计算出下一状态配置情况,根据当前配置情况与下一状态配置情况输出配置信息。配置信息一包括应工作在计算模式的存算一体子阵列30-3、应工作在存储模式的存算一体子阵列30-3,其中工作在计算模式的子阵列数目占所有阵列数目的比例与工作计存比r0相同。阵列配置器根据配置信息设置相应阵列工作在计算模式或存储模式。
56.当soc芯片执行卷积神经网络的卷积运算时,该芯片执行配置方案二,其流程如图5所示。存算控制模块读取卷积核行列大小,当行列数相等时,下一状态应工作在计算模式的存算阵列数应为卷积核行(列)数;当行列数不相等时,下一状态应工作在计算模式的存算阵列数应为卷积核行数与列数的较大值。存算控制模块获取当前存算阵列的工作模式情况,根据前述的下一状态应工作在计算模式的存算阵列数,输出存算阵列的配置信息。配置信息二有,应工作在计算模式的存算一体子阵列30-3、应工作在存储模式的存算一体子阵列30-3,其中工作在计算模式的存算一体子阵列的数目与卷积核行列数相同,其余存算一体子阵列30-3工作在存储模式。阵列配置器根据配置信息设置相应阵列工作在计算模式或存储模式。
57.实施例4
58.在一个实施例中,根据空间局域性的原理:无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。我们也可以采用如下的配置方法:在存算控制模块10监听总线40中的指令信息时,如果在若干个时钟周期内发现有从大片连续内存地址空间取数据的指令,为了减少取数操作的时间成本,提高soc芯片工作性能,需要将内存中对应的地址空间的数据集体映射到存算一体阵列中并进行存储。即,存算控制模块10始终处在监听总线40指令信息的状态,若从连续地址空间取数操作指令的密集度大于设定的阈值,则将存算一体阵列30中部分存算一体子阵列30-3转化为存储模式,并将该片地址空间的数据按照设定的数量映射到处于存储模式的存算一体子阵列中存储。上述设定阈
值和设定数量可根据实际情况预设。
59.实施例5
60.在实施例1-4的基础上,一个实施例中,阵列配置器的配置方式如图6所示,阵列配置器通过两条地址信号线输出存算单元地址信息(存算单元即为存算一体子阵列),存算单元根据所连的两条地址信号线的电平情况,进而确定工作在计算模式或存储模式并执行对应操作。当地址信号线1工作,地址信号线2为静默状态时,存算一体子阵列工作在存储模式,地址信号线1用于选定所需内存地址的存算单元,从与总线相连的数据线上写入或读取数据信息;当地址信号线1为静默状态,地址信号线2工作时,存算一体子阵列工作在计算模式,地址信号线2用于选定工作为计算模式的存算单元。同时,存算控制模块可以通过地址信号线2读取各个存算单元的工作状态,用于计算下一状态的配置信息。
61.对于阵列配置器中的地址译码单元,阵列配置器接收到来自存算控制模块的配置信息(包括应工作在存储模式的存算一体子阵列、应工作在计算模式的存算一体子阵列的地址信息),根据对存算单元分配计算模式或存储模式的二进制信息,利用n线-2n线译码器进行两条地址信号线的信号控制。
62.对于存算单元,我们可以采取mram或sram作为基本存算单元,分别如图7,图8所示。
63.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
64.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献