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