存内计算芯片及系统的制作方法

未命名 07-22 阅读:118 评论:0


1.本发明涉及人工智能技术领域,尤其是涉及一种存内计算芯片及系统。


背景技术:

2.随着社会的发展,人工智能在多个领域中有了广泛的应用,而实现人工智能所需要用到的神经网络与深度学习算法,其较高的存储密度和计算密度对于传统的冯
·
诺依曼架构处理器来说,会使其产生功耗墙和存储墙等问题。存内计算通过将数据的存储与计算合二为一,极大程度上减小了在计算过程中因数据传输而产生的功耗,同时也减少了因数据搬移而浪费的时间,为即时性强、计算数据量大的人工智能神经网络的硬件实现提供了良好的解决办法。


技术实现要素:

3.本发明旨在至少解决现有技术中存在的技术问题之一。
4.为此,本发明提出了一种存内计算芯片及系统,能够用较小的资源消耗量与时钟周期,完成人工智能目标分类任务的图像特征提取。
5.根据本技术的第一方面实施例,提供了一种存内计算芯片,包括:总线接口模块、缓存模块、数字控制模块、输入模块、数据处理模块和输出模块;所述总线接口模块,用于接收外部数据,并将接收到的所述外部数据分类发送至所述缓存模块和所述输入模块;所述外部数据包括各类参数、控制信息和图片数据;所述缓存模块,用于接收并缓存所述总线接口模块传送的各类参数和控制信息;以及将各类参数按需传送至所述数据处理模块;所述数字控制模块,用于读取所述缓存模块中缓存的控制信息,并基于控制信息配置所述数据处理模块;所述输入模块,用于接收并缓存所述总线接口模块传送的图片数据;所述数据处理模块,用于在所述数字控制模块的控制下,基于所述缓存模块传送的各类参数对所述输入模块缓存的图片数据进行处理;所述输出模块,用于将经所述数据处理模块处理后的图片数据输出。
6.根据本技术的一些实施例,所述缓存模块包括第一参数缓存单元和第二参数缓存单元;所述各类参数包括权重参数、还原优化参数、批归一化参数、残差相加参数和激活函数参数;所述第一参数缓存单元用于接收并缓存所述权重参数;所述第二参数缓存单元用于接收并缓存所述还原优化参数、批归一化参数、残差相加参数和激活函数参数和所述控制信息;以及将所述还原优化参数、批归一化参数、残差相加参数和激活函数参数按需传送至所述数据处理模块。
7.根据本技术的一些实施例,所述数据处理模块包括预处理子模块、卷积子模块和后处理子模块;所述预处理子模块,用于对所述输入模块缓存的图片数据在卷积前进行预处理;所述卷积子模块,用于对预处理后的图片数据进行卷积以获得卷积结果数据;所述后
处理子模块,用于对所述卷积结果数据进行后处理。
8.根据本技术的一些实施例,所述预处理子模块包括多路预处理单元,多路所述预处理单元并联连接;所述预处理单元包括数据填补子单元、数据整理子单元和数据拆分子单元;所述数据填补子单元,用于对所述输入模块缓存的图片数据在卷积前进行最外圈的补零操作;所述数据整理子单元,用于对补零操作后的图片数据按照预定规格的卷积核进行整理;所述数据拆分子单元,用于将整理后的图片数据进行拆分以适配所述卷积子模块的运算;以及,向所述卷积子模块发送卷积信号。
9.根据本技术的一些实施例,所述数据填补子单元内设置有一个fifo缓存器,所述数据整理子单元内设置有多个所述fifo缓存器,所述数据填补子单元中的所述fifo缓存器和所述数据整理子单元中的多个所述fifo缓存器配合完成卷积所需的多行图片数据的遍历。
10.根据本技术的一些实施例,所述后处理子模块包括模数转换单元和多路后处理单元,多路所述后处理单元并联连接;所述模数转换单元,用于对所述卷积结果数据进行模数转换;所述后处理单元,用于对模数转换后的卷积结果数据进行后处理。
11.根据本技术的一些实施例,所述后处理单元包括数据还原子单元、批归一化子单元、残差相加子单元和映射子单元;所述数据还原子单元,用于对转换后的所述卷积结果数据进行按位还原和修饰;所述批归一化子单元,用于对还原和修饰后的所述卷积结果数据进行一次函数操作;所述残差相加子单元,用于接收并缓存所述数据整理子单元传送的整理后的图片数据;以及,将缓存的整理后的图片数据与经过所述批归一化子单元处理后的所述卷积结果数据按正确顺序相加;所述映射子单元,用于对经残差相加子单元处理后的数据进行映射。
12.根据本技术的一些实施例,所述残差相加子单元还用于对所述数据整理子单元传送的整理后的图片数据进行降采样。
13.根据本技术的一些实施例,所述输入模块和所述输出模块均设置了总线接口数据传输模式和握手数据传输模式。
14.根据本技术的第一方面实施例提供的存内计算芯片,至少具有如下有益效果:总线接口模块接收外部数据,并将接收到的外部数据分类发送至缓存模块和输入模块;外部数据包括各类参数、控制信息和图片数据;缓存模块接收并缓存总线接口模块传送的各类参数和控制信息并将各类参数按需传送至数据处理模块;数字控制模块读取缓存模块中缓存的控制信息,并基于控制信息配置数据处理模块;输入模块接收并缓存总线接口模块传送的图片数据;数据处理模块在数字控制模块的控制下,基于缓存模块传送的各类参数对输入模块缓存的图片数据进行处理;输出模块将经数据处理模块处理后的图片数据输出。上述技术方案将芯片的内部数字模块化,每个数字模块的功能具有高度针对性,使得该存内计算芯片能够用较小的资源消耗量与时钟周期,来实现resnet系列神经网络算法的运算;将能够完成resnet系列神经网络算法的一个卷积层的全部逻辑电路封装到一块芯片内,可配置运行resnet系列神经网络算法的任意一层,具有较高的灵活性,方便工业生产。
15.根据本技术的第二方面实施例,提供了一种存内计算系统,包括多个如上述所述的存内计算芯片;每个所述存内计算芯片的各类参数和控制信息通过各个所述存内计算芯片上的总线接口模块从外部接收;首个所述存内计算芯片的输入模块执行总线接口数据传
输模式,从外部获取图像数据;每两个所述存内计算芯片间的数据交互以握手数据传输模式通过各自的输入模块和输出模块来实现;末尾所述存内计算芯片的输出模块执行总线接口数据传输模式,将最终数据输出。
16.根据本技术的第二方面实施例提供的存内计算系统,至少具有如下有益效果:每两个芯片间采用“握手”方式通信,一方面避免了数据的不必要搬运和因较繁琐传输协议而造成的不必要的时间浪费,可以进一步加快图片数据的传输效率,进而满足神经网络运算所需的快捷性和时效性;另一方面避免了在芯片内对结果数据进行缓存,避免因数据缓存而额外占用芯片的内部空间,有利于减小芯片的面积。
17.本技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本技术而了解。本技术的目的和其他优点可通过在说明书以及附图中所特别指出的结构来实现和获得。
附图说明
18.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:图1为本技术实施例提供的存内计算芯片的结构框图;图2为本技术实施例提供的存内计算芯片的部分细化结构框图;图3为本技术实施例提供的存内计算芯片的进一步细化结构框图;图4为本技术实施例提供的降采样流程示意图;图5为本技术实施例提供的对图片中任意相邻三行数据的遍历流程框图;图6为本技术实施例提供的存内计算系统的结构框图。
具体实施方式
19.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
20.需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而非用于描述特定的顺序或先后次序。若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。
21.本技术旨在提供一种存内计算芯片及系统,能够用较小的资源消耗量与时钟周期,来实现resnet系列神经网络算法的运算,完成人工智能目标分类任务的图像特征提取。
22.如图1所示,本技术的第一方面实施例提供了一种存内计算芯片,包括总线接口模块10(ahb)、缓存模块20、数字控制模块30(digital controller)、输入模块40(input)、数据处理模块50和输出模块60(output)。
23.其中,总线接口模块10用于接收外部数据,并将接收到的外部数据分类发送至缓存模块20和输入模块40;外部数据包括各类参数、控制信息和图片数据;缓存模块20用于接
收并缓存总线接口模块10传送的各类参数和控制信息;以及将各类参数按需传送至数据处理模块50;数字控制模块30用于读取缓存模块20中缓存的控制信息,并基于该控制信息配置数据处理模块50开启或关闭;输入模块40用于接收并缓存总线接口模块10传送的图片数据;数据处理模块50用于在数字控制模块30的控制下,基于缓存模块20传送的各类参数对输入模块40缓存的图片数据进行处理;输出模块60用于将经数据处理模块50处理后的图片数据输出。
24.本技术将芯片内部结构数字模块化,每个数字模块的功能具有高度针对性;将能够完成resnet系列神经网络算法的一个卷积层的全部逻辑电路封装到一块芯片内,可配置运行resnet系列神经网络算法的任意一层,具有较高的灵活性,方便工业生产。
25.如图2所示,在本技术的一些具体实施例中,缓存模块20包括第一参数缓存单元21(weight loader)和第二参数缓存单元22(register);外部数据中的各类参数包括权重参数、还原优化参数、批归一化参数、残差相加参数和激活函数参数。第一参数缓存单元21用于接收并缓存权重参数(即卷积核),该权重参数是图片数据在进行卷积时需要用到的。第二参数缓存单元22用于接收并缓存还原优化参数、批归一化参数、残差相加参数和激活函数参数和控制信息等,这些参数是图片数据在进行还原、批归一化、残差相加和激活函数等操作时需要用到的。第二参数缓存单元22还用于将这些参数按需传送至数据处理模块50。
26.如图2所示,在本技术的一些具体实施例中,数据处理模块50包括预处理子模块51、卷积子模块52和后处理子模块53。预处理子模块51用于对输入模块40缓存的图片数据在卷积前进行预处理;卷积子模块52基于第一参数缓存单元21按照正确时序传送的权重参数,对预处理后的图片数据进行卷积以获得卷积结果数据;后处理子模块53基于第二参数缓存单元22传送的还原优化参数、批归一化参数、残差相加参数和激活函数参数对卷积结果数据进行后处理。在本技术中,卷积子模块52采用cim阵列,便于操作,逻辑鲜明,执行能力强。
27.如图2所示,在本技术的一些具体实施例中,预处理子模块51包括多路预处理单元511,多路预处理单元511并联连接。每路预处理单元511均可以处理通道数为16的图片数据,这使得存内计算芯片可以处理通道数为n*16(n表示大于等于1的整数)的图片数据。在本技术中,可根据每次所需处理的图片数据通道数的不同,调整预处理单元511的调用数量,以减少不必要的功耗。具体地,由输入模块40根据数字控制模块30传送的控制信息和当前图像的通道数来选择预处理单元511的调用数量。
28.需要说明的是,resnet系列神经网络中并不是所有卷积层都能处理三维相同的图片数据,图片数据在进行卷积时会根据卷积核的维度和数量变化产生新三维的图片数据。由于在进行图片数据拆分时,是按像素点拆分的,所以图片的长宽变化不会对芯片设计产生很大影响,只有通道数会有影响。
29.如图3所示,在本技术的一些具体实施例中,预处理单元511包括数据填补子单元5111(padding)、数据整理子单元5112(feature generate)和数据拆分子单元5113(sender);数据填补子单元5111、数据整理子单元5112和数据拆分子单元5113均可以处理通道数为16的图片数据。
30.数据填补子单元5111用于对输入模块40缓存的图片数据在卷积前进行最外圈的补零操作,以保证整张图片中的像素点获得相同的遍历度;数据整理子单元5112用于对补
零操作后的图片数据按照预定规格的卷积核进行整理;数据拆分子单元5113用于将整理后的图片数据进行拆分以适配卷积子模块52的运算;以及,向卷积子模块52发送卷积信号,使得卷积子模块52在卷积信号的控制下,对数据拆分子单元5113传送的拆分后的图片数据进行卷积操作以获得卷积结果数据。
31.在本技术中,数据整理子单元5112对数据填补子单元5111传送的补零后的图片数据按照卷积核尺寸进行整理,数据拆分子单元5113将数据整理子单元5112传送的整理后的图片数据进行数据拆分以适配卷积子模块52的运算。例如,数据整理子单元5112对数据填补子单元5111传送的补零后的图片数据按照3*3的卷积核尺寸进行整理以获得4bit的图片数据;数据拆分子单元5113将数据整理子单元5112传送的4bit的图片数据拆分为4个1bit的图片数据以适配卷积子模块52的运算。通过数据拆分子单元5113将位宽较大的数据拆分为多个1bit数据后送入卷积子模块52中的sram的开关上,不需经过数模转换(dac)就能完成数字与模拟数据的传输,这在一定程度上避免了将数据完整送入卷积子模块52运算后可能产生的误差,同时也减小了后处理子模块53的压力,尤其是减小了后处理子模块53中的模数转换单元531(adc)的压力,增强了经整个芯片计算后的数据的正确性和可靠性。
32.如图2所示,在本技术的一些具体实施例中,后处理子模块53包括模数转换单元531(adc)和多路后处理单元532,多路后处理单元532并联连接,每路后处理单元532均可以处理通道数为16的图片数据。模数转换单元531用于对卷积子模块52传送的卷积结果数据进行模数转换;后处理单元532基于第二参数缓存单元22传送的还原优化参数、批归一化参数、残差相加参数和激活函数参数对模数转换后的卷积结果数据进行后处理。在本技术中,可根据预处理单元511的调用数量选择后处理单元532的调用数量,以减少不必要的功耗。
33.如图3所示,在本技术的一些具体实施例中,后处理单元532包括数据还原子单元5321(shift add)、批归一化子单元5322(batch normalization)、残差相加子单元5323(shortcut)和映射子单元5324(hardtanh)。数据还原子单元5321、批归一化子单元5322、残差相加子单元5323和映射子单元5324均可以处理通道数为16的图片数据。数据还原子单元5321接收由第二参数缓存单元22传送的还原优化参数;批归一化子单元5322接收由第二参数缓存单元22传送的批归一化参数;残差相加子单元5323接收由第二参数缓存单元22传送的残差相加参数;映射子单元5324接收由第二参数缓存单元22传送的激活函数参数。
34.数据还原子单元5321用于对模数转换单元531传送的转换后的卷积结果数据按位进行还原;以及,基于还原优化参数进行数据修饰;该还原优化参数可以表明数据还原子单元5321中的数据是否需要移位。批归一化子单元5322基于批归一化参数对数据还原子单元5321传送的还原和修饰后的卷积结果数据进行一次函数操作,即“ax+b”操作,x表示还原和修饰后的卷积结果数据,a和b表示批归一化参数。残差相加子单元5323用于接收并缓存数据整理子单元5112传送对应像素点位的整理后的图片数据;以及,将缓存的整理后的图片数据与经过批归一化子单元5322处理后的卷积结果数据基于残差相加参数按正确顺序相加。映射子单元5324基于激活函数参数对经残差相加子单元5323处理后的数据进行映射。
35.在本技术的一些具体实施例中,来自于数据整理子单元5112的整理后的图片数据会比经过批归一化子单元5322处理后的卷积结果数据更先到达残差相加子单元5323,因此,在残差相加子单元5323中设置fifo缓存器来缓存数据整理子单元5112传送的整理后的图片数据,然后将该整理后的图片数据和经过批归一化子单元5322处理后的数据按正确顺
序相加。
36.在本技术的一些具体实施例中,当残差相加子单元5323进行数据的残差相加时,来自于数据整理子单元5112的整理后的图片数据与经过批归一化子单元5322处理后的卷积结果数据会出现三维不匹配问题,无法直接相加。因此,残差相加子单元5323还用于对整理后的图片数据进行降采样操作。如图4所示,首先对整理后的图片数据的像素点进行采样,而后进行通道扩展,直接在扩展区域内全部补上零。
37.在本技术的一些具体实施例中,映射子单元5324通过算法训练,在保留图片特征的前提下得出一组缩放范围,将图片数据在这些范围中进行缩放。具体是,提前从resnet系列神经网络算法训练中得出预定范围内的一定数量的值,并提前通过第二参数缓存单元22发送到映射子单元5324,完成参数缓存。最后将从残差相加子单元5323接收到的数据在这上述预定范围内进行比对,并根据比对结果得到一组限定范围的数据,即完成算法中对数据的映射,数据运算全部完成。以resnet14为例,提前从resnet14神经网络算法训练中得出15个范围共计28个值,并提前通过第二参数缓存单元22发送到映射子单元5324,完成参数缓存。最后将从残差相加子单元5323接收到的数据在这15个范围内进行比对,并根据比对结果得到一组范围为(-7,7)的4bit的数据,即完成算法中对数据的映射,数据运算全部完成。
38.在本技术的一些具体实施例中,为了增强单个存内计算芯片的功能性,输入模块40和输出模块60均设置了两种数据传输模式;一是可适配总线接口数据传输模式,二是“握手”数据传输模式。
39.在本技术的一些具体实施例中,以图片数据通道数为16时的 resnet14为例描述特征图的卷积操作。
40.第一,加载外部数据。外部设备通过总线接口模块10把芯片需要接收的还原优化参数、批归一化参数、残差相加参数、激活函数参数和相关控制信息写入到第二参数缓存单元22中;数字控制模块30读取第二参数缓存单元22写入的相关控制信息;此时,第一参数缓存单元21进入就绪状态,外部设备通过总线接口模块10将权重参数发送到第一参数缓存单元21;当第一参数缓存单元21接收到权重数据后,第一参数缓存单元21在数字控制模块30的控制下将权重参数写入到卷积子模块52的相应位置,为卷积做准备。
41.第二,进行数据整理。当卷积核权重参数加载完毕后,输入模块40根据数字控制模块30从第二参数缓存单元22读取的控制信息和当前图像的通道数将芯片配置为16通道的数据处理模式,即开启一路预处理单元511(一个数据填补子单元5111、一个数据整理子单元5112和一个数据拆分子单元5113)。此时,输入模块40进入就绪状态,外部设备通过总线接口模块10将图片数据发送到输入模块40中,当输入模块40接收到图片数据后会根据数字控制模块30从第二参数缓存单元22读取的控制信息发送图片数据到一个数据填补子单元5111中。
42.数据填补子单元5111中存在一个fifo缓存器,可以缓存图片的一行数据并自动在整张图片数据的开头和结尾处进行补零操作。数据填补子单元5111每完成图片的一行数据的处理后,会立即将处理后的数据发送到数据整理子单元5112。数据整理子单元5112中存在两个fifo缓存器可以完成图片的两行数据的缓存,数据填补子单元5111和数据整理子单元5112内共计三个fifo缓存器配合完成卷积所需的图片的三行数据的遍历。例如,要遍历
图片的某相邻三行数据时,先将通过数据填补子单元5111的fifo1缓存器的第一行数据,沿着图5所示的箭头指引方向,到达fifo3缓存器缓存;此时,第二行数据到达fifo2缓存器缓存,第三行数据无需缓存,直接向后输出,这样就完成了图片的三行数据的同时遍历。
43.需要说明的是,数据整理子单元5112中还添加了6个寄存器用于延迟fifo输出的两列卷积点与fifo中当前缓存的第三列,即可获得完整的3*3的卷积点(对应卷积核的长宽大小)。这是因为一个fifo可以缓存一行数据,三个fifo可以缓存三行数据;由于卷积是需要三行三列的九个数据点,而一个fifo每次只能输出一个数据点,因此,在每个fifo后添加两个寄存器用来缓存,就可以获得卷积所用的9个数据点。
44.第三,数据整理子单元5112将缓存完毕后的待卷积数据发送到数据拆分子单元5113中,在数据拆分子单元5113中的待卷积数据被按bit拆分并送往卷积子模块52中进行卷积操作。在本实施例中,根据resnet14神经网络算法,卷积子模块52按照1bit权重4bit激活值(1w4a)图片数据的方式进行卷积。
45.第四,当待卷积数据在卷积子模块52中完成卷积后,卷积子模块52将卷积结果数据传送至8bit的模数转换单元531进行模数转换;经模数转换后的卷积结果数据被传送至数据还原子单元5321进行按位还原和修饰。由于数据拆分子单元5113将4bit的图片数据拆分为了4个1bit,所以数据还原子单元5321需分四个时钟周期完成接收。在本实施例中,数据还原子单元5321基于1w4a的逻辑对卷积结果数据进行还原,计算公式如下:
46.具体是,即第一个数据不动,第二个数据乘2(表现在电路中为左移一位),第三个数据乘4(表现在电路中为左移两位),第四个数按位取反在加一而后乘8(因为图片数据既有正值也有负值,所以在整个系统中的数据均以补码形式进行运算,按位取反加1遵循了补码中取负值的运算方式),最后再将四个数直接相加即可。
47.需要说明的是,上述的第四个数据是从8bit的模数转换单元531接收到,而后又左移了三位的,其数据位宽已达到了11bit,最后再将这四个数据相加,数据位宽会大于11bit,因此数据还原子单元5321中的相关寄存器需保留最大的寄存器位宽,即可按照四个11bit的数据相加,得到13bit的数据。对此,在算法验证确实可行的前提下,数据还原子单元5321还加入了对后续电路的数据位宽优化,即采用对数据的四舍五入的方式,来缩短数据位宽,减少资源占用。
48.第五,数据还原子单元5321将还原后的卷积结果数据依次发送到批归一化子单元5322进行“ax+b”操作;批归一化子单元5322将处理后的数据发送到残差相加子单元5323,残差相加子单元5323将数据整理子单元5112传送的卷积前的数据与经过批归一化子单元5322处理后的卷积结果数据按正确顺序相加后传送至映射子单元5324进行映射操作;映射后的数据经输出模块60输出。
49.在本技术中,当需要进行图片数据通道数为32或64时的特征图的卷积操作时,可开启多路预处理单元511和多路后处理单元532。将输入的图片数据以16通道为最小单元,进行分批处理,从而完成处理32通道图片数据或64通道图片数据的情况。以32通道为例,输入模块40根据数字控制模块30从第二参数缓存单元22读取的控制信息和当前图像的通道数,在卷积前的处理过程中开启相邻两路预处理单元511,在卷积后的处理过程中开启相邻
两路后处理单元532来处理图片数据为32通道的情况。
50.如图6所示,本技术的第二方面实施例提供了一种存内计算系统,包括多个第一方面实施例所述的存内计算芯片,每个存内计算芯片的各类参数和控制信息通过各个芯片上的总线接口模块10从外部接收;首个芯片的输入模块40执行ahb的总线接口数据传输模式,从外部获取图像数据;每两个芯片间的数据交互以“握手”数据传输模式通过输入模块40和输出模块60来实现;末尾芯片的输出模块60执行ahb的总线接口数据传输模式,将最终数据发送到外部。
51.需要说明的是,“握手”数据传输模式即由数据发送端提供表示数据已经准备好的“valid”信号,以及由数据接收端提供表示已经准备好接收数据的“ready”信号。当两个信号同时有效时,视为此时的数据位有效,接收端可读取此时的数据,即完成了一次数据的传输。
52.需要说明的是, resnet系列中每个系列所具有的卷积层的数量是不一致的,实际应用时,可根据卷积层的数量来调整所需的存内计算芯片的数量。
53.在本技术的一些具体实施例中,以resnet14为例,resnet14具有12个卷积层,为完成12个卷积层的运算,需要12个存内计算芯片连接,图片数据在首个芯片内完成一个卷积层的运算后,将该卷积层的运算结果直接送往下一个芯片进行下一个卷积操作,通过不断叠加以最小的资源占用完成整个resnet14网络的卷积层运算,有利于降低数据搬移功耗。在该过程中,每个芯片仅完成resnet14的一个卷积层运算,不需要缓存和等待卷积子模块52刷新新的权重,有利于提高芯片的吞吐率。在该过程中,每两个芯片间采用“握手”方式通信,一方面避免了数据的不必要搬运和因较繁琐传输协议而造成的不必要的时间浪费,可以进一步加快图片数据的传输效率,进而满足神经网络运算所需的快捷性和时效性;另一方面避免了在芯片内对结果数据进行缓存,避免因数据缓存而额外占用芯片的内部空间,有利于减小芯片的面积。
54.以上是对本技术的较佳实施进行了具体说明,但本技术并不局限于上述实施方式,熟悉本领域的技术人员在不违背本技术精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本技术权利要求所限定的范围内。

技术特征:
1.一种存内计算芯片,其特征在于,包括:总线接口模块(10)、缓存模块(20)、数字控制模块(30)、输入模块(40)、数据处理模块(50)和输出模块(60);所述总线接口模块(10),用于接收外部数据,并将接收到的所述外部数据分类发送至所述缓存模块(20)和所述输入模块(40);所述外部数据包括各类参数、控制信息和图片数据;所述缓存模块(20),用于接收并缓存所述总线接口模块(10)传送的各类参数和控制信息;以及将各类参数按需传送至所述数据处理模块(50);所述数字控制模块(30),用于读取所述缓存模块(20)中缓存的控制信息,并基于控制信息配置所述数据处理模块(50);所述输入模块(40),用于接收并缓存所述总线接口模块(10)传送的图片数据;所述数据处理模块(50),用于在所述数字控制模块(30)的控制下,基于所述缓存模块(20)传送的各类参数对所述输入模块(40)缓存的图片数据进行处理;所述输出模块(60),用于将经所述数据处理模块(50)处理后的图片数据输出。2.根据权利要求1所述的存内计算芯片,其特征在于,所述缓存模块(20)包括第一参数缓存单元(21)和第二参数缓存单元(22);所述各类参数包括权重参数、还原优化参数、批归一化参数、残差相加参数和激活函数参数;所述第一参数缓存单元(21)用于接收并缓存所述权重参数;所述第二参数缓存单元(22)用于接收并缓存所述还原优化参数、批归一化参数、残差相加参数和激活函数参数和所述控制信息;以及将所述还原优化参数、批归一化参数、残差相加参数和激活函数参数按需传送至所述数据处理模块(50)。3.根据权利要求1所述的存内计算芯片,其特征在于,所述数据处理模块(50)包括预处理子模块(51)、卷积子模块(52)和后处理子模块(53);所述预处理子模块(51),用于对所述输入模块(40)缓存的图片数据在卷积前进行预处理;所述卷积子模块(52),用于对预处理后的图片数据进行卷积以获得卷积结果数据;所述后处理子模块(53),用于对所述卷积结果数据进行后处理。4.根据权利要求3所述的存内计算芯片,其特征在于,所述预处理子模块(51)包括多路预处理单元(511),多路所述预处理单元(511)并联连接;所述预处理单元(511)包括数据填补子单元(5111)、数据整理子单元(5112)和数据拆分子单元(5113);所述数据填补子单元(5111),用于对所述输入模块(40)缓存的图片数据在卷积前进行最外圈的补零操作;所述数据整理子单元(5112),用于对补零操作后的图片数据按照预定规格的卷积核进行整理;所述数据拆分子单元(5113),用于将整理后的图片数据进行拆分以适配所述卷积子模块(52)的运算;以及,向所述卷积子模块(52)发送卷积信号。5.根据权利要求4所述的存内计算芯片,其特征在于,所述数据填补子单元(5111)内设置有一个fifo缓存器,所述数据整理子单元(5112)内设置有多个所述fifo缓存器,所述数据填补子单元(5111)中的所述fifo缓存器和所述数据整理子单元(5112)中的多个所述fifo缓存器配合完成卷积所需的多行图片数据的遍历。6.根据权利要求4所述的存内计算芯片,其特征在于,所述后处理子模块(53)包括模数
转换单元(531)和多路后处理单元(532),多路所述后处理单元(532)并联连接;所述模数转换单元(531),用于对所述卷积结果数据进行模数转换;所述后处理单元(532),用于对模数转换后的卷积结果数据进行后处理。7.根据权利要求6所述的存内计算芯片,其特征在于,所述后处理单元(532)包括数据还原子单元(5321)、批归一化子单元(5322)、残差相加子单元(5323)和映射子单元(5324);所述数据还原子单元(5321),用于对转换后的所述卷积结果数据进行按位还原和修饰;所述批归一化子单元(5322),用于对还原和修饰后的所述卷积结果数据进行一次函数操作;所述残差相加子单元(5323),用于接收并缓存所述数据整理子单元(5112)传送的整理后的图片数据;以及,将缓存的整理后的图片数据与经过所述批归一化子单元(5322)处理后的所述卷积结果数据按正确顺序相加;所述映射子单元(5324),用于对经残差相加子单元(5323)处理后的数据进行映射。8.根据权利要求7所述的存内计算芯片,其特征在于,所述残差相加子单元(5323)还用于对所述数据整理子单元(5112)传送的整理后的图片数据进行降采样。9.根据权利要求1所述的存内计算芯片,其特征在于,所述输入模块(40)和所述输出模块(60)均设置了总线接口数据传输模式和握手数据传输模式。10.一种存内计算系统,其特征在于,包括多个如权利要求1至9中任意一项所述的存内计算芯片;每个所述存内计算芯片的各类参数和控制信息通过各个所述存内计算芯片上的总线接口模块从外部接收;首个所述存内计算芯片的输入模块执行总线接口数据传输模式,从外部获取图像数据;每两个所述存内计算芯片间的数据交互以握手数据传输模式通过各自的输入模块和输出模块来实现;末尾所述存内计算芯片的输出模块执行总线接口数据传输模式,将最终数据输出。

技术总结
本发明公开了一种存内计算芯片及系统,该存内计算芯片包括总线接口模块、缓存模块、数字控制模块、输入模块、数据处理模块和输出模块;总线接口模块接收外部数据,并将接收到的外部数据分类发送至缓存模块和输入模块;外部数据包括各类参数、控制信息和图片数据;缓存模块接收并缓存总线接口模块传送的各类参数和控制信息;以及将各类参数按需传送至数据处理模块;数字控制模块读取缓存模块中缓存的控制信息,并基于控制信息配置数据处理模块;输入模块接收并缓存总线接口模块传送的图片数据;数据处理模块在数字控制模块的控制下,基于缓存模块传送的各类参数对输入模块缓存的图片数据进行处理;输出模块将经数据处理模块处理后的图片数据输出。处理后的图片数据输出。处理后的图片数据输出。


技术研发人员:任二祥 刘向东 卢北辰 刘哲宇 乔飞
受保护的技术使用者:每刻深思智能科技(北京)有限责任公司
技术研发日:2023.04.19
技术公布日:2023/7/21
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐