Part Number: MSP430FR5994
I am looking to implement matrix multiplication on the LEA. My matrix dimensions in succession for every stage of operation are as follows:
[1,256] * [256,20] ---> [1,20] * [1,10] ----> [1,10] * [10,2] ----> [1,2]
After checking the available documentation provided by the DSPLib - I see that I cannot work with the [256,20] matrix on the LEA as the multiplication terminates due to address range being insufficient. Additionally, I would prefer not to use the 'msp_matrix_mpy15()' function as it works with the fixed point representation and I cannot afford to lose the lower half of the final result of matrix multiplication. An alternative I found was the use of LEA commands to perform matrix multiplication and addition as mentioned in the reference guide [slau850] - https://www.ti.com/lit/ug/slau850/slau850.pdf?ts=1642755710288&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FMSP430FR5043%253FkeyMatch%253DMSP430FR5043 - according to this guide the LEACMD_MAC, LEACMD_MPYMATRIX, LEACMD_MPYLONGMATRIX functions can also be used to execute the operations I have mentioned above. However, I have the following questions here -
Is there any way in which the LEA can access the large matrix from the stored location in the normal memory of the MSP430 instead of the shared memory?
Considering the dimensions of the matrices, would it make sense to use the LEA in the first place, as I read across the forum that it takes an addition of upto 60-70 cycles to set up the LEA ?
Additionally, I see that the 'msp_matrix_mpy15()' function contains an option for using the hardware multiplier - how could I enable the hardware multiplier to perform the matrix multiplication instead as I have a smooth running function that can perform the required operation on the MPY32?
Please let me know if any more info is required. Thank you.