数据处理电路和数据处理方法技术

技术编号:23471162 阅读:37 留言:0更新日期:2020-03-06 13:02
本发明专利技术实施例公开了一种数据处理电路和数据处理方法,涉及人工智能技术领域。其中数据处理电路包括:I/O单元,用于根据卷积核的行数,输入多行矩阵数据作为第一数据,并标记当前输入的所述多行矩阵数据的末尾行;配置单元,用于根据所述矩阵数据的大小和所述卷积核的大小,提供配置信息;多个FIFO存储模块用于分行存储当前输入的所述第一数据,并且按照先入先出的顺序分别输出所述第一数据;缓存单元,用于根据所述卷积核的列数,缓存所述多个FIFO存储模块中存储的多列所述第一数据,将其作为第二数据,并标记多列所述第一数据的起始列;存算一体芯片,用于接收所述第二数据,利用所述卷积核,对所述第二数据进行卷积运算。

Data processing circuit and data processing method

【技术实现步骤摘要】
数据处理电路和数据处理方法
本专利技术涉及人工智能
,具体涉及一种数据处理电路和数据处理方法。
技术介绍
神经网络是模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型,这种算法模型广泛应用于语音识别、图像识别以及自动驾驶等人工智能领域。在神经网络算法处理过程中,包含了大量的乘加运算,目前,通过存算一体芯片来实现数据的存储和运算过程。相关技术中,利用存算一体芯片实现神经网络算法是将卷积核数据预先存储到存算一体芯片的存储单元中,然后调用待运算数据与存储单元中的卷积核进行卷积运算。然而,神经网络算法的不同卷积层的卷积核大小不一使得不同卷积层需要输入的待运算数据的矩阵大小不一,因此,对调用的待运算数据进行数据处理使得其适用于神经网络算法的不同卷积层的卷积核大小成为了技术研究的关键。
技术实现思路
为了克服相关技术中存在的神经网络算法的不同卷积层的卷积核大小不一使得不同卷积层需要输入的待运算数据的矩阵大小不一的问题,本专利技术实施例提供了一种数据处理电路和数据处理方法。根据本专利技术的一方面,提供一种数据处理电路,包括:I/O单元,用于根据卷积核的行数,按照行顺序输入多行矩阵数据作为第一数据,并标记当前输入的所述多行矩阵数据的末尾行;配置单元,用于根据所述矩阵数据的大小和所述卷积核的大小,提供配置信息;FIFO存储单元,包括多个FIFO存储模块,根据所述配置信息设置所述多个FIFO存储模块的个数和第一深度,所述多个FIFO存储模块用于分行存储当前输入的所述第一数据,并且按照先入先出的顺序分别输出所述第一数据;缓存单元,用于根据所述卷积核的列数,按照所述多个FIFO存储模块的编号顺序缓存所述多个FIFO存储模块中存储的多列所述第一数据,将其作为第二数据,并标记当前缓存的所述多个FIFO存储模块中存储的多列所述第一数据的起始列;存算一体芯片,与所述缓存单元相连,用于接收所述第二数据,利用所述卷积核,对所述第二数据进行卷积运算。可选地,所述缓存单元先缓存一个所述FIFO存储模块中的所述多列所述第一数据,缓存完之后,缓存下一个所述FIFO存储模块中的所述多列所述第一数据,直到缓存完所述多个FIFO存储模块中存储的所述多列所述第一数据,得到一列所述第二数据。可选地,在所述第二数据参与完卷积运算时,所述缓存单元,还用于清空所述第二数据,将标记的所述起始列更新为所述起始列的下一列,并按照所述多个FIFO存储模块的编号顺序和更新后的所述起始列,缓存所述多个FIFO存储模块中存储的多列所述第一数据并作为下一次卷积运算的第二数据,直到所述第一数据都卷积运算完。可选地,在所述当前输入的所述第一数据参与完卷积运算时,所述I/O单元,还用于将标记的所述末尾行更新为所述末尾行的下一行,并且输入更新后的所述末尾行的所述矩阵数据;所述FIFO存储单元,还用于根据使能轮换信号将所述多个FIFO存储模块的编号顺序轮换,将当前第一编号的所述FIFO存储模块轮换为最后编号的所述FIFO存储模块,将轮换后的所述最后编号的所述FIFO存储模块清空并存储所述更新后的所述末尾行的所述矩阵数据,将顺序轮换后所述多个FIFO存储模块中存储的多行所述矩阵数据作为下一次卷积运算的第一数据,直到所述矩阵数据都卷积运算完。可选地,所述FIFO存储单元,还包括:第一通路选择器,与所述I/O单元连接以接收所述第一数据,分别与所述多个FIFO存储模块连接,用于逐个选通所述多个FIFO存储模块并逐个将相应行的所述第一数据传输给相应的所述FIFO存储模块;第二通路选择器,与所述多个FIFO存储模块连接以接收所述第一数据,用于根据所述使能轮换信号,逐个选通所述多个FIFO存储模块并逐个将所述FIFO存储模块中存储的相应行的多列所述第一数据传输给所述缓存单元。可选地,所述FIFO存储模块包括级联的多个FIFO存储子模块,所述FIFO存储子模块包括:第二深度的FIFO存储器和第三通路选择器;所述第三通路选择器包括第一输入通路和第二输入通路,所述第一输入通路与所述第一通路选择器连接以接收相应行的多列所述第一数据,所述第二输入通路与前一级的所述FIFO存储子模块的所述FIFO存储器的输出端相连;最后一级的所述FIFO存储子模块的所述FIFO存储器的输出端与所述第二通路选择器连接,用于输出所述FIFO存储模块中存储的相应行的多列所述第一数据。可选地,所述FIFO存储模块的所述第一深度与级联的所述FIFO存储器的所述第二深度的和相等。可选地,所述卷积核的行数与所述FIFO存储模块的个数相等,所述矩阵数据的列数与所述FIFO存储模块的所述第一深度相等,所述第一数据的行数与所述卷积核的行数相等,所述第一数据的列数与所述矩阵数据的列数相等,所述第二数据的数据个数与所述卷积核的行数和所述卷积核的列数的乘积相等。根据本专利技术的另一方面,提供一种数据处理方法,包括:根据卷积核的行数,按照行顺序输入多行矩阵数据作为第一数据,并标记当前输入的所述多行矩阵数据的末尾行;根据所述矩阵数据的大小和所述卷积核的大小,提供配置信息;根据所述配置信息设置多个FIFO存储模块的个数和第一深度,所述多个FIFO存储模块分行存储当前输入的所述第一数据,并且按照先入先出的顺序分别输出所述第一数据;根据所述卷积核的列数,按照所述多个FIFO存储模块的编号顺序缓存所述多个FIFO存储模块中存储的多列所述第一数据,将其作为第二数据,并标记当前缓存的所述多个FIFO存储模块中存储的多列所述第一数据的起始列;接收所述第二数据,利用所述卷积核,对所述第二数据进行卷积运算。可选地,所述根据所述卷积核的列数,按照所述多个FIFO存储模块的编号顺序缓存所述多个FIFO存储模块中存储的多列所述第一数据,将其作为第二数据,并标记当前缓存的所述多个FIFO存储模块中存储的多列所述第一数据的起始列,包括:先缓存一个所述FIFO存储模块中的所述多列所述第一数据,缓存完之后,缓存下一个所述FIFO存储模块中的所述多列所述第一数据,直到缓存完所述多个FIFO存储模块中存储的所述多列所述第一数据,得到一列所述第二数据。可选地,在所述第二数据参与完卷积运算时,清空所述第二数据,将标记的所述起始列更新为所述起始列的下一列,并按照所述多个FIFO存储模块的编号顺序和更新后的所述起始列,缓存所述多个FIFO存储模块中存储的多列所述第一数据并作为下一次卷积运算的第二数据,直到所述第一数据都卷积运算完。可选地,在所述当前输入的所述第一数据参与完卷积运算时,将标记的所述末尾行更新为所述末尾行的下一行,并且输入更新后的所述末尾行的所述矩阵数据;根据使能轮换信号将所述多个FIFO存储模块的编号顺序轮换,将当前第一编号的所述FIFO存储模块轮换为最后编号的所述FIFO存储模块,将轮换后的所述最后编号的所述FIFO存储模块清空并存储本文档来自技高网...

【技术保护点】
1.一种数据处理电路,其特征在于,包括:/nI/O单元,用于根据卷积核的行数,按照行顺序输入多行矩阵数据作为第一数据,并标记当前输入的所述多行矩阵数据的末尾行;/n配置单元,用于根据所述矩阵数据的大小和所述卷积核的大小,提供配置信息;/nFIFO存储单元,包括多个FIFO存储模块,根据所述配置信息设置所述多个FIFO存储模块的个数和第一深度,所述多个FIFO存储模块用于分行存储当前输入的所述第一数据,并且按照先入先出的顺序分别输出所述第一数据;/n缓存单元,用于根据所述卷积核的列数,按照所述多个FIFO存储模块的编号顺序缓存所述多个FIFO存储模块中存储的多列所述第一数据,将其作为第二数据,并标记当前缓存的所述多个FIFO存储模块中存储的多列所述第一数据的起始列;/n存算一体芯片,与所述缓存单元相连,用于接收所述第二数据,利用所述卷积核,对所述第二数据进行卷积运算。/n

【技术特征摘要】
1.一种数据处理电路,其特征在于,包括:
I/O单元,用于根据卷积核的行数,按照行顺序输入多行矩阵数据作为第一数据,并标记当前输入的所述多行矩阵数据的末尾行;
配置单元,用于根据所述矩阵数据的大小和所述卷积核的大小,提供配置信息;
FIFO存储单元,包括多个FIFO存储模块,根据所述配置信息设置所述多个FIFO存储模块的个数和第一深度,所述多个FIFO存储模块用于分行存储当前输入的所述第一数据,并且按照先入先出的顺序分别输出所述第一数据;
缓存单元,用于根据所述卷积核的列数,按照所述多个FIFO存储模块的编号顺序缓存所述多个FIFO存储模块中存储的多列所述第一数据,将其作为第二数据,并标记当前缓存的所述多个FIFO存储模块中存储的多列所述第一数据的起始列;
存算一体芯片,与所述缓存单元相连,用于接收所述第二数据,利用所述卷积核,对所述第二数据进行卷积运算。


2.根据权利要求1所述的数据处理电路,其特征在于,所述缓存单元先缓存一个所述FIFO存储模块中的所述多列所述第一数据,缓存完之后,缓存下一个所述FIFO存储模块中的所述多列所述第一数据,直到缓存完所述多个FIFO存储模块中存储的所述多列所述第一数据,得到一列所述第二数据。


3.根据权利要求1所述的数据处理电路,其特征在于,在所述第二数据参与完卷积运算时,
所述缓存单元,还用于清空所述第二数据,将标记的所述起始列更新为所述起始列的下一列,并按照所述多个FIFO存储模块的编号顺序和更新后的所述起始列,缓存所述多个FIFO存储模块中存储的多列所述第一数据并作为下一次卷积运算的第二数据,直到所述第一数据都卷积运算完。


4.根据权利要求3所述的数据处理电路,其特征在于,在所述当前输入的所述第一数据参与完卷积运算时,
所述I/O单元,还用于将标记的所述末尾行更新为所述末尾行的下一行,并且输入更新后的所述末尾行的所述矩阵数据;
所述FIFO存储单元,还用于根据使能轮换信号将所述多个FIFO存储模块的编号顺序轮换,将当前第一编号的所述FIFO存储模块轮换为最后编号的所述FIFO存储模块,将轮换后的所述最后编号的所述FIFO存储模块清空并存储所述更新后的所述末尾行的所述矩阵数据,将顺序轮换后所述多个FIFO存储模块中存储的多行所述矩阵数据作为下一次卷积运算的第一数据,直到所述矩阵数据都卷积运算完。


5.根据权利要求4所述的数据处理电路,其特征在于,所述FIFO存储单元,还包括:
第一通路选择器,与所述I/O单元连接以接收所述第一数据,分别与所述多个FIFO存储模块连接,用于逐个选通所述多个FIFO存储模块并逐个将相应行的所述第一数据传输给相应的所述FIFO存储模块;
第二通路选择器,与所述多个FIFO存储模块连接以接收所述第一数据,用于根据所述使能轮换信号,逐个选通所述多个FIFO存储模块并逐个将所述FIFO存储模块中存储的相应行的多列所述第一数据传输给所述缓存单元。


6.根据权利要求5所述的数据处理电路,其特征在于,
所述FIFO存储模块包括级联的多个FIFO存储子模块,所述FIFO存储子模块包括:第二深度的FIFO存储器和第三通路选择器;
所述第三通路选择器包括第一输入通路和第二输入通路,所述第一输入通路与所述第一通路选择器...

【专利技术属性】
技术研发人员:安友伟马亮杨小龙李建球余作欢李迪闫江陈刚刘大海张登军逯钊琦
申请(专利权)人:珠海博雅科技有限公司
类型:发明
国别省市:广东;44

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

1