本發(fā)明是有關(guān)于一種配置方法,特別是指一種存儲(chǔ)器資源的配置方法。
背景技術(shù):
熟知的計(jì)算機(jī)系統(tǒng)包含一個(gè)基本輸入輸出系統(tǒng)、供擴(kuò)充界面卡(add-oncard)插設(shè)的多個(gè)插槽(slot)、及多個(gè)存儲(chǔ)器。該等擴(kuò)充界面卡支援外部連結(jié)標(biāo)準(zhǔn)(peripheralcomponentinterconnect;pci、pciexpress)的協(xié)定。該計(jì)算機(jī)系統(tǒng)在開機(jī)后,該基本輸入輸出系統(tǒng)會(huì)根據(jù)一個(gè)預(yù)先儲(chǔ)存的設(shè)定表,將存儲(chǔ)器資源分配給該等擴(kuò)充界面卡。由于該等擴(kuò)充界面卡可以支援32位元或64位元二種格式,導(dǎo)致該熟知的計(jì)算機(jī)系統(tǒng)會(huì)遇到以下二種問題。
第一,由于無法預(yù)先知道支援64位元的擴(kuò)充界面卡會(huì)插設(shè)在哪一個(gè)插槽,若該預(yù)先儲(chǔ)存的設(shè)定表假設(shè)所有的擴(kuò)充界面卡都是支援32位元的格式來分配存儲(chǔ)器資源,可能導(dǎo)致所有擴(kuò)充界面卡需要的存儲(chǔ)器容量超過32位元格式所能支援的上限,即四十億字節(jié)(4gigabyte;4gb),而造成部分?jǐn)U充界面卡沒有被分配到足夠的存儲(chǔ)器的容量大小。
第二,使用者通過修改該基本輸入輸出系統(tǒng)的該設(shè)定表,如經(jīng)由基本輸入輸出系統(tǒng)設(shè)置菜單(biossetupmenu)修改,手動(dòng)將預(yù)設(shè)為支援32位元格式的部分插槽所插設(shè)的擴(kuò)充界面卡改為支援64位元格式。然而,舉例來說,若擴(kuò)充界面卡是支援32位元格式,但當(dāng)使用者卻設(shè)定為支援64位元格式時(shí),將導(dǎo)致該計(jì)算機(jī)系統(tǒng)不穩(wěn)定。
技術(shù)實(shí)現(xiàn)要素:
因此,本發(fā)明之目的,即在提供一種存儲(chǔ)器資源分配最佳化的配置方法。
于是,本發(fā)明存儲(chǔ)器資源的配置方法,適用于一個(gè)計(jì)算機(jī)系統(tǒng),該計(jì)算機(jī)系統(tǒng)包含一個(gè)基本輸入輸出系統(tǒng)、一個(gè)存儲(chǔ)器單元、及多個(gè)插槽。該等插槽可提供多個(gè)擴(kuò)充裝置插設(shè)。該存儲(chǔ)器資源的配置方法包含步驟(a)~(c)。
于步驟(a),通過該基本輸入輸出系統(tǒng)判斷該等插槽之其中一者是否設(shè)置有一個(gè)擴(kuò)充裝置。
于步驟(b),通過該基本輸入輸出系統(tǒng)從設(shè)置在該等插槽之其中該者的該擴(kuò)充裝置,獲得一個(gè)對應(yīng)的存儲(chǔ)器需求資料及一個(gè)對應(yīng)的規(guī)格資料。
于步驟(c),通過該基本輸入輸出系統(tǒng)根據(jù)該對應(yīng)的存儲(chǔ)器需求資料及該對應(yīng)的規(guī)格資料,決定分配給該設(shè)置在該等插槽之其中該者的該擴(kuò)充裝置的該存儲(chǔ)器單元的存儲(chǔ)器容量大小。
在一些實(shí)施例中,該等插槽及該等擴(kuò)充裝置支援外部連結(jié)標(biāo)準(zhǔn)(pci、pciexpress)的協(xié)定。其中,在步驟(b)中,該存儲(chǔ)器需求資料指示該擴(kuò)充裝置所需要的存儲(chǔ)器容量大小,該規(guī)格資料指示該擴(kuò)充裝置是支援32位元的格式及64位元的格式之其中一者。
在一些實(shí)施例中,每一個(gè)擴(kuò)充裝置包含一個(gè)組態(tài)空間暫存器(configurationspaceregister;csr),每一個(gè)組態(tài)空間暫存器包括多個(gè)基址暫存器(baseaddressregister;bar)。其中,在步驟(b)中,該基本輸入輸出系統(tǒng)將一個(gè)第一指令分別傳送至該擴(kuò)充裝置的每一個(gè)基址暫存器,并分別接收該擴(kuò)充裝置的每一個(gè)基址暫存器的一個(gè)第二指令,而獲得該擴(kuò)充裝置的該存儲(chǔ)器需求資料及該規(guī)格資料。
在一些實(shí)施例中,該存儲(chǔ)器資源的配置方法還包含在步驟(b)及(c)之間的步驟(d)及(e)。
于步驟(d),通過該基本輸入輸出系統(tǒng)判斷該等插槽之其中另一者是否設(shè)置有另一個(gè)擴(kuò)充裝置。
于步驟(e),當(dāng)在步驟(d)中,該基本輸入輸出系統(tǒng)判斷該等插槽之其中另一者有另一個(gè)擴(kuò)充裝置時(shí),再重新執(zhí)行步驟(b)及(d),直到在步驟(d)中,該基本輸入輸出系統(tǒng)判斷該等插槽之其中另一者沒有另一個(gè)擴(kuò)充裝置。
其中,在步驟(c)中,通過該基本輸入輸出系統(tǒng)計(jì)算全部的該等擴(kuò)充裝置所需要的存儲(chǔ)器容量的總和。當(dāng)該總和不大于一個(gè)上限值時(shí),該基本輸入輸出系統(tǒng)分別依照該等擴(kuò)充裝置的該等存儲(chǔ)器需求資料,將對應(yīng)該上限值以下的存儲(chǔ)器位址的存儲(chǔ)器容量分配給該等擴(kuò)充裝置。當(dāng)該總和大于該上限值時(shí),該基本輸入輸出系統(tǒng)分別依照指示支援32位元的該等擴(kuò)充裝置的該等規(guī)格資料及該等存儲(chǔ)器需求資料,將對應(yīng)該上限值以下的存儲(chǔ)器位址的存儲(chǔ)器容量分配給該等擴(kuò)充裝置,并分別依照指示支援64位元的該等擴(kuò)充裝置的該等規(guī)格資料及該等存儲(chǔ)器需求資料,將對應(yīng)該上限值以上的存儲(chǔ)器位址的存儲(chǔ)器容量分配給該等擴(kuò)充裝置。
在一些實(shí)施例中,其中,在步驟(b)中,該第一指令為0xffffffff,每一個(gè)第二指令包括32個(gè)位元,且由msb至lsb依序?yàn)榈谌晃辉恋诹阄辉?,該第二指令的該第零位元為一個(gè)存儲(chǔ)器空間指示,該第二指令的該第二位元及該第一位元的邏輯值為該規(guī)格資料。
當(dāng)該第二指令的該第二位元及該第一位元為邏輯值00時(shí),該擴(kuò)充裝置支援32位元的格式。當(dāng)該第二指令的該第二位元及該第一位元為邏輯值10時(shí),該擴(kuò)充裝置支援64位元的格式。
該基本輸入輸出系統(tǒng)將該第零位元為邏輯值0的每一個(gè)第二指令的該第三十一位元至該第四位元的邏輯值所對應(yīng)的一個(gè)數(shù)值相加,而獲得該存儲(chǔ)器需求資料。
在步驟(c)中,該上限值是四十億字節(jié)(4gigabyte;4gb)。
或者在一些實(shí)施例中,其中,在步驟(c)中,該基本輸入輸出系統(tǒng)分別依照指示支援32位元的該等擴(kuò)充裝置的該等規(guī)格資料及該等存儲(chǔ)器需求資料,將對應(yīng)一個(gè)上限值以下的存儲(chǔ)器位址的存儲(chǔ)器容量分配給該等擴(kuò)充裝置,并分別依照指示支援64位元的該等擴(kuò)充裝置的該等規(guī)格資料及該等存儲(chǔ)器需求資料,將對應(yīng)該上限值以上的存儲(chǔ)器位址的存儲(chǔ)器容量分配給該等擴(kuò)充裝置。
或者在一些實(shí)施例中,該存儲(chǔ)器資源的配置方法還包含在步驟(c)之后的步驟(d)及(e)。
于步驟(d),通過該基本輸入輸出系統(tǒng)判斷該等插槽之其中另一者是否設(shè)置有另一個(gè)擴(kuò)充裝置。
于步驟(e),當(dāng)在步驟(d)中,該基本輸入輸出系統(tǒng)判斷該等插槽之其中另一者有另一個(gè)擴(kuò)充裝置時(shí),再重新執(zhí)行步驟(b)~(d),直到在步驟(d)中,該基本輸入輸出系統(tǒng)判斷該等插槽之其中另一者沒有另一個(gè)擴(kuò)充裝置。
本發(fā)明之功效是通過該基本輸入輸出系統(tǒng)判斷該等插槽是否插設(shè)有該等擴(kuò)充裝置,并由該等擴(kuò)充裝置獲得對應(yīng)的該存儲(chǔ)器需求資料及該規(guī)格資料,使得該基本輸入輸出系統(tǒng)能據(jù)以決定分配給該等擴(kuò)充裝置的該存儲(chǔ)器單元的容量大小,而能達(dá)成存儲(chǔ)器資源分配的最佳化。
【附圖說明】
圖1是一方塊圖,說明本發(fā)明存儲(chǔ)器資源的配置方法所適用的一個(gè)計(jì)算機(jī)系統(tǒng);
圖2是一流程圖,說明本發(fā)明存儲(chǔ)器資源的配置方法的一第一實(shí)施例;及
圖3是一流程圖,說明本發(fā)明存儲(chǔ)器資源的配置方法的一第二實(shí)施例。
【具體實(shí)施方式】
在本發(fā)明被詳細(xì)描述之前,應(yīng)當(dāng)注意在以下的說明內(nèi)容中,類似的元件是以相同的編號來表示。
參閱圖1,本發(fā)明存儲(chǔ)器資源的配置方法,適用于一個(gè)計(jì)算機(jī)系統(tǒng),該計(jì)算機(jī)系統(tǒng)包含一個(gè)中央處理器(cpu)1、一個(gè)芯片組(chipset)2、一個(gè)基本輸入輸出系統(tǒng)(basicinput/outputsystem;bios)3、一個(gè)存儲(chǔ)器單元4、及多個(gè)插槽(slot),該等插槽可以提供多個(gè)擴(kuò)充裝置插設(shè)。在本實(shí)施例中,該等插槽及該等擴(kuò)充裝置都支援外部連結(jié)標(biāo)準(zhǔn),即peripheralcomponentinterconnect(pci)或peripheralcomponentinterconnectexpress(pcie)的協(xié)定,因此,每一個(gè)擴(kuò)充裝置包含一個(gè)組態(tài)空間暫存器(configurationspaceregister;csr),每一個(gè)組態(tài)空間暫存器包括多個(gè),例如六個(gè),基址暫存器(baseaddressregister;bar)。為說明方便起見,該等插槽以電連接該中央處理器1的一個(gè)第一插槽51及一個(gè)第二插槽52,及電連接該芯片組2的一個(gè)第三插槽53及一個(gè)第四插槽54為例作說明,但不在此限。相似地,該等擴(kuò)充裝置以一個(gè)插設(shè)在該第一插槽51的第一擴(kuò)充裝置61及一個(gè)插設(shè)在該第二插槽52的第二擴(kuò)充裝置62為例作說明,但不在此限。
參閱圖1與圖2,本發(fā)明存儲(chǔ)器資源的配置方法之第一實(shí)施例,通過該計(jì)算機(jī)系統(tǒng)實(shí)施,并執(zhí)行步驟s1~s7。
于步驟s1,該計(jì)算機(jī)系統(tǒng)因啟動(dòng)電源而開機(jī)。
于步驟s2,通過該基本輸入輸出系統(tǒng)3判斷該等插槽之其中一者是否設(shè)置有一個(gè)擴(kuò)充裝置。更詳細(xì)地說,該中央處理器1及該芯片組2在開機(jī)后,會(huì)分別定義各自所電連接的該等擴(kuò)充插槽的總線號碼(busnumber),并將相關(guān)的信息儲(chǔ)存于該中央處理器1內(nèi)。該基本輸入輸出系統(tǒng)3將一個(gè)第三指令逐一地經(jīng)由該中央處理器1傳送至每一個(gè)插槽,再根據(jù)每一個(gè)插槽是否有回復(fù)一個(gè)第四指令,以判斷該插槽是否有設(shè)置一個(gè)擴(kuò)充裝置。當(dāng)該基本輸入輸出系統(tǒng)3判斷該等插槽之其中一者設(shè)置有一個(gè)擴(kuò)充裝置,如該第一插槽51設(shè)置有該第一擴(kuò)充裝置61時(shí),該計(jì)算機(jī)系統(tǒng)執(zhí)行步驟s3。當(dāng)該基本輸入輸出系統(tǒng)3判斷沒有設(shè)置任何一個(gè)擴(kuò)充裝置時(shí),該計(jì)算機(jī)系統(tǒng)執(zhí)行步驟s7。
于步驟s3,通過該基本輸入輸出系統(tǒng)3從設(shè)置在該等插槽之其中該者的該擴(kuò)充裝置,獲得一個(gè)對應(yīng)的存儲(chǔ)器需求資料。該存儲(chǔ)器需求資料指示該擴(kuò)充裝置所需要的存儲(chǔ)器容量大小。
更詳細(xì)地說,該基本輸入輸出系統(tǒng)3將一個(gè)第一指令分別傳送至該擴(kuò)充裝置的每一個(gè)基址暫存器,并分別接收該擴(kuò)充裝置的每一個(gè)基址暫存器的一個(gè)第二指令,而獲得該擴(kuò)充裝置的該存儲(chǔ)器需求資料。該第一指令及每一個(gè)第二指令都包括32個(gè)位元,該第一指令為0xffffffff(以十六進(jìn)位表示該32個(gè)位元),該第二指令由msb至lsb依序?yàn)榈谌晃辉恋诹阄辉?,該第二指令的該第零位元為一個(gè)存儲(chǔ)器空間指示(memoryspaceindicator)。
該基本輸入輸出系統(tǒng)3將該第零位元為邏輯值0的每一個(gè)第二指令的該第三十一位元至該第四位元的邏輯值所對應(yīng)的一個(gè)數(shù)值相加,而獲得該存儲(chǔ)器需求資料。舉例來說,若該擴(kuò)充裝置的該六個(gè)基址暫存器之其中一個(gè)回復(fù)該第二指令為0xf8000000,以二進(jìn)制表示則為該第三十一位元至該第二十七位元為邏輯1、該第二十六位元至該第零位元為邏輯0,對應(yīng)的該數(shù)值則為227=128(mbyte)。相似地,若該六個(gè)基址暫存器之其中另一個(gè)回復(fù)該第二指令為0xf0000000,以二進(jìn)制表示則為該第三十一位元至該第二十八位元為邏輯1、該第二十七位元至該第零位元為邏輯0,對應(yīng)的該數(shù)值則為228=256(mbyte)。因此,該基本輸入輸出系統(tǒng)3將該二個(gè)數(shù)值,即128mbyte與256mbyte,相加,而獲得該存儲(chǔ)器需求資料,即384mbyte。
于步驟s4,通過該基本輸入輸出系統(tǒng)3從設(shè)置在該等插槽之其中該者的該擴(kuò)充裝置,獲得一個(gè)對應(yīng)的規(guī)格資料。該規(guī)格資料指示該擴(kuò)充裝置是支援32位元及64位元之其中哪一種格式。
更詳細(xì)地說,該基本輸入輸出系統(tǒng)3接受每一個(gè)基址暫存器的該第二指令,還獲得該規(guī)格資料。該第二指令的該第二位元及該第一位元的邏輯值為該規(guī)格資料。當(dāng)該第二指令的該第二位元及該第一位元為邏輯值00b時(shí),該擴(kuò)充裝置支援32位元的格式。當(dāng)該第二指令的該第二位元及該第一位元為邏輯值10b時(shí),該擴(kuò)充裝置支援64位元的格式。特別補(bǔ)充說明的是:「b」是指該邏輯值以二進(jìn)制表示。要特別補(bǔ)充說明的是:步驟s3及s4都是根據(jù)所接收的該等第二指令作判斷,因此,步驟s3及s4的順序不僅可以對調(diào),也可以在同一個(gè)步驟中實(shí)施。
于步驟s5,通過該基本輸入輸出系統(tǒng)3判斷該等插槽之其中另一者是否設(shè)置有另一個(gè)擴(kuò)充裝置。其詳細(xì)地作法可參考步驟s2。當(dāng)該基本輸入輸出系統(tǒng)3判斷該等插槽之其中另一者設(shè)置有一個(gè)擴(kuò)充裝置,如該第一插槽51設(shè)置有該第二擴(kuò)充裝置62時(shí),該計(jì)算機(jī)系統(tǒng)執(zhí)行步驟s3。當(dāng)該基本輸入輸出系統(tǒng)3判斷沒有設(shè)置任何一個(gè)擴(kuò)充裝置時(shí),該計(jì)算機(jī)系統(tǒng)執(zhí)行步驟s6。
于步驟s6,通過該基本輸入輸出系統(tǒng)3計(jì)算全部的該等擴(kuò)充裝置所需要的存儲(chǔ)器容量的總和。當(dāng)該總和大于一個(gè)上限值,如四十億字節(jié)(4gb)時(shí),該計(jì)算機(jī)系統(tǒng)執(zhí)行步驟s61。當(dāng)該總和不大于該上限值時(shí),該計(jì)算機(jī)系統(tǒng)執(zhí)行步驟s62。
于步驟s61,該基本輸入輸出系統(tǒng)3分別依照指示支援32位元的該等擴(kuò)充裝置的該等規(guī)格資料及該等存儲(chǔ)器需求資料,將對應(yīng)該上限值以下的存儲(chǔ)器位址的存儲(chǔ)器容量分配給該等擴(kuò)充裝置,并分別依照指示支援64位元的該等擴(kuò)充裝置的該等規(guī)格資料及該等存儲(chǔ)器需求資料,將對應(yīng)該上限值以上的存儲(chǔ)器位址的存儲(chǔ)器容量分配給該等擴(kuò)充裝置。
舉例來說,假設(shè)該存儲(chǔ)器單元4的容量有6gb,且假設(shè)對應(yīng)該第一擴(kuò)充裝置61的該規(guī)格資料及該存儲(chǔ)器需求資料分別為支援32位元及3gb,對應(yīng)該第二擴(kuò)充裝置62的該規(guī)格資料及該存儲(chǔ)器需求資料分別為支援64位元及2gb,則該基本輸入輸出系統(tǒng)3經(jīng)由該中央處理器1所具有的一個(gè)存儲(chǔ)器控制器,將該存儲(chǔ)器單元4的0~3gb的存儲(chǔ)器位址所對應(yīng)的3gb存儲(chǔ)器容量,分配給該第一擴(kuò)充裝置61,并將該存儲(chǔ)器單元4的4~6gb的存儲(chǔ)器位址所對應(yīng)的2gb存儲(chǔ)器容量,分配給該第二擴(kuò)充裝置62。
于步驟s62,該基本輸入輸出系統(tǒng)3分別依照該等擴(kuò)充裝置的該等存儲(chǔ)器需求資料,將對應(yīng)該上限值以下的存儲(chǔ)器位址的存儲(chǔ)器容量分配給該等擴(kuò)充裝置。
特別補(bǔ)充說明的是:在本實(shí)施例中,分配給支援32位元的格式的擴(kuò)充裝置的存儲(chǔ)器的該上限值為4gb,而分配給支援64位元的格式的擴(kuò)充裝置的存儲(chǔ)器的該上限值為2的64次方,即16eb(1eb=1024tb,1tb=1024gb),且在本發(fā)明的該實(shí)施例中,通過區(qū)分?jǐn)U充裝置,如pci裝置所支援的格式,如32或64位元而分配不同區(qū)域(如0~4gb給支援32位元的格式的擴(kuò)充裝置,4gb~16eb給支援64位元的格式的擴(kuò)充裝置)的存儲(chǔ)器給各個(gè)pci裝置使用。
于步驟s7,該計(jì)算機(jī)系統(tǒng)繼續(xù)開機(jī)的相關(guān)程序,并執(zhí)行進(jìn)入作業(yè)系統(tǒng)(os)。
參閱圖1與圖3,本發(fā)明存儲(chǔ)器資源的配置方法之第二實(shí)施例,大致上是與該第一實(shí)施例相似,不同的地方如下。
于步驟s4,通過該基本輸入輸出系統(tǒng)3從設(shè)置在該等插槽之其中該者的該擴(kuò)充裝置,獲得一個(gè)對應(yīng)的規(guī)格資料,并判斷該擴(kuò)充裝置是否支援64位元的格式。當(dāng)該基本輸入輸出系統(tǒng)3判斷該擴(kuò)充裝置有支援64位元的格式時(shí),該計(jì)算機(jī)系統(tǒng)執(zhí)行步驟s41。當(dāng)該基本輸入輸出系統(tǒng)3判斷該擴(kuò)充裝置沒有支援64位元的格式時(shí),該計(jì)算機(jī)系統(tǒng)執(zhí)行步驟s42。
于步驟s41,該基本輸入輸出系統(tǒng)3依照該等擴(kuò)充裝置之其中該者的該存儲(chǔ)器需求資料,將對應(yīng)該上限值以上的存儲(chǔ)器位址的存儲(chǔ)器容量分配給該擴(kuò)充裝置。
于步驟s42,該基本輸入輸出系統(tǒng)3依照該等擴(kuò)充裝置之其中該者的該存儲(chǔ)器需求資料,將對應(yīng)該上限值以下的存儲(chǔ)器位址的存儲(chǔ)器容量分配給該擴(kuò)充裝置。
特別補(bǔ)充說明的是:本發(fā)明存儲(chǔ)器資源的配置方法的該第一實(shí)施例是先計(jì)算該等擴(kuò)充裝置的存儲(chǔ)器資源的需求總和,再分配存儲(chǔ)器資源,而本發(fā)明存儲(chǔ)器資源的配置方法的該第二實(shí)施例是針對每一個(gè)擴(kuò)充裝置,逐一判斷而直接分配存儲(chǔ)器資源。但總體來看,該配置方法都是通過該基本輸入輸出系統(tǒng)3根據(jù)該擴(kuò)充裝置所對應(yīng)的該存儲(chǔ)器需求資料及該對應(yīng)的規(guī)格資料,決定分配給該擴(kuò)充裝置的該存儲(chǔ)器單元4的存儲(chǔ)器容量大小。
綜上所述,通過該基本輸入輸出系統(tǒng)3判斷該等插槽是否插設(shè)有該等擴(kuò)充裝置,并由該等擴(kuò)充裝置獲得對應(yīng)的該存儲(chǔ)器需求資料及該規(guī)格資料,使得該基本輸入輸出系統(tǒng)3能據(jù)以決定分配給該等擴(kuò)充裝置的該存儲(chǔ)器單元4的容量大小,而能達(dá)成存儲(chǔ)器資源分配的最佳化,故確實(shí)能達(dá)成本發(fā)明之目的。
上面結(jié)合附圖對本發(fā)明的具體實(shí)施方式和實(shí)施例做了詳細(xì)說明,但不能以之限定本發(fā)明的范圍,在本發(fā)明申請專利范圍內(nèi)所作的均等修飾和變化,皆應(yīng)該屬于本發(fā)明專利范圍內(nèi)。