2011-01-11 13:25:36 BF52x HW ECC and performance
Reggy Perrin (UNITED STATES)
Message: 97351
Hi folks,
Based on Mike F.'s feedback here, we're testing using Boot ECC for our entire NAND operation.
What performance increase/decrease would you expect by switching to hardware ECC? I wasn't even thinking about a performance change, but our application seemed snappier, and doing an md5sum on a large file was about 23% faster using Boot/HW ECC.
Does this seem right?
Thanks, RP
QuoteReplyEditDelete
2011-01-11 13:29:00 Re: BF52x HW ECC and performance
Mike Frysinger (UNITED STATES)
Message: 97352
doesnt seem unreasonable, but i dont think we've done performance tests
QuoteReplyEditDelete
2011-01-11 16:40:18 Re: BF52x HW ECC and performance
Reggy Perrin (UNITED STATES)
Message: 97355
Mike,
Here's a benchmark on the BF524. Only change is switching ECC. Can you help me decipher bonnie++ output? I'm struggling with evaluating this:
Command: bonnie\+\+ -u root -d /opt -s 5
Sequential Output Sequential Input Random
Seeks Sequential Create Random Create
Size Per Char Block Rewrite Per Char Block Num Files Create Read Delete Create Read Delete
K/sec % CPU K/sec % CPU K/sec % CPU K/sec % CPU K/sec % CPU /sec % CPU /sec % CPU /sec % CPU /sec % CPU /sec % CPU /sec % CPU /sec % CPU
Trad-ECC 5M 34 87 7671 87 6625 86 112 87 +++++ +++ 2475 85 16 1376 83 2792 87 1551 86 1478 86 15223 86 1064 86
Latency 403ms 14543us 15964us 79469us 14311us 36695us Latency 695ms 43473us 17342us 17981us 15483us 16710us
Boot-ECC 5M 31 87 7361 83 6842 84 129 87 +++++ +++ 2571 86 16 1533 75 1829 40 1575 78 1533 77 13795 86 849 58
Latency 456ms 14520us 14775us 78279us 14311us 36980us Latency 22064us 62296us 16451us 16692us 15448us 17397us
My basic md5sum test was doing a sequential read, so 112 K/s to 129 K/s in Sequential Input seems right
What does Latency indicate? I assume lower latency is better, but wanted to check.
Here's another view, Green is better (for Boot-ECC). NOTE: I inverted the percents for % CPU and Latency to let the conditional formatting be consistent.
Trad-ECC Boot-ECC Delta %
Sequential Output Per Char K/sec 34 31 9%
% CPU 87 87 0%
Latency 403 456 13%
Block K/sec 7671 7361 4%
% CPU 87 83 -5%
Latency 14543 14520 0%
Rewrite K/sec 6625 6842 -3%
% CPU 86 84 -2%
Latency 15964 14775 -7%
Sequential Input Per Char K/sec 112 129 -15%
% CPU 87 87 0%
Latency 79469 78279 -1%
Block K/sec
% CPU
Latency 14311 14311 0%
Random
Seeks /sec 2475 2571 -4%
% CPU 85 86 1%
Latency 36695 36980 1%
Sequential Create Create /sec 1376 1533 -11%
% CPU 83 75 -10%
Latency 695000 22064 -97%
Read /sec 2792 1829 34%
% CPU 87 40 -54%
Latency 43473 62296 43%
Delete /sec 1551 1575 -2%
% CPU 86 78 -9%
Latency 17342 16451 -5%
Random Create Create /sec 1478 1533 -4%
% CPU 86 77 -10%
Latency 17981 16692 -7%
Read /sec 15223 13795 9%
% CPU 86 86 0%
Latency 15483 15448 0%
Delete /sec 1064 849 20%
% CPU 86 58 -33%
Latency 16710 17397 4%
Any thoughts?
Thanks, RP
QuoteReplyEditDelete
2011-01-11 23:16:04 Re: BF52x HW ECC and performance
Sonic Zhang (CHINA)
Message: 97358
I think hardware ECC engine require extra overhead to start and complete small data operation. We may have a benchmark test by dd against different file size to get a clear chart between size and time cost.
QuoteReplyEditDelete
2011-01-13 04:19:12 Re: BF52x HW ECC and performance
Aaron Wu (CHINA)
Message: 97422
Reagarding the read/write speed for Nand flash, hardware ecc can accelerate it, here is my test result:
For large file of 50MB read/write test:
1)HWECCwrite: time dd if=/dev/zero of=/dev/mtd7 bs=1M count=50 2.94MB/s
2)HWECCwrite: time dd of=/dev/null if=/dev/mtd7 bs=1M count=50 6.45MB/s
3)SWECCwrite: time dd if=/dev/zero of=/dev/mtd7 bs=1M count=50 1.43MB/s
4)SWECCwrite: time dd of=/dev/null if=/dev/mtd7 bs=1M count=50 2.07MB/s
For small size test of 128KB, the above four data are 1.56MB/s, 2.08MB/s, 0.78MB/s, 0.69MB/s
QuoteReplyEditDelete
2011-01-13 05:42:02 Re: BF52x HW ECC and performance
Aaron Wu (CHINA)
Message: 97424
By the way, the test is carried on a bf548ezkit, for your reference