-
1 # 老王丶分享
-
2 # 硬體數碼雜談
根據上面說明,我們看到USB2.0的最高速度可達480Mbps,也就是60MB/S。
上述60MB/S屬於理論值,但實際使用中我們會發現這個理論速度是達不到的。長期以來USB2.0最高實際傳輸速度被限制在30MB/s左右,只能達到理論頻寬的一半,這是由於落後的協議和編碼方式造成的。
USB2.0採用的是傳統的Bulk-Only Transport(BOT)協議,由於沒有進行改善,隨著目前高速儲存裝置的出現,BOT協議阻礙USB傳輸速率的問題已經顯現出來。而目前的USB 3.0新增了USB Attached SCSI Protocol(UASP)協議,新增了兩組資料匯流排,支援多命令併發執行和NCQ佇列功能,這樣就可以發揮出5Gbps的高速頻寬優勢。
-
3 # 華旭天下
USB(Universal Serial Bus2.0,通用序列匯流排)是一種應用在計算機領域的新型介面技術。USB介面具有傳輸速度更快,支援熱插拔以及連線多個裝置的特點。目前已經在各類外部裝置中廣泛的被採用。USB介面有三種:USB1.1,USB2.0和USB3.0。理論上USB1.1的傳輸速度可以達到12Mbps,而USB2.0則可以達到速度480Mbps,並且可以向下相容USB1.1。
-
4 # TechFans
理論上,USB2.0傳輸速度最高可達到480Mbps,即60MB/s,如果幾臺裝置共用一個USB通道,主控制晶片會對每臺裝置可支配的頻寬進行分配控制,所以USB2.0實際傳輸速度不超過30MB/s。
-
5 # 開心牧場
USB2.0的頻寬是480MB/S, 大約每秒中可以傳輸60MB的資料,但這是隻理論值而矣。USB2.0介面的實際極限寫入速度在25M/S左右,讀速度在35M/S左右。而一般的U盤寫入在10M左右,讀在20M左右
-
6 # 電腦吧
USB 2.0的理論傳輸速率為480Mbps(兆位每秒),即60 MB/s,但實際傳輸速度一般不超過30 MB/s。
USB 3.0(即USB 3.1 Gen1)的最大傳輸速率為5.0Gbps(500MB/s)。
USB 3.1 Gen2的最大傳輸速率為10.0Gbps(雖然USB 3.1標稱的介面理論速率是10Gbps,但是其還保留了部分頻寬用以支援其他功能,因此其實際的有效頻寬大約為7.2Gbps)。USB 2.0為四針介面,USB 3.0和USB 3.1為九針介面。
回覆列表
首先實際速度肯定低於理論速度,比如百兆乙太網,能到10MB/s的速度就不錯了,但是為什麼USB差距這麼大,主要是USB傳輸的無用包實在是太多了。
對於USB2.0,480Mbps是指匯流排的頻率,也就說,匯流排訊號每秒最多能傳輸這麼多bit,這些訊號包括控制訊號和資料訊號,現在來看看那資料訊號都有什麼:每125us就有一個micro frame(微幀),每1ms還有一個frame,在USB規範裡叫SOF,類似於一種同步訊號。
標準USB傳輸過程:in/out token,data0/1,ack,真正有效的資料就在data0/1裡,如果一個data包放不下,那麼會放到多個data裡。傳輸之前,對於2.0裝置還要發起一個ping請求,確認裝置是活著的。
USB不是一個全雙工裝置,通常的行為是這樣:匯流排空閒,主機端請求資料,匯流排空閒,裝置迴應,匯流排空閒,主機準備接受資料,匯流排開始傳輸,傳輸完成匯流排空閒,主機檢查資料無誤,給裝置迴應說資料傳輸正常結束(不需要重傳)。對於U盤本身:由於U盤規範的原因,大多數作業系統要求定期檢查U盤狀態(是否是alive的),這個請求叫做test unit ready(各個OS都有,大家就不要吵了,U盤規範上的)。
同時傳輸512位元組(一個扇區的資料)要包括命令標識,命令號,LBN(邏輯塊地址)以及亂七八糟一堆堆的東西,一個扇區大概需要將近600位元組的資料。同時主機端還要給予相應的迴應。
至於前面有人說bulk傳輸不會佔滿頻寬,這也不是完全對的,確實USB傳輸分為interrupt傳輸,bulk傳輸,ISO傳輸,但是隻有interrupt預留了很少,ISO會保留30%左右,但當沒有ISO傳輸存在的時候,bulk是可以佔掉這一部分的。
USB2.0規範裡給了一個公式,算傳輸時間的(演算法解釋就太複雜了,見USB2.0 5.11.3 Calculating Bus Transaction Times):
High-speed (Input):Non-Isochronous Transfer (Handshake Included)= (55 * 8 * 2.083) + (2.083 * Floor(3.167 + BitStuffTime(Data_bc))) + Host_Delay
BitStuffTime(Data_bc) 這部分就是資料傳輸需要的時間,算起來麻煩,但是看到前面有一個2.083就能看出來,傳輸一個bit基本上需要2.083倍的時間,所以,簡單的把480Mbps除以2.083,再轉換成位元組大概是:28.8MB/s,也就是說,最多就這麼快,再刨除bulk-only模式裡的那一堆堆的多餘指令:一個包需要16個位元組左右,Windows一次請求是4KB(可能是為了頁對齊),再浪費掉1%左右的時間,以及host delay,也就是主機的校驗延遲,那麼實際速度就20多MB/s,不管是讀還是寫。
但是我知道肯定有人說,測得的實際速度比這個快,當然了,我也見過比這個快的,為什麼?恰好我做過Windows裡檔案系統開發,也研究過Linux裡的fat驅動,先說Linux,它很變態,你的寫操作不一定真正寫到磁碟上(證據我有,因為我有USB分析儀,能抓匯流排傳輸),Linux會在後臺慢慢的寫,前臺看上去已經寫進去。
Windows比Linux強一些,但是基於強大的預讀和快取,Windows也不是實時讀寫,所以會看到數字有跳動的情況(Windows核心裡cc開頭的函式就是幹這個的)。我們開發產品的過程中,看到過的最高匯流排利用率也就是80%左右(分析儀獲得的匯流排資料),也就是說28MB的速度可能還要打個八折,崩潰去吧。另外,U盤(flash介質)會更慢一些,因為U盤本身寫的就慢,SSD和硬碟會好些,雖然SSD也是flash,但是SSD快取大,並且有保障機制。
USB2.0除了擁有USB1.1中規定的1.5Mbps和12Mbps兩個傳輸模式以外,還增加了480Mbps高速資料傳輸模式(注:第二版USB2.0的傳輸速率將達800Mbps,最高理想值1600Mbps)。雖然USB2.0的傳輸速度大大提升了,但其工作原理和模式是完全與USB1.1一樣的,而提高到480 Mbps的傳輸速度的最關鍵技術就是提高單位傳輸速率:USB1.1的單位資料傳輸時間是1毫秒,而USB2.0的單位資料傳輸時間則達到了125微秒。 USB2.0的最高傳輸速率為480Mbps,即60MB/s。不過,大家要注意這是理論傳輸值,如果幾臺裝置共用一個USB通道,主控制晶片會對每臺裝置可支配的頻寬進行分配、控制。如在USB1.1中,所有裝置只能共享1.5MB/s的頻寬。如果單一的裝置佔用USB介面所有頻寬的話,就會給其他裝置的使用帶來困難。 USB2.0 High Speed:理論速度是480Mbps,對應之前的USB2.0; USB2.0 Full Speed:理論速度是12Mbps,也就是過去的USB1.1