SDR SDRAM like other DRAMs contains banks, rows, columns. Thus, to get maximum efficiency, I assume that there would be some non-trivial way to translate memory address to bank, row and column address. Is this true? If so, then how is it usually done?
Re: Is there special way to map address to SDR SDRAM?
The optimal scheme is almost trivial. You get fastest access when reading or writing full pages, thus the lower address bits are usually mapped to column address lines.
Re: Is there special way to map address to SDR SDRAM?
normally, the addresses are mapped either (bank, row, column) or (row, bank, column). You can choose a different scheme if you want though. placing bank at higher address bits has a little advantage if you have a small number of independent applications that are allocated a large memory space. placing bank at lower address bits allows a larger sequential region to have only column accesses once all banks are open.
Re: Is there special way to map address to SDR SDRAM?
To access SDRAM in an efficient manner, it is better to follow linear addressing scheme as told in #4 that is combining row address, column address and bank address into a single vector and then increment this single vector to access different memory locations.
But as switching from one row to another row is slow, therefore keeping the row address in MSB is recommended.
Therefore I think (row,bank,column) will be efficient in terms of time.