一种基于存内CNN的调度存储方法技术

技术编号:36951680 阅读:53 留言:0更新日期:2023-03-22 19:12
本发明专利技术涉及一种基于存内CNN的调度存储方法,属于复用CNN调度运算技术领域,解决了现有技术中访存和数据搬运造成的能耗强和延迟高的问题。一种基于存内CNN的调度存储方法,包括以下步骤:对输入数组的元素和卷积核的权重进行卷积运算得到卷积结果;根据选择信号输出选择结果;选择结果包括卷积结果或加和结果;其中,加和结果为卷积结果和中间FIFO缓存单元输出的数据之和;根据使能信号选择是否将选择结果写入中间FIFO缓存单元以及选择是否输出中间FIFO缓存单元所存储的最前面的数据;基于使能取反信号输出加和结果,作为一次缓存调度的输出结果;基于外部指令信号和存储地址将所述输出结果写入memory存储模块。实现了FIFO缓存简化CNN调度的实现。简化CNN调度的实现。简化CNN调度的实现。

【技术实现步骤摘要】
一种基于存内CNN的调度存储方法


[0001]本专利技术涉及复用CNN调度运算
,尤其涉及一种基于存内CNN的调度存储方法。

技术介绍

[0002]大数据时代下,现有的计算结构在面对数据密集型的应用时,会因为大量的数据搬运和带宽的限制带来能耗和延迟上的提高,使得数据上的向量并行受制于存储器读写带宽。为了解决访存和数据搬运造成的能耗和延迟,存内计算突破了传统冯诺依曼瓶颈,实现了存储单元与逻辑单元的融合,是实现智能计算的主要技术路线之一。学界提出了基于SRAM的算术逻辑运算电路,在存储器中实现算术逻辑运算。现有基于SRAM的算术逻辑运算电路因为计算模式比较单一,在面对外界输入和存储单元之间运算的场景时,电路的性能会受到限制,当前的存内计算技术主要面临着硬件资源复用等问题。
[0003]卷积神经网络是一种带有卷积结构的深度神经网络,卷积结构可以减少深层网络占用的内存量,也可以减少网络的参数个数,缓解模型的过拟合问题。卷积核是卷积层的重要组成部分。特征提取器是卷积核的本质,其主要作用是自动提取输入信号的深层信息。卷积层由多个特征面组成,每个特征面由多个神经元组成,它的每一个神经元通过卷积核与上一层特征面的局部区域相连。上一层的特征图被一个可学习的卷积核进行卷积,然后通过一个激活函数,就可以得到输出特征图。每个神经元局部连接上一层的神经元,并且共享权值,然后输出数据里的每个神经元通过共享权重去卷积图像后再加上共享偏置得到的,如果没有用共享权值,那么一个神经元需要对应一个卷积核一个偏置,而现在是每个神经元对应的是同一个卷积核同一个偏置,使得参数量大幅下降,适合于存内的数据复用。现有的数据搬运是在逻辑运算单元与存储单元之间,大量的数据搬运和带宽的限制带来能耗和延迟上的提高,使得数据上的向量并行受制于存储器读写带宽。

技术实现思路

[0004]鉴于上述的分析,本专利技术实施例旨在提供一种基于存内CNN的调度存储方法,用以解决现有访存和数据搬运造成的能耗和延迟的问题。
[0005]一方面,本专利技术实施例提供了一种基于存内CNN的调度存储方法,包括以下步骤:
[0006]对输入数组的元素和卷积核的权重进行卷积运算得到卷积结果;
[0007]根据选择信号输出选择结果;所述选择结果包括卷积结果或加和结果;其中,所述加和结果为卷积结果和中间FIFO缓存单元输出的数据之和;
[0008]根据使能信号选择是否将选择结果写入中间FIFO缓存单元以及选择是否输出中间FIFO缓存单元所存储的最前面的数据;
[0009]基于使能取反信号输出加和结果,作为一次缓存调度的输出结果;
[0010]基于外部指令信号和存储地址将所述输出结果写入memory存储模块;
[0011]其中,所述选择信号、使能信号基于时钟信号和外部输入的有效标志信号得到。
[0012]进一步的,所述基于外部指令信号和存储地址将所述输出结果写入memory存储模块包括:
[0013]所述输出结果根据外部指令信号和存储地址写入memory存储单元或读取memory存储单元中的各部分部分积进行加和并重新存入memory存储单元;
[0014]其中,所述输出结果按卷积行在memory存储单元中存储为多部分部分积。
[0015]进一步的,所述外部指令信号包括memory读指令信号memory

rd和memory写指令信号memory

wr;
[0016]当memory

rd=1,memory

wr=0时,分别按顺序读取memory存储单元中元素与每一个卷积核卷积后的n部分部分积进行加和运算并缓存;
[0017]当memory

rd=0,memory

wr=1时,所述缓存数据存储至memory存储单元中;
[0018]当memory

rd=0,memory

wr=0时,memory存储单元不操作。
[0019]进一步的,所述memory读指令信号memory

rd和memory写指令信号memory

wr:
[0020]当memory

rd=1时,读取memory存储单元中的各部分部分积;当memory

rd=0时,不读取memory存储单元中的各部分部分积;
[0021]当memory

wr=1时,所述输出结果写入memory存储单元;当memory

wr=0时,所述输出结果不写入memory存储单元。
[0022]进一步的,根据缓存运算逻辑确定输入数组的元素和卷积核的权重;所述有效标志信号用于控制是否写入元素、卷积核的权重;所述有效标志信号为0时,不写入,为1时写入。
[0023]进一步的,所述使能信号包括FIFO读使能信号和FIFO写使能信号;
[0024]FIFO读使能信号用于控制中间FIFO缓存单元是否读出数据;
[0025]FIFO写使能信号用于控制中间FIFO缓存单元写入数据或输出数据至中间缓存调度电路单元的输出端。
[0026]进一步的,设置选择信号为sel,FIFO读使能信号为rd_en,FIFO写使能信号为wr_en;当用于进行3*3大小卷积核的运算,有效标志信号为1时,控制逻辑单元输出的选择信号和使能信号包括三个阶段:
[0027]起始阶段:第一周期:sel=0,rd_en=0,wr_en=1;
[0028]第二周期:sel=1,rd_en=1,wr_en=1;
[0029]第三周期:sel=0,rd_en=0,wr_en=1;
[0030]循环阶段:第四周期:sel=0,rd_en=1,wr_en=0;
[0031]第五周期:sel=1,rd_en=1,wr_en=1;
[0032]第六周期:sel=0,rd_en=0,wr_en=1;
[0033]…
[0034]结束阶段:最后一个周期:sel=0,rd_en=1,wr_en=0;
[0035]进一步的,所述数据选择信号sel为0时,控制选择器选择卷积结果到中间FIFO缓存单元,所述数据选择信号sel为1时,控制选择器选择卷积结果和中间FIFO缓存单元中最前面的数据之和到中间FIFO缓存单元;
[0036]所述FIFO读使能信号rd_en为1时,中间FIFO缓存单元进行一次读操作,将中间FIFO缓存单元最前面的数据输出,使卷积结果和该读取数据进行加和运算,FIFO读使能信
号rd_en为0时,中间FIFO缓存单元不读取;
[0037]所述FIFO写使能信号wr_en为1时,中间FIFO缓存单元进行一次写操作,将输入的数据写入到中间FIFO缓存单元最后,FIFO写使能信号wr_en为0时,中间FI本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于存内CNN的调度存储方法,其特征在于,包括以下步骤:对输入数组的元素和卷积核的权重进行卷积运算得到卷积结果;根据选择信号输出选择结果;所述选择结果包括卷积结果或加和结果;其中,所述加和结果为卷积结果和中间FIFO缓存单元输出的数据之和;根据使能信号选择是否将选择结果写入中间FIFO缓存单元以及选择是否输出中间FIFO缓存单元所存储的最前面的数据;基于使能取反信号输出加和结果,作为一次缓存调度的输出结果;基于外部指令信号和存储地址将所述输出结果写入memory存储模块;其中,所述选择信号、使能信号基于时钟信号和外部输入的有效标志信号得到。2.根据权利要求1所述的一种基于存内CNN的调度存储方法,其特征在于,所述基于外部指令信号和存储地址将所述输出结果写入memory存储模块包括:所述输出结果根据外部指令信号和存储地址写入memory存储单元或读取memory存储单元中的各部分部分积进行加和并重新存入memory存储单元;其中,所述输出结果按卷积行在memory存储单元中存储为多部分部分积。3.根据权利要求2所述的一种基于存内CNN的调度存储方法,其特征在于,所述外部指令信号包括memory读指令信号memory

rd和memory写指令信号memory

wr;当memory

rd=1,memory

wr=0时,分别按顺序读取memory存储单元中元素与每一个卷积核卷积后的n部分部分积进行加和运算并缓存;当memory

rd=0,memory

wr=1时,所述缓存数据存储至memory存储单元中;当memory

rd=0,memory

wr=0时,memory存储单元不操作。4.根据权利要求3所述的一种基于存内CNN的调度存储方法,其特征在于,所述memory读指令信号memory

rd和memory写指令信号memory

wr:当memory

rd=1时,读取memory存储单元中的各部分部分积;当memory

rd=0时,不读取memory存储单元中的各部分部分积;当memory

wr=1时,所述输出结果写入memory存储单元;当memory

wr=0时,所述输出结果不写入memory存储单元。5.根据权利要求4所述的一种基于存内CNN的调度存储方法,其特征在于,根据缓存运算逻辑确定输入数组的元素和卷积核的权重;所述有效标志信号用于控制是否写入元素、卷积核的权重;所述有效标志信号为0时,不写入,为1时写入。6.根据权利要...

【专利技术属性】
技术研发人员:张盛孙惜阳李政
申请(专利权)人:晶铁半导体技术广东有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1