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