欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

多端口以太網(wǎng)交換裝置及數(shù)據(jù)傳輸方法

文檔序號(hào):7614652閱讀:166來(lái)源:國(guó)知局
專利名稱:多端口以太網(wǎng)交換裝置及數(shù)據(jù)傳輸方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種以太網(wǎng)交換裝置及數(shù)據(jù)傳輸方法,尤其涉及一種具有轉(zhuǎn)發(fā)與存儲(chǔ)分離結(jié)構(gòu)的多端口以太網(wǎng)交換裝置及數(shù)據(jù)傳輸方法。
背景技術(shù)
以太網(wǎng)交換芯片的功能是提供多個(gè)以太網(wǎng)端口間的二層或二層以上的報(bào)文轉(zhuǎn)發(fā),如果是二層轉(zhuǎn)發(fā),則轉(zhuǎn)發(fā)行為應(yīng)該嚴(yán)格按照IEEE 802.3(國(guó)際電子電氣工程師協(xié)會(huì)定義的關(guān)于以太局域網(wǎng)的協(xié)議)協(xié)議定義的方式實(shí)施,如果是二層以上的轉(zhuǎn)發(fā),則應(yīng)按照IP協(xié)議定義的方式實(shí)施。以太網(wǎng)交換芯片是以太網(wǎng)交換設(shè)備的核心器件,決定了以太網(wǎng)交換機(jī)的性能和功能。
以太網(wǎng)交換最重要的指標(biāo)在于系統(tǒng)性能,也就是端口間線速交換的能力。所謂線速交換,指的是同速率以太網(wǎng)端口間一對(duì)一發(fā)送報(bào)文情況下,所有端口都可以以滿速率發(fā)送和接收數(shù)據(jù)幀,不出現(xiàn)任何數(shù)據(jù)幀的丟失和延遲。以太網(wǎng)的速度從10M提升到100M、1G、10G,要求交換芯片必須能同步提升性能以滿足線速處理要求。
以太網(wǎng)交換的另一項(xiàng)重要指標(biāo)是業(yè)務(wù)處理能力。與早期以太網(wǎng)僅用于計(jì)算機(jī)設(shè)備間的簡(jiǎn)單通訊不同,現(xiàn)在的以太網(wǎng)要求提供諸如用戶管理、服務(wù)質(zhì)量、安全管理、流量管制等諸多業(yè)務(wù)能力,因而要求以太網(wǎng)交換芯片能提供復(fù)雜的業(yè)務(wù)處理能力。
以太網(wǎng)交換芯片一般基于“存儲(chǔ)-轉(zhuǎn)發(fā)”方式。所謂“存儲(chǔ)-轉(zhuǎn)發(fā)”,是指以太網(wǎng)數(shù)據(jù)幀交換時(shí),先將數(shù)據(jù)幀完整接收下來(lái),保存在內(nèi)部存儲(chǔ)器中,經(jīng)過(guò)正確性校驗(yàn)和轉(zhuǎn)發(fā)處理后,才將數(shù)據(jù)幀從內(nèi)部存儲(chǔ)器發(fā)送到以太網(wǎng)上。與之相對(duì)的轉(zhuǎn)發(fā)方式為“直通”,只要接收到足夠的數(shù)據(jù)幀頭信息,就開(kāi)始轉(zhuǎn)發(fā)處理,并將數(shù)據(jù)幀發(fā)送到以太網(wǎng)上,此時(shí)數(shù)據(jù)幀可能還未接收完畢,處于“邊接收邊發(fā)送”的狀態(tài)?!爸蓖ā狈绞降膬?yōu)點(diǎn)是轉(zhuǎn)發(fā)延遲小,問(wèn)題是錯(cuò)誤的數(shù)據(jù)幀也會(huì)被發(fā)送,因而較少被使用。
以太網(wǎng)交換過(guò)程通?;凇肮蚕砭彺妗狈绞健!肮蚕砭彺妗敝傅氖?,所有端口接收的數(shù)據(jù)幀都集中保存到一個(gè)公用存儲(chǔ)器中,需要發(fā)送數(shù)據(jù)幀時(shí),從該存儲(chǔ)器中讀取數(shù)據(jù)幀發(fā)送即可。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供能夠克服現(xiàn)有技術(shù)中存在的至少一個(gè)缺陷的一種多端口以太網(wǎng)交換裝置(該處理裝置為芯片),采用存儲(chǔ)轉(zhuǎn)發(fā)和共享緩存的工作方式,其特征在于,具有業(yè)務(wù)轉(zhuǎn)發(fā)過(guò)程與數(shù)據(jù)存取過(guò)程分離的結(jié)構(gòu)。
其中,該處理裝置包括數(shù)據(jù)通路,用于將從網(wǎng)絡(luò)接收的數(shù)據(jù)幀不作任何業(yè)務(wù)處理就保存到一外部存儲(chǔ)器中,并響應(yīng)于控制通路的控制,將數(shù)據(jù)幀讀出,進(jìn)行必要的處理后發(fā)送到網(wǎng)絡(luò)。
控制通路,采用多級(jí)流水線結(jié)構(gòu),用于對(duì)數(shù)據(jù)幀控制信息進(jìn)行處理,控制數(shù)據(jù)通路對(duì)數(shù)據(jù)幀的發(fā)送過(guò)程。
其中,該數(shù)據(jù)通路包括
接收端以太網(wǎng)媒體控制器,用于從網(wǎng)絡(luò)接收數(shù)據(jù)幀。
接收端先入先出型存儲(chǔ)器,用于暫存接收端以太網(wǎng)媒體控制器接收的數(shù)據(jù)幀,并且對(duì)數(shù)據(jù)幀進(jìn)行切分。
輸入端數(shù)據(jù)通路模塊,在設(shè)計(jì)上是一個(gè)可進(jìn)行數(shù)據(jù)插入的多路選一開(kāi)關(guān),將選中的數(shù)據(jù)幀從接收端先入先出型存儲(chǔ)器中讀出并完成數(shù)據(jù)插入后發(fā)送到輸出總線上。
外部存儲(chǔ)器接口控制器,與輸入端數(shù)據(jù)通路模塊和輸出端數(shù)據(jù)通路模塊連接,用于控制數(shù)據(jù)存入和讀出外部存儲(chǔ)器的過(guò)程。
輸出端數(shù)據(jù)通路模塊,對(duì)即將輸出的數(shù)據(jù)幀進(jìn)行必要的修改、插入、或刪除操作,然后將數(shù)據(jù)幀發(fā)送到發(fā)送端先入先出型存儲(chǔ)器中。
發(fā)送端先入先出型存儲(chǔ)器,暫存來(lái)自輸出端數(shù)據(jù)通路模塊的、即將發(fā)送的數(shù)據(jù)幀。
發(fā)送端以太網(wǎng)媒體控制器,與發(fā)送端先入先出型存儲(chǔ)器連接,將處理后的數(shù)據(jù)幀發(fā)送到網(wǎng)絡(luò)。
其中,控制通路包括輸入端輪詢及控制模塊,用于對(duì)接收端先入先出型存儲(chǔ)器的狀態(tài)進(jìn)行輪詢和控制,并控制輸入端數(shù)據(jù)通路模塊和數(shù)據(jù)幀頭緩存,使其將數(shù)據(jù)儲(chǔ)存到外部存儲(chǔ)器中。
數(shù)據(jù)幀信息先入先出型存儲(chǔ)器,用于儲(chǔ)存來(lái)自輸入端輪詢及控制模塊的數(shù)據(jù)幀控制信息。
數(shù)據(jù)幀轉(zhuǎn)發(fā)及業(yè)務(wù)處理器,接收所述數(shù)據(jù)幀信息先入先出型存儲(chǔ)器和數(shù)據(jù)幀頭緩存中的數(shù)據(jù)幀控制信息,完成轉(zhuǎn)發(fā)及業(yè)務(wù)處理。
輸出隊(duì)列及調(diào)度器,用于為每個(gè)端口的多個(gè)輸出隊(duì)列中的每個(gè)隊(duì)列提供調(diào)度服務(wù),輸出隊(duì)列及調(diào)度器接收來(lái)自數(shù)據(jù)幀轉(zhuǎn)發(fā)及業(yè)務(wù)處理器的數(shù)據(jù)幀控制信息,控制緩存管理器進(jìn)行釋放操作并且響應(yīng)于輸出端輪詢及控制模塊的調(diào)度申請(qǐng)將數(shù)據(jù)幀控制信息輸出到輸出端輪詢及控制模塊。
輸出端輪詢及控制模塊,用于輪詢發(fā)送端先入先出型存儲(chǔ)器的狀態(tài),向所述輸出隊(duì)列及調(diào)度器發(fā)出調(diào)度申請(qǐng),根據(jù)調(diào)度出的數(shù)據(jù)幀控制信息控制所述輸出端數(shù)據(jù)通路模塊及所述外部存儲(chǔ)器接口控制器將數(shù)據(jù)幀從外部存儲(chǔ)器讀出并發(fā)送到所述發(fā)送端先入先出型存儲(chǔ)器,并向緩存管理器提交維護(hù)信息。
緩存管理器,用于維護(hù)外部存儲(chǔ)器的使用。
數(shù)據(jù)幀轉(zhuǎn)發(fā)及業(yè)務(wù)處理器由多個(gè)業(yè)務(wù)處理單元構(gòu)成,形成多級(jí)流水線結(jié)構(gòu)。
其中,輸入端輪詢及控制模塊包括輸入端輪詢模塊,用于接收來(lái)自所述接收端先入先出型存儲(chǔ)器的狀態(tài)信息,完成對(duì)所述接收端先入先出型存儲(chǔ)器狀態(tài)的輪詢,選擇出待處理的端口號(hào)。
輸入端狀態(tài)維護(hù)模塊,接收來(lái)自輸入端輪詢模塊輪詢出的待處理端口中的數(shù)據(jù)幀,當(dāng)數(shù)據(jù)幀是新數(shù)據(jù)幀時(shí),輸入端狀態(tài)維護(hù)模塊向緩存管理器申請(qǐng)可用的外部緩存,并維護(hù)端口數(shù)據(jù)寫(xiě)入狀態(tài)信息,將新數(shù)據(jù)幀頭緩存控制信號(hào)輸出到數(shù)據(jù)幀頭緩存中;當(dāng)數(shù)據(jù)幀不是新數(shù)據(jù)幀時(shí),直接檢查和維護(hù)端口數(shù)據(jù)寫(xiě)入狀態(tài)信息,狀態(tài)檢查和維護(hù)的輸出結(jié)果為數(shù)據(jù)寫(xiě)入外部緩存的地址,如果待處理端口是數(shù)據(jù)幀尾,則需將幀尾指示信號(hào)輸出到數(shù)據(jù)幀頭緩存中。
數(shù)據(jù)幀頭緩存寫(xiě)入控制模塊,接收來(lái)自所述輸入端狀態(tài)維護(hù)模塊的新數(shù)據(jù)幀頭緩存控制信號(hào),控制所述數(shù)據(jù)通路將數(shù)據(jù)幀頭寫(xiě)入數(shù)據(jù)幀頭緩存。
輸入端數(shù)據(jù)存儲(chǔ)控制模塊,接收來(lái)自所述輸入端狀態(tài)維護(hù)模塊的寫(xiě)入外部緩存的地址信息,控制所述數(shù)據(jù)通路將選中的所述接收端先入先出型存儲(chǔ)器中的數(shù)據(jù)幀寫(xiě)入外部存儲(chǔ)器輸出總線。
輸入端數(shù)據(jù)幀控制信息生成模塊,用于接收來(lái)自輸入端狀態(tài)維護(hù)模塊的信號(hào),當(dāng)接收到數(shù)據(jù)幀尾時(shí),將端口狀態(tài)信息中的有關(guān)信息構(gòu)造為數(shù)據(jù)幀控制信息,并將生成的數(shù)據(jù)幀控制信息輸出到數(shù)據(jù)幀信息先入先出型存儲(chǔ)器中。
其中,輸出隊(duì)列及調(diào)度器包括輸出隊(duì)列服務(wù)器,用于提供服務(wù)等級(jí),將數(shù)據(jù)幀轉(zhuǎn)發(fā)及業(yè)務(wù)處理器與數(shù)據(jù)輸出通路隔開(kāi)。輸出隊(duì)列服務(wù)器在功能上是一個(gè)先入先出型存儲(chǔ)器。
調(diào)度器,根據(jù)所述輸出端輪詢及控制模塊的請(qǐng)求從端口隊(duì)列中輸出一個(gè)數(shù)據(jù)幀。
其中,輸出端輪詢及控制模塊包括輸出端輪詢模塊,用于接收所述發(fā)送端先入先出型存儲(chǔ)器的狀態(tài)信息,完成對(duì)所述發(fā)送端先入先出型存儲(chǔ)器狀態(tài)的輪詢,選擇出待處理的端口號(hào)。
輸出端狀態(tài)維護(hù)模塊,接收來(lái)自輸出端輪詢模塊輪詢出的待處理端口中的數(shù)據(jù)幀,檢查和維護(hù)端口的數(shù)據(jù)幀發(fā)送狀態(tài),并且判斷數(shù)據(jù)幀是否已經(jīng)發(fā)送完畢,如果數(shù)據(jù)幀發(fā)送已經(jīng)完畢則向緩存管理器提出釋放申請(qǐng),緩存管理器對(duì)相應(yīng)緩存單元的控制信息進(jìn)行釋放操作,如果返回的數(shù)據(jù)幀表明數(shù)據(jù)幀因某種原因已被標(biāo)記為丟棄,則輸出端狀態(tài)維護(hù)模塊使用保存在數(shù)據(jù)幀控制信息中的緩存單元地址向緩存管理器提出釋放中請(qǐng),緩存管理器對(duì)相應(yīng)緩存單元的控制信息進(jìn)行釋放操作。
輸出端數(shù)據(jù)幀讀出及修改控制模塊,接收來(lái)自所述輸出端狀態(tài)維護(hù)模塊的地址信號(hào),控制所述輸出端數(shù)據(jù)通路模塊從所述外部存儲(chǔ)器接口控制器讀出數(shù)據(jù),并控制所述輸出端數(shù)據(jù)通路模塊完成對(duì)數(shù)據(jù)幀的修改,修改后的數(shù)據(jù)被控制寫(xiě)入到所述發(fā)送端先入先出型存儲(chǔ)器中。
一種多端口以太網(wǎng)交換裝置的數(shù)據(jù)傳輸方法,其特征在于,該數(shù)據(jù)傳輸方法包括以下步驟步驟202,控制通路控制數(shù)據(jù)通路將從網(wǎng)絡(luò)接收的數(shù)據(jù)幀不經(jīng)過(guò)任何業(yè)務(wù)處理就儲(chǔ)存到外部存儲(chǔ)器中。
步驟204,所述控制通路采用多級(jí)流水線方式對(duì)數(shù)據(jù)幀控制信息進(jìn)行處理。
步驟206,所述控制通路根據(jù)業(yè)務(wù)處理流水線對(duì)數(shù)據(jù)幀的處理結(jié)果,控制所述數(shù)據(jù)通路讀出儲(chǔ)存在所述外部存儲(chǔ)器中的數(shù)據(jù)幀,對(duì)其進(jìn)行必要的處理后發(fā)送到網(wǎng)絡(luò)。
其中,步驟202包括以下步驟
步驟202a,接收端以太網(wǎng)媒體控制器從網(wǎng)絡(luò)接收數(shù)據(jù)幀,并將接收的數(shù)據(jù)幀傳送到接收端先入先出型存儲(chǔ)器中。
步驟202b,接收端先入先出型存儲(chǔ)器在暫存數(shù)據(jù)幀的同時(shí),將數(shù)據(jù)幀進(jìn)行切分。
步驟202c,輸入端輪詢及控制模塊對(duì)端口的接收端先入先出型存儲(chǔ)器不斷進(jìn)行輪詢,輪詢出一個(gè)已接收到數(shù)據(jù)幀的端口,進(jìn)行數(shù)據(jù)幀緩存單元地址維護(hù)和業(yè)務(wù)處理準(zhǔn)備。
步驟202d,將接收端先入先出型存儲(chǔ)器中的數(shù)據(jù)通過(guò)輸入端數(shù)據(jù)通路模塊及外部存儲(chǔ)器接口控制器寫(xiě)入到外部存儲(chǔ)器中。
其中,步驟206包括以下步驟步驟206a,輸出端輪詢及控制模塊不斷輪詢發(fā)送端先入先出型存儲(chǔ)器發(fā)送數(shù)據(jù)的狀態(tài),直到發(fā)現(xiàn)有端口有一個(gè)或多個(gè)空閑數(shù)據(jù)塊空間。
步驟206b,檢查端口的數(shù)據(jù)幀是否已經(jīng)發(fā)送完畢,如果數(shù)據(jù)幀已經(jīng)發(fā)送完畢,則向輸出隊(duì)列及調(diào)度器申請(qǐng)新的待發(fā)送數(shù)據(jù)幀,并使用數(shù)據(jù)幀控制信息中的外部緩存地址將數(shù)據(jù)幀從外部存儲(chǔ)器中讀出;如果數(shù)據(jù)幀還沒(méi)有發(fā)送完畢,則使用端口狀態(tài)中的地址信息將數(shù)據(jù)幀從所述外部存儲(chǔ)器中讀出。
步驟206c,輸出端數(shù)據(jù)通路模塊在輸出端輪詢及控制模塊的控制下對(duì)讀出的數(shù)據(jù)幀進(jìn)行處理,并將其寫(xiě)入發(fā)送端先入先出型存儲(chǔ)器。
步驟206d,輸出端輪詢及控制模塊對(duì)數(shù)據(jù)幀緩存單元地址進(jìn)行維護(hù),發(fā)送端以太網(wǎng)媒體控制器將數(shù)據(jù)幀發(fā)送到網(wǎng)絡(luò)。
其中,輸入端輪詢及控制模塊進(jìn)行輪詢及處理的過(guò)程為步驟402,輸入端輪詢模塊對(duì)所有端口的接收端先入先出型存儲(chǔ)器的狀態(tài)進(jìn)行輪詢,輪詢出某個(gè)已經(jīng)接收到一個(gè)數(shù)據(jù)塊的接收端先入先出型存儲(chǔ)器。
步驟404,輸入端狀態(tài)維護(hù)模塊判斷接收到的數(shù)據(jù)幀是否是新數(shù)據(jù)幀。
步驟406,如果是新數(shù)據(jù)幀,向緩存管理器申請(qǐng)可用的外部緩存地址。
步驟408,如果是新數(shù)據(jù)幀,數(shù)據(jù)幀頭緩存寫(xiě)入控制模塊將一控制信號(hào)發(fā)送到數(shù)據(jù)幀頭緩存,將新數(shù)據(jù)幀的數(shù)據(jù)幀頭寫(xiě)入數(shù)據(jù)幀頭緩存中。
步驟410,輸入端數(shù)據(jù)存儲(chǔ)控制模塊控制接收端先入先出型存儲(chǔ)器和輸入端數(shù)據(jù)通路模塊以及外部存儲(chǔ)器接口控制器將接收到的數(shù)據(jù)塊寫(xiě)入外部存儲(chǔ)器中。
步驟412,輸入端狀態(tài)維護(hù)模塊維護(hù)端口數(shù)據(jù)的寫(xiě)入信息和狀態(tài)。
步驟414,接收端以太網(wǎng)媒體控制器判斷是否是數(shù)據(jù)幀尾,并將該信息通過(guò)指定信息位傳送給輸入端狀態(tài)維護(hù)模塊。
步驟416,如果是數(shù)據(jù)幀尾,輸入端狀態(tài)維護(hù)模塊調(diào)整端口信息。
步驟418,輸入端數(shù)據(jù)幀控制信息生成模塊生成數(shù)據(jù)幀控制信息并將其寫(xiě)入數(shù)據(jù)幀信息先入先出型存儲(chǔ)器中。
步驟420,接收端先入先出型存儲(chǔ)器處理結(jié)束,進(jìn)行下一次輪詢及處理。
輸入端數(shù)據(jù)輪詢及控制模塊采用多級(jí)輪詢結(jié)構(gòu),即將端口分成多個(gè)組,每個(gè)組內(nèi)各自進(jìn)行輪詢,再對(duì)所有組的輪詢結(jié)果進(jìn)行組間輪詢,選擇出每次需要處理的接收端先入先出型存儲(chǔ)器端口。
其中,輸出端輪詢及控制模塊進(jìn)行輪詢及處理的過(guò)程為步驟602,輸出端輪詢模塊輪詢出至少有一個(gè)空閑數(shù)據(jù)塊的發(fā)送端先入先出型存儲(chǔ)器。
步驟604,輸出端狀態(tài)維護(hù)模塊判斷該端口的數(shù)據(jù)幀是否已經(jīng)發(fā)送完畢。
步驟606,如果端口的幀已經(jīng)發(fā)送完畢,那么輸出端狀態(tài)維護(hù)模塊向輸出隊(duì)列及調(diào)度器申請(qǐng)新的待發(fā)送數(shù)據(jù)幀。
步驟608,輸出端數(shù)據(jù)幀讀出及修改控制模塊控制輸出端數(shù)據(jù)通路模塊和發(fā)送端先入先出型存儲(chǔ)器,將數(shù)據(jù)塊從外部存儲(chǔ)器中讀出,進(jìn)行必要的處理然后寫(xiě)入發(fā)送端先入先出型存儲(chǔ)器中。
步驟610,輸出端狀態(tài)維護(hù)模塊維護(hù)端口的幀發(fā)送狀態(tài)。
步驟612,發(fā)送端先入先出型存儲(chǔ)器處理結(jié)束,進(jìn)行下一次輪詢及處理。
轉(zhuǎn)發(fā)過(guò)程與存儲(chǔ)過(guò)程分離,利于實(shí)現(xiàn)高性能、高業(yè)務(wù)能力要求的轉(zhuǎn)發(fā)過(guò)程。轉(zhuǎn)發(fā)過(guò)程處理復(fù)雜的業(yè)務(wù)處理流程,使用多級(jí)流水線實(shí)現(xiàn),不會(huì)對(duì)系統(tǒng)性能產(chǎn)生影響。存儲(chǔ)過(guò)程使用高速率的數(shù)據(jù)保存和讀取通道構(gòu)造,使用成本低廉的外部動(dòng)態(tài)存儲(chǔ)器即可支持高性能、高帶寬要求,不會(huì)擠壓轉(zhuǎn)發(fā)過(guò)程的靈活處理能力。
對(duì)于每個(gè)待轉(zhuǎn)發(fā)的數(shù)據(jù)幀,不經(jīng)過(guò)任何轉(zhuǎn)發(fā)處理就進(jìn)行存儲(chǔ)器操作,簡(jiǎn)化了對(duì)緩存管理的要求,尤其是多播緩存管理,加強(qiáng)了系統(tǒng)穩(wěn)定性,降低了芯片成本。


通過(guò)參考附圖,本發(fā)明的特征和優(yōu)點(diǎn)將變的更加明顯,其中圖1是根據(jù)本發(fā)明的多端口以太網(wǎng)交換裝置的框圖;圖2是根據(jù)本發(fā)明的多端口以太網(wǎng)交換裝置的數(shù)據(jù)傳輸方法的框圖;圖3是根據(jù)本發(fā)明的輸入端輪詢及控制模塊的邏輯結(jié)構(gòu)圖;圖4是根據(jù)本發(fā)明的輸入端輪詢及控制模塊進(jìn)行輪詢及處理的過(guò)程的流程圖;圖5是根據(jù)本發(fā)明的輸出端輪詢及控制模塊的邏輯結(jié)構(gòu)圖;以及圖6是根據(jù)本發(fā)明的輸出端輪詢及控制模塊進(jìn)行輪詢及處理的過(guò)程的流程圖。
具體實(shí)施例方式
現(xiàn)在參照附圖對(duì)根據(jù)本發(fā)明的具體實(shí)施例進(jìn)行說(shuō)明,應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,并不用于限定本發(fā)明。
圖1是根據(jù)本發(fā)明的多端口以太網(wǎng)交換裝置的框圖,該處理裝置為芯片。圖中除外部存儲(chǔ)器130以外的其余部分構(gòu)成了本設(shè)計(jì)方案,外部存儲(chǔ)器130使用工業(yè)標(biāo)準(zhǔn)的DDR SDRAM,在提供高性能的同時(shí)降低整個(gè)系統(tǒng)的造價(jià)。本發(fā)明的高性能以太網(wǎng)交換裝置由數(shù)據(jù)通路和控制通路構(gòu)成。圖中,細(xì)實(shí)線表示控制信息或業(yè)務(wù)處理信息,細(xì)實(shí)線相連的單元構(gòu)成控制通路,完成行為控制及業(yè)務(wù)處理功能。粗實(shí)線表示數(shù)據(jù)信息,其相連的單元構(gòu)成數(shù)據(jù)通路,完成數(shù)據(jù)保存和發(fā)送功能。
數(shù)據(jù)通路包括接收端以太網(wǎng)媒體控制器(RxMAC)102、接收端先入先出型存儲(chǔ)器(RxFIFO)104、輸入端數(shù)據(jù)通路模塊110、外部存儲(chǔ)器接口控制器112、輸出端數(shù)據(jù)通路模塊114、發(fā)送端先入先出型存儲(chǔ)器(TxFIFO)108、發(fā)送端以太網(wǎng)媒體控制器(TxMAC)106,其功能為在控制通路的控制下,將RxMAC 102從網(wǎng)絡(luò)接收的數(shù)據(jù)幀保存到外部存儲(chǔ)器(DDR SDRAM)130中,在控制通路的控制下,將數(shù)據(jù)幀從外部存儲(chǔ)器130中讀出并修改幀格式后從TxMAC 106發(fā)出到網(wǎng)絡(luò)上。
控制通路包括輸入端輪詢及控制模塊116、數(shù)據(jù)幀信息先入先出型存儲(chǔ)器118、數(shù)據(jù)幀轉(zhuǎn)發(fā)及業(yè)務(wù)處理器120、輸出隊(duì)列及調(diào)度器122、輸出端輪詢及控制模塊124、緩存管理器126,其功能為控制數(shù)據(jù)寫(xiě)入外部存儲(chǔ)器130的過(guò)程,然后對(duì)輸入的數(shù)據(jù)完成業(yè)務(wù)處理和轉(zhuǎn)發(fā)決策,完成輸出隊(duì)列調(diào)度后,控制待發(fā)數(shù)據(jù)讀出外部存儲(chǔ)器130并發(fā)送到網(wǎng)絡(luò)的過(guò)程。
本發(fā)明的一個(gè)實(shí)現(xiàn)為4個(gè)1G以太網(wǎng)端口和24個(gè)100M以太網(wǎng)端口的交換,以下設(shè)計(jì)說(shuō)明中的所有設(shè)計(jì)參數(shù)以該設(shè)計(jì)規(guī)格為目標(biāo)。如果支持更多或更少數(shù)量以太網(wǎng)端口的交換,可能需要對(duì)部分設(shè)計(jì)參數(shù)進(jìn)行調(diào)整,調(diào)整參數(shù)不會(huì)對(duì)本發(fā)明有實(shí)質(zhì)性改進(jìn)。
RxMAC102和TxMAC106分別是MAC(以太網(wǎng)媒體控制器)的接收部分和發(fā)送部分,MAC的功能在IEEE 802.3協(xié)議中定義,是標(biāo)準(zhǔn)的以太網(wǎng)數(shù)據(jù)幀處理單元,用于從以太網(wǎng)鏈路上接收或發(fā)送數(shù)據(jù)幀。實(shí)際應(yīng)用時(shí),還需要在MAC上外接以太網(wǎng)物理層芯片才能真正和以太網(wǎng)通訊。為簡(jiǎn)化整體設(shè)備的造價(jià),也可以將以太網(wǎng)物理層芯片集成到以太網(wǎng)交換芯片內(nèi)部,這僅僅是集成度的提高,不構(gòu)成對(duì)本發(fā)明的實(shí)質(zhì)性改進(jìn)。本方案外接多個(gè)以太網(wǎng)端口時(shí),則芯片內(nèi)應(yīng)包含相應(yīng)數(shù)量的MAC。
RxFIFO 104用于暫存RxMAC 102接收到的數(shù)據(jù)。在本實(shí)施例中,數(shù)據(jù)幀被保存到外部存儲(chǔ)器130時(shí)需要切分成固定長(zhǎng)度,如128字節(jié),因此RxFIFO 104在暫存數(shù)據(jù)的同時(shí)也完成數(shù)據(jù)幀的切分,每128字節(jié)切分為一塊,不足128字節(jié)的報(bào)文或數(shù)據(jù)幀尾也分為一塊,切分過(guò)程通過(guò)按數(shù)據(jù)塊讀出的方式實(shí)現(xiàn)。由于芯片內(nèi)的數(shù)據(jù)存儲(chǔ)速度遠(yuǎn)高于RxMAC 102接收數(shù)據(jù)的速度且數(shù)據(jù)存儲(chǔ)以128字節(jié)塊為單位衡量,RxFIFO 104僅需設(shè)計(jì)為2個(gè)128字節(jié)數(shù)據(jù)塊長(zhǎng)度,最多不超過(guò)3個(gè)128字節(jié)數(shù)據(jù)長(zhǎng)度,即可支持全速率數(shù)據(jù)接收,無(wú)需考慮待處理的數(shù)據(jù)幀總長(zhǎng)度。另外,為了適應(yīng)輸入速度低,讀出速度高的特點(diǎn),該RxFIFO 104可以設(shè)計(jì)為輸入位寬和輸出位寬不同,如RxMAC 102寫(xiě)入RxFIFO 104的位寬為32bit,而輸入端數(shù)據(jù)通路模塊110讀取的位寬為64bit或128bit,從而減少RxMAC 102側(cè)的總線位寬,減少芯片面積。
輸入端輪詢及控制模塊116的功能是輪詢所有RxFIFO 104中數(shù)據(jù)接收的狀況,為每個(gè)數(shù)據(jù)幀申請(qǐng)可用的外部緩存,控制輸入端數(shù)據(jù)通路模塊110將數(shù)據(jù)幀寫(xiě)入申請(qǐng)到的緩存中,當(dāng)每個(gè)數(shù)據(jù)幀保存完畢時(shí),將數(shù)據(jù)幀頭和數(shù)據(jù)幀的保存位置等控制信息通過(guò)數(shù)據(jù)幀信息先入先出型存儲(chǔ)器118發(fā)送給數(shù)據(jù)幀轉(zhuǎn)發(fā)及業(yè)務(wù)處理器120進(jìn)行業(yè)務(wù)處理。
輸入端數(shù)據(jù)通路模塊110的功能是在輸入端輪詢及控制模塊116的控制下,將選中的RxFIFO 104的數(shù)據(jù)讀出發(fā)送到外部存儲(chǔ)器130的輸出總線上,如果是新數(shù)據(jù)幀,同時(shí)將該數(shù)據(jù)幀發(fā)送到相關(guān)端口的數(shù)據(jù)幀頭緩存中。另外,該單元具有數(shù)據(jù)插入功能,可在輸入數(shù)據(jù)被送到外部存儲(chǔ)器130前插入預(yù)設(shè)的數(shù)據(jù),用于輸入數(shù)據(jù)幀的格式統(tǒng)一化操作,方便業(yè)務(wù)處理。輸入端數(shù)據(jù)通路模塊110在設(shè)計(jì)上主要是一個(gè)可進(jìn)行數(shù)據(jù)插入的多路選一開(kāi)關(guān)。
數(shù)據(jù)幀轉(zhuǎn)發(fā)及業(yè)務(wù)處理器120是由多個(gè)業(yè)務(wù)處理單元構(gòu)成的多級(jí)流水線,用于完成以太網(wǎng)交換需要支持的二層轉(zhuǎn)發(fā)、IP轉(zhuǎn)發(fā)、安全處理等業(yè)務(wù)功能。詳細(xì)的業(yè)務(wù)處理過(guò)程與本發(fā)明無(wú)關(guān),本文不再討論。
數(shù)據(jù)幀轉(zhuǎn)發(fā)及業(yè)務(wù)處理器120通過(guò)數(shù)據(jù)幀信息先入先出型存儲(chǔ)器118和輸入端輪詢及控制模塊116以及數(shù)據(jù)幀頭緩存與輸入端數(shù)據(jù)接收過(guò)程連接,通過(guò)輸出隊(duì)列及調(diào)度器122和輸出端輪詢及控制模塊124與輸出端數(shù)據(jù)發(fā)送過(guò)程銜接,由于輸出隊(duì)列及調(diào)度器122的速率隔離作用,使得數(shù)據(jù)幀轉(zhuǎn)發(fā)及業(yè)務(wù)處理器120在結(jié)構(gòu)上完全獨(dú)立于數(shù)據(jù)輸入輸出過(guò)程。另外,數(shù)據(jù)幀轉(zhuǎn)發(fā)及業(yè)務(wù)處理器120只使用數(shù)據(jù)幀頭信息及輸入端口等信息即可決定數(shù)據(jù)幀轉(zhuǎn)發(fā),因而數(shù)據(jù)幀轉(zhuǎn)發(fā)及業(yè)務(wù)處理器120的流水線的調(diào)整不會(huì)對(duì)數(shù)據(jù)發(fā)送和接收速度產(chǎn)生限制。這樣,無(wú)論業(yè)務(wù)處理過(guò)程如何變化,只要調(diào)整業(yè)務(wù)處理流水線的設(shè)計(jì)保證流水線全速運(yùn)行,即可保證芯片系統(tǒng)提供全速率處理能力。同樣,如果以太網(wǎng)端口增加或端口速率提高,則可以分別提高數(shù)據(jù)通路的性能和業(yè)務(wù)處理流水線的性能,兩者不構(gòu)成互相制約關(guān)系。
輸出隊(duì)列及調(diào)度器122的功能是為每個(gè)端口提供多個(gè)隊(duì)列以便輸出到該端口的數(shù)據(jù)幀可以依次被發(fā)送。輸出隊(duì)列的配置結(jié)構(gòu)、擁塞控制算法、調(diào)度輸出算法等是決定以太網(wǎng)交換芯片提供的服務(wù)質(zhì)量的關(guān)鍵,其詳細(xì)定義和處理過(guò)程與本發(fā)明無(wú)關(guān),本文不再討論。
輸出隊(duì)列服務(wù)器在功能上是一個(gè)先入先出型存儲(chǔ)器,將業(yè)務(wù)處理流水線與數(shù)據(jù)輸出過(guò)程隔離,詳細(xì)的隊(duì)列實(shí)現(xiàn)結(jié)構(gòu)與本發(fā)明無(wú)關(guān),本文不再討論。
調(diào)度器的功能是響應(yīng)輸出端輪詢及控制模塊124對(duì)各端口的申請(qǐng),從該端口的多個(gè)輸出隊(duì)列中選擇出待發(fā)送的數(shù)據(jù)幀。為了提高調(diào)度器的響應(yīng)速度,調(diào)度器使用了“預(yù)調(diào)度”結(jié)構(gòu)。所謂“預(yù)調(diào)度”,是指調(diào)度器預(yù)先為所有端口調(diào)度出一個(gè)數(shù)據(jù)幀,當(dāng)輸出端輪詢及控制模塊124提出端口的調(diào)度申請(qǐng)時(shí)即可立刻提供調(diào)度結(jié)果,在輸出數(shù)據(jù)過(guò)程使用該調(diào)度結(jié)果的同時(shí),調(diào)度器可完成該端口的下一個(gè)數(shù)據(jù)的調(diào)度,以便響應(yīng)下一次對(duì)本端口的調(diào)度申請(qǐng)。通過(guò)“預(yù)調(diào)度”結(jié)構(gòu),使得輸出端輪詢和隊(duì)列調(diào)度可以并行操作,降低了對(duì)調(diào)度器的處理速度要求。
輸出端輪詢及控制模塊124的功能是輪詢TxFIFO 108的狀態(tài),輪詢出至少有一個(gè)數(shù)據(jù)塊空閑的TxFIFO 108,則向調(diào)度器申請(qǐng)端口的待發(fā)數(shù)據(jù)幀信息,獲得返回信息后,根據(jù)其中的外部緩存地址從外部緩存128中讀出數(shù)據(jù)幀的內(nèi)容,指示輸出端數(shù)據(jù)通路模塊114完成最后修改后,寫(xiě)入到TxFIFO 108中。如果待發(fā)送數(shù)據(jù)長(zhǎng)度超過(guò)一個(gè)數(shù)據(jù)塊大小,則需要多次輪詢?cè)摱丝诓⑦M(jìn)行多次發(fā)送操作。
TxFIFO 108用于暫存即將發(fā)送的數(shù)據(jù)。在本實(shí)施例中,雖然數(shù)據(jù)幀是切分成固定長(zhǎng)度的數(shù)據(jù)塊保存在外部存儲(chǔ)器中,并且輸出過(guò)程也是以數(shù)據(jù)塊為單位讀取到TxFIFO 108中,但在TxFIFO 108中每一個(gè)數(shù)據(jù)塊是連續(xù)存放的,TxMAC 106只需要依次連續(xù)發(fā)送即可,數(shù)據(jù)塊的切分不會(huì)對(duì)發(fā)送產(chǎn)生任何影響。由于芯片內(nèi)的數(shù)據(jù)讀取速度遠(yuǎn)高于TxMAC 106發(fā)送數(shù)據(jù)的速度,TxFIFO 108僅需設(shè)計(jì)為2個(gè)128字節(jié)數(shù)據(jù)塊長(zhǎng)度,最多不超過(guò)3個(gè)128字節(jié)數(shù)據(jù)長(zhǎng)度,即可支持全速率數(shù)據(jù)發(fā)送,無(wú)需考慮待處理的數(shù)據(jù)幀總長(zhǎng)度,這將可以減少芯片面積。同樣,為了適應(yīng)輸入速度要求高,讀出速度要求低的特點(diǎn),TxFIFO 108也可以設(shè)計(jì)為輸入位寬和輸出位寬不同,如TxMAC 106側(cè)為32bit,輸出端數(shù)據(jù)通路模塊114側(cè)為64bit或128bit,以減少RxMAC 102側(cè)的總線位寬,減少芯片面積。
外部存儲(chǔ)器接口控制器112接收輸入端輪詢及控制模塊116的寫(xiě)外部存儲(chǔ)器申請(qǐng),將輸入數(shù)據(jù)通路模塊110發(fā)送到外部存儲(chǔ)器輸入總線上的數(shù)據(jù)寫(xiě)入到外部存儲(chǔ)器130中,并接收輸出端輪詢及控制模塊124的讀外部存儲(chǔ)器申請(qǐng),將外部存儲(chǔ)器130中的數(shù)據(jù)通過(guò)外部存儲(chǔ)器輸出總線發(fā)送到輸出數(shù)據(jù)通路模塊114,每次讀寫(xiě)操作為1~128字節(jié)。
由于DDR SDRAM 130訪問(wèn)需要預(yù)充電、激活等操作才能進(jìn)行讀寫(xiě)操作,想要獲得高帶寬訪問(wèn)能力必須謹(jǐn)慎設(shè)計(jì)訪問(wèn)時(shí)序。外部存儲(chǔ)器接口控制器使用了專利算法協(xié)調(diào)讀寫(xiě)申請(qǐng),設(shè)置訪問(wèn)時(shí)序,為數(shù)據(jù)緩存過(guò)程提供足夠的存儲(chǔ)器帶寬支持。由于該專利內(nèi)容不影響本發(fā)明涉及的技術(shù)方案,本文不對(duì)該專利進(jìn)行詳細(xì)描述,具體內(nèi)容請(qǐng)參考有關(guān)專利設(shè)計(jì)文檔。
緩存管理器126的功能是維護(hù)數(shù)據(jù)幀緩存,也就是維護(hù)外部存儲(chǔ)器130的使用。本實(shí)施例使用了按128字節(jié)數(shù)據(jù)塊為單元進(jìn)行讀寫(xiě),但按照最長(zhǎng)數(shù)據(jù)幀維護(hù)數(shù)據(jù)幀緩存的方法,具體內(nèi)容為將所有外部存儲(chǔ)器130按最長(zhǎng)數(shù)據(jù)幀字節(jié)為單位進(jìn)行劃分,如2048字節(jié),稱為緩存單元,每個(gè)緩存單元以一個(gè)地址表示,可直接對(duì)應(yīng)到外部存儲(chǔ)器地址。對(duì)每個(gè)新進(jìn)入的數(shù)據(jù)幀,都分配一個(gè)緩存,無(wú)論真正的數(shù)據(jù)占用了多少內(nèi)容,空閑字節(jié)都不能給其他數(shù)據(jù)幀使用,數(shù)據(jù)幀在內(nèi)部處理時(shí)都始終攜帶緩存單元地址和數(shù)據(jù)幀長(zhǎng)度,這樣在數(shù)據(jù)幀輸出時(shí)使用這兩個(gè)信息就可以正確的讀出外部存儲(chǔ)器130中的數(shù)據(jù)。使用這種方法,緩存管理器只需對(duì)每個(gè)緩存單元進(jìn)行維護(hù)即可,一個(gè)數(shù)據(jù)幀只會(huì)使用一個(gè)緩存單元,從而減少了緩存管理器需要操作的數(shù)據(jù)量,從而以粗粒度的使用低價(jià)外部存儲(chǔ)器的方式換取了芯片內(nèi)部數(shù)據(jù)量的大幅減少,并且簡(jiǎn)化了芯片算法開(kāi)銷。
如前,以128字節(jié)為單元進(jìn)行數(shù)據(jù)讀寫(xiě)的過(guò)程完全在輸入端和輸出端輪詢及控制模塊124中完成,緩存管理器不再需要介入,減少了緩存管理器的設(shè)計(jì)要求。
緩存管理的過(guò)程包括緩存分配和緩存回收兩個(gè)過(guò)程。緩存分配發(fā)生在數(shù)據(jù)輸入過(guò)程中,由輸入端輪詢及控制模塊116提出分配申請(qǐng),緩存管理器126收到中請(qǐng)后返回一個(gè)未用的緩存單元地址即可。緩存回收發(fā)生在隊(duì)列和數(shù)據(jù)輸出過(guò)程中,輸出隊(duì)列發(fā)送完畢或如果發(fā)生了擁塞需要丟棄數(shù)據(jù)幀,此時(shí)由輸出隊(duì)列及調(diào)度器122用緩存單元地址向緩存管理器126提出釋放申請(qǐng),緩存管理器126對(duì)相應(yīng)緩存單元的控制信息進(jìn)行釋放操作。業(yè)務(wù)轉(zhuǎn)發(fā)過(guò)程會(huì)導(dǎo)致一些數(shù)據(jù)幀因業(yè)務(wù)原因被丟棄,所有丟棄數(shù)據(jù)幀的緩存釋放申請(qǐng)可由輸出端輪詢及控制模塊124使用保存在數(shù)據(jù)幀控制信息中的緩存單元地址向緩存管理器126申請(qǐng),由緩存管理器126進(jìn)行釋放操作。
緩存管理過(guò)程中需要區(qū)別單播和多播兩種情況。單播是“單入單出”的數(shù)據(jù)幀,多播是“單入多出”的數(shù)據(jù)幀,數(shù)據(jù)幀轉(zhuǎn)發(fā)過(guò)程中,多播只有一份拷貝存放在外部存儲(chǔ)器130中,需要進(jìn)行多次輸出時(shí)則對(duì)這份拷貝進(jìn)行多次讀操作。為統(tǒng)一單播和多播轉(zhuǎn)發(fā)時(shí)的緩存管理,緩存管理算法中使用了“數(shù)據(jù)幀引用計(jì)數(shù)器”的方法,為每個(gè)數(shù)據(jù)幀單元地址設(shè)置一個(gè)計(jì)數(shù)器,新數(shù)據(jù)幀進(jìn)行緩存申請(qǐng)時(shí),先為分配的緩存單元配置一個(gè)最大值的計(jì)數(shù)器,當(dāng)業(yè)務(wù)處理單元完成輸出隊(duì)列的入隊(duì)操作后,即可以知道每個(gè)數(shù)據(jù)幀的實(shí)際復(fù)制份數(shù),單播為一份,多播為一份或多份,緩存管理器126根據(jù)輸出隊(duì)列及調(diào)度器112發(fā)送的數(shù)據(jù)幀復(fù)制狀況更新緩存單元的計(jì)數(shù)器,以精確反映數(shù)據(jù)幀的復(fù)制數(shù)量,當(dāng)數(shù)據(jù)幀從數(shù)據(jù)輸出通路發(fā)送時(shí),每發(fā)送一個(gè)數(shù)據(jù)幀就對(duì)相應(yīng)緩存單元的計(jì)數(shù)器進(jìn)行減操作,只有當(dāng)已用數(shù)據(jù)幀單元的計(jì)數(shù)器減為零時(shí),才表示這個(gè)單元的所有多播數(shù)據(jù)幀都被發(fā)送完畢,該緩存單元可被回收用于新數(shù)據(jù)幀。
需要說(shuō)明的是,使用何種緩存管理方法并非本發(fā)明的關(guān)鍵技術(shù),任何能提供緩存分配和回收機(jī)制的方法都可以支撐本發(fā)明的核心方案,以上進(jìn)行詳細(xì)說(shuō)明僅僅是為了使本發(fā)明的闡述更加清晰和完整。
對(duì)于每個(gè)輸入的數(shù)據(jù)幀,首先由RxMAC 102接收并保存到RxFIFO 104中。輸入端輪詢及控制模塊116不斷輪詢各端口的RxFIFO 104接收數(shù)據(jù)的狀態(tài),只要發(fā)現(xiàn)有端口收到了一個(gè)完整數(shù)據(jù)塊,則進(jìn)行輸入緩存操作。輸入緩存操作首先要向緩存管理器126申請(qǐng)緩存單元,也就是外部存儲(chǔ)器地址,獲得地址后通過(guò)外部存儲(chǔ)器輸入總線將RxFIFO 104中的數(shù)據(jù)通過(guò)輸入端數(shù)據(jù)通路模塊110及外部存儲(chǔ)器接口控制器112寫(xiě)入到外部存儲(chǔ)器130中,對(duì)于超過(guò)一個(gè)數(shù)據(jù)塊長(zhǎng)度的數(shù)據(jù)幀,數(shù)據(jù)幀頭以后的數(shù)據(jù)塊不再需要申請(qǐng)新的存儲(chǔ)器地址,只需由輸入端輪詢及控制模塊116自動(dòng)進(jìn)行地址運(yùn)算即可獲得外部存儲(chǔ)地址。
對(duì)每個(gè)數(shù)據(jù)幀,都要將數(shù)據(jù)幀頭以一定字節(jié)長(zhǎng)度的信息保存在為每端口設(shè)置的數(shù)據(jù)幀頭緩存中,連同數(shù)據(jù)幀全部保存完畢后由輸入端輪詢及控制模塊116提供的控制信息一起,交由數(shù)據(jù)幀轉(zhuǎn)發(fā)及業(yè)務(wù)處理器進(jìn)行數(shù)據(jù)幀轉(zhuǎn)發(fā)和業(yè)務(wù)處理,經(jīng)過(guò)業(yè)務(wù)處理后可獲得數(shù)據(jù)幀的輸出端口和數(shù)據(jù)幀修改控制信息。所有這些信息組成輸出數(shù)據(jù)幀控制信息,包括緩存單元地址、數(shù)據(jù)幀長(zhǎng)度、數(shù)據(jù)幀輸出端口、數(shù)據(jù)幀輸出修改指令等,作為一個(gè)數(shù)據(jù)幀控制包進(jìn)入輸出隊(duì)列,等待從輸出端口發(fā)送出去。單播數(shù)據(jù)幀僅被送入一個(gè)輸出端口隊(duì)列,多播數(shù)據(jù)幀會(huì)被送入一個(gè)或多個(gè)輸出端口隊(duì)列。數(shù)據(jù)幀送入輸出端口隊(duì)列的統(tǒng)計(jì)信息由輸出隊(duì)列及調(diào)度器122發(fā)送給緩存管理器126,以便進(jìn)行緩存單元使用計(jì)數(shù)維護(hù)。
在輸出側(cè),輸出端輪詢及控制模塊124不斷輪詢TxFIFO 108發(fā)送數(shù)據(jù)的狀態(tài),只要發(fā)現(xiàn)有端口有一個(gè)或多個(gè)空閑數(shù)據(jù)塊空間,就向輸出隊(duì)列及調(diào)度器122發(fā)送調(diào)度申請(qǐng)。如果輸出端口對(duì)應(yīng)的輸出隊(duì)列中有待發(fā)送數(shù)據(jù),輸出隊(duì)列及調(diào)度器122將返回其數(shù)據(jù)幀控制信息,輸出端輪詢及控制模塊124對(duì)該控制信息進(jìn)行解析,用存儲(chǔ)器地址信息向外部存儲(chǔ)器接口控制器發(fā)出讀申請(qǐng),用數(shù)據(jù)幀長(zhǎng)度信息控制多次讀過(guò)程,用輸出修改指令控制輸出端數(shù)據(jù)通路模塊114進(jìn)行數(shù)據(jù)幀修改,即可完成數(shù)據(jù)從外部存儲(chǔ)器130讀出并經(jīng)過(guò)外部存儲(chǔ)器輸出總線和輸出端數(shù)據(jù)通路模塊114發(fā)送到TxFIFO108,并且完成必須的數(shù)據(jù)幀修改的過(guò)程。每完成一個(gè)數(shù)據(jù)幀的發(fā)送,輸出端輪詢及控制模塊124都向緩存管理器126發(fā)送一個(gè)釋放申請(qǐng),如果來(lái)自調(diào)度器的是需要直接丟棄的數(shù)據(jù)幀,則不進(jìn)行任何輸出操作,直接向緩存管理器發(fā)送一個(gè)釋放申請(qǐng)。
發(fā)送到TxFIFO 108中的數(shù)據(jù)由TxMAC 106發(fā)送到網(wǎng)絡(luò),即完成數(shù)據(jù)幀的轉(zhuǎn)發(fā)。
圖2是根據(jù)本發(fā)明的多端口以太網(wǎng)交換裝置的運(yùn)行方法的框圖。該多端口以太網(wǎng)交換芯片的運(yùn)行方法是采用存儲(chǔ)轉(zhuǎn)發(fā)和共享緩存的方式進(jìn)行的,包括以下步驟步驟202,控制通路控制數(shù)據(jù)通路將從網(wǎng)絡(luò)接收的數(shù)據(jù)幀不經(jīng)過(guò)任何業(yè)務(wù)處理就儲(chǔ)存在外部存儲(chǔ)器130中。
步驟204,控制通路采用多級(jí)流水線方式對(duì)數(shù)據(jù)幀控制信息進(jìn)行處理。
步驟206,控制通路根據(jù)業(yè)務(wù)處理流水線對(duì)數(shù)據(jù)幀的處理結(jié)果,控制數(shù)據(jù)通路讀出儲(chǔ)存在外部存儲(chǔ)器130中的數(shù)據(jù)幀,對(duì)其進(jìn)行必要的修改后發(fā)送到網(wǎng)絡(luò)。
其中,步驟202包括以下步驟步驟202a,接收端以太網(wǎng)媒體控制器102從網(wǎng)絡(luò)接收數(shù)據(jù)幀,并將接收的數(shù)據(jù)幀傳送到接收端先入先出型存儲(chǔ)器104中。
步驟202b,接收端先入先出型存儲(chǔ)器104在暫存數(shù)據(jù)幀的同時(shí),將數(shù)據(jù)幀進(jìn)行切分。
步驟202c,輸入端輪詢及控制模塊110對(duì)端口的接收端先入先出型存儲(chǔ)器104不斷進(jìn)行輪詢,輪詢出一個(gè)已接收到數(shù)據(jù)幀的端口,進(jìn)行數(shù)據(jù)幀緩存單元地址維護(hù)和業(yè)務(wù)處理準(zhǔn)備。
步驟202d,將接收端先入先出型存儲(chǔ)器104中的數(shù)據(jù)通過(guò)輸入端數(shù)據(jù)通路模塊110及外部存儲(chǔ)器接口控制器112寫(xiě)入到外部存儲(chǔ)器130中。
其中,步驟206包括以下步驟步驟206a,輸出端輪詢及控制模塊124不斷輪詢發(fā)送端先入先出型存儲(chǔ)器108發(fā)送數(shù)據(jù)的狀態(tài),直到發(fā)現(xiàn)有端口有一個(gè)或多個(gè)空閑數(shù)據(jù)塊空間。
步驟206b,檢查該端口的數(shù)據(jù)幀是否已經(jīng)發(fā)送完畢,如果數(shù)據(jù)幀已經(jīng)發(fā)送完畢,則向輸出隊(duì)列及調(diào)度器122申請(qǐng)新的待發(fā)送數(shù)據(jù)幀,并使用數(shù)據(jù)幀控制信息中的外部緩存地址將數(shù)據(jù)幀從外部存儲(chǔ)器130中讀出;如果數(shù)據(jù)幀還沒(méi)有發(fā)送完畢,則使用端口狀態(tài)中的地址信息將數(shù)據(jù)幀從所述外部存儲(chǔ)器中讀出。
步驟206c,輸出端數(shù)據(jù)通路模塊114在輸出端輪詢及控制模塊124的控制下對(duì)讀出的數(shù)據(jù)幀進(jìn)行修改,并將其寫(xiě)入發(fā)送端先入先出型存儲(chǔ)器108。
步驟206d,輸出端輪詢及控制模塊114對(duì)數(shù)據(jù)幀緩存單元地址進(jìn)行維護(hù),發(fā)送端以太網(wǎng)媒體控制器106將數(shù)據(jù)幀發(fā)送到網(wǎng)絡(luò)。
圖3是根據(jù)本發(fā)明的輸入端輪詢及控制模塊的邏輯結(jié)構(gòu)圖。其中,輸入端輪詢及控制模塊包括輸入端輪詢模塊302,用于接收來(lái)自所述接收端先入先出型存儲(chǔ)器104的狀態(tài)信息,完成對(duì)所述接收端先入先出型存儲(chǔ)器狀態(tài)的輪詢,選擇出待處理的端口。
輸入端狀態(tài)維護(hù)模塊304,接收來(lái)自所述輸入端輪詢模塊302的待處理端口,待處理端口中是新幀時(shí)向所述緩存管理器126申請(qǐng)可用外部緩存并維護(hù)端口數(shù)據(jù)寫(xiě)入狀態(tài)信息,不是新幀時(shí)直接檢查和維護(hù)端口數(shù)據(jù)寫(xiě)入狀態(tài)信息,狀態(tài)檢查和維護(hù)的輸出結(jié)果為數(shù)據(jù)寫(xiě)入外部緩存的地址,如果待處理端口中是新幀,需輸出新幀頭緩存控制信號(hào),如果待處理端口是幀尾需輸出幀尾指示信號(hào)。
數(shù)據(jù)幀頭緩存寫(xiě)入控制模塊306,接收來(lái)自所述輸入端狀態(tài)維護(hù)模塊304的新幀頭緩存控制信號(hào),控制所述數(shù)據(jù)通路將數(shù)據(jù)幀頭寫(xiě)入數(shù)據(jù)幀頭緩存128。
輸入端數(shù)據(jù)存儲(chǔ)控制模塊308,接收來(lái)自所述輸入端狀態(tài)維護(hù)模塊304的寫(xiě)入外部緩存的地址信息,控制所述數(shù)據(jù)通路將選中的所述接收端先入先出型存儲(chǔ)器104中的數(shù)據(jù)幀寫(xiě)入外部存儲(chǔ)器輸出總線;以及輸入端數(shù)據(jù)幀控制信息生成模塊310,接收來(lái)自所述輸入端狀態(tài)維護(hù)模塊304的幀尾指示信號(hào)后,將端口狀態(tài)信息中的有關(guān)信息構(gòu)造為數(shù)據(jù)幀控制信息,輸出到所述數(shù)據(jù)幀信息先入先出型存儲(chǔ)器118中。
圖4是根據(jù)本發(fā)明的輸入端輪詢及控制模塊的工作過(guò)程流程圖。輸入端輪詢及控制模塊的工作過(guò)程包括以下步驟步驟402,輸入端輪詢模塊302對(duì)所有端口的接收端先入先出型存儲(chǔ)器104的狀態(tài)進(jìn)行輪詢,輪詢出某個(gè)已經(jīng)接收到一個(gè)數(shù)據(jù)塊的接收端先入先出型存儲(chǔ)器104。
步驟404,輸入端狀態(tài)維護(hù)模塊304判斷接收到的數(shù)據(jù)幀是否是新數(shù)據(jù)幀。
步驟406,如果是新數(shù)據(jù)幀,向緩存管理器126申請(qǐng)可用的外部緩存地址。
步驟408,如果是新數(shù)據(jù)幀,數(shù)據(jù)幀頭緩存寫(xiě)入控制模塊306將一控制信號(hào)發(fā)送到數(shù)據(jù)幀頭緩存,將新數(shù)據(jù)幀的數(shù)據(jù)幀頭寫(xiě)入數(shù)據(jù)幀頭緩存128中。
步驟410,輸入端數(shù)據(jù)存儲(chǔ)控制模塊控制接收端先入先出型存儲(chǔ)器和輸入端數(shù)據(jù)通路模塊以及外部存儲(chǔ)器接口控制器將接收到的數(shù)據(jù)塊寫(xiě)入外部存儲(chǔ)器130中。
步驟412,輸入端狀態(tài)維護(hù)模塊維護(hù)端口數(shù)據(jù)的寫(xiě)入信息和狀態(tài)。
步驟414,接收端以太網(wǎng)媒體控制器102判斷是否是數(shù)據(jù)幀尾,并將該信息通過(guò)指定信息位傳送給輸入端狀態(tài)維護(hù)模塊。
步驟416,如果是數(shù)據(jù)幀尾,輸入端狀態(tài)維護(hù)模塊調(diào)整端口信息。
步驟418,輸入端數(shù)據(jù)幀控制信息生成模塊310生成數(shù)據(jù)幀控制信息并將其寫(xiě)入數(shù)據(jù)幀信息先入先出型存儲(chǔ)器118中。
步驟420,接收端先入先出型存儲(chǔ)器104處理結(jié)束,進(jìn)行下一次輪詢及處理。
在數(shù)據(jù)寫(xiě)入外部緩存的過(guò)程中,輸入端輪詢及控制模塊116向待操作的RxFIFO發(fā)送讀指令,指令輸入端數(shù)據(jù)通路模塊110接收該RxFIFO 104的輸出,向外部存儲(chǔ)器接口發(fā)送寫(xiě)申請(qǐng),即可完成數(shù)據(jù)從RxFIFO 104讀出并寫(xiě)入外部存儲(chǔ)器130的數(shù)據(jù)保存過(guò)程。
如果輸入端口數(shù)量較少,RxFIFO數(shù)量少,輸入端輪詢及控制模塊可以采用單級(jí)輪詢結(jié)構(gòu),即每次都檢查所有端口RxFIFO的狀態(tài),選擇出接收到完整數(shù)據(jù)塊的端口,然后進(jìn)行有關(guān)處理。如果輸入端口數(shù)量較多,RxFIFO數(shù)量大,輸入端數(shù)據(jù)輪詢及控制模塊可以采用多級(jí)輪詢結(jié)構(gòu),即將端口分成多個(gè)組,每個(gè)組內(nèi)各自進(jìn)行輪詢,再對(duì)所有組的輪詢結(jié)果進(jìn)行組間輪詢,選擇出每次需要處理的RxFIFO端口。采用多級(jí)輪詢結(jié)構(gòu)的目的是盡可能快的從所有RxFIFO中迅速找到需要處理的RxFIFO,如果只采用單級(jí)輪詢結(jié)構(gòu)而RxFIFO數(shù)量很多,直接從中找出待處理的RxFIFO需要消耗芯片面積和較長(zhǎng)的運(yùn)算時(shí)間。
圖5是根據(jù)本發(fā)明的輸出端輪詢及控制模塊的邏輯結(jié)構(gòu)圖。其中,輸出端輪詢及控制模塊包括輸出端輪詢模塊502,用于接收所述發(fā)送端先入先出型存儲(chǔ)器的狀態(tài)信息,完成對(duì)所述發(fā)送端先入先出型存儲(chǔ)器狀態(tài)的輪詢,選擇出待處理的端口。
輸出端狀態(tài)維護(hù)模塊504,接收來(lái)自所述輸出端輪詢模塊的待處理端口,待處理端口若已完成一個(gè)數(shù)據(jù)幀的發(fā)送則向所述輸出隊(duì)列及調(diào)度器122提出數(shù)據(jù)幀申請(qǐng),所述輸出隊(duì)列及調(diào)度器122返回調(diào)度出的數(shù)據(jù)幀信息給所述輸出端狀態(tài)維護(hù)模塊用以維護(hù)端口發(fā)送狀態(tài)信息,待處理端口的數(shù)據(jù)幀若未發(fā)送完畢則直接檢查和維護(hù)端口的數(shù)據(jù)幀發(fā)送狀態(tài),狀態(tài)檢查和維護(hù)的輸出結(jié)果為用于從外部緩存讀取數(shù)據(jù)的地址,狀態(tài)檢查和維護(hù)還用于判斷數(shù)據(jù)幀是否已發(fā)送完畢,如果數(shù)據(jù)幀發(fā)送完畢則所述輸出端狀態(tài)維護(hù)模塊504使用保存在數(shù)據(jù)幀控制信息中的緩存單元地址向所述緩存管理器126提出釋放申請(qǐng),緩存管理器126對(duì)相應(yīng)緩存單元的控制信息進(jìn)行釋放操作,如果前述輸出隊(duì)列及調(diào)度器122返回的數(shù)據(jù)幀表明數(shù)據(jù)幀因某種原因已被標(biāo)記為丟棄,則所述輸出端狀態(tài)維護(hù)模塊504使用保存在數(shù)據(jù)幀控制信息中的緩存單元地址向所述緩存管理器126提出釋放申請(qǐng),緩存管理器126對(duì)相應(yīng)緩存單元的控制信息進(jìn)行釋放操作。
輸出端數(shù)據(jù)幀讀出及修改控制模塊506,接收來(lái)自所述輸出端狀態(tài)維護(hù)模塊504的地址信號(hào),控制所述輸出端數(shù)據(jù)通路模塊114從所述外部存儲(chǔ)器接口控制器讀出數(shù)據(jù),并控制所述輸出端數(shù)據(jù)通路模塊完成對(duì)數(shù)據(jù)幀的修改,修改后的數(shù)據(jù)被控制寫(xiě)入到所述發(fā)送端先入先出型存儲(chǔ)器108中。
圖6是根據(jù)本發(fā)明的輸出端輪詢及控制模塊的工作過(guò)程流程圖。輸出端輪詢及控制模塊的工作過(guò)程包括以下步驟步驟602,輸出端輪詢模塊502輪詢出至少有一個(gè)空閑數(shù)據(jù)塊的發(fā)送端先入先出型存儲(chǔ)器104。
步驟604,輸出端狀態(tài)維護(hù)模塊504判斷該端口的數(shù)據(jù)幀是否已經(jīng)發(fā)送完畢。
步驟606,如果端口的幀已經(jīng)發(fā)送完畢,那么輸出端狀態(tài)維護(hù)模塊向輸出隊(duì)列及調(diào)度器122申請(qǐng)新的待發(fā)送數(shù)據(jù)幀。
步驟608,輸出端數(shù)據(jù)幀讀出及修改控制模塊506控制輸出端數(shù)據(jù)通路模塊和發(fā)送端先入先出型存儲(chǔ)器108,將數(shù)據(jù)塊從外部存儲(chǔ)器130中讀出、修改,并寫(xiě)入發(fā)送端先入先出型存儲(chǔ)器108中。
步驟610,輸出端狀態(tài)維護(hù)模塊504維護(hù)端口的幀發(fā)送狀態(tài)。
步驟612,發(fā)送端先入先出型存儲(chǔ)器108處理結(jié)束,進(jìn)行下一次輪詢及處理。
在數(shù)據(jù)讀出外部緩存過(guò)程中,輸出端輪詢及控制模塊124向外部存儲(chǔ)器接口發(fā)送讀申請(qǐng),指示輸出端數(shù)據(jù)通路模塊114接收該TxFIFO 108的輸入,向待操作的TxFIFO 108發(fā)送寫(xiě)指令,即可完成數(shù)據(jù)從RxFIFO 104讀出并寫(xiě)入外部存儲(chǔ)器130的數(shù)據(jù)保存過(guò)程。另外,在進(jìn)行上述操作的過(guò)程中,輸出端輪詢及控制模塊124可向輸出端數(shù)據(jù)通路模塊114發(fā)送數(shù)據(jù)修改指令,以完成對(duì)發(fā)送數(shù)據(jù)幀的修改。
與輸入端輪詢及控制模塊類似,輸出端輪詢及控制模塊可以采用單級(jí)輪詢結(jié)構(gòu),也可以采用多級(jí)輪詢結(jié)構(gòu)以提高輪詢速度并減少芯片面積消耗。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種多端口以太網(wǎng)交換裝置,采用存儲(chǔ)轉(zhuǎn)發(fā)和共享緩存的工作方式,其特征在于,所述交換裝置具有業(yè)務(wù)轉(zhuǎn)發(fā)過(guò)程與數(shù)據(jù)存取過(guò)程分離的結(jié)構(gòu)。
2.根據(jù)權(quán)利要求1所述的多端口以太網(wǎng)交換裝置,其特征在于,包括數(shù)據(jù)通路,用于將從網(wǎng)絡(luò)接收的數(shù)據(jù)幀不作任何業(yè)務(wù)處理就保存到一外部存儲(chǔ)器中,并響應(yīng)于控制通路的控制,將數(shù)據(jù)幀讀出,進(jìn)行處理后發(fā)送到所述網(wǎng)絡(luò);以及控制通路,采用多級(jí)流水線結(jié)構(gòu),用于對(duì)數(shù)據(jù)幀控制信息進(jìn)行處理,控制所述數(shù)據(jù)通路對(duì)數(shù)據(jù)幀的發(fā)送過(guò)程。
3.根據(jù)權(quán)利要求2所述的多端口以太網(wǎng)交換裝置,其特征在于,所述數(shù)據(jù)通路包括接收端以太網(wǎng)媒體控制器,用于從網(wǎng)絡(luò)接收數(shù)據(jù)幀;接收端先入先出型存儲(chǔ)器,用于暫存所述接收端以太網(wǎng)媒體控制器接收的數(shù)據(jù)幀,并且對(duì)數(shù)據(jù)幀進(jìn)行切分;輸入端數(shù)據(jù)通路模塊,用于將選中的數(shù)據(jù)幀從所述接收端先入先出型存儲(chǔ)器中讀出并完成數(shù)據(jù)插入后發(fā)送到外部存儲(chǔ)器輸出總線上;外部存儲(chǔ)器接口控制器,與所述輸入端數(shù)據(jù)通路模塊和輸出端數(shù)據(jù)通路模塊連接,用于控制數(shù)據(jù)存入和讀出外部存儲(chǔ)器的過(guò)程;輸出端數(shù)據(jù)通路模塊,對(duì)即將輸出的數(shù)據(jù)幀進(jìn)行必要的修改、插入、或刪除操作,然后將數(shù)據(jù)幀發(fā)送到發(fā)送端先入先出型存儲(chǔ)器中;發(fā)送端先入先出型存儲(chǔ)器,用于暫存來(lái)自所述輸出端數(shù)據(jù)通路模塊的、即將發(fā)送的數(shù)據(jù)幀;以及發(fā)送端以太網(wǎng)媒體控制器,與所述發(fā)送端先入先出型存儲(chǔ)器連接,用于將處理后的數(shù)據(jù)幀發(fā)送到網(wǎng)絡(luò)。
4.根據(jù)權(quán)利要求3所述的多端口以太網(wǎng)交換裝置,其特征在于,所述輸入端數(shù)據(jù)通路模塊在設(shè)計(jì)上是多路選一開(kāi)關(guān)。
5.根據(jù)權(quán)利要求2所述的多端口以太網(wǎng)交換裝置,其特征在于,所述控制通路包括輸入端輪詢及控制模塊,用于對(duì)接收端先入先出型存儲(chǔ)器的狀態(tài)進(jìn)行輪詢和控制,并控制所述輸入端數(shù)據(jù)通路模塊和數(shù)據(jù)幀頭緩存,使其將接收的數(shù)據(jù)儲(chǔ)存到所述外部存儲(chǔ)器中;數(shù)據(jù)幀信息先入先出型存儲(chǔ)器,用于儲(chǔ)存來(lái)自所述輸入端輪詢及控制模塊的數(shù)據(jù)幀控制信息;數(shù)據(jù)幀轉(zhuǎn)發(fā)及業(yè)務(wù)處理器,接收所述數(shù)據(jù)幀信息先入先出型存儲(chǔ)器和數(shù)據(jù)幀頭緩存中的數(shù)據(jù)幀,完成轉(zhuǎn)發(fā)及業(yè)務(wù)處理;輸出隊(duì)列及調(diào)度器,用于為每個(gè)端口的多個(gè)輸出隊(duì)列中的每個(gè)隊(duì)列提供調(diào)度服務(wù),所述輸出隊(duì)列及調(diào)度器接收來(lái)自所述數(shù)據(jù)幀轉(zhuǎn)發(fā)及業(yè)務(wù)處理器的數(shù)據(jù)幀控制信息,控制緩存管理器釋放緩存,并且將所述數(shù)據(jù)幀控制信息發(fā)送到所述輸出端輪詢及控制模塊;輸出端輪詢及控制模塊,用于輪詢發(fā)送端先入先出型存儲(chǔ)器的狀態(tài),向所述輸出隊(duì)列及調(diào)度器發(fā)出調(diào)度申請(qǐng),根據(jù)調(diào)度出的數(shù)據(jù)幀控制信息,控制所述輸出端數(shù)據(jù)通路模塊及所述外部存儲(chǔ)器接口控制器將數(shù)據(jù)幀從外部存儲(chǔ)器讀出并發(fā)送到所述發(fā)送端先入先出型存儲(chǔ)器,并向緩存管理器提交維護(hù)信息;以及緩存管理器,用于維護(hù)外部存儲(chǔ)器的使用。
6.根據(jù)權(quán)利要求5所述的多端口以太網(wǎng)交換裝置,其特征在于,所述數(shù)據(jù)幀轉(zhuǎn)發(fā)及業(yè)務(wù)處理器由多個(gè)業(yè)務(wù)處理單元構(gòu)成,形成多級(jí)流水線結(jié)構(gòu)。
7.根據(jù)權(quán)利要求5所述的多端口以太網(wǎng)交換裝置,其特征在于,所述輸入端輪詢及控制模塊包括輸入端輪詢模塊,用于接收來(lái)自所述接收端先入先出型存儲(chǔ)器的狀態(tài)信息,完成對(duì)所述接收端先入先出型存儲(chǔ)器狀態(tài)的輪詢,選擇出待處理的端口號(hào);輸入端狀態(tài)維護(hù)模塊,接收來(lái)自所述輸入端輪詢模塊輪詢出的待處理端口的數(shù)據(jù)幀,當(dāng)所述數(shù)據(jù)幀是新數(shù)據(jù)幀時(shí),所述輸入端狀態(tài)維護(hù)模塊向所述緩存管理器申請(qǐng)可用的外部緩存,并維護(hù)端口數(shù)據(jù)寫(xiě)入狀態(tài)信息,將新數(shù)據(jù)幀頭緩存控制信號(hào)輸出到所述數(shù)據(jù)幀頭緩存中;當(dāng)所述數(shù)據(jù)幀不是新數(shù)據(jù)幀時(shí),直接檢查和維護(hù)端口數(shù)據(jù)寫(xiě)入狀態(tài)信息,狀態(tài)檢查和維護(hù)的輸出結(jié)果為數(shù)據(jù)寫(xiě)入外部緩存的地址,如果是數(shù)據(jù)幀尾,則將幀尾指示信號(hào)輸出到所述數(shù)據(jù)幀頭緩存中;數(shù)據(jù)幀頭緩存寫(xiě)入控制模塊,接收來(lái)自所述輸入端狀態(tài)維護(hù)模塊的新數(shù)據(jù)幀頭緩存控制信號(hào),控制所述數(shù)據(jù)通路將數(shù)據(jù)幀頭寫(xiě)入數(shù)據(jù)幀頭緩存;輸入端數(shù)據(jù)存儲(chǔ)控制模塊,接收來(lái)自所述輸入端狀態(tài)維護(hù)模塊的寫(xiě)入外部緩存的地址信息,控制所述數(shù)據(jù)通路將選中的所述接收端先入先出型存儲(chǔ)器中的數(shù)據(jù)幀寫(xiě)入外部存儲(chǔ)器輸出總線;以及輸入端數(shù)據(jù)幀控制信息生成模塊,接收來(lái)自所述輸入端狀態(tài)維護(hù)模塊的幀尾指示信號(hào)后,將端口狀態(tài)信息中的有關(guān)信息構(gòu)造為數(shù)據(jù)幀控制信息,輸出到所述數(shù)據(jù)幀信息先入先出型存儲(chǔ)器中。
8.根據(jù)權(quán)利要求5所述的多端口以太網(wǎng)交換裝置,其特征在于,所述輸出隊(duì)列及調(diào)度器包括輸出隊(duì)列服務(wù)器,用于提供服務(wù)等級(jí),將數(shù)據(jù)幀轉(zhuǎn)發(fā)及業(yè)務(wù)處理器與數(shù)據(jù)輸出通路隔開(kāi);以及調(diào)度器,根據(jù)所述輸出端輪詢及控制模塊的請(qǐng)求從端口隊(duì)列中輸出一個(gè)數(shù)據(jù)幀。
9.根據(jù)權(quán)利要求8所述的多端口以太網(wǎng)交換裝置,其特征在于,所述輸出隊(duì)列服務(wù)器在功能上是先入先出型存儲(chǔ)器。
10.根據(jù)權(quán)利要求8所述的多端口以太網(wǎng)交換裝置,其特征在于,所述調(diào)度器采用預(yù)調(diào)度結(jié)構(gòu),預(yù)先為每個(gè)端口調(diào)度出一個(gè)數(shù)據(jù)幀,當(dāng)輸出端輪詢及控制模塊提出端口的調(diào)度申請(qǐng)時(shí),可以立刻提供調(diào)度結(jié)果。
11.根據(jù)權(quán)利要求5所述的多端口以太網(wǎng)交換裝置,其特征在于所述輸出端輪詢及控制模塊包括輸出端輪詢模塊,用于接收所述發(fā)送端先入先出型存儲(chǔ)器的狀態(tài)信息,完成對(duì)所述發(fā)送端先入先出型存儲(chǔ)器狀態(tài)的輪詢,選擇出待處理的端口號(hào);輸出端狀態(tài)維護(hù)模塊,接收來(lái)自所述輸出端輪詢模塊輪詢的待處理端口的數(shù)據(jù)幀,檢查和維護(hù)端口的數(shù)據(jù)幀發(fā)送狀態(tài),并且判斷數(shù)據(jù)幀是否已發(fā)送完畢,如果數(shù)據(jù)幀發(fā)送完畢則向所述緩存管理器提出釋放申請(qǐng),緩存管理器對(duì)相應(yīng)緩存單元的控制信息進(jìn)行釋放操作,如果返回的數(shù)據(jù)幀表明數(shù)據(jù)幀因某種原因已被標(biāo)記為丟棄,則所述狀態(tài)維護(hù)模塊使用保存在數(shù)據(jù)幀控制信息中的緩存單元地址向所述緩存管理器提出釋放申請(qǐng),緩存管理器對(duì)相應(yīng)緩存單元的控制信息進(jìn)行釋放操作;以及輸出端數(shù)據(jù)幀讀出及修改控制模塊,接收來(lái)自所述輸出端狀態(tài)維護(hù)模塊的地址信號(hào),控制所述輸出端數(shù)據(jù)通路模塊從所述外部存儲(chǔ)器接口控制器讀出數(shù)據(jù),并控制所述輸出端數(shù)據(jù)通路模塊完成對(duì)數(shù)據(jù)幀的處理,處理后的數(shù)據(jù)被寫(xiě)入到所述發(fā)送端先入先出型存儲(chǔ)器中。
12.一種多端口以太網(wǎng)交換裝置的數(shù)據(jù)傳輸方法,其特征在于,所述運(yùn)行方法包括以下步驟步驟202,所述控制通路將從網(wǎng)絡(luò)接收的數(shù)據(jù)幀儲(chǔ)存在外部存儲(chǔ)器中;以及步驟204,所述控制通路采用多級(jí)流水線方式對(duì)數(shù)據(jù)幀控制信息進(jìn)行處理;以及步驟206,所述控制通路根據(jù)處理結(jié)果,控制所述數(shù)據(jù)通路讀出儲(chǔ)存在所述外部存儲(chǔ)器中的數(shù)據(jù)幀,對(duì)所述數(shù)據(jù)幀進(jìn)行必要處理后將其發(fā)送到網(wǎng)絡(luò)。
13.根據(jù)權(quán)利要求12所述的數(shù)據(jù)傳輸方法,其特征在于,所述步驟202包括以下步驟步驟202a,所述接收端以太網(wǎng)媒體控制器從網(wǎng)絡(luò)接收數(shù)據(jù)幀,并將接收的數(shù)據(jù)幀傳送到所述接收端先入先出型存儲(chǔ)器中;步驟202b,所述接收端先入先出型存儲(chǔ)器在暫存數(shù)據(jù)幀的同時(shí),將數(shù)據(jù)幀進(jìn)行切分;步驟202c,所述輸入端輪詢及控制模塊對(duì)端口的接收端先入先出型存儲(chǔ)器進(jìn)行輪詢,輪詢出已接收到數(shù)據(jù)幀的端口,進(jìn)行數(shù)據(jù)幀緩存單元地址維護(hù)和業(yè)務(wù)處理準(zhǔn)備;以及步驟202d,將所述接收端先入先出型存儲(chǔ)器中的數(shù)據(jù)通過(guò)所述輸入端數(shù)據(jù)通路模塊及所述外部存儲(chǔ)器接口控制器寫(xiě)入到外部存儲(chǔ)器中。
14.根據(jù)權(quán)利要求12所述的數(shù)據(jù)傳輸方法,其特征在于,所述步驟206包括以下步驟步驟206a,所述輸出端輪詢及控制模塊不斷輪詢所述發(fā)送端先入先出型存儲(chǔ)器發(fā)送數(shù)據(jù)的狀態(tài),直到發(fā)現(xiàn)有端口有一個(gè)或多個(gè)空閑數(shù)據(jù)塊空間;步驟206b,檢查所述端口的數(shù)據(jù)幀是否已經(jīng)發(fā)送完畢,如果數(shù)據(jù)幀已經(jīng)發(fā)送完畢,則向所述輸出隊(duì)列及調(diào)度器申請(qǐng)新的待發(fā)送數(shù)據(jù)幀,并使用數(shù)據(jù)幀控制信息中的外部緩存地址將新的數(shù)據(jù)幀從外部存儲(chǔ)器中讀出;如果所述數(shù)據(jù)幀還沒(méi)有發(fā)送完畢,則使用端口狀態(tài)中的地址信息將所述數(shù)據(jù)幀從所述外部存儲(chǔ)器中讀出;步驟206c,所述輸出端數(shù)據(jù)通路模塊在所述輸出端輪詢及控制模塊的控制下對(duì)讀出的數(shù)據(jù)幀進(jìn)行修改,并將其寫(xiě)入所述發(fā)送端先入先出型存儲(chǔ)器;步驟206d,所述輸出端輪詢及控制模塊對(duì)數(shù)據(jù)幀緩存單元地址進(jìn)行維護(hù),所述發(fā)送端以太網(wǎng)媒體控制器將數(shù)據(jù)幀發(fā)送到網(wǎng)絡(luò)。
15.根據(jù)權(quán)利要求12所述的數(shù)據(jù)傳輸方法,其特征在于,所述輸入端輪詢及控制模塊進(jìn)行輪詢及處理的過(guò)程為步驟402,所述輸入端輪詢模塊對(duì)所有端口的接收端先入先出型存儲(chǔ)器的狀態(tài)進(jìn)行輪詢,輪詢出某個(gè)已經(jīng)接收到一個(gè)數(shù)據(jù)塊的接收端先入先出型存儲(chǔ)器;步驟404,所述輸入端狀態(tài)維護(hù)模塊判斷接收到的數(shù)據(jù)幀是否是新數(shù)據(jù)幀;步驟406,如果是新數(shù)據(jù)幀,向所述緩存管理器申請(qǐng)可用的外部緩存地址;步驟408,如果是新數(shù)據(jù)幀,所述數(shù)據(jù)幀頭緩存寫(xiě)入控制模塊將一控制信號(hào)發(fā)送到所述數(shù)據(jù)幀頭緩存,將新數(shù)據(jù)幀的數(shù)據(jù)幀頭寫(xiě)入所述數(shù)據(jù)幀頭緩存中;步驟410,所述輸入端數(shù)據(jù)存儲(chǔ)控制模塊控制所述接收端先入先出型存儲(chǔ)器和所述輸入端數(shù)據(jù)通路模塊以及所述外部存儲(chǔ)器接口控制器將接收到的數(shù)據(jù)塊寫(xiě)入外部存儲(chǔ)器中;步驟412,所述輸入端狀態(tài)維護(hù)模塊維護(hù)端口數(shù)據(jù)的寫(xiě)入信息和狀態(tài);步驟414,接收端以太網(wǎng)媒體控制器判斷是否是數(shù)據(jù)幀尾,并將該信息通過(guò)指定信息位傳送給輸入端狀態(tài)維護(hù)模塊;步驟416,如果是數(shù)據(jù)幀尾,所述輸入端狀態(tài)維護(hù)模塊調(diào)整端口信息;步驟418,所述輸入端數(shù)據(jù)幀控制信息生成模塊生成數(shù)據(jù)幀控制信息并將其寫(xiě)入數(shù)據(jù)幀信息先入先出型存儲(chǔ)器中;以及步驟420,所述接收端先入先出型存儲(chǔ)器處理結(jié)束,進(jìn)行下一次輪詢及處理。
16.根據(jù)權(quán)利要求14或15所述的數(shù)據(jù)傳輸方法,所述輸入端數(shù)據(jù)輪詢及控制模塊采用多級(jí)輪詢結(jié)構(gòu),即將端口分成多個(gè)組,每個(gè)組內(nèi)各自進(jìn)行輪詢,再對(duì)所有組的輪詢結(jié)果進(jìn)行組間輪詢,選擇出每次需要處理的接收端先入先出型存儲(chǔ)器端口號(hào)。
17.根據(jù)權(quán)利要求14所述的數(shù)據(jù)傳輸方法,其特征在于,所述輸出端輪詢及控制模塊進(jìn)行輪詢及處理的過(guò)程為步驟602,所述輸出端輪詢模塊輪詢出至少有一個(gè)空閑數(shù)據(jù)塊的發(fā)送端先入先出型存儲(chǔ)器;步驟604,所述輸出端狀態(tài)維護(hù)模塊判斷該端口的數(shù)據(jù)幀是否已經(jīng)發(fā)送完畢;步驟606,如果所述端口的數(shù)據(jù)幀已經(jīng)發(fā)送完畢,那么所述輸出端狀態(tài)維護(hù)模塊向輸出隊(duì)列及調(diào)度器申請(qǐng)新的待發(fā)送數(shù)據(jù)幀;步驟608,所述輸出端數(shù)據(jù)幀讀出及修改控制模塊控制所述輸出端數(shù)據(jù)通路模塊和所述發(fā)送端先入先出型存儲(chǔ)器,將數(shù)據(jù)塊從外部存儲(chǔ)器中讀出、修改,并寫(xiě)入發(fā)送端先入先出型存儲(chǔ)器中;步驟610,所述輸出端狀態(tài)維護(hù)模塊維護(hù)端口的幀發(fā)送狀態(tài);以及步驟612,所述發(fā)送端先入先出型存儲(chǔ)器處理結(jié)束,進(jìn)行下一次輪詢及處理。
全文摘要
本發(fā)明提供了一種多端口以太網(wǎng)交換裝置及數(shù)據(jù)傳輸方法,該處理裝置基于存儲(chǔ)轉(zhuǎn)發(fā)和共享緩存的方式,其特征在于,該交換裝置具有業(yè)務(wù)轉(zhuǎn)發(fā)過(guò)程與數(shù)據(jù)存取過(guò)程分離的結(jié)構(gòu),包括數(shù)據(jù)通路,用于將從網(wǎng)絡(luò)接收的數(shù)據(jù)幀不作任何業(yè)務(wù)處理就保存到一外部存儲(chǔ)器中,并響應(yīng)于控制通路的控制,將數(shù)據(jù)幀讀出,進(jìn)行必要的處理后發(fā)送到網(wǎng)絡(luò);以及控制通路,采用多級(jí)流水線結(jié)構(gòu),用于對(duì)數(shù)據(jù)幀控制信息進(jìn)行處理,控制所述數(shù)據(jù)通路對(duì)數(shù)據(jù)幀的發(fā)送過(guò)程。
文檔編號(hào)H04L12/56GK1859275SQ200510036218
公開(kāi)日2006年11月8日 申請(qǐng)日期2005年7月27日 優(yōu)先權(quán)日2005年7月27日
發(fā)明者林郁, 梅柳波, 林暉, 崔靖杰 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
巫溪县| 芒康县| 凯里市| 凌源市| 息烽县| 县级市| 麦盖提县| 文水县| 内黄县| 专栏| 赤城县| 灵川县| 中山市| 汶上县| 昭通市| 蒙自县| 宁津县| 贡山| 武宣县| 青河县| 武夷山市| 栾城县| 崇义县| 阿坝县| 青田县| 定边县| 友谊县| 金山区| 武城县| 济宁市| 内乡县| 安图县| 合江县| 沙田区| 会东县| 聊城市| 井冈山市| 和平区| 镇巴县| 张北县| 交口县|