網(wǎng)絡(luò)流送的方法和裝置制造方法
【專利摘要】本發(fā)明涉及網(wǎng)絡(luò)流送的方法和裝置。描述了一種在包括處理器(202)和經(jīng)由共享互連(206)可操作地耦合到流送外圍設(shè)備(214)的控制器(204)的流送系統(tǒng)(200)中的數(shù)據(jù)流送的方法。所述方法包括在所述控制器處接收至少一個描述符,所述至少一個描述符指向存儲器中的至少一個報頭數(shù)據(jù)元件和所述流送外圍設(shè)備(214)中的至少一個有效負(fù)載緩沖器元件;由所述控制器(204)讀取所述至少一個描述符(211);由所述控制器提取由所述描述符(211)所指的來自存儲器的所述至少一個報頭數(shù)據(jù)元件以及來自所述流送外圍設(shè)備(214)中的所述有效負(fù)載緩沖器(212)的所述至少一個有效負(fù)載元件。
【專利說明】網(wǎng)絡(luò)流送的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的領(lǐng)域涉及一種用于例如以太網(wǎng)流送的網(wǎng)絡(luò)流送的方法和裝置,諸如控制器和流送外圍設(shè)備。
【背景技術(shù)】
[0002]在計算和數(shù)據(jù)通信領(lǐng)域中有許多不同的聯(lián)網(wǎng)標(biāo)準(zhǔn),其中使用最廣泛的就是以太網(wǎng)。以太網(wǎng)被稱為用于局域網(wǎng)(LAN)的計算機(jī)聯(lián)網(wǎng)技術(shù)一族。1980年以太網(wǎng)在市場上推出,并在1985年標(biāo)準(zhǔn)化為IEEE802.3。在很大程度上以太網(wǎng)已經(jīng)取代了競爭的有線局域網(wǎng)技術(shù),并因此已成為數(shù)據(jù)通信的主要行業(yè)標(biāo)準(zhǔn)。通過以太網(wǎng)通信的系統(tǒng)將數(shù)據(jù)流分解成被稱為幀的較短的片。每一個幀包含源地址和目的地地址以及錯誤校驗(yàn)數(shù)據(jù),使得可以檢測到損壞的數(shù)據(jù)并重新傳輸。按照OSI物理層http://en.wikipedia.0rg/wiki/Physical_layer模型,以太網(wǎng)提供的服務(wù)直達(dá)并且包括數(shù)據(jù)鏈路層。
[0003]在使用以太網(wǎng)的大多數(shù)應(yīng)用中,有問題的實(shí)際數(shù)據(jù)至少被中央處理單元(CPU)復(fù)制一次。為什么數(shù)據(jù)會被復(fù)制至少一次是有很多原因的,包括:
[0004](i)CPU復(fù)制了內(nèi)核和用戶空間之間用于存儲器保護(hù)的數(shù)據(jù)。
[0005]( i i )以太網(wǎng)控制器通常對有效負(fù)載數(shù)據(jù)的位置有一定的排列限制。這些排列限制可能與在一個流送源中生成的、或在一個流送信宿中消耗的數(shù)據(jù)的屬性發(fā)生沖突。
[0006](iii)在構(gòu)建應(yīng)用中使用的軟件架構(gòu)通常具有自然分割成驅(qū)動程序,例如影響了如何管理有效負(fù)載緩沖器的以太網(wǎng)接口和用于流送源或信宿的驅(qū)動程序。
[0007]圖1圖示了包括共享互連106的典型流送系統(tǒng)100的框圖和數(shù)據(jù)傳送流。共享互連106可操作地耦合中央處理單元(CPU) 102、包括至少一個描述符列表110和有效負(fù)載緩沖器112的系統(tǒng)隨機(jī)存取存儲器(RAM) 108、以太網(wǎng)控制器104、以及流送外圍設(shè)備114。在所圖示的示例中,CPU102、以太網(wǎng)控制器104、系統(tǒng)RAM108以及流送外圍設(shè)備114各自經(jīng)由共享互聯(lián)106傳輸和接收信息。
[0008]在傳統(tǒng)的數(shù)據(jù)流送操作中,流送外圍設(shè)備114向CPU102指示它有可用的有效負(fù)載,例如在中斷信號158中指示CPU102。這導(dǎo)致CPU102復(fù)制一份有效負(fù)載,并將其存儲在系統(tǒng)RAM108中的緩沖器中,更具體地說是存儲在有效負(fù)載緩沖器112中。然后,該CPU102準(zhǔn)備了指向系統(tǒng)RAM108中的有效負(fù)載緩沖器112的位置的描述符154。以太網(wǎng)控制器104中的以太網(wǎng)媒體訪問控制(MAC)層從描述符列表110提取了使以太網(wǎng)控制器104參考有效負(fù)載緩沖器112中的正確有效負(fù)載的描述符156、讀取了描述符以及讀取了由該描述符所指的有效負(fù)載。
[0009]然而,當(dāng)數(shù)據(jù)在高帶寬流送期間被復(fù)制的時候,可能會出現(xiàn)問題,因?yàn)樵搹?fù)制過程消耗了大量的CPU資源。這意味著高帶寬流送阻止了使用更小的、更便宜的CPU內(nèi)核。而且,流送系統(tǒng)100會要求互連和存儲器上更高的吞吐量,因?yàn)樾枰獙?shù)據(jù)進(jìn)行多次傳送。所有這些因素都增加了流送系統(tǒng)的功耗。
【發(fā)明內(nèi)容】
[0010]如所附權(quán)利要求中所描述的,本發(fā)明提供了一種在流送系統(tǒng)中的數(shù)據(jù)流送的方法,例如以啟用高帶寬數(shù)據(jù)的流送,一種流送外圍設(shè)備以及一種控制器。
[0011]本發(fā)明的具體實(shí)施例在從屬權(quán)利要求中被闡述。
[0012]參照下文中描述的實(shí)施例,本發(fā)明的這些或其它方面將會很明顯并且被闡述。
【專利附圖】
【附圖說明】
[0013]參照附圖,僅僅通過舉例的方式,本發(fā)明的進(jìn)一步細(xì)節(jié)、方面和實(shí)施例將被描述。在附圖中,類似的參考數(shù)字被用于表示相同的或功能相似的元件。附圖中的元件為了簡單以及清晰而被圖示,并且不一定按比例繪制。
[0014]圖1圖示了已知流送系統(tǒng)的簡化框圖和數(shù)據(jù)傳送流。
[0015]圖2圖示了優(yōu)化流送系統(tǒng)中的數(shù)據(jù)傳送的示例流程圖。
[0016]圖3圖示了視頻流送系統(tǒng)的一部分的示例的簡化框圖。
[0017]圖4圖示了圖3的視頻流送系統(tǒng)的一部分的示例的進(jìn)一步更加詳細(xì)的框圖。
[0018]圖5圖示了包括了 CPU內(nèi)核的優(yōu)化的以太網(wǎng)照相機(jī)流送SOC (片上系統(tǒng))控制器的示例。
[0019]圖6圖示了以太網(wǎng)MAC (媒體訪問控制器)的框圖。
[0020]圖7圖示了圖5中的以太網(wǎng)照相機(jī)流送SOC采用的數(shù)據(jù)傳送流的進(jìn)一步簡化的示例。
[0021]圖8圖示了視頻流送系統(tǒng)的一部分的示例操作的簡化流程圖。
【具體實(shí)施方式】
[0022]現(xiàn)在將參照附圖描述本發(fā)明的示例,其中用于數(shù)據(jù)流送的方法和裝置的示例參照以太網(wǎng)實(shí)施被描述,該以太網(wǎng)實(shí)施包括了啟動其自身讀/寫事務(wù)的描述符模型。本發(fā)明的示例包括流送源和/或流送信宿。參照用于與任何網(wǎng)絡(luò)一起使用的流送應(yīng)用描述本發(fā)明的示例,諸如以太網(wǎng)(視頻)照相機(jī)、音頻流送節(jié)點(diǎn)(例如,以太網(wǎng)音頻放大器)或在通過網(wǎng)絡(luò)傳輸高帶寬傳感器數(shù)據(jù)(例如,雷達(dá)數(shù)據(jù))的節(jié)點(diǎn)。
[0023]關(guān)于兩個元件的組合描述了本發(fā)明的示例:(i)從由不同源生成的多個子緩沖器組成一個以太網(wǎng)幀的優(yōu)化的驅(qū)動程序軟件架構(gòu);以及(ii)用于管理從源/信宿到以太網(wǎng)控制器的流送的優(yōu)化的硬件架構(gòu)。特別是,描述了以下一種機(jī)制:該機(jī)制使得流送系統(tǒng)能夠降低CPU的參與,并且特別是在高帶寬流送期間降低CPU復(fù)制許多份數(shù)據(jù)。
[0024]然而,設(shè)想同樣的方法可被應(yīng)用到其它通信接口,該接口具有類似的描述符模型并且也可以啟動其自身的讀寫事務(wù)。通常,現(xiàn)代以太網(wǎng)控制器塊使用了某種形式的描述符模型。CPU內(nèi)核更新了那些描述符,然后以太網(wǎng)MAC可以自主地提取或?qū)懭朐摂?shù)據(jù),而不需要CPU接觸該數(shù)據(jù)。
[0025]與傳統(tǒng)的數(shù)據(jù)流操作相反,通過傳統(tǒng)的數(shù)據(jù)流操作,在CPU準(zhǔn)備了指向了系統(tǒng)RAM中的有效負(fù)載緩沖器的位置的描述符之前,向CPU內(nèi)核通知有效負(fù)載在外圍設(shè)備中是準(zhǔn)備好的以及將該有效負(fù)載復(fù)制到系統(tǒng)RAM中的緩沖器中,本發(fā)明的示例提出了一種處理器(諸如CPU),該處理器準(zhǔn)備網(wǎng)絡(luò)接口的報頭數(shù)據(jù),并準(zhǔn)備至少一個描述符,所述至少一個描述符指向至少一個報頭數(shù)據(jù)元件和尤其是位于流送外圍設(shè)備中的至少一個有效負(fù)載緩沖器元件。此后,本發(fā)明的示例提出控制器(諸如以太網(wǎng)媒體訪問控制器(MAC))讀取了所述至少一個描述符,并提取由該描述符所指的來自存儲器(諸如系統(tǒng)隨機(jī)存取存儲器(SRAM))的至少一個報頭數(shù)據(jù)元件以及來自流送外圍設(shè)備中的有效負(fù)載緩沖器的至少一個有效負(fù)載元件。
[0026]在一些示例中,該方法可能包括讀取流送外圍設(shè)備中的多個寄存器,以及響應(yīng)于此,確定與該流送外圍設(shè)備的有效負(fù)載緩沖器中的有效負(fù)載的位置相關(guān)的信息。在一些示例中,準(zhǔn)備網(wǎng)絡(luò)接口的報頭數(shù)據(jù)可能包括以下中的至少一個:生成單獨(dú)的報頭、更新網(wǎng)絡(luò)幀報頭數(shù)據(jù)。在一些示例中,流送外圍設(shè)備可以是包括視頻編碼器和存儲器的照相機(jī),其中有效負(fù)載包括圖像數(shù)據(jù)。在一些示例中,流送外圍設(shè)備或可以是PDI接口或音頻接口。
[0027]在一些示例中,所述至少一個報頭數(shù)據(jù)元件可以存儲在系統(tǒng)隨機(jī)存取存儲器(SRAM)中以及所述至少一個有效負(fù)載元件可以存儲在視頻解碼器輸出緩沖器中。在一些示例中,所述報頭數(shù)據(jù)元件和所述至少一個有效負(fù)載元件可以被存儲在存儲器中的不同的地址范圍中。
[0028]本發(fā)明的示例進(jìn)一步描述了一種用于在流送系統(tǒng)中使用的流送外圍設(shè)備,該流送系統(tǒng)包括處理器和經(jīng)由共享互連可操作地耦合到所述流送外圍設(shè)備的控制器。該流送外圍設(shè)備包括由描述符可識別的可尋址有效負(fù)載緩沖器區(qū),其中所述可尋址有效負(fù)載緩沖器區(qū)包括數(shù)據(jù)有效負(fù)載;以及可操作地耦合到所述可尋址有效負(fù)載緩沖器區(qū)的接口,其中所述可尋址有效負(fù)載緩沖器區(qū)被布置成可由所述控制器直接訪問,并且所述控制器穿過所述接口從所述流送外圍設(shè)備提取的所述數(shù)據(jù)有效負(fù)載是基于所述識別描述符。
[0029]本發(fā)明的示例進(jìn)一步描述了一種用于在流送系統(tǒng)中使用的控制器,該流送系統(tǒng)包括處理器和經(jīng)由共享互連可操作地耦合到所述控制器的流送外圍設(shè)備。該控制器包括邏輯電路,該邏輯電路被布置成讀取由所述處理器創(chuàng)建的至少一個描述符,所述至少一個描述符指向存儲器中的至少一個報頭數(shù)據(jù)元件和所述流送外圍設(shè)備中的至少一個有效負(fù)載緩沖器元件;以及提取模塊,該提取模塊可操作地耦合到所述邏輯電路,并且被布置成直接訪問由所述描述符所指的來自存儲器的所述至少一個報頭數(shù)據(jù)元件以及來自所述流送外圍設(shè)備中的所述有效負(fù)載緩沖器的所述至少一個有效負(fù)載元件。
[0030]在一些示例中,本發(fā)明所描述的以太網(wǎng)控制器可以至少部分在硬件中實(shí)現(xiàn),例如在集成電路器件中實(shí)現(xiàn),其中該集成電路器件包括在單一的集成電路封裝中的至少一個管芯。由于本發(fā)明所說明的實(shí)施例可以大部分是使用本領(lǐng)域所屬技術(shù)人員所熟知的電子組件和電路被實(shí)現(xiàn),所以不會在比上述所說明的認(rèn)為有必要的程度大的任何程度上解釋細(xì)節(jié)。對本發(fā)明基本概念的理解以及認(rèn)識是為了不混淆或偏離本發(fā)明所教之內(nèi)容。
[0031]圖2圖示了根據(jù)本發(fā)明的示例實(shí)施例的流送系統(tǒng)和相關(guān)聯(lián)的數(shù)據(jù)傳輸200。流送系統(tǒng)200包括與處理器共享的共享互連206,諸如CPU202、以太網(wǎng)控制器204、系統(tǒng)RAM(SRAM) 208 (包括具有至少描述符217、218和包括報頭數(shù)據(jù)213的一池報頭緩沖器的描述符列表210)、以及流送外圍設(shè)備214,尤其是包括了經(jīng)由共享互連206彼此可操作地耦合的存儲器/有效負(fù)載緩沖器212。在一個示例中,流送外圍設(shè)備214包括照相機(jī)。然而,在其它示例實(shí)施例中,流送外圍設(shè)備214可以包括視頻接口或音頻接口,例如以并行數(shù)據(jù)接口(PDI)的形式。在一個示例中,報頭數(shù)據(jù)213包括幀報頭數(shù)據(jù)。[0032]最初,一旦已經(jīng)生成一定數(shù)量的數(shù)據(jù),則流送外圍設(shè)備214生成中斷信號216。然后,CPU202讀取流送外圍設(shè)備214自身的多個寄存器,并據(jù)此確定與流送外圍設(shè)備214的緩沖器區(qū)212中的有效負(fù)載的位置相關(guān)的信息。然后,CPU生成用于網(wǎng)絡(luò)接口的幀報頭數(shù)據(jù),并準(zhǔn)備指向報頭數(shù)據(jù)213和有效負(fù)載緩沖器212的描述符217和218。生成的頭信息包含至少一個報頭片段,但也可以包括多個報頭元件,其中單獨(dú)的描述符被生成以用于那些多個報頭元件中的每一個。以太網(wǎng)控制器204讀取了 220的描述符217、218,并從SRAM208提取221該描述符217所指的第一報頭數(shù)據(jù)213,并且然后從有效負(fù)載緩沖器212提取222該描述符218所指的有效負(fù)載。
[0033]因此,本發(fā)明的示例提出了 CPU,該CPU準(zhǔn)備指向位于SRAM208中的報頭數(shù)據(jù)213和有效負(fù)載緩沖器212的單獨(dú)的描述符217、218。此后,本發(fā)明的示例提出以太網(wǎng)控制器204中的以太網(wǎng)媒體訪問控制(MAC)層從描述符列表210提取使以太網(wǎng)控制器204參考SRAM208中的報頭數(shù)據(jù)213和正確有效負(fù)載212的描述符。然后,以太網(wǎng)控制器204讀取了由描述符217所指的報頭數(shù)據(jù)213以及讀取了由那個描述符218所指的有效負(fù)載212。
[0034]尤其,在該示例中,CPU202不再需要將有效負(fù)載從流送外圍設(shè)備214復(fù)制到系統(tǒng)RAM208。相反,CPU202被布置成僅僅準(zhǔn)備報頭數(shù)據(jù)213和描述符217、218,使得以太網(wǎng)控制器204能夠提取有效負(fù)載212。以太網(wǎng)控制器204通過經(jīng)由描述符元件217、218控制可以從那些多個數(shù)據(jù)片段組成一個以太網(wǎng)幀。因此,對于高帶寬流送,圖2所示的示例將CPU202從系統(tǒng)200的流送功能中分離出來,從而允許在以上所示示例中利用的更小的、更便宜的CPU。
[0035]現(xiàn)在參照圖3,圖3圖示了視頻流送系統(tǒng)的一部分的示例的簡化框圖。在一個示例中,以太網(wǎng)應(yīng)用可以是主動安全和先進(jìn)駕駛輔助系統(tǒng)(ADAS),所述ADAS例如被配置成支持全景視圖輔助停放,該視圖旨在提供車輛周圍環(huán)境的高質(zhì)量視圖(通常是鳥瞰圖)。對于這樣的以太網(wǎng)應(yīng)用,多達(dá)五個基于CMOS并帶有廣透鏡的照相機(jī)305可以附著到車輛。圖3中的每一個照相機(jī)305可以經(jīng)由并行數(shù)字接口(未示出)連接到相應(yīng)的單個以太網(wǎng)流送設(shè)備310。在前保險杠的每一個角,典型的安裝可以具有一個照相機(jī),一個位于各自側(cè)鏡中以及另一個位于后方。所有的傳感器經(jīng)由開關(guān)315都被連接到執(zhí)行增強(qiáng)和圖像生成的中心融合電子控制單元(ECU) 320。
[0036]現(xiàn)在參照圖4,圖4圖示了諸如來自圖3的照相機(jī)305的多個照相機(jī)的進(jìn)一步更加詳細(xì)的框圖。圖像傳感器405接收圖像并將圖像數(shù)據(jù)提供給以太網(wǎng)流送設(shè)備410。原始數(shù)據(jù)可以被緩沖,并且顏色成分可以從YUV4:2:2到Y(jié)UV4:2:0垂直亞取樣。低延遲視頻編碼器(未示出)可以將圖像數(shù)據(jù)比如按照1:5/1:10的因數(shù)或更高壓縮到比特流中。這種壓縮不是無損的,因此,圖像的質(zhì)量通過更高的壓縮比被降級。然后,視頻比特流送在本發(fā)明的示例實(shí)施例的專用視頻比特流緩沖器中被緩沖,并經(jīng)由以太網(wǎng)物理層鏈路415傳輸?shù)介_關(guān)315,并且此后傳輸?shù)綀D3的中央融合E⑶320。
[0037]在一個示例中,如果不被光學(xué)地執(zhí)行,則中央融合E⑶320首先校正每一個圖像中的任何廣角變形。此后,中央融合ECU320執(zhí)行圖像的縫合操作,這可能類似于在如今的數(shù)碼相機(jī)上發(fā)現(xiàn)的特征。原則上,相鄰圖像的相似性可以例如通過運(yùn)行匹配過濾器被識別。在識別了圖像在幾何學(xué)上是如何適配之后,在一些示例中,有必要進(jìn)行一些后續(xù)處理以在重疊區(qū)域內(nèi)實(shí)現(xiàn)平滑的外觀。最后,中央融合E⑶320在三維網(wǎng)格模型上呈現(xiàn)了縫合圖像,該網(wǎng)格模型表示了生成最終圖像所選的視角??梢酝ㄟ^位于中央E⑶中的開關(guān)以點(diǎn)到點(diǎn)方式執(zhí)行遠(yuǎn)程照相機(jī)和中央融合ECU320之間的互連。在其它示例中,更多ADAS節(jié)點(diǎn)(例如,保險杠上的照相機(jī)和雷達(dá))可以具有兩個專用ADAS開關(guān)。
[0038]現(xiàn)在參照圖5,圖5圖示了優(yōu)化的以太網(wǎng)照相機(jī)流送SOC (片上系統(tǒng))500的示例框圖。在所圖示的示例中,除了別的之外,以太網(wǎng)流送器件500包括照相機(jī)505、視頻編碼器510、交叉開關(guān)(XBAR) 515,CPU內(nèi)核525、快速以太網(wǎng)控制器(FEC)模塊530、IEEE1588精確定時戳(PTP)模塊535、報頭數(shù)據(jù)545、有效負(fù)載數(shù)據(jù)550以及靜態(tài)隨機(jī)存取存儲器(SRAM)540。
[0039]在這個示例中,視頻數(shù)據(jù)被照相機(jī)505捕獲并流送550到視頻編碼器510。在這個示例中,照相機(jī)505包括照相機(jī)傳感器(每秒1280X800030幀以及10-12比特/像素)。該視頻編碼器510包括將視頻數(shù)據(jù)流送550到MJPEG編碼器和輸出緩沖器(未示出)的并行數(shù)據(jù)接口。MJPEG編碼器使用JPEG編碼對視頻數(shù)據(jù)進(jìn)行壓縮,并且然后將該編碼的數(shù)據(jù)存儲在輸出緩沖器中。以這種方式,圖像數(shù)據(jù)被編碼并傳遞給視頻編碼器510的輸出緩沖器。MJPEG編碼器進(jìn)一步將編碼后的數(shù)據(jù)分解成在以太網(wǎng)上可傳送的封裝。軟件被用于控制MJPEG編碼器,使得數(shù)據(jù)率可以被控制以防止輸出緩沖器區(qū)溢出。這是通過更改編碼的圖像質(zhì)量來實(shí)現(xiàn)的,從而減少了每幅圖像的字節(jié)數(shù)。
[0040]然后,視頻編碼器510向CPU525通知該數(shù)據(jù)是可用的。在這個示例中,CPU內(nèi)核525然后準(zhǔn)備SRAM540內(nèi)的幀報頭數(shù)據(jù)545以及準(zhǔn)備用于FEC模塊530的、指向報頭數(shù)據(jù)545和傳輸數(shù)據(jù)的描述符。CPU內(nèi)核525觸發(fā)FEC模塊530以從SRAM540提取任務(wù)描述。FEC模塊530然后從SRAM540獲得指令,該指令使得FEC模塊530能夠從SRAM540直接獲得報頭數(shù)據(jù)545以及從視頻編碼器510的輸出緩沖器直接獲得編碼數(shù)據(jù)550。有利的是,輸出緩沖器通過旁路CPU內(nèi)核525被FEC直接訪問,例如與已知架構(gòu)相比,CPU內(nèi)核525不需要從SRAM540復(fù)制數(shù)據(jù)。然后,F(xiàn)EC模塊530將數(shù)據(jù)550傳送到以太網(wǎng)+PTP模塊535,這就精確了時間戳以允許PTP堆(未示出)測量網(wǎng)絡(luò)延遲。
[0041]在這個示例實(shí)施例中,F(xiàn)EC幀的數(shù)據(jù)550駐留在FEC外部的存儲器中,在這種情況下,在視頻編碼器510的輸出緩沖器中。FEC通過訪問位于外部存儲器中(其可以是另外的SRAM)的緩沖器描述符而指向輸出緩沖器中的編碼數(shù)據(jù)。該緩沖器描述符包含起始地址(指針)、數(shù)據(jù)長度、以及狀態(tài)/控制信息(包含緩沖器的當(dāng)前狀態(tài))。
[0042]因此,使用所描述的架構(gòu),數(shù)據(jù)可以被實(shí)時流送,而不需要CPU直接參與數(shù)據(jù)傳送。通過使CPU內(nèi)核525遠(yuǎn)離實(shí)際數(shù)據(jù)傳輸(旁路內(nèi)核的數(shù)據(jù)公路),就阻止了數(shù)據(jù)復(fù)制,從而允許使用更小的CPU內(nèi)核525。
[0043]現(xiàn)在參照圖6,圖6圖示了圖5的示例快速以太網(wǎng)控制器(FEC)530的更加詳細(xì)的系統(tǒng)架構(gòu)和數(shù)據(jù)流。在該示例中,F(xiàn)EC530被設(shè)計成支持IOMbps和IOOMbps兩者的以太網(wǎng)/IEEE802.3網(wǎng)絡(luò)。在一些示例中,可能需要外部收發(fā)器接口和收發(fā)器功能以完成媒體接口。在這個示例中,F(xiàn)EC530可以支持三種不同的標(biāo)準(zhǔn)物理接口(MAC-PHY),以用于連接到外部以太網(wǎng)收發(fā)器(未示出)。在一些實(shí)例中,可以通過硬件和微碼的組合實(shí)現(xiàn)FEC530。
[0044]在這個示例中,F(xiàn)EC530包括多個子模塊。在圖6的FEC530中,采用了描述符605控制器;在一個示例中,它是基于精簡指令集計算機(jī)(RISC)的控制器,其可能例如提供FEC530中的下述功能中的一個或多個:[0045](i)初始化(例如,沒有被用戶或硬件初始化的那些內(nèi)部寄存器);
[0046](ii) DMA通道的高級控制(例如,啟動DMA傳送);
[0047](iii)解釋緩沖器描述符;
[0048]( iv)對于接收幀的地址識別;以及
[0049](V)生成傳輸碰撞回退定時器的隨機(jī)數(shù)。
[0050]隨機(jī)存取存儲器(RAM)610是FEC530中的所有數(shù)據(jù)流的聚焦點(diǎn)并被分解成傳輸和接收FIFO (未示出)。用戶數(shù)據(jù)流向DMA模塊625并且從DMA模塊625流出,從接收/傳輸FIFO流出和流向接收/傳輸FIFO。傳輸數(shù)據(jù)從傳輸FIFO流送向傳輸模塊615,以及接收數(shù)據(jù)從接收模塊620流送向接收FIFO。
[0051 ] 用戶可以通過從屬接口(SIF)子模塊630寫入位于每一個模塊中的控制寄存器來控制FEC530??刂坪蜖顟B(tài)寄存器(CSR)模塊635可以提供全局控制(例如,以太網(wǎng)重置和啟用)以及中斷處理寄存器。DMA模塊625可以支持/提供多個通道,從而允許傳輸數(shù)據(jù)、傳輸描述符、接收數(shù)據(jù)和接收描述符訪問以獨(dú)立地運(yùn)行。傳輸模塊615和接收模塊620可以提供以太網(wǎng)MAC功能(通過來自微碼的某些援助)。
[0052]用于FEC幀的數(shù)據(jù)可以駐留在FEC530外部的存儲器中。一幀的數(shù)據(jù)被放置在一個或多個緩沖器。與每一個緩沖器相關(guān)聯(lián)的是緩沖器描述符(BD),其包含起始地址(指針)、數(shù)據(jù)長度、和狀態(tài)/控制信息(其包含緩沖器的當(dāng)前狀態(tài))。為了允許最大用戶靈活性,BD也位于外部存儲器中并且被FEC DMA引擎讀入。
[0053]軟件通過分配/初始化存儲器以及初始化緩沖器描述符來產(chǎn)生緩沖器。設(shè)置RXBD [E]或TxBD [R]比特“產(chǎn)生了 ”緩沖器。給TDAR或RDAR的軟件寫入告訴FEC:緩沖器已被放置在外部存儲器中以分別用于傳輸數(shù)據(jù)業(yè)務(wù)或接收數(shù)據(jù)業(yè)務(wù)。硬件讀取了 BD并且在它們被產(chǎn)生之后“消耗”了緩沖器。在數(shù)據(jù)DMA完成之后并且緩沖器描述符狀態(tài)比特已被DMA引擎寫入之后,RXBD[E]或TxBD[R]比特被硬件清除以用信號通知緩沖器已“被消耗”。軟件可以輪詢BD以檢測緩沖器何時被消耗或可以依靠緩沖器/幀中斷。
[0054]這些緩沖器然后被驅(qū)動程序處理,并返回到空閑列表中。
[0055]利用傳輸緩沖器描述符的驅(qū)動程序/DMA操作
[0056]在這個示例的操作模式中,數(shù)據(jù)被呈現(xiàn)給FEC以用于通過將其布置在通道的傳輸BD所引用的緩沖器中進(jìn)行傳輸。在軟件驅(qū)動程序設(shè)置了用于一幀的緩沖器之后,它設(shè)置了對應(yīng)的BD。在傳輸BD過程中,用戶初始化了第一長字中的控制比特和長度(以字節(jié)為單位)、以及第二長字中的緩沖器區(qū)指針。設(shè)置用于傳輸幀的BD的最后的步驟是設(shè)置幀的第一 BD中的R比特。在這之后,驅(qū)動程序?qū)懭隩DAR,其觸發(fā)FEC輪詢該環(huán)中的下一個BD。當(dāng)緩沖器的DMA是完整的時候,以太網(wǎng)控制器通過清除就緒比特(R比特)確認(rèn)傳輸。
[0057]多個緩沖器中的傳輸幀
[0058]通常,傳輸幀在多個緩沖器之間被劃分。例如,在一個緩沖器中可以具有應(yīng)用有效負(fù)載,在第二緩沖器中具有傳輸控制協(xié)議(TCP)報頭,在第三緩沖器中具有IP報頭,以及在第四緩沖器中具有以太網(wǎng)/IEEE802.3報頭。本質(zhì)上,本發(fā)明的示例描述了從多個片段構(gòu)造的以太網(wǎng)幀,特別是使用由比如視頻編碼器生成的有效負(fù)載和由CPU生成的報頭。這兩個數(shù)據(jù)元件駐留在不同的位置(例如,SRAM和視頻編碼器輸出緩沖器),并通過使用兩個BD(緩沖器描述符),F(xiàn)EC將組裝一個完整的以太網(wǎng)幀。[0059]在一些示例中,F(xiàn)EC沒有預(yù)先考慮以太網(wǎng)報頭(目的地地址、源地址、長度/類型字段),因此其必須由傳輸緩沖器中的一個中的驅(qū)動程序提供。FEC可以將以太網(wǎng)循環(huán)冗余校驗(yàn)(CRC)附加到該幀。CRC是由FEC附加還是由驅(qū)動程序附加是由傳輸BD中的TC比特確定的,其中該TC比特必須由驅(qū)動程序設(shè)置。
[0060]驅(qū)動程序(傳輸BD軟件生產(chǎn)商)以完整的傳輸巾貞立刻給到硬件這樣的方式設(shè)置傳輸BD。如果傳輸幀包括三個緩沖器,則BD首先被指針、長度和控制比特初始化,并且然后傳輸BD [R]比特按反向順序(第3、第2、第1BD)被設(shè)置為I以確保完整的幀在DMA開始之前在存儲器中是準(zhǔn)備好的。如果傳輸BD按順序被設(shè)置,則DMA控制器在使第二個可用之前提供第一個BD,這就可能導(dǎo)致傳輸FIFO欠載。
[0061]在FEC530,驅(qū)動程序向DMA模塊625通知:通過寫入TDAR寄存器,新的傳輸幀是可用的。當(dāng)該寄存器被寫入(數(shù)據(jù)值不顯著)的時候,F(xiàn)EC RISC告訴DMA讀取環(huán)中的下一個傳輸BD。在開始之后,RISC+DMA繼續(xù)按順序讀取和解釋傳輸BD以及DMA相關(guān)聯(lián)的緩沖器,直到傳輸BD遇到“R”比特=0。在這一點(diǎn)上,F(xiàn)EC再一次輪詢這個BD。如果第二次“R”比特=0,那么RISC停止傳輸描述符讀取過程,直到軟件設(shè)置另一個傳輸幀并寫入TDAR。
[0062]當(dāng)每個傳輸緩沖器的DMA模塊625完成的時候,DMA模塊625寫回BD以清除“R”比特,這指示硬件消費(fèi)者完成緩沖器。
[0063]除了傳輸側(cè)緩沖器,在一些示例中,驅(qū)動程序架構(gòu)可以被配置成處理用于接收側(cè)的緩沖器的分配和釋放。在接收側(cè)中,緩沖器為以太網(wǎng)MAC驅(qū)動程序所擁有。一旦已經(jīng)接收到新的數(shù)據(jù),則該緩沖器通常移交給流送應(yīng)用(例如,音頻放大器)。這意味著該緩沖器現(xiàn)在從隊列中移除,其中接收數(shù)據(jù)從該隊列被遞送。當(dāng)數(shù)據(jù)被流送外圍設(shè)備讀取的時候,將不再需要該數(shù)據(jù),并且該緩沖器被優(yōu)選配置成將緩沖器返回到該接收隊列。然而,以太網(wǎng)驅(qū)動程序和流送外圍設(shè)備驅(qū)動程序是不同的軟件實(shí)體,并且因此,如本領(lǐng)域所已知的,可以包括同步機(jī)制以管理接收過程。
[0064]現(xiàn)在參照圖7,圖7圖示了視頻流送系統(tǒng)的一部分的示例的進(jìn)一步簡化的示例框圖700。該簡化的示例框圖700包括照相機(jī),比如圖5的照相機(jī)505,它將原始圖像數(shù)據(jù)傳輸?shù)揭曨l編碼器705。然后,視頻編碼器705編碼原始圖像數(shù)據(jù)并將編碼的原始圖像數(shù)據(jù)傳輸?shù)捷敵鼍彌_器710。然后,視頻編碼器705向CPU525通知該數(shù)據(jù)是可用的。CPU525生成了至少一個網(wǎng)絡(luò)幀報頭,并準(zhǔn)備系統(tǒng)RAM540中的至少一個描述符。在540,CPU525向FEC530通知:指令在SRAM中是可用的。根據(jù)本發(fā)明的示例,然后,基于所述指令,F(xiàn)EC530從SRAM獲得報頭數(shù)據(jù)并且從輸出緩沖器710直接獲得編碼的數(shù)據(jù)。然后,F(xiàn)EC530將幀數(shù)據(jù)和獲得的數(shù)據(jù)傳輸?shù)揭蕴W(wǎng)和PTP功能535。在這個示例中,報頭數(shù)據(jù)可以位于SRAM540中,并且視頻數(shù)據(jù)可以位于輸出緩沖器710中。在這個示例中,因此,這些元件位于視頻流送系統(tǒng)中的不同塊中。在這個示例中,SRAM540位于地址0x4000 0000處,并且輸出緩沖器710位于地址0x5000 0000處。因此,包括至少報頭數(shù)據(jù)和視頻數(shù)據(jù)的以太網(wǎng)幀中的數(shù)據(jù)將起源于系統(tǒng)中不同的地址。因此,一個以太網(wǎng)幀的單獨(dú)子緩沖器不應(yīng)當(dāng)具有任何要求是連續(xù)的(例如,在地址空間中)。
[0065]現(xiàn)在參照圖8,圖8圖示了視頻流送系統(tǒng)的一部分的示例操作的簡化流送圖800。示例流程圖在805開始,其中照相機(jī)被開啟并且在810中照相機(jī)將原始圖像數(shù)據(jù)傳輸?shù)揭曨l編碼器。視頻編碼器然后在815對原始圖像數(shù)據(jù)進(jìn)行編碼并傳輸編碼的原始圖像數(shù)據(jù)。視頻編碼器然后在818向CPU通知該數(shù)據(jù)是可用的。在820,CPU準(zhǔn)備幀報頭(例如,通過更新至少一個幀頭,或準(zhǔn)備至少一個單獨(dú)的報頭數(shù)據(jù)元件來準(zhǔn)備以太網(wǎng)、IP、UDP、RTP或一些其它報頭),并將它們存儲在存儲器中,諸如內(nèi)部SRAM。在830,CPU為FEC準(zhǔn)備了至少兩個緩沖器描述符(BD),一個或多個指向SRAM中的報頭以及一個指向視頻編碼器輸出緩沖器內(nèi)部的有效負(fù)載。在832,CPU向FEC通知:至少一個描述符在SRAM中是可用的。根據(jù)本發(fā)明的示例,然后,在835,基于指令,F(xiàn)EC直接從輸出緩沖器獲得編碼的數(shù)據(jù)。然后,在840,F(xiàn)EC把獲得的數(shù)據(jù)傳輸?shù)揭蕴W(wǎng)和PTP塊,并且流程圖在845結(jié)束。
[0066]在前面的說明中,參照本發(fā)明實(shí)施例的特定示例已經(jīng)對本發(fā)明進(jìn)行了描述。然而,將明顯的是,在不脫離如所附權(quán)利要求中所闡述的本發(fā)明的更寬精神及范圍的情況下,可做出各種修改和變化。
[0067]如在此討論的連接可以是適于例如經(jīng)由中間設(shè)備傳輸來自或去往相應(yīng)的節(jié)點(diǎn)、單元或設(shè)備的信號的任何類型的連接。因此,除非暗示或另外表明,所述連接例如可以是直接連接或間接連接。所述連接可以被圖示或描述為涉及單一連接、多個連接、單向連接、或雙向連接。然而,不同實(shí)施例可以改變連接的實(shí)現(xiàn)。例如,可以使用單獨(dú)單向連接而不是雙向連接,并且反之亦然。而且,多個連接可以被替換為連續(xù)地或以時間復(fù)用方式傳輸多個信號的單一連接。同樣地,攜帶多個信號的單一連接可以被分離成攜帶這些信號的子集的各種不同的連接。因此,存在用于傳輸信號的許多選項(xiàng)。
[0068]本發(fā)明所描述的每一個信號可以被設(shè)計為正邏輯或負(fù)邏輯。在負(fù)邏輯信號的情況下,所述信號是低活性,其中所述邏輯真狀態(tài)對應(yīng)于邏輯電平零。在正邏輯信號的情況下,所述信號是高活性,其中所述邏輯真狀態(tài)對應(yīng)于邏輯電平I。注意,在此描述的任何信號可以被設(shè)計為負(fù)邏輯信號或正邏輯信號。因此,在替代實(shí)施例中,被描述為正邏輯信號的那些信號可被實(shí)施為負(fù)邏輯信號,以及被描述為負(fù)邏輯信號的那些信號可被實(shí)施為正邏輯信號。
[0069]本領(lǐng)域技術(shù)人員將認(rèn)識到:邏輯塊之間的界限僅僅是說明性的并且替代實(shí)施例可以合并邏輯塊或電路元件或在各種邏輯塊或電路元件上強(qiáng)加替代的分解功能。因此,應(yīng)了解,在此描述的架構(gòu)僅僅是示例性的,并且事實(shí)上可以實(shí)施實(shí)現(xiàn)相同功能的很多其它架構(gòu)。
[0070]為了實(shí)現(xiàn)相同功能的任何組件的布置是有效地“關(guān)聯(lián)”使得所需的功能得以實(shí)現(xiàn)。因此,在此組合以實(shí)現(xiàn)特定功能的任何兩個元件可以被看作彼此“相關(guān)聯(lián)”使得所需的功能得以實(shí)現(xiàn),而不論架構(gòu)或中間元件。同樣地,如此關(guān)聯(lián)的任何兩個組件還可以被認(rèn)為是彼此被“可操作連接”或“可操作耦合”以實(shí)現(xiàn)所需的功能。
[0071]此外,本領(lǐng)域所屬技術(shù)人員將認(rèn)識到以上描述的操作之間的界限只是說明性的。多個操作可以組合成單一的操作,單一的操作可以分布在附加操作中并且可以至少部分地在時間上重疊地執(zhí)行操作。而且,替代實(shí)施例可以包括特定操作的多個示例,并且操作的順序在各種其它實(shí)施例中可以更改。
[0072]又如,示例或其中的一部分可能作為物理電路的軟或代碼表征被實(shí)現(xiàn),或作為能夠轉(zhuǎn)化成物理電路的邏輯表征,例如在任何合適類型的硬件描述語言中被實(shí)現(xiàn)。
[0073]此外,本發(fā)明不限定在一個非程序化硬件中被實(shí)現(xiàn)的物理器件或單元,但也可以應(yīng)用在可編程器件或單元中。這些器件或單元通過操作能夠執(zhí)行所需的器件功能。該執(zhí)行是根據(jù)合適的程序代碼,例如,主機(jī)、微型計算機(jī)、服務(wù)器、工作站、個人電腦、筆記本、個人數(shù)字助理、電子游戲、汽車和其它嵌入式系統(tǒng)、手機(jī)和其它無線器件,在本申請中通常表示“計算機(jī)系統(tǒng)”。
[0074]然而,其它修改、變化和替代也是可能的。說明書和附圖相應(yīng)地被認(rèn)為是從說明性的而不是嚴(yán)格意義上來講的。
[0075]在權(quán)利要求中,放置在括號之間的任何參照符號不得被解釋為限制權(quán)利要求。單詞“包括”不排除除了權(quán)利要求中列出的那些之外的其它元件或步驟的存在。此外,如在此使用的詞語“一”或“一個”被定義為一個或不止一個。而且,即使當(dāng)同一權(quán)利要求包括介紹性短語“一個或多個”或“至少一個”以及諸如“一”或“一個”的不定冠詞時,在權(quán)利要求中諸如“至少一個”以及“一個或多個”的介紹性短語的使用也不應(yīng)該被解釋成暗示通過不定冠詞“一”或“一個”引入的其它權(quán)利要求元素將包括這樣介紹的權(quán)利要求元素的任何特定權(quán)利要求限制成僅包含一個這樣的元素的發(fā)明。對于定冠詞的使用也是如此。除非另有說明,使用諸如“第一”以及“第二”的術(shù)語來任意地區(qū)分這樣的術(shù)語描述的元素。因此,這些術(shù)語不一定旨在指示這樣的元素的時間或其它優(yōu)先次序。在相互不同的權(quán)利要求中記載某些措施的事實(shí)并不指示這些措施的組合不能被用于獲取優(yōu)勢。
【權(quán)利要求】
1.一種在流送系統(tǒng)中的數(shù)據(jù)流送的方法,所述流送系統(tǒng)包括經(jīng)由共享互連可操作地耦合到流送外圍設(shè)備的控制器,所述方法包括,在所述控制器處: 接收至少一個描述符,所述至少一個描述符指向存儲器中的至少一個報頭數(shù)據(jù)元件和所述流送外圍設(shè)備中的至少一個有效負(fù)載緩沖器元件; 由所述控制器讀取所述至少一個描述符; 由所述控制器提取由所述描述符所指的來自存儲器的所述至少一個報頭數(shù)據(jù)元件以及來自所述流送外圍設(shè)備中的所述有效負(fù)載緩沖器的所述至少一個有效負(fù)載元件。
2.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括: 從所述流送外圍設(shè)備獲得信息;以及 響應(yīng)于此,確定與所述流送外圍設(shè)備的所述有效負(fù)載緩沖器中的所述有效負(fù)載的位置相關(guān)的信息。
3.根據(jù)權(quán)利要求1或權(quán)利要求2所述的方法,其中所述處理器是中央處理單元內(nèi)核。
4.根據(jù)任何前述權(quán)利要求所述的方法,其中準(zhǔn)備用于所述網(wǎng)絡(luò)接口的報頭數(shù)據(jù)包括以下中的至少一個:生成單獨(dú)的報頭、更新網(wǎng)絡(luò)幀報頭數(shù)據(jù)。
5.根據(jù)任何前述權(quán)利要求所述的方法,其中所述至少一個報頭數(shù)據(jù)元件被存儲在系統(tǒng)隨機(jī)存取存儲器(SRAM)中,并且所述至少一個有效負(fù)載元件被存儲在流送外圍設(shè)備的有效負(fù)載緩沖器中。
6.根據(jù)權(quán)利要求5所述的方法,其中所述報頭數(shù)據(jù)元件和所述至少一個有效負(fù)載元件被存儲在存儲器中的不同地址范圍中。
7.根據(jù)任何前述權(quán)利要求所述的方法,其中所述控制器是以太網(wǎng)控制器。
8.根據(jù)任何前述權(quán)利要求所述的方法,其中所述流送外圍設(shè)備是包括視頻編碼器和存儲器的照相機(jī),并且所述有效負(fù)載包括圖像數(shù)據(jù)。
9.根據(jù)任何前述權(quán)利要求所述的方法,其中所述流送外圍設(shè)備是視頻接口或音頻接□。
10.一種用于在流送系統(tǒng)中使用的流送外圍設(shè)備,所述流送系統(tǒng)包括處理器和經(jīng)由共享互連可操作地耦合到所述流送外圍設(shè)備的控制器,其中所述流送外圍設(shè)備包括: 由描述符可識別的可尋址有效負(fù)載緩沖器區(qū),其中所述可尋址有效負(fù)載緩沖器區(qū)包括數(shù)據(jù)有效負(fù)載; 可操作地耦合到所述可尋址有效負(fù)載緩沖器區(qū)的接口,其中所述可尋址有效負(fù)載緩沖器區(qū)被布置成可由所述控制器直接訪問,并且所述控制器穿過所述接口從所述流送外圍設(shè)備提取的所述數(shù)據(jù)有效負(fù)載是基于所述識別描述符。
11.根據(jù)權(quán)利要求10所述的流送外圍設(shè)備,其中所述流送外圍設(shè)備是包括視頻編碼器和存儲器的照相機(jī),并且所述有效負(fù)載包括圖像數(shù)據(jù)。
12.根據(jù)權(quán)利要求10所述的流送外圍設(shè)備,其中所述流送外圍設(shè)備是視頻接口或音頻接口。
13.一種主動安全和先進(jìn)駕駛輔助系統(tǒng)(ADAS),所述系統(tǒng)包括前述權(quán)利要求10-12中任一項(xiàng)所述的流送外圍設(shè)備。
14.一種用于在流送系統(tǒng)使用的控制器,所述流送系統(tǒng)包括處理器和經(jīng)由共享互連可操作地耦合到所述控制器的所述流送外圍設(shè)備,其中所述控制器包括:邏輯電路,所述邏輯電路被布置成讀取由所述處理器創(chuàng)建的至少一個描述符,所述至少一個描述符指向存儲器中的至少一個報頭數(shù)據(jù)元件和所述流送外圍設(shè)備中的至少一個有效負(fù)載緩沖器元件;以及 提取模塊,所述提取模塊可操作地耦合到所述邏輯電路,并且被布置成直接訪問由所述描述符所指的來自存儲器的所述至少一個報頭數(shù)據(jù)元件以及來自所述流送外圍設(shè)備中的所述有效負(fù)載緩沖器的所述至少一個有效負(fù)載元件。
15.根據(jù)權(quán)利要求14所述的控制器,其中所述邏輯電路被布置成從所述流送外圍設(shè)備獲得信息,并且響應(yīng)于此,確定與所述有效負(fù)載緩沖器中的所述有效負(fù)載元件的位置相關(guān)的信息。
【文檔編號】H04L12/801GK103841039SQ201310597839
【公開日】2014年6月4日 申請日期:2013年11月22日 優(yōu)先權(quán)日:2012年11月22日
【發(fā)明者】海因茨·弗羅貝爾, 斯特凡·辛格爾, 約亨·格斯特 申請人:飛思卡爾半導(dǎo)體公司