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.

How to test the bandwidth(transmit rate) of the srio message?

Other Parts Discussed in Thread: 4213

    I want to test the bandwidth of the srio message. So there are two dsps c6455, a boss and a worker. Boss sends messages each includes a array to worker. In the boss thread, the MSGQ_put function means sending the messages out, so here I get a time, the MSGQ_get function means getting messages from the worker, so here I get a time, through the two times, I can compute the bandwidth, bellow is the bandwidth I had got. But why can I get 3.8Gbps bandwidth larger than the maximal bandwidth 3.125Gbps. I doubt whether my method is wrong. If my method and the result is not correct, please anyone help me to solve the problem? Thank you very much. I have paste the two projects (boss and worker) below.

4213.RapidIO_Message_v1.rar

  • Jamse,

    It is safe to say that something is wrong in the method or measurement since your results show better performance than the expected maximum.

    1. Moving down your table, the times to transfer larger blocks of data increase with each increase in data transfer size. But when you come to the 9126 line, all the numbers go down significantly. It is not practical to expect that 9126 Bytes will transfer faster than 8192 Bytes. So the larger transfer is not being completed successfully. Check the data to confirm this, please.

    2. How many SRIO lanes are you using? This would affect the total available bandwidth.

    3. The time difference between two lines can often be used to calculate medium performance without MSG_Q overhead, but some of your numbers do not give reasonable differences there either. And I suspect MSG_Q does stay involved during large transfers, so the overhead may not be gone.

    You may want to try running the test more times per measurement.

    You may also want to check the data has landed successfully to validate your test program.

    Regards,
    RandyP

  • Hi RandyP,

           Thank you very much for your reply, I test the project again, and find that:

    1.If I transfer data bigger than 4096Byte, there is something wrong with the transition. 

    2.I don't know what the lanes mean. Does it means 1X or 4X, I think I it is 1X mode, but I don't find where to modify it to 4X mode. Could you tell me?

    Could you give me a test method or pseudo-code to test the speed.

    thank you very much.

  • Jamse,

    It has been a while since you posted this. I have not been on the forum in that time.

    The SRIO User's Guide will have the best explanations of how the peripheral works. Or you can go to www.rapidio.org to find the specifications for the industry standard interface. Another good way to learn about it is to go to the online training that we have on the TI Wiki Pages. You can search there for "C6455 workshop" (no quotes) to find the archived workshop material. There is a section that talks about SRIO and there is a lab (with the solution files) that you can learn from plus you can use that as sample code to start with.

    Regards,
    RandyP