Shop OBEX P1 Docs P2 Docs Learn Events
SD card single/multi-block read speed difference? — Parallax Forums

SD card single/multi-block read speed difference?

agsags Posts: 386
edited 2013-12-11 09:03 in Propeller 1
I realize I can do some work and test this on my own. I won't be able to do that for some number of days, and would like to continue some high-level design work before then.

I'm looking for someone with experience reading SD cards (quickly). I know Kye and lonesock (and others) have done work in this area. My question is about the speed difference between single- and multi-block reads. I understand that the single-block read requires for each block being read a command (to the SD card), a response (from the SD card), some busy state and finally the data block is ready for reading. With multi-block mode, only one command/response is necessary when initiating, then just keep reading the next sequential block.

Is the speed advantage of multi-block vs single-block just the time saved avoiding multiple command/response exchanges, or does the SD card do some "look-ahead" and prepare the next block for reading, meaning that the wait time between finishing the current block read to when the next block is ready for reading is shorter than the time between completing the command/response and the block being ready for reading using single-block mode?

Thanks.

Comments

  • lonesocklonesock Posts: 917
    edited 2013-08-14 10:53
    For MMC cards and regular SD cards single-block mode was fine. The extra overhead is minimal, and easily predictable (sending down the request and the block address isn't that big of a deal). But, apparently SDHC cards *hate* single block mode...they were super slow, with long random pauses. I have no idea about SDXC cards. Since I often use SDHC cards, single-block mode wasn't really an option.

    Jonathan
  • agsags Posts: 386
    edited 2013-08-14 11:06
    Thanks lonesock. Of course, I'm using SDHC exclusively. Speaking just of SDHC cards:

    is it faster to use multi-block mode, and then just cancel after the first block read (compared to a single-block read)? Or just that the first block access is slow in either case, but with multi-block avoided after the first block read?
  • KyeKye Posts: 2,200
    edited 2013-08-14 16:46
    That would probably be slower than single block mode.
  • rath_necrath_nec Posts: 1
    edited 2013-12-11 09:03
    I am getting 40% speed improvement on SDHC cards when I use multiple bloc command.
Sign In or Register to comment.