This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5726: Question about MessageQ transfer speed

Part Number: AM5726


Hi experts,

My customers are checking the transfer speed of MessageQ.

The transfer rate of MessageQ between A15_0 and DSP1 is as follows.

The transfer rate of Messageq between A15_0 and A15_1 is now as follows.

[Summary]
 In condition ①(ARM0 & DSP1), the communication time increases linearly at about 0.2ns per long (4 bytes) from when the message size exceeds 10KB.
 In condition ②(ARM0 & ARM1), the communication time is not affected by increasing the message size.

My customer's MessageQ software is based on the following
C:\ti\ipc_3_50_04_07\examples\AM572X_bios_elf\ex02_messageq

I have two question.

Q1)
Why does MessageQ communication between ARM and ARM have the same communication time regardless of message size,
but the communication time between ARM and DSP increases as the message size increases?
Perhaps it is because there is some difference in the mechanism of communication using MessageQ. }
Please explain what kind of difference has an effect on this.

Q2)
Only under the condition (2) (ARM0&ARM1), the difference between timestamp and time measured using GPIO is about 2us.
Do you know what affects the difference between these 2us?

Their program Overview:

If there are any questions about the above, we will check with my customer for additional information.

Best regards,
Sasaki

  • Hi TI experts,

    Do you have any information?

    Best regards,
    Sasaki

  • Hi Sasaki-san,

    Can you confirm in the Arm-to-Arm case if the memory map is arranged such that a zero-copy operation is occurring?  Aside from no actual transfer taking place, this is the only explanation I can think that would cause what you're seeing.  If the client is receiving the memory address of the payload from the server, then I suspect this is what is happening.

    Regarding the 2-us delta on the Arm MessageQ data, you might try disabling logging, or rearrange the log and GPIO_write functions such that the log functions are not included in the timing period.  Since different compilers would be used for Arm and DSP, it is possible the compiler is handing the logging functions differently and could explain why you only see the 2-us offset in the Arm case.

    Regards,
    Mike

  • Hi Mike-san,

    Thank you for your support.

    I've also concluded that Aside from no actual transfer taking place.

    Michael Erdahl said:
    Regarding the 2-us delta on the Arm MessageQ data, you might try disabling logging, or rearrange the log and GPIO_write functions such that the log functions are not included in the timing period.  Since different compilers would be used for Arm and DSP, it is possible the compiler is handing the logging functions differently and could explain why you only see the 2-us offset in the Arm case.

    I'll take your advice and test it out.

    Best regards,
    Sasaki