how to know DDR memory bandwidth of T4240rdb board?

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

how to know DDR memory bandwidth of T4240rdb board?

1,296件の閲覧回数
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 件の賞賛
返信
2 返答(返信)

1,145件の閲覧回数
ufedor
NXP Employee
NXP Employee

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

0 件の賞賛
返信

1,145件の閲覧回数
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 件の賞賛
返信