一种片上SRAM阵列存储装置及AI神经网络图像数据存储方法制造方法及图纸

技术编号:34457114 阅读:46 留言:0更新日期:2022-08-06 17:04
本发明专利技术提供一种片上SRAM阵列存储装置,所述装置包括多个并列的bank块,每个bank块包括数量相同的连续的多个SRAM单元,每个SRAM单元包括连续的多行存储空间,不同bank块中的同一位置的SRAM单元组成一个SRAM单元行,其中,各个bank块中的各个SRAM单元按照如下方式进行编址:以第一个SRAM单元行中的第一个SRAM单元为起点进行顺序编址,以使相邻地址分散在不同bank块中;相邻SRAM单元行中,后一个SRAM单元行的第一个SRAM单元在前一个SRAM单元行的最后一个SRAM单元的地址的基础上顺序编址。后一个SRAM单元的地址的基础上顺序编址。后一个SRAM单元的地址的基础上顺序编址。

【技术实现步骤摘要】
一种片上SRAM阵列存储装置及AI神经网络图像数据存储方法


[0001]本专利技术涉及计算机系统结构设计领域,具体来说,涉及加速器片上存储设计,更具体地说,涉及一种片上SRAM阵列存储装置以及基于该装置的AI神经网络图像数据存储方法。

技术介绍

[0002]片上缓存是SoC芯片结构中,介于处理器CPU和内存DDR(也叫主存)之间,用于缓冲存放热点数据的容量较小的存储结构,数据存储的载体是SRAM单元。CPU的速度远高于内存,当CPU直接从内存中存取数据时要等待一定时间周期,而缓存则可以保存CPU刚用过或循环使用的一部分数据,若CPU需要再次使用该部分数据时可从缓存中直接调用,这样就避免了重复存取数据,减少了CPU的等待时间,提高了系统的运行效率。其中,片上缓存使用较多的结构是便笺式缓存器SPM(Scratch Pad Memory)和高速缓冲存储器Cache。
[0003]对计算速度要求高且计算密集的AI神经网络图像数据是一种阵列数据,其在内存DDR中的存储方式是逐行、行内逐个数据分量按照存储单元编址顺序存放。如图1所示的示例为包含3个图像(分别为图像A、B、C,每个图像的阵列数据为宽为N高为M、总计有M*N个数据分量的阵列数据)的AI神经网络图像数据在片上缓存中的存储方式,图中S[i]代表数据在DDR存中存放地址为i,每个图像均包含M行数据、每行包括N个数据分量,从第一行第一个数据分量开始,按编址顺序逐个将数据分量存储在存储单元中。例如,图像A从第一行基于a11、a12、

a1N的顺序按照编址顺序依次存放在地址为S[1]、S[2]、

、S[N]的存储单元中,第二行基于a21、a22、

a2N顺序存放在地址为S[N+1]、S[N+2]、

、S[2N]的存储单元中,以此类推;图像B从第一行基于b11、b12、

b1N的顺序按照编址顺序依次存放在地址为S[N*M+1]、S[N*M+2]、

、S[N*M+N]的存储单元中,并以此类推,同理图像C的数据在图像B后面也按照类似的方式存放。
[0004]SIMD(Single Instruction Multiple Data,单指令多数据流)是一种能够复制多个操作数并把它们打包在大型寄存器的一组指令集。在SIMD型的CPU中,指令译码后几个执行部件能够同时访问内存并一次性获得所有操作数进行运算,这个特点使SIMD特别适合于多媒体应用等数据密集型运算,例如AI神经网络图像数据运算。
[0005]根据AI神经网络图像数据在内存DDR中的存储方式以及SIMD的特性可以看出,如果使用SIMD高密度模式来计算原始的AI图像数据,如图2所示的示例中,一个SIMD4的计算模式中操作数中的数据向量1(A11,B11,C11,D11)和数据向量2(A12,B12,C12,D12)是分散在存储器中的8个不同位置的,需要分立的8次访存请求才能把全部取回,这样会带来严重的读写开销。
[0006]CPU每次要从主存DDR中读取数据时,都会发送数据块

data所处的地址

addr来完成定位。如图3所示,采用Cache结构的片上缓存会自动地把地址和数据建立起对应关系记录在内部的表格结构中,并把这部分数据data备份下来。下一次CPU需要读取相同或者相临近的数据时,会先把地址作为标记在Cache中搜查一遍,如果有备份则快速返回,如无备份
则访问内存DDR。Cache的优点是,编程人员不需要自己去管理片上缓存的数据,只需要使用普通的访存指令,Cache转置会自动完成数据的缓存和匹配工作,简言之Cache对编程人员而言是透明的。Cache由SRAM存储部件+地址译码部件+数据输出电路、TagRAM部件和比较逻辑电路部件构成。而采用SPM结构的片上缓存中,SPM是由SRAM存储部件+地址译码部件+数据输出电路三个部分构成,并使用片上高速总线和处理器CPU连接,它的实现方式相比较于Cache更加简单直接。SPM采用统一编址的方式,简单而言可以理解成是DDR主存之外,一个小的速度更快的存储单元,一般由多个bank块构成,SPM包含多个bank块,每个bank块中包含多个SRAM单元,所有SRAM单元采用统一编址,例如如图4所示的示例中,包含4个bank块(分别为bank0、bank1、bank2、bank3),每个bank块包含256个SRAM存储单元,bank0中的存储单元编址为0

255,bank1中的存储单元编址为256

511,bank2中的存储单元编址为512

767,bank3中的存储单元编址为768

1023。编程人员可以通过编写指令把需要的热点数据缓存到SPM中,自行管理热点数据的切换工作。上述两种片上缓存结构中,由于Cache中不仅有SRAM存储单元等三部分,还包含TagRAM部件和比较逻辑电路部件,所以相对SPM访问延迟和能耗略高。
[0007]现有技术下的片上缓存结构中,将数据按顺序连续存储,这就不得不讨论程序局部性问题。其中,程序的局部性原理是指程序总是趋向于使用最近使用过的数据和指令,包括程序的时间局部性和程序的空间局部性。所谓程序的时间局部性是指程序即将用到的信息可能就是目前正在使用的信息,所谓程序的空间局部性是指程序即将用到的信息可能与目前正在使用的信息在空间上相邻或者临近。
[0008]从上面的描述可知,Cache结构的片上缓存存在以下问题:1、Cache的缓存机制比较固定和单一,对片上存储空间的使用不够灵活;2、结构中的地址

数据映射需要的硬件逻辑较为复杂,SRAM存储单元的资源使用率低;3、通常只面向单指令单数据流计算模式,对于SIMD计算模式难以支持,不能实现数据的转置功能。SPM结构的片上缓存存在以下问题:1、统一连续编址方式,使得相邻的数据会挨在一起存放在相同的bank块当中,通常一个bank对外只能有一个数据读写接口,如果在一小段时间内,多个访存请求的汇集到一个bank块中,它只能串行地逐一完成,程序的局部性会带来严重的延迟和负载不一致性;2、不能完成面向AI图像数据的数据转置需求;3、不能很好地应对SIMD指令,数据的转置功能需要额外的读写操作来完成。由此可见,现有技术下的这两种片上缓存结构均无法很好的支撑SIMD型的CPU在AI神经网络图像数据计算中的应用。

技术实现思路

[0009]因此,本专利技术的目的在于克服上述现有技术的缺陷,提供一种能够很好地支持SIMD计算模式的片上SRAM阵列存储装置以及基于该存储装置的AI神经网络图像数据存储方法。
[0010]根据本专利技术的第一方面,提供一种片上SRAM阵列存储装置,所述装置包括多个并列的bank块,每个bank块包括数量相同的连续的多个SRAM单元,每个SRAM单元包括连续的多行存储空间,不同bank块中的同一位置的SRAM单元本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种片上SRAM阵列存储装置,其特征在于,所述装置包括多个并列的bank块,每个bank块包括数量相同的连续的多个SRAM单元,每个SRAM单元包括连续的多行存储空间,不同bank块中的同一位置的SRAM单元组成一个SRAM单元行,其中,各个bank块中的各个SRAM单元按照如下方式进行编址:以第一个SRAM单元行中的第一个SRAM单元为起点进行顺序编址,以使相邻地址分散在不同bank块中;相邻SRAM单元行中,后一个SRAM单元行的第一个SRAM单元在前一个SRAM单元行的最后一个SRAM单元的地址的基础上顺序编址。2.根据权利要求1所述的装置,其特征在于,所述每个SRAM单元包括多行连续存储空间,每个SRAM单元行中位于不同bank块中的同一位置的存储空间组成一个存储行,每个存储行内的存储空间编址连续,相邻存储行中,后一个存储行的第一个存储空间在前一存储行的最后一个存储空间的基础上顺序编址。3.根据权利要求2所述的装置,其特征在于,所述每个bank块包括64个或32个SRAM单元。4.根据权利要求2所述的装置,其特征在于,所述每个SRAM单元包括32行存储空间。5.根据权利要求2所述的装置,其特征在于...

【专利技术属性】
技术研发人员:吴海彬刘艳欢李文明叶笑春张浩范东睿
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

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

1