專利名稱:網(wǎng)絡(luò)設(shè)備及其外圍器件互連資源的分配方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于網(wǎng)絡(luò)設(shè)備中的處理器系統(tǒng),尤其涉及一種網(wǎng)絡(luò)設(shè)備中外圍器件互連資源的分配方法和應(yīng)用該方法的網(wǎng)絡(luò)設(shè)備。
背景技術(shù):
網(wǎng)絡(luò)的發(fā)展對網(wǎng)絡(luò)設(shè)備的功能提出了更高的要求,CPU(Central ProcessUnit,中央處理器)系統(tǒng)的應(yīng)用越來越廣泛。在網(wǎng)絡(luò)設(shè)備的CPU系統(tǒng)中,PCI(Peripheral Component Interconnect,外圍器件互連)是普遍采用的總線結(jié)構(gòu)。PCI總線是一種具有多路地址線和數(shù)據(jù)線的高性能32/64位總線,在高度集成的外圍控制器件、外圍插件板和處理器/存儲器之間作為互連結(jié)構(gòu)應(yīng)用。
PCI設(shè)備正常工作的前提是得到正確的初始化,在初始化過程中系統(tǒng)最為重要的工作是為PCI設(shè)備分配資源,包括總線號資源、地址資源和中斷資源。PCI設(shè)備的地址資源主要是指PCI設(shè)備的配置空間、Memory(內(nèi)存)空間和I/O(輸入輸出)空間,供CPU和該設(shè)備的驅(qū)動程序來控制設(shè)備工作。
現(xiàn)有技術(shù)中,PCI資源通常是按需分配的。系統(tǒng)啟動后對PCI總線進(jìn)行輪詢,為查找到的設(shè)備依次分配PCI資源。其中PCI地址資源是CPU系統(tǒng)內(nèi)部真實(shí)存在的地址空間范圍,對每一個(gè)找到的PCI設(shè)備,根據(jù)由該設(shè)備得到的Memory空間和I/O空間的大小從地址空間范圍中劃分給該設(shè)備相應(yīng)的空間。換言之,PCI設(shè)備被分配的地址空間的位置與系統(tǒng)搜索到該設(shè)備的順序相關(guān),當(dāng)系統(tǒng)中插入、拔出了其他設(shè)備、或某個(gè)設(shè)備的Memory空間和I/O空間的大小發(fā)生了變化,則搜索順序在其后的PCI設(shè)備地址空間的位置會相應(yīng)變化,對熱插拔PCI設(shè)備的地址分配也是如此。
PCI設(shè)備的配置空間、Memory空間和I/O空間位于CPU系統(tǒng)的物理地址空間中,而出于安全性的考慮,絕大部分操作系統(tǒng)都不允許設(shè)備的驅(qū)動程序直接訪問物理地址空間。操作系統(tǒng)提供了內(nèi)存映射機(jī)制,將物理內(nèi)存映射為虛擬內(nèi)存后,設(shè)備驅(qū)動程序可以訪問虛擬地址空間。
內(nèi)存映射是根據(jù)地址來進(jìn)行的,物理地址空間發(fā)生變化后需要重新進(jìn)行內(nèi)存映射,此時(shí)驅(qū)動程序必須對其訪問的虛擬地址空間進(jìn)行相應(yīng)修改才能正常工作。因此,現(xiàn)有技術(shù)中的資源分配方法導(dǎo)致了地址空間處于浮動狀態(tài),尤其是對于支持熱插拔的系統(tǒng),造成了驅(qū)動程序內(nèi)存管理的很大不便。
中國專利CN1601498A中公開了一種向PCI適配器分配存儲器地址的方法來解決上述問題,根據(jù)與各個(gè)PCI適配器所在槽位的標(biāo)識符關(guān)聯(lián)的配置信息,向上述PCI適配器非均一地分配存儲器地址范圍。用這種方法為PCI適配器分配地址適用于計(jì)算機(jī)系統(tǒng),由于計(jì)算機(jī)系統(tǒng)可以擴(kuò)展的PCI適配器種類很多,不同種類的適配器所需的存儲器空間會有很大的差別,采用非均一分配可以在很大程度上節(jié)省為PCI適配器預(yù)留的存儲器空間。并且,計(jì)算機(jī)系統(tǒng)中的擴(kuò)展槽位要留待用戶決定其用途,根據(jù)用戶的自身應(yīng)用環(huán)境選擇各種不同廠商和型號的適配器,這些相同類型的適配器所需要的存儲器空間也經(jīng)常會有很大的不同,此時(shí)非均一的空間分配也可以解決計(jì)算機(jī)系統(tǒng)用途不同導(dǎo)致的資源分配有所側(cè)重的問題。
但對于具有擴(kuò)展PCI槽位的網(wǎng)絡(luò)設(shè)備,這種存儲器空間分配方法則并不適用。與計(jì)算機(jī)系統(tǒng)中不同,網(wǎng)絡(luò)設(shè)備中的PCI槽位基本上都用來擴(kuò)展通信端口,而每個(gè)槽位具有的通信能力主要依賴于設(shè)備的背板,實(shí)際應(yīng)用中同一設(shè)備所支持的擴(kuò)展卡上端口的總帶寬基本相同,同時(shí)在網(wǎng)絡(luò)設(shè)備中通常要求擴(kuò)展卡在各個(gè)槽位都能夠正常工作,在這種情況下分配給每個(gè)槽位的地址空間應(yīng)當(dāng)能夠滿足所有擴(kuò)展卡的需要,因而地址空間的非均一分配只可能增加存儲空間的浪費(fèi)。
發(fā)明內(nèi)容
本發(fā)明要解決的是現(xiàn)有技術(shù)中PCI設(shè)備浮動的地址空間造成的不便于管理和向PCI設(shè)備非均一分配存儲器空間造成的存儲空間浪費(fèi)的問題。
本發(fā)明所述的網(wǎng)絡(luò)設(shè)備具有至少一條PCI總線和至少一個(gè)PCI接口,其外圍器件互連PCI資源的分配方法包括以下步驟確定PCI接口在總線架構(gòu)中的位置標(biāo)識;向PCI接口均一地分配PCI資源,使位置標(biāo)識與被分配的PCI資源具有固定的對應(yīng)關(guān)系。
優(yōu)選地,在向PCI接口均一分配資源之后還包括搜索PCI接口上連接的PCI設(shè)備;在PCI接口的位置標(biāo)識對應(yīng)的PCI資源范圍內(nèi),為搜索到的PCI設(shè)備二次進(jìn)行資源分配。
優(yōu)選地,所述方法還包括當(dāng)在PCI接口中插入熱插拔PCI設(shè)備時(shí),在該接口位置標(biāo)識對應(yīng)的PCI資源范圍內(nèi),為插入的設(shè)備進(jìn)行二次資源分配。
優(yōu)選地,所述PCI資源包括總線號、中斷號和物理地址空間;所述物理地址空間包括配置空間、內(nèi)存Memory空間、輸入輸出I/O空間。
優(yōu)選地,所述方法還包括當(dāng)進(jìn)行資源分配的PCI設(shè)備為橋設(shè)備時(shí),為該橋設(shè)備中下游總線上連接的設(shè)備注冊被分配的下游總線號。
優(yōu)選地,為搜索到的PCI設(shè)備分配資源后還包括將分配給PCI設(shè)備的配置空間、Memory空間和I/O空間映射為虛擬地址空間;在該P(yáng)CI設(shè)備配置空間的寄存器中寫入為其分配的資源。
優(yōu)選地,所述PCI接口為PCI插槽,所述PCI設(shè)備為一個(gè)通信端口;所述方法還包括
建立PCI插槽的槽號和通信端口的端口號與端口唯一標(biāo)識的對應(yīng)關(guān)系,以及端口唯一標(biāo)識與該通信端口所連接PCI接口位置標(biāo)識的對應(yīng)關(guān)系;所述端口唯一標(biāo)識用來唯一地識別通信端口;驅(qū)動程序通過提供槽號和端口號來訪問具有相應(yīng)端口唯一標(biāo)識的通信端口。
本發(fā)明還提供了一種具有至少一條PCI總線和至少一個(gè)PCI接口的網(wǎng)絡(luò)設(shè)備,包括位置資源模塊、設(shè)備搜索模塊和資源分配模塊,其中位置資源模塊用來存儲均一分配給各個(gè)PCI接口的PCI資源范圍,均一分配根據(jù)PCI接口在總線架構(gòu)中的位置進(jìn)行;設(shè)備搜索模塊用來搜索PCI接口上連接的PCI設(shè)備;資源分配模塊查找位置資源模塊中存儲的與所述PCI設(shè)備連接的PCI接口的PCI資源范圍,在該范圍內(nèi)為所述PCI設(shè)備進(jìn)行二次資源分配。
優(yōu)選地,所述PCI資源包括總線號、中斷號和物理地址空間;所述物理地址空間包括配置空間、內(nèi)存Memory空間、輸入輸出I/O空間。
優(yōu)選地,所述網(wǎng)絡(luò)設(shè)備還包括地址映射模塊,用來將PCI設(shè)備的配置空間、Memory空間和I/O空間映射為虛擬地址空間。
本發(fā)明根據(jù)PCI接口在總線架構(gòu)中的位置為其分配均一的資源,令連接在某個(gè)PCI接口上的設(shè)備始終得到固定的PCI資源范圍,并且各個(gè)PCI接口具有同等大小的資源范圍,從而使得連接在同一接口上的PCI設(shè)備能夠分配到固定的地址空間,簡化了驅(qū)動程序的內(nèi)存管理;同時(shí)地址空間的均一分配使得擴(kuò)展卡在各個(gè)槽位能夠得到同樣的資源分配,避免了存儲空間的浪費(fèi);進(jìn)而,本發(fā)明根據(jù)PCI接口上連接的通信端口進(jìn)行二次資源分配,通過建立槽號和端口號與PCI接口位置標(biāo)識的對應(yīng)關(guān)系,驅(qū)動程序可以通過槽號和端口號來定位資源,使得現(xiàn)有的驅(qū)動程序可以不經(jīng)修改而適用于本發(fā)明。
圖1為本發(fā)明所述包括具有位置標(biāo)識的PCI接口的PCI架構(gòu);圖2為本發(fā)明所述PCI資源分配方法的流程圖;圖3為本發(fā)明所述網(wǎng)絡(luò)設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
PCI總線架構(gòu)是一種層次式的體系結(jié)構(gòu),如圖1所示,CPU通過Host-PCI橋接器連接到主PCI總線——總線0上。除位置M外,位置1至位置N為總線0上的各個(gè)PCI接口,PCI接口是總線上留待接入PCI設(shè)備的連接接口,通常是用于插入擴(kuò)展卡的PCI插槽,也可能是其他符合PCI規(guī)范的連接接口。在位置M上,PCI橋?qū)⒖偩€L與總線0連接起來,此時(shí)總線0為PCI橋的上游總線,總線L為PCI橋的下游總線。位置(N+1)至位置(N+K)為總線L上的PCI接口。圖中各個(gè)空閑的PCI接口都可以用來連接PCI設(shè)備,可以是單個(gè)的PCI設(shè)備,也可以是超過1個(gè)PCI設(shè)備的組合,還可以是PCI橋設(shè)備,即包括PCI橋并且在其下游總線上連接有PCI設(shè)備。
不難理解,圖1中的PCI架構(gòu)是一種基本的PCI體系結(jié)構(gòu),在具體應(yīng)用中可以對圖1中的架構(gòu)進(jìn)行修改或增刪,以得到任何符合需要的PCI架構(gòu)。本發(fā)明中采用圖1的架構(gòu)對PCI接口的位置標(biāo)識進(jìn)行說明,不應(yīng)將圖1的架構(gòu)作為對本發(fā)明的限定。
圖1中用于連接上游和下游PCI總線的橋還可以是HT(Hyper Transport,超級傳輸)橋,或者其他符合PCI規(guī)范并具有同樣功能的橋接器。
本發(fā)明中,位置標(biāo)識用來唯一標(biāo)定PCI接口在PCI總線架構(gòu)中的位置,并且PCI資源分配根據(jù)位置標(biāo)識來進(jìn)行。通過一個(gè)PCI設(shè)備的位置標(biāo)識,可以得知其連接的PCI接口,以及該P(yáng)CI接口在總線架構(gòu)中的位置。
圖2所示為本發(fā)明所述資源分配方法的流程。在步驟S210,根據(jù)PCI接口在總線架構(gòu)中的位置為其設(shè)置位置標(biāo)識。
在步驟S220,向各個(gè)PCI接口均一分配PCI資源,并且使得各個(gè)PCI接口的位置標(biāo)識與其分得的PCI資源具有固定的對應(yīng)關(guān)系。即PCI接口、PCI接口的位置標(biāo)識、某個(gè)固定的PCI資源范圍三者之間互為一一對應(yīng)的關(guān)系。
實(shí)際應(yīng)用中PCI接口通常是PCI插槽,而設(shè)備驅(qū)動程序通常是根據(jù)插槽的槽號來訪問該插槽中的PCI設(shè)備的。本發(fā)明中之所以采用位置標(biāo)識而不采用PCI插槽的槽號進(jìn)行資源分配,是因?yàn)椴厶柨梢杂捎脩糇杂啥x,這樣將無法通過槽號建立插槽與PCI資源范圍之間的固定對應(yīng)關(guān)系。
PCI資源包括總線號、中斷號和物理地址空間,其中,總線號用來給PCI接口上連接的橋分配下游總線號;中斷號供連接的PCI設(shè)備向系統(tǒng)申請中斷時(shí)使用。物理地址空間包括配置空間、Memory空間、I/O空間,其中配置空間包括PCI設(shè)備的信息、狀態(tài)和配置寄存器,系統(tǒng)通過這些寄存器來識別PCI設(shè)備、控制設(shè)備的工作狀態(tài)、配置設(shè)備所使用的中斷號、物理地址空間的基址等,對橋設(shè)備還需要配置下游總線號。
在步驟S230,搜索PCI體系中所有PCI接口上連接的PCI設(shè)備。對PCI設(shè)備的搜索在系統(tǒng)上電后初始化的過程中進(jìn)行,本發(fā)明中可以采用現(xiàn)有技術(shù)的方法來搜索PCI設(shè)備,此處不再贅述。
在步驟S240,如果PCI接口為PCI插槽,且PCI插槽連接的PCI設(shè)備是通信端口,則采用端口唯一標(biāo)識來在整個(gè)系統(tǒng)中唯一地識別該通信端口,即使得端口唯一標(biāo)識與該通信端口所連接的插槽槽號和該通信端口在該槽中的端口號具有對應(yīng)關(guān)系。其中,PCI插槽槽號為用戶可以自己定義的槽標(biāo)識符,而端口號為該通信端口在其所連接插槽上的索引號,在該插槽上所有通信端口中唯一地標(biāo)識該通信端口。
這種對應(yīng)關(guān)系應(yīng)該滿足兩個(gè)條件其一是通過槽號和端口號可以唯一地獲得該端口唯一標(biāo)識;其二是通過端口唯一標(biāo)識也可以唯一地獲得槽號和端口號。
同時(shí),在本步驟中還需要建立端口唯一標(biāo)識與其連接的PCI接口的位置標(biāo)識的對應(yīng)關(guān)系。
在步驟S250,當(dāng)在PCI接口上搜索到PCI設(shè)備時(shí),在該P(yáng)CI接口的位置標(biāo)識對應(yīng)的PCI資源范圍內(nèi),即在步驟S220中為該P(yáng)CI接口分配的PCI資源范圍內(nèi),為搜索到的PCI設(shè)備進(jìn)行二次資源分配。
由于本發(fā)明中PCI接口所連接的設(shè)備包括單個(gè)PCI設(shè)備、超過一個(gè)PCI設(shè)備的組合、或PCI橋設(shè)備,而設(shè)備驅(qū)動程序要針對每個(gè)PCI設(shè)備自身進(jìn)行操作,所以需要對PCI接口連接的PCI設(shè)備進(jìn)行資源的二次分配。
在二次分配時(shí),可以根據(jù)所連接設(shè)備的數(shù)量將該P(yáng)CI接口對應(yīng)的PCI資源范圍平分給連接的設(shè)備,也可以按照各個(gè)設(shè)備具體需要的資源數(shù)量為其分配,或者采用其他由用戶預(yù)定的能夠滿足設(shè)備所需的分配方法。由于該P(yáng)CI接口對應(yīng)的資源范圍固定,只要這些設(shè)備仍連接在該P(yáng)CI接口上,不論初始化時(shí)其他PCI接口上的設(shè)備情況發(fā)生什么變化,在重新分配資源時(shí)只要仍采用相同的二次分配方法,這些設(shè)備仍能得到與以前相同的PCI資源。
在步驟S260,如果系統(tǒng)檢測到某個(gè)PCI接口上接入了熱插拔的PCI設(shè)備,則為插入的PCI設(shè)備在該P(yáng)CI接口的位置標(biāo)識對應(yīng)的PCI資源范圍內(nèi),進(jìn)行資源的二次分配。本步驟中資源的二次分配方法與步驟S250中相同,不再重復(fù)。
支持熱插拔的系統(tǒng)在運(yùn)行過程中插入PCI設(shè)備后,會收到上報(bào)的中斷,從而觸發(fā)PCI資源的二次分配過程。
在步驟S270,如果步驟S250中搜索到的PCI設(shè)備、或步驟S260中插入的熱插拔PCI設(shè)備為橋設(shè)備,則連接在該橋設(shè)備中橋的下游總線上的PCI設(shè)備也被二次分配了PCI資源。此時(shí)應(yīng)為該下游總線分配總線號,并且為連接在該下游總線上的設(shè)備注冊下游總線號,以便于后續(xù)對該設(shè)備的訪問。
在步驟S280,將分配給PCI設(shè)備的配置空間、Memory空間和I/O空間映射為虛擬地址空間,并且對PCI設(shè)備配置空間的寄存器進(jìn)行寫操作,記錄為該設(shè)備分配的資源,例如中斷號、Memory空間的基址、I/O空間地址的基址等,以及為橋設(shè)備配置的下游總線號。其中,將Memory空間的基址、I/O空間地址的基址寫入配置空間的基址寄存器,將中斷號寫入中斷線寄存器,如果是橋設(shè)備則將下游總線號寫入總線號寄存器。
PCI設(shè)備的驅(qū)動程序通常不能直接訪問位于物理地址空間中的Memory空間和I/O空間,而需要通過建立內(nèi)存映射后的虛擬地址空間來間接訪問物理地址空間。
在步驟S290,如果在步驟S240中為通信端口建立的端口唯一標(biāo)識,則驅(qū)動程序可以通過PCI插槽的槽號和通信端口的端口號來訪問某個(gè)通信端口。從槽號和端口號可以得到該通信端口的端口唯一標(biāo)識,由端口唯一標(biāo)識可以得知該通信端口位于哪個(gè)PCI接口以及在該P(yáng)CI接口上的索引,從而找到該通信端口在PCI架構(gòu)中的具體位置,之后驅(qū)動程序可以通過對其虛擬地址空間的讀寫控制該設(shè)備工作。
圖3所示為應(yīng)用上述PCI資源分配方法的網(wǎng)絡(luò)設(shè)備的結(jié)構(gòu)示意圖,其中網(wǎng)絡(luò)設(shè)備具有一條PCI總線和至少一個(gè)PCI接口。設(shè)備搜索模塊320、資源分配模塊330和地址映射模塊340串接,且分別通過總線連接到PCI接口;位置資源模塊310與資源分配模塊330連接;某個(gè)PCI接口上連接有PCI設(shè)備。
根據(jù)網(wǎng)絡(luò)設(shè)備中CPU系統(tǒng)的PCI架構(gòu)來進(jìn)行資源分配,按照PCI接口在PCI架構(gòu)中的位置將PCI資源均一地分配給各個(gè)PCI接口,并將PCI接口與所分得的資源范圍的對應(yīng)關(guān)系存儲在位置資源模塊310中。
PCI資源包括總線號、中斷號和物理地址空間;其中物理地址空間包括配置空間、內(nèi)存Memory空間和輸入輸出I/O空間。
設(shè)備搜索模塊320在網(wǎng)絡(luò)設(shè)備上電初始化時(shí)、或網(wǎng)絡(luò)設(shè)備運(yùn)行過程中熱插拔的PCI接口上接入PCI設(shè)備時(shí)對PCI接口連接的設(shè)備進(jìn)行搜索。
對設(shè)備搜索模塊320搜索到的PCI設(shè)備,資源分配模塊330從位置資源模塊310中查找到該設(shè)備所連接PCI接口對應(yīng)的PCI資源范圍,在該范圍中為搜索到的設(shè)備進(jìn)行二次資源分配。二次資源分配的方法與本發(fā)明所述資源分配方法中步驟S250中相同,不再重復(fù)。
設(shè)備搜索模塊320對PCI設(shè)備的配置空間進(jìn)行讀寫操作,將分配給該P(yáng)CI設(shè)備的資源范圍寫入其配置空間的寄存器中,包括中斷號、Memory空間的基址和I/O空間的基址等,以及橋設(shè)備的下游總線號。
地址映射模塊340將資源分配模塊330分配給PCI設(shè)備的Memory空間和I/O空間映射為虛擬內(nèi)存。
應(yīng)用本發(fā)明后,在網(wǎng)絡(luò)設(shè)備的PCI架構(gòu)確定之后就安排好各個(gè)PCI接口的資源空間。即使這個(gè)PCI接口沒有接入設(shè)備、即使這個(gè)PCI接口在目前產(chǎn)品設(shè)計(jì)中還沒有表現(xiàn)為具體的硬件,但未來有可能擴(kuò)展出來,都給其分配好固定的空間。并且,PCI設(shè)備的物理地址空間和虛擬地址空間的映射也可以進(jìn)行統(tǒng)一的規(guī)劃,后續(xù)可以通過一個(gè)全局的數(shù)據(jù)結(jié)構(gòu)進(jìn)行訪問。
因而,在應(yīng)用本發(fā)明前,要注意對網(wǎng)絡(luò)設(shè)備PCI架構(gòu)的設(shè)計(jì)不僅要滿足當(dāng)前系統(tǒng)的需要,而且要預(yù)留足夠的未來擴(kuò)展能力,以適應(yīng)用戶增長的性能和數(shù)量要求。
可見,本發(fā)明不僅能夠避免初始化,尤其是熱插拔造成的地址資源浮動,簡化了驅(qū)動程序的管理,而且通過建立槽號和端口號與PCI接口位置標(biāo)識的對應(yīng)關(guān)系,驅(qū)動程序可以通過槽號和端口號來定位資源,避免了對現(xiàn)有驅(qū)動程序的修改。
以上所述的本發(fā)明實(shí)施方式,并不構(gòu)成對本發(fā)明保護(hù)范圍的限定。任何在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利要求保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種網(wǎng)絡(luò)設(shè)備中外圍器件互連PCI資源的分配方法,該網(wǎng)絡(luò)設(shè)備具有至少一條PCI總線和至少一個(gè)PCI接口,其特征在于,包括以下步驟確定PCI接口在總線架構(gòu)中的位置標(biāo)識;向PCI接口均一地分配PCI資源,使位置標(biāo)識與被分配的PCI資源具有固定的對應(yīng)關(guān)系。
2.按照權(quán)利要求1所述PCI資源的分配方法,其特征在于,在向PCI接口均一分配資源之后還包括搜索PCI接口上連接的PCI設(shè)備;在PCI接口的位置標(biāo)識對應(yīng)的PCI資源范圍內(nèi),為搜索到的PCI設(shè)備二次進(jìn)行資源分配。
3.按照權(quán)利要求2所述PCI資源的分配方法,其特征在于,所述方法還包括當(dāng)在PCI接口中插入熱插拔PCI設(shè)備時(shí),在該接口位置標(biāo)識對應(yīng)的PCI資源范圍內(nèi),為插入的設(shè)備進(jìn)行二次資源分配。
4.按照權(quán)利要求3所述PCI資源的分配方法,其特征在于所述PCI資源包括總線號、中斷號和物理地址空間;所述物理地址空間包括配置空間、內(nèi)存Memory空間、輸入輸出I/O空間。
5.按照權(quán)利要求4所述PCI資源的分配方法,其特征在于,所述方法還包括當(dāng)進(jìn)行資源分配的PCI設(shè)備為橋設(shè)備時(shí),為該橋設(shè)備中下游總線上連接的設(shè)備注冊被分配的下游總線號。
6.按照權(quán)利要求4所述PCI資源的分配方法,其特征在于,為搜索到的PCI設(shè)備分配資源后還包括將分配給PCI設(shè)備的配置空間、Memory空間和I/O空間映射為虛擬地址空間;在該P(yáng)CI設(shè)備配置空間的寄存器中寫入為其分配的資源。
7.按照權(quán)利要求4至6任意一項(xiàng)所述PCI資源的分配方法,其特征在于所述PCI接口為PCI插槽,所述PCI設(shè)備為一個(gè)通信端口;所述方法還包括建立PCI插槽的槽號和通信端口的端口號與端口唯一標(biāo)識的對應(yīng)關(guān)系,以及端口唯一標(biāo)識與該通信端口所連接PCI接口位置標(biāo)識的對應(yīng)關(guān)系;所述端口唯一標(biāo)識用來唯一地識別通信端口;驅(qū)動程序通過提供槽號和端口號來訪問具有相應(yīng)端口唯一標(biāo)識的通信端口。
8.一種網(wǎng)絡(luò)設(shè)備,具有至少一條PCI總線和至少一個(gè)PCI接口,其特征在于,包括位置資源模塊、設(shè)備搜索模塊和資源分配模塊,其中位置資源模塊用來存儲均一分配給各個(gè)PCI接口的PCI資源范圍,均一分配根據(jù)PCI接口在總線架構(gòu)中的位置進(jìn)行;設(shè)備搜索模塊用來搜索PCI接口上連接的PCI設(shè)備;資源分配模塊查找位置資源模塊中存儲的與所述PCI設(shè)備連接的PCI接口的PCI資源范圍,在該范圍內(nèi)為所述PCI設(shè)備進(jìn)行二次資源分配。
9.按照權(quán)利要求8所述的網(wǎng)絡(luò)設(shè)備,其特征在于所述PCI資源包括總線號、中斷號和物理地址空間;所述物理地址空間包括配置空間、內(nèi)存Memory空間、輸入輸出I/O空間。
10.按照權(quán)利要求9所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述網(wǎng)絡(luò)設(shè)備還包括地址映射模塊,用來將PCI設(shè)備的配置空間、Memory空間和I/O空間映射為虛擬地址空間。
全文摘要
本發(fā)明公開了一種網(wǎng)絡(luò)設(shè)備中PCI資源的分配方法,包括確定PCI接口在總線架構(gòu)中的位置標(biāo)識;向PCI接口均一地分配PCI資源,使位置標(biāo)識與被分配的PCI資源具有固定的對應(yīng)關(guān)系。本發(fā)明還公開了一種應(yīng)用上述方法的網(wǎng)絡(luò)設(shè)備。本發(fā)明不僅能夠避免初始化,尤其是熱插拔造成的地址資源浮動,簡化了驅(qū)動程序的管理;同時(shí),地址空間的均一分配使得擴(kuò)展卡在各個(gè)槽位能夠得到同樣的資源分配,避免了存儲空間的浪費(fèi)。
文檔編號H04L12/24GK1740997SQ20051010355
公開日2006年3月1日 申請日期2005年9月21日 優(yōu)先權(quán)日2005年9月21日
發(fā)明者李玉峰 申請人:杭州華為三康技術(shù)有限公司