專利名稱:對讀取和排序數(shù)據(jù)分組的多個分析裝置進行操作的設(shè)備、組件和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及并行讀取/分析數(shù)據(jù)分組、對分組排序并以所希望的順序順序輸出這些分組的方式。
發(fā)明內(nèi)容
在第一方面,本發(fā)明涉及以預(yù)定順序?qū)臄?shù)據(jù)連接接收到的多個數(shù)據(jù)分組進行排序和輸出的設(shè)備,該設(shè)備包括多個分析單元,每個分析單元包括第一裝置,用于從所述數(shù)據(jù)連接接收數(shù)據(jù)分組,第二裝置,用于從另一分析單元接收數(shù)據(jù)分組,用于輸出第一接收裝置和第二接收裝置接收到的數(shù)據(jù)分組的裝置,以及控制單元,包括裝置,用于在一個時間點處,確定所述第一接收裝置和/或所述第二接收裝置是否已接收到數(shù)據(jù)分組,如果在所述時間點處,已由所述第一接收裝置和所述第二接收裝置接收到數(shù)據(jù)分組,則確定兩個數(shù)據(jù)分組的順序,并指示所述輸出裝置以所確定的順序輸出所述兩個數(shù)據(jù)分組,以及如果在所述時間點處,僅從所述第一接收裝置和所述第二接收裝置中的一個接收到數(shù)據(jù)分組,則等待預(yù)定的時間段,以及如果在所述預(yù)定的時間段內(nèi)或者之后,已由所述第一接收裝置和所述第二接收裝置中的另一個接收到數(shù)據(jù)分組,則確定兩個數(shù)據(jù)分組的順序,并指示所述輸出裝置以所確定的順序輸出所述兩個數(shù)據(jù)分組,否則,在預(yù)定的時間段之后,指示所述輸出裝置輸出接收到的數(shù)據(jù)分組。在當前上下文中,該設(shè)備可以是單個外殼內(nèi)的單片硬件,或者可以通過被互連以交換數(shù)據(jù)的多個分開的單元形成。該交換可以遵循任何數(shù)據(jù)傳輸協(xié)議,例如,TCP、以太網(wǎng)、Bluetooth等,并使用任何類型的數(shù)據(jù)傳輸(有線或無線的)。此外,可以以單片的硬件提供分析單元,例如,由分開的PCB、處理器、FPGA等來具體化每個分析單元。備選地,同一個PCB/處理器/FPGA可以形成多個分析單元。此外,控制單元可以被集成到分析單元的其他部分中,或者可以是單獨的實體。數(shù)據(jù)分組可以是要通過網(wǎng)絡(luò)、數(shù)據(jù)線纜、數(shù)據(jù)總線、干線等發(fā)送或傳輸?shù)娜魏晤愋偷臄?shù)據(jù)單元。正常來說,數(shù)據(jù)單元符合一個或多個數(shù)據(jù)標準,例如,作為傘的以太網(wǎng)標準,在該標準下存在多種不同的標準或數(shù)據(jù)分組類型,例如,UDP和TCP數(shù)據(jù)分組。數(shù)據(jù)分組常常 具有多個不同的信息項或類型,例如,地址數(shù)據(jù)、有效載荷等,每個都位于數(shù)據(jù)分組內(nèi)很好地定義或者已知的位置處。這種位置和類型通常將基于數(shù)據(jù)分組類型而不同,然而常??梢杂蓪嶋H的數(shù)據(jù)分組來確定數(shù)據(jù)分組類型、因而確定其各自內(nèi)容的位置,其中,可以之后在分析中推導(dǎo)、改變和/或使用單獨的數(shù)據(jù)項,例如,地址數(shù)據(jù)和/或有效載荷。類型或標準可以根據(jù)數(shù)據(jù)分組進行直接推導(dǎo)(例如當分組的特定數(shù)據(jù)項標識了類型/標準時),或者可以根據(jù)從數(shù)據(jù)分組中推導(dǎo)出的數(shù)據(jù)進行推導(dǎo)(例如,基于對數(shù)據(jù)分組的數(shù)據(jù)項的類型和位置的識別,以及后續(xù)對數(shù)據(jù)分組的類型或標準的確定,其中,可以在這種位置處找到這種數(shù)據(jù))。在該上下文中,數(shù)據(jù)連接可以是使用任何數(shù)據(jù)傳輸協(xié)議的任何類型的數(shù)據(jù)傳輸連接(例如數(shù)據(jù)線纜或干線),可以是有線和/或無線的連接到計算機、服務(wù)器、網(wǎng)絡(luò)或存儲器。
可以在數(shù)據(jù)連接上轉(zhuǎn)發(fā)數(shù)據(jù)分組,并以任何方式及使用任何分發(fā)方案等將其饋送到單獨的第一裝置。在當前上下文中,數(shù)據(jù)分組的排序可以是這樣的從數(shù)據(jù)連接接收數(shù)據(jù)分組,或者將數(shù)據(jù)分組饋送給數(shù)據(jù)連接,例如,經(jīng)由數(shù)據(jù)連接從存儲器讀出數(shù)據(jù)分組的順序。優(yōu)選地,該順序也是可根據(jù)數(shù)據(jù)分組確定的,以使分析單元在后續(xù)能夠根據(jù)任何兩個數(shù)據(jù)分組來確定數(shù)據(jù)分組在該順序中的相對位置,并因而確定首先要輸出哪個數(shù)據(jù)分組??梢酝ㄟ^多種方式并出于多種原因?qū)?shù)據(jù)分組排序。通常,計算機之間的數(shù)據(jù)交換是文件傳遞、TCP傳遞、VoIP等,其中,單獨的分組的順序是重要的。通常,這種傳遞被稱為流。正常來說,數(shù)據(jù)分組的流是從單個發(fā)射機向一個或多個接收機發(fā)送的數(shù)據(jù)分組序列。這些數(shù)據(jù)分組涉及例如作為分組的有效載荷的、在更小的部分中發(fā)送的單個文件等。然后,發(fā)射機和接收機、或者任何中間網(wǎng)絡(luò)單元通常將具有也在分組中表示出的地址。此外,取決于單獨的數(shù)據(jù)分組標準,其他的流標識信息可以出現(xiàn)在數(shù)據(jù)分組中。因而,可以基于例如地址和/或流標識信息來標識流,由此,如果始終在使用,可以推導(dǎo)出相同的信息,并且任何后續(xù)的過程可以僅根據(jù)該信息來標識該流。在另一情況下,可以向數(shù)據(jù)分組提供確定其順序的信息,例如,序列號或時間戳。因而,可以使用該信息來對分組排序。時間戳的優(yōu)點在于,任何兩個分組可以相對于彼此排序。當順序地應(yīng)用時,序列號還具有如下優(yōu)勢如下面進一步描述的,可以確定兩個分組在序列中是否相鄰,或者附加的分組是否要位于這兩個分組之間。使用多個第一裝置。然而,例如由于數(shù)據(jù)分組不需要具有相同的大小這一事實,這些裝置可以不同的速度或延遲來操作,由此,分析單元接收數(shù)據(jù)分組的順序可能與從存儲器輸出數(shù)據(jù)分組的順序不對應(yīng)。序列,為了設(shè)備以所希望的順序輸出數(shù)據(jù)分組,期望重新排序。當存在多個分析單元時,可以執(zhí)行并行的讀取/解除隊列和/或排序??梢允褂萌魏螖?shù)目的分析單元,例如,2、3、4、5、6、7、8、10、15、20或更多。如下面進一步描述的,所有這些分析單元可以是相同的或者近似相同的,或者可以利用不同的操作,將其示例化或創(chuàng)建為不同的電路。自然,可以使用任何所希望的公共或?qū)S袇f(xié)議(例如,以太網(wǎng)、Bluetooth、TCP、PCIe等),通過任何方式(例如,經(jīng)由有線和/或無線數(shù)據(jù)連接/總線),將數(shù)據(jù)分組從連接/PC/服務(wù)器/網(wǎng)絡(luò)/存儲器向單獨的第一接收裝置傳輸。第一裝置可以各從連接直接接收數(shù)據(jù)分組,或者將第一裝置設(shè)置為菊花鏈,其中,沿著菊花鏈轉(zhuǎn)發(fā)數(shù)據(jù)分組,直到到達正確的第一裝置。通過第二接收裝置和輸出裝置來執(zhí)行數(shù)據(jù)分組在分析單元之間的傳遞??梢曰谌魏螀f(xié)議(例如,以太網(wǎng)、Bluetooth、PCIe或者在PC主板上或者在內(nèi)部PC資源之間使用的其他協(xié)議,等等),使用任何類型的數(shù)據(jù)傳遞(有線的或者無線的、模擬的或者數(shù)字的、串行的或者并行的)來執(zhí)行該傳遞。當并行接收數(shù)據(jù)分組(其中,可能出現(xiàn)不同的處理延遲或傳輸延遲)時,希望能夠再次對數(shù)據(jù)分組排序。根據(jù)本發(fā)明,在一個時間點處,確定數(shù)據(jù)分組是已經(jīng)由第一裝置和第二裝置二者接收到,還是僅由其中的一個接收到。如果還沒有接收到數(shù)據(jù),則不需要動作。自然,下面還將進一步描述,優(yōu)選地,執(zhí)行該確定和后續(xù)動作多次,例如, 期性地執(zhí)行。備選地,可以每次接收到數(shù)據(jù)分組時,都運行該過程。如果在第一和第二接收裝置上均接收到數(shù)據(jù)分組,則可以沒有延遲地輸出這些數(shù)據(jù)分組,以及在順序中排在第一的數(shù)據(jù)分組被首先輸出。自然,第一裝置和第二裝置之一或二者可以已經(jīng)接收到多個數(shù)據(jù)分組。在該情況下,在前兩個數(shù)據(jù)分組之間做出確定,然后輸出其中最早的分組。然后,可以再次對前兩個數(shù)據(jù)分組做出確定,即,來自接收到“最早”的數(shù)據(jù)分組的第一或第二裝置的下一個分組,以此類推。如果在該時間點處僅接收到單個數(shù)據(jù)分組,則可以從第一裝置和第二裝置中的另一個接收另一數(shù)據(jù)分組,如果在沿著該另一數(shù)據(jù)分組所采用的路徑的接收中的延遲長于接收到的數(shù)據(jù)分組所采用的路徑,該另一數(shù)據(jù)分組實際可以在順序上更早。因而,不立即輸出已經(jīng)接收到的分組,而是處理單元等待預(yù)定的時間段,看第一裝置和第二裝置中的另一個是否接收到數(shù)據(jù)分組。如果接收到,則如上所述排序并輸出數(shù)據(jù)分組。如果沒有,則輸出已經(jīng)接收到的數(shù)據(jù)分組。自然,如果從第一裝置和第二裝置中的另一個接收到數(shù)據(jù)分組,則控制單元需要在輸出該數(shù)據(jù)分組之前等待完整的時間段。一般而言,可以根據(jù)需要選擇該預(yù)定的時間段。大的時間段會需要大的緩沖存儲器,然而提供了對所有分組排序的更高概率,而較低的時間段則相反。當前,預(yù)定的時間段將在0和IOOOms之間,例如,在0. I和IOOms之間,優(yōu)選地,0. 2至50ms之間。如下面將要進一步描述的,在不同的分析單元之間,預(yù)定的時間段可以不同。取決于該情況和設(shè)置,輸出裝置可以向另一分析單元的第二接收裝置或者向另一單元輸出數(shù)據(jù)分組。在一個情況下,多個分析單元位于具有兩個端的菊花鏈結(jié)構(gòu)中,第一分析單元不從位于一端的另一分析單元接收數(shù)據(jù)分組,以及第二分析單元從菊花鏈向位于另一端的接收數(shù)據(jù)連接輸出數(shù)據(jù)分組。在該方面,菊花鏈是這樣的設(shè)置其中,分析單元適于沿著線性結(jié)構(gòu),從分析單元到分析單元轉(zhuǎn)發(fā)數(shù)據(jù)分組,就像是串上的珍珠。自然,數(shù)據(jù)分組都在菊花鏈的一端處從菊花鏈輸出,以及在菊花鏈的另一端處的分析單元不從另一分析單元、而是僅從數(shù)據(jù)連接接收數(shù)據(jù)分組。通過這種方式,執(zhí)行了并行的接收/讀取/解除隊列,同時按順序執(zhí)行的數(shù)據(jù)分組的單個串行/順序的輸出。在該方面,注意到,可以通過與分析單元之間所使用的不同的方式或者使用不同類型的數(shù)據(jù)通信(例如,協(xié)議)來執(zhí)行向進行接收的數(shù)據(jù)連接輸出數(shù)據(jù)分組。進行接收的數(shù)據(jù)連接可以是到任何類型的數(shù)據(jù)網(wǎng)絡(luò)或者到任何類型的計算機的任何類型的數(shù)據(jù)連接(例如,有線或無線連接),并使用任何已知的數(shù)據(jù)通信類型和協(xié)議。通常,數(shù)據(jù)連接是計算機總線(例如,在計算機內(nèi)部使用的總線類型)或者到計算機網(wǎng)絡(luò)、WAN、LAN、WWW等的以太網(wǎng)連接。在特別優(yōu)選的實施例中,不同分析單元的預(yù)定時間段是不同的。這通常將是由于以下事實在分析單元之間,從數(shù)據(jù)連接至分析單元的第一接收裝置和第二接收裝置的數(shù)據(jù)分組傳輸?shù)难舆t中的差異可以是不同的。優(yōu)選地,特別是在以上的菊花鏈示例中,時間段隨著位于實際的分析單元和第二分析單元之間的分析單元的數(shù)目而增大。一個示例是在第一裝置中從數(shù)據(jù)連接接收數(shù)據(jù)分組的所有分析單元中,可以存在著相同的延遲d-link。然而,第二裝置接收到的數(shù)據(jù)分組將取決于分析單元在菊花鏈上的位置而不同。在分析單元的分析中以及在數(shù)據(jù)分組的輸出中,可以看到延遲d-det。同樣地,接收到的分組可能已經(jīng)在等待了。下面將處理這種特別的情況。因而,例如,不是第一分析單元的任何分析單元會經(jīng)歷或者預(yù)期第二裝置接收到的數(shù)據(jù)分組所通過的分析單元的數(shù)目的d-det倍的延遲、以及由進行接收的分析單元從數(shù)據(jù)連接接收數(shù)據(jù)分組的延遲所導(dǎo)致的延遲d-link。在該方面,在第一裝置上接收到的數(shù)據(jù)分組的延遲僅是d-link。然后,可以將預(yù)定的時間段選擇為差,例如從數(shù)據(jù)連接到分析單元的第一裝置和該單元的第二裝置的數(shù)據(jù)分組的傳輸時間中的最大延遲。在一個實施例中,每個分析單元包括用于分析接收到的分組并從中推導(dǎo)出由控制單元使用的信息的裝置。在當前上下文中,分析可以是根據(jù)數(shù)據(jù)分組中包含的數(shù)據(jù)對特定值、情況、類型、標識等的確定。分析可以或者不可以導(dǎo)致數(shù)據(jù)分組的內(nèi)容的改變,以及可以在確定裝置中使用數(shù)據(jù)分組中或者數(shù)據(jù)分組的任何類型的信息。推導(dǎo)出的信息可以是從數(shù)據(jù)分組直接拷貝或讀取的數(shù)據(jù)/信息,或者可以是與例如數(shù)據(jù)分組的類型或數(shù)據(jù)分組所遵循的標準有關(guān)的數(shù)據(jù)。類型或標準可以根據(jù)數(shù)據(jù)分組進行直接推導(dǎo)(例如當分組的特定數(shù)據(jù)項標識了類型/標準時),或者可以根據(jù)從數(shù)據(jù)分組中推導(dǎo)出的數(shù)據(jù)進行推導(dǎo)(例如,基于對數(shù)據(jù)分組的數(shù)據(jù)項的類型和位置的識別,以及后續(xù)對數(shù)據(jù)分組的類型或標準的確定,其中,可以在這種位置處找到這種數(shù)據(jù))??梢允褂迷撔畔泶_定數(shù)據(jù)分組是否屬于已知的數(shù)據(jù)分組流,并在后續(xù),可以根據(jù)相同流的多個數(shù)據(jù)分組推導(dǎo)信息,以例如確定這些分組在流中的相對位置。在該情況下,會希望輸出裝置適于將推導(dǎo)出的信息與數(shù)據(jù)分組一起輸出,第二接收裝置適于也接收與每個接收到的數(shù)據(jù)分組有關(guān)的推導(dǎo)出的信息。通過這種方式,可以在后續(xù)分析單元中重復(fù)使用推導(dǎo)出的信息。存在多個例外,其中,可能不希望控制單元等待,即使僅接收到單個數(shù)據(jù)分組。在一個情況下,控制單元適于存儲在順序上最后一個輸出的數(shù)據(jù)分組的位置,以及如果接收到的數(shù)據(jù)分組具有在順序上下一個相鄰位置,則指示輸出裝置輸出該數(shù)據(jù)分組。在該情況下,數(shù)據(jù)分組在排序中的實際定位是可根據(jù)該數(shù)據(jù)分組推導(dǎo)出的。在一個情況下,當數(shù)據(jù)分組具有連續(xù)的/順序的序列號,其中沒有編號丟失時,這是可能的。另一情況是在數(shù)據(jù)分組中存在標識相鄰的、之前或之后的數(shù)據(jù)分組的其他數(shù)據(jù)。在該情況下,可以存儲最后一個 輸出的分組的序列號,以及如果接收到序列中的下一個分組,可以將其沒有延遲地輸出。在第二情況下,控制單元適于在預(yù)定的時間段內(nèi)或之后,在第一接收裝置和第二接收裝置中的另一個還沒有接收到數(shù)據(jù)分組時,輸出對應(yīng)的信息,控制裝置適于在第二時間點處,當具有來自第二接收裝置的數(shù)據(jù)分組而沒有來自第一接收裝置的數(shù)據(jù)分組時,指示輸出裝置輸出數(shù)據(jù)分組,而無需等待。在本上下文中,“無需等待”意味著不預(yù)期有延遲。然后,如果數(shù)據(jù)分組已經(jīng)在一個控制單元處等待,那么在后續(xù)的分析單元中,可以沒有進一步的延遲地輸出該數(shù)據(jù)分組。其原因是,一旦延遲,當由后續(xù)分析單元接收該數(shù)據(jù)分組時,可以假定該數(shù)據(jù)分組確保在順序上在分析單元接收到的任何將來的數(shù)據(jù)分組之前。自然,在第二時間點處,在當來自第二接收裝置的數(shù)據(jù)分組已正在等待時得到該數(shù)據(jù)分組的時候,以及當已接收到來自第一接收裝置的數(shù)據(jù)分組并且該數(shù)據(jù)分組正在等待時,可以確定這兩個數(shù)據(jù)分組的排序。如果來自第一接收裝置的數(shù)據(jù)分組在順序中早于從第二接收裝置接收到的數(shù)據(jù)分組,則可以按照該順序輸出這兩個數(shù)據(jù)分組。在這方面,即使將來自第一接收裝置的數(shù)據(jù)分組設(shè)置為等待,也沒有進一步延遲地輸出該數(shù)據(jù)分組。另一方面,如果在第二時間點處,來自第一接收裝置的數(shù)據(jù)分組正在等待,并在順序上比來自第二接收裝置的數(shù)據(jù)分組(該數(shù)據(jù)分組再次等待)更晚,則等待中的數(shù)據(jù)分組可以保持等待,除非其在順序上是下一個分組(如上所述,在可以對此進行確定的情況下)。在后一情況下,可以按照正確的順序輸出這兩個分組,而沒有進一步的延遲。優(yōu)選地,如上所述,控制單元適于在多個不同的時間點處執(zhí)行確定和指示。從數(shù)據(jù)連接輸出的數(shù)據(jù)分組的數(shù)目可以非常大,以使得在延長的時間段中期望確定和操作。優(yōu)選地,周期性地執(zhí)行每個控制單元中的確定,或者簡單地,操作在一旦結(jié)束之后再次開始(循環(huán))。應(yīng)該注意到,單獨的控制單元的操作不需要以任何方式同步。在另一方面,本發(fā)明涉及組件,該組件包括根據(jù)第一方面的設(shè)備以及存儲器,適于對來自存儲器的數(shù)據(jù)分組進行讀取/解除隊列的第一裝置。自然,讀取/解除隊列將取決于存儲器以及數(shù)據(jù)分組在存儲器中存儲的方式。優(yōu)選地,如下將要更詳細地描述的,將數(shù)據(jù)分組存儲在隊列中。通過該方式,可以通過指針來標識要讀取/解除隊列的下一個數(shù)據(jù)分組的地址,后續(xù)對指針進行更新,以再次指向要解除隊列的下一個數(shù)據(jù)分組。 備選地,可以將數(shù)據(jù)分組存儲在已鏈接的列表中,其中,每個“鏈接”包括數(shù)據(jù)分組和下一個鏈接的地址?;蛘撸梢詫?shù)據(jù)分組的地址存儲在單獨的存儲器中,或者存儲器的單獨部分中??梢园凑栈虿话凑账M捻樞騺泶鎯?shù)據(jù)分組。在該情況下,優(yōu)選地,存儲器在隊列中保持多個數(shù)據(jù)分組以及與隊列的兩個端點指針有關(guān)的信息,第一裝置適于讀取和更新這些指針中的至少一個。因而,一個指針將指向要解除隊列的下一個數(shù)據(jù)分組,以及另一個指針可以指向隊列中存儲數(shù)據(jù)分組的下一個位置??梢杂蓪?shù)據(jù)分組進行讀取/解除隊列的分析單元來使用和更新讀取指針,以及可以由將數(shù)據(jù)分組寫到隊列的進程、CPU、計算機、服務(wù)器或者分組單元來更新寫指針。還可以將指針存儲在存儲器中,因而指針對分析單元是可用的。優(yōu)選地,由DMA來執(zhí)行對在存儲器中的數(shù)據(jù)的所有讀取/解除隊列/更新。本發(fā)明的第三方面涉及對從數(shù)據(jù)連接接收到的多個數(shù)據(jù)分組進行排序和輸出的方法,該方法包括以預(yù)定順序輸出數(shù)據(jù)分組和操作多個分析單元,每個分析單元從數(shù)據(jù)連接接收第一數(shù)據(jù)分組,
從另一分析單元接收第二數(shù)據(jù)分組,輸出第一數(shù)據(jù)分組和第二數(shù)據(jù)分組,輸出步驟包括在一個時間點處,確定是否已經(jīng)接收到第一數(shù)據(jù)分組和/或第二數(shù)據(jù)分組,如果在所述時間點處,已經(jīng)接收到第一數(shù)據(jù)分組和第二數(shù)據(jù)分組,則確定第一數(shù)據(jù)分組和第二數(shù)據(jù)分組的順序,并以所確定的順序輸出第一數(shù)據(jù)分組和第二數(shù)據(jù)分組,如果在該時間點處,僅接收到第一數(shù)據(jù)分組或第二數(shù)據(jù)分組,則等待預(yù)定的時間段,以及 如果在該預(yù)定的時間段內(nèi)或者之后,已接收到第一數(shù)據(jù)分組和第二數(shù)據(jù)分組中的另一個,則確定先接收到的數(shù)據(jù)分組和后接收到的數(shù)據(jù)分組的順序,并以所確定的順序輸出第一數(shù)據(jù)分組和第二數(shù)據(jù)分組,否則,在該預(yù)定的時間段之后,輸出接收到的數(shù)據(jù)分組。如上所述,對來自數(shù)據(jù)連接(優(yōu)選地,存儲器)的數(shù)據(jù)分組的接收、讀取或解除隊列將取決于如何輸出數(shù)據(jù)分組,或者例如如何將數(shù)據(jù)分組存儲在存儲器中。然而,在分析單元和連接/存儲器之間,在單獨的分析單元之間,并且在從分析單元輸出數(shù)據(jù)時,如任何已知的數(shù)據(jù)通信方式一樣,可以使用任何已知的傳輸存儲/讀取/解除隊列技術(shù)。如上所述,分組的排序是在其中對數(shù)據(jù)分組進行輸出/讀取/解除隊列。自然,可以將數(shù)據(jù)分組存儲在存儲器中,并以特定順序輸出,然而這絕不是必要的。在一個情況下,多個分析單元位于具有兩端的菊花鏈中,第一分析單元不從位于一端的另一分析單元接收數(shù)據(jù)分組,第二分析單元向位于另一端的接收數(shù)據(jù)連接輸出數(shù)據(jù)分組。因而,除了一個分析單元之外的所有分析單元可以具有與剩下的分析單元相比不同的輸出裝置,或者分析單元之間并且在該剩下的分析單元之外的數(shù)據(jù)通信可以是相同的。備選地,分析裝置可以適于使用多個協(xié)議來輸出數(shù)據(jù)分組。因而,在到達第二分析單元并從中輸出之前,第一分析單元接收到的數(shù)據(jù)分組將通過所有其他分析單元。優(yōu)選地,如上進一步所述的,不同分析單元的預(yù)定時間段是不同的。優(yōu)選地,時間段隨著位于實際的分析單元和第二分析單元之間位于例如菊花鏈上的分析單元的數(shù)目而增大。一般而言,時間段可以隨著實際的分析單元所接收到的數(shù)據(jù)分組所經(jīng)過的分析單元的數(shù)目而增大。如上所述,以下步驟是所希望的分析第一數(shù)據(jù)分組并從中推導(dǎo)輸出步驟的確定所使用的信息。在該情況下,優(yōu)選地,輸出步驟包括將推導(dǎo)出的信息與第一數(shù)據(jù)分組一起輸出,接收步驟還包括接收與每個接收到的數(shù)據(jù)分組有關(guān)的推導(dǎo)出的信息。可以在后續(xù)分析中使用該信息,而不是從數(shù)據(jù)分組中重新推導(dǎo)出該信息。如所提到的,可以存在例外不希望等待預(yù)定的時間段,而是沒有延遲地輸出數(shù)據(jù)分組。一個這種情況是其中,輸出步驟包括存儲按照順序的最后一個輸出數(shù)據(jù)分組的位置,以及如果接收到具有按照所述順序的下一個相鄰位置的第一數(shù)據(jù)分組或第二數(shù)據(jù)分組,則輸出所述數(shù)據(jù)分組。另一情況是其中,當在預(yù)定的時間段內(nèi)或之后沒有接收到第一數(shù)據(jù)分組或第二數(shù)據(jù)分組時,將對應(yīng)的信息與數(shù)據(jù)分組一起輸出,輸出步驟包括在第二時間點處,當已經(jīng)接收到第二數(shù)據(jù)分組以及對應(yīng)信息而沒有第一數(shù)據(jù)分組時,輸出接收到的第二數(shù)據(jù)分組(優(yōu)選地,再次與對應(yīng)信息一起),而無需等待。在該情況下,可以將第二數(shù)據(jù)分組與任何第一數(shù)據(jù)分組相比較。如果第一數(shù)據(jù)分組在順序中較早,則可以沒有延遲并在第二數(shù)據(jù)分組之前輸出第一數(shù)據(jù)分組。備選地,如果第一數(shù)據(jù)分組在順序上較晚并且正在等待,則可以輸出第二數(shù)據(jù)分組,以及可以允許第一數(shù)據(jù)分組等待,就像是沒有輸出第二數(shù)據(jù)分組一樣。自然,因為從連接接收數(shù)據(jù)分組可以是在延長的時間段上發(fā)生的過程,如果不是持續(xù)的,分析單元優(yōu)選適于在多個不同的時間點處執(zhí)行該確定和指示。優(yōu)選地,接收步驟包括對來自存儲器的數(shù)據(jù)分組進行讀取/解除隊列,以及具體地,當存儲器保存隊列中的多個數(shù)據(jù)分組以及與該隊列的兩個端點指針有關(guān)的信息時,讀取/解除隊列步驟包括讀取和更新指針中的至少一個。
下面將參考附圖來描述優(yōu)選的實施例,其中圖I示出了僅使用數(shù)據(jù)分組的發(fā)送的實施例,圖2示出了數(shù)據(jù)分組的接收、分析和存儲,以及圖3示出了圖I和2的系統(tǒng)的組合。
具體實施例方式在圖I中示出了組件10的實施例,其中,多個適配器12對來自公共數(shù)據(jù)連接或任何類型的數(shù)據(jù)存儲器30的數(shù)據(jù)分組進行讀取、接收或解除隊列。所讀取/解除隊列的數(shù)據(jù)分組被饋送到連接30,或者按照希望從適配器12輸出數(shù)據(jù)分組的順序,從存儲器30的隊列中讀出該所讀取/解除隊列的數(shù)據(jù)分組。然而,如下面將要進一步描述的,適配器適于自己確定該順序,或者至少數(shù)據(jù)分組在該順序中的相對位置。多種類型的數(shù)據(jù)傳遞(例如文件傳遞、VoIP等等)包括以特定的順序輸出并希望以相同的順序接收到并使用的多個數(shù)據(jù)分組的交換。為此,應(yīng)該保持分組的排序。在一些情況下,分組在該順序中的位置可以是可根據(jù)分組確定的,或者可以確定按照順序的兩個分組的相對位置。在其他情況下,希望通過提供對分組的接收的時間戳記(或者簡單地,相對編號)來保持該排序,并可能以(根據(jù)時間戳)接收的順序?qū)⒎纸M(或者與時間戳一起)存儲在隊列中,以使得可以根據(jù)隊列中的排序,或者根據(jù)數(shù)據(jù)分組中存儲或與數(shù)據(jù)分組一起存儲的時間戳來推導(dǎo)出輸出的順序。因而,也可以將數(shù)據(jù)分組的地址或時間戳等與數(shù)據(jù)分組一起向單獨的適配器12傳遞。適配器12包括傳遞單元28,適于對來自數(shù)據(jù)連接或存儲器30的數(shù)據(jù)幀進行讀取或解除隊列。在一個情況下,由DMA來處理讀取或解除隊列,由此促進了數(shù)據(jù)分組的直接讀取。在該情況下,傳遞單元28知道數(shù)據(jù)分組的實際地址。可以從存儲器30的區(qū)域中接收該地址,在該區(qū)域中,適配器12在對數(shù)據(jù)幀進行解除隊列或讀取時更新地址或指針。正常來說,當對數(shù)據(jù)幀進行解除隊列時,在隊列中提供數(shù)據(jù)幀,以使得可以更新讀取指針。此外,處理或處理器(或者適配器12)可以將數(shù)據(jù)幀添加到隊列或數(shù)據(jù)存儲器30中,并因而更新地址或指針,以間接通知適配器已經(jīng)將更多數(shù)據(jù)添加到存儲器30。在已讀取數(shù)據(jù)分組時,將其傳遞到分析單元26。可以執(zhí)行任何類型的處理或分析。在一個情況下,分組在排序中的位置是可以通過數(shù)據(jù)分組的內(nèi)容確定的。可以通過分析單元26推導(dǎo)出該內(nèi)容。此外,可以進行不與數(shù)據(jù)分組的排序相結(jié)合、而是與其內(nèi)容(接收機、發(fā)送機、有效載荷等)相結(jié)合的其他類型的分析。注意,根本不需要分析。將數(shù)據(jù)分組傳遞到合并單元24??煽闯?,中間的適配器12’和上部的適配器12的合并單元24從較低的適配器12’/12”以及適配器自己的分析單元26接收數(shù)據(jù)幀。下部的適配器12”的合并單元24僅向中間的適配器12轉(zhuǎn)發(fā)接收到的數(shù)據(jù)分組。一般而言,合并單元從較低的適配器12/12’和分析單元接收數(shù)據(jù)分組,并確定這些分組的順序,以及以正確的順序輸出分組。要注意到,中間的適配器12’的合并單元24不接收所有的數(shù)據(jù)分組,因而不被數(shù)據(jù)分組的順序中存在“洞”這一事實轉(zhuǎn)移注意力。以正確的順序向上部的適配器12轉(zhuǎn)發(fā)可用的數(shù)據(jù)分組。所有合并單元24的操作可以是相同的,并旨在對由此接收到的分組進行排序。一般而言,如果已從分析單元26和位于低處的適配器12’ /12”接收到數(shù)據(jù)分組,則合并單元24將確定這兩個數(shù)據(jù)分組的順序,并以該順序輸出這兩個數(shù)據(jù)分組。然而,如果僅有單個數(shù)據(jù)分組可用,合并單元24將等待預(yù)定的時間段。這可以是由于從連接或存儲器30經(jīng)由不同的可能通道向合并單元24傳遞的數(shù)據(jù)中可能存在的不同延遲所造成的。自然,任何合并單元24可以從有關(guān)的分析單元26接收數(shù)據(jù)分組。然而,可以從位于低處的適配器12’ /12”接收數(shù)據(jù)分組,位于低處的適配器12’ /12”再次可以經(jīng)由分析單元或再次從位于低處的適配器接收到數(shù)據(jù)分組。因而,優(yōu)選地,適配器在所示出的菊花鏈中的位置越高,或者當前適配器可以經(jīng)由其來接收數(shù)據(jù)分組的可能的適配器的數(shù)量越聞,等待時間段越長。在一個情況下,在從通道/存儲器30直接接收數(shù)據(jù)分組時,兩個合并單元24之間經(jīng)歷的延遲可以是50-500ns,例如,100-250ns。一個合并單元24中用于數(shù)據(jù)分組的分析并對其進行轉(zhuǎn)發(fā)的時延可以是IO-IOOns的數(shù)量級,例如,25-75ns。因而,適配器12’可以等待例如500ns,而適配器12可以等待例如500+50ns。如果在圖I中將附加的適配器設(shè)置得比適配器12還高,則該適配器可以等待例如500+50+50ns。如果從較低的合并單元24和分析單元26中的另一個接收到數(shù)據(jù)分組,則不再需要等待,并促進了根據(jù)該順序的輸出。如果在等待時間段內(nèi)沒有接收到其他數(shù)據(jù)分組,則輸出接收到的數(shù)據(jù)分組。因而,發(fā)生局部的排序,同時進行等待,以確保在順序上實際更早的另一數(shù)據(jù)分組未被接收到并未被亂序轉(zhuǎn)發(fā)。自然,當已等待了所設(shè)置的時間段時,現(xiàn)在確定或假設(shè)在合并單元24中對數(shù)據(jù)分組進行了充分的延遲,以使得即使該數(shù)據(jù)分組是唯一可用的分組,也不需要該數(shù)據(jù)分組在下一個合并單元24中等待。因而優(yōu)選地,當數(shù)據(jù)分組已經(jīng)等待了一個合并單元24的完整時 間段時,對其進行相應(yīng)地標記,并在后續(xù)沒有延遲地從后續(xù)的位于更高處的合并單元24輸出,當然,與任何可用的數(shù)據(jù)分組一起按順序輸出。如果數(shù)據(jù)分組在后續(xù)的合并單元24中等待,如果其順序比接收到的已標記的數(shù)據(jù)分組低,則可以立即輸出該數(shù)據(jù)分組。如果等待的數(shù)據(jù)分組在順序中較高,則其可以與所標記的數(shù)據(jù)分組的輸出無關(guān)地保持等待。
此外,合并單元24可以存儲在順序上最后一個輸出的數(shù)據(jù)分組的位置。當分組例如具有序列號時,這是可能的。在該情況下,如果接收到在序列中具有下一個編號的單個可用的數(shù)據(jù)分組,則不需要等待該時間段,因為必然不會接收到在順序上更早的其他數(shù)據(jù)分組,因而可以沒有延遲地輸出該數(shù)據(jù)分組。使用標準的PHY 22向外部接收數(shù)據(jù)連接14 (例如向或者經(jīng)由WWW)輸出要從上部的分析器12 (所謂的主適配器12)的合并單元24輸出的數(shù)據(jù)分組。圖2示出了使用相同的整體結(jié)構(gòu)來接收、分析和存儲來自連接14的數(shù)據(jù)分組。在該實施例10’中,數(shù)據(jù)分組被PHY 22接收到,并向溢出單元24’轉(zhuǎn)發(fā)。溢出單元24’將向主適配器12的分析器26’或傳遞單元28’轉(zhuǎn)發(fā)與分析器26’ /傳遞單元28’所能夠處理的數(shù)據(jù)分組一樣多的數(shù)據(jù)分組。如果接收到更多的數(shù)據(jù)分組,則這些更多的數(shù)據(jù)分組對執(zhí)行相同功能的下一個適配器12’的溢出單元24’來說是“溢出的”,依此類推。如上所述,可以通過對分組進行時間戳記來登記對通過PHY 22接收到的數(shù)據(jù)分 組的排序。分析器26’中執(zhí)行的分析可以是使用公共連接或存儲器30的任何適合的分析,例如,在向公共存儲器轉(zhuǎn)發(fā)之前對分組的預(yù)分析,處理器/處理(未示出)從該公共連接或存儲器30執(zhí)行附加分析。一種類型的分析可以是確定用于在存儲器30中存儲數(shù)據(jù)分組的地址。然后,使用存儲單元28’將已分析的數(shù)據(jù)分組存儲在存儲器中,或者簡單地輸出到數(shù)據(jù)連接。在圖3中,將圖I和圖2的實施例組合到單個實施例10”中。注意,一般來說,所有的適配器12可以是相同的,并且可以作為單獨的電子電路提供,或者在相同的電路中提供。可以將適配器(具體地,主適配器12)的行為編程在該適配器的軟件或硬件中,該適配器在電子上與其他適配器相同。備選地,可以提供兩種或更多種不同類型的電路。
權(quán)利要求
1.一種以預(yù)定順序?qū)臄?shù)據(jù)連接接收到的多個數(shù)據(jù)分組進行排序和輸出的設(shè)備,所述設(shè)備包括多個分析單元,姆個分析單元包括 第一裝置,用于從所述數(shù)據(jù)連接接收數(shù)據(jù)分組, 第二裝置,用于從另一分析単元接收數(shù)據(jù)分組, 用于輸出第一接收裝置和第二接收裝置接收到的數(shù)據(jù)分組的裝置,以及 控制單元,包括 裝置,用干 在ー個時間點處,確定所述第一接收裝置和/或所述第二接收裝置是否已接收到數(shù)據(jù)分組, 如果在所述時間點處,所述第一接收裝置和所述第二接收裝置均已接收到數(shù)據(jù)分組,則確定兩個數(shù)據(jù)分組的順序,并指示所述輸出裝置以所確定的順序輸出所述兩個數(shù)據(jù)分組,以及 如果在所述時間點處,僅從所述第一接收裝置和所述第二接收裝置中的一個接收到數(shù)據(jù)分組,則等待預(yù)定的時間段,以及 如果在所述預(yù)定的時間段內(nèi)或者之后,所述第一接收裝置和所述第二接收裝置中的另一個已接收到數(shù)據(jù)分組,則確定兩個數(shù)據(jù)分組的順序,并指示所述輸出裝置以所確定的順序輸出所述兩個數(shù)據(jù)分組, 否則,在預(yù)定的時間段之后,指示所述輸出裝置輸出接收到的數(shù)據(jù)分組。
2.根據(jù)權(quán)利要求I所述的設(shè)備,其中,多個分析単元位于具有兩端的菊花鏈結(jié)構(gòu)中,第一分析單元不從位于一端的另ー分析単元接收數(shù)據(jù)分組,以及第ニ分析単元向位于另一端的數(shù)據(jù)連接輸出數(shù)據(jù)分組。
3.根據(jù)權(quán)利要求I或2所述的設(shè)備,其中,不同分析単元的所述預(yù)定的時間段不同。
4.根據(jù)前述權(quán)利要求中任一項所述的設(shè)備,其中,每個分析単元包括用于分析所述第一裝置接收到的數(shù)據(jù)分組并從中推導(dǎo)出由所述確定裝置使用的信息的裝置。
5.根據(jù)權(quán)利要求4所述的設(shè)備,其中,所述輸出裝置適于將所推導(dǎo)出的信息與所述第一裝置接收到的數(shù)據(jù)分組一起輸出,第二接收裝置適于也接收與每個數(shù)據(jù)分組有關(guān)的所推導(dǎo)出的信息。
6.根據(jù)前述權(quán)利要求中任一項所述的設(shè)備,其中,所述控制単元適于存儲按照所述順序的最后ー個輸出數(shù)據(jù)分組的位置,以及如果所述第一裝置或所述第二裝置接收到具有按照所述順序的下一個相鄰位置的數(shù)據(jù)分組,則指示所述輸出裝置輸出所述數(shù)據(jù)分組。
7.根據(jù)前述權(quán)利要求中任一項所述的設(shè)備,其中,所述控制単元適于在所述預(yù)定的時間段內(nèi)或之后,在所述第一接收裝置和所述第二接收裝置中的另ー個還沒有接收到數(shù)據(jù)分組時,輸出對應(yīng)的信息,所述控制裝置適于在第二時間點處,當有來自所述第二接收裝置的數(shù)據(jù)分組而沒有來自所述第一接收裝置的數(shù)據(jù)分組時,指示所述輸出裝置無需等待而輸出數(shù)據(jù)分組。
8.根據(jù)前述權(quán)利要求中任一項所述的設(shè)備,其中,所述控制単元適于在多個不同的時間點處執(zhí)行確定和指示。
9.ー種組件,包括根據(jù)前述權(quán)利要求中任一項所述的設(shè)備以及存儲器,所述第一裝置適于對來自所述存儲器的數(shù)據(jù)分組進行讀取/解除隊列。
10.根據(jù)權(quán)利要求9所述的組件,其中,所述存儲器在隊列中保持多個數(shù)據(jù)分組、以及與所述隊列的兩個端點指針有關(guān)的信息,以及讀取/解除隊列裝置適于讀取并更新所述指針中的至少ー個。
11.一種對從數(shù)據(jù)連接接收到的多個數(shù)據(jù)分組進行排序和輸出的方法,所述方法包括以預(yù)定順序輸出數(shù)據(jù)分組并操作多個分析単元,每個分析単元 從數(shù)據(jù)連接接收第一數(shù)據(jù)分組, 從另ー分析単元接收第二數(shù)據(jù)分組, 輸出第一數(shù)據(jù)分組和第二數(shù)據(jù)分組,輸出步驟包括 在ー個時間點處,確定是否已經(jīng)接收到第一數(shù)據(jù)分組和/或第二數(shù)據(jù)分組, 如果在所述時間點處,已經(jīng)接收到第一數(shù)據(jù)分組和第二數(shù)據(jù)分組,則確定第一數(shù)據(jù)分組和第二數(shù)據(jù)分組的順序,并以所確定的順序輸出第一數(shù)據(jù)分組和第二數(shù)據(jù)分組, 如果在該時間點處,僅接收到第一數(shù)據(jù)分組或第二數(shù)據(jù)分組,則等待預(yù)定的時間段,以及 如果在該預(yù)定的時間段內(nèi)或者之后,已接收到第一數(shù)據(jù)分組和第二數(shù)據(jù)分組中的另ー個,則確定先接收到的數(shù)據(jù)分組和后接收到的數(shù)據(jù)分組的順序,并以所確定的順序輸出第一數(shù)據(jù)分組和第二數(shù)據(jù)分組, 否則,在該預(yù)定的時間段之后,輸出接收到的數(shù)據(jù)分組。
12.根據(jù)權(quán)利要求11所述的方法,其中,多個分析單元位于具有兩端的菊花鏈結(jié)構(gòu)中,第一分析單元不從位于一端的另ー分析単元接收數(shù)據(jù)分組,第二分析単元向位于另一端的數(shù)據(jù)連接輸出數(shù)據(jù)分組。
13.根據(jù)權(quán)利要求11或12所述的方法,其中,不同分析単元的所述預(yù)定的時間段不同。
14.根據(jù)權(quán)利要求11-13中任一項所述的方法,還包括分析第一數(shù)據(jù)分組,并從中推導(dǎo)出所述輸出步驟的確定所使用的信息。
15.根據(jù)權(quán)利要求14所述的方法,其中,所述輸出步驟包括將所推導(dǎo)出的信息與第一數(shù)據(jù)分組一起輸出,所述接收第二數(shù)據(jù)分組的步驟包括也接收與每個接收到的數(shù)據(jù)分組有關(guān)的所推導(dǎo)出的信息。
16.根據(jù)權(quán)利要求11-15中任一項所述的方法,其中,所述輸出步驟包括存儲按照所述順序的最后ー個輸出數(shù)據(jù)分組的位置,以及如果接收到具有按照所述順序的下一個相鄰位置的第一數(shù)據(jù)分組或第二數(shù)據(jù)分組,則輸出所述數(shù)據(jù)分組。
17.根據(jù)權(quán)利要求11-16中任一項所述的方法,其中,在所述預(yù)定的時間段內(nèi)或之后,在還沒有接收到第一數(shù)據(jù)分組和第二數(shù)據(jù)分組中的另ー個吋,將對應(yīng)的信息與數(shù)據(jù)分組一起輸出,所述輸出步驟包括在第二時間點處,當接收到第二數(shù)據(jù)分組以及對應(yīng)的信息而沒有第一數(shù)據(jù)分組時,無需等待而輸出接收到的第二數(shù)據(jù)分組。
18.根據(jù)權(quán)利要求11-17中任一項所述的方法,其中,所述分析単元適于在多個不同的時間點處執(zhí)行確定和指示。
19.根據(jù)權(quán)利要求11-18中任一項所述的方法,其中,所述接收第一數(shù)據(jù)分組的步驟包括對來自存儲器的第一數(shù)據(jù)分組進行讀取/解除隊列。
20.根據(jù)權(quán)利要求19所述的方法,其中,所述存儲器在隊列中保持多個數(shù)據(jù)分組、以及與所述隊列的兩個端點指針有關(guān)的信息,所述讀取/解除隊列步驟包括讀取并更新所述指針中的 至少ー個。
全文摘要
本發(fā)明公開了一種系統(tǒng)和一種操作該系統(tǒng)的方法,該系統(tǒng)具有多個數(shù)據(jù)接收單元,每個數(shù)據(jù)接收單元從數(shù)據(jù)連接以及從另一接收單元接收數(shù)據(jù)分組,將兩個數(shù)據(jù)分組以預(yù)定的順序轉(zhuǎn)發(fā)給另一接收單元。如果在一個時間點處,僅接收到一個數(shù)據(jù)分組,則允許經(jīng)過一個時間段,如果接收到第二數(shù)據(jù)分組,則按順序輸出兩個分組。如果沒有,則輸出接收到的數(shù)據(jù)分組。
文檔編號H04L12/26GK102696201SQ201080054597
公開日2012年9月26日 申請日期2010年12月6日 優(yōu)先權(quán)日2009年12月4日
發(fā)明者亞歷克斯·歐姆·阿格霍爾姆, 詹斯·克里斯托弗森 申請人:納派泰克股份公司