多语言展示
当前在线:495今日阅读:138今日分享:34

影响U盘速度的几大因素分析

大家都知道,U盘主要由主控芯片和flash芯片组成,所以影响U盘速度的因素也就分为主控芯片和flash芯片两方面
方法/步骤
1

先说flash芯片:flash芯片有很多厂家的,又有很多型号,为什么同样的主控配不同flash速度不一样呢?flash对读写速度直接影响的有几个参数:serial access time,这个表示flash传输一个byte数据的时间(I/O传输)。page read time,这是读一个page数据前所需的准备时间(flash到缓存)。page program time,这是实际把数据写进flash里的时间。(缓存到flash)

2

Flash芯片的读写一般都以page为单位,目前最新的flash一个page的大小为4KB。所以读一个page的时间为serial access time * page size + page read time。写一个page的时间为serial access time * page size + page program time。

3

以三星的50nm的SLC和MLC做比较:serial access time为25nspage read time: SLC(25us) MLC(60us)page program time: SLC(200us) MLC(800us)所以SLC读一个page的时间约为135us,相当于29MB/s。SLC写一个page的时间为310us,相当于12MB/s。而MLC读一个page的时间为170us,相当于23MB/s。MLC写一个page的时间为910us,相当于4MB/s。可见MLC的速度比SLC的速度要慢很多,尤其是写的速度。这些参数各个厂家和型号区别不大,不用刻意挑选。但是K9MDG08U5M(16GB)是个例外。由于SLC太贵,接下来的分析都基于MLC的参数。

4

上面说的是单个flash单元的读写速度。所谓flash单元并不是我们看到的芯片,专业术语叫plane。其实就是一颗flash芯片内部有多个小块组成。目前工艺下MLC一个plane的大小就是1GB。所以4GB的K9LBG08U0M就是有4个plane。8GB的K9HCG08U0M就是有8个plane。

5

双通道比单通道快大家都理解吧。所以如果可以同时往这多个plane进行读写的话,速度也会倍增。虽然不能同时,但是可以做到交替,就是serial access time不能省去,但是page read time和page program time可以共享。这样往4个plane各读一个page的时间就是110*4+ 60 =500us,32MB/s。往4个plane各写一个page的时间就是110*4+800 = 1240us,15MB/s。往8个plane各读一个page的时间就是110*8+ 60 =500us,34MB/s。往8个plane各写一个page的时间就是110*8+800 = 1640us,19MB/s。(实际上可以更快,不细说了)

6

现在最新的flash都提供了这样的功能,那么就看主控芯片有没有用好这些功能了。

7

再说说主控:主控有单通道的有双通道的,但不是能贴两片flash就是双通道,双通道的主控有两组独立的flash I/O。双通道的速度就简单的是单通道的两倍。每个通道的速度主要受前面说的交替读写的功能做得好坏的影响。还得先再说一下flash芯片的结构,以K9HCG08U1M为例,该芯片有两个片选信号CE。每个片选信号CE控制一个K9LBG08U0M(别奇怪,大的flash就是拿小的拼起来的)。每个K9LBG08U0M包含两个DIE(对不起,又一个flash结构的专有名词),然后一个DIE包含前面提到的两个plane。所以一个K9HCG08U1M包含2个CE/4个DIE/8个plane。

8

在CE之间做交替,和在DIE之间做交替,在plane之间做交替的方法不一样,复杂度也不同。只用CE之间交替,相当于操作两个plane。用CE之间交替且用DIE之间交替,相当于操作四个plane。都用上的话就是操作八个plane了。

9

最老的主控连CE之间的交替都不做,现在差的估计只做了CE之间的交替,好的则都做了。这个各个主控怎么做的我们不知道,但是从速度上分析,配MLC双贴,大文件写速度大于20MB/s的都做了。

10

给大家解释一下,本来按上面算法,8个plane并行操作,再加上双通道,读写速度不应该是68MB/s和38MB/s吗?但是USB在window下受最大数据包大小为64KB的限制,本身速度极限只能达到读32--35MB/s,写28--32MB/s(大概值)。USB在传输数据时的速度确实是60MB/s,但是其中不全是有效数据,64KB的包中有效数据约为5/6。更要命的是它在两个包之间还要休息。所以flash端的速度要上50MB/s才能达到USB的极速。所以目前U盘的极限大概读基本都能上30MB/s。而写根据k9HCG08U1M双贴看最多到25MB/s。

11

最后,怎么选择flash和主控来得到最好的速度呢?(1) flash芯片容量越大,包含的plane数越多,交替读写的效果更好。  但是K9MDG08U5M不好,它的serial access time 是50ns,比小容量的大了一倍。(2)想速度快就用双通道,选交替功能做得好的。哪些主控好?要测过才知道。

推荐信息