研究过USB3.0针脚的用户知道,USB3.0配备了9根针脚,其中4个与USB2.0配置相同,后面的5个则是为USB3.0特别准备的。5根针脚中其中两根用于发送数据,另外两根用于接收数据,另外一根是GND地线。这种配置可以让USB3.0实现同步的发送和接收数据,两种操作同时处理,分别拥有独立
USB3.0全双工模式可以同步读写不减速?
谈及USB3.0,我们的第一反应就是理论高达5Gbps的带宽,这10倍于USB2.0理论的480Mbps的带宽。在实际应用中,USB3.0可以充分释放机械硬盘的本来性能,而借助多通道的优势也将U盘的传输速度提升至百兆。
由于USB3.0采用了8b/10b编码方式,因此实际的速度也只能到4Gbps左右,结合协议开销以及控制芯片和驱动程序的影响,最终速度还会更低。然而USB3.0还有一项重要的特性就是引入了全双工数据传输机制。
研究过USB3.0针脚的用户知道,USB3.0配备了9根针脚,其中4个与USB2.0配置相同,后面的5个则是为USB3.0特别准备的。5根针脚中其中两根用于发送数据,另外两根用于接收数据,另外一根是GND地线。
这种配置可以让USB3.0实现同步的发送和接收数据,两种操作同时处理,分别拥有独立的带宽,互不影响。全双工是USB3.0全新引入的规范,USB2.0只是480Mbps半双工模式。
那么这是否意味着,我们在实际应用中,可以同时拷入和拷出数据而不会变慢?以此可以大大提升多硬盘大容量文件拷贝时的效率。这是我们今天的话题,针对USB3.0的全双工特性做一个桌面级应用的初步探究。
全双工模式模拟测试硬件介绍
为验证此测试,笔者本次做这样的一种探究,在主流的Windows 7系统下,使用一个高性能的USB3.0的U盘,两块固态硬盘(一块浦科特M2P 128GB以及一块威刚S511 120GB),以及一个USB3.0的外接硬盘盒。
这款高性能的USB3.0的闪存盘来自金士顿的最新力作DataTraveler HyperX 3.0,作为旗舰级别的USB3.0闪存盘,它拥有64GB、128GB以及256GB三种容量,标称读取速度达到225MB/s,写入速度达到135MB/s,而整体的蓝黑色调的搭配也凸显高贵和科技感。
浦科特M2P固态硬盘是一款基于Marvell 88SS9174主控的产品,采用东芝32纳米Toggle DDR Mode NAND闪存芯片。借助全面改进的固件和硬件设计,这款固态硬盘达到了连续读写500MB/s和320MB/s的程度,同时4KB随机读写性能也达到了70K和60K IOPS,综合性能超过了美光M4,受到中高端用户的欢迎。
这款威刚S511固态硬盘基于SandForce SF-2281主控芯片,采用英特尔25纳米ONFI 2.2 MLC闪存芯片,工作在同步模式下,针对可压缩数据连续读写可以达到550MB/s和500MB/s,针对难压缩数据则可以达到525MB/s和165MB/s左右,4KB随机写入性能最高可以达到85K IOPS。
这款来自银欣的乌鸦系列RVS02是一款2.5英寸USB3.0硬盘盒产品,支持SATA 6Gbps最新规范,采用祥硕的ASM1051E芯片,不过还未加入对UASP协议的支持,尚无法发挥出USB3.0的5Gbps的全部理论带宽。
考虑到全双工同步读写的测试需要,以及当前的文件拷贝软件并不支持同时两个任务并行运作,因此笔者在使用常规的FastCopy软件进行测试的同时,还使用了Copy Handler软件。但从实际使用来看,这两款软件在执行相同的拷贝任务时性能并不一致,也许是受限于算法或者默认缓存大小的设置问题吧。
使用两个SSD与U盘对拷数据模拟测试
我们的测试方案分为两部分,针对一部容量为8.7GB的高清电影文件,从威刚S511固态硬盘拷贝到金士顿DT HyperX3.0闪存盘的同时,再从该闪存盘中已保存的该电影的另一份副本拷贝到浦科特M2P固态硬盘,这种同时读写的操作集中在一个USB3.0闪存盘中,也是避免了SATA硬盘不支持全双工模式的问题。该部分测试在USB3.0和USB2.0两种模式下进行。
值得说明的是,目前还没有哪款USB3.0闪存盘能够达到接近500MB/s的传输速度,来自设备的瓶颈虽然会从理论上造成结果的偏差,但却能很好地说明实际问题。
笔者首先只使用FastCopy软件,从威刚S511将文件拷贝到金士顿DT HyperX 3.0闪存盘中,结果如上图所示,速度为145.73MB/s,耗时61.46秒。
然后笔者只使用Copy Handler软件,将文件从金士顿DT HyperX 3.0拷贝到浦科特M2P中,结果如上图所示,速度为154.44MB/s,耗时58秒。两项操作耗时竟如此接近。
随后笔者将两项操作同时进行,对金士顿DT HyperX3.0闪存盘来说是同时进行读写操作,如果不支持全双工模式,这意味着两项操作无法同时进行,最终耗时将会是两项操作单独执行耗时的叠加。如果支持全双工模式,虽然可能会受限于存储介质的瓶颈,但最终结果应该仍会缩短一些。
执行开始,此时FastCopy软件显示90.73MB/s,Copy Handler软件显示只有31.56MB/s,似乎并未同步进行,或者说受限于控制器的瓶颈,同步读写只能达到这个速度。因为我们毕竟不可能检测到信号的接受和发送。
FastCopy软件执行完毕,速度最终达到124.28MB/s,后续Copy Handler软件开始加速,达到了161.74MB/s。
两项任务全部执行完毕,总耗时1分53秒,相比两项任务单独进行,仅仅节省了6秒。
USB2.0模式下的双SSD与U盘对拷测试
下面在USB2.0模式下做相同的测试。
只使用FastCopy软件,从威刚S511将文件拷贝到金士顿DT HyperX 3.0闪存盘中,结果如上图所示,速度为30.86MB/s,耗时290.26秒。
只使用Copy Handler软件,将文件从金士顿DT HyperX 3.0拷贝到浦科特M2P中,结果如上图所示,速度为32.34MB/s,耗时4分37秒,合277秒。
两种操作同步进行,执行刚刚开始时,两个软件均显示5.92MB/s。
FastCopy即将完成时,达到24.97MB/s,而Copy Handler软件仍显示5.92MB/s。
一段时间后,Copy Handler软件也加速到31.56MB/s。
执行完毕,总耗时9分20秒,合560秒,比两项操作单独进行节省了7秒。
USB3.0闪盘和移动硬盘对拷测试
测试的第二部分,是同时使用主板通过NEC芯片提供的两个USB3.0接口。其中一个接口接入金士顿DT HyperX 3.0闪存盘,另外一个接口是接入银欣乌鸦RVS02 USB3.0硬盘盒,盒内使用的是威刚S511固态硬盘。两个USB3.0设备同时对拷两个文件,即是让两个硬盘同时进行读写操作。和前面一样,笔者依然逐个进行一遍测试。
从移动硬盘拷贝到闪存盘,依然使用FastCopy软件,结果为130.2MB/s,耗时68.8秒。
从闪存盘拷贝到硬盘,使用Copy Handler软件,结果为99.53MB/s,耗时1分30秒。
对拷开始,结果显示依然不出意外,FastCopy软件显示93.72MB/s,而Copy Handler软件显示27.61MB/s。
FastCopy率先完成,最终达到了108MB/s,此时Copy Handler软件开始加速,达到了98.62MB/s。
两个任务全部完成,总耗时2分32秒,同样,这项测试也没有体现出所谓的“全双工”的优势。
本次测试结果只能证明一件事情
本次的测试并不能100%地证明任何事情。大家都看到了,USB3.0的全双工模式在本次测试中没有任何体现,进行同时读写的测试,表面看上去依然是两个任务分别执行。笔者也试过了基于Windows 7本身的文件拷贝,和理论软件的测试结果没有太大差异。对此,笔者想说明以下几点:
1.可能笔者对USB3.0全双工模式理解有误或者不准确,而本次的测试也未使用基于理论的软件,毕竟当前我们常用的测试软件都是单线程运作;
2.即便笔者的理解并未有偏差,那么可能是因为当前的USB3.0设备限制于控制器或者是驱动等因素,尚无法发挥全双工模式的效果;
3.笔者的测试仅针对消费级的USB3.0闪存盘,并未测试多硬盘阵列等类似环境下的应用,即便如此我们也必须使用原生USB3.0芯片或者SAS相关设备,因为SATA硬盘本身并不支持全双工模式,因此SATA转USB3.0的方案理论也是实现不了的;
4.即便目前USB3.0的全双工模式都还只是理论规范,尚没有出现实际应用,那么这就给了我们期待的理由,而不是否定USB3.0,毕竟USB3.0设备目前的市场规模依然较小;
5.本次测试只能说明一点,当前USB3.0用户不必尝试这种同时读写的文件拷贝方式,它没有很明显的加速效果。
更新:刚刚有网友提到可以通过单个USB3.0连接一个Hub的方式,然后利用两个USB3.0设备分别同时进行读写操作,这样测试可以排除设备的瓶颈而把全双工能否发挥均集中在接口方面,当然这需要Hub的控制芯片支持全双工模式。
目前,大部分资料对USB3.0的全双工模式都停留在理论介绍层面,尚未有芯片厂商实际演示这一机制的效果,也许目前该机制真的还停留在理论层面而已。

网友评论