先说几句题外话,前几天在Sean版主的淘宝店里,拍下了一个8G SLC的U盘,今天下午快递就送过来了,赶紧签收,然后拆开包装,拿出U盘,摸着冰凉的磨砂铝外壳(确实很凉,外面的气温可是零下10多度呢),心里有一种说不出的激动。
附上照片一张:
插入电脑,把U盘里的内容备份下来(随U盘附赠了教程、工具等很多礼物,呵呵),然后就开始量产USB-CDROM啦~
量产完毕以后,重新插拔U盘,打开磁盘管理,分区、格式化(因为第一次用这种高速U盘,所以不知道该用什么格式,索性用了默认的FAT32),一切是那样的顺利。。。
折腾得差不多了以后,才想起来打开U盘测速软件,测试一下写入速度和读取速度。于是打开MyDiskTest,选速度测试(对版主的U盘很放心,所以根本就没做坏块检测

),等测试完成,结果可以算得上是让人大跌眼镜了。。。
虽说这个速度比我以前用的7M/s左右的U盘快得多,可是比版主说的25M/s差的也太多了吧,几乎只有那个速度的一半,难道我遇到了传说中的个别体质较差的产品?我运气没那么差吧。。。
自己又捣腾了半天,始终没弄出个所以然来,于是与版主取得联系,询问相关的情况。
版主是个非常热心的人,在我说明了来意以后,版主把今天刚刚写完的"SM3252方案USB-CDROM量产教程"新版(以前论坛里发的是上一个版本的,只有10页,这次的新版有17页,我相信版主不久之后就会上传到论坛上的,敬请大家期待!)发给了我,让我照着教程上的做,于是我又开始继续折腾了。。。
折腾了大约5分钟左右,再次测试速度:
虽说比刚刚提高了一些,可是这个速度怎能让我满意?于是只好继续打扰版主了。(希望版主不要介意哦,呵呵)
这次版主提出让我开远程协助来弄,于是我照做,打开远程协助,然后坐在旁边仔细观察版主的操作,期间反复拔插U盘N次。
版主查看了一些信息以后,将U盘重新量产,却在Make Autorun步骤时出现了问题,反复操作未能通过,结果告诉我是系统问题。。。
幸好我还有另一台电脑,于是将所有用得到的工具、文件统统复制到另一台电脑上,然后再次开启远程协助。
这次则非常的顺利,从量产到转换U盘为USB-FDD模式,再到分区格式化,一切都井然有序,当然拔插U盘是少不了的了,呵呵。
一切完成以后,打开FastCopy,复制一个400多MB的RAR文件到U盘,速度达到了21MB/s以上,这下我算是满意了,虽然离标称的25M/s还有些差距,不过我的5年前的破机器能到这个速度,我已经很知足了,如果有更好的电脑,我相信速度还能更快。
至此,版主帮我完成了所有的工作,并且将U盘性能完全发挥出来了,于是我道谢后,回到了之前使用的笔记本电脑(也是3年前的旧电脑了)上继续测试,依然保持在21M/s以上,性能表现非常稳定。
事后对比我和版主的操作,发现量产时的操作是一样的,没有什么区别,那么速度的差异肯定是产生在分区、格式化这些步骤上。
于是狠下心来,把U盘重新量产,按我自己以前的方式重新分区,然后根据“单一变量原则”,尝试所有不同的操作,最后发现问题出现在U盘转为USB-FDD或USB-HDD上,同样采用NTFS 16KB分区,如果转为USB-FDD,则速度可以达到21M/s以上,而如果使用USB-HDD或USB-ZIP,则只有14M/s左右的速度,相差居然有7M之多,已经相当于我以前所使用的U盘的速度了。
那么USB-FDD和USB-HDD之间,究竟有哪些区别呢?在DiskGenius反复观察了很久,并查看了一些相关的资料,发现如果设置U盘为USB-FDD模式,则第一个分区的起始位置是磁盘的0柱面0磁头1扇区,而如果设置为USB-HDD模式,第一个分区就会从0柱面1磁头1扇区开始,中间相差了1磁头,而默认情况下,每柱面每磁头是63扇区,所以相当于相差了63扇区。
那么仅仅相差63扇区,又为什么会导致速度有如此大的差别呢?继续在网上查找相关的资料,发现我们的U盘所使用的存储介质是FLASH,即闪存,这是一种电子存储芯片,里面的数据按块为单位进行管理,以我的这个U盘为例,这个U盘使用的闪存是K9WBG08U1M,属于NAND Flash,存储块大小为8~32KB,如果写入的数据没有按这个大小对齐,那么就会导致性能损失。
原理大致是这样的:
由于这个对齐的存在,导致原本可以写在一个块上的数据,不得不写在两块上,这便是造成性能损失近半的罪魁祸首了。
找到了问题的原因,解决起来也就方便多了,我们知道每扇区是512字节,NAND闪存的最大块大小是32KB,所以我们的分区起始扇区数必须能够被64整除((32KB*1024字节/KB)/512字节/扇区=64扇区),而MBR占据63个扇区(扇区数从0开始计算,所以MBR占用0~62扇区),这样第一个分区就从63扇区开始了,没能与闪存的数据块大小对齐,便导致了速度大幅下降。
知道了导致问题的原因,解决起来就相当轻松了,只要在分区时修改一下设置,让分区从64的整数倍扇区开始就可以了(对于USB-HDD的第一分区而言,可以从0柱面1磁头2扇区开始,也可继续向后推若干个64扇区),不仅第一分区可以,即使是第二分区,只要让分区的起始扇区数以64对齐,同样可以让U盘更快。
最后贴一个我的U盘的写入速度:
本文为MicroAleX原创,转载请保留此信息。
[ 此帖被microalex在2010-01-29 01:59重新编辑 ]