一种基于分段复用和参数量化共享的神经形态处理器的制作方法

文档序号:17742834发布日期:2019-05-24 20:20阅读:174来源:国知局
一种基于分段复用和参数量化共享的神经形态处理器的制作方法

本发明属于神经形态硬件技术领域,涉及一种基于分段复用和参数量化共享的大规模神经形态处理器、设计方法、芯片。



背景技术:

1989年,c.mead首次提出“神经形态计算”概念。神经形态计算也被称为神经形态工程(neuromorphichardware),是对大脑的逆向工程,旨在采用忆阻器、阈值开关或者模拟、数字、数模混合技术构造大脑神经系统基本单元——神经元和突触,并借鉴大脑神经细胞组织方式将神经元与突触组织起来,从而构建大规模神经形态硬件,实现类似生物神经系统的信息处理能力,并尽可能达到低功耗、低资源消耗和高适应性。

现有的神经形态硬件需预先存储与需要计算的神经形态网络中的神经元个数相等个数的参数才可以完成该网络的计算操作。一般地,能实现实际功能的神经形态网络至少有两层网络,要实现的功能越复杂其规模也越大,用神经形态硬件构筑的复杂神经网络需消耗大量的片上存储空间来存储该网络的各种参数。

随着神经形态网络的规模的不断扩展,配置神经元所用的权值、阈值、突出延迟、不应期等参数的数据量也越来越大,对应神经形态硬件的片上存储资源有限的限制下,如何有效地表示和存储神经形态网络的参数将成为制约硬件化的大规模神经形态网络的实现的重要因素。



技术实现要素:

针对现有神经形态处理器需要大量存储空间存储网络参数的问题,本发明提出了一种基于分段复用和参数共享的大规模神经形态处理器,该架构在现有的神经形态处理器架构中引入了分段复用和参数量化共享结构,从而有效节约处理器的存储空间、大幅度缩小处理器面积、极大提高处理器计算效率、降低运行功耗。

本发明的技术方案为:

一种基于分段复用和参数量化共享的神经形态处理器,包括同步复位模块5、量化参数控制模块10和级联的多个神经元运算核心模块12:

所述同步复位模块5用于全局复位所述神经形态处理器;

所述神经元运算核心模块12包括:

至少一个数据缓存单元18,所述数据缓存单元18包括参数缓冲单元26和输入缓冲单元25,所述参数缓冲单元26用于缓存神经元配置参数14并分段缓存突触类型28,所述输入缓冲单元25用于分段缓存输入数据27,其中级联的第一级神经元运算核心模块12的输入数据27为所述神经形态处理器的输入脉冲数据,其余神经元运算核心模块12的输入数据27为上一级神经元运算核心模块12输出的脉冲数据包;

至少一个神经元计算单元22,用于对所述输入缓冲单元25缓存的输入数据27的每一段进行神经形态计算;

至少一个脉冲数据路由单元23,用于接收所述神经元计算单元22将所述输入数据27的每一段全部计算完成后的脉冲数据构成脉冲数据包,并路由该脉冲数据包至下一级神经元运算核心模块12;

至少一个分时复用控制单元19,用于检测所述神经元计算单元22的运行状态并且采取分时复用的策略以控制所述神经元计算单元22;

级联的最后一级神经元运算核心模块12中所述神经元计算单元22将所述输入数据27的每一段全部计算完成后输出脉冲数据作为所述神经形态处理器的输出信号;

所述量化参数控制模块10用于在所述神经形态处理器运行阶段直接从神经形态处理器外部读取当前突触类型,并根据所读取的突触类型从所述数据缓存单元18读取该突触类型对应的所述神经元配置参数14的权值以配置所述神经元计算单元22。

具体的,所述量化参数控制模块10包括长度与所述神经元运算核心模块12的数量相同的核心使能标志寄存器,用于使能所述神经元运算核心模块12。

具体的,所述输入数据27为频率编码、时间编码的脉冲序列,如泊松分布脉冲序列,所述神经元配置参数14为与所述神经形态处理器对应的神经形态网络的参数经量化后的量化值,所述参数包括但不限于突触连接状态、权值、阈值、泄露常数、置位电压、不应期、突触延迟。

其中,通过片外离线量化的方法对所述神经元配置参数14进行量化,保存每一个参数经量化后的每一个量化值,并采用量化格式将所述量化值存储于所述数据缓存单元18中,量化格式为<量化值,序号>,量化格式中的量化值为量化后的参数,序号为该量化值在一类量化值中的序号。

具体的,级联的最后一级神经元运算核心模块12的分时复用控制单元19用于检测所述神经元计算单元22的运行状态并且采取分时复用的策略以控制所述神经元计算单元22,包含一个小型存储模块,用于存储最后一级神经元运算核心模块12中神经元计算单元22将所述输入数据27的每一段全部计算完成后输出的脉冲数据并作为所述神经形态处理器的输出信号。

具体的,所述脉冲数据路由单元23用于接收所述神经元运算核心模块12一次运算结束时产生的脉冲数据包33并路由该脉冲数据包33,包括四个同步先入先出存储器(fifo)用于缓冲从外部其他神经元运算核心接收的数据。

具体的,所述数据缓存单元18采用片内寄存器进行实时存储,节约处理器存储空间。

采用本发明提出的神经形态处理器的处理方法为:

步骤1、上位机7给出时钟输入,为参数量化共享神经形态处理器提供一个主时钟;

步骤2、同步复位模块7提供复位信号6,将系统中所有模块的状态初始化;

步骤3、启动量化参数控制模块10初始化数据缓存单元18,从外部将核心使能标志输入量化参数控制模块10,对所要用的神经元运算核心模块12进行选择;

步骤4、读取核心使能标志,确定要使能的神经元运算核心模块12,减少不必要的神经元运算核心模块12配置;

步骤5、量化参数控制模块10选择神经元运算核心模块12的数据交换模式,数据交换模式分为与其他核心交互,或与上位机7交互,从而确定级联顺序;

步骤6、量化参数控制模块10从神经形态处理器外部读取参数(突触类型,突触连接状态、权值、阈值、泄露常数、置位电压、不应期、突触延迟等),并写入所选神经元运算核心模块12的数据缓存单元18进行配置,数据缓存单元18分段存入突触类型;

步骤7、从上位机7输入数据的一段脉冲,到与片外存储器13交互的第一级神经元运算核心模块12内的数据缓存模块18,与其他神经元运算核心模块12交互的神经元运算核心模块12接收从上一级神经元运算核心模块12通过脉冲数据路由单元23发送来的脉冲数据包,数据缓存模块18分段存入脉冲数据;

步骤8、启动所选的神经元运算核心模块12,开始当前神经元的计算;

步骤9、量化参数控制模块10从神经形态处理器外部读取当前神经元的当前突触的状态与类型;

步骤10、量化参数控制模块10控制数据缓存单元18从外部读取相应的量化参数,并根据所选突触类型确定神经元运算核心模块12的权值,配置所述神经元运算核心模块12;

步骤11、所选神经元运算核心模块12中的神经元计算单元22对分段存入的脉冲数据进行神经形态计算,将存入的每一段脉冲数据计算完成后即完成一次神经形态计算,判断是否发放脉冲,其中第一级神经元运算核心模块12计算上位机7给出的外部脉冲数据,其余神经元运算核心模块12计算上一级神经元运算核心模块12计算完成后的脉冲数据;

步骤12、判断神经元运算核心模块12是否计算完缓存的该段脉冲,是则跳转到步骤13,否则跳转到步骤8;

步骤13、判断神经元运算核心模块12是否计算完一个神经元的所有分段,是则跳转到步骤14,否则跳转到步骤7;

步骤14、神经元计算单元22生成脉冲数据包,并通过脉冲数据路由单元23发送到下一级神经元运算核心模块12;

步骤15、启动分时复用控制单元19切换神经元,通过分时复用策略将各个神经元运算核心模块12进行分时复用;

步骤16、判断所述神经元运算核心模块12是否计算完该层所有神经元,是则跳转到步骤17,否则跳转到步骤6;

步骤17、清除数据缓存单元18中的数据,结束所述神经形态处理器的运行。

本发明的有益效果为:本发明针对神经形态处理器存储效率低这一问题,通过片外离线量化的方法对所述参数进行量化,基于分时复用和分段复用大幅减少需要直接存储在处理器上的数据,减小了处理器的面积,降低了处理器的功耗。

附图说明

为了更清楚地说明本发明中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是数字化的离散时间神经元模型图。

图2是本发明提出的一种基于分段复用和参数量化共享的神经形态处理器的顶层结构示意图。

图3是本发明提出的一种基于分段复用和参数量化共享的神经形态处理器中神经元运算核心模块12的内部结构示意图。

图4是本发明提出的一种基于分段复用和参数量化共享的神经形态处理器的分时复用示意图。

图5是本发明提出的一种基于分段复用和参数量化共享的神经形态处理器的分段复用示意图。

具体实施方式

在对神经形态处理器研究时,发现神经形态处理器需预先存储与需要计算的神经形态网络中的神经元个数相等个数的参数才可以完成该网络的计算操作。这些数据在载入、存储等过程中会消耗多余的工作时间、占用大量的片上存储空间以及降低计算效率。

本发明提出的神经形态处理器,通过对神经形态网络中参数进行量化让网络中全部神经元共享几种类型的参数,实现减少神经形态网络的参数、节约神经形态处理器的存储空间和提高神经形态处理器的计算效率的目的。同时采用分段计算,不必一次将一个神经元的所有输入数据存入片上存储空间,只需将输入数据分段存入片上存储空间,一段算完后再提取输入数据的下一段,采用这种分段计算的方式可以减少片上存储空间的消耗。

如图2所示是本发明提出的一种基于分段复用和参数量化共享的大规模神经形态处理器,包括:

至少一个量化参数控制模块10,用于在神经形态处理器运行阶段直接从神经形态处理器外部读取当前突触类型,并从神经元运算核心模块12中的数据缓存单元18读取当前量化参数以配置神经元运算核心模块12,量化参数控制模块10直接从神经形态处理器外部读取当前突触的类型的目的为让处理器不再直接存储所述参数的类型,由数据缓存单元18从外部读取当前的神经元参数以进一步节约处理器存储空间;另外量化参数控制模块10还用于接收外部上位机7输出的神经形态处理器的输入脉冲数据并传输给第一级神经元运算核心模块12,并在处理完成后接收最后一级神经元运算核心模块12中分时复用控制单元19存储的脉冲数据并输出给上位机7;量化参数控制模块10中包括长度与神经元运算核心模块12的数量相同的核心使能标志寄存器,用于使能所述神经元运算核心模块12,选择神经元运算核心模块12的数据交换模式。

至少一个同步复位模块5,用于产生复位信号6传输给量化参数控制模块10和神经元运算核心模块12实现系统全局复位。

至少一个神经元运算核心模块12,可执行神经形态计算,暂存输入数据,路由运算结束时产生的脉冲数据包。其中图3所示给出了神经元运算核心模块12的内部结构示意图,包含至少一个神经元计算单元22,至少一个数据缓存单元18,至少一个分时复用控制单元19,至少一个脉冲数据路由单元23。

本发明的神经形态处理器提取并使用的参数为已经训练好的并经过量化后的量化值,可以采用离线训练的方式在片外将神经形态网络的参数量化为量化格式,并通过并行输入接口传输至片上的数据缓存单元18。

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图通过具体实施例对本发明进一步地详细说明,应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

本发明旨在提出了一种基于分段复用和参数共享的大规模神经形态处理器,其在神经形态处理器中引入了分段复用和参数量化共享结构,从而减少片上存储开销,降低处理器面积消耗,使得神经形态处理器性能更高效。

本发明提供的神经形态处理器是基于存储-控制-计算-路由结构:

存储结构用于缓存量化参数和输入数据;

控制结构用于控制外部数据载入存储器结构的过程,读取存储器中的数据并把数据送至计算结构的过程,以及神经形态网络计算的过程;

计算结构包括算术逻辑单元和比较逻辑单元,用于执行该处理器中的神经形态计算。

图1为神经元运算核心模块采用的一种数字化的离散时间神经元模型。脉冲串1为原始特征图经频率编码后的数据,每一个轴突2与神经元4形成一个突触3,神经元4依次计算每一个突触3,当计算完所有突触3,神经元4判断其膜电位是否满足脉冲发放条件,是则发放一个脉冲。根据图1所示模型建立本发明中的神经元计算单元22。

图2是本发明提出的神经形态处理器的顶层结构示意图。同步复位模块5发送复位信号6进行全局复位,上位机7给神经形态处理器输入时钟信号8,通过外部控制信号9与量化参数控制模块10进行通信,量化参数控制模块10通过神经元运算核心模块控制信号11控制神经元运算核心模块12(本实施例中以例化九个神经元运算核心模块12为例)进行参数配置,神经元运算核心模块12从外部存储器13把神经元配置参数14读入数据缓存单元18进行配置,上位机7将输入脉冲和突触类型15经由量化参数控制模块10暂存后,将暂存后的输入脉冲和突触类型29输入神经元运算核心模块12的数据缓存单元18,其中输入脉冲和突触类型29包括输入数据27和神经元突触类型28,神经元运算核心模块12中的神经元计算单元22对输入数据27进行计算,一轮计算完成后输出的计算结果33存储在脉冲数据路由单元23,脉冲数据路由单元23将存储的脉冲数据16发送给下一级神经元运算核心模块12作为下一级神经元运算核心模块12的输入数据27,全部计算完后将输出数据30经由量化参数控制模块10暂存后,再将暂存后的输出数据17输出到上位机7。

其中由于输出数据30经过量化参数控制模块10存储,再输出的输出数据17位宽改变,因此输出数据30和输出数据17虽然是同样的信号,但由于位宽改变因此用不同的附图标记表示;同理神经元配置参数14和神经元配置参数31、输入脉冲和突触类型32和输入脉冲和突触类型29、脉冲数据16和脉冲数据34等数据由于位宽改变也采用不同附图标记表示。

图3是本发明提出的神经元运算核心模块12的结构示意图。量化参数控制模块10将输入脉冲和突触类型29输入数据缓存单元18,分时复用控制单元19通过数据缓存单元控制信号20令数据缓存单元18从片外存储器13读入神经元配置参数14,通过神经元计算单元控制信号21将缓存后的神经元配置参数31从数据缓存单元18输入神经元计算单元22进行配置,计算开始后分时复用控制单元19通过神经元计算单元控制信号21控制神经元计算单元22从数据缓存单元18读入缓存后的输入脉冲和突触类型32进行计算,神经元计算单元22完成一轮计算后将计算结果33通过脉冲数据路由单元23将暂存后的脉冲数据16发送到下一级神经元运算核心模块12,并在下一轮计算开始时接收从上一级神经元运算核心模块发送来的输出脉冲数据34用于新一轮计算。全部计算结束后,将最终的输出数据30发送到量化参数控制模块10,再由量化参数控制模块10将暂存后的输出数据17传输给上位机7。

神经元运算核心模块12通过量化参数控制模块10设置其级联方式,量化参数控制模块10通过选择神经形态处理器中的一个或多个神经元运算核心模块12进行使能以及每个神经元运算核心模块12的数据传输方式构成级联,即通过在进行计算前选择神经元运算核心模块12的个数进行使能,以及设置每个神经元运算核心模块12与任意一个神经元运算核心模块12进行数据传输,将任意一个神经元运算核心模块12作为第一级接受外部数据,且神经元运算核心模块12的输出数据可以传输给任意一个神经元运算核心模块12构成级联,使得神经形态处理器的工作方式更为多变,不受具体神经元运算核心模块12个数和连接的限制。

图4是本发明提出的神经元运算核心模块12的分时复用原理图。将神经元运算核心模块12中一个例化的神经元计算单元22(物理神经元)分时复用p次,即可等效为一层包含了p个神经元计算单元(分时复用生成的等效逻辑神经元24)的神经元层,以一个神经元运算核心模块12中包括一个神经元计算单元22为例,例化q个神经元运算核心模块12并分时复用p次就能构造出共q层、每层包含p个神经元的大规模神经网络,即由p×q个神经元构建的大规模神经网络,p、q均为正整数。

图5是本发明提出的神经元运算核心模块的分段复用示意图。在分时复用的基础上,对输入数据进行分段运算。数据缓存单元18中的存储空间分为输入缓存单元25和参数缓存单元26,输入缓存单元25用于存储输入数据27,参数缓存单元26用于存储神经元配置参数14和神经元突触类型28,神经元配置参数14在每次计算前输入,当神经元计算单元22计算完输入数据27的所有分段后再进行下一次输入,神经元突触类型28由量化参数控制模块10在所述神经形态处理器运行阶段直接从神经形态处理器外部读取并分段存入参数缓存单元26。运行时先从片外存储器13将神经元配置参数14读入参数缓存单元26,计算开始时将神经元配置参数14读入神经元计算单元22进行配置。设输入数据总长度为m,数据缓存单元18可存储输入数据的最大长度为n,n<m,则每次运算只读取长度为n的输入数据27存入输入缓存单元25,读取n个神经元突触类型28存入参数缓存单元26,计算过程中从数据缓存单元18读取该段的每个突触的输入数据27和神经元突触类型28,逐个计算每个突触直到计算完该段所有突触。该段输入数据计算完成后再输入下一段长度为n的输入数据继续计算,分几次读完完整的数据,所有分段计算完后得出最终结果,通过这一方法即使分时复用次数增大也不会增加存储空间。

综上,本发明通过对神经形态网络中参数进行量化让网络中每一层或多层或所有层网络共享量化参数;对输入数据进行分段存储,每次片内存储空间只存储输入数据中的一段,将该段数据算完后再将暂存器清空存入下一段;将神经元分时复用,单个神经元运算单元复用多次形成一层神经元,实现了减少神经形态网络的参数、节约神经形态处理器的存储空间、提高神经形态处理器的计算效率、降低计算功耗的目的。

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