本發(fā)明涉及芯片資源分配技術(shù)領(lǐng)域,具體涉及一種堆疊系統(tǒng)網(wǎng)絡(luò)芯片NextHop資源分配方法。
背景技術(shù):
堆疊系統(tǒng)報(bào)文的轉(zhuǎn)發(fā)查找與報(bào)文的編輯是分離的,報(bào)文編輯動(dòng)作定義通過NextHop表項(xiàng)來存儲(chǔ),讀取NextHop表項(xiàng)的Index是由轉(zhuǎn)發(fā)表而得到的,這樣在堆疊系統(tǒng)下發(fā)轉(zhuǎn)發(fā)表項(xiàng)時(shí),要先到出端口對(duì)應(yīng)的芯片申請(qǐng)NextHop資源,得到對(duì)應(yīng)的Index后,再在入端口的芯片配置轉(zhuǎn)發(fā)表項(xiàng)。如果出端口發(fā)生芯片間的遷移時(shí),會(huì)引起在出端口芯片申請(qǐng)NextHop資源后,軟件刷新相關(guān)聯(lián)轉(zhuǎn)發(fā)表項(xiàng)的Index,由于每一個(gè)物理芯片的NextHop資源規(guī)格及編址不完全一致,給軟件的管理帶來很大的難度。
目前堆疊系統(tǒng)NextHop資源采用對(duì)等分配方案,用堆疊系統(tǒng)中所有芯片中最小的NextHop資源作為整個(gè)系統(tǒng)的資源空間,申請(qǐng)NextHop時(shí),在所有芯片中統(tǒng)一申請(qǐng)同一個(gè)Index,并配置相應(yīng)的表項(xiàng),如圖1所示,但該方法具有以下缺陷:
1.芯片A和芯片B上只能使用前6K NextHop資源空間,多余的NextHop資源空間被浪費(fèi)。
2.如果出端口在芯片A上,申請(qǐng)的NextHop的Index為1,則芯片B/芯片C上Index為1的條目被浪費(fèi)。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明的主要目的在于:提出一種堆疊系統(tǒng)網(wǎng)絡(luò)芯片NextHop資源分配方法,通過本地映射表,完成NextHop資源的Index的重映射,從而大大簡(jiǎn)化軟件管理NextHop資源。
為實(shí)現(xiàn)前述目的,本發(fā)明公開了一種堆疊系統(tǒng)網(wǎng)絡(luò)芯片NextHop資源分配方法,具體包括:
根據(jù)芯片的物理NextHop資源配置CHIPID邏輯地址分配表,所述CHIPID邏輯地址分配表用于存儲(chǔ)地址映射表的基址和地址映射表?xiàng)l目數(shù);
CPU在入口芯片上下發(fā)轉(zhuǎn)發(fā)表時(shí),根據(jù)目的芯片ID申請(qǐng)邏輯NextHop地址,出口芯片申請(qǐng)物理NextHop地址并下發(fā)表項(xiàng)配置NextHop地址映射表中對(duì)應(yīng)條目,對(duì)應(yīng)條目的Index為所述CHIPID邏輯地址分配表中對(duì)應(yīng)的地址映射表基址與所述邏輯NextHop地址之和;
當(dāng)報(bào)文到達(dá)入口芯片后,入口芯片獲取目的端口、邏輯NextHop地址后,將攜帶所述目的端口、邏輯NextHop地址及芯片ID的報(bào)文發(fā)送給出口芯片;
出口芯片接收到所述入口芯片發(fā)送的報(bào)文后,根據(jù)所述入口芯片的邏輯NextHop地址和芯片ID判斷報(bào)文的NextHop是否越界;若越界,丟棄該報(bào)文;否則,獲取NextHop地址映射表的Index,索引得到本地NextHop地址,獲取報(bào)文的編輯信息,對(duì)報(bào)文進(jìn)行相應(yīng)編輯后發(fā)送。
優(yōu)選地,堆疊系統(tǒng)內(nèi)所有芯片的CHIPID邏輯地址分配表配置一致。
優(yōu)選地,所述方法還包括:出口芯片接收所述報(bào)文后,根據(jù)入口芯片的芯片ID索引CHIPID邏輯地址分配表,得到地址映射表的基址和地址映射表?xiàng)l目數(shù)。
優(yōu)選地,如果所述入口芯片的邏輯NextHop地址大于或等于地址映射表?xiàng)l目數(shù),則表示報(bào)文的NextHop越界。
優(yōu)選地,所述獲取NextHop地址映射表的Index是通過計(jì)算所述根據(jù)入口芯片的芯片ID索引CHIPID邏輯地址分配表得到的地址映射表的基址與所述入口芯片的邏輯NextHop地址之和獲得。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:本發(fā)明公開的一種堆疊系統(tǒng)網(wǎng)絡(luò)芯片NextHop資源分配方法,通過本地映射表,完成NextHop資源的Index的重映射,使本地NextHop資源可以被充分利用,避免了CPU對(duì)轉(zhuǎn)發(fā)表的刷新操作,大大降低軟件對(duì)芯片NextHop資源的管理難度。
附圖說明
圖1是現(xiàn)有技術(shù)中堆疊系統(tǒng)NextHop資源采用對(duì)等分配方案示意圖;
圖2是本發(fā)明實(shí)施例提出的CHIPID邏輯地址分配表示意圖;
圖3是本發(fā)明實(shí)施例提出的NextHop地址映射表示意圖;
圖4是本發(fā)明實(shí)施例提出的CHIPID邏輯地址分配表示例圖;
圖5是本發(fā)明實(shí)施例提出的報(bào)文轉(zhuǎn)發(fā)流程示意圖;
圖6是本發(fā)明實(shí)施例提出的堆疊系統(tǒng)網(wǎng)絡(luò)芯片NextHop資源分配示意圖。
具體實(shí)施方式
鑒于現(xiàn)有技術(shù)中的不足,本案發(fā)明人經(jīng)長(zhǎng)期研究和大量實(shí)踐,得以提出本發(fā)明的技術(shù)方案。如下將對(duì)該技術(shù)方案、其實(shí)施過程及原理等作進(jìn)一步的解釋說明。
本發(fā)明實(shí)施例所述的堆疊系統(tǒng)網(wǎng)絡(luò)芯片NextHop資源分配方法基于CHIPID邏輯地址分配表和NextHop地址映射表實(shí)現(xiàn),所述CHIPID邏輯地址分配表用于存儲(chǔ)根據(jù)源芯片ID得到的地址映射表的基址和對(duì)應(yīng)地址映射表?xiàng)l目數(shù),其表項(xiàng)構(gòu)成如圖2所示;所述NextHop地址映射表用于存儲(chǔ)通過邏輯地址映射出的本地NextHop地址,其表項(xiàng)構(gòu)成如圖3所示。
當(dāng)報(bào)文到達(dá)目的芯片時(shí),根據(jù)源芯片獲取的映射表的基址和邏輯NextHop地址映射出本地NextHop地址的Index,從而獲取本地NextHop地址,使本地NextHop資源得到充分利用,避免CPU的對(duì)轉(zhuǎn)發(fā)表的刷新操作,從而降低軟件對(duì)芯片NextHop資源的管理難度。
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
首先,CPU需進(jìn)行轉(zhuǎn)發(fā)表配置操作,具體流程包括:
根據(jù)芯片的物理NextHop資源配置CHIPID邏輯地址分配表,進(jìn)行NextHop地址映射表空間的分配,其分配示例如圖4所示。CHIPID邏輯地址分配表是由堆疊系統(tǒng)全局規(guī)劃而得,因此,所有芯片上CHIPID邏輯地址分配表配置一致。
CPU在入口芯片上下發(fā)轉(zhuǎn)發(fā)表時(shí),根據(jù)目的芯片ID申請(qǐng)邏輯NextHop地址,然后由出口芯片申請(qǐng)物理NextHop地址并下發(fā)表項(xiàng),配置NextHop地址映射表中的對(duì)應(yīng)的條目,其對(duì)應(yīng)條目的Index=CHIPID邏輯地址分配表.地址映射表基址+邏輯NextHop地址。
之后,當(dāng)報(bào)文到達(dá)堆疊系統(tǒng)后,經(jīng)芯片組查找、轉(zhuǎn)發(fā)、計(jì)算等一系列動(dòng)作,獲取NextHop地址映射表對(duì)應(yīng)條目的Index,從而獲取本地NextHop地址。
圖5是本發(fā)明實(shí)施例提出的報(bào)文轉(zhuǎn)發(fā)流程示意圖,芯片A為入口(Ingress)芯片,芯片B為出口(Egress)芯片,芯片內(nèi)部包括IPE(Ingress Process Engine)模塊、BSR(Buffer Store and Retrieve)模塊和EPE(Egress Process Engine)模塊。IPE模塊主要對(duì)報(bào)文進(jìn)行轉(zhuǎn)發(fā)表的查找得到轉(zhuǎn)發(fā)目的地和編輯信息,BSR模塊對(duì)報(bào)文進(jìn)行存儲(chǔ)和轉(zhuǎn)發(fā)到相應(yīng)目的地,EPE模塊根據(jù)IPE模塊得到的編輯信息對(duì)原始報(bào)文進(jìn)行編輯。報(bào)文轉(zhuǎn)發(fā)過程如下:
1.芯片A報(bào)文處理流程
報(bào)文從網(wǎng)絡(luò)端口進(jìn)入后,在IPE模塊通過轉(zhuǎn)發(fā)表的查找得到目的端口和邏輯NextHop地址;
目的端口為芯片B的端口,芯片A將報(bào)文從芯片間的互聯(lián)端口發(fā)送給芯片B,通過stackingHeader(堆疊系統(tǒng)報(bào)文頭)攜帶目的端口、邏輯NextHop地址及芯片A的芯片ID。
2.芯片B報(bào)文處理流程
芯片B從芯片間的互聯(lián)端口收到上述報(bào)文后,從stackingHeader可獲取芯片A的CHIPID、目的端口、邏輯NextHop地址;
BSR模塊根據(jù)目的端口將報(bào)文入相應(yīng)的隊(duì)列;
EPE模塊根據(jù)芯片A的芯片ID索引CHIPID邏輯地址分配表,得到地址映射表的基址和地址映射表?xiàng)l目數(shù),并判斷報(bào)文的NextHop是否越界:
如果邏輯NextHop地址>=地址映射表?xiàng)l目數(shù),則表示報(bào)文的NextHop越界,丟棄報(bào)文;
如果邏輯NextHop地址<地址映射表?xiàng)l目數(shù),則計(jì)算NextHop地址映射表的Index,NextHop地址映射表的Index=地址映射表的基址+邏輯NextHop地址。根據(jù)上述計(jì)算出的Index索引NextHop地址映射表得到本地的物理NextHop地址,然后讀取物理的NextHop內(nèi)容獲取報(bào)文的編輯信息,對(duì)報(bào)文進(jìn)行相應(yīng)的編輯后,發(fā)送給對(duì)應(yīng)的端口。
需要說明的是,圖5所示的實(shí)施例中雖然僅對(duì)入口芯片(芯片A)和出口芯片(芯片B)的報(bào)文轉(zhuǎn)發(fā)過程進(jìn)行說明,但本領(lǐng)域人員應(yīng)當(dāng)知曉,該處理過程還可能包括若干中間芯片,由于在此處理過程中中間芯片只是透明轉(zhuǎn)發(fā)報(bào)文,不會(huì)對(duì)報(bào)文進(jìn)行編輯動(dòng)作,所以不需取NextHop地址,故在此不再另外贅述。
采用本發(fā)明實(shí)施例的堆疊系統(tǒng)網(wǎng)絡(luò)芯片NextHop資源分配方法,對(duì)圖1所示的堆疊系統(tǒng)進(jìn)行NextHop資源分配,堆疊系統(tǒng)可提供16K+12K+6K的NextHop邏輯空間,其示例如圖6所示,使NextHop資源得到充分利用。通過對(duì)本地NextHop地址進(jìn)行映射查找,避免了CPU對(duì)轉(zhuǎn)發(fā)表刷新操作而引起的查找錯(cuò)誤,從而降低了對(duì)NextHop資源空間的管理難度。
應(yīng)當(dāng)理解,上述實(shí)施例僅為說明本發(fā)明的技術(shù)構(gòu)思及特點(diǎn),其目的在于讓熟悉此項(xiàng)技術(shù)的人士能夠了解本發(fā)明的內(nèi)容并據(jù)以實(shí)施,并不能以此限制本發(fā)明的保護(hù)范圍。凡根據(jù)本發(fā)明精神實(shí)質(zhì)所作的等效變化或修飾,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。