- 论坛徽章:
- 0
|
原帖由 jn200002 于 2008-6-24 16:10 发表 ![]()
那个数组 kernel里 nand_ecc.c /*Pre-calculated 256-way 1 byte column parity*/ 汗ING 1个字节有256种 列奇偶校验啊...
2^8=256
2的八次方即为256
为什么是八次方,因为1byte含有8个bit
256种排列组合
原帖由 jn200002 于 2008-6-24 16:39 发表 ![]()
2^8=256? 什么意思~?不明白
那nand的ecc是传256个字节,结合图 列:bit7是P1 一列共256位,算奇/偶 得0或1 然后bit7的P1与bit6的P1'再算一次得到P2, 类推 P2 P2'算出P4 吗? 然后最后存在相应的 那3字节的 6位里.
再结合上面的图,列校验怎么会用到这么多校验字符啊,还有,每次的列校验并不知道是奇还是偶校验啊.
用数学表达式表示为:
P4=D7(+)D6(+)D5(+)D4 P4`=D3(+)D2(+)D1(+)D0
P2=D7(+)D6(+)D3(+)D2 P2`=D5(+)D4(+)D1(+)D0
P1=D7(+)D5(+)D3(+)D1 P1`=D6(+)D4(+)D2(+)D0
P1是能通bit7/bit5/bit3/bit1运算得来的
同理其它的就出来了
这种算法并不是你想的P1能推出P2/P4那么简单,你再研究下示意图
其实是非常精练巧妙,毕竟是3byte校验256byte呀 |
|