集成電路裝置和執(zhí)行直通轉(zhuǎn)發(fā)的方法
【專利摘要】集成電路裝置(205)包括至少一個直通轉(zhuǎn)發(fā)模塊(200)。所述直通轉(zhuǎn)發(fā)模塊(200)包括至少一個被布置成接收要被轉(zhuǎn)發(fā)的數(shù)據(jù)的接收器組件(210),并且一旦接收到,產(chǎn)生用于傳輸數(shù)據(jù)塊的請求(212),以及至少一個控制器單元(220)被布置成執(zhí)行用于處理所述至少一個接收器組件(210)生成的請求的至少一個線程(225、310、320、330、340、350)。所述至少一個控制器單元(220)被布置成設(shè)置所述至少一個線程(225、310、320、330、340、350)的優(yōu)先級上下文,并且至少部分基于所述優(yōu)先級上下文調(diào)度所述至少一個線程。
【專利說明】集成電路裝置和執(zhí)行直通轉(zhuǎn)發(fā)的方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及集成電路裝置和執(zhí)行分組數(shù)據(jù)的直通轉(zhuǎn)發(fā)的方法。
【背景技術(shù)】
[0002]在計算機(jī)網(wǎng)絡(luò)領(lǐng)域中,直通轉(zhuǎn)發(fā),也被稱為直通交換,是一種用于分組交換系統(tǒng)的交換方法,其中網(wǎng)絡(luò)交換機(jī)在整個幀被網(wǎng)絡(luò)交換機(jī)接收之前開始轉(zhuǎn)發(fā)幀(或分組)。在目的地地址被處理后,這種轉(zhuǎn)發(fā)操作通常盡可能早被執(zhí)行。以這種方式,直通轉(zhuǎn)發(fā)顯著降低了通過交換機(jī)的等待時間。使用直通轉(zhuǎn)發(fā)是分組導(dǎo)向的確定性自動化系統(tǒng)的重要特征。此外,這種系統(tǒng)的實(shí)施在工業(yè)市場中不斷拓展,并且該項技術(shù)也日益滲透到家庭、醫(yī)療和汽車應(yīng)用的解決方案。
[0003]直通轉(zhuǎn)發(fā)系統(tǒng)通常要求嚴(yán)格控制交換機(jī)的等待時間(即在交換機(jī)接收的數(shù)據(jù)和該數(shù)據(jù)隨后被交換機(jī)傳輸(轉(zhuǎn)發(fā))之間的延遲)和抖動(即連續(xù)幀的傳輸之間時間段的方差)以確保確定的行為和可伸縮性。通常,這種等待時間/抖動要求在不同的直通“模式”(例如不同的數(shù)據(jù)分組交換協(xié)議)之間是不同的。例如,這種直通模式可能包括,例如EtherNet 協(xié)議,諸如 EtherCAT (控制自動化技術(shù)的 EtherNet)、ProfiNET、Ethernet/IP、DLR(裝置級環(huán)網(wǎng)技術(shù))或IP業(yè)務(wù)的直通交換??刂频却龝r間和抖動對于包括EtherNet幀等等的直通轉(zhuǎn)發(fā)模式特別重要,其中幀不可預(yù)知地被間隔并且可以是按秒間隔或背靠背,這有別于有可預(yù)知幀間隔的IP語音(VoIP)。為了使直通交換機(jī)在市場上更有競爭力,它必須能夠在多個直通交換模式中支持這種確定性的行為和可伸縮性。
[0004]傳統(tǒng)上,等待時間和抖動的緊密控制是由專用硬件塊提供的,其被布置成滿足特定等待時間和抖動要求。在單一的裝置上使用這種專用硬件塊導(dǎo)致了相對昂貴和不靈活的解決方案。特別是,為了使給定交換機(jī)能夠滿足一個以上的直通模式的要求,每個直通模式就需要分離的專用硬件塊,從而對于交換機(jī)來說,導(dǎo)致了顯著的成本增加、功耗以及不動產(chǎn)需求。
【發(fā)明內(nèi)容】
[0005]正如附屬權(quán)利要求中所描述的,本發(fā)明提供了一種集成電路裝置和一種執(zhí)行分組數(shù)據(jù)的直通確定性轉(zhuǎn)發(fā)的方法。
[0006]本發(fā)明的具體實(shí)施例在附屬權(quán)利要求中被陳述。
[0007]根據(jù)下文中描述的實(shí)施例,本發(fā)明的這些或其它方面將會很明顯并且被闡述。
【專利附圖】
【附圖說明】
[0008]根據(jù)附圖,僅僅通過舉例的方式,本發(fā)明的進(jìn)一步細(xì)節(jié)、方面和實(shí)施例將被描述。在附圖中,類似的符號被用于表示相同的或功能相似的元素。為了簡便以及清晰,附圖中的元素不一定按比例繪制。
[0009]圖1顯示了分組交換系統(tǒng)的例子的簡化方框圖。[0010]圖2顯示了直通轉(zhuǎn)發(fā)模式的例子的簡化方框圖。
[0011]圖3顯示了直通轉(zhuǎn)發(fā)模式中的線程調(diào)度的簡化例子。
[0012]圖4-圖8說明了一種執(zhí)行分組數(shù)據(jù)的直通轉(zhuǎn)發(fā)的方法的例子的一部分的簡化流程圖。
【具體實(shí)施方式】
[0013]現(xiàn)在將參照直通轉(zhuǎn)發(fā)模式的例子描述本發(fā)明的例子,例如可以在分組交換系統(tǒng)中實(shí)施的直通轉(zhuǎn)發(fā)模式。然而,本發(fā)明不限定于參照附圖所描述的特定指令直通轉(zhuǎn)發(fā)體系結(jié)構(gòu),并且可以同樣適用于替代體系結(jié)構(gòu)。例如,對于所說明的例子,直通轉(zhuǎn)發(fā)模式被說明為包括用于控制直通轉(zhuǎn)發(fā)操作的單一的、一元化的控制器單元。然而,本發(fā)明所描述的控制器的功能可以同樣地在多個這種控制器之間被提供,和/或這種控制器的功能可以平等地分布于多個功能模式。此外,由于本發(fā)明說明的實(shí)施例可能大部分是通過使用本領(lǐng)域所屬技術(shù)人員所熟知的電子元件和電路被實(shí)施,細(xì)節(jié)不會在比上述所說明的認(rèn)為有必要的程度大的任何程度上進(jìn)行解釋。對本發(fā)明基本概念的理解以及認(rèn)識是為了不混淆或偏離本發(fā)明所教之內(nèi)容。
[0014]現(xiàn)在參照圖1,圖1說明了直通轉(zhuǎn)發(fā)可以在其中被實(shí)施的分組交換系統(tǒng)100的例子的簡化方框圖。正如圖1所說明的,分組數(shù)據(jù)通常在系統(tǒng)主裝置110、115之間傳輸。在頂部數(shù)據(jù)流例子中,要發(fā)送的數(shù)據(jù)被布置成數(shù)據(jù)分組,或源主裝置110的“幀”,然后通過分組交換系統(tǒng)100傳輸?shù)侥康牡刂餮b置115。數(shù)據(jù)幀通過從屬交換模塊120通過分組交換系統(tǒng)100路由/轉(zhuǎn)發(fā)。為了降低分組交換系統(tǒng)100內(nèi)的等待時間(即在數(shù)據(jù)被源主裝置110傳輸和該數(shù)據(jù)被目的地主裝置115接收之間的時間),在從屬裝置120內(nèi)實(shí)施直通轉(zhuǎn)發(fā)是眾所周知的。
[0015]直通轉(zhuǎn)發(fā),也被稱為直通交換,是一種用于分組交換系統(tǒng)的交換方法,其中在整個幀被接收之前,網(wǎng)絡(luò)交換機(jī)(例如,圖1中的從屬裝置120)開始轉(zhuǎn)發(fā)數(shù)據(jù)幀(或分組);通常但不是唯一的,在目的地地址被處理不久之后。以這種方式,直通轉(zhuǎn)發(fā)能夠顯著降低通過每個交換機(jī)的等待時間。直通轉(zhuǎn)發(fā)交換機(jī)(即圖1的從屬裝置120)的等待時間被定義為從屬裝置120接收數(shù)據(jù)與相同從屬裝置120隨后傳輸(即轉(zhuǎn)發(fā))該數(shù)據(jù)之間的時間。因此,通過在開始傳輸數(shù)據(jù)幀之前沒有等待直到完整幀被接收,交換機(jī)的傳播等待時間可以被降低。由于在完整的數(shù)據(jù)幀已被接收之前數(shù)據(jù)幀的傳輸就開始了,數(shù)據(jù)幀可能在傳輸期間傳遍分組交換系統(tǒng)100內(nèi)的多個主/從裝置110、115、120。例如,考慮1000字節(jié)長的幀,以及包括從屬裝置120的交換系統(tǒng)100,該從屬裝置120在接收了例如16字節(jié)幀之后開始傳輸(重新傳輸)/轉(zhuǎn)發(fā)數(shù)據(jù)幀。該幀(理論上)可能跨越超過60個從屬裝置120。因此,與其中在整個幀被轉(zhuǎn)發(fā)之前整個幀被每個從屬裝置接收的系統(tǒng)進(jìn)行比較,直通轉(zhuǎn)發(fā)能夠使得穿過系統(tǒng)100的等待時間顯著降低。
[0016]現(xiàn)在參照圖2,圖2說明了直通轉(zhuǎn)發(fā)模塊200的例子的簡化方框圖,例如可以在圖1的分組交換系統(tǒng)100的從屬裝置120內(nèi)實(shí)施的直通轉(zhuǎn)發(fā)模塊200。對于所說明的例子,直通轉(zhuǎn)發(fā)模塊200在通常在205被說明的集成電路裝置中被實(shí)施,并且包括一個或多個接收器組件210和一個或多個發(fā)射器組件215。每個接收器組件210包括FIFO (先入先出)緩沖器211,其中接收的數(shù)據(jù)存儲在其中。當(dāng)B字節(jié)數(shù)據(jù)的塊已被接收器組件210接收的時候,接收器組件210被布置成生成要被傳輸?shù)哪莻€數(shù)據(jù)塊的請求,例如正如通常在212被說明的。請求212被提供給控制器單元220,其被布置成處理該請求、導(dǎo)致那個數(shù)據(jù)塊被轉(zhuǎn)移到合適的發(fā)射器組件215的FIF0216,以及通過發(fā)射器組件215觸發(fā)數(shù)據(jù)塊的傳輸。
[0017]因此,在直通轉(zhuǎn)發(fā)模塊200接收數(shù)據(jù)和隨后轉(zhuǎn)發(fā)該數(shù)據(jù)之間的時間(即等待時間)取決于塊的大小(B字節(jié))以及數(shù)據(jù)被接收的輸入信道206的數(shù)據(jù)速率(即直通轉(zhuǎn)發(fā)模塊200接收數(shù)據(jù)所使用的速率)。因此,如果輸入信道206的數(shù)據(jù)速率是已知的,那么所需的最大等待時間可以通過配置塊的大小B來實(shí)施,使得:
[0018]B〈data_rate_in* 等待時間[表達(dá)式 I]
[0019]其中data_rate_in表示輸入信道206的數(shù)據(jù)速率,以及等待時間表示要達(dá)到的所需的最大等待時間。
[0020]根據(jù)一些實(shí)施例,塊的大小B是能配置的。例如,每個接收器組件210可能包括例如在214被說明的可編程寄存器,其中在該寄存器內(nèi)可以能配置地設(shè)置值,以定義塊的大小B。以這種方式,直通轉(zhuǎn)發(fā)模塊200的等待時間根據(jù)它所支持的直通轉(zhuǎn)發(fā)模式的特定要求可以被配置。特別是,如果(一個或多個)輸入信道206的數(shù)據(jù)速率是已知的,則塊的大小B可以被配置成滿足特定等待時間要求。對于一些例子,設(shè)想塊的大小B可以是由控制器單元220配置的,例如以響應(yīng)于其中的一個或多個軟件配置,或響應(yīng)于其中的一個或多個關(guān)于要被支持的直通轉(zhuǎn)發(fā)模式的數(shù)據(jù)輸入(未顯不)。
[0021]正如將要認(rèn)識到的,如果塊的大小B配置的過小,則在由接收器組件210生成的請求之間的時間對于由控制器單元220連續(xù)處理請求來說過短,從而導(dǎo)致提供給發(fā)射器組件215的數(shù)據(jù)塊的下運(yùn)行(under-run),從而潛在地導(dǎo)致相應(yīng)數(shù)據(jù)幀被終止。因此,在一些例子中,應(yīng)該使直通轉(zhuǎn)發(fā)模塊200所支持的最小的塊大小B遵守在由接收器組件210生成的請求之間提供充足的時間,以使請求能夠被控制器單元220處理。通常,這樣最小的塊大小可能取決于要求被該(或每個)控制器硬件處理器(未顯示)服務(wù)的發(fā)射器/接收器組件的數(shù)目,以及對于所提供的每一項服務(wù)所需的處理量。
[0022]例如,控制器單元220可能包括一個或多個硬件處理器,例如RISC (精簡指令集計算機(jī))處理器,每個被布置成執(zhí)行一個或多個線程,每個線程被布置成服務(wù)例如直通轉(zhuǎn)發(fā)模塊的一個發(fā)射器/接收器組件(例如,在接收器組件210情況下的處理請求等等)。處理來自接收器組件210的請求所需的時間取決于所需的處理的數(shù)目(例如,需要執(zhí)行的操作數(shù)目和復(fù)雜性)以及執(zhí)行該處理的相應(yīng)處理器硬件的處理速度/頻率。相應(yīng)處理器硬件的處理速度/頻率取決于直通轉(zhuǎn)發(fā)模塊實(shí)施,并且通常是固定的量。所需的處理的數(shù)目通常取決于被支持的直通轉(zhuǎn)發(fā)模式等等。因此,為了使得請求被控制器單元220處理,在由接收器組件210生成的請求之間所需的最小時間量、以及由此可以被直通轉(zhuǎn)發(fā)模塊200所支持的最小的塊大小B,取決于特定直通轉(zhuǎn)發(fā)模塊硬件實(shí)施,以及由此被支持的特定直通轉(zhuǎn)發(fā)模式。
[0023]由于(一個或多個)控制器硬件處理器的處理能力以及由特定直通轉(zhuǎn)發(fā)模式的接收器組件210生成的處理要求通常在實(shí)施之前是已知的或者是可以預(yù)測的,因此最小的塊大小B可以被預(yù)定并且被配置為基本上任何硬件實(shí)施和直通轉(zhuǎn)發(fā)模式組合。以這種方式,直通轉(zhuǎn)發(fā)模塊200的等待時間可以被精確地控制,從而能夠使直通轉(zhuǎn)發(fā)模塊200的等待時間最小化,同時確保避免直通轉(zhuǎn)發(fā)模塊內(nèi)的下運(yùn)行。[0024]直通轉(zhuǎn)發(fā)模式不僅要求嚴(yán)格控制等待時間,而且要求嚴(yán)格控制抖動,即在連續(xù)幀的傳輸之間時間段的方差。特別是,通常期望在數(shù)據(jù)幀流的傳輸內(nèi)最小化抖動。然而,通過直通轉(zhuǎn)發(fā)模塊最小化抖動通常包括最小的等待時間,其中該等待時間是通過該模塊實(shí)施的。這種抖動還要求在不同的直通轉(zhuǎn)發(fā)模式之間也有所不同。因此,為了直通轉(zhuǎn)發(fā)模塊(例如圖2的直通轉(zhuǎn)發(fā)模塊200)能夠支持多個直通模式,直通轉(zhuǎn)發(fā)模塊有必要能夠根據(jù)由此被支持的直通模式的各種不同要求來控制通過那里的數(shù)據(jù)的等待時間和抖動。
[0025]正如前面所提到的,圖2的直通轉(zhuǎn)發(fā)模塊200的控制器單元220被布置成執(zhí)行用于處理由接收器組件生成的請求的線程。此外,控制器單元220被布置成設(shè)置每個線程的優(yōu)先級上下文,并且至少部分基于所述優(yōu)先級上下文調(diào)度線程。
[0026]例如,參照圖3,圖3說明了執(zhí)行多個線程310、320、330、340(在這種情況下是四個)的第一簡化例子300,例如可以在圖2的控制器單元220的硬件處理器(未顯示)內(nèi)實(shí)施的線程。在所說明的例子中,每個線程310、320、330、340被布置成服務(wù)接收器或發(fā)射器組件210、215中的一個。在該第一例子中,所有線程被指配了相同的優(yōu)先級上下文(例如,“正?!?,并且因此被調(diào)度,以按照從它們相應(yīng)接收器或發(fā)射器組件210、215接收到請求的順序等等來執(zhí)行。因此,對于圖3中所說明的第一個例子的時間段,按照Rx_0310(例如,月艮務(wù)第一接收器組件210)、Τχ_0320(例如,服務(wù)第一發(fā)射器組件215)、Rx_1330(例如服務(wù)第二接收器組件210)、以及Tx_1340(例如服務(wù)第二發(fā)射器組件215)的順序來執(zhí)行線程。任務(wù)的調(diào)度因此通常以這種方式循環(huán)。例如,線程Rx_0310在線程Tx_1340之后再次被調(diào)度,并且線程被調(diào)度的順序是基于請求等等從其相應(yīng)組件被接收的順序來確定的。正如圖3中所說明的,執(zhí)行連續(xù)線程310、320、330、340可以被管理進(jìn)程(supervisor process)的簡要執(zhí)行分離開,例如被圖2中所說明的線程調(diào)度器230分離開,其中該線程調(diào)度器負(fù)責(zé)要被執(zhí)行的線程的調(diào)度。
[0027]圖3還說明了執(zhí)行四個線程310、320、330、340的第二簡化例子350。最初在該第二簡化例子350中,所有四個線程被指配相同的優(yōu)先級上下文(例如,“正?!?,并且因此被調(diào)度,以按照從它們相應(yīng)接收器或發(fā)射器組件210、215接收到請求等等的順序來執(zhí)行。因此,線程Rx_0310再次可以首先被調(diào)度,其后跟隨有線程Tx_0320。然而,對于該第二例子350,線程Rx_0310的優(yōu)先級上下文被設(shè)置為較高優(yōu)先級,例如在該第一說明的執(zhí)行之后(或期間)設(shè)置為“優(yōu)先化(prioritised)”。以這種方式,從線程Rx_0310的相應(yīng)接收器組件210接收的請求相比于與“正?!眱?yōu)先級線程相關(guān)的請求等等被給予優(yōu)先級。在所說明的例子中,沒有來自線程Rx_0310的接收器組件210的這種請求最初是未決的。這樣,線程Tx_0320根據(jù)線程的正常順序被調(diào)度和執(zhí)行。然而,一旦線程Τχ_0320返回到線程調(diào)度器230,來自線程Rx_0310的接收器組件210的請求就是未決的。因此,因?yàn)榫€程Rx_0310具有高于其它線程的優(yōu)先級,因此它在其它線程之前被調(diào)度,以加速未決請求的處理,正如通常在355被說明的。
[0028]因此,以這種方式,通過至少部分基于所述優(yōu)先級上下文調(diào)度線程的執(zhí)行,特定線程的處理請求可以被優(yōu)先化,從而實(shí)現(xiàn)了加速處理。通過實(shí)現(xiàn)加速處理來自接收器組件210的請求,與此相關(guān)的數(shù)據(jù)塊的處理的傳輸可以被加速。以這種方式,對等待時間以及特別是抖動的附加控制水平可以提供給分組數(shù)據(jù)的直通轉(zhuǎn)發(fā)。具體地,是通過將下述線程的優(yōu)先級上下文設(shè)定為較高優(yōu)先級:針對該線程,與“對抖動敏感”的塊(例如,數(shù)據(jù)幀的第一塊)有關(guān)的請求正在等待處理。因此,處理這樣的請求可以被加速,從而實(shí)現(xiàn)更好的控制了相關(guān)數(shù)據(jù)流的抖動。
[0029]圖4說明了執(zhí)行分組數(shù)據(jù)的直通轉(zhuǎn)發(fā)的方法的例子的簡化流程圖400,例如可以在圖2的控制器單元220內(nèi)實(shí)施。該方法開始于410,并移至420,其中圖2的直通轉(zhuǎn)發(fā)模塊200在該處例如,根據(jù)要被支持的所需的直通轉(zhuǎn)發(fā)模式被進(jìn)行初始化。這種初始化可能包括配置接收器組件210內(nèi)的塊的大小B和/或用于控制等待時間和/或抖動的任何其它參數(shù),例如在下面更詳細(xì)描述的。此外,初始優(yōu)先級上下文可以為線程225設(shè)置(例如,設(shè)置為“正?!眱?yōu)先級),其中該線程被布置成支持直通轉(zhuǎn)發(fā)模塊200的接收器和/或發(fā)射器組件210、215。例如,控制器單元220可能包括存儲在例如在235被說明的存儲器區(qū)域中的線程上下文查找表(LUT)中,并且優(yōu)先級上下文可以在其中存儲和更新。然后,該方法移至430,其中在該處確定針對線程225是否有具有被設(shè)置為較高優(yōu)先級(例如,設(shè)置為“優(yōu)先化”)的優(yōu)先級上下文的任何請求是未決的。在這個例子中,由于所有優(yōu)先上下文已被初始化到“正?!眱?yōu)先級,因此沒有線程225具有被設(shè)置為“較高”優(yōu)先級的優(yōu)先上下文,并且該方法移至440,其中來自接收器/發(fā)射器組件210、215的下一個(或這種情況下是第一個)是未決的請求的線程225被調(diào)度執(zhí)行。例如,線程調(diào)度器可以被布置成通常是“輪轉(zhuǎn)調(diào)度”(ix)und robin)的順序調(diào)度線程執(zhí)行。例如,如果線程A、B和C包括相等的優(yōu)先級上下文(例如設(shè)置為“正?!?,如果在當(dāng)前線程A的執(zhí)行期間,對應(yīng)于線程B的請求被接收,其后跟隨有對應(yīng)于線程C的另一個請求,則下面的調(diào)度可能適用:
[0030]-如果對應(yīng)于線程B和C的請求先前沒有被接收,那么線程調(diào)度器230可能任意選擇線程B或C在線程A完成之后被服務(wù),否則:
[0031]-如果線程B已經(jīng)在先前被調(diào)度和執(zhí)行,并且在A之前被執(zhí)行以及在先前執(zhí)行的線程C之后,那么線程調(diào)度器230可能調(diào)度在線程A完成之后線程C被服務(wù),否則:
[0032]-如果線程C已經(jīng)在先前被調(diào)度和執(zhí)行,并且在A之前被執(zhí)行以及在先前執(zhí)行的線程B之后,那么線程調(diào)度器230可能調(diào)度在線程A完成之后線程B被服務(wù)。
[0033]一旦在450從已調(diào)度的線程返回,該方法循環(huán)回430。當(dāng)所有線程225包括被設(shè)置為“正?!眱?yōu)先級的優(yōu)先級上下文的時候,該方法通過上述步驟循環(huán),從而實(shí)現(xiàn)了例如以通常是“輪轉(zhuǎn)調(diào)度”的方式用于處理接收的請求的線程執(zhí)行。
[0034]然而,如果在430確定了其中請求是未決的一個或多個線程225包括被設(shè)置為較高優(yōu)先級的優(yōu)先級上下文,該方法移至470,其中請求是未決的較高優(yōu)先級線程225在該處被調(diào)度執(zhí)行。一旦在450從已調(diào)度的線程返回,該方法循環(huán)回430。
[0035]因此,以這種方式,圖2的控制器單元220可以被布置成調(diào)度較高優(yōu)先級線程,針對該較高優(yōu)先級線程的請求要求在較低優(yōu)先級線程之前處理。根據(jù)一些例子,控制器單元220可以被布置成占先地設(shè)置線程225的優(yōu)先級上下文,以用于處理即將到來的請求。例如,在控制器單元220內(nèi)執(zhí)行的線程225可以被布置成占先地將其優(yōu)先級上下文設(shè)置為較高優(yōu)先級,以用于處理即將到來的請求。
[0036]正如先前所提到的,抖動控制是直通轉(zhuǎn)發(fā)模塊的重要方面。特別是,可以通過加速對數(shù)據(jù)幀開始的處理和轉(zhuǎn)發(fā)來降低抖動。因此,通過加速處理與來自接收器組件210的數(shù)據(jù)幀中第一數(shù)據(jù)塊相對應(yīng)的請求,該第一數(shù)據(jù)塊的后續(xù)重新傳輸(轉(zhuǎn)發(fā))可以被加速。
[0037]圖5說明了一種占先地設(shè)置線程225內(nèi)的優(yōu)先級上下文的方法的例子的簡化流程圖500,例如正如在控制器單元220內(nèi)執(zhí)行的。該方法開始于505,例如開始于要被執(zhí)行以用于處理來自接收器組件210的請求的線程225的調(diào)度。然后,該方法移至510,其中伴隨著(由線程)對來自例如要被線程225處理的請求隊列245中未決請求的檢索。線程225然后在520處理檢索的請求。已經(jīng)處理了請求,線程225然后在530確定請求是否涉及數(shù)據(jù)幀的最后數(shù)據(jù)塊。如果該請求不涉及數(shù)據(jù)幀的最后數(shù)據(jù)塊,該方法移至540,其中線程225在該處將其優(yōu)先級上下文設(shè)置為較高優(yōu)先級,例如設(shè)置為“優(yōu)先化”。然后,該方法移至550,其中線程225在該處觸發(fā)數(shù)據(jù)塊的傳輸,針對該數(shù)據(jù)塊的檢索的請求也因此在560清除(例如來自請求隊列240的)處理的請求之前在520被處理。該方法然后在570返回(即把對硬件處理器的控制歸還到線程調(diào)度器230)。以這種方式,一旦接收到針對該線程的下一個請求(將涉及下一個數(shù)據(jù)幀的第一數(shù)據(jù)塊),該線程的調(diào)度被優(yōu)先化在其它較低優(yōu)先級線程之前。
[0038]返回參照530,如果處理的請求不涉及數(shù)據(jù)幀的最后數(shù)據(jù)塊,該方法移至580,其中線程225在該處確定請求是否涉及數(shù)據(jù)幀的第一數(shù)據(jù)塊。如果請求不涉及數(shù)據(jù)幀的第一數(shù)據(jù)塊,該方法移至590,其中線程225在該處將其優(yōu)先級上下文設(shè)置為較低優(yōu)先級,例如“正常”。然后,該方法移至550,其中線程225在該處觸發(fā)了數(shù)據(jù)塊的傳輸,針對該數(shù)據(jù)塊的檢索的請求也因此在560清除處理的請求之前在520被處理,然后在570返回。以這種方式,由于已被優(yōu)先化以加速處理數(shù)據(jù)幀的第一數(shù)據(jù)塊,線程225將其優(yōu)先級上下文重新設(shè)置為“正?!薄7祷貐⒄?80,如果處理的請求不涉及數(shù)據(jù)幀的第一數(shù)據(jù)塊,該方法直接移至550而不改變其優(yōu)先級上下文。
[0039]因此,可以設(shè)想,一旦在該線程225內(nèi)處理來自相應(yīng)接收器組件的針對數(shù)據(jù)幀中最后數(shù)據(jù)塊的請求,在控制器單元220內(nèi)執(zhí)行的線程225可以被布置成將其優(yōu)先級上下文設(shè)置為較高優(yōu)先級。以這種方式,由于可以假定通過在數(shù)據(jù)幀的最后數(shù)據(jù)塊的處理期間占先地將優(yōu)先級上下文設(shè)置為較高優(yōu)先級,由此被接收的下一個數(shù)據(jù)塊將是下一個數(shù)據(jù)幀的第一數(shù)據(jù)塊,那么下一個數(shù)據(jù)幀中第一塊的處理可以被加速,從而降低了兩個幀之間的抖動。隨后,一旦處理來自相應(yīng)接收器組件210的針對(隨后的)數(shù)據(jù)幀中第一數(shù)據(jù)塊的請求,線程225隨后可能將其優(yōu)先級上下文重新設(shè)置回較低優(yōu)先級。
[0040]除了為了降低抖動(正如上述參照圖5所描述的)的優(yōu)先級上下文的“幀間”占先設(shè)置,優(yōu)先級上下文的“幀內(nèi)”占先設(shè)置也可以被實(shí)施。例如,對于運(yùn)行大量線程225的控制器單元220,或?qū)τ诎ㄓ邢?例如,較慢的)處理資源的控制器單元220,負(fù)責(zé)處理由接收器組件210生成的請求的線程可以在例如數(shù)據(jù)幀內(nèi)的N塊之后,或在數(shù)據(jù)幀內(nèi)的每個第N塊之后布置成優(yōu)先化,以幫助確保由接收器組件210生成的請求即時被控制器單元220處理,以避免下運(yùn)行。
[0041]在一些例子中,幀內(nèi)占先可以被用于實(shí)現(xiàn)包括了直通轉(zhuǎn)發(fā)模塊200的從屬裝置(例如從屬裝置120)的輸入/輸出(I/O)的即時觸發(fā)。在一些例子中,信號或標(biāo)識例如基于直通模式的需要可以被確定性生成。例如,這種從屬裝置120的I/O觸發(fā)往往在許多工業(yè)應(yīng)用中實(shí)施以控制工業(yè)機(jī)械。命令(例如I/O觸發(fā))從主裝置110、115到從屬裝置120的傳輸通常從從屬裝置120的應(yīng)用解除耦合。例如,主裝置110、115可能將命令放置在數(shù)據(jù)分組內(nèi),例如,指令從屬裝置執(zhí)行功能,使得開啟機(jī)器,或減速或加速電動機(jī)等等。對如何以及何時傳輸和執(zhí)行這樣的命令控制的越多,這樣的功能可以就會更有效和更準(zhǔn)確地實(shí)施。I/o觸發(fā)可能構(gòu)成對從屬裝置120的應(yīng)用的中斷,或從“低”到“高”跳轉(zhuǎn)的線以在例如被連接到從屬裝置120的處理器(未顯示)的現(xiàn)場可編程門陣列(FPGA)中啟用一些功能??商娲?,一個以上的I/O線可以在命令中被更新,例如,8比特輸入到被用于控制例如電動機(jī)速度的數(shù)字模擬轉(zhuǎn)換器。
[0042]在一些實(shí)時應(yīng)用的例子中,將從屬裝置120的應(yīng)用同步到主裝置110、115的需要的應(yīng)用可以取決于提供I/o觸發(fā)確定性傳輸?shù)鹊鹊哪芰?。通過能夠優(yōu)先化直通轉(zhuǎn)發(fā)模塊200的線程,其中該線程負(fù)責(zé)處理數(shù)據(jù)分組的接收的數(shù)據(jù)塊,那么這樣的數(shù)據(jù)塊的處理,并且因此這樣的命令的傳輸可能對這樣的命令的等待時間和抖動提供更大的控制權(quán),其中該數(shù)據(jù)分組包括這樣的I/o觸發(fā)、信號、標(biāo)識等等。結(jié)果,這樣的命令的傳輸可以被確定地實(shí)現(xiàn),并有更精細(xì)的粒度、更多的控制和增加的準(zhǔn)確度。
[0043]例如,圖6說明了一種占先地設(shè)置線程225內(nèi)的優(yōu)先級上下文的替代方法的例子的簡化流程圖600,例如正如在圖2的控制器單元220內(nèi)執(zhí)行的。該方法開始于605,例如開始于要被執(zhí)行以用于處理來自接收器組件210的請求的線程225的調(diào)度。然后,該方法移至610,其中伴隨著(由線程)對例如來自要被線程225處理的請求隊列245的未決請求的檢索。線程225然后在620處理檢索的請求。已經(jīng)處理了請求,線程225然后在530確定請求是否涉及數(shù)據(jù)幀的第(M*N)數(shù)據(jù)塊,其中N包括為該數(shù)據(jù)幀接收的預(yù)定義數(shù)目的數(shù)據(jù)塊,以及M包括整數(shù)值。如果該請求不涉及數(shù)據(jù)幀的第(M*N)數(shù)據(jù)塊,該方法移至640,其中線程225在該處將其優(yōu)先級上下文設(shè)置為較高優(yōu)先級,例如設(shè)置為“優(yōu)先化”。然后,該方法移至650,其中線程225在該處觸發(fā)數(shù)據(jù)塊的傳輸,針對該數(shù)據(jù)塊的檢索的請求也因此在660清除(例如來自請求隊列240的)處理的請求之前在620被處理。該方法然后在670返回(即把對硬件處理器的控制歸還到線程調(diào)度器230)。以這種方式,一旦接收到該線程的下一個請求(將涉及下一個數(shù)據(jù)幀內(nèi)的第(M*N)+1數(shù)據(jù)塊),該線程的調(diào)度被優(yōu)先化在其它較低優(yōu)先級線程之前。
[0044]返回參照630,如果處理的請求不涉及數(shù)據(jù)幀的第(M*N)數(shù)據(jù)塊,該方法移至680,其中線程225在該處確定請求是否涉及數(shù)據(jù)幀的第(M*N)+1數(shù)據(jù)塊。如果請求不涉及數(shù)據(jù)幀的第(M*N)數(shù)據(jù)塊,該方法移至690,其中線程225在該處將其優(yōu)先級上下文設(shè)置為較低優(yōu)先級,例如“正?!?。然后,該方法移至650,其中線程225在該處觸發(fā)了數(shù)據(jù)塊的傳輸,針對該數(shù)據(jù)塊的檢索的請求也因此在660清除處理的請求之前在620被處理,然后在670返回。以這種方式,由于已被優(yōu)先化以加速處理數(shù)據(jù)幀的第(M*N)+1數(shù)據(jù)塊,線程225將其優(yōu)先級上下文重新設(shè)置為“正?!?。返回參照680,如果處理的請求不涉及數(shù)據(jù)幀的第(M*N)+1數(shù)據(jù)塊,該方法直接移至650而不改變其優(yōu)先級上下文。
[0045]因此,在控制器單元220內(nèi)執(zhí)行的線程225可以被布置成:一旦在該線程225內(nèi)處理來自相應(yīng)接收器組件210的數(shù)據(jù)幀內(nèi)的第N塊、或數(shù)據(jù)幀內(nèi)的每個第N塊、或數(shù)據(jù)幀內(nèi)的多個任意間隔開的塊的請求,就將其優(yōu)先級上下文設(shè)置為較高優(yōu)先級。根據(jù)一些例子,N可能包括能配置參數(shù)。以這種方式,線程的幀內(nèi)優(yōu)先化可以根據(jù)下面的一個或多個被配置:被直通轉(zhuǎn)發(fā)模塊200和/或其等待時間/抖動要求所支持的直通處理模式、相應(yīng)接收器組件210被配置的塊大小B、控制器單元220所支持的線程數(shù)目、線程在其上被執(zhí)行的(一個或多個)硬件處理器(未顯示)的處理能力(例如,處理速度/頻率)等等。因此,通過以這種方式實(shí)現(xiàn)參數(shù)N的配置、對優(yōu)先化并且因此數(shù)據(jù)轉(zhuǎn)發(fā)和/或I/O觸發(fā)的等待時間/抖動的進(jìn)一步控制可以在圖2的直通轉(zhuǎn)發(fā)模塊200內(nèi)被提供。
[0046]根據(jù)一些例子,圖2的控制器單元220可以被布置成:在預(yù)定義數(shù)目X的處理周期內(nèi)在第一、活動線程225內(nèi)處理請求之后,確定一個或多個另外的、非活動線程是否包括設(shè)置為較高優(yōu)先級的優(yōu)先級上下文,以及如果確定至少一個另外的線程包括設(shè)置為高優(yōu)先級的優(yōu)先級上下文,那么暫停在所述第一、非活動線程內(nèi)處理請求212。以這種方式,如果,例如,活動線程正在執(zhí)行相對長的例程,例如處理請求所需的大量命令,該線程在預(yù)定數(shù)目的處理周期之后可能確定其它線程是否已經(jīng)被優(yōu)先化,并且因此處于下運(yùn)行或?qū)е逻^高抖動的危險中。因此,該線程可能使控制器單元220切換到較高優(yōu)先級線程,而無需等待活動線程完成其處理。以這種方式,對等待時間和抖動的進(jìn)一步控制也可以在直通轉(zhuǎn)發(fā)模塊200內(nèi)提供。
[0047]例如,圖7說明了一種在線程225內(nèi)處理請求的方法的例子的簡化流程圖,例如正如在圖2的控制器單元220內(nèi)執(zhí)行的。該方法開始于705,例如開始于要被執(zhí)行以用于處理請求的線程225的調(diào)度。然后,該方法移至710,其中伴隨著(由線程)對來自例如要被線程225處理的圖2的請求隊列245的未決請求的檢索。線程225然后在720,在X的處理周期內(nèi)處理檢索的請求,或者直到完成處理。如果該請求的處理在730完成,該方法移至770,其中例如在有來自接收器組件210的請求的情況下,線程225觸發(fā)了數(shù)據(jù)塊的傳輸,針對該數(shù)據(jù)塊的檢索的請求也因此在780清除(例如來自請求隊列240的)處理的請求之前在720被處理。該方法然后在760返回(即把對硬件處理器的控制歸還到線程調(diào)度器230)。
[0048]然而,如果在該請求的處理在X的處理周期內(nèi)處理檢索的請求之后未完成,該方法移至740,其中線程在該處確定具有被設(shè)置為較高優(yōu)先級(例如,“被優(yōu)先化”)的優(yōu)先級上下文的其它線程的一個或多個請求是否是未決的。例如,對于圖2中所說明的例子,線程的優(yōu)先級上下文被存儲在查找表235中以及未決請求被存儲在請求隊列245中,這對被執(zhí)行的線程是可見的。以這種方式,控制器單元220的一個線程的優(yōu)先級上下文對控制器單元220內(nèi)的其它線程是可見的。特別是,740內(nèi)所有未決優(yōu)先請求(例如相對于優(yōu)先級線程的未決請求)可以對活動線程是可見的。因此,活動線程能夠確定其它(不活動)線程是否有被設(shè)置為較高優(yōu)先級的優(yōu)先級上下文,以及這些線程的請求是否是未決的。因此,活動線程有可能看到所有未決的優(yōu)先請求,以及活動線程有可能引起上下文切換,例如,帶有幀的第一塊的優(yōu)先化線程,或帶有高幀內(nèi)塊優(yōu)先級的優(yōu)先化線程,這取決于直通模式要求。如果740內(nèi)沒有被設(shè)置為較高優(yōu)先級的優(yōu)先級上下文的請求是未決的其它線程,該方法循環(huán)回720,其中線程在該處在另外X的處理周期內(nèi)繼續(xù)處理檢索的請求,或者直到完成處理。如果確定另一個(不活動)線程確實(shí)具有被設(shè)置為較高優(yōu)先級的優(yōu)先級上下文,以及請求在740是未決的,該方法移至750,其中正在處理的請求在該處暫停,并且線程在760返回。以這種方式,較高優(yōu)先級線程可以被執(zhí)行以處理,例如,抖動關(guān)鍵請求。一旦較高優(yōu)先級線程完成處理其請求,先前的線程可能會再次被調(diào)度(因?yàn)槠湔埱笕匀辉谡埱箨犃?45的“前面”)以完成處理被暫停的請求。
[0049]因此,在控制器單元220內(nèi)執(zhí)行的線程225可以被布置成:在預(yù)定義數(shù)目X的處理周期內(nèi)在第一、活動線程225內(nèi)處理請求之后,確定一個或多個另外的、非活動線程是否包括設(shè)置為較高優(yōu)先級的優(yōu)先級上下文,以及如果確定至少一個另外的線程包括設(shè)置為高優(yōu)先級的優(yōu)先級上下文,那么暫停在所述第一、非活動線程內(nèi)處理請求212。根據(jù)一些例子,X可能包括能配置參數(shù)。以這種方式,線程所使用的用于檢查是否存在較高優(yōu)先級線程的頻率可以根據(jù)包括以下內(nèi)容的組中的一個或多個而被配置:被直通轉(zhuǎn)發(fā)模塊200和/或I/O觸發(fā)和/或等待時間/抖動要求支持的直通處理模式、相應(yīng)接收器組件210被配置的塊的大小B、被控制器單元220支持的線程的數(shù)目、線程在其上被執(zhí)行的(一個或多個)硬件處理器(未顯示)的處理能力(例如,處理速度/頻率)等等。因此,通過以這種方式實(shí)現(xiàn)參數(shù)N的配置,對優(yōu)先化并且因此數(shù)據(jù)轉(zhuǎn)發(fā)和/或I/O觸發(fā)的等待時間/抖動的進(jìn)一步控制可以在圖2的直通轉(zhuǎn)發(fā)模塊200內(nèi)被提供。然而,在替代實(shí)施例中,在圖7中的730至740執(zhí)行的檢查可以替代地被編碼到長例程,該長例程在由程序員決定的方便點(diǎn)處被線程執(zhí)行,這與在圖7的例子中的X的處理周期的規(guī)則間隔處的截然相反。
[0050]對于以上本發(fā)明所描述的例子,線程的優(yōu)先級上下文在線程內(nèi)已被占先地設(shè)置。然而,在其它例子中,線程的優(yōu)先級上下文可以被圖2的直通轉(zhuǎn)發(fā)模塊200內(nèi)的其它元件設(shè)置。例如,一旦接收到來自接收器組件210的請求,控制器單元220內(nèi)的請求處置器240可以被布置成初始化請求定時器250,以及例如如果所述請求在請求定時器期滿之后未被處理,則將負(fù)責(zé)處理所述請求的線程225的優(yōu)先級上下文設(shè)置為較高優(yōu)先級。
[0051]例如,圖8說明了處理來自接收器組件的請求的例子的簡化流程圖800,例如正如被圖2中的請求處置器240實(shí)施的。該方法開始于810,其中接收到了來自接收器組件的請求,然后,該方法移至820,其中例如通過被添加到圖2的請求隊列245,接收的請求在該處排隊等待處理。請求定時器,例如圖2中所說明的請求定時器250,然后被初始化,例如從預(yù)定值設(shè)置為向上計數(shù)或向下計數(shù)。一旦定時器期滿,在840,確定啟動定時器的請求是否已被處理。如果該請求已被處理,那么該方法在870結(jié)束。然而,如果請求沒有被處理,那么該方法移至860,其中負(fù)責(zé)處理請求的線程的優(yōu)先級上下文在該處被設(shè)置為較高優(yōu)先級(例如,“優(yōu)先化”狀態(tài)),并且該方法然后在870結(jié)束。
[0052]在一些例子中,定時器,例如定時器250,可以被附加地用于將I/O操作的觸發(fā)例如從正常塊處理流程解除耦合。例如,在一些例子中,與塊處理無關(guān)的另外的線程可以被用于此目的,以及定時器250可以從特定值設(shè)置為向上計數(shù)或向下計數(shù),以在特定時間導(dǎo)致I/O被觸發(fā)。定時器期滿之后,該線程的優(yōu)先級上下文可以被設(shè)置為較高優(yōu)先級,以確定性地觸發(fā)I/O。這個例程,如果長的話,也可能考慮其它線程的任何處理,例如,幀的第一塊。以這種方式,如果在包括了已接收的命令的幀之后(可能在后)接收了在將來的某點(diǎn)觸發(fā)I/O的命令,那么定時器250使負(fù)責(zé)觸發(fā)I/O優(yōu)先級的線程優(yōu)先化,以實(shí)現(xiàn)更好控制I/O的觸發(fā)。例如,這樣的命令可能規(guī)定一些類似于“在5秒時間內(nèi)、或今天下午6點(diǎn)、或在20字節(jié)的時間內(nèi)跳轉(zhuǎn)I/O線”。當(dāng)定時器250期滿的時候,相應(yīng)線程的優(yōu)先級上下文則可以被設(shè)置為較高優(yōu)先級,或定時器250可以被用于屏蔽來自線程的請求,直到定時器250期滿,期滿之后,相應(yīng)線程被解除屏蔽,并且以基于直通模式和/或I/O觸發(fā)要求的優(yōu)先級上可用于選擇。在一些例子中,多個定時器可以用于支持多個線程。
[0053]因此,以這種方式,如果相應(yīng)請求被屏蔽或在預(yù)定時間限制內(nèi)沒有被處理,則控制器單元220內(nèi)的線程可以被優(yōu)先化,因此,實(shí)現(xiàn)了那個線程的調(diào)度以處理被加速的請求,以滿足等待時間/抖動和I/O觸發(fā)要求。在一些例子中,請求定時器250的持續(xù)時間可以是能配置的。以這種方式,對于處理在其相應(yīng)線程將被優(yōu)先化之后的請求的時間限制可以例如根據(jù)包括以下內(nèi)容的組中的一個或多個被配置:被直通轉(zhuǎn)發(fā)模塊200和/或等待時間/抖動要求支持的直通處理模式、相應(yīng)接收器組件210被配置的塊的大小B、被控制器單元220支持的線程的數(shù)目、線程在其上被執(zhí)行的(一個或多個)硬件處理器(未顯示)的處理能力(例如,處理速度/頻率)等等。因此,通過以這種方式實(shí)現(xiàn)請求定時器250的持續(xù)時間的配置,對優(yōu)先化并且因此數(shù)據(jù)轉(zhuǎn)發(fā)和/或I/O觸發(fā)的等待時間/抖動的進(jìn)一步控制可以在圖2的直通轉(zhuǎn)發(fā)模塊200內(nèi)被提供。
[0054]因此,在一些例子中,直通轉(zhuǎn)發(fā)模塊,例如以上參照附圖所描述的可能允許設(shè)計裝這樣的置,該裝置可以基本上有多個直通模式要求的優(yōu)化配置、尺寸、加電狀態(tài)以及價格。
[0055]本發(fā)明的至少一部分可以在計算機(jī)程序中被實(shí)施。該程序用于在計算機(jī)系統(tǒng)上運(yùn)行,至少包括用于當(dāng)在可編程的設(shè)備上,例如計算機(jī)系統(tǒng)或啟動可編程的設(shè)備以執(zhí)行根據(jù)本發(fā)明的裝置或系統(tǒng)的功能,運(yùn)行時,執(zhí)行一種根據(jù)本發(fā)明的方法的代碼部分。
[0056]計算機(jī)程序是一系列指令例如特定應(yīng)用和/或操作系統(tǒng)。計算機(jī)程序可能例如包括一個或多個:子程序、函數(shù)、程序、對象方法、對象實(shí)施、可執(zhí)行的應(yīng)用、小程序、小服務(wù)程序、源代碼、對象代碼、共享庫/動態(tài)裝載庫和/或設(shè)計用于在計算機(jī)系統(tǒng)上的執(zhí)行的其它指令序列。
[0057]計算機(jī)程序可以在計算機(jī)可讀存儲介質(zhì)上被內(nèi)部地存儲或通過計算機(jī)可讀傳輸介質(zhì)傳輸?shù)接嬎銠C(jī)系統(tǒng)?;蛘咭恍┯嬎銠C(jī)程序可以被永久地、可移除地提供在計算機(jī)可讀介質(zhì)或遠(yuǎn)程地耦合于信息處理系統(tǒng)。計算機(jī)可讀介質(zhì)可能包括,例如但不限于以下的任何數(shù)目:磁存儲介質(zhì)包括磁盤和磁帶存儲介質(zhì);光學(xué)存儲介質(zhì)例如光盤介質(zhì)(例如,CD-ROM、CD-R等等)以及數(shù)字視盤存儲介質(zhì);非易失性存儲器存儲介質(zhì)包括半導(dǎo)體存儲單元例如FLASH存儲、EEPR0M、EPR0M、ROM ;鐵磁數(shù)字存儲;MRAM ;易失性存儲介質(zhì)包括寄存器、緩沖或緩存、主存儲器、等等;以及數(shù)字傳輸介質(zhì)包括計算機(jī)網(wǎng)絡(luò)、點(diǎn)對點(diǎn)通信裝置、以及載波傳輸介質(zhì),僅舉幾例。
[0058]計算機(jī)處理通常地包括執(zhí)行(運(yùn)行)程序或程序的部分,現(xiàn)有的程序值和狀態(tài)信息,以及通過操作系統(tǒng)用于管理處理的執(zhí)行的資源。操作系統(tǒng)(OS)是管理一臺計算機(jī)的資源共享以及提供給程序員用于訪問這些資源的界面的軟件。操作系統(tǒng)處理系統(tǒng)數(shù)據(jù)和用戶輸入,以及通過配置和管理任務(wù)以及內(nèi)部系統(tǒng)資源作為系統(tǒng)對用戶和程序員的一項服務(wù)響應(yīng)。
[0059]計算機(jī)系統(tǒng)可能,例如,包括至少一個處理單元、關(guān)聯(lián)內(nèi)存和大量的輸入/輸出(I/o)裝置。當(dāng)執(zhí)行計算機(jī)程序時,計算機(jī)系統(tǒng)根據(jù)計算機(jī)程序處理信息并且通過I/O裝置生產(chǎn)生成的輸出信息。
[0060]在前面的說明中,參照本發(fā)明實(shí)施例的特定例子已經(jīng)對本發(fā)明進(jìn)行了描述。然而,很明顯各種修改和變化可以在不脫離附屬權(quán)利要求中所陳述的本發(fā)明的寬范圍精神及范圍的情況下被做出。
[0061]本發(fā)明所討論的連接可以是任何類型的連接。該連接適于將信號從或傳輸?shù)较鄳?yīng)節(jié)點(diǎn)、單元或裝置,例如通過穿孔中間裝置。因此,除非暗示或說明,連接,例如,可能是直接連接或間接連接。連接可以被說明或描述,涉及到是單一連接、多個連接、單向連接、或雙向連接。然而,不同實(shí)施例可能改變連接的實(shí)施。例如,可以使用單獨(dú)單向連接而不是雙向連接,反之亦然。此外,多個連接可以被替換為連續(xù)地或以時間多路復(fù)用方式傳輸多個信號的單一連接。同樣地,攜帶多個信號的單一連接可以被分離成各種不同的攜帶這些信號的子集的連接。因此,存在傳輸信號的許多選項。
[0062]本領(lǐng)域所屬技術(shù)人員將認(rèn)識到邏輯塊之間的界限僅僅是說明性的并且替代實(shí)施例可能合并邏輯塊或電路元素或在各種邏輯塊或電路元素上強(qiáng)加替代的分解功能。因此,應(yīng)了解本發(fā)明描述的架構(gòu)僅僅是示范的,并且事實(shí)上實(shí)施相同功能的很多其它架構(gòu)可以被實(shí)施。例如,為了便于理解,單一的一體化控制器單元220在圖2中被說明。然而,應(yīng)了解該控制器單元的功能可以分布在直通轉(zhuǎn)發(fā)模塊220內(nèi)的多個硬件和/或軟件組件中。此外,為了便于理解,線程調(diào)度器230和請求處理器240被說明為控制器單元220內(nèi)的離散功能組件。然而,應(yīng)了解這些組件的每個的功能可以在控制器單元220內(nèi)的任何數(shù)目的離散硬件和/或軟件組件中被一起或單獨(dú)平等地被實(shí)施。
[0063]為實(shí)施相同功能的任何元件的排列是有效地“關(guān)聯(lián)”使得所需的功能得以實(shí)施。因此,為實(shí)施特定功能,本發(fā)明中結(jié)合在一起的任何兩個元件可以被看作彼此“相關(guān)聯(lián)”使得所需的功能得以實(shí)施,不論架構(gòu)還是中間元件。同樣地,如此關(guān)聯(lián)的任何兩個元件還可以被認(rèn)為是彼此被“可操作連接”或“可操作耦合”以實(shí)施所需的功能。
[0064]此外,本領(lǐng)域所屬技術(shù)人員將認(rèn)識到上述描述的操作之間的界限只是說明性的。多個操作可以組合成單一的操作,單一的操作可以分布在附加操作中,并且操作可以至少在時間上部分重疊被執(zhí)行。而且,替代實(shí)施例可能包括特定操作的多個實(shí)例,并且操作的順序在各種其它實(shí)施例中會改變。
[0065]又如,例子或其中的一部分可能作為物理電路的軟或代碼表征被實(shí)施,或作為能夠轉(zhuǎn)化成物理電路的邏輯表征,例如在任何合適類型的硬件描述語言中被實(shí)施。
[0066]此外,本發(fā)明不限定在非程序化硬件中被實(shí)施的物理裝置或單元,但也可以應(yīng)用在可編程裝置或單元中。這些裝置或單元通過操作能夠執(zhí)行所需的裝置功能。該執(zhí)行是根據(jù)合適的程序代碼,例如,主機(jī)、微型計算機(jī)、服務(wù)器、工作站、個人電腦、筆記本、個人數(shù)字助理、電子游戲、汽車和其它嵌入式系統(tǒng)、手機(jī)和其它無線裝置,在本申請中通常表示“計算機(jī)系統(tǒng)”。
[0067]然而,其它修改、變化和替代也是可能的。說明書和附圖相應(yīng)地被認(rèn)為是從說明性的而不是嚴(yán)格意義上來講的。
[0068]在權(quán)利要求中,放置在括號之間的任何參考符號不得被解釋為限定權(quán)利要求。單詞“包括”不排除其它元素或然后在權(quán)力要求中列出的那些步驟的存在。此外,本發(fā)明所用的“a”或“aN”被定義為一個或多個。并且,在權(quán)利要求中所用詞語如“至少一個”以及“一個或多個”不應(yīng)該被解釋以暗示通過不定冠詞“a”或“aN”引入的其它權(quán)利要求元素限定任何其它特定權(quán)利要求。所述特定權(quán)利要求包括這些所介紹的對發(fā)明的權(quán)利元素,所述權(quán)利元素不僅僅包括這樣的元素。即使當(dāng)同一權(quán)利要求中包括介紹性短語“一個或多個”或“至少一個”以及不定冠詞,例如“a”或“aN”。使用定冠詞也是如此。除非另有說明,使用術(shù)語如“第一”以及“第二”是用于任意區(qū)分這些術(shù)語描述的元素的。因此,這些術(shù)語不一定表示時間或這些元素的其它優(yōu)先化。某些措施在相互不同的權(quán)利要求中被列舉的事實(shí)并不表示這些措施的組合不能被用于獲取優(yōu)勢。
【權(quán)利要求】
1.一種集成電路裝置(205),包括至少一個直通轉(zhuǎn)發(fā)模塊(200),所述直通轉(zhuǎn)發(fā)模塊(200)包括: 至少一個接收器組件(210),所述至少一個接收器組件(210)被布置成接收要被轉(zhuǎn)發(fā)的數(shù)據(jù),并且一旦其接收到,就產(chǎn)生用于傳輸數(shù)據(jù)塊的請求(212);以及 至少一個控制器單元(220),所述至少一個控制器單元(220)被布置成執(zhí)行至少一個線程(225、310、320、330、340、350),所述至少一個線程(225、310、320、330、340、350)用于處理由所述至少一個接收器組件(210)生成的請求, 其中所述至少一個控制器單元(220)被布置成:設(shè)置所述至少一個線程(225、310、320、330、340、350)的優(yōu)先級上下文,并且至少部分基于所述優(yōu)先級上下文來調(diào)度所述至少一個線程的執(zhí)行。
2.根據(jù)權(quán)利要求1所述的集成電路裝置(205),其中所述控制器單元(220)還被布置成:調(diào)度較高優(yōu)先級線程(225、310、320、330、340、350),針對所述較高優(yōu)先級線程(225、310、320、330、340、350)的請求(212)要求在較低優(yōu)先級線程(225、310、320、330、340、350)之前處理。
3.根據(jù)權(quán)利要求1或2所述的集成電路裝置(205),其中所述控制器單元(220)被布置成:在所述至少一個線程(225、310、320、330、340、350)的執(zhí)行期間,占先地設(shè)置該線程(225、310、320、330、340、350)的所述優(yōu)先級上下文。
4.根據(jù)權(quán)利要求3所述的集成電路裝置(205),其中所述控制器單元(220)被布置成:一旦在所述至少一個線程(225、310、330、350)內(nèi)處理了來自所述至少一個接收器組件(210)的針對數(shù)據(jù)幀中最后塊的請求(212),就將該線程的所述優(yōu)先級上下文設(shè)置為較高優(yōu)先級。`
5.根據(jù)權(quán)利要求4所述的集成電路裝置(205),其中所述控制器單元(220)還被布置成:一旦在線程(225、310、330、350)內(nèi)處理了來自所述至少一個接收器組件(210)的針對數(shù)據(jù)幀中第一塊的請求(212),就將該線程的優(yōu)先級上下文設(shè)置為較低優(yōu)先級。
6.根據(jù)權(quán)利要求3-5中任何一項所述的集成電路裝置(205),其中,所述控制器單元(220)被布置成:一旦在線程(225、310、330、350)內(nèi)處理了來自所述至少一個接收器組件(210)的針對數(shù)據(jù)幀中第N塊的請求(212),就將該線程的優(yōu)先級上下文設(shè)置為較高優(yōu)先級,其中N包括為該數(shù)據(jù)幀接收的多個數(shù)據(jù)塊。
7.根據(jù)權(quán)利要求6所述的集成電路裝置(205),其中,所述控制器單元(220)被布置成:一旦在線程(225、310、330、350)內(nèi)處理了來自所述至少一個接收器組件的針對數(shù)據(jù)幀中第(M*N)塊的請求(212),就將該線程的優(yōu)先級上下文設(shè)置為較高優(yōu)先級,其中M包括整數(shù)值。
8.根據(jù)權(quán)利要求6或7所述的集成電路裝置(205),其中,所述控制器單元(220)被布置成:一旦在線程(225、310、330、350)內(nèi)處理了來自所述至少一個接收器組件的針對數(shù)據(jù)幀中第((M*N)+1)塊的請求(212),就將該線程的優(yōu)先級上下文設(shè)置為較低優(yōu)先級。
9.根據(jù)權(quán)利要求6-8中任何一項所述的集成電路裝置(205),其中N包括為該數(shù)據(jù)幀接收的能配置的預(yù)定義數(shù)目的數(shù)據(jù)塊。
10.根據(jù)任何一項前述權(quán)利要求所述的集成電路裝置(205),其中所述控制器單元(220)還被布置成:一旦接收到來自所述至少一個接收器組件(210)的請求(212),就初始化請求定時器(250),以及如果請求(212)在所述請求定時器(250)期滿之后未被處理,則將針對該請求(212)的線程(225、310、330、350)的優(yōu)先級上下文設(shè)置為較高優(yōu)先級。
11.根據(jù)權(quán)利要求10所述的集成電路裝置(205),其中所述請求定時器(250)的持續(xù)時間是能配置的。
12.根據(jù)任何一項前述權(quán)利要求所述的集成電路裝置(205),其中所述控制器單元(220)還被布置成:在預(yù)定數(shù)目X的處理周期中在第一線程(225、310、330、350)內(nèi)處理請求(212)之后, 確定至少一個另外的線程(225、310、330、350)是否包括被設(shè)置為較高優(yōu)先級的優(yōu)先級上下文;以及 如果確定所述至少一個另外的線程(225、310、330、350)包括被設(shè)置為高優(yōu)先級的優(yōu)先級上下文,則暫停在所述第一線程(225、310、330、350)內(nèi)處理所述請求(212)。
13.根據(jù)權(quán)利要求12所述的集成電路裝置(205),其中所述X包括能配置的預(yù)定義數(shù)目的處理周期。
14.根據(jù)任何一項前述權(quán)利要求所述的集成電路裝置(205),其中所述控制器單元(220)的一個線程的所述優(yōu)先級上下文對所述控制器單元220內(nèi)的其它線程是可見的。
15.根據(jù)任何一項前述權(quán)利要求所述的集成電路裝置(205),其中,所述至少一個接收器組件(210)被布置成:一旦接收到B字節(jié)數(shù)據(jù)的塊,就生成用于傳輸數(shù)據(jù)塊的請求(212);其中數(shù)據(jù)塊的大小B是能配置的。
16.根據(jù)權(quán)利要求15`所述的集成電路裝置(205),其中,所述控制器單元(220)還被布置成:一旦接收到所述至少一個接收器組件(210)將要生產(chǎn)用于其傳輸?shù)恼埱?,就配置?shù)據(jù)塊的大小B。
17.一種用于執(zhí)行分組數(shù)據(jù)的直通轉(zhuǎn)發(fā)的方法(400、800),所述方法包括: 從接收器組件接收用于傳輸數(shù)據(jù)塊的至少一個請求(810);以及 執(zhí)行至少一個線程(500、600、700),所述至少一個線程用于處理從所述至少一個接收器組件接收的所述至少一個請求; 其中所述方法還包括: 設(shè)置所述至少一個線程的優(yōu)先級上下文,以及 至少部分基于所述優(yōu)先級上下文,調(diào)度所述至少一個線程的執(zhí)行。
18.根據(jù)權(quán)利要求17所述的方法(400,800),其中,所述方法還包括:調(diào)度較高優(yōu)先級線程的執(zhí)行,針對所述較高優(yōu)先級線程的請求(212)要求在較低優(yōu)先級線程之前處理(430,470)。
19.根據(jù)權(quán)利要求18所述的方法(400,800),其中,在線程的執(zhí)行期間,占先地設(shè)置該線程的優(yōu)先級上下文(540、580、640、680)。
20.根據(jù)權(quán)利要求17-19中任何一項所述的方法(400,800),其中,所述方法還包括: 一旦接收到來自所述至少一個接收器組件的請求,就初始化請求定時器(830);以及 如果在所述請求定時器(250)期滿之后該請求未被處理,則將該請求的線程的優(yōu)先級上下文設(shè)置為較高優(yōu)先級(860)。
【文檔編號】H04L12/701GK103493440SQ201180070254
【公開日】2014年1月1日 申請日期:2011年4月20日 優(yōu)先權(quán)日:2011年4月20日
【發(fā)明者】格拉哈姆·埃德米斯頓 申請人:飛思卡爾半導(dǎo)體公司