矩阵分解算法优化计算架构的设计与实现
1 引言
矩阵分解在当前技术应用中是一项重要操作,如在 5G 和 6G 先进通信系统、信息安全加密算法以及定位空间转换操作等最新技术中都有应用。随着实时操作和计算需求的增加,基于芯片的大规模矩阵运算设计成为趋势。大规模矩阵运算中,数据访问是重要问题,使用寄存器阵列存储数据会浪费面积,虽有采用 DDR3 内存访问矩阵数据以减少电路中寄存器数量的方法,但频繁与内存交换数据会使操作效率受数据访问时间限制。
CORDIC(坐标旋转数字计算机)是一种通过递归运算完成三角函数的方法,因其架构简单,常用于矩阵分解运算。不过,现有的矩阵运算往往一开始就固定了矩阵大小,只能对指定大小的矩阵进行操作,未来扩展操作时还需额外设计。
为解决这些问题,我们希望设计矩阵分解算法的计算架构。采用相同架构和自适应数据排列实现高度并行化数据,基于组件操作构建适用于不同情况的向量运算方法以简化控制电路设计。将矩阵数据按块排列存储,一次访问多个矩阵数据以减少与外部内存的数据交换次数。通过优化矩阵分解算法提高数据使用效率,利用收缩和移位操作减少矩阵分解的迭代次数,加快矩阵运算性能。为提高 CORDIC 运算核心的可扩展性和硬件可实现性,提出由 CORDIC 计算核心组成的 CORDIC 4 模块,利用 CPU 并行连接多个 CORDIC 4 实现更多计算核心的并行设计。
2 总体概述
2.1 CORDIC 运算单元
CORDIC 用于简化矩阵旋转操作,将原本需三角函数完成的矩阵旋转操作简化为移位和加法的重复递归运算,硬件上仅需移位器、加法器和查找表。
CORDIC 运算有三个输入(x、y、θ)和