简介:向量处理单元(vector processing unit,VPU)已被广泛应用于神经网络、信号处理和高性能计算等处理器设计中,但其总体性能仍受限于专门用于对齐数据的混洗操作.传统上,处理器使用其数据混洗单元来处理混洗操作.然而,使用数据混洗单元来处理混洗指令将带来昂贵的数据移动开销,并且数据混洗单元只能串行混洗数据.事实上,混洗操作只会改变数据的布局,理想情况下混洗操作应在内存中完成.随着存内计算技术的发展,SRAM不仅可以作为存储部件,同时还能作为计算单元.为了实现存内混洗,提出了混洗SRAM,它可以在SRAM体中逐位地并行混洗多个向量.混洗SRAM的关键思想是利用SRAM体中位线的数据移动能力来改变数据的布局.这样SRAM体中位于同一位线上不同数据的相同位可以同时被移动,从而使混洗操作拥有高度的并行性.通过适当的数据布局和向量混洗扩展指令的支持,混洗SRAM可以高效地处理常用的混洗操作.评测结果表明,对于常用的混洗操作,混洗SRAM可以实现平均 28倍的性能增益,对于FFT,AlexNet,VggNet等实际的应用,可以实现平均 3.18倍的性能增益.混洗SRAM相较于传统SRAM的面积开销仅增加了4.4%.展开