專利名稱:具有經(jīng)由通信網(wǎng)絡(luò)耦合的處理單元的電子電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種電子電路,尤其涉及一種具有多個(gè)經(jīng)由通信網(wǎng)絡(luò)互相傳送處理數(shù)據(jù)的數(shù)據(jù)處理單元的集成電路。
背景技術(shù):
在具有多個(gè)數(shù)據(jù)處理單元的系統(tǒng)中,不同數(shù)據(jù)處理電路之間的數(shù)據(jù)通信是確定系統(tǒng)有效性的重要因素。在簡單系統(tǒng)中,可以在處理電路之間使用直接連接,通常包括連接所有處理單元的多條數(shù)據(jù)總線,這樣發(fā)送電路和接收電路能夠即時(shí)共享狀態(tài)信息。
在更復(fù)雜的系統(tǒng)中,可以使用通信網(wǎng)絡(luò)來傳送數(shù)據(jù)。這樣的網(wǎng)絡(luò)常引起數(shù)據(jù)發(fā)送時(shí)間和接收時(shí)間之間的延遲。處理單元失去對消息接收時(shí)間的直接控制。這就帶來了問題,因?yàn)槠涫沟秒y以確定處理單元是否可以繼續(xù)發(fā)送新數(shù)據(jù)還是應(yīng)等到接收方就緒。為解決此問題,需要一種特殊機(jī)制來調(diào)整接收和發(fā)送電路。
美國專利No.6,594,701公開了一種電子電路,其中以信用報(bào)告(credit report)的方式來控制經(jīng)由網(wǎng)絡(luò)的通信。接收電路動態(tài)地確定還有多少空閑緩沖空間可用于接收來自發(fā)送電路的數(shù)據(jù),并通過網(wǎng)絡(luò)將有關(guān)可用空閑緩沖空間的信用報(bào)告發(fā)給發(fā)送電路。發(fā)送電路注冊所報(bào)告的信用,當(dāng)發(fā)送數(shù)據(jù)時(shí)減少所注冊的信用,并保證發(fā)送的數(shù)據(jù)不多于注冊為空閑可用的緩沖空間內(nèi)所能存儲的數(shù)據(jù)?;谛庞玫耐ㄐ趴煽醋魑帐謪f(xié)議的擴(kuò)展,在握手協(xié)議中發(fā)送電路在發(fā)消息后等待來自接收電路的返回消息,該返回消息的內(nèi)容是用于下一消息的空閑空間變?yōu)榭捎?。與這樣的握手協(xié)議相比,基于信用的通信支持更高的數(shù)據(jù)速率,這是因?yàn)榘l(fā)送電路能以本地信息為基礎(chǔ)決定發(fā)送下一消息(以及關(guān)于消息的大小),而通常無需等待有關(guān)緩沖空間的釋放的下一消息。
美國專利No.6,594,701描述了能使接收電路確定何時(shí)應(yīng)該給發(fā)送電路發(fā)送信用報(bào)告的多種算法。一種推薦解決方案是使用時(shí)間周期報(bào)告。另一種解決方案使用對發(fā)送電路中可用信用數(shù)量的估計(jì)如果一接收到來自發(fā)送電路的消息,先前報(bào)告的信用就減少了接收到數(shù)據(jù)量而下降到一個(gè)閾值之下,則發(fā)送信用報(bào)告。該專利依據(jù)觀察到的發(fā)送電路數(shù)據(jù)速率描述了不同閾值的使用。
美國專利No.6,460,080描述了基于信用的通信,其中,發(fā)送電路發(fā)送信用請求來觸發(fā)信用報(bào)告的發(fā)送。當(dāng)發(fā)送電路要發(fā)送消息,但無足夠信用可用時(shí),該發(fā)送電路改為發(fā)送一個(gè)信用請求。接收電路接收到該信用請求并返回一個(gè)信用報(bào)告,如有必要?jiǎng)t等到足夠的空閑緩沖區(qū)空間可用之后返回。
可使用網(wǎng)絡(luò)來交換信用報(bào)告,且如果可行的話信用請求消耗網(wǎng)絡(luò)帶寬。希望能將消耗帶寬的數(shù)量最小化。US 6,594,701通過在網(wǎng)絡(luò)以外報(bào)告信用做到了這一點(diǎn),但這使通信電路復(fù)雜化。
當(dāng)處理電路具有通過網(wǎng)絡(luò)的雙向數(shù)據(jù)通信時(shí),一種減少用于信用報(bào)告的網(wǎng)絡(luò)帶寬的具有吸引力的可能性出現(xiàn)了。在這種情況下,能夠?qū)⒂糜谝粋€(gè)方向上的發(fā)送的信用報(bào)告添加到在另一方向上發(fā)送的數(shù)據(jù)消息中的數(shù)據(jù)上,反之亦然。這樣,消息開銷能夠由數(shù)據(jù)和信用報(bào)告所共享。然而,減少用于信用報(bào)告的帶寬應(yīng)以不減少或不顯著減少數(shù)據(jù)傳輸速率的方式實(shí)現(xiàn),例如,通過使發(fā)送電路暫停發(fā)送來等待信用報(bào)告的方式。
發(fā)明內(nèi)容
其中,本發(fā)明的一個(gè)目標(biāo)是減少用于信用報(bào)告的網(wǎng)絡(luò)帶寬,而對使用所報(bào)告信用的數(shù)據(jù)能夠傳輸?shù)乃俾蕸]有不希望的影響。
其中,本發(fā)明的一個(gè)目標(biāo)是有效利用一對處理電路之間的雙向數(shù)據(jù)通信以減少用于信用報(bào)告的網(wǎng)絡(luò)帶寬。
根據(jù)本發(fā)明的電路在權(quán)利要求1中闡明。該電路使用雙向網(wǎng)絡(luò)接口。該網(wǎng)絡(luò)接口至少在部分具有數(shù)據(jù)項(xiàng)的輸出消息中,包括了表示各自的用于從輸入消息中接收數(shù)據(jù)項(xiàng)的未報(bào)告緩沖空間的數(shù)量R的信息。網(wǎng)絡(luò)接口的發(fā)送控制電路觸發(fā)輸出消息的發(fā)送。該發(fā)送控制電路控制阻止發(fā)送,直至數(shù)據(jù)項(xiàng)的數(shù)目A超過一個(gè)典型地被設(shè)置為多個(gè)(>1)數(shù)據(jù)項(xiàng)的閾值,其中所述數(shù)據(jù)項(xiàng)可用于發(fā)送并且通過網(wǎng)絡(luò)云南關(guān)于所述數(shù)據(jù)項(xiàng)的緩沖空間是可用的。然而,響應(yīng)于未報(bào)告緩沖空間的數(shù)量R上的增長,發(fā)送控制電路降低該閾值、或在完全抑制該閾值,其中所述未報(bào)告緩沖空間在用于特定的一個(gè)處理電路的緩沖存儲器電路中。這樣,一方面,通過將數(shù)據(jù)發(fā)送、用于返回?cái)?shù)據(jù)的信用組合發(fā)送以及使用閾值,減少了帶寬的使用。另一方面,通過隨著未報(bào)告信用的數(shù)量增加而降低閾值、和/或當(dāng)未報(bào)告信用的數(shù)量超過一個(gè)閾值時(shí)抑制閾值(即不再阻止發(fā)送),來減少由未報(bào)告信用或數(shù)據(jù)引起的延遲。優(yōu)選地,該閾值以及該閾值減小的條件是可編程的。
在另一個(gè)實(shí)施例中,發(fā)送控制電路支持清除(flush)命令。響應(yīng)于該清除命令,從先前處理電路已經(jīng)使其可用的未發(fā)送數(shù)據(jù)項(xiàng)中取樣得到B個(gè)未發(fā)送數(shù)據(jù)項(xiàng)。觸發(fā)一條或更多的發(fā)送消息的發(fā)送,直到至少B個(gè)數(shù)據(jù)項(xiàng)已經(jīng)被發(fā)出,而無需等到數(shù)目A超過閾值和/或未報(bào)告的可用緩沖空間的數(shù)量R降低或抑制該閾值。
在消息發(fā)送之后隨著時(shí)間的流逝可以將該閾值有效降低。例如,如果數(shù)目A超出該閾值和/或數(shù)量R超出另一閾值,則發(fā)送控制電路可以觸發(fā)發(fā)送。這可以用一種簡單的方式檢測到。在另一實(shí)施例中,如果數(shù)目A和數(shù)量R的加權(quán)和超過了另一閾值,則觸發(fā)發(fā)送。
將利用下列附圖詳細(xì)描述本發(fā)明的這些以及其它目標(biāo)和有利方面圖1示出了一種電子電路;圖2示出了一種網(wǎng)絡(luò)接口。
具體實(shí)施例方式
圖1示出了一個(gè)電子電路,其包含多個(gè)處理電路10、通信網(wǎng)絡(luò)12以及網(wǎng)絡(luò)接口電路14。處理電路10經(jīng)由網(wǎng)絡(luò)接口電路14耦合到網(wǎng)絡(luò)12上。通信網(wǎng)絡(luò)12具有多個(gè)用于不同的處理電路10的終端(作為例子,示出了八個(gè)),但為了簡明,只示出兩個(gè)連接的處理電路10。通信網(wǎng)絡(luò)12可以是任意已知類型。例如,其可以包括交叉式(cross-bar)交換機(jī)、中繼器等。特別是在網(wǎng)絡(luò)12中不同的消息同時(shí)傳播成為可能,使得消息在網(wǎng)絡(luò)12中相互交錯(cuò)。這允許高處理速度。
圖2示出一個(gè)雙向網(wǎng)絡(luò)接口電路14的例子。在該例子中,雙向網(wǎng)絡(luò)接口電路14包含F(xiàn)IFO(先入先出)輸出緩沖區(qū)20、發(fā)送控制電路22、發(fā)送復(fù)用器24、發(fā)送信用注冊單元25、接收解復(fù)用器26、FIFO輸入緩沖區(qū)27、接收控制電路28以及接收信用注冊單元29。處理電路10的輸出端耦合到FIFO輸出緩沖區(qū)20的輸入端。發(fā)送控制電路22耦合到FIFO輸出緩沖區(qū)20的控制輸出和輸入端,耦合到發(fā)送復(fù)用器24的控制輸入端,耦合到發(fā)送信用注冊單元25以及接收信用注冊單元29。發(fā)送復(fù)用器24輸入端耦合到發(fā)送控制電路22和FIFO輸出緩沖區(qū)20。
接收解復(fù)用器26具有耦合到接收控制電路28和FIFO輸入緩沖區(qū)27的輸出端。FIFO輸入緩沖區(qū)27具有耦合到處理電路10的輸入端的輸出端。接收控制電路28耦合到FIFO輸入緩沖區(qū)27、接收信用注冊單元29以及接收解復(fù)用器26的控制輸入端。在操作中,數(shù)據(jù)處理電路10產(chǎn)生連續(xù)的數(shù)據(jù)項(xiàng),諸如16、32或64比特的字。網(wǎng)絡(luò)接口電路14經(jīng)由通信網(wǎng)絡(luò)12以消息的方式將數(shù)據(jù)項(xiàng)發(fā)送給其它數(shù)據(jù)處理電路。其它數(shù)據(jù)處理單元接收到消息并將數(shù)據(jù)項(xiàng)用于進(jìn)一步處理。數(shù)據(jù)處理電路10將數(shù)據(jù)項(xiàng)寫入FIFO輸出緩沖區(qū)20。可以使用常規(guī)的FIFO緩沖區(qū)接口(其向處理電路10發(fā)信號告知FIFO輸出緩沖區(qū)20是否為滿)來防止在FIFO輸出緩沖區(qū)20為滿的時(shí)候處理電路10寫入。
經(jīng)過若干時(shí)間,發(fā)送控制電路22開始在網(wǎng)絡(luò)12上發(fā)送具有多個(gè)數(shù)據(jù)項(xiàng)的消息。在這種情況下,發(fā)送控制電路22生成一個(gè)報(bào)頭(header)并使發(fā)送復(fù)用器24將該報(bào)頭輸出到網(wǎng)絡(luò)12。該報(bào)頭可以包含用于同步符號、目的地址、消息長度碼以及信用信息的多個(gè)字段。接著發(fā)送控制電路22控制FIFO輸出緩沖區(qū)20將數(shù)據(jù)項(xiàng)輸出給發(fā)送復(fù)用器24,并控制發(fā)送復(fù)用器24輸出數(shù)據(jù)到網(wǎng)絡(luò)12。在消息的結(jié)尾,發(fā)送控制電路可以發(fā)送停止符號和可選的糾錯(cuò)數(shù)據(jù)(數(shù)據(jù)項(xiàng)的數(shù)目對應(yīng)于報(bào)頭內(nèi)指定的長度,但當(dāng)使用了停止符號時(shí)可以忽略此長度,反之亦然;停止符號的優(yōu)勢是可以將在消息發(fā)送時(shí)到達(dá)輸出緩沖區(qū)20的數(shù)據(jù)添加到消息上)。例如,最后所得到的消息可以具有如下內(nèi)容消息=報(bào)頭,數(shù)據(jù)項(xiàng),數(shù)據(jù)項(xiàng),數(shù)據(jù)項(xiàng)(雖然將本發(fā)明的一個(gè)實(shí)施例描述為利用了整個(gè)數(shù)據(jù)項(xiàng)的產(chǎn)生、發(fā)送和消耗,但應(yīng)理解,例如可以將最后的數(shù)據(jù)項(xiàng)的部分分散在連續(xù)多個(gè)消息中發(fā)送而不偏離本發(fā)明,或者不同的處理單元的數(shù)據(jù)項(xiàng)顆粒尺寸可以不同,這使得對于一個(gè)處理電路的一個(gè)數(shù)據(jù)項(xiàng)(例如一個(gè)64比特字)對于另一個(gè)處理電路可以是多于一個(gè)的一組數(shù)據(jù)項(xiàng)(例如四個(gè)16比特字))。
一接收到消息,接收解復(fù)用器26首先將報(bào)頭傳給接收控制電路28,隨后該接收控制電路28使接收解復(fù)用器26將來自該消息的數(shù)據(jù)項(xiàng)傳給FIFO輸入緩沖區(qū)27,并且使FIFO輸入緩沖區(qū)27接收數(shù)據(jù)項(xiàng)。處理電路10連續(xù)地從FIFO輸入緩沖區(qū)27讀取數(shù)據(jù)項(xiàng)。常規(guī)的FIFO緩沖區(qū)接口(其向處理電路10指示FIFO緩沖區(qū)是否為空)可以用在FIFO輸入緩沖區(qū)27和處理電路10之間,以防止在FIFO輸入緩沖區(qū)27為空時(shí)的讀取。
特定的發(fā)送網(wǎng)絡(luò)接口電路14的發(fā)送信用注冊單元25存儲了數(shù)字T(也稱為信用數(shù)量),其表示消息所發(fā)送給的另一接收網(wǎng)絡(luò)接口電路14的FIFO輸入緩沖區(qū)27中至少有多少空閑緩沖空間可用。該特定的發(fā)送網(wǎng)絡(luò)接口電路14的接收信用注冊單元29存儲了數(shù)字R,其表示在該特定的發(fā)送網(wǎng)絡(luò)接口電路14的FIFO輸入緩沖區(qū)27中有多少未報(bào)告的空閑緩沖空間可用。
發(fā)送控制電路22限制了發(fā)送的消息中的數(shù)據(jù)量L,使得不會有比發(fā)送信用注冊單元25所指示的可用空閑緩沖空間T更多的數(shù)據(jù)被從FIFO輸出緩沖區(qū)20輸出到消息中。當(dāng)消息發(fā)送時(shí),發(fā)送控制電路22使發(fā)送信用注冊單元25中的信用數(shù)量T與發(fā)送的數(shù)據(jù)量L相對應(yīng)地降低。
發(fā)送控制電路22在報(bào)頭中包括了信用信息R,以報(bào)告FIFO輸入緩沖區(qū)27中先前未報(bào)告的空閑空間的可用性。特定的發(fā)送網(wǎng)絡(luò)接口電路14的接收信用注冊單元29存儲了表示網(wǎng)絡(luò)接口電路14中FIFO輸出緩沖區(qū)27有多少未報(bào)告的空閑緩沖空間可用的數(shù)目R。每次當(dāng)處理電路10從FIFO輸入緩沖區(qū)27讀取數(shù)據(jù)項(xiàng)時(shí),接收信用注冊單元29增加未報(bào)告的空閑緩沖空間的數(shù)目R。當(dāng)發(fā)送控制電路22發(fā)送消息時(shí),它從接收信用注冊單元29中讀取未報(bào)告的空閑緩沖空間的數(shù)量R,在該消息的報(bào)頭中插入表示該數(shù)量R的數(shù)字,并復(fù)位接收信用注冊單元29,將接收信用注冊單元29中復(fù)位為零值R=0。在不偏離本發(fā)明的情況下,可以報(bào)告較低數(shù)量P<R,在這種情況下在接收信用注冊單元29中所表示的數(shù)量被降低了P。
一接收到消息,接收控制電路28就從報(bào)頭讀取未報(bào)告的空閑空間的數(shù)量R′,并使發(fā)送信用注冊單元25以來自報(bào)頭的未報(bào)告的空閑空間的數(shù)量R′來增加可用空閑緩沖空間的數(shù)量T。
消息在選定的時(shí)機(jī)發(fā)送。發(fā)送控制電路22根據(jù)能夠從FIFO輸出緩沖區(qū)20發(fā)送的數(shù)據(jù)量A和由接收信用注冊單元29指示的未報(bào)告的可用空閑空間的數(shù)量R來確定何時(shí)發(fā)送消息。當(dāng)數(shù)據(jù)量A和/或未報(bào)告的可用空閑空間的數(shù)量R之任一或兩者都充分增加時(shí),發(fā)送控制電路22發(fā)送消息。在一個(gè)實(shí)施例中,發(fā)送消息的標(biāo)準(zhǔn)是A>M1或R>M2此處M1和M2是閾值,其優(yōu)選地是可編程的,這使該接口的操作能夠適應(yīng)于操作環(huán)境(operating context)。例如,能夠從FIFO輸出緩沖區(qū)20發(fā)送的數(shù)據(jù)量A被確定為是FIFO輸出緩沖區(qū)20中的數(shù)據(jù)量B和來自發(fā)送信用注冊單元25的信用數(shù)量T中的最小值。然而,應(yīng)認(rèn)識到其它用于發(fā)送消息的標(biāo)準(zhǔn)也是可能的,例如,αA+R>M其中α是某個(gè)正加權(quán)因子或(B>M3且T>M4)或R>M5優(yōu)選地,閾值M、M3、M4、M5是可編程的,這樣使接口的操作能夠適應(yīng)于操作環(huán)境。
在所發(fā)送的消息中,這樣的數(shù)據(jù)被發(fā)送(a)可用的并且(b)根據(jù)信用數(shù)量T能夠接收到的。應(yīng)注意,決定要發(fā)送消息并不必須要求有至少預(yù)定數(shù)量的數(shù)據(jù)可用、或至少預(yù)定數(shù)量的信用可用。當(dāng)未報(bào)告的可用空閑空間的數(shù)量R充分上升時(shí),無論如何都要發(fā)送一條消息,即使消息中數(shù)據(jù)量為零或很小的情況也是如此。
應(yīng)認(rèn)識到,在此類標(biāo)準(zhǔn)下,一方面使用了一個(gè)或更多閾值來確保網(wǎng)絡(luò)帶寬的使用最小化,同時(shí)另一方面能夠撤銷用于數(shù)據(jù)和信用中任一個(gè)的閾值,這樣至少不會有過多數(shù)量的未報(bào)告的空閑空間R累積。由于正常數(shù)據(jù)發(fā)送時(shí)盡可能多地報(bào)告信用信息R,因此網(wǎng)絡(luò)帶寬使用得以減少。由于數(shù)據(jù)被累積以便來自FIFO輸出緩沖區(qū)20的多個(gè)數(shù)據(jù)項(xiàng)優(yōu)選地被組合成一條消息,從而能夠共享報(bào)頭的開銷,因此也減少了網(wǎng)絡(luò)帶寬使用。為了減少帶寬使用,優(yōu)選地,在不使接收數(shù)據(jù)處理電路10等待數(shù)據(jù)的情況下,將閾值M1(或閾值M3和M4)設(shè)置成盡可能地高。當(dāng)沒有足夠的數(shù)據(jù)可用時(shí),如有足夠的未報(bào)告的空閑緩沖空間R可用,則仍發(fā)送消息。為了減少帶寬使用,優(yōu)選地,在不使接收數(shù)據(jù)處理電路10等待緩沖空間的情況下,將閾值M2(或M5)設(shè)置成盡可能地高。
網(wǎng)絡(luò)可以為消息強(qiáng)加(impose)一個(gè)固定長度或最大長度。在這種情況下,此長度可以被用做閾值M1(或閾值M3和M4)。在固定長度消息的情況下,當(dāng)因未報(bào)告的空閑緩沖空間R超過閾值而發(fā)送消息時(shí),如果無足夠的可發(fā)送的數(shù)據(jù)A可用,則可能有必要為消息中的數(shù)據(jù)留出未使用的空間。
在另一個(gè)實(shí)施例中,時(shí)間被用做發(fā)送消息的附加觸發(fā)器。例如發(fā)送控制電路22可以包含定時(shí)器,并可用于在存在任何數(shù)據(jù)(A>0)或未報(bào)告的空閑緩沖空間(R>0)且在預(yù)定時(shí)間內(nèi)無消息發(fā)送的情況下,來發(fā)送一條消息。在另一個(gè)實(shí)施例中,發(fā)送控制電路22閾值(M1、M2、M3、M4、M5和/或M)在發(fā)送之前最后一個(gè)消息之后隨時(shí)間減少。在另一個(gè)實(shí)施例中,根據(jù)自從未報(bào)告的空閑空間和/或未發(fā)送的數(shù)據(jù)變?yōu)榭捎煤笏?jīng)過的時(shí)間間隔,可以在用于發(fā)送消息的標(biāo)準(zhǔn)中將未報(bào)告的空閑空間和/或未發(fā)送的數(shù)據(jù)加權(quán)更重。例如,該標(biāo)準(zhǔn)可以是min(T,∑iw(t-ti))>M1或∑jRjw′(t-tj)>M2
此處i標(biāo)識不同的數(shù)據(jù)項(xiàng),j標(biāo)識不同的緩沖空間區(qū)域,t-ti標(biāo)識自從寫入數(shù)據(jù)項(xiàng)i后經(jīng)過的時(shí)間,t-tj標(biāo)識自從尺寸為Rj的區(qū)域j變?yōu)榭捎煤蠼?jīng)過的時(shí)間,而w()和w′()是隨增加的所經(jīng)過的時(shí)間而增加的加權(quán)函數(shù)。同樣地,通過每次在新數(shù)據(jù)項(xiàng)到達(dá)時(shí)計(jì)算新的累積權(quán)重Wn=w+β(ti-ti-1)Wn-1來定義累積權(quán)重,β(ti-ti-1)>1隨著時(shí)間增加,且類似的權(quán)重W′n=Rj+β(tj-tj-1)Wn-1用于緩沖空間。在這種情況下,標(biāo)準(zhǔn)可以是min(T,W)>M1或W′>M2。作為替換,信用數(shù)量也可以作為時(shí)間函數(shù)來漸增地加權(quán)。作為另一個(gè)替換,權(quán)重可以增加(或者,相對應(yīng)地,閾值可以作為自從最后發(fā)送的消息開始的時(shí)間函數(shù)而下降)。
在另一個(gè)實(shí)施例中,發(fā)送控制電路22用于響應(yīng)來自處理電路10的“清除”命令。當(dāng)發(fā)送控制電路22檢測到清除命令時(shí),它對有關(guān)FIFO輸出緩沖區(qū)20內(nèi)的數(shù)據(jù)量的信息進(jìn)行采樣。隨后發(fā)送控制電路22撤銷了發(fā)送消息的標(biāo)準(zhǔn),并在每次信用T>0可用時(shí)發(fā)送一條消息(或多條消息),直到至少所采樣的數(shù)據(jù)量已經(jīng)被以消息發(fā)送。隨后發(fā)送控制電路22恢復(fù)了初始的消息發(fā)送的標(biāo)準(zhǔn)。
雖然將本發(fā)明說明為一對處理電路10之間的通信,但應(yīng)認(rèn)識到,任何處理電路10可以經(jīng)由網(wǎng)絡(luò)12與多于一個(gè)的其它處理電路10進(jìn)行通信。在這種情況下,處理電路10可以經(jīng)由多個(gè)網(wǎng)絡(luò)接口連接到網(wǎng)絡(luò)12。不同的網(wǎng)絡(luò)接口可以共享相同的到網(wǎng)絡(luò)12的連接,例如,以復(fù)用的方式。當(dāng)然,不同的網(wǎng)絡(luò)接口可以共享諸如復(fù)用器24、發(fā)送控制電路22等的硬件,但應(yīng)為不同的網(wǎng)絡(luò)接口保持各自的信用數(shù)目T。
在一個(gè)實(shí)施例中,并行地使用多個(gè)FIFO輸出緩沖區(qū)和/或FIFO輸入緩沖區(qū),用于不同的數(shù)據(jù)流。在這種情況下,使用一種判優(yōu)模式來選擇FIFO輸出緩沖區(qū)將以何種次序提供數(shù)據(jù)??梢允褂萌魏芜m當(dāng)?shù)哪J剑T如輪循(round robin)模式或基于優(yōu)先級(priority base)模式。
優(yōu)選地,還應(yīng)保持各自的表示未報(bào)告的空閑空間的數(shù)目,但是可選地,不同的網(wǎng)絡(luò)接口14可以從同一池中取出未報(bào)告的空閑空間,從而使用單個(gè)的數(shù)目R。在這種情況下,例如,每個(gè)網(wǎng)絡(luò)接口14可報(bào)告數(shù)目R的一個(gè)預(yù)定的部分,如一個(gè)接口40%,而另一個(gè)接口60%。當(dāng)然許多對處理電路10可以并行地經(jīng)由網(wǎng)絡(luò)進(jìn)行通信。一個(gè)網(wǎng)絡(luò)接口可以從與用于一個(gè)處理電路的網(wǎng)絡(luò)接口進(jìn)行通信切換到與用于另一個(gè)處理電路的網(wǎng)絡(luò)接口進(jìn)行通信。在這種情況下,優(yōu)選地,數(shù)量R和T當(dāng)然首先被復(fù)位。
雖然已經(jīng)用特定的實(shí)施例對本發(fā)明進(jìn)行了描述,但應(yīng)認(rèn)識到很多可替換的實(shí)施例是也可能的。例如,發(fā)送控制電路22和接收控制電路28可以作為一個(gè)電路來實(shí)現(xiàn),并且注冊單元25、29可以作為發(fā)送控制電路22和接收控制電路28可訪問的存儲位置來實(shí)現(xiàn)。可替換地,注冊單元25、29可以包括一個(gè)寄存器和用于自治地更新寄存器內(nèi)容的電路,諸如加法器等。
在另一個(gè)實(shí)施例中,網(wǎng)絡(luò)12可以為消息強(qiáng)加一個(gè)最大長度,在這種情況下,消息可能不包含來自具有信用T的FIFO輸出緩沖區(qū)20的所有的A個(gè)可用數(shù)據(jù)項(xiàng)。在這種情況下,優(yōu)選地,在消息中包括最大允許的數(shù)據(jù)項(xiàng)的數(shù)目。這減少了可發(fā)送的數(shù)據(jù)項(xiàng)的數(shù)目A,此后,重新用標(biāo)準(zhǔn)來確定是否應(yīng)該發(fā)送下一消息??商鎿Q地,一旦確定發(fā)送第一消息,就可以發(fā)送一系列消息以發(fā)送所有A個(gè)數(shù)據(jù)項(xiàng),而無需測試該標(biāo)準(zhǔn)。然而,這增加了帶寬使用。
類似地,在消息中用于報(bào)告可用的空閑緩沖空間R的字段長度也許不可能報(bào)告所有可用的空閑緩沖空間。在這種情況下,優(yōu)選地,在消息中報(bào)告最大允許的空閑緩沖空間的數(shù)量,且在接收信用注冊單元29中R也因此降低。這減少了未報(bào)告的信用的數(shù)量R,此后重新用標(biāo)準(zhǔn)來確定是否應(yīng)該發(fā)送下一消息。可替換地,一旦確定發(fā)送第一消息,就可以發(fā)送一系列消息以報(bào)告所有的信用,而無需測試該標(biāo)準(zhǔn)。然而,這增加了帶寬使用。
作為另一個(gè)例子,代替FIFO輸入和輸出緩沖區(qū)20、27,可以用其它類型存儲器來存儲數(shù)據(jù)。例如,緩沖區(qū)20、27中任意一個(gè)或兩個(gè)都可以被由數(shù)據(jù)處理電路尋址的存儲器所代替,或者是更大的存儲器的一部分,所述更大的存儲器例如包含要被發(fā)送的數(shù)據(jù)和接收到的數(shù)據(jù)的位置,以及其它數(shù)據(jù)。
在這種情況下,可以保持一個(gè)發(fā)送請求隊(duì)列,當(dāng)數(shù)據(jù)處理電路10發(fā)信號告知要發(fā)送的全部數(shù)據(jù)項(xiàng)的數(shù)據(jù)已經(jīng)被寫入時(shí),在該發(fā)送請求隊(duì)列上增加一個(gè)請求,而當(dāng)發(fā)送控制電路22已經(jīng)使來自數(shù)據(jù)項(xiàng)的數(shù)據(jù)以消息被發(fā)送時(shí),從該發(fā)送請求隊(duì)列刪除一個(gè)請求。類似地,可以保持一個(gè)接收報(bào)告隊(duì)列,當(dāng)來自消息的數(shù)據(jù)項(xiàng)已經(jīng)被寫入到存儲器時(shí),增加報(bào)告,而當(dāng)數(shù)據(jù)處理電路10發(fā)信號告知不再需要數(shù)據(jù)項(xiàng)時(shí),刪除報(bào)告。如果是這樣,則增加未報(bào)告的空閑緩沖空間R。
然而,要認(rèn)識到FIFO輸出緩沖區(qū)20和/或輸入緩沖區(qū)27的使用相當(dāng)程度地簡化了設(shè)計(jì),需要更少的用于網(wǎng)絡(luò)接口的電路面積。
此外,本發(fā)明并不限于固定尺寸的緩沖區(qū)乃至存儲器中的固定位置。處理電路10可以確定增加或減少用于接收或用于發(fā)送或兩者的緩沖空間。當(dāng)然,未報(bào)告的空閑空間的數(shù)量R將因此改變,從而它甚至能夠變成負(fù)值(相對于數(shù)量R的更新,空間的實(shí)際減少有延遲,直到隨后數(shù)據(jù)處理電路10釋放空間使R返回到非負(fù)值)。
類似地,每次通過提供最新的可用緩沖空間的地址(可選地,以及長度),處理電路10可以給網(wǎng)絡(luò)接口14發(fā)信號告知緩沖空間的可用性。所提供的地址可以是用于來自不再需要的先前的消息的數(shù)據(jù)的地址,但也可以是任何其它地址。這樣緩沖區(qū)無需被限制在任何指定的存儲區(qū)域。網(wǎng)絡(luò)接口14利用所提供的地址將來自到達(dá)的消息的數(shù)據(jù)寫入存儲器。在這種情況下,未報(bào)告的空閑空間的數(shù)量R每次按照所告知的緩沖空間而增加。
事實(shí)上,甚至不必在發(fā)送之前為存儲數(shù)據(jù)項(xiàng)提供FIFO輸出緩沖區(qū)20或等同的存儲空間。在另一實(shí)施例中,當(dāng)組裝消息時(shí),數(shù)據(jù)處理電路10用于一接收到來自發(fā)送控制電路22的命令就生成數(shù)據(jù)項(xiàng)。在這種情況下,響應(yīng)于這樣的命令,數(shù)據(jù)處理電路10僅報(bào)告準(zhǔn)備就緒生成一定數(shù)目的數(shù)據(jù)項(xiàng)。
在這些實(shí)施例中的每一個(gè)中,發(fā)送控制電路利用關(guān)于可發(fā)送的數(shù)據(jù)量和未報(bào)告的空閑空間的數(shù)量R的信息,來確定是否應(yīng)發(fā)送含有數(shù)據(jù)(如果有的話)和未報(bào)告的空閑緩沖空間(如果有的話)的消息,以觸發(fā)消息的發(fā)送。
權(quán)利要求
1.一種電子電路,包括多個(gè)數(shù)據(jù)處理單元(10);通信網(wǎng)絡(luò)(12),用于在所述多個(gè)數(shù)據(jù)處理單元(10)之間傳遞消息;緩沖存儲器電路(27),用于存儲從所述網(wǎng)絡(luò)(12)收取的數(shù)據(jù)項(xiàng),以供各個(gè)所述數(shù)據(jù)處理單元(10)使用;雙向網(wǎng)絡(luò)接口(14),每個(gè)用于將來自相關(guān)的一個(gè)所述處理電路(10)的數(shù)據(jù)項(xiàng)打包進(jìn)發(fā)送消息并經(jīng)由所述網(wǎng)絡(luò)(12)發(fā)出所述發(fā)送消息,以及用于從所述網(wǎng)絡(luò)(12)收取接收消息并從每個(gè)接收消息中解包出數(shù)據(jù)項(xiàng)以供所述相關(guān)的一個(gè)處理電路(10)使用,所述網(wǎng)絡(luò)接口(14)至少在部分所述發(fā)送消息中包括表示各自的用于收取來自所述接收消息的數(shù)據(jù)項(xiàng)的未報(bào)告緩沖空間的數(shù)量R的信息,其中所述未報(bào)告緩沖空間在用于所述相關(guān)的一個(gè)處理電路(10)的所述緩沖存儲器電路(27)中;發(fā)送控制電路(22),用于觸發(fā)具有來自特定的一個(gè)所述處理單元(10)的數(shù)據(jù)項(xiàng)的所述發(fā)送消息的發(fā)出,所述發(fā)送控制電路(22)用于阻止發(fā)送直至數(shù)據(jù)項(xiàng)的數(shù)目A超過一個(gè)閾值,其中所述特定的一個(gè)處理電路(10)已經(jīng)使所述數(shù)據(jù)項(xiàng)可用,且通過所述網(wǎng)絡(luò)用于所述數(shù)據(jù)項(xiàng)的緩沖空間是可用的,所述發(fā)送控制電路(22)響應(yīng)于所述未報(bào)告緩沖空間的數(shù)量R上的增長,來降低所述閾值、或完全抑制所述閾值,其中所述未報(bào)告緩沖空間在用于所述特定的一個(gè)處理電路的所述緩沖存儲器電路(27)中。
2.如權(quán)利要求1所述的電子電路,其中,所述發(fā)送控制電路(22)用于從所述特定的一個(gè)處理電路(10)收取清除命令,并且響應(yīng)于所述清除命令確定先前已經(jīng)由所述特定的一個(gè)處理電路(10)使其可用于發(fā)送的未發(fā)送數(shù)據(jù)項(xiàng)的數(shù)目B,并觸發(fā)一條或多條發(fā)送消息的發(fā)送直到至少B個(gè)數(shù)據(jù)項(xiàng)已經(jīng)被發(fā)出,而無需等到所述數(shù)目A超過所述閾值和/或所述未報(bào)告可用緩沖空間的數(shù)量R降低或抑制所述閾值。
3.如權(quán)利要求1所述的電子電路,其中,所述發(fā)送控制電路(22)用于降低關(guān)于數(shù)據(jù)項(xiàng)的數(shù)目A的所述閾值和/或增加作為所述數(shù)量R的函數(shù)的所述閾值的減少量,和/或?qū)⑺鲩撝狄种圃谝粋€(gè)較低的數(shù)量R,其中所述閾值是時(shí)間間隔的長度的函數(shù),所述時(shí)間間隔是自從這些數(shù)據(jù)項(xiàng)和/或未報(bào)告的緩沖空間變?yōu)榭捎瞄_始所經(jīng)過的、或自從之前最后一個(gè)發(fā)送消息的發(fā)送開始所經(jīng)過的時(shí)間間隔。
4.如權(quán)利要求1所述的電子電路,其中,所述發(fā)送控制電路(22)用于如果所述數(shù)目A超過所述閾值和/或所述數(shù)量R超過另一閾值,則觸發(fā)發(fā)送。
5.如權(quán)利要求1所述的電子電路,其中,所述發(fā)送控制電路(22)用于如果所述數(shù)目A和所述數(shù)量R的加權(quán)和超過另一閾值時(shí),則觸發(fā)發(fā)送。
6.一種在電子電路中通過網(wǎng)絡(luò)(12)在數(shù)據(jù)處理電路之間發(fā)送數(shù)據(jù)的方法,所述方法包括將來自處理電路(10)的數(shù)據(jù)項(xiàng)打包進(jìn)發(fā)送消息并經(jīng)由所述網(wǎng)絡(luò)(12)發(fā)出所述發(fā)送消息;從所述網(wǎng)絡(luò)(12)收取接收消息并從每個(gè)接收消息中解包出數(shù)據(jù)項(xiàng)以供所述處理電路(10)使用;至少在部分所述發(fā)送消息中包括表示各自的用于收取來自所述接收消息的數(shù)據(jù)項(xiàng)的未報(bào)告緩沖空間的數(shù)量R的信息,其中所述未報(bào)告緩沖空間在用于所述處理電路(10)的所述緩沖存儲器電路(27)中;阻止來自特定的一個(gè)所述處理電路(10)的發(fā)送消息的發(fā)送,直至數(shù)據(jù)項(xiàng)的數(shù)目A超過一個(gè)閾值,其中所述特定一個(gè)處理電路(10)已經(jīng)使所述數(shù)據(jù)項(xiàng)可用于在所述消息中發(fā)送,且通過所述網(wǎng)絡(luò)(12)用于所述數(shù)據(jù)項(xiàng)的緩沖空間是可用的;響應(yīng)于所述未報(bào)告緩沖空間的數(shù)量R上的增長,降低所述閾值、或在超過所述閾值之前發(fā)出所述發(fā)送消息,其中所述未報(bào)告緩沖空間在用于所述特定的一個(gè)處理電路(10)的所述緩沖存儲器電路(27)中。
全文摘要
在一種電子電路中,數(shù)據(jù)通過網(wǎng)絡(luò)(12)在數(shù)據(jù)處理電路之間傳輸。為通過網(wǎng)絡(luò)在一對處理器之間發(fā)出發(fā)送消息和收取接收消息提供了一種雙向網(wǎng)絡(luò)接口。該網(wǎng)絡(luò)接口使用發(fā)送消息來傳送數(shù)據(jù)和表示各自的用于從接收消息中收取數(shù)據(jù)項(xiàng)的未報(bào)告緩沖空間的數(shù)量R的信息,其中所述未報(bào)告緩沖空間在用于處理電路(10)的緩沖存儲器電路(27)中。該網(wǎng)絡(luò)接口阻止來自特定的一個(gè)數(shù)據(jù)處理電路(10)的發(fā)送消息的發(fā)送,直到數(shù)據(jù)項(xiàng)的數(shù)目A超過一個(gè)閾值,其中該特定的一個(gè)處理電路(10)已經(jīng)使所述數(shù)據(jù)項(xiàng)可用于在消息中發(fā)送,且通過網(wǎng)絡(luò)(12)用于所述數(shù)據(jù)項(xiàng)的緩沖空間是可用的。然而,響應(yīng)于未報(bào)告緩沖空間的數(shù)量R上的增長,降低該閾值、或在超過該閾值之前發(fā)出發(fā)送消息,其中所述未報(bào)告緩沖空間在用于所述特定的一個(gè)處理電路(10)的緩沖存儲器電路(27)中。
文檔編號H04L12/56GK1843003SQ200480024468
公開日2006年10月4日 申請日期2004年8月10日 優(yōu)先權(quán)日2003年8月29日
發(fā)明者安德烈·勒杜列斯庫, 約翰努斯·T·M·H·德伊列森 申請人:皇家飛利浦電子股份有限公司