These values were measured with MEMBENCH.
MEMBENCH is a 32 bit protected mode program which runs only on plain MSDOS (no interference from Windows). The read test reads 2 MB of continuous uncached memory while all interrupts are disabled. The best logical way to read this memory is an unrolled loop of 2 bursts (yes, of course one could use 4, 8, 16 or 128 bursts (=4 Kbytes), but it wouldn't give much difference, and it wouldn't be applicable in real programs).
If you can handle it, have a look at the source code.