继MW6208E/MW8208之后,迈科微电子有限公司推出全球首款扇区管理U盘主控—MW8209,为了让大家对这颗主控有个全面的了解,下面将分三篇对它进行讲述。
第一篇:扇区管理
讲述扇区管理的之前,我们要先弄清楚下面三个问题:
第一:U盘存储芯片(Nand Flash)是什么样结构?
第二:什么叫U盘量产?
第二:为什么我们U盘的容量与实际所用的Flash容量总有差距?
笔者以镁光MT29F4G08BxB Nand Flash为例,这款Flash(如上图)以4个扇区(sector)组成1个页(page),64个页(page)组成1个块(block),4096个块(block)构成整个Flash存储器;由于每个扇区的容量是512 字节(bytes),整个Flash容量为4224M Bit(相当于528M字节),去掉备用区域用于存放ECC数据校验16M(虚线部分),就是这个片子的容量512M字节。其他型号的Flash也是同样由扇区组成页、由页组成块、块组成整个存储设备,只是扇区、页、块的数量多少有区别而已。
在Flash的生产制造过程中,由于生产工艺的缺陷,很容易在Flash中产生不能使用的坏区域,如果在U盘中要使用这样的Flash,就必须使用所谓的“量产工具”;U盘量产工具其实就是一种集坏区域扫描和Flash管理系统装载于一身的工具。常规U盘主控的扫描是以块为单位,扫描即往每一个块里写入数据,然后将读出的数据与写入的数据比较,如果数据有误则把该块标为“坏块”。扫描完成后就是将Flash管理系统装载到Flash里面,Flash管理系统就会利用扫描产生的坏块表对整个Flash进行读写管理,这样就完成了整个量产动作,U盘也就可以正常使用了。这个时候我们就可以清楚的知道第三个问题的答案了,U盘显示的容量与实际所用的Flash容量差异来源于不能存储信息的坏块和Flash管理系统的占用块。坏块越多,做出的U盘容量越低;而Flash管理系统占用的块是没有办法避免,就像我们的电脑安装操作系统要占用硬盘空间一样。当然这里还涉及到一个ECC纠错能力的问题,假设对这个Flash进行扫描的定义的ECC纠错能力为1bit,只有数据出现超过1bit错误的块才会被标记为坏块。
在明白了这些基本知识之后,我们就可以来了解MW8209主控与常规主控的不同了;举个例子,如果用常规主控搭配这片Flash,这颗主控ECC纠错能力仍然为1bit,假设任何一个块里有任何一个扇区(512bytes)存在超出1bit的错误,常规主控在扫描的时候就会判断整个块为坏区域,这样将损失整个块128Kbytes的容量;但是当使用MW8209的时候,同样1bit ECC纠错,他会直接去判断这个块里哪些是超出1bit错误的扇区,从而将其剔除,损失的只是每个真正有错误扇区的512bytes容量,从而保留了其余没有错误的扇区,这样Flash的利用率可以得到极大的提高,用MW8209做出来的U盘容量无疑也会大大超过常规主控;可以说只要Flash有稳定可靠的好扇区,MW8209就能把它制作成合格的U盘。
[ 此帖被xumuwu2004在2009-03-23 16:44重新编辑 ]