I am writing the data logging portion for a real time embedded application. I have an SD card I communicate via SPI at 33Mhz. I need to be able to log at least 1024 bytes of data ever 1 milli-second. I have tried sending the pre-erase command with 2 blocks erased and then sending the multi-write command with 2 blocks but this takes longer than 1 milli-second. My SD card is rated at 20MB/s so it should be good for 20KB/ms at optimal speeds.
I have tried reading the SD card specification to see how to calculate the optimal write size or sector boundaries and can't tell exactly what to do. Should I be writing in multiples of the sector size at blocks that are multiples of the sector size?