0078]共享訪問總線接入開關(guān)440,用于切換共享訪問總線控制器430與共享訪問總線21之間的導(dǎo)通和斷開;
[0079]訪問管理模塊450,用于協(xié)同板內(nèi)訪問總線控制器410和共享訪問總線控制器430輔助本板CPU 121」訪問非易失性存儲(chǔ)介質(zhì)20 ;
[0080]協(xié)商失敗處理模塊460,用于驅(qū)動(dòng)板內(nèi)訪問總線控制器410通過板內(nèi)訪問總線22_i向本板CPU 121」返回訪問失敗;
[0081]控制權(quán)管理模塊470,用于為本板12」維護(hù)其它單板對(duì)共享訪問總線的占用狀態(tài)記錄,根據(jù)如下的協(xié)商機(jī)制協(xié)調(diào)上述各模塊的運(yùn)行:
[0082]當(dāng)通過板內(nèi)訪問總線控制器410接收到本板CPU 121」對(duì)非易失性存儲(chǔ)介質(zhì)20發(fā)起的訪問時(shí),控制權(quán)管理模塊470根據(jù)本板維護(hù)的占用狀態(tài)記錄判斷共享訪問總線21當(dāng)前是否已被其它單板占用;
[0083]當(dāng)針對(duì)本板CPU 121」對(duì)非易失性存儲(chǔ)介質(zhì)20發(fā)起的訪問判斷出共享訪問總線21當(dāng)前已被其它單板占用,控制權(quán)管理模塊470控制共享訪問總線接入開關(guān)440保持共享訪問總線控制器430與共享訪問總線21之間的斷開、并驅(qū)動(dòng)協(xié)商失敗處理模塊460通過板內(nèi)訪問總線22」向本板CPU 121」返回訪問失??;
[0084]當(dāng)針對(duì)本板CPU 121」對(duì)非易失性存儲(chǔ)介質(zhì)20發(fā)起的訪問判斷共享訪問總線21當(dāng)前未被其它單板占用,控制權(quán)管理模塊470驅(qū)動(dòng)邏輯報(bào)文構(gòu)造模塊421構(gòu)造占用通告、并由邏輯通信總線控制器420向其它單板的邏輯裝置廣播占用通告;
[0085]當(dāng)邏輯通信總線控制器420在邏輯通信總線廣播占用通告之后,控制權(quán)管理模塊470判斷邏輯報(bào)文檢測模塊422在廣播占用通告之后的預(yù)定時(shí)段內(nèi)是否檢測到來自其它單板的占用通告;
[0086]當(dāng)邏輯報(bào)文檢測模塊422在預(yù)定時(shí)段內(nèi)檢測到來其它單板12_j的占用通告時(shí),控制權(quán)管理模塊470比較該其它單板12_j與本板12」的優(yōu)先級(jí),例如比較該其它單板12_j與本板12」的單板編號(hào);
[0087]當(dāng)比較出與本板12」同期廣播占用通告的其它單板12_j的優(yōu)先級(jí)高于本板時(shí),控制權(quán)管理模塊470控制共享訪問總線接入開關(guān)440保持共享訪問總線控制器430與共享訪問總線21之間的斷開、并驅(qū)動(dòng)協(xié)商失敗處理模塊460通過板內(nèi)訪問總線22」向本板CPU121」返回訪問失?。?br>[0088]當(dāng)比較出與本板12」同期廣播占用通告的其它單板12_j的優(yōu)先級(jí)低于本板時(shí),控制權(quán)管理模塊470控制共享訪問總線接入開關(guān)440將共享訪問總線控制器430與共享訪問總線21導(dǎo)通,以允許訪問管理模塊450協(xié)同板內(nèi)訪問總線控制器410和共享訪問總線控制器430輔助本板CPU 121」訪問非易失性存儲(chǔ)介質(zhì)20 ;
[0089]當(dāng)邏輯報(bào)文檢測模塊422在預(yù)定時(shí)段內(nèi)未檢測到來其它單板的占用通告時(shí),控制權(quán)管理模塊470控制共享訪問總線接入開關(guān)440將共享訪問總線控制器430與共享訪問總線21導(dǎo)通,以允許訪問管理模塊450協(xié)同板內(nèi)訪問總線控制器410和共享訪問總線控制器430輔助本板CPU 121」訪問非易失性存儲(chǔ)介質(zhì)20 ;
[0090]當(dāng)訪問管理模塊450輔助完成本板CPU121」對(duì)非易失性存儲(chǔ)介質(zhì)20的訪問完成時(shí),控制權(quán)管理模塊470驅(qū)動(dòng)邏輯報(bào)文構(gòu)造模塊421構(gòu)造釋放通告、并由邏輯通信總線控制器420向其它單板的邏輯裝置廣播釋放通告,并且,控制權(quán)管理模塊470還控制共享訪問總線接入開關(guān)440將共享訪問總線控制器430與共享訪問總線21斷開;
[0091]當(dāng)邏輯報(bào)文檢測模塊422在本板CPU 121」對(duì)非易失性存儲(chǔ)介質(zhì)20的訪問空閑期間內(nèi)檢測到來自其它單板12_j的占用通告時(shí),控制權(quán)管理模塊470將為本板12」維護(hù)的占用狀態(tài)記錄置為共享訪問總線已被其它單板占用;
[0092]當(dāng)邏輯報(bào)文檢測模塊422檢測到來自其它單板12_j的釋放通告時(shí),控制權(quán)管理模塊470將為本板12」維護(hù)的占用狀態(tài)記錄置為共享訪問總線空閑。
[0093]上述的實(shí)施例對(duì)于電子設(shè)備作為網(wǎng)絡(luò)設(shè)備的應(yīng)用,能夠通過降低各單板的CPU之間的耦合程度有效降低CPU初始化鎖死的發(fā)生概率。
[0094]當(dāng)如圖1所示的電子設(shè)備10為網(wǎng)絡(luò)設(shè)備時(shí),單板12_1?12_N會(huì)包括主控板和接口板,并且,主控板和接口板的CPU初始化過程需要使用網(wǎng)絡(luò)設(shè)備的設(shè)備唯一信息。設(shè)備唯一信息可以包括例如LAN MAC地址、橋MAC地址、出廠設(shè)置信息等設(shè)備配置信息。
[0095]在傳統(tǒng)的設(shè)計(jì)中,設(shè)備配置信息存放在背板的非易失性存儲(chǔ)介質(zhì)中,只有主控板的CPU可以通過對(duì)非易失性存儲(chǔ)介質(zhì)的讀訪問獲取設(shè)備配置信息,而接口板的CPU則需要由主控板的CPU向其提供設(shè)備配置信息,從而,主控板的CPU初始化過程與接口板的CPU初始化過程相互耦合,由此,使得接口板的CPU初始化過程有出現(xiàn)死鎖狀態(tài)的可能。
[0096]如果網(wǎng)絡(luò)設(shè)備采用如圖1所示的電子設(shè)備的結(jié)構(gòu)、并將前文所述的協(xié)商機(jī)制應(yīng)用到對(duì)非易失性存儲(chǔ)介質(zhì)20的讀訪問中,則可以使主控板的CPU和接口板的CPU通過分時(shí)占用共享訪問總線21而彼此獨(dú)立地實(shí)現(xiàn)對(duì)非易失性存儲(chǔ)介質(zhì)20的讀訪問,從而,接口板的(PU可以像主控板的CPU那樣獨(dú)立地從非易失性存儲(chǔ)介質(zhì)20讀取設(shè)備唯一信息中的設(shè)備配置信息,并且不再依賴于主控板的CPU,以避免發(fā)生CPU初始化的鎖死。
[0097]并且,當(dāng)網(wǎng)絡(luò)設(shè)備進(jìn)一步包括裝設(shè)背板的機(jī)框時(shí),設(shè)備唯一信息還可以包括機(jī)框類型信息。在傳統(tǒng)的設(shè)計(jì)中,機(jī)框類型信息由背板通過硬件產(chǎn)生電平組合的方式向主控板和接口板的CPU提供,這就使得機(jī)框類型信息的容量受限于背板的硬件配置,不易擴(kuò)展。
[0098]如果將機(jī)框類型信息與設(shè)備配置信息一起存放在如圖1所示的電子設(shè)備的非易失性存儲(chǔ)介質(zhì)20中,則不但可以確保機(jī)框類型信息能夠被主控板的CPU和接口板的CPU獲取,而且還可以避免硬件配置對(duì)機(jī)框類型信息的容量限制。
[0099]另外,當(dāng)非易失性存儲(chǔ)介質(zhì)20中存放設(shè)備唯一信息時(shí),可以只允許主控板對(duì)非易失性存儲(chǔ)介質(zhì)20寫訪問。若主控板同時(shí)包括主用主控板和備用主控板,則可以只允許主用主控板對(duì)非易失性存儲(chǔ)介質(zhì)20寫訪問。
[0100]S卩,對(duì)于每塊單板12_i,當(dāng)該單板12」的邏輯裝置122」收到本板CPU 121」對(duì)非易失性存儲(chǔ)介質(zhì)20發(fā)起的寫訪問時(shí),判斷該單板12」是否為主用主控板,若是,則按照上述的協(xié)商機(jī)制判斷是否能夠?yàn)樵搶懺L問獲得對(duì)共享訪問總線21的占用權(quán),否則,該單板12」的邏輯裝置122」保持本板12」的板內(nèi)訪問總線22」與共享訪問總線21斷開、并通過板內(nèi)訪問總線22」向本板CPU 121」返回訪問失敗。
[0101]相應(yīng)地,如圖4所示,當(dāng)如圖1所示的電子設(shè)備10為網(wǎng)絡(luò)設(shè)備時(shí),每塊單板12」的邏輯裝置122」可以在如圖3所示結(jié)構(gòu)的基礎(chǔ)上進(jìn)一步包括:
[0102]狀態(tài)檢測模塊471,用于檢測本板CPU 121」的控制管腳50」,以判斷本板是否為主用主控板;
[0103]訪問區(qū)分模塊472,用于將來自板內(nèi)訪問總線控制器410的讀訪問透傳至控制權(quán)管理模塊470,并針對(duì)來自板內(nèi)訪問總線控制器410的寫訪問判斷本板12」是否為主用主控板,若是,則將該寫訪問傳輸至控制權(quán)管理模塊470,否則,驅(qū)動(dòng)協(xié)商失敗處理模塊460通過板內(nèi)訪問總線22」向本板CPU 121」返回訪問失敗。
[0104]除了上述實(shí)施例提供的電子設(shè)備,下述的實(shí)施例中還提供了一種用于電子設(shè)備的訪問控制方法。
[0105]應(yīng)用該訪問控制方法的電子設(shè)備包括背板、以及插接于背板的至少兩塊單板;其中,背板具有非易失性存儲(chǔ)介質(zhì)、以及連接非易失性存儲(chǔ)介質(zhì)的共享訪問總線,每塊單板具有CPU、以及連接CPU的板內(nèi)訪問總線,各單板之間還通過邏輯通信總線互連,用于實(shí)現(xiàn)各單板相互協(xié)商對(duì)共享訪問總線的占用和釋放。
[0106]并且,請(qǐng)參見圖5,該訪問控制方法包括在每塊單板執(zhí)行的如下步驟:
[0107]S501,當(dāng)為本板CPU對(duì)非易失性存儲(chǔ)介質(zhì)的訪問占用共享訪問總線時(shí),將本板的板內(nèi)訪問總線與共享訪問總線導(dǎo)通,并輔助本板的CPU通過共享訪問總線訪問非易失性存儲(chǔ)介質(zhì);
[0108]S502,當(dāng)輔助本板的CPU完成對(duì)非易失性存儲(chǔ)介質(zhì)的訪問時(shí),釋放共享訪問總線、并將本板的板內(nèi)訪問總線與共享訪問總線斷開。
[0109]其中,上述S501可以通過在邏輯通信總線廣播占用通告發(fā)起對(duì)共享訪問總線的占用、通過在邏輯通信總線廣播釋放通告實(shí)現(xiàn)對(duì)共享訪問總線的釋放,并且,S501可以根據(jù)從邏輯通信總線接收到的來自其它單板的占用通告和釋放通告,在本板維護(hù)其它單板對(duì)共享訪問總線的占用狀態(tài)記錄。
[0110]請(qǐng)參見圖6,當(dāng)選用上述的方式進(jìn)行協(xié)商時(shí),如圖5所示的流程可以具體表示為:
[0111]S60,檢測本板CPU對(duì)非易失性存儲(chǔ)介質(zhì)發(fā)起的訪問;
[0112]S61,當(dāng)本板CPU發(fā)起對(duì)非易失性存儲(chǔ)介質(zhì)的訪問時(shí),根據(jù)本板維護(hù)的占用狀態(tài)記錄判斷共享訪問總線當(dāng)前是否已被其它單板占用;
[0113]若共享訪問總線當(dāng)前已被其它單板占用,則執(zhí)行S62 ;
[0114]若共享訪問總線當(dāng)前未被其它單板占用,則執(zhí)行S63 ;
[0115]S62,保持本板的板內(nèi)訪問總線與共享訪問總線斷開、并通過板內(nèi)訪問總線向本板CPU返回訪問失敗,然后返回S60 ;
[0116]S63,通過邏輯通信總線向其它單板廣播占用通告,然后執(zhí)行S64 ;
[0117]S64、在廣播之后的預(yù)定時(shí)段內(nèi)通過邏輯通信總線檢測是否有來自其它單板的占用通告;
[0118]若檢