Yuri,
Normally I would expect memory writes to be slightly longer than reads, but in this case I am seeing the opposite.
This is the code actually doing the test, as you can see it is very simple. I have attached a oscilloscope trace of 1 pass through and as you can see the reads are taking much longer because of the idle time between reads (which I have no control over). The write is actually slower but its idle state is around 15nsec as opposed to the 75nsec idle state between reads. If you start incurring this kind of pause between reads over 100k it adds up quickly. That does not even account for increment pointers etc. I am not executing code out of this PSRAM, this is just pure data reads. The access to the SDRAM does not seem to exhibit this behavior.

int cnt;
unsigned short *pdstptr;
unsigned short tmpdata;
pdstptr = (unsigned short*) 0x84000000; // Where our PSRAM starts
while(1)
{
tmpdata = *pdstptr; // 2 back to back reads
tmpdata = *pdstptr;
for(cnt = 0; cnt < 4; cnt++) // short pause between tests
tmpdata = cnt;
*pdstptr = tmpdata; // 2 back to back writes
*pdstptr = tmpdata;
tmpdata = 0; // set break point here
}