【補丁】微軟發補丁,突破usb2.0傳輸瓶頸

USB傳輸規範發展歷史


      1998年USB 1.1規範正式發佈,產品主要用於將PC和電話連接起來實現電腦設備和通訊設備的完美融合,實現移動領域內的人機資料交互,成為新的廉價而且方便的通訊連接方案。

解除30MB/s魔咒! 实战USB 2.0大提速

    很快由於傳輸速率的限制,2000年4月USB-IF(USB Implementers Forum)組織很快制定出了新的USB 2.0傳輸規範,資料傳輸速率提升至480Mbps,由於方便的熱插拔和快速的資料交換速度,使得這一標準被PC廣泛採用。

    時值今日USB 3.0已經得到大面積的推廣,這個建立在2008年的規範在經歷了長達四年的風雨後,已經展現出強大的競爭力,Intel和AMD基於原生USB 3.0的晶片組控制器已經成為主流使用者的標配,留給協力廠商晶片廠商機會已經不多。

    而在USB 2.0到USB 3.0過渡的過程中,很多人由於種種原因堅守在USB 2.0陣線上,理論上高達60MB/s的傳送速率本可以滿足絕大部分資料傳輸需求,不過糟糕的協定和編碼方式使得長期以來USB 2.0最高實際傳送速率被限制在30MB/s左右,本文將從資料傳輸底層分析USB 2.0傳輸原理和編碼方式,找出一條提升USB 2.0傳送速率的途徑,最大限度縮短傳輸時間。

USB 2.0傳輸協議介紹:不能並行的BOT


    雖然USB 3.0普及之路有了很大的起色,不過目前在用的USB主控和終端設備大部分依然基於USB 2.0規範,這也直接導致很多高速設備無法享受到5Gbps的高速頻寬。

解除30MB/s魔咒! 实战USB 2.0大提速

    我們知道USB 2.0的理論傳輸速率為480Mbps,也就是60MB/s的資料傳輸頻寬,而在實際應用中這一速率受到傳輸協議(Bulk-Only Transport(BOT)協定)、編碼方式的影響被限制在35MB/s以下,理論頻寬利用率只有一半左右。

解除30MB/s魔咒! 实战USB 2.0大提速

    正是基於此,USB 3.0的設計完全拋棄了USB 2.0的匯流排,新增兩組資料匯流排,而為了保證向下相容,USB 3.0保留了USB 2.0的一組資料匯流排。而在傳輸協議方面,USB 3.0除了支援傳統的BOT協定,還新增了USB Attached SCSI Protocol(USAP)協定,可以完全發揮出5Gbps的高速頻寬優勢,雖然目前只有很少的設備能達到這一傳輸速率。

解除30MB/s魔咒! 实战USB 2.0大提速

    傳統BOT協定早在1999年USB 1.1發佈不久後就誕生,它規定USB設備在同一時間只能接收或處理一條命令,而到USB 2.0時代,雖然設備傳輸速率得到了極大的提升,但BOT協定並沒有改善,隨著存放裝置傳輸速率的提升,BOT協定阻礙USB傳輸速率的問題已經顯現出來。於是大容量資料交換就迫切需要新的傳輸協議,因此USB-IF組織就將SCSI和USB相結合推出了新的USAP協定,支援多命令併發執行和NCQ佇列功能,極大的提高了資料傳輸效率,另外由於支援USAP的主控設備都具備獨立的計算記憶體模組,使得USB資料傳輸對CPU的依賴大幅降低。

解除30MB/s魔咒! 实战USB 2.0大提速

    按照USB-IF組織的計畫,USAP除了支援USB 3.0,還向下對USB 2.0開放,不過到目前為止USB 2.0方面還沒有任何音訊,另外受到USB 2.0傳輸編碼方式和匱乏的D 、D-匯流排限制,USAP要在USB 2.0上展開並不是很容易。

揭秘USB 2.0糟糕的實際傳送速率


    目前由於設備傳輸速率限制以及USB 3.0 5Gbps傳輸頻寬的冗余,USAP協定並沒有急於展開,另外要實現USAP協定的支援,除了主控設備,終端設備也需要支援USAP,終端設備的晶片設計難度將會加大,這使得快閃記憶體等小型存放裝置的成本和體積將會顯著增加,不利於產品推廣,現有的一些支援USAP的設置僅限於外置存儲。

解除30MB/s魔咒! 实战USB 2.0大提速

30MB/s成了USB 2.0存放裝置的實際極限速度

    回歸到主流的USB 2.0設備上來,前文我們已經提到,受BOT傳輸協議、編碼方式的影響USB 2.0傳送速率被限制在35MB/s以下,也就是說USB 2.0傳輸頻寬還有不小的提升空間。

    USB 2.0使用了NRZI(Non-Return-to-Zero Inverted)編碼,它是基於序列傳輸模式,傳輸連續的0、1字串。在RZ(Return-to-zero Code)編碼中,正電平代表邏輯1,負電平代表邏輯0,並且每傳輸完一位資料,信號返回到零電平,也就是說,信號線上會出現3種電平:正電平、負電平、零電平。

解除30MB/s魔咒! 实战USB 2.0大提速

    而零電平因為是附加的內容浪費傳輸頻寬,所以需要去掉歸零,於是就變化成了NRZ(Non-return-to-zero Code)編碼。在USB傳輸中,每個USB資料包,最開始都有個同步域(SYNC),這個域固定為0000 0001,這個域通過NRZI編碼之後,就是一串方波,接受者可以用這個SYNC域來同步之後的資料信號。此外,因為在USB的NRZI編碼下,邏輯0會造成電平翻轉,所以接受者在接受資料的同時,根據接收到的翻轉信號不斷調整同步頻率,保證資料傳輸正確。

    但是,這樣還是會有一個問題,就是雖然接受者可以主動和發送者的頻率匹配,但是兩者之間總會有誤差。假如資料信號是1000個邏輯1,經過USB的NRZI編碼之後,就是很長一段沒有變化的電平,在這種情況下,即使接受者的頻率和發送者相差千分之一,就會造成把資料採樣成1001個或者999個1了。

解除30MB/s魔咒! 实战USB 2.0大提速

   USB對這個問題的解決辦法,就是強制插0,也就是傳說中的bit-stuffing,如果要傳輸的資料中有7個連續的1,發送前就會在第6個1後面強制插入一個0,讓發送的信號強制出現翻轉,從而強制接受者進行頻率調整。接受者只要刪除6個連續1之後的0,就可以恢復原始的資料了。

    由於強制插0保持發送者和接收者頻率同步會造成USB 2.0傳輸頻寬的浪費,浪費的大小則根據插0的多少而不同。這樣USB 2.0 60MB/s的傳輸頻寬就要打一定折扣了。對於USB 3.0來說,由於要保證高達5Gbps資料傳輸的正確性,採用了時下流行的8b/10b編碼方式,有效資料利用率為80%。也就是USB 3.0的有效資料傳輸頻寬為500MB/s。

USB 2.0大提速!實戰BOT協定改良


    除了編碼方式,影響USB 2.0傳輸速率的還有BOT傳輸協議,BOT協定在作業系統下限制最大為64KB區塊,而持續資料塊大小為128KB。由於BOT協定的原因,BOT區塊會因為連續處理而浪費大量等待時間,這又一次將有限的60MB/s傳輸頻寬浪費了不少,NRZI和BOT雙重限制下,有效傳輸頻寬就剩下50%左右了。

解除30MB/s魔咒! 实战USB 2.0大提速

    USB傳輸底層NRZI編碼方式我們無法改變,不過我們可以擴大BOT協定的區塊大小,增加USB頻寬利用率,這對於持續傳輸尤其有效。

    修改BOT區塊大小之前,我們要從微軟官方下載一個補丁Windows6.1-KB2581464,補丁將Usbstor.sys驅動程式中的最大傳輸尺寸值從預設的64KB增加到2MB。

解除30MB/s魔咒! 实战USB 2.0大提速

    安裝補丁後,系統還無法直接為存放裝置應用為2MB區塊模式,這個時候我們還需要將存放裝置的INF設備資訊(INF設備資訊是由VID_xxxx&PID_xxxx字串組成,唯一的標識了這款產品)添加到Usbstor.sys下面。

解除30MB/s魔咒! 实战USB 2.0大提速

    打開註冊表,定位到“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlusbstor”下面,新建一個INF存放裝置項,然後建立“MaximumTransferLength”=dword:001fffe0(001fffe0十進位數值為2097120,也就是2MB)的DEWORD值,保存後重啟系統就完成了INF資訊配置。

測試平臺和測試方法介紹


     在安裝、配置完後,現在就可以享受到性能的提升。由於USB 2.0已經非常普及,而USB 3.0也向下相容,為保證USB 2.0傳輸滿速,我們代替的使用了USB 3.0存放裝置測試這一提速效果。

    ● 測試平臺

泡泡網主機板頻道測試平臺

硬體設定

處理器
Intel Core i7 3770K (4C8T,L3=8MB,3.5-3.9GHz)

主機板
GigaByte GA-Z77M-D3H (Intel Z77)

記憶體
Samsung 4GB DDR3-1600 x2 (9-9-9-24 1T)

顯卡
NVIDIA GeForce GT 640

固態硬碟
OCZ Vertex 3 240GB

電源
Antec TPQ-1000

顯示器
Dell 3007WFP

軟體配置

作業系統
Windows 7 Ultimate SP1 64bit

顯卡驅動
ForceWare 301.42 WHQL

   在測試之前先說明下USB 2.0提速的原理,首先提速是基於USB 2.0控制器以及BOT傳輸協議、NRZI編碼,也就是說USB 2.0控制器、存放裝置並不是使其傳送速率低於35MB/s的原因,獲得的性能提升是來源於匯流排上的效能改善,換句話說如果你的USB存放裝置傳輸速率低於30MB/s,那麼提速將沒有明顯的效果,因為此種情況下,USB 2.0的匯流排還是可以滿足你的存放裝置傳輸頻寬需求的,這也是我們不採用USB 2.0存放裝置的原因,因為大部分的USB 2.0速度是達不到30MB/s以上的傳輸速率的。

解除30MB/s魔咒! 实战USB 2.0大提速

解除30MB/s魔咒! 实战USB 2.0大提速 解除30MB/s魔咒! 实战USB 2.0大提速

    當然選擇的USB 3.0設備雖然支援5Gbps傳輸,不過由於接駁在USB 2.0介面上,所以傳輸規範和匯流排協定依然是基於USB 2.0,所以理論速率還是會被限制在480Mbps以內。

解除30MB/s魔咒! 实战USB 2.0大提速

    測試所用的三組設備Kinston DT G2 USB 3.0高速快閃記憶體、SATA 6Gbps SSD轉USB 3.0外置存儲、SATA 3Gbps HDD轉USB 3.0外置存儲在SuperSpeed模式下實際傳輸速率(讀寫)都超過了60MB/s,理論上是不會對所測試的USB 2.0傳輸造成性能瓶頸。

輕鬆破40MB/s ATTO Disk Benchmark測試


    測試選取的三組設備Kinston DT G2 USB 3.0高速快閃記憶體、SATA 6Gbps SSD轉USB 3.0外置存儲、SATA 3Gbps HDD轉USB 3.0外置存儲,其中SSD和HDD使用了相同的USB 3.0硬碟底座。

解除30MB/s魔咒! 实战USB 2.0大提速

    首先進行的ATTO Disk Benchmark測試中,預設配置下,所有三款設備的讀寫速度最高只有36.5MB/s,加速後讀寫速度都出現了顯著的增加,其中最高的SATA 6Gbps SSD轉USB 3.0讀取達到了44.8MB/s,這在以往USB 2.0資料傳輸中基本不可能看到,而寫入速度也一舉突破40MB/s為42.2MB/s,表現同樣出色。

    雖然這些成績在USB 3.0下能夠很輕鬆取得,但是對於那些USB 2.0老使用者來說在不升級USB 3.0的前提下獲得40MB/s的傳輸頻寬,相對預設環境還是有不小的突破,能夠節約不少時間。

魔咒終被解除 AS SSD傳輸驗證測試


    另外一項AS SSD測試主要基於存放裝置的持續讀寫性能、4K、4K-64執行緒傳輸速率,由於移動存放裝置主要用於檔拷貝,所以測試僅選取了持續讀寫這一項。

解除30MB/s魔咒! 实战USB 2.0大提速

    整個測試基本和ATTO Disk Benchmark表現一致,預設情況下SATA 3Gbps HDD轉USB 3.0存放裝置獲得了32.2MB/s的讀取速度,寫入速度只有29.1MB/s,開啟加速後,讀寫速度分別提升至39.9MB/s和39.3MB/s,提升幅度分別為24%和35%。

標本兼治的USAP:未來的USB傳輸協議


    整個組建、測試下來,我們看到經過改善後的USB 2.0最大傳送速率已經有了明顯的提升,雖然離60MB/s理論速度還有一定的差距,但是我們知道這只存在於理想狀態,畢竟USB 2.0的傳輸協議和編碼方式已經嚴重制約了其理論傳送速率的發揮。

解除30MB/s魔咒! 实战USB 2.0大提速

離60MB/s理論還是有一定差距

    雖然目前USB 2.0設備很多都沒有達到30MB/s的傳輸速率,不過在USB 3.0存放裝置普及之前,一些老的高速傳輸設備,使用USB 2.0加速還是能為資料傳輸節約不少的時間,另外作為大型存放區的代表,基於USB 2.0的移動硬碟在不升級的情況下免費獲得傳輸性能的提升也是一件不錯的事。

    談到這裡,很多人會疑問這種加速模式是否可以適用于USB 3.0,提升其傳輸性能,答案是肯定的!不過正如我們測試所用到的高速USB 3.0存放裝置,其實是因為USB 2.0的傳輸協議和編碼規範影響了傳送速率,而不是設備本身,而USB 3.0雖然目前還是基於BOT傳輸協議,但是5Gbps的頻寬,除了SSD以外,很少設備能將其喂飽,也就是說在不使用高速設備的情況下加速前後傳送速率微乎其微。

解除30MB/s魔咒! 实战USB 2.0大提速

未來USB傳輸是屬於USAP的

    對於USB 3.0傳輸規範,USAP協定將是未來的一個重點開發物件,在USB 3.0性能出現瓶頸前,USB-IF組織將會大力推廣USAP協定,相對於本文的USB 2.0改善措施,USAP將帶來USB傳輸史上的革命,它將全面取代現有的BOT傳輸協議。


本文轉自:http://www.pcpop.com/doc/0/811/811038_all.shtml#p2



發表評論?

0 條評論。

發表評論


无觅相关文章插件,快速提升流量