I have implemented Media Storage Class on STM32 CPU with USB 480Mbit. CPU is connected to SD card (48MHz, 4 wire). I have checked that read speed from SD card is about 2 MB/s. Compared to USB SD card reader it is too low because with the same SD card it shows 10 MB/s. I have checked everything with oscilloscope and I see that CPU is reading SD card sectors one by one. Issuing CMD17 to read one sector. SD card reader is reading sectors without CMD command between then so I think it is using CMD18 (read multiple sectors). So the time between packets is much smaller in SD card reader than in STM32+SD.
I checked that windows is sending SCSII commands for each single sector. Is that true that windows does not read multiple sectors? If so than how SD card reader is reading multiple sectors? Maybe it is caching sectors by itself? When windows requests sector 10 it is reading 10 11 12 13... into it's internal memory?
SD card reader has the chip Atech 65548GJJ 116H6P854. But I didn't found any information about it?
Is that true that windows is reading sectors one by one and SD card chip is cashing sectors by itself? Maybe there are some documentation about that? Thanks