On Wednesday 27 June 2012, Victor wrote:
Hi Arnd,
Thank you for your quick reply and guidance.
I don't think there are any cards with an erase block size of 7 MB, so I don't know what's going on here.
However, this is the same size that I have seen on one of the best cards ever a Samsung 32GB class 10 microsdhc, so I would assume that this one is very similar.
Are you referring to the "essential" microSDHC 32GB (MB-MSBGA) that you mentioned in some previous post in the mailing list?
Yes, that's the one.
What should be the the erase block size then? 1.5 MiB or some multiple?
I think it's 8 GB, but it's trying very hard to hide this.
Can you copy the exact writing on the backside (serial number, made-in korea, ...) here so we can compare those?
Indeed it was made in Korea! Here is what is written on its backside:
MMBTR32GUBCA - AB S N3TVDD9I 203 Made in KOREA
Mine is:
MMBTR32GUBCA-AB S 32GBUSD1 132 Made in Korea
This probably means that the first row is the product line, which is identical, but the second line seems to be OEM specific. It's a name for the samsung one (32 GB µSD 1) followed by what looks like a batch number, while the Transcend card has some completely different text, followed by that batch number.
What I'd like to see is the result of this test:
sudo ./flashbench --open-au --open-au-nr=1 --erasesize=$[512 * 1024] \ --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024] sudo ./flashbench --open-au --open-au-nr=30 --erasesize=$[512 * 1024] \ --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024] sudo ./flashbench --open-au --open-au-nr=31 --erasesize=$[512 * 1024] \ --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024]
The similar card that I have can handle 30 erase blocks being written concurrently, it would be good to know if the same is true for your card.
While doing the first series of tests I noticed a change in the speeds for the bigger blocks that became faster so did a second series for which those speeds seem more consistent. I also included the time that 2nd one. Note that after I did 2 additional tests with the --open-au-nr=1 and it seems that what I observed in the first series looks to be some singularity since I continued having consistency in the speeds in continuation with the 2nd series with values staying at around 8M/s for the 64KiB one and 9M/s or even more for the bigger ones.
The test with 31 open erase blocks seems to show a neat degradation, doesn't it? (slower speed for the small blocks and more than 4 minutes to complete)
Could we conclude that the indeed it can handle 30 concurrent open erase blocks even though it took more than 1 minute and a half?
Yes.
# # First series #
# ./flashbench --open-au --open-au-nr=1 --erasesize=`dc 512 1024 mul p` \ --blocksize=1024 /dev/block/mmcblk1 --offset=`dc 24 1024 1024 mul mul p`
512KiB 706K/s 256KiB 3.57M/s 128KiB 3.48M/s 64KiB 3.41M/s 32KiB 3.27M/s 16KiB 894K/s 8KiB 456K/s 4KiB 226K/s 2KiB 363K/s 1KiB 335K/s
# ./flashbench --open-au --open-au-nr=30 --erasesize=`dc 512 1024 mul p` \ --blocksize=1024 /dev/block/mmcblk1 --offset=`dc 24 1024 1024 mul mul p`
512KiB 1.2M/s 256KiB 4.38M/s 128KiB 10.8M/s 64KiB 9.44M/s 32KiB 8.44M/s 16KiB 3.48M/s 8KiB 2.44M/s 4KiB 1.54M/s 2KiB 414K/s 1KiB 342K/s
# ./flashbench --open-au --open-au-nr=31 --erasesize=`dc 512 1024 mul p` \ --blocksize=1024 /dev/block/mmcblk1 --offset=`dc 24 1024 1024 mul mul p`
512KiB 8.53M/s 256KiB 7.68M/s 128KiB 6.91M/s 64KiB 5.51M/s 32KiB 3.7M/s 16KiB 2.22M/s 8KiB 993K/s 4KiB 523K/s 2KiB 263K/s ^C ## I interrupted it since it was taking too long time...
Very nice results for the 30 and 31 numbers. For comparison, this is what I get with my thinkpad:
$ sudo ./flashbench --open-au --open-au-nr=30 --erasesize=$[512 * 1024] --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024] 512KiB 7.77M/s 256KiB 8.01M/s 128KiB 8.03M/s 64KiB 8.05M/s 32KiB 6.57M/s 16KiB 3.85M/s 8KiB 3.3M/s 4KiB 2.46M/s 2KiB 1.52M/s 1KiB 854K/s
$ sudo ./flashbench --open-au --open-au-nr=31 --erasesize=$[512 * 1024] --blocksize=1024 /dev/mmcblk0 --offset=$[24*1024*1024] 512KiB 7.54M/s 256KiB 7.24M/s 128KiB 6.68M/s 64KiB 5.6M/s 32KiB 3.86M/s 16KiB 2.16M/s 8KiB 981K/s 4KiB 511K/s ^C
Again, I think this card is definitely a winner, it seems to be doing all the right things that you need to put an ext4 or btrfs file system on it.
I would still recommend buying the card with the Samsung label, which is a little bit cheaper in Germany (22€ instead of 27€) and is more likely to still be the same model when you buy another one. I've seen Transcend CF cards with identical labelling and production date in the past that have wildly different controllers in them, so I would not be surprised if the next one you buy in the same place was a Toshiba controller instead of the Samsung one. Anything that says "Made in Korea" is quite likely to actually be Samsung though.
Arnd