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.

SRIO directIO speed test

hello, I'm testing SRIO direct IO on 6455,my platform is an cPCI board which has two 6455 DSP ,and
the two dsp connect with each other by SRIO, and I am testing the direct I/O using the srio example under the dsk6455 example
,the srio is configured as follow:
>>one dsp configured as master, and the other is slave
>>both dsp are configured as 1x
>>both dsp configured as 3.125Gbps
>>the data is transfer from master to slave by NWRITE,NWRITE_R and SWRITE
and I have verified that the data has correctly transfered to the slave from master, now I changed the code to test the speed
of the srio based the example code,and here is my test result,


here is part of my test code , and I'm using timer1 on master to measure the speed ,


I think there is something error in my test ,but I'm not sure
,and I have some questions follow:
first, am I right that I test the direct IO speed in this method?
second, is there any difference(mainly the speed difference) between NREAD,NWRITE,NWRITE_R and SWRITE?
thirdly, if my method is wrong, could you give me some advice to test the speed of SRIO.
thank you very much ,waitting for your answer!

  • CZ H,

    I cannot see anything from either of your images. The first one separates to the same small size and the second does not separate for viewing.

    You should test the performance in the manner in which you plan to use it. If this is an academic exercise, then you will learn a lot by studying the SRIO spec's and documentation available at rapidio.org. If you are evaluating the performance of the software, then once again it should be used in the way you will be using it.

    Reads tend to be slower than writes, which is understandable from the specified operations. Writes that wait for a response tend to be slower than writes that do not wait for the response.

    Whatever your method is, it will be measuring something what you tell it to measure. That will likely include software overhead for the functions and may include software inefficiencies if optimization is needed. If you transfer a small amount of data, you will get more overhead relative to the data and this will lower your performance. If you transfer a very large amount of data, you may hit limits within the software that require transfers to be broken into parts. Try several different number of transfers and several different transfer sizes to study the variations between the several choices.

    Regards,
    RandyP