2011-01-11 13:25:36     BF52x HW ECC and performance

Document created by Aaronwu Employee on Aug 26, 2013
Version 1Show Document
  • View in full screen mode

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

Attachments

    Outcomes