how to know DDR memory bandwidth of T4240rdb board?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

how to know DDR memory bandwidth of T4240rdb board?

1,255 Views
dhanasekaran
Contributor III

Hi!

      how to  know throughput of DDR memory in T4240rdb, I tried to write some pattern on memory location and calculate time taken for the operation it seem 2.5GB/s only(933 MHz ddr clock speed and 64bit bus width). Is there any tool available to measure ddr bandwidth? I expect upto 13.9GB/s.

Thanks in Advance,

Dhanasekaran K.

0 Kudos
Reply
2 Replies

1,104 Views
ufedor
NXP Employee
NXP Employee

It is needed to utilize the DMA to reveal actual DDR memory bandwidth.

0 Kudos
Reply

1,104 Views
dhanasekaran
Contributor III

Hi!

            I already tried single write DMA Transfer(32MB only) between DDR memory locations and calculate the time taken which is 0.012823027  in sec for 32MB so per sec 2.43GB.

            But in this test polling status register require some delay otherwise it stuck. 

   

while((*((unsigned int *)(mptr+DMA1_SR0)) & 0x04) == 4)
{
usleep(1);// If it is not here operation stuck

}


if( clock_gettime( CLOCK_REALTIME, &start) == -1 ) {
perror( "clock gettime" );
return EXIT_FAILURE;
}
      while((*(unsigned int *)(mptr+DMA1_SR0)&(1<<2))==0x4)
        {
                usleep(1);// If it is not here operation stuck
        }

 printf("\nDMA transfer is finished\n");


if( clock_gettime( CLOCK_REALTIME, &stop) == -1 ) {
perror( "clock gettime" );
return EXIT_FAILURE;
}

elapsedTime = ( stop.tv_sec - start.tv_sec )
+ ((double)( stop.tv_nsec - start.tv_nsec )
/(double)BILLION);

printf("\ndma elapsed time in sec :%lf transfer size%dMB\n",elapsedTime,(size/(1024 * 1024)));

Regards,

Dhanasekaran K

0 Kudos
Reply