本申請涉及網(wǎng)絡(luò)通信技術(shù),特別涉及實現(xiàn)多臺設(shè)備堆疊的方法和設(shè)備。
背景技術(shù):
堆疊,其核心思想是將多臺設(shè)備比如交換設(shè)備通過堆疊口連接在一起進(jìn)行必要的配置后,虛擬化成一臺聯(lián)合設(shè)備,該虛擬化成的聯(lián)合設(shè)備就稱為一個堆疊,而堆疊中的交換設(shè)備則稱為成員設(shè)備。圖1示出了堆疊的結(jié)構(gòu)。在圖1中,交換設(shè)備1至交換設(shè)備4之間通過堆疊口連接組成堆疊,其中,交換設(shè)備1至交換設(shè)備4為成員設(shè)備。
目前,設(shè)備上芯片的端口一般采用全局系統(tǒng)端口(SysPort)的形式表示。其中,SysPort由15位(Bits)組成,一共有32K個SysPort,其中的16K個SysPort分配給單端口,剩下的16K個SysPort分配給聚合口。本申請重點涉及單端口,所以只對單端口展開描述,不對聚合口展開描述。
對于單端口,其SysPort的形式通過公式1表示:
Sysport=(UnitID<<n)+port ID; (公式1)
其中,UnitID為芯片編號,<<表示UnitID左移,port ID為單端口在芯片上的端口號,n為芯片支持的端口數(shù)量對應(yīng)的比特位數(shù),比如,芯片支持64個端口(包括外部端口和內(nèi)部端口),則n為6。
因為SysPort資源有限,只有16K個SysPort分配給單端口,若采用上面公式1實現(xiàn)單端口的SysPort形式,則意味著最多只有16K/2n個UnitID可以使用,應(yīng)用于堆疊,這也就限制了堆疊中可以使用的UnitID總數(shù)量不能超過16K/2n,在堆疊中,2n為從堆疊中各個成員設(shè)備上的各個芯片支持的單端口 數(shù)量中選擇出的一個最大值,這會導(dǎo)致堆疊中因為UnitID不足難以實現(xiàn)成員設(shè)備堆疊。
比如,高密100G的交換設(shè)備1與高密10G的交換設(shè)備2堆疊,假如交換設(shè)備1中,每一接口板集成了6塊雙核(Core)交換芯片,每塊雙Core芯片支持的單端口數(shù)量為64,交換設(shè)備2中,每一接口板集成了6塊單Core交換芯片,每塊單Core芯片支持的單端口數(shù)量為32,盡管交換設(shè)備2中每塊單Core芯片支持的單端口數(shù)量為32,但是因為交換設(shè)備2是與交換設(shè)備1堆疊,按照如上描述的2n為從堆疊中各個成員設(shè)備上的各個芯片支持的單端口數(shù)量中選擇出的一個最大值,則這里就限制2n為交換設(shè)備1中每塊雙Core芯片支持的單端口數(shù)量即64,即堆疊中最多只有16K/64=256個UnitID可以使用。交換設(shè)備1中的每塊雙Core芯片的每一Core分配一個不同的Unit ID,這樣一塊雙Core芯片就有兩個Unit ID,接口板的6塊雙Core芯片就會有12個不同的UnitID,假如交換設(shè)備1總共有16塊接口板,則16塊接口板就會有16*12=192個Unit ID,即一個交換設(shè)備1就要有192個Unit ID;交換設(shè)備2中的每塊單Core芯片分配一個不同的Unit ID,這樣接口板的6塊單Core芯片就會有6個不同的UnitID,假如交換設(shè)備2總共有16塊接口板,則16塊接口板就會有16*6=96個Unit ID,即一個交換設(shè)備2就要有96個Unit ID。這也就意味著交換設(shè)備1與交換設(shè)備2堆疊,總共需要192+96=288個堆疊,而基于交換設(shè)備1與交換設(shè)備2的堆疊最多只有16K/64=256個可以使用的UnitID遠(yuǎn)遠(yuǎn)不夠,這就使得交換設(shè)備1與交換設(shè)備2不能堆疊。
技術(shù)實現(xiàn)要素:
本申請?zhí)峁┝藢崿F(xiàn)多臺設(shè)備堆疊的方法和設(shè)備,以有效支撐多臺設(shè)備堆疊的需求。
本申請?zhí)峁┑募夹g(shù)方案包括:
一種實現(xiàn)多臺設(shè)備堆疊的方法,該方法包括:
堆疊中成員設(shè)備的主控板根據(jù)插入至本設(shè)備的每一接口板上的芯片類型和 芯片數(shù)量X確定所述接口板所需的芯片編號Unit ID數(shù)量L;
所述主控板檢查本設(shè)備被分配的Unit ID內(nèi)是否存在L個未被占用的Unit ID;
如果是,所述主控板從本設(shè)備被分配的Unit ID內(nèi)選取L個未被占用的Unit ID作為所述接口板的Unit ID范圍分配給所述接口板,并針對所述接口板上的每一芯片,從所述接口板被分配的Unit ID范圍內(nèi)選取未被占用的Unit ID分配給所述芯片;
如果否,所述主控板抑制所述接口板啟動。
一種實現(xiàn)多臺設(shè)備堆疊的裝置,該裝置應(yīng)用于堆疊中成員設(shè)備的主控板,包括:
確定單元,用于根據(jù)插入至本設(shè)備的每一接口板上的芯片類型和芯片數(shù)量X確定所述接口板所需的芯片編號Unit ID數(shù)量L;
檢查單元,用于檢查本設(shè)備被分配的Unit ID內(nèi)是否存在L個未被占用的Unit ID;
處理單元,用于在所述檢查單元的檢查結(jié)果為是時,從本設(shè)備被分配的Unit ID內(nèi)選取L個未被占用的Unit ID作為所述接口板的Unit ID范圍分配給所述接口板,并針對所述接口板上的每一芯片,從所述接口板被分配的Unit ID范圍內(nèi)選取未被占用的Unit ID分配給所述芯片;以及,
在所述檢查單元的檢查結(jié)果為否時,抑制所述接口板啟動。
由以上技術(shù)方案可以看出,本發(fā)明中,在設(shè)置堆疊時,不再按照從堆疊中各個成員設(shè)備上的各個芯片支持的單端口數(shù)量中選擇出一個最大值確定堆疊可以使用的的UnitID總數(shù)量,而是有針對性地根據(jù)插入至本設(shè)備的每一接口板上的芯片類型和芯片數(shù)量X確定所述接口板所需的芯片編號Unit ID數(shù)量L,在檢查出本設(shè)備被分配的Unit ID內(nèi)不存在L個未被占用的Unit ID時,抑制接口板啟動,而在檢查出本設(shè)備被分配的Unit ID內(nèi)存在L個未被占用的Unit ID時,所述主控板從本設(shè)備被分配的Unit ID內(nèi)選取L個未被占用的Unit ID作為所述 接口板的Unit ID范圍分配給所述接口板,并針對所述接口板上的每一芯片,從所述接口板被分配的Unit ID范圍內(nèi)選取未被占用的Unit ID分配給所述芯片,這能夠有效支撐多臺設(shè)備堆疊的需求,實現(xiàn)多臺設(shè)備堆疊。
附圖說明
圖1為現(xiàn)有堆疊結(jié)構(gòu)圖;
圖2為本發(fā)明提供的方法流程圖;
圖3為本發(fā)明提供的裝置結(jié)構(gòu)圖;
圖4為本發(fā)明提供的圖3所示裝置的硬件結(jié)構(gòu)圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖和具體實施例對本發(fā)明進(jìn)行詳細(xì)描述。
參見圖2,圖2為本發(fā)明提供的方法流程圖。如圖2所示,該流程可包括以下步驟:
步驟201,堆疊中成員設(shè)備的主控板根據(jù)插入至本設(shè)備的每一接口板上的芯片類型和芯片數(shù)量X確定所述接口板所需的芯片編號Unit ID數(shù)量L。
作為本發(fā)明的一個實施例,本步驟201具體實現(xiàn)時可包括以下步驟a1至步驟a3:
步驟a1,識別所述接口板上的芯片類型為單Core還是雙Core,如果是單Core,執(zhí)行步驟a2,如果是雙Core,執(zhí)行步驟a3。
步驟a2,在所述接口板上的芯片支持的單端口數(shù)量小于或等于2m時,確定所述L為所述X,在所述接口板上的芯片支持的單端口數(shù)量大于2m時,確定所述L為所述X的2倍。
本步驟a2是在芯片類型為單Core的前提下執(zhí)行的。
至于步驟a2中的2m,下文重點進(jìn)行了描述,這里暫不贅述。
步驟a3,確定所述L為所述X的2倍。
本步驟a3是在芯片類型為雙Core的前提下執(zhí)行的。
通過步驟a1至步驟a3確定了接口板所需的芯片編號Unit ID數(shù)量L。
步驟202,主控板檢查本設(shè)備被分配的Unit ID內(nèi)是否存在L個未被占用的Unit ID,如果否,執(zhí)行步驟203,如果是,執(zhí)行步驟204。
本步驟202中,本設(shè)備被分配的Unit ID是按照將可選Unit ID數(shù)量劃分為N份并對應(yīng)分配給堆疊中N個成員設(shè)備的原則分配給本設(shè)備,其中,N為堆疊中成員設(shè)備的總數(shù)量。
其中,可選Unit ID數(shù)量是指堆疊中可以使用的的UnitID總數(shù)量,其是按照一個Unit ID對應(yīng)2m個單端口的條件確定的。
在本發(fā)明中,一個Unit ID對應(yīng)2m個單端口,也就意味著,為了有效支持多臺設(shè)備堆疊的需求,本發(fā)明不再限制堆疊中的可選Unit ID數(shù)量按照從堆疊中各個成員設(shè)備上的各個芯片支持的單端口數(shù)量中選擇出的一個最大值確定,而是按照一個Unit ID固定對應(yīng)2m個單端口的方式確定,即本發(fā)明限定堆疊中可選Unit ID數(shù)量不能超過16K/2m。
作為本發(fā)明的一個實施例,這里,2m的取值范圍為:a/2≤2m≤a,其中,a為預(yù)先定義的所述堆疊中各成員設(shè)備的接口板上的芯片被允許支持的單端口數(shù)量的最大值。比如,預(yù)先定義的所述堆疊中各成員設(shè)備的接口板上的芯片被允許支持的單端口數(shù)量的最大值為64,這里的2m可取值為32。事實上,因為芯片支持的單端口數(shù)量最多一般為64,最少一般也不會小于32,所以2m取值為32最佳。
如背景技術(shù)所述的,只有16K個SysPort分配給單端口,這樣,以2m為25為例,在一個UnitID對應(yīng)25個單端口的前提下,就意味著上述的可選Unit ID數(shù)量為16K/25=512個UnitID,而512個UnitID為支持多臺設(shè)備堆疊創(chuàng)造了條件。
作為本發(fā)明的一個實施例,上述將可選Unit ID數(shù)量劃分為N份并對應(yīng)分 配給堆疊中N個成員設(shè)備在具體實現(xiàn)時可通過靜態(tài)配置實現(xiàn),也可通過動態(tài)實現(xiàn)。其中,當(dāng)通過動態(tài)實現(xiàn)時,一種較佳地實現(xiàn)方式為:
將所有可選Unit ID數(shù)量均勻劃分為N份;
按照堆疊中N個成員設(shè)備編號的方式對N份Unit ID進(jìn)行編號;
針對每一份Unit ID,將該份Unit ID分配給與該份Unit ID具有對應(yīng)編號的成員設(shè)備。
比如,4臺設(shè)備堆疊,以2m為25為例,基于上面描述的,就會將512個Unit ID均勻劃分為4份,這4份大小一致,都包含128個Unit ID;其中,第一份UnitID包含的UnitID為0~127,第二份UnitID包含的UnitID為128~255,第三份UnitID包含的UnitID為256~383,第四份UnitID包含的UnitID為384~511。之后,按照與堆疊中的4個成員設(shè)備進(jìn)行編號的方式對4份Unit ID進(jìn)行編號,最終將第一份(UnitID是0~127)分配給第一臺設(shè)備,第二份(UnitID是128~255)分配給第二臺設(shè)備,第三份(UnitID是256~383)分配給第三臺設(shè)備,第四份(UnitID是384~511)分配給第四臺設(shè)備。
步驟203,主控板抑制所述接口板啟動。
本步驟203是在步驟202檢查出不存在L個未被占用的Unit ID的前提下執(zhí)行的,當(dāng)步驟202檢查出不存在L個未被占用的Unit ID,意味著沒有多余的Unit ID分配給接口板,而接口板沒有被分配Unit ID,則接口板沒有任何實際意義,因此,可禁止接口板啟動。
步驟204,主控板從本設(shè)備被分配的Unit ID內(nèi)選取L個未被占用的Unit ID作為所述接口板的Unit ID范圍分配給所述接口板,并針對所述接口板上的每一芯片,從所述接口板被分配的Unit ID范圍內(nèi)選取未被占用的Unit ID分配給所述芯片。
本步驟204是在步驟202檢查出存在L個未被占用的Unit ID的前提下執(zhí)行的。
作為本發(fā)明的一個實施例,為便于主控板區(qū)分哪些Unit ID被占用,哪些Unit ID未被占用,本步驟204中,當(dāng)主控板從所述接口板被分配的Unit ID范圍 內(nèi)選取未被占用的Unit ID分配給所述芯片后,會在接口板被分配的Unit ID范圍內(nèi)標(biāo)記該分配給芯片的Unit ID被占用,以便主控板后續(xù)不再重復(fù)分配該Unit ID給其他芯片。
至于本步驟204中如何針對所述接口板上的每一芯片,從所述接口板被分配的Unit ID范圍內(nèi)選取未被占用的Unit ID分配給所述芯片,其在具體實現(xiàn)時可依賴于芯片的類型,比如是單Core,還是雙Core,芯片的類型不同,下面通過以下兩個實施例進(jìn)行詳細(xì)描述:
實施例1:
本實施例1中,限定接口板上的芯片類型為雙Core,為便于描述,這里將芯片類型為雙Core的芯片簡稱雙Core芯片。
在本實施例1中,上述步驟204中從接口板被分配的Unit ID范圍內(nèi)選取未被占用的Unit ID分配給芯片可包括:
從所述接口板被分配的Unit ID范圍內(nèi)選取兩個未被占用的Unit ID;
將選取的其中一個Unit ID分配給雙Core芯片的一個Core,將選取的另一個Unit ID分配給雙Core芯片的另一個Core。
在為成員設(shè)備的雙Core芯片分配完Unit ID后,優(yōu)選地,本實施例1中,可進(jìn)一步針對雙Core芯片執(zhí)行以下步驟:
步驟b1,按照設(shè)定方式將所述雙Core芯片支持的且數(shù)量小于2m的一部分單端口綁定至所述雙Core芯片的一個Core,將所述雙Core芯片支持的另一部分單端口綁定至所述雙Core芯片的另一個Core。
如上描述,2m的取值范圍為:a/2≤2m≤a,其中,a為預(yù)先定義的所述堆疊中各成員設(shè)備的接口板上的芯片被允許支持的單端口數(shù)量的最大值,如此,即使雙Core芯片,其支持的單端口總數(shù)量的最大值也不會超過2倍的2m,如此,本步驟b1中最終綁定至雙Core芯片的兩個Core的單端口數(shù)量都不會超過2m。
作為一個優(yōu)選實施例,上述的設(shè)定方式可為負(fù)載均衡方式。以2m為25為例,假如一個雙Core芯片上有64個單端口,雙Core芯片的雙Core分別記為Core1 和Core2,則可將其中的32個單端口綁定至Core1,將剩下的32個單端口綁定至Core2。
步驟b2,針對所述雙Core芯片中每一Core綁定的單端口,按照預(yù)先設(shè)置的第一系統(tǒng)全局端口Sysport映射方式設(shè)置生成該單端口的Sysport形式。
這里,所述第一Sysport映射方式通過公式2表示:
Sysport=unit id1<<m+port id1; (公式2)
其中,unit id1表示Core被分配的Unit ID,port id1表示被分配了unit id1的Core綁定的單端口的端口號,<<表示左移。
以2m為25,m為5為例,假如一個雙Core芯片上有64個單端口,雙Core芯片的雙Core分別記為Core1和Core2,可將其中的0至31共32個單端口綁定至Core1,將剩下的32至63共32個單端口綁定至Core2,Core1被分配的Unit ID為1(二進(jìn)制表示為0001),Core2被分配的Unit ID為2(二進(jìn)制表示為0010),以Core1綁定的編號為1(二進(jìn)制表示為0001)的單端口為例,則按照公式2,先將Core1被分配的Unit ID為1(二進(jìn)制表示為0001)左移5位,得到000100000(記為結(jié)果1),按照公式2,再將結(jié)果1與單端口的編號1(二進(jìn)制表示為0001)取和,得到000100001(記為結(jié)果2),最終Core1綁定的編號為1(二進(jìn)制表示為0001)的單端口的Sysport為000100001(記為結(jié)果2)。
下面以2m為25,m為5為例,基于實施例1通過一個舉例對圖2所示流程進(jìn)行描述:
假如4臺設(shè)備進(jìn)行堆疊,其中,該4臺設(shè)備的編號分別為01至04,為便于描述,這里將編號為01的成員設(shè)備稱為成員設(shè)備01,編號為02的成員設(shè)備稱為成員設(shè)備02,編號為03的成員設(shè)備稱為成員設(shè)備03,編號為04的成員設(shè)備稱為成員設(shè)備04。
如上所述的為堆疊中成員設(shè)備分配Unit ID的描述,則先將512個Unit ID均勻劃分為4份,這4份大小一致,都包含128個Unit ID。其中,第一份UnitID包含的UnitID為0~127,第二份UnitID包含的UnitID為128~255,第三份UnitID包含的UnitID為256~383,第四份UnitID包含的UnitID為384~511。之后, 按照與堆疊中的4個成員設(shè)備進(jìn)行編號的方式對第一份UnitID至第四份UnitID進(jìn)行編號,這里第一份UnitID的編號為01,第二份UnitID的編號為02,第三份UnitID的編號為03,第四份UnitID的編號為04。
將第一份UnitID分配給成員設(shè)備01,將第二份UnitID分配給成員設(shè)備02,將第三份UnitID分配給成員設(shè)備03,將第四份UnitID分配給成員設(shè)備04。
以成員設(shè)備01上插入的接口板01為例,成員設(shè)備01上的其他接口板、以及成員設(shè)備02至成員設(shè)備04上的各個接口板的原理類似,則,
假如接口板01上有8塊雙Core芯片,則成員設(shè)備01上的主控板依據(jù)上述步驟201的描述,會確定出接口板01共需的Unit ID數(shù)量為16。
成員設(shè)備01上的主控板從本設(shè)備被分配的第一份UnitID(包含的Unit ID為0~127)中檢查是否存在16個未被占用的UnitID,
成員設(shè)備01上的主控板發(fā)現(xiàn)本設(shè)備被分配的第一份UnitID(包含的UnitID為0~127)中存在個未被占用的UnitID,則選取16個未被占用的UnitID作為接口板01的Unit ID范圍分配給接口板01,標(biāo)記選取的16個未被占用的UnitID被占用。為便于描述,這里假如選取的16個UnitID為0至15。
成員設(shè)備01上的主控板針對接口板01上的每一雙Core芯片,從接口板01被分配的Unit ID范圍內(nèi)選取2個未被占用的Unit ID分配給所述芯片;比如,為接口板01上第一個雙Core芯片(編號為1)分配如下兩個UnitID為:0、1;為接口板01上第二個雙Core芯片(編號為2)分配如下兩個UnitID為:2、3,為接口板01上第三個雙Core芯片(編號為3)分配如下兩個UnitID為:4、5,依次類推,直至為接口板01上第8個雙Core芯片(編號為8)分配如下兩個UnitID為:14、15。
假如接口板01的雙Core芯片支持的單端口數(shù)量一致,這里假如為64個單端口,則成員設(shè)備01上的主控板針對接口板01上的每一雙Core芯片,按照設(shè)定方式比如負(fù)載均衡方式將所述雙Core芯片支持的前32個單端口(編號為0至31)綁定至雙Core芯片的一個Core,將雙Core芯片支持的后32個單端口(編號為31至63)綁定至雙Core芯片的另一個Core。
之后,按照上述公式2生成接口板01上每一雙Core芯片中每一Core綁定的單端口的Sysport形式。
通過上面描述,成員設(shè)備01至成員設(shè)備04都被分配了Unit ID,且分配的Unit ID遠(yuǎn)小于512個Unit ID,完全能夠堆疊在一起,即實現(xiàn)了多臺設(shè)備的堆疊。
至此,完成實施例1的描述。
實施例2:
本實施例2中,限定接口板上的芯片類型為單Core,為便于描述,這里將芯片類型為單Core的芯片簡稱單Core芯片。
在本實施例1中,上述步驟204中從接口板被分配的Unit ID范圍內(nèi)選取未被占用的Unit ID分配給芯片可包括:
步驟c1,在單Core芯片支持的單端口數(shù)量小于或等于2m時,執(zhí)行步驟c2,在單Core芯片支持的單端口數(shù)量大于2m時,執(zhí)行步驟c3。
步驟c2,從接口板被分配的Unit ID范圍內(nèi)選取一個未被占用的Unit ID分配給所述單Core芯片。
本步驟c2是在單Core芯片支持的單端口數(shù)量小于或等于2m的前提下執(zhí)行的。
步驟c3,從所述接口板被分配的Unit ID范圍內(nèi)選取兩個未被占用的相鄰Unit ID分配給所述單Core芯片,選取的兩個Unit ID中一個為偶數(shù),一個為奇數(shù)。
本步驟c3是在單Core芯片支持的單端口數(shù)量大于2m的前提下執(zhí)行的。
在為成員設(shè)備的單Core芯片分配完Unit ID后,優(yōu)選地,本實施例2中,可進(jìn)一步按照一個Unit ID對應(yīng)2m個單端口的方式生成單Core芯片支持的每一單端口的Sysport形式,具體為:
在單Core芯片支持的單端口數(shù)量小于或等于2m時,按照預(yù)先設(shè)置的第二Sysport映射方式設(shè)置生成單Core芯片支持的每一單端口的Sysport形式;
在單Core芯片支持的單端口數(shù)量大于2m時,按照預(yù)設(shè)的第三Sysport映射方式設(shè)置生成單Core芯片支持的前2m個單端口的Sysport形式,以及按照預(yù)設(shè)的第四Sysport映射方式設(shè)置生成單Core芯片支持的第2m個單端口之后各單端口的Sysport形式。
第二Sysport映射方式如下公式3所示:
Sysport=unit id2<<m+port id2; (公式3)
第三Sysport映射方式如下公式4所示:
Sysport=unit id3<<m+port id3; (公式4)
第四Sysport映射方式如下公式6所示:
Sysport=unit id4<<m+port id4; (公式5)
其中,公式3中的unit id2表示單Core芯片被分配的Unit ID,port id2表示單Core芯片支持的單端口的端口號,公式4中的unit id3表示單Core芯片被分配的、且為偶數(shù)的Unit ID,port id3表示單Core芯片支持的單端口的端口號;公式5中的unit id4表示單Core芯片被分配的、且為奇數(shù)的Unit ID,port id4表示單端口的端口號減去2m之后的差;公式3至5中的“<<”如公式2中的“<<”意義一樣,均表示左移。
下面以2m為25,m為5為例,基于實施例2通過一個舉例對圖2所示流程進(jìn)行描述:
假如4臺設(shè)備進(jìn)行堆疊,其中,該4臺設(shè)備的編號分別為11至14,為便于描述,這里將編號為11的成員設(shè)備稱為成員設(shè)備11,編號為12的成員設(shè)備稱為成員設(shè)備12,編號為13的成員設(shè)備稱為成員設(shè)備13,編號為14的成員設(shè)備稱為成員設(shè)備14。
如上所述的為堆疊中成員設(shè)備分配Unit ID范圍的描述,則先將512個Unit ID均勻劃分為4份,這4份大小一致,都包含128個Unit ID。其中,第一份UnitID包含的UnitID為0~127,第二份UnitID包含的UnitID為128~255,第三份UnitID包含的UnitID為256~383,第四份UnitID包含的UnitID為384~511。之后,按照與堆疊中的4個成員設(shè)備進(jìn)行編號的方式對第一份UnitID至第四份 UnitID進(jìn)行編號,這里第一份UnitID的編號為11,第二份UnitID的編號為12,第三份UnitID的編號為13,第四份UnitID的編號為14。
將第一份UnitID分配給成員設(shè)備11,將第二份UnitID分配給成員設(shè)備12,將第三份UnitID分配給成員設(shè)備13,將第四份UnitID分配給成員設(shè)備14。
以成員設(shè)備11上插入的接口板11為例,成員設(shè)備11上的其他接口板、以及成員設(shè)備12至成員設(shè)備14上的各個接口板的原理類似,則,
假如接口板11上單Core芯片支持的單端口數(shù)量大于32,比如為64,且接口板11上共有8塊單Core芯片,則成員設(shè)備11上的主控板依據(jù)上述步驟201的描述,會確定出接口板11共需的Unit ID數(shù)量為16。
成員設(shè)備11上的主控板從本設(shè)備被分配的第一份UnitID(包含的Unit ID為0~127)中檢查是否存在16個未被占用的UnitID。
成員設(shè)備11上的主控板發(fā)現(xiàn)本設(shè)備被分配的第一份UnitID(包含的UnitID為0~127)中存在個未被占用的UnitID,則選取16個未被占用的UnitID作為接口板11的Unit ID范圍分配給接口板11,標(biāo)記選取的16個未被占用的UnitID被占用。為便于描述,這里假如選取的16個UnitID為0至15。
成員設(shè)備11上的主控板針對接口板11上的每一單Core芯片,從接口板01被分配的Unit ID范圍內(nèi)選取未被占用的Unit ID分配給該單Core芯片;比如,為接口板11上第一個單Core芯片(編號為1)分配如下兩個UnitID為:0、1;為接口板11上第二個單Core芯片(編號為2)分配如下兩個UnitID為:2、3,為接口板11上第三個單Core芯片(編號為3)分配如下兩個UnitID為:4、5,依次類推,直至為接口板11上第8個單Core芯片(編號為8)分配如下兩個UnitID為:14、15。
之后,按照上述公式4和公式5生成接口板01上每一單Core芯片支持的單端口的Sysport形式。
再舉例:假如接口板11上單Core芯片支持的單端口數(shù)量小于或等于32,比如為32,且接口板11上共有8塊單Core芯片,則成員設(shè)備11上的主控板依 據(jù)上述步驟201的描述,會確定出接口板11共需的Unit ID數(shù)量為8。
成員設(shè)備11上的主控板從本設(shè)備被分配的第一份UnitID(包含的Unit ID為0~127)中檢查是否存在8個未被占用的UnitID。
成員設(shè)備11上的主控板發(fā)現(xiàn)本設(shè)備被分配的第一份UnitID(包含的UnitID為0~127)中存在個未被占用的UnitID,則選取8個未被占用的UnitID作為接口板11的Unit ID范圍分配給接口板11,標(biāo)記選取的8個未被占用的UnitID被占用。為便于描述,這里假如選取的8個UnitID為0至7。
成員設(shè)備11上的主控板針對接口板11上的每一單Core芯片,從接口板11被分配的Unit ID范圍內(nèi)選取一個未被占用的Unit ID分配給該單Core芯片;比如,為接口板11上第一個單Core芯片(編號為1)分配如下UnitID:0;為接口板11上第二個單Core芯片(編號為2)分配如下UnitID為:1,為接口板11上第三個單Core芯片(編號為3)分配如下UnitID為:2,依次類推,直至為接口板11上第8個單Core芯片(編號為8)分配如下UnitID為:7。
之后,按照上述公式3生成接口板01上每一單Core芯片支持的單端口的Sysport形式。
通過上面描述,成員設(shè)備01至成員設(shè)備04都被分配了Unit ID,且分配的Unit ID遠(yuǎn)小于512個Unit ID,完全能夠堆疊在一起,即實現(xiàn)了多臺設(shè)備的堆疊。
至此,完成實施例2的描述。
以上對本發(fā)明提供的方法進(jìn)行了描述,下面對本發(fā)明提供的裝置進(jìn)行描述:
參見圖3,圖3為本發(fā)明提供的裝置結(jié)構(gòu)圖。該裝置應(yīng)用于堆疊中成員設(shè)備的主控板,如圖3所示,該裝置可包括:
確定單元,用于根據(jù)插入至本設(shè)備的每一接口板上的芯片類型和芯片數(shù)量X確定所述接口板所需的芯片編號Unit ID數(shù)量L;
檢查單元,用于檢查本設(shè)備被分配的Unit ID內(nèi)是否存在L個未被占用的Unit ID;
處理單元,用于在所述檢查單元的檢查結(jié)果為是時,從本設(shè)備被分配的Unit ID內(nèi)選取L個未被占用的Unit ID作為所述接口板的Unit ID范圍分配給所述接 口板,并針對所述接口板上的每一芯片,從所述接口板被分配的Unit ID范圍內(nèi)選取未被占用的Unit ID分配給所述芯片;以及,
在所述檢查單元的檢查結(jié)果為否時,抑制所述接口板啟動。
優(yōu)選地,所述本設(shè)備被分配的Unit ID是按照將可選Unit ID數(shù)量劃分為N份并對應(yīng)分配給堆疊中N個成員設(shè)備的原則分配給本設(shè)備,
其中,N為堆疊中成員設(shè)備的總數(shù)量,可選Unit ID數(shù)量是按照一個Unit ID對應(yīng)2m個單端口的條件確定的,a/2≤2m≤a,a為預(yù)先定義的所述堆疊中各成員設(shè)備的接口板上的芯片被允許支持的單端口數(shù)量的最大值;
所述確定單元根據(jù)插入至本設(shè)備的每一接口板上的芯片類型和芯片數(shù)量X確定所述接口板所需的芯片編號Unit ID數(shù)量L包括:
識別所述接口板上的芯片類型為單核Core還是雙Core,
如果是單Core,則在所述接口板上的芯片支持的單端口數(shù)量小于或等于2m時,確定所述L為所述X,在所述接口板上的芯片支持的單端口數(shù)量大于2m時,確定所述L為所述X的2倍;
如果是雙Core,確定所述L為所述X的2倍。
優(yōu)選地,所述接口板上的芯片為雙Core芯片,所述處理單元從接口板被分配的Unit ID范圍內(nèi)選取未被占用的Unit ID分配給所述芯片包括:
從所述接口板被分配的Unit ID范圍內(nèi)選取兩個未被占用的Unit ID;
將選取的其中一個Unit ID分配給雙Core芯片的一個Core,將選取的另一個Unit ID分配給雙Core芯片的另一個Core。
優(yōu)選地,所述處理單元進(jìn)一步執(zhí)行以下操作:
按照設(shè)定方式將所述雙Core芯片支持的且數(shù)量小于2m的一部分單端口綁定至所述雙Core芯片的一個Core,將所述雙Core芯片支持的另一部分單端口綁定至所述雙Core芯片的另一個Core;
針對所述雙Core芯片中每一Core綁定的單端口,按照預(yù)先設(shè)置的第一系統(tǒng)全局端口Sysport映射方式設(shè)置生成該單端口的Sysport形式;所述第一Sysport 映射方式為:Sysport=unit id1<<m+port id1;
其中,unit id1表示Core被分配的Unit ID,port id1表示被分配了unit id1的Core綁定的單端口的端口號,<<表示左移。
優(yōu)選地,所述接口板上的芯片為單Core芯片,所述出理單元從接口板被分配的Unit ID范圍內(nèi)選取未被占用的Unit ID分配給所述芯片包括:
在所述單Core芯片支持的單端口數(shù)量小于或等于2m時,從所述接口板被分配的Unit ID范圍內(nèi)選取一個未被占用的Unit ID分配給所述單Core芯片;
在所述單Core芯片支持的單端口數(shù)量大于2m時,從所述接口板被分配的Unit ID范圍內(nèi)選取兩個未被占用的相鄰Unit ID分配給所述單Core芯片,選取的兩個Unit ID中一個為偶數(shù),一個為奇數(shù)。
優(yōu)選地,所述處理單元進(jìn)一步執(zhí)行以下操作:
在所述單Core芯片支持的單端口數(shù)量小于或等于2m時,按照預(yù)先設(shè)置的第二Sysport映射方式設(shè)置生成單Core芯片支持的每一單端口的Sysport形式;
在所述單Core芯片支持的單端口數(shù)量大于2m時,按照預(yù)設(shè)的第三Sysport映射方式設(shè)置生成單Core芯片支持的前2m個單端口的Sysport形式,以及按照預(yù)設(shè)的第四Sysport映射方式設(shè)置生成單Core芯片支持的第2m個單端口之后各單端口的Sysport形式;
所述第二Sysport映射方式為:Sysport=unit id2<<m+port id2;
所述第三Sysport映射方式為:Sysport=unit id3<<m+port id3;
所述第四Sysport映射方式為:Sysport=unit id4<<m+port id4;
其中,unit id2表示單Core芯片被分配的Unit ID,port id2表示單端口的端口號,unit id3表示單Core芯片被分配的、且為偶數(shù)的Unit ID,port id3表示單端口的端口號;unit id4表示單Core芯片被分配的、且為奇數(shù)的Unit ID,port id4表示單端口的端口號減去2m之后的差,<<表示左移。
至此,完成圖3所示裝置的描述。
本發(fā)明還提供了圖3所示裝置的硬件結(jié)構(gòu)圖。
參見圖4,圖4為本發(fā)明提供的圖3所示裝置的硬件結(jié)構(gòu)圖。如圖4所示, 該硬件結(jié)構(gòu)包括:
CPU和存儲器。
其中,存儲器,用于存放確定單元、檢查單元、處理單元;
CPU,用于存放存儲器中確定單元運(yùn)行的控制程序,以控制所述存儲器中確定單元執(zhí)行如上所述的操作,以及,用于存放存儲器中處理單元運(yùn)行的控制程序,以控制所述存儲器中處理單元執(zhí)行如上所述的操作,以及用于存放存儲器中檢查單元運(yùn)行的控制程序,以控制所述存儲器中檢查單元執(zhí)行如上所述的操作。
至于所述存儲器中確定單元、處理單元、檢查單元執(zhí)行的操作,其分別如上述確定單元、處理單元、檢查單元執(zhí)行的操作,這里不再贅述。
至此,完成圖4所示的硬件結(jié)構(gòu)描述。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。