我希望在 LEA 上实施矩阵乘法。 我的每个操作阶段的矩阵尺寸依次如下:
[1,256]*[256,20]-->[1,20]*[1,10]-->[1,10]*[10,2]-->[1,2]
检查完 DSPLIB 提供的可用文档后,我发现由于 地址范围不足,乘法终止,因此无法使用 LEA 上的[256,20]矩阵。 此外,我更喜欢不使用“msp_match_mpy15()”函数,因为它与定点表示法配合使用,我不能承受矩阵乘法的下半部分。 我发现的另一种方法是使用 LEA 命令执行矩阵乘法和参考指南[slau850]- https://www.ti.com/lit/ug/slau850/slau850.pdf?ts=1642755710288&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FMSP430FR5043%253FkeyMatch%253DMSP430FR5043 - 根据本指南,LEACMD_MAC,LEACMD_MPYMATRIX,LEACMD_MPYLONGMATRIX 函数也可用于执行上述操作。 不过,我在此有以下问题:
LEA 是否可以通过任何方式从存储在 MSP430普通内存中的位置访问大矩阵,而不是共享内存?
考虑到矩阵的各个方面,首先使用 LEA 是否有意义,因为我在整个论坛上读到,要建立 LEA 需要增加60-70个周期?
此外,我还看到“sp_match_mpy15()”函数包含一个使用硬件乘数的选项-如何启用硬件乘数来执行矩阵乘法,而不是因为我有一个可以在 MPY32上执行所需操作的平滑运行函数?
如果需要更多信息,请告诉我。 谢谢你。