************************************************************** **** SanDisk microSDHC class 4, 16 GB (for mobile phones) **** **************************************************************
==> /sys/block/mmcblk0/device/cid <== 0353445355313647807166662100b600
==> /sys/block/mmcblk0/device/csd <== 400e00325b59000076b27f800a404000
==> /sys/block/mmcblk0/device/scr <== 0235800100000000
==> /sys/block/mmcblk0/device/fwrev <== 0x0
==> /sys/block/mmcblk0/device/hwrev <== 0x8
==> /sys/block/mmcblk0/device/cid <== 0353445355313647807166662100b600
==> /sys/block/mmcblk0/device/manfid <== 0x000003
==> /sys/block/mmcblk0/device/oemid <== 0x5344
==> /sys/block/mmcblk0/device/serial <== 0x71666621
==> /sys/block/mmcblk0/device/erase_size <== 512
==> /sys/block/mmcblk0/device/preferred_erase_size <== 4194304
==> /sys/block/mmcblk0/device/name <== SU16G
==> /sys/block/mmcblk0/device/date <== 06/2011 clock: 33000000 Hz vdd: 20 (3.2 ~ 3.3 V) bus mode: 2 (push-pull) chip select: 0 (don't care) power mode: 2 (on) bus width: 2 (4 bits) timing spec: 2 (sd high-speed)
fdisk -ul /dev/sda
Disk /dev/sda: 15.9 GB, 15931539456 bytes 255 heads, 63 sectors/track, 1936 cylinders, total 31116288 sectors Units = sectors of 1 * 512 = 512 bytes Disk identifier: 0x00000000
Device Boot Start End Blocks Id System /dev/sda1 8192 31116287 15554048 c W95 FAT32 (LBA)
./flashbench -a /dev/sda3 --count=100 align 134217728 pre 2.07ms on 2.59ms post 1.75ms diff 681µs align 67108864 pre 2.08ms on 2.59ms post 1.79ms diff 660µs align 33554432 pre 2.09ms on 2.6ms post 1.81ms diff 647µs align 16777216 pre 2.09ms on 2.6ms post 1.81ms diff 654µs align 8388608 pre 2.09ms on 2.6ms post 1.82ms diff 647µs align 4194304 pre 2.06ms on 2.34ms post 1.83ms diff 391µs align 2097152 pre 1.84ms on 1.83ms post 1.83ms diff -3859ns align 1048576 pre 1.84ms on 1.82ms post 1.86ms diff -24890n align 524288 pre 1.84ms on 1.85ms post 1.85ms diff 2.91µs align 262144 pre 1.85ms on 1.85ms post 1.86ms diff 1.72µs align 131072 pre 1.83ms on 1.83ms post 1.82ms diff 3.73µs align 65536 pre 1.85ms on 1.84ms post 1.85ms diff -10755n align 32768 pre 1.82ms on 1.84ms post 1.84ms diff 8.97µs
./flashbench /dev/sda3 -O --open-au-nr=1 --erasesize=$[1024*1024*4] 4MiB 15.3M/s 2MiB 16M/s 1MiB 16.4M/s 512KiB 16.2M/s 256KiB 15.4M/s 128KiB 13.5M/s 64KiB 17.3M/s 32KiB 13.8M/s 16KiB 8.49M/s
./flashbench /dev/sda3 -O --open-au-nr=5 --erasesize=$[1024*1024*4] 4MiB 4.28M/s 2MiB 3.13M/s 1MiB 3.43M/s 512KiB 3.5M/s 256KiB 3.25M/s 128KiB 3.31M/s 64KiB 4.45M/s 32KiB 6.13M/s 16KiB 4.36M/s
./flashbench /dev/sda3 -O --open-au-nr=10 --erasesize=$[1024*1024*4] 4MiB 4M/s 2MiB 2.39M/s 1MiB 1.55M/s 512KiB 1.15M/s 256KiB 1.18M/s 128KiB 1.14M/s 64KiB 1.44M/s 32KiB 2.19M/s 16KiB 1.49M/s
./flashbench /dev/sda3 -O --open-au-nr=11 --erasesize=$[1024*1024*4] --blocksize=4096 4MiB 2.92M/s 2MiB 2.33M/s 1MiB 1.52M/s 512KiB 1.06M/s 256KiB 926K/s 128KiB 906K/s 64KiB 1.1M/s 32KiB 1.34M/s 16KiB 1.35M/s 8KiB 215K/s 4KiB 170K/s
-> 10 blocks
./flashbench /dev/sda3 -O --open-au-nr=10 --erasesize=$[1024*1024*4] --blocksize=4096 --random 4MiB 3.76M/s 2MiB 2.27M/s 1MiB 1.6M/s 512KiB 967K/s 256KiB 508K/s 128KiB 256K/s 64KiB 151K/s 32KiB 84.3K/s 16KiB 46.4K/s 8KiB 456K/s 4KiB 875K/s
./flashbench /dev/sda3 -O --open-au-nr=5 --erasesize=$[1024*1024*4] --blocksize=4096 --random 4MiB 3.62M/s 2MiB 4.32M/s 1MiB 2.9M/s 512KiB 2.19M/s 256KiB 1.44M/s 128KiB 801K/s 64KiB 456K/s 32KiB 255K/s 16KiB 187K/s 8KiB 794K/s 4KiB 1.1M/s
-> looks like bad random access but optimized for 4KiB blocks
./flashbench /dev/sda -f --erasesize=$[1024*1024*4] --blocksize=$[1024*4] --random --fat-nr=20
4MiB 1.83M/s 14.1M/s 2.32M/s 4.57M/s 4.48M/s 4.5M/s 4.49M/s 4.53M/s 4.49M/s 4.5M/s 4.44M/s 4.43M/s 4.49M/s 4.51M/s 4.49M/s 4.51M/s 4.51M/s 4.52M/s 4.45M/s 4.49M/s 2MiB 3.24M/s 12.7M/s 3.83M/s 4.62M/s 4.57M/s 2.12M/s 4.54M/s 4.58M/s 4.52M/s 4.57M/s 4.55M/s 4.56M/s 4.54M/s 4.54M/s 4.55M/s 4.55M/s 4.55M/s 4.57M/s 4.54M/s 4.46M/s 1MiB 4.53M/s 13.9M/s 4.42M/s 4.56M/s 4.56M/s 2.13M/s 4.58M/s 4.55M/s 4.56M/s 4.55M/s 4.56M/s 4.54M/s 4.6M/s 4.56M/s 4.59M/s 4.56M/s 4.58M/s 4.54M/s 4.51M/s 4.53M/s 512KiB 4.48M/s 10.8M/s 4.42M/s 4.45M/s 3.79M/s 1.94M/s 3.77M/s 3.85M/s 3.81M/s 3.78M/s 3.83M/s 3.81M/s 3.79M/s 3.81M/s 3.82M/s 3.87M/s 3.81M/s 3.86M/s 3.79M/s 3.84M/s 256KiB 3.57M/s 10.7M/s 3.56M/s 3.61M/s 3.38M/s 1.85M/s 3.43M/s 3.44M/s 3.39M/s 3.44M/s 3.42M/s 3.39M/s 3.43M/s 3.46M/s 3.4M/s 3.43M/s 3.4M/s 3.45M/s 3.42M/s 3.45M/s 128KiB 2.23M/s 10.3M/s 2.25M/s 2.28M/s 2.24M/s 1.43M/s 2.24M/s 2.26M/s 2.25M/s 2.25M/s 2.24M/s 2.24M/s 2.24M/s 2.26M/s 2.24M/s 2.26M/s 2.25M/s 2.26M/s 2.25M/s 2.26M/s 64KiB 1.38M/s 10.1M/s 1.38M/s 1.4M/s 1.32M/s 990K/s 1.32M/s 1.33M/s 1.31M/s 1.33M/s 1.31M/s 1.33M/s 1.33M/s 1.33M/s 1.32M/s 1.33M/s 1.32M/s 1.33M/s 1.31M/s 1.32M/s 32KiB 720K/s 7.74M/s 720K/s 729K/s 714K/s 610K/s 719K/s 726K/s 715K/s 726K/s 718K/s 725K/s 718K/s 725K/s 716K/s 724K/s 717K/s 727K/s 716K/s 725K/s 16KiB 344K/s 3.9M/s 345K/s 349K/s 344K/s 320K/s 344K/s 348K/s 343K/s 348K/s 344K/s 348K/s 341K/s 348K/s 344K/s 348K/s 343K/s 348K/s 343K/s 348K/s 8KiB 1.19M/s 2.13M/s 1.15M/s 1.21M/s 1.24M/s 948K/s 1.24M/s 1.24M/s 1.24M/s 1.24M/s 1.23M/s 1.25M/s 1.24M/s 1.26M/s 1.19M/s 1.24M/s 1.23M/s 1.25M/s 1.22M/s 1.22M/s
-> ok, FAT is at 8MiB as expected (?)
Hi Peter,
I only saw this just now.
On Monday 18 July 2011, Peter Warasin wrote:
fdisk -ul /dev/sda
Disk /dev/sda: 15.9 GB, 15931539456 bytes 255 heads, 63 sectors/track, 1936 cylinders, total 31116288 sectors Units = sectors of 1 * 512 = 512 bytes Disk identifier: 0x00000000
The size again is a multiple of 1.5 MB, I'm pretty sure that's the erase block size.
Device Boot Start End Blocks Id System /dev/sda1 8192 31116287 15554048 c W95 FAT32 (LBA)
./flashbench -a /dev/sda3 --count=100 align 134217728 pre 2.07ms on 2.59ms post 1.75ms diff 681µs align 67108864 pre 2.08ms on 2.59ms post 1.79ms diff 660µs align 33554432 pre 2.09ms on 2.6ms post 1.81ms diff 647µs align 16777216 pre 2.09ms on 2.6ms post 1.81ms diff 654µs align 8388608 pre 2.09ms on 2.6ms post 1.82ms diff 647µs align 4194304 pre 2.06ms on 2.34ms post 1.83ms diff 391µs align 2097152 pre 1.84ms on 1.83ms post 1.83ms diff -3859ns align 1048576 pre 1.84ms on 1.82ms post 1.86ms diff -24890n align 524288 pre 1.84ms on 1.85ms post 1.85ms diff 2.91µs align 262144 pre 1.85ms on 1.85ms post 1.86ms diff 1.72µs align 131072 pre 1.83ms on 1.83ms post 1.82ms diff 3.73µs align 65536 pre 1.85ms on 1.84ms post 1.85ms diff -10755n align 32768 pre 1.82ms on 1.84ms post 1.84ms diff 8.97µs
Which explains tthe straing numbers here, to a certain extent.
./flashbench /dev/sda3 -O --open-au-nr=1 --erasesize=$[1024*1024*4] 4MiB 15.3M/s 2MiB 16M/s 1MiB 16.4M/s 512KiB 16.2M/s 256KiB 15.4M/s 128KiB 13.5M/s 64KiB 17.3M/s 32KiB 13.8M/s 16KiB 8.49M/s
Impressive for a class 4 card. I assume that this is the SLC case.
./flashbench /dev/sda3 -O --open-au-nr=5 --erasesize=$[1024*1024*4] 4MiB 4.28M/s 2MiB 3.13M/s 1MiB 3.43M/s 512KiB 3.5M/s 256KiB 3.25M/s 128KiB 3.31M/s 64KiB 4.45M/s 32KiB 6.13M/s 16KiB 4.36M/s
./flashbench /dev/sda3 -O --open-au-nr=10 --erasesize=$[1024*1024*4] 4MiB 4M/s 2MiB 2.39M/s 1MiB 1.55M/s 512KiB 1.15M/s 256KiB 1.18M/s 128KiB 1.14M/s 64KiB 1.44M/s 32KiB 2.19M/s 16KiB 1.49M/s
./flashbench /dev/sda3 -O --open-au-nr=11 --erasesize=$[1024*1024*4] --blocksize=4096 4MiB 2.92M/s 2MiB 2.33M/s 1MiB 1.52M/s 512KiB 1.06M/s 256KiB 926K/s 128KiB 906K/s 64KiB 1.1M/s 32KiB 1.34M/s 16KiB 1.35M/s 8KiB 215K/s 4KiB 170K/s
-> 10 blocks
That's not how I would read these numbers.
./flashbench /dev/sda3 -O --open-au-nr=10 --erasesize=$[1024*1024*4] --blocksize=4096 --random 4MiB 3.76M/s 2MiB 2.27M/s 1MiB 1.6M/s 512KiB 967K/s 256KiB 508K/s 128KiB 256K/s 64KiB 151K/s 32KiB 84.3K/s 16KiB 46.4K/s 8KiB 456K/s 4KiB 875K/s
./flashbench /dev/sda3 -O --open-au-nr=5 --erasesize=$[1024*1024*4] --blocksize=4096 --random 4MiB 3.62M/s 2MiB 4.32M/s 1MiB 2.9M/s 512KiB 2.19M/s 256KiB 1.44M/s 128KiB 801K/s 64KiB 456K/s 32KiB 255K/s 16KiB 187K/s 8KiB 794K/s 4KiB 1.1M/s
-> looks like bad random access but optimized for 4KiB blocks
I would try again with smaller erase block assumptions. The very first test has shown that the card can do 17 MB/s linear writes, if you have the erase block size right, you should still be able to get that with the first line.
I would try again passing a 512KB erase block size. My guess is that you can get really fast with at least 8 (probably 10) 512KB erase blocks.
./flashbench /dev/sda -f --erasesize=$[1024*1024*4] --blocksize=$[1024*4] --random --fat-nr=20
4MiB 1.83M/s 14.1M/s 2.32M/s 4.57M/s 4.48M/s 4.5M/s 4.49M/s 4.53M/s 4.49M/s 4.5M/s 4.44M/s 4.43M/s 4.49M/s 4.51M/s 4.49M/s 4.51M/s 4.51M/s 4.52M/s 4.45M/s 4.49M/s 2MiB 3.24M/s 12.7M/s 3.83M/s 4.62M/s 4.57M/s 2.12M/s 4.54M/s 4.58M/s 4.52M/s 4.57M/s 4.55M/s 4.56M/s 4.54M/s 4.54M/s 4.55M/s 4.55M/s 4.55M/s 4.57M/s 4.54M/s 4.46M/s 1MiB 4.53M/s 13.9M/s 4.42M/s 4.56M/s 4.56M/s 2.13M/s 4.58M/s 4.55M/s 4.56M/s 4.55M/s 4.56M/s 4.54M/s 4.6M/s 4.56M/s 4.59M/s 4.56M/s 4.58M/s 4.54M/s 4.51M/s 4.53M/s 512KiB 4.48M/s 10.8M/s 4.42M/s 4.45M/s 3.79M/s 1.94M/s 3.77M/s 3.85M/s 3.81M/s 3.78M/s 3.83M/s 3.81M/s 3.79M/s 3.81M/s 3.82M/s 3.87M/s 3.81M/s 3.86M/s 3.79M/s 3.84M/s 256KiB 3.57M/s 10.7M/s 3.56M/s 3.61M/s 3.38M/s 1.85M/s 3.43M/s 3.44M/s 3.39M/s 3.44M/s 3.42M/s 3.39M/s 3.43M/s 3.46M/s 3.4M/s 3.43M/s 3.4M/s 3.45M/s 3.42M/s 3.45M/s 128KiB 2.23M/s 10.3M/s 2.25M/s 2.28M/s 2.24M/s 1.43M/s 2.24M/s 2.26M/s 2.25M/s 2.25M/s 2.24M/s 2.24M/s 2.24M/s 2.26M/s 2.24M/s 2.26M/s 2.25M/s 2.26M/s 2.25M/s 2.26M/s 64KiB 1.38M/s 10.1M/s 1.38M/s 1.4M/s 1.32M/s 990K/s 1.32M/s 1.33M/s 1.31M/s 1.33M/s 1.31M/s 1.33M/s 1.33M/s 1.33M/s 1.32M/s 1.33M/s 1.32M/s 1.33M/s 1.31M/s 1.32M/s 32KiB 720K/s 7.74M/s 720K/s 729K/s 714K/s 610K/s 719K/s 726K/s 715K/s 726K/s 718K/s 725K/s 718K/s 725K/s 716K/s 724K/s 717K/s 727K/s 716K/s 725K/s 16KiB 344K/s 3.9M/s 345K/s 349K/s 344K/s 320K/s 344K/s 348K/s 343K/s 348K/s 344K/s 348K/s 341K/s 348K/s 344K/s 348K/s 343K/s 348K/s 343K/s 348K/s 8KiB 1.19M/s 2.13M/s 1.15M/s 1.21M/s 1.24M/s 948K/s 1.24M/s 1.24M/s 1.24M/s 1.24M/s 1.23M/s 1.25M/s 1.24M/s 1.26M/s 1.19M/s 1.24M/s 1.23M/s 1.25M/s 1.22M/s 1.22M/s
-> ok, FAT is at 8MiB as expected (?)
Yes, that looks correct.
Arnd
flashbench-results@lists.linaro.org