一种基于存内CNN中间缓存调度的存储器制造技术

技术编号:36884409 阅读:9 留言:0更新日期:2023-03-15 21:25
本发明专利技术涉及基于存内CNN中间缓存调度的存储器,属于复用CNN调度运算技术领域,解决了现有技术中访存和数据搬运造成的能耗强和延迟高的问题。一种基于存内CNN中间缓存调度的存储器,包括:控制逻辑单元,用于根据时钟信号和外部输入的有效标志信号输出选择信号和使能信号;运算逻辑单元,用于对元素和权重进行卷积运算,输出对应的卷积结果至选择器;选择器,用于基于选择信号,选择输出卷积结果或加和结果;中间FIFO缓存单元,用于根据使能信号选择是否将选择器输出的数据写入中间FIFO缓存单元以及选择是否输出所存储的数据;memory存储模块,用于根据外部指令信号和存储地址存储并计算经第一加法器输出的加和结果。实现了FIFO缓存简化CNN调度的实现。缓存简化CNN调度的实现。缓存简化CNN调度的实现。

【技术实现步骤摘要】
一种基于存内CNN中间缓存调度的存储器


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

技术介绍

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

技术实现思路

[0004]鉴于上述的分析,本专利技术实施例旨在提供一种基于存内CNN中间缓存调度的存储器,用以解决现有访存和数据搬运造成的能耗和延迟的问题。
[0005]一方面,本专利技术实施例提供了一种基于存内CNN中间缓存调度的存储器,包括控制逻辑单元、缓存调度电路单元和memory存储模块;所述缓存调度电路单元包括运算逻辑单元、第一加法器、选择器和中间FIFO缓存单元;
[0006]所述控制逻辑单元,用于根据时钟信号和外部输入的有效标志信号输出选择信号和使能信号;
[0007]所述运算逻辑单元,用于对输入数组的元素和卷积核的权重进行卷积运算,输出对应的卷积结果至选择器;
[0008]所述第一加法器,用于基于使能信号,对所述卷积结果和所述中间FIFO缓存单元输出的数据进行加和,输出加和结果至选择器或基于使能取反信号输出加和结果至所述
memory存储模块;
[0009]所述选择器,用于基于所述选择信号,选择输出所述卷积结果或所述加和结果;
[0010]所述中间FIFO缓存单元,用于根据所述使能信号选择是否将选择器输出的数据写入所述中间FIFO缓存单元以及选择是否输出所存储的数据;
[0011]所述memory存储模块,用于根据外部指令信号和存储地址存储并计算经第一加法器输出的所述加和结果。
[0012]进一步的,所述memory存储模块包括memory存储单元、第三加法器和临时缓存区;
[0013]所述memory存储单元,包括n部分,每部分存储的部分积是一行元素卷积结果,用于根据所述外部指令信号和存储地址存储或读取部分积;其中卷积核大小为n*n;
[0014]所述第三加法器,用于将memory存储单元读取的部分积对应卷积结果进行相加得到完整卷积结果并存入临时缓存区中。
[0015]进一步的,所述第三加法器和临时缓存区的数量与卷积核数量一致,均有Cout个,每个第三加法器对对应卷积核的每一部分卷积结果进行相加存入对应临时缓存区中。
[0016]进一步的,所述外部指令信号包括memory读指令信号memory

rd和memory写指令信号memory

wr;
[0017]当memory

rd=1,memory

wr=0时,memory存储单元按顺序分别读取元素与每一个卷积核卷积后的n部分数据至第三加法器;经第三加法器做加和运算输入至对应临时缓存区;
[0018]当memory

rd=0,memory

wr=1时,临时缓存区中的数据存储至memory中;
[0019]当memory

rd=0,memory

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

【技术保护点】

【技术特征摘要】
1.一种基于存内CNN中间缓存调度的存储器,其特征在于,包括控制逻辑单元、缓存调度电路单元和memory存储模块;所述缓存调度电路单元包括运算逻辑单元、第一加法器、选择器和中间FIFO缓存单元;所述控制逻辑单元,用于根据时钟信号和外部输入的有效标志信号输出选择信号和使能信号;所述运算逻辑单元,用于对输入数组的元素和卷积核的权重进行卷积运算,输出对应的卷积结果至选择器;所述第一加法器,用于基于使能信号,对所述卷积结果和所述中间FIFO缓存单元输出的数据进行加和,输出加和结果至选择器或基于使能取反信号输出加和结果至所述memory存储模块;所述选择器,用于基于所述选择信号,选择输出所述卷积结果或所述加和结果;所述中间FIFO缓存单元,用于根据所述使能信号选择是否将选择器输出的数据写入所述中间FIFO缓存单元以及选择是否输出所存储的数据;所述memory存储模块,用于根据外部指令信号和存储地址存储并计算经第一加法器输出的所述加和结果。2.根据权利要求1所述的一种基于存内CNN中间缓存调度的存储器,其特征在于,所述memory存储模块包括memory存储单元、第三加法器和临时缓存区;所述memory存储单元,包括n部分,每部分存储的部分积是一行元素卷积结果,用于根据所述外部指令信号和存储地址存储或读取部分积;其中卷积核大小为n*n;所述第三加法器,用于将memory存储单元读取的部分积对应卷积结果进行相加得到完整卷积结果并存入临时缓存区中。3.根据权利要求2所述的一种基于存内CNN中间缓存调度的存储器,其特征在于,所述第三加法器和临时缓存区的数量与卷积核数量一致,均有Cout个,每个第三加法器对对应卷积核的每一部分卷积结果进行相加存入对应临时缓存区中。4.根据权利要求3所述的一种基于存内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存储单元不操作。5.根据权利要求4所述的一种基于存内CNN中间缓存调度的存储器,其特征在于,当所述缓存调度电路进行n*n卷积核大小的运算,所述中间FIFO缓存单元的存储大小为n。6.根据权利要求5所述的一种基于存内CNN中间缓存调度的存储器,其特征在于,所述使能信号包括FIFO读使能信号和FIFO写使能信号;FIFO读使能信号用于控制中间FIFO缓存单元读出数据;FIFO写使能信号用于控制中间FIFO缓存单元写入数据或输出至中间缓存调度电路单元的输出端。7.根据权利要求6所述的一种基于存内CNN中间缓存调度的存储器,其特征在于,设置选择信号为sel,FIFO读使能信号为rd_en,F...

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

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

1