K9K8G08U1M
512Mx8Bits
Package Type: 48-Pin TSOP1
这是典型的NAND flash,由block组成,每一个block包含64个Pages,而一个page是2k+64=2048+64=2112字节。对于一个page,0~2047个字节用来存储数据,2048~2111,共64个字节,Spare Area,用来存储page中每个sector的信息,其中第一个16字节用于描述第一个512个字节,第二个16字节用于描述第二个512个字节,以此类推,共64个字节,用于描述前面的2048个字节。这每一个16字节,在little-endian的CPU上可以用下面的结构体表示。
typedef struct {
BYTE badBlock;
BYTE oemReserved;
WORD reserved2;
DWORD reserved1;
BYTE ecc[3];
BYTE unused[5];
} LB_SPARE_AREA;
oemReserved是OEM自定义的字段
ecc用于验证512个字节
badBlock是用来描述block的,在下一节会有详细的说明
Invalid Block的判别标准
typedef struct {
BYTE badBlock;
BYTE oemReserved;
WORD reserved2;
DWORD reserved1;
BYTE ecc[3];
BYTE unused[5];
} LB_SPARE_AREA;
Invalid Block,就是我们常说的坏块。SAMSUNG规定在block的第一和第二个page的Spare Area的第一个字节,对于非0xFF的,就判定该block为Invalid Block。也就是上面结构体中的badBlock,如果不等于0xFF,就说明是坏块。反之,对于一般的block,badBlock==0xFF。