簡介
USB由于具備簡單、成熟、即插即用特征,所以在市場上很流行。然而,USB 2.0 480 Mbps的速度無法支持新一代存儲和視頻。因此,移植到一個更快標(biāo)準(zhǔn)的時機已經(jīng)成熟,這就導(dǎo)致了USB 3.0新協(xié)議的開發(fā)。對于開發(fā)商而言,挑戰(zhàn)是如何充分利用USB 3.0的潛能。本文將探討使用USB 3.0硬件軟件設(shè)計問題,本文主要介紹的是手持產(chǎn)品。首先,我們將比較USB 2.0和USB 3.0的性能,以及過渡到USB 3.0模塊影響到的器件。
在一個普通的場景中,在device端,處理器直接連接到USB、存儲器和外設(shè)。記住這種結(jié)構(gòu),由High-Speed過渡到SuperSpeed,處理器的影響可以概括如下:
USB 2.0 VS USB 3.0
數(shù)據(jù)速率
USB 2.0和USB 3.0的基本區(qū)別是帶寬。USB 2.0所提供的理論帶寬是480Mbps。事實上,收到的最大吞吐量約為320Mbps (40MBps),它大致是理論值的三分之二。使用USB3.0,數(shù)據(jù)吞吐量為4.8Gbps。如果我們用相同的比例,那么預(yù)期的數(shù)據(jù)速率是3.2Gbps (400MBps)。然而,許多開發(fā)人員希望能提供更高的吞吐量。圖1顯示了USB 3.0 和USB 2.0用于Buffalo外部存儲磁盤進行不同大小文件傳輸?shù)臄?shù)據(jù)率差異。應(yīng)該指出的是,USB 3.0數(shù)據(jù)速率受儲存設(shè)備約束,否則400 Mbps的數(shù)據(jù)速率很容易達到。
圖1可以看出,單個請求傳輸大小增大了,數(shù)據(jù)傳輸速率也隨之增加了。這是因為當(dāng)請求傳輸大小增加時,請求數(shù)量和因此MSC設(shè)備要處理中斷減少,那么整體性能就更好了。64 KB傳輸過后,數(shù)據(jù)速率達到飽和(因為Windows驅(qū)動在一個SCSI請求中不能請求超過64 KB的數(shù)據(jù))。這些數(shù)據(jù)顯示了中斷在整個系統(tǒng)性能的重要性和影響。
高數(shù)據(jù)率增加了中斷速率和數(shù)據(jù)請求速率,這使處理器負(fù)荷顯著提高。當(dāng)處理器忙于處理USB相關(guān)的實時請求時,增加了延時,用戶會看到應(yīng)用處理慢了下來,這并不是一個滿意的結(jié)果。
數(shù)據(jù)流
USB 2.0數(shù)據(jù)請求一次只能是一個方向,與USB 2.0標(biāo)準(zhǔn)不同,USB 3.0支持同時讀和寫。這是因為USB 2.0是半雙工協(xié)議,而USB 3.0是全雙工協(xié)議。全雙工通信是通過增加更多連接來支持同時傳輸數(shù)據(jù)的。它同時也帶來了成本的增加和軟件的復(fù)雜性。使用USB 2.0,處理器一次只參與傳輸,并且數(shù)據(jù)結(jié)構(gòu)和請求處理非常簡單。但隨著全雙工USB 3.0的到來,現(xiàn)在的數(shù)據(jù)結(jié)構(gòu)需要加倍的信息。USB軟件模塊還需要能夠處理同時的數(shù)據(jù)操作。
封包傳輸協(xié)議改變了(例如,廣播定向),設(shè)備polling消除了,link的定義和功能級中間狀態(tài),使USB3.0電源管理要很不錯。我們將討論USB設(shè)備處理器必須要做的事情,因為第三種降低功耗改變了,例如多種中間狀態(tài)。
在USB 2.0中,狀態(tài)只有ACTIVE 和SUSPEND。SuperSpeed中有兩個以上的狀態(tài):FAST EXIT IDLE 和SLOW EXIT IDL。狀態(tài)越多意味著硬件和軟件兩個方面都更復(fù)雜。外設(shè)可以使用link級電源管理發(fā)起省電模式。要獲得實際利益,處理器需要跟蹤USB接口的空閑時間,智能采取行動。對于一個設(shè)備來說電源連接狀態(tài)的入口和出口速率可能很頻繁。例如,同步傳輸允許外設(shè)在服務(wù)間隔進入低功耗狀態(tài)。這可以顯著增加處理器負(fù)載運行時間。
流支持
USB3.0拓展了批量傳輸模式,支持流模式。批量流提供了同頻帶信號傳輸,通過一個標(biāo)準(zhǔn)批量傳送支持多路多個獨立邏輯數(shù)據(jù)流協(xié)議。這種作法簡化了USB設(shè)計復(fù)雜的類協(xié)議。例如,USB SCSI (UAS)海量存儲類使用批量流代替簡單的BOT協(xié)議。在BOT中,一次只有一個pending請求,而在UAS中,一次可能有n-1個請求,這里n是批量端點中支持的流數(shù)。實現(xiàn)和維護一個復(fù)雜的類協(xié)議也可能使處理器一直很忙。對于BOT來說單個平面數(shù)據(jù)結(jié)構(gòu)就夠了,UAS協(xié)議要求基于優(yōu)先級的數(shù)據(jù)結(jié)構(gòu)用于實現(xiàn)外設(shè)端固件。
常用USB設(shè)備結(jié)構(gòu)分析
考慮到海量存儲設(shè)備是市場上最常見的高性能USB外設(shè),我們會舉一個海量存儲設(shè)備的例子,來精確的分析其性能。
我們將討論數(shù)據(jù)方面,這是因為大部分時間里接口將涉及數(shù)據(jù)包傳輸而不是控制包。
數(shù)據(jù)傳輸步驟:
1.處理器收到一個USB請求。
2.處理器處理這個請求。
3.處理器依次存儲讀/寫請求。
4.處理器等待傳輸完成。
5.處理器發(fā)送完成情況到USB host
這次傳輸?shù)臅r間結(jié)構(gòu)
總延時 = X Y Z
這里,X,Y和Z是主要的延時構(gòu)成,解釋如下:
1.延時X是傳輸請求數(shù)據(jù)包在主機和處理器之間所花的時間。這取決于USB協(xié)議和USB設(shè)備硬件處理效率。請求數(shù)據(jù)包大小只有幾十個字節(jié),所以延時只有幾納秒。
2.延時Y代表的是處理器處理USB請求和建立直接存儲器存取所需要的時間。這取決于處理器類型,線程/過程數(shù)目,軟件架構(gòu)。對于通用處理器處理大量的過程和任務(wù)來說,操作系統(tǒng)處理延遲可能很大程度取決于中斷延時,內(nèi)容切換延遲,隊列延遲等。最壞的情況下,延時Y可能達到數(shù)百微秒。
3.延遲Z是指數(shù)據(jù)在USB和存儲設(shè)備之間傳輸所需的時間,這取決于請求類型。還取決于直接存儲器存取結(jié)構(gòu)和存儲設(shè)備類型,并不取決于USB速度,因為這里瓶頸會是存儲速度而不是USB速度(如SuperSpeed)。延遲Z可能在幾毫秒和數(shù)微秒之間,取決于存儲設(shè)備類型和數(shù)據(jù)大小。
雖然USB速度快了十倍(從480Mbps 到 5Gbps),但是真正的吞吐量將遠遠低于理論值,因為USB延時(X)比操作系統(tǒng)處理延遲(Y)和存儲傳輸延遲(Z)都小得多,其相對于總延時可以忽略不計。Z延時可以通過選擇更好的存儲設(shè)備來改進,但是Y延時,則需要通過更有效地系統(tǒng)設(shè)計來管理。
效率
要發(fā)揮USB 3.0的全部潛力,需進行以下變化:
高性能處理器:處理器由于USB 3.0引起的復(fù)雜性和任務(wù)處理的數(shù)量都將大幅上升。如果希望其他應(yīng)用性能不受影響,就需要一個功能強大的處理器。
影響:這不僅會增加產(chǎn)品成本,而且還會增加功耗,對于手持設(shè)備來說,這是很不利的。
必須改變現(xiàn)有的系統(tǒng)架構(gòu)來適應(yīng)USB 3.0。同時,如果USB 3.0的全部潛能都可以實現(xiàn),就需要大容量和高性能的存儲設(shè)備。
影響:這將增加系統(tǒng)的復(fù)雜度,因此影響了推向市場的時間和項目風(fēng)險。
重新設(shè)計來提高性能
不需要將USB控制器連接到通用處理器(GP),可以連接到一個I/O模塊。這種I/O模塊類型叫做I/O通道,這里I/O模塊增強為一個獨立的處理器。GP指揮I/O通道在主存儲器中執(zhí)行程序。I/O通道拿到這些指令并執(zhí)行他們,并不需要GP干預(yù)。GP只是當(dāng)整個序列完成時產(chǎn)生中斷。
如果I/O模塊有自己的本地存儲器,那么就稱為I/O處理器。這種設(shè)置減少了通用處理器的參與。使用這種方式,可以避免需要使用高性能處理器和結(jié)構(gòu)的變化,從而可以減少系統(tǒng)成本和量產(chǎn)風(fēng)險。西橋就是這樣一個智能I/O處理器,它把外設(shè)控制器增強了并模塊化到了一個嵌入式計算機結(jié)構(gòu)。南橋也是用很類似的方式來提高數(shù)據(jù)在PC的吞吐量,西橋結(jié)構(gòu)提高了吞吐量,可以用于USB,通用處理器,存儲器,及其他外設(shè)之間的高吞吐量數(shù)據(jù)傳輸。
西橋器件是專為這種操作設(shè)計的,可以顯著提高性能。由于數(shù)據(jù)傳輸?shù)目傃舆t依賴于處理延遲,當(dāng)使用西橋結(jié)構(gòu)后會大大降低這種延遲。
影響通用處理器性能的主要因素取決于中斷的頻率。簡而言之,每次GP收到中斷,內(nèi)容都需要切換,執(zhí)行ISR,從而增加了其他運行程序的時間。當(dāng)使用西橋器件時,大部分USB相關(guān)中斷由它處理,從而提高了GP的性能。
下面是一個15.1 GB的嵌入式多媒體卡(eMMC) 使用海量存儲類驅(qū)動枚舉的性能測試。沒有西橋時GP不得不處理很多中斷。下圖描繪了系統(tǒng)的各項任務(wù)處理結(jié)果。中斷數(shù)量為log2單位。
上表反映了使用特定應(yīng)用的I/O處理器(如西橋)時,GP必須處理的中斷減少的數(shù)目。沒有西橋,GP要處理大量的中斷,產(chǎn)生‘super speed’迫使GP要很長時間保持空閑狀態(tài)(由于次要的內(nèi)容切換)。相反,GP可以把這些任務(wù)釋放給西橋,保持其處理其他實時任務(wù)的效率,充分發(fā)揮USB 3.0的潛力。西橋結(jié)構(gòu)不僅可以簡化整體系統(tǒng)平臺結(jié)構(gòu),它還可以提高整體性能并降低項目風(fēng)險。
來源;電子工程網(wǎng)
評論
查看更多