Hi!
I've started using that great tool to figure out how I should partition some cards but I'm not sure how to continue after the first results I've got and I'd like some guidance.
Also I'd like to know if the card reader can influence the results since I've tested with 2 different laptops internal SD card readers and noticed differences in the times. I also checked with 'dd' the speeds and found the writing speed limited up to less than 10 MiB/s and a reading speed limited up to 14 MiB/s or so with chunks of 32 kiB and 4 MiB. Eventually I checked on an Android phone and got the writing speed limited up to 11 MiB/s or so and the reading speed limited up to less than 20 MiB/s. To make sure I compiled flashbench to run on the phone and also found different times than on the laptops.
# # Product Page #
http://www.transcend-info.com/products/Catlist.asp?LangNo=0&modno=320
# # Details #
$ head /sys/block/mmcblk0/device/* 2>/dev/null | grep -v ^$ ==> /sys/block/mmcblk0/device/block <== ==> /sys/block/mmcblk0/device/cid <== 1b534d30303030301078944a9000c100 ==> /sys/block/mmcblk0/device/csd <== 400e00325b590000e9e57f800a404000 ==> /sys/block/mmcblk0/device/date <== 01/2012 ==> /sys/block/mmcblk0/device/driver <== ==> /sys/block/mmcblk0/device/erase_size <== 512 ==> /sys/block/mmcblk0/device/fwrev <== 0x0 ==> /sys/block/mmcblk0/device/hwrev <== 0x1 ==> /sys/block/mmcblk0/device/manfid <== 0x00001b ==> /sys/block/mmcblk0/device/name <== 00000 ==> /sys/block/mmcblk0/device/oemid <== 0x534d ## i.e. "SM" ==> /sys/block/mmcblk0/device/power <== ==> /sys/block/mmcblk0/device/preferred_erase_size <== 4194304 ==> /sys/block/mmcblk0/device/scr <== 02b5800200000000 ==> /sys/block/mmcblk0/device/serial <== 0x78944a90 ==> /sys/block/mmcblk0/device/subsystem <== ==> /sys/block/mmcblk0/device/type <== SD ==> /sys/block/mmcblk0/device/uevent <== DRIVER=mmcblk MMC_TYPE=SD MMC_NAME=00000 MODALIAS=mmc:block
# # Size #
$ cat /sys/block/mmcblk0/device/block/mmcblk0/size 61315072
# # Factor #
$ factor 61315072 61315072: 2 2 2 2 2 2 2 2 2 2 2 7 7 13 47
Does it mean that the erase block size could be 7 MiB?
# # Guess erase block and page sizes #
## on Dell E6400
$ sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024 align 8589934592 pre 198µs on 210µs post 199µs diff 11.3µs align 4294967296 pre 185µs on 202µs post 187µs diff 15.6µs align 2147483648 pre 184µs on 197µs post 184µs diff 12.9µs align 1073741824 pre 187µs on 202µs post 187µs diff 15.7µs align 536870912 pre 184µs on 197µs post 184µs diff 13.5µs align 268435456 pre 217µs on 234µs post 187µs diff 32.1µs align 134217728 pre 218µs on 247µs post 200µs diff 38.7µs align 67108864 pre 219µs on 251µs post 202µs diff 40.5µs align 33554432 pre 219µs on 267µs post 216µs diff 48.9µs align 16777216 pre 208µs on 256µs post 216µs diff 43.7µs align 8388608 pre 203µs on 242µs post 208µs diff 36.5µs align 4194304 pre 212µs on 260µs post 216µs diff 45.8µs align 2097152 pre 205µs on 242µs post 207µs diff 36.1µs align 1048576 pre 212µs on 257µs post 217µs diff 42.4µs align 524288 pre 203µs on 240µs post 206µs diff 36.1µs align 262144 pre 211µs on 257µs post 217µs diff 43.2µs align 131072 pre 205µs on 241µs post 207µs diff 35.5µs align 65536 pre 209µs on 257µs post 217µs diff 43.7µs align 32768 pre 201µs on 239µs post 207µs diff 35.3µs align 16384 pre 213µs on 235µs post 210µs diff 23.9µs ## align 8192 pre 211µs on 213µs post 214µs diff 868ns align 4096 pre 212µs on 212µs post 217µs diff -2843ns align 2048 pre 214µs on 212µs post 214µs diff -1985ns
## on Lenovo T400
$ sudo ./flashbench -a /dev/mmcblk0 --blocksize=1024 align 8589934592 pre 307µs on 737µs post 358µs diff 405µs align 4294967296 pre 283µs on 724µs post 348µs diff 409µs align 2147483648 pre 300µs on 712µs post 371µs diff 377µs align 1073741824 pre 331µs on 857µs post 353µs diff 515µs align 536870912 pre 340µs on 872µs post 354µs diff 525µs align 268435456 pre 342µs on 843µs post 359µs diff 493µs align 134217728 pre 292µs on 839µs post 364µs diff 511µs align 67108864 pre 316µs on 843µs post 357µs diff 507µs align 33554432 pre 344µs on 832µs post 367µs diff 476µs align 16777216 pre 323µs on 862µs post 370µs diff 515µs align 8388608 pre 324µs on 855µs post 365µs diff 510µs align 4194304 pre 308µs on 772µs post 340µs diff 448µs align 2097152 pre 334µs on 861µs post 367µs diff 510µs align 1048576 pre 301µs on 794µs post 355µs diff 466µs align 524288 pre 325µs on 830µs post 352µs diff 492µs align 262144 pre 319µs on 795µs post 353µs diff 459µs align 131072 pre 314µs on 863µs post 389µs diff 511µs align 65536 pre 317µs on 813µs post 339µs diff 485µs align 32768 pre 311µs on 845µs post 364µs diff 507µs ## align 16384 pre 323µs on 464µs post 346µs diff 130µs ## align 8192 pre 331µs on 338µs post 330µs diff 7.52µs align 4096 pre 350µs on 357µs post 344µs diff 10.1µs align 2048 pre 359µs on 354µs post 352µs diff -1566ns
## on Samsung GT-I8150
# ./flashbench -a /dev/block/mmcblk1 --blocksize=1024 align 8589934592 pre 222µs on 318µs post 283µs diff 65.4µs align 4294967296 pre 227µs on 318µs post 279µs diff 65.4µs align 2147483648 pre 231µs on 318µs post 275µs diff 65.4µs align 1073741824 pre 279µs on 440µs post 405µs diff 98.1µs align 536870912 pre 231µs on 340µs post 371µs diff 39.2µs align 268435456 pre 240µs on 353µs post 288µs diff 89.4µs align 134217728 pre 253µs on 506µs post 344µs diff 207µs align 67108864 pre 231µs on 458µs post 292µs diff 196µs align 33554432 pre 257µs on 475µs post 305µs diff 194µs align 16777216 pre 235µs on 475µs post 318µs diff 198µs align 8388608 pre 218µs on 453µs post 310µs diff 190µs align 4194304 pre 248µs on 458µs post 296µs diff 185µs align 2097152 pre 231µs on 445µs post 296µs diff 181µs align 1048576 pre 244µs on 501µs post 327µs diff 216µs align 524288 pre 240µs on 449µs post 301µs diff 179µs align 262144 pre 231µs on 453µs post 310µs diff 183µs align 131072 pre 227µs on 453µs post 301µs diff 190µs align 65536 pre 253µs on 453µs post 310µs diff 172µs align 32768 pre 244µs on 453µs post 327µs diff 168µs ## align 16384 pre 253µs on 371µs post 318µs diff 85µs ## align 8192 pre 283µs on 257µs post 240µs diff -4359ns align 4096 pre 270µs on 262µs post 253µs diff 1ns align 2048 pre 275µs on 275µs post 275µs diff 0ns
Should I understand that it has 16 kiB pages with multi-plane accesses to read two pages simultaneously?
What do you suggest? How should I continue and with which device?
Thanks and regards,
Victor