memory speed check?

I wonder shared memory access time.
So I used gettimeofday().
Access time is about 200 usec or 2500 usec.
I don’t understand this result.
Why is access time different??

##source code##
global void speed_check()
{
[indent]shared int s_m[1024];

for ( i = 0; i < 1024; i ++ )
{
[indent]s_m[i] = i;[/indent]
}
…[/indent]
}

int main(int argc, char *argv)
{
[indent]struct timeval start_time1, end_time1;

gettimeofday(&start_time1, NULL);
speed_check<<< 1, 1 >>>();
cudaThreadSynchronize();
gettimeofday(&end_time1, NULL);

return 0;[/indent]}