專利名稱:把系統(tǒng)級(jí)海量存儲(chǔ)器配置數(shù)據(jù)存儲(chǔ)在其非易失性存儲(chǔ)器中的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)的操作布局和操作方法,該計(jì)算機(jī)系統(tǒng)包括具有系統(tǒng)隨機(jī)存取存儲(chǔ)器(RAM)的主機(jī)并使用基本輸入/輸出系統(tǒng)(BIOS)來(lái)操作主機(jī)。尤其是,本發(fā)明的布局和方法把用來(lái)操作系統(tǒng)的至少一部分BIOS存儲(chǔ)在海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置內(nèi),而不是存儲(chǔ)在只讀存儲(chǔ)器(ROM)內(nèi)。存儲(chǔ)在海量存儲(chǔ)媒體中的BIOS可以是與特定外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS和/或與主機(jī)有關(guān)的系統(tǒng)BIOS。ROM指由主機(jī)所提供的系統(tǒng)ROM或由外設(shè)器件所提供的外設(shè)ROM(位于插件板或該器件上)。
計(jì)算機(jī)行業(yè)不斷地發(fā)展,以提供更快速的處理器、更大的存儲(chǔ)容量以及可與主機(jī)互連的各種外設(shè)器件。由于速度和容量如此不斷增長(zhǎng),本行業(yè)的發(fā)展之一是叫做外設(shè)部件接口(PCI)的外設(shè)總線實(shí)現(xiàn)。此外設(shè)總線已發(fā)展成為在主機(jī)和外設(shè)計(jì)算機(jī)器件或擴(kuò)充卡之間提供擴(kuò)充機(jī)構(gòu)。
PCI外設(shè)總線設(shè)計(jì)成無(wú)論使用CPU還是主系統(tǒng)計(jì)算機(jī)體系結(jié)構(gòu),與維持PCI的電氣、協(xié)議和硬件接口的需求無(wú)關(guān)的處理器和計(jì)算機(jī)系統(tǒng)體系結(jié)構(gòu)。這使得可把同一外設(shè)計(jì)算機(jī)器件連到各種不同的主系統(tǒng),而將要使用該器件的每一種類型的主系統(tǒng)無(wú)需使用不同版本的驅(qū)動(dòng)。由于PCI總線與處理器和計(jì)算機(jī)的體系結(jié)構(gòu)無(wú)關(guān),每個(gè)主系統(tǒng)需要提供一種機(jī)構(gòu)來(lái)把主I/O和存儲(chǔ)空間映射到PCI總線上所使用的尋址機(jī)構(gòu)。這也適用于外設(shè)計(jì)算機(jī)器件的擴(kuò)充ROM存儲(chǔ)空間,該存儲(chǔ)空間通常包括諸如用于該外設(shè)計(jì)算機(jī)器件的代碼和數(shù)據(jù)等初始化信息和操作信息。因此,在PCI器件上允許可重新定位的擴(kuò)充ROM定位地址。對(duì)于諸如工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線等早先的總線體系結(jié)構(gòu),則不是這樣的情況。
如以標(biāo)號(hào)10示出基于PCI的典型計(jì)算機(jī)系統(tǒng)的一個(gè)例子的
圖1所示,系統(tǒng)10包括主機(jī)12,主機(jī)12具有用于操作主機(jī)12的系統(tǒng)BIOS 13及與主機(jī)12相聯(lián)的系統(tǒng)RAM存儲(chǔ)器14。系統(tǒng)BIOS 13被存儲(chǔ)在主機(jī)12內(nèi)的系統(tǒng)ROM 15中。使用主橋路17把PCI外設(shè)總線16連到主機(jī)12和系統(tǒng)RAM 14。此系統(tǒng)還包括例如硬盤(pán)驅(qū)動(dòng)器等外設(shè)計(jì)算機(jī)器件18,它連到PCI總線,從而主機(jī)可使用PCI總線與外設(shè)計(jì)算機(jī)器件進(jìn)行通信。器件18包括ROM 20,ROM 20包含為對(duì)外設(shè)計(jì)算機(jī)器件18進(jìn)行初始化和/或操作而在主系統(tǒng)中所需的任何擴(kuò)充BIOS 22。在使用PCI總線的系統(tǒng)中,主系統(tǒng)BIOS和/或操作系統(tǒng)必須提供識(shí)別各個(gè)PCI器件、分配資源和讓這些器件使能的配置管理器。配置管理器的任務(wù)是把外設(shè)器件的任何擴(kuò)充BIOS拷貝到主機(jī)的RAM中,然后執(zhí)行在此擴(kuò)充BIOS中所提供的任何初始化例程,以提供適當(dāng)?shù)耐庠O(shè)器件初始化。
參考圖解地示出包含在ROM 20中的擴(kuò)充BIOS 22的圖2A,PCI規(guī)約允許把多個(gè)代碼映象(image)(例如24a-24d)存儲(chǔ)在擴(kuò)充BIOS 22內(nèi),每個(gè)代碼映象提供用于特定計(jì)算機(jī)體系結(jié)構(gòu)的適當(dāng)信息。在此例中,代碼映象24a可對(duì)應(yīng)于基于Intel的系統(tǒng),代碼映象24b可對(duì)應(yīng)于基于Power PC的系統(tǒng),等等。此多個(gè)代碼映象24a-24d增加了擴(kuò)充BIOS中所包括的信息量,從而也增加了存儲(chǔ)擴(kuò)充BIOS 22所需的ROM的數(shù)量。如圖2B所示,代碼映象24a及其它映象中的每一個(gè)包括標(biāo)題(header)區(qū)26。依據(jù)擴(kuò)充BIOS 22所對(duì)應(yīng)的器件18的需求,每個(gè)映象還可包括數(shù)據(jù)結(jié)構(gòu)區(qū)28、運(yùn)行時(shí)(runtime)代碼30、初始化代碼32和校驗(yàn)和34。參考圖2C,PCI規(guī)約還需要每個(gè)PCI器件包括配置空間存儲(chǔ)器35,該存儲(chǔ)器的尺寸為256個(gè)字節(jié)且符合所示的PCI格式。配置空間35所提供的信息包括包含器件標(biāo)識(shí)符的器件ID寄存器36以及包含所需的存儲(chǔ)空間量的配置寄存器38。配置寄存器38規(guī)定主機(jī)存儲(chǔ)器內(nèi)映射與外設(shè)計(jì)算機(jī)器件18有關(guān)的擴(kuò)充BIOS 22所需的存儲(chǔ)空間的量。
如以下更詳細(xì)所述,一旦把擴(kuò)充BIOS 22拷貝到主系統(tǒng)RAM 14中,就運(yùn)行來(lái)自適當(dāng)代碼映象(例如,代碼映象24a)的初始化代碼32。這使得器件18初始化并在使用來(lái)自適當(dāng)代碼映象(在此情況下,為映象24a)的運(yùn)行時(shí)代碼30(而不是映象24b、c或d)操作器件18的系統(tǒng)內(nèi)提供適當(dāng)?shù)漠惓7种?hook)。一旦運(yùn)行初始化代碼,則控制返回主機(jī)系統(tǒng),且主系統(tǒng)RAM 14中僅留下操作器件18所需的代碼,在系統(tǒng)的操作中此代碼都保留在該主系統(tǒng)RAM 14中。不再需要僅用于器件18的初始化的適當(dāng)代碼映象24a的額外信息。因此,使得主機(jī)12可再次使用用來(lái)存儲(chǔ)該額外信息的存儲(chǔ)器,從而減少RAM 14的使用,以存儲(chǔ)擴(kuò)充BIOS 22的必要部分。
現(xiàn)在參考圖3,將使用上述系統(tǒng)10的例子詳細(xì)地描述從PCI外設(shè)器件獲得擴(kuò)充BIOS并把它存儲(chǔ)在系統(tǒng)RAM內(nèi)的典型順序。在接通計(jì)算機(jī)系統(tǒng)10(圖3所示的塊40)后,如塊42所示,主機(jī)12的處理器開(kāi)始運(yùn)行系統(tǒng)代碼,它通常叫做通電自檢(POST)。POST碼進(jìn)行不相關(guān)的系統(tǒng)配置(塊44),然后如判斷框46所示,通過(guò)檢查諸如外設(shè)器件18等外設(shè)器件的存在來(lái)開(kāi)始PCI總線追加外設(shè)器件的配置。一旦POST碼找到外設(shè)器件18,如圖3的塊48、50和52中分別所示,POST碼開(kāi)始器件18的配置、根據(jù)器件18的需要分配主I/O和RAM存儲(chǔ)空間以及根據(jù)器件18的需要配置中斷和在主機(jī)12上分配IRQ。這里,如判斷塊54所示,POST碼確定器件18是否具有需要待裝載和配置的擴(kuò)充BIOS。如果沒(méi)有擴(kuò)充BIOS,則如塊56所示,POST碼繼續(xù)下一外設(shè)器件。如果所有的的器件都被配置,則如塊58所示POST碼繼續(xù)引導(dǎo)操作系統(tǒng)。然而,如果器件存在待裝載的擴(kuò)充BIOS,則對(duì)于器件18的情況,如塊60所示裝載和配置擴(kuò)充BIOS。一旦此器件18的擴(kuò)充BIOS的裝載完成,則順序進(jìn)到塊56,繼續(xù)處理任何其它器件。
現(xiàn)在參考圖4,將更詳細(xì)地描述如圖3的塊54和60所示裝載和配置外設(shè)器件的擴(kuò)充BIOS典型流程。在POST碼確定外設(shè)器件18是否具有擴(kuò)充BIOS的判斷塊54處開(kāi)始,POST碼對(duì)外設(shè)器件18的配置空間存儲(chǔ)器35的配置寄存器38進(jìn)行讀寫(xiě),以確定該器件上是否存在擴(kuò)充BIOS,如果有繼而確定需要多少存儲(chǔ)空間。一旦確定存在擴(kuò)充BIOS,則如現(xiàn)在的詳細(xì)描述,進(jìn)行如圖3的塊60所示裝載和配置與器件18有關(guān)的擴(kuò)充BIOS的流程。
如圖4的塊62所示,POST碼確定存儲(chǔ)在器件18的ROM 20中的擴(kuò)充BIOS22映射到的可接受地址并把該地址寫(xiě)到PCI外設(shè)器件18上的配置空間存儲(chǔ)器35的配置寄存器38中。然后,在塊64中,POST碼使能(enable)器件上的擴(kuò)充BIOS ROM解碼。接著,如塊66所示,外設(shè)器件18映射其ROM存儲(chǔ)器,該存儲(chǔ)器在被POST碼寫(xiě)到器件18上的配置空間存儲(chǔ)器35中的配置寄存器38的地址處開(kāi)始。器件建立其內(nèi)部地址解碼器,以對(duì)ROM存儲(chǔ)器映射到的存儲(chǔ)器地址范圍進(jìn)行解碼。如塊68所示,POST碼通過(guò)讀取擴(kuò)充BIOS映射到的存儲(chǔ)器位置來(lái)通讀(read through)擴(kuò)充BIOS,從而搜索適當(dāng)?shù)臄U(kuò)充BIOS代碼映象(在此情況下為擴(kuò)充BIOS 22的代碼映象24a)。如果如判斷塊70所示,未找到適當(dāng)?shù)拇a映象,則順序返回塊56,以查看是否存在待配置的附加器件。然而,如果找到適當(dāng)?shù)拇a映象24a,則順序移至塊72,其中POST碼確定把擴(kuò)充BIOS代碼從器件的ROM 20拷貝到主機(jī)RAM 14內(nèi)的存儲(chǔ)器位置。然后,在塊74中,POST碼把適當(dāng)?shù)拇a映象24a從器件的ROM 20拷貝到系統(tǒng)RAM 14中。如塊76和78所示,POST碼調(diào)用現(xiàn)在位于系統(tǒng)RAM 14中的擴(kuò)充BIOS 22的初始化代碼32,并運(yùn)行進(jìn)一步配置外設(shè)器件18和安裝系統(tǒng)級(jí)軟件支持(包括中斷處理程序、器件專用數(shù)據(jù)等)的初始化代碼32。如塊80所示,一旦初始化代碼32結(jié)束,初始化代碼32把系統(tǒng)的控制返回POST碼。在塊82中,POST碼進(jìn)行任意最終初始化,諸如在已運(yùn)行初始化代碼32后給用來(lái)存儲(chǔ)系統(tǒng)RAM中剩余的擴(kuò)充BIOS的系統(tǒng)RAM 14的部分標(biāo)為只讀。最后,在這里,順序返回判斷塊56,以查看是否還存在待配置的任何器件。
如上所述,擴(kuò)充BIOS 22通常存儲(chǔ)在位于外設(shè)計(jì)算機(jī)器件或擴(kuò)充卡上的ROM20中。然而,此途徑的缺點(diǎn)是,在一使用PCI總線的系統(tǒng)中,僅使用ROM 20來(lái)存儲(chǔ)在系統(tǒng)啟動(dòng)后裝入系統(tǒng)中的擴(kuò)充BIOS,從而增加了ROM 20的成本,也增加了器件的成本。尤其是,在如上所述使用PCI總線的系統(tǒng)中,主機(jī)需要把擴(kuò)充BIOS拷貝到主系統(tǒng)的RAM中。為了效率,在需要擴(kuò)充BIOS來(lái)操作系統(tǒng)時(shí),系統(tǒng)使用存儲(chǔ)在它自己的存儲(chǔ)器中的拷貝的擴(kuò)充BIOS而不是回頭訪問(wèn)器件上的ROM。因此,一旦把適當(dāng)映象24a的必要部分存儲(chǔ)在主系統(tǒng)的RAM中,則直到系統(tǒng)斷開(kāi)和再次接通(此時(shí),把擴(kuò)充BIOS的適當(dāng)映象再次裝入主系統(tǒng)RAM)時(shí)才再訪問(wèn)ROM 20。如上所述,由于需要多個(gè)映象來(lái)允許把同一器件連到具有不同計(jì)算機(jī)體系結(jié)構(gòu)的各種主系統(tǒng),所以整個(gè)擴(kuò)充BIOS 22繼而存儲(chǔ)擴(kuò)充BIOS所需的ROM 20的尺寸可能相當(dāng)大。這可能使擴(kuò)充BIOS ROM 20變?yōu)槠骷?8的成本的一個(gè)重要部分。
此擴(kuò)充BIOS ROM的成本隨所使用的ROM的特定類型而改變。在生產(chǎn)大量器件的情況下,可在ROM制造時(shí)把擴(kuò)充BIOS編程成為ROM來(lái)制造ROM。此途徑的優(yōu)點(diǎn)是不太昂貴;然而,一旦這種類型的ROM被編程,它就不可以改變。如果以任何需要改變擴(kuò)充BIOS的方式修改器件,或者如果在擴(kuò)充BIOS中發(fā)現(xiàn)故障,則必須丟棄所生產(chǎn)的具有舊擴(kuò)充BIOS的所有ROM。此途徑在通過(guò)更新擴(kuò)充BIOS來(lái)更新和改進(jìn)器件的操作方面不能提供較大的靈活性。
在另一個(gè)途徑中,在ROM制成后把擴(kuò)充BIOS編程成為ROM。這使得可更新擴(kuò)充BIOS而不必如上述途徑的情況丟棄已制成的ROM。雖然可編程ROM提供較大的靈活性,但它比在其制造期間編程的ROM貴,且進(jìn)一步增加了提供擴(kuò)充BIOS ROM的成本。由于計(jì)算機(jī)外設(shè)器件市場(chǎng)的競(jìng)爭(zhēng)極為激烈這一特性(例如在硬盤(pán)驅(qū)動(dòng)器領(lǐng)域),減少或甚至免除擴(kuò)充BIOS的ROM的成本的能力在競(jìng)爭(zhēng)上將有明顯的優(yōu)勢(shì)。
本發(fā)明揭示了用于操作主機(jī)的一種新布局和方法,主機(jī)具有用來(lái)操作主機(jī)的系統(tǒng)BIOS且具有與主機(jī)相聯(lián)的系統(tǒng)RAM。此布局和方法使得可把至少一部分BIOS存儲(chǔ)在連到主機(jī)的海量存儲(chǔ)裝置外設(shè)器件的海量存儲(chǔ)裝置內(nèi)。存儲(chǔ)在海量存儲(chǔ)裝置內(nèi)的BIOS可以是與任何特定外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS和/或與海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件本身有關(guān)的擴(kuò)充BIOS。存儲(chǔ)在海量存儲(chǔ)裝置內(nèi)的BIOS還可以是與主機(jī)有關(guān)的系統(tǒng)BIOS。此途徑明顯地減少或免除了對(duì)用于特定外設(shè)計(jì)算機(jī)器件的擴(kuò)充BIOS ROM和/或用于海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的擴(kuò)充BIOS ROM的需要及成本。此途徑還可用于明顯地減少有關(guān)主機(jī)的系統(tǒng)BIOS的需要及成本。由于把某些或所有擴(kuò)充BIOS和/或某些系統(tǒng)BIOS存儲(chǔ)在海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置中,此途徑還基本上提高了更新和改進(jìn)系統(tǒng)或修理BIOS中的故障的靈活性,而不必使用可編程ROM。使用此新途徑,可通過(guò)簡(jiǎn)單地把經(jīng)修訂BIOS重新裝入海量存儲(chǔ)裝置器件的海量存儲(chǔ)裝置中來(lái)更新大多數(shù)系統(tǒng)BIOS和與連到系統(tǒng)的外設(shè)器件有關(guān)的大多數(shù)或所有擴(kuò)充BIOS,而不必丟棄任何BIOS ROM。
如以下更詳細(xì)所述,這里揭示了一種操作計(jì)算機(jī)系統(tǒng)的新布局和方法。計(jì)算機(jī)系統(tǒng)包括主機(jī),主機(jī)具有系統(tǒng)RAM和諸如連到主機(jī)的硬盤(pán)驅(qū)動(dòng)器等海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件。主機(jī)使用BIOS來(lái)控制計(jì)算機(jī)系統(tǒng)的操作。此布局和方法允許把至少一部分BIOS存儲(chǔ)在海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置內(nèi),而無(wú)需把所有的BIOS存儲(chǔ)在BIOS ROM內(nèi)。
在一個(gè)實(shí)施例中,這種操作計(jì)算機(jī)系統(tǒng)的方法和布局是一種使用諸如PCI總線等允許可重新定位的擴(kuò)充BIOS位置地址的外設(shè)總線來(lái)操作連到主機(jī)的特定外設(shè)計(jì)算機(jī)器件的方法和布局。在本實(shí)施例中,BIOS是與特定外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS。外設(shè)計(jì)算機(jī)器件的操作需要主機(jī)獲得與特定外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS并把此擴(kuò)充BIOS裝入系統(tǒng)RAM。本實(shí)施例包括ROM存儲(chǔ)裝置(外設(shè)ROM),該存儲(chǔ)裝置用于包含與特定外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS的第一部分而非全部。把與特定外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS的第二部分存儲(chǔ)在連到主機(jī)的海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置內(nèi)。特定外設(shè)計(jì)算機(jī)器件可以是或可以不是海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件。此布局還包括用于使主機(jī)訪問(wèn)外設(shè)ROM并獲得與特定外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS的第一部分。其后,使用擴(kuò)充BIOS的第一部分,使主機(jī)(i)訪問(wèn)特定海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置,(ii)獲得與特定外設(shè)計(jì)算機(jī)器件有關(guān)并位于海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置內(nèi)的擴(kuò)充BIOS的第二部分,以及(iii)把擴(kuò)充BIOS的第二部分存儲(chǔ)在系統(tǒng)RAM內(nèi)。
在本實(shí)施例中,主機(jī)可包括包含系統(tǒng)BIOS(系統(tǒng)ROM)的系統(tǒng)ROM存儲(chǔ)裝置。包含擴(kuò)充BIOS的第一部分的外設(shè)ROM存儲(chǔ)裝置可與系統(tǒng)ROM存儲(chǔ)裝置分開(kāi),或者包含擴(kuò)充BIOS的第一部分的外設(shè)ROM存儲(chǔ)裝置可以是系統(tǒng)ROM存儲(chǔ)裝置的一部分。在包含擴(kuò)充BIOS的第一部分的ROM存儲(chǔ)裝置與系統(tǒng)ROM存儲(chǔ)裝置分開(kāi)的情況下,包含與特定外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS的第一部分的此外設(shè)ROM存儲(chǔ)裝置可位于特定外設(shè)計(jì)算機(jī)器件上。
在這種方法和布局是操作特定外設(shè)計(jì)算機(jī)器件的方法和布局的另一實(shí)施例中,把與特定外設(shè)計(jì)算機(jī)器件有關(guān)的全部擴(kuò)充BIOS存儲(chǔ)在海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置內(nèi)。在本實(shí)施例中,此方法和布局還包括用于開(kāi)始系統(tǒng)的操作的操作機(jī)構(gòu)。一旦系統(tǒng)的操作開(kāi)始,操作機(jī)構(gòu)使主機(jī)(i)訪問(wèn)海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置,(ii)獲得與特定外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS,以及(iii)把與特定外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS存儲(chǔ)在系統(tǒng)RAM內(nèi)。
在把全部擴(kuò)充BIOS存儲(chǔ)在海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置內(nèi)的實(shí)施例的特殊樣式中,海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件包括海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件上的存儲(chǔ)緩沖器。在此樣式中,與特定外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS包括擴(kuò)充BIOS的第一部分和擴(kuò)充BIOS的第二部分。此外,操作機(jī)構(gòu)使主機(jī)在系統(tǒng)操作開(kāi)始時(shí)進(jìn)行通電自檢。海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件包括在通電自檢的時(shí)間幀內(nèi)把與通電外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS的第一部分裝入海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的存儲(chǔ)緩沖器中的機(jī)構(gòu)。這樣還使操作機(jī)構(gòu)可訪問(wèn)存儲(chǔ)緩沖器并獲得擴(kuò)充BIOS的第一部分。其后,使用擴(kuò)充BIOS的第一部分,使主機(jī)(i)訪問(wèn)海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置,(ii)獲得與特定外設(shè)計(jì)算機(jī)器件有關(guān)并位于海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置內(nèi)的擴(kuò)充BIOS的第二部分,以及(iii)把擴(kuò)充BIOS的第二部分存儲(chǔ)在系統(tǒng)RAM內(nèi)。
在每個(gè)所述實(shí)施例中,與擴(kuò)充BIOS有關(guān)的特定外設(shè)計(jì)算機(jī)器件實(shí)際上可以是海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件,該器件提供其中存儲(chǔ)有至少一部分?jǐn)U充BIOS的海量存儲(chǔ)裝置?;蛘?,特定外設(shè)計(jì)算機(jī)器件可以是諸如視頻卡(videocard)、網(wǎng)絡(luò)卡等任何其它外設(shè)計(jì)算機(jī)器件或任何其它外設(shè)計(jì)算機(jī)器件或擴(kuò)充卡。
在另一個(gè)實(shí)施例中,BIOS是與主機(jī)有關(guān)的系統(tǒng)BIOS。在本實(shí)施例中,系統(tǒng)BIOS的第一部分包含在位于主機(jī)內(nèi)的BIOS ROM內(nèi)。系統(tǒng)BIOS的第二部分存儲(chǔ)在海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置內(nèi)。以與如上所述存儲(chǔ)在海量存儲(chǔ)裝置內(nèi)的擴(kuò)充BIOS相同的方式在系統(tǒng)RAM中檢索和存儲(chǔ)系統(tǒng)BIOS的第二部分。
在本發(fā)明的另一個(gè)方面,揭示了不同于在計(jì)算機(jī)系統(tǒng)中使用的ROM的計(jì)算機(jī)存儲(chǔ)裝置媒體。計(jì)算機(jī)系統(tǒng)包括主機(jī),主機(jī)具有與主機(jī)相聯(lián)的系統(tǒng)RAM以及連到主機(jī)的海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件。主機(jī)使用BIOS來(lái)控制系統(tǒng)的操作。在主機(jī)已把存儲(chǔ)在海量存儲(chǔ)裝置中的BIOS裝入主機(jī)的系統(tǒng)RAM后,把至少一部分BIOS存儲(chǔ)在海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置內(nèi),以備主機(jī)使用。本發(fā)明的計(jì)算機(jī)存儲(chǔ)裝置媒體具有包含用于控制主機(jī)的操作的BIOS的一部分存儲(chǔ)裝置媒體。在計(jì)算機(jī)存儲(chǔ)裝置媒體的一個(gè)實(shí)施例中,該媒體為諸如硬盤(pán)驅(qū)動(dòng)器等連到主機(jī)的海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置。
在計(jì)算機(jī)存儲(chǔ)媒體的另一個(gè)實(shí)施例中,媒體為軟盤(pán)或其它這樣的媒體,包含在媒體上的BIOS可被傳遞到海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件。在本實(shí)施例中,包含在媒體上的BIOS可以是與計(jì)算機(jī)系統(tǒng)的至少一部分有關(guān)的經(jīng)更新和修改的BIOS,諸如與連到系統(tǒng)的特定外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS或與主機(jī)有關(guān)的系統(tǒng)BIOS?;蛘?,包含在媒體上的BIOS可以是與連到計(jì)算機(jī)系統(tǒng)的特定外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS。
參考以下對(duì)較佳實(shí)施例的描述并結(jié)合附圖將更好地理解本發(fā)明的特征,其中圖1是使用PCI總線把外設(shè)計(jì)算機(jī)器件連到主機(jī)的已有技術(shù)的計(jì)算機(jī)系統(tǒng)的方框圖;圖2A是包含多個(gè)代碼映象的已有技術(shù)的擴(kuò)充BIOS的示意圖;圖2B是構(gòu)成已有技術(shù)的擴(kuò)充BIOS的部分的圖2A所示代碼映象之一的詳細(xì)示意圖;圖2C是PCI外設(shè)器件的配置空間存儲(chǔ)器的詳細(xì)示意圖;圖3是示出基于PCI的典型系統(tǒng)為確定系統(tǒng)是否包括需要把擴(kuò)充BIOS裝入主機(jī)的系統(tǒng)RAM中的任何外設(shè)器件而使用的已有技術(shù)的順序的流程圖;圖4是示出任何把與特定外設(shè)計(jì)算機(jī)器件有關(guān)的已有技術(shù)的擴(kuò)充BIOS裝入主機(jī)的系統(tǒng)RAM的詳細(xì)的流程圖;圖5是依據(jù)本發(fā)明設(shè)計(jì)的計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施例的方框圖,該系統(tǒng)使用允許可重新定位的擴(kuò)充BIOS位置地址的外設(shè)總線把外設(shè)計(jì)算機(jī)器件連到主機(jī);圖6A是用于外設(shè)計(jì)算機(jī)器件的依據(jù)本發(fā)明的擴(kuò)充BIOS第一部分的詳細(xì)示意圖;圖6B是與圖6A所示擴(kuò)充BIOS的第一部分有關(guān)的依據(jù)本發(fā)明的擴(kuò)充BIOS第二部分的詳細(xì)示意圖;圖6C是PCI外設(shè)器件的配置空間存儲(chǔ)器的詳細(xì)示意圖;圖7是示出依據(jù)本發(fā)明如何把圖5、6A和6B所示的擴(kuò)充BIOS裝入主機(jī)的系統(tǒng)RAM的詳細(xì)的流程圖;圖8是示出依據(jù)本發(fā)明如何把如圖5所示存儲(chǔ)在海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件中的一部分系統(tǒng)BIOS裝入主機(jī)的系統(tǒng)RAM的流程圖;圖9是依據(jù)本發(fā)明設(shè)計(jì)的計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的方框圖,該系統(tǒng)使用允許可重新定位的擴(kuò)充BIOS位置地址的外設(shè)總線把外設(shè)計(jì)算機(jī)器件連到主機(jī);圖10是示出依據(jù)本發(fā)明如何把圖9所示的擴(kuò)充BIOS裝入主機(jī)的系統(tǒng)RAM的第一實(shí)施例的細(xì)節(jié)的流程圖;圖11是示出依據(jù)本發(fā)明如何把圖8所示的擴(kuò)充BIOS裝入主機(jī)的系統(tǒng)RAM的第二實(shí)施例的細(xì)節(jié)的流程圖;圖12A是示出依據(jù)本發(fā)明在計(jì)算機(jī)系統(tǒng)的啟動(dòng)期間如何把圖形從海量存儲(chǔ)裝置器件裝入視頻存儲(chǔ)器的流程圖;以及圖12B是示出依據(jù)本發(fā)明在計(jì)算機(jī)系統(tǒng)的啟動(dòng)期間如何把操作數(shù)據(jù)從海量存儲(chǔ)裝置器件裝入系統(tǒng)的流程圖。
參考圖5,最初將就使主機(jī)操作特定外設(shè)計(jì)算機(jī)器件的布局來(lái)描述本發(fā)明,此操作需要主機(jī)獲得與特定外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS并把此擴(kuò)充BIOS裝入系統(tǒng)RAM。如圖5所示,依據(jù)本發(fā)明設(shè)計(jì)的計(jì)算機(jī)系統(tǒng)100包括主機(jī)102,主機(jī)102具有用來(lái)操作主機(jī)102的系統(tǒng)BIOS 104并具有與主機(jī)102有關(guān)的RAM 106。系統(tǒng)BIOS 104存儲(chǔ)在主機(jī)102內(nèi)的系統(tǒng)ROM 108中。使用主橋路112把外設(shè)總線110連到主機(jī)102和RAM 106。使用外設(shè)總線110把外設(shè)計(jì)算機(jī)器件114連到主機(jī)102。主機(jī)102、系統(tǒng)BIOS 104、RAM 106、ROM 108和主橋路110構(gòu)成任何適當(dāng)?shù)目扇菀滋峁┑牟考@些部件允許使用橋路112把主機(jī)102和RAM 106連到外設(shè)總線110。這些部件包括任何常規(guī)的486、Pentium、Power PC或基于RISC的部件,但不限于此。雖然所示的主機(jī)102、RAM106和主橋路112相對(duì)具有特定的配置,但應(yīng)理解這不是本發(fā)明的要求。相反,即使這些部件以各種特定的配置互連也仍舊在本發(fā)明的范圍內(nèi),只要如以下所述使用外設(shè)總線110把外設(shè)計(jì)算機(jī)器件114連到這些部件。
外設(shè)總線110可以是任何適當(dāng)?shù)目扇菀滋峁┑耐庠O(shè)總線,其中允許可重新定位的擴(kuò)充BIOS的定位地址。這種外設(shè)總線的一個(gè)較佳實(shí)施例是PCI總線。然而,應(yīng)理解諸如其它并行總線、串行總線或多路復(fù)用總線等各種外設(shè)總線都落在本發(fā)明的范圍內(nèi)。如以上在背景技術(shù)中詳細(xì)所述,如果利于PCI總線,則PCI規(guī)約規(guī)定如何把與特定外設(shè)計(jì)算機(jī)器件有關(guān)的任何擴(kuò)充BIOS裝入主系統(tǒng)的RAM 106中。其它外設(shè)總線配置具有相應(yīng)的規(guī)約,因此,以使用PCI總線把外設(shè)計(jì)算機(jī)器件114連到主機(jī)102的假設(shè)來(lái)詳細(xì)描述本發(fā)明。根據(jù)所揭示的內(nèi)容,本發(fā)明對(duì)其它外設(shè)總線配置的應(yīng)用將對(duì)本領(lǐng)域內(nèi)的技術(shù)人員變得清晰起來(lái)。雖然在說(shuō)明書(shū)中把外設(shè)總線描述成PCI總線,但這不是必需的??傻葍r(jià)地應(yīng)用需要把擴(kuò)充BIOS位置地址映射到系統(tǒng)存儲(chǔ)器而非允許固定的硬連線擴(kuò)充BIOS位置地址的任何外設(shè)總線。
在本發(fā)明的第一實(shí)施例中,外設(shè)計(jì)算機(jī)器件114是具有諸如硬盤(pán)驅(qū)動(dòng)器或小型光盤(pán)(compact disc)唱機(jī)等海量存儲(chǔ)裝置116的海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件。器件114需要與該器件有關(guān)的待裝入主機(jī)的擴(kuò)充BIOS,以對(duì)操作器件114進(jìn)行適當(dāng)?shù)某跏蓟km然具體描述了硬盤(pán)驅(qū)動(dòng)器和小型光盤(pán)唱機(jī),但外設(shè)計(jì)算機(jī)器件114采用任何其它海量存儲(chǔ)裝置器件的形式也在本發(fā)明的范圍內(nèi)。海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件114包括少量的ROM 118。依據(jù)本發(fā)明,ROM 118只包括與器件114有關(guān)的擴(kuò)充BIOS的第一部分120。
參考圖6A,在使用PCI總線時(shí),擴(kuò)充BIOS的第一部分120包括配置標(biāo)題122、少量初始化代碼124和校驗(yàn)和126。配置標(biāo)題中的專用信息可依據(jù)所使用的總線而改變;然而,依據(jù)所使用的總線的協(xié)議來(lái)存儲(chǔ)該信息。在本實(shí)施例的較佳樣式中,第一部分120是全部擴(kuò)充BIOS的非常小的一部分;例如,其尺寸小于1K字節(jié)。與器件114有關(guān)的擴(kuò)充BIOS的第二部分128存儲(chǔ)在海量存儲(chǔ)裝置116中。如圖6B所示,擴(kuò)充BIOS的第二部分128包括可成為擴(kuò)充BIOS的一部分的任何數(shù)據(jù)結(jié)構(gòu)130、在系統(tǒng)操作期間操作器件114可能必需的任何運(yùn)行時(shí)代碼132、對(duì)器件114初始化所必需的任何初始化代碼134以及校驗(yàn)和136。如圖6C所示,類似于上述系統(tǒng)10的已有技術(shù)的器件18,器件1 14還包括配置空間存儲(chǔ)器138,存儲(chǔ)器138具有包含用于映射擴(kuò)充BIOS所需的系統(tǒng)存儲(chǔ)器尺寸或量的信息的配置寄存器140。然而,依據(jù)本發(fā)明,所需的尺寸規(guī)定了為映射與外設(shè)計(jì)算機(jī)器件114有關(guān)的擴(kuò)充BIOS的第一部分120和擴(kuò)充BIOS的第二部分128而在主機(jī)內(nèi)所需的的存儲(chǔ)空間的量。
雖然圖6A和6B僅示出構(gòu)成擴(kuò)充BIOS的第一部分120和第二部分128的一個(gè)代碼映象,但應(yīng)理解,擴(kuò)充BIOS的第一部分120和第二部分128可包括多個(gè)映象,每個(gè)映象對(duì)應(yīng)于該器件可能附著的不同類型的計(jì)算機(jī)體系結(jié)構(gòu)。此多映象途徑允許使用對(duì)應(yīng)于不同代碼映象的不同計(jì)算機(jī)體系結(jié)構(gòu)把同一器件附著到各種系統(tǒng)。如果提供多個(gè)代碼體系,則存儲(chǔ)在配置空間138的配置寄存器140中的所需尺寸信息包括足夠用于代碼映象的第一和第二部分中全部的空間。
既然已描述本第一實(shí)施例的元件,將詳細(xì)地描述本實(shí)施例的操作。在整個(gè)系統(tǒng)100最初接通時(shí),系統(tǒng)最初以與參考圖3的流程圖詳細(xì)描述的典型系統(tǒng)10相同的方式操作。然而,一旦POST碼檢查系統(tǒng)100的外設(shè)器件并確定存在包括擴(kuò)充ROM的外設(shè)器件(在此情況下為器件114)時(shí),系統(tǒng)100的操作開(kāi)始不同于參考圖4的流程圖所述的典型系統(tǒng)。因此,在將參考圖7的流程圖進(jìn)一步描述在該點(diǎn)后系統(tǒng)100的操作,圖7替代了以上對(duì)基于PCI的典型系統(tǒng)10所述的圖4的流程圖。
在POST碼確定外設(shè)器件114是否具有擴(kuò)充BIOS的圖7的判斷塊54處開(kāi)始,POST碼對(duì)外設(shè)器件114的配置空間存儲(chǔ)器138的配置寄存器140進(jìn)行讀寫(xiě),以確定在該器件上是否存在擴(kuò)充BIOS,如果存在,則確定需要多少存儲(chǔ)空間。如圖7的塊146所示,一旦確定這是擴(kuò)充BIOS,則POST碼確定擴(kuò)充擴(kuò)充BIOS映射到的可接受地址并把該地址寫(xiě)到外設(shè)器件114上的配置空間存儲(chǔ)器138的配置寄存器140。然后,在塊148中,POST碼以類似于以上對(duì)系統(tǒng)10所述的方式使能器件上的擴(kuò)充BIOS ROM解碼。
接著,依據(jù)本發(fā)明,如塊150所示,外設(shè)器件114把存儲(chǔ)在ROM 118中的擴(kuò)充BIOS的第一部分120映射到在POST碼寫(xiě)到器件114上的配置空間存儲(chǔ)器138中的配置寄存器140的地址處開(kāi)始的系統(tǒng)存儲(chǔ)器地址。器件114建立它自己的內(nèi)部地址解碼器,對(duì)ROM 118映射到的寄存器140的請(qǐng)求的整個(gè)存儲(chǔ)器地址范圍進(jìn)行解碼,即使實(shí)際上僅有一小部分在器件114的ROM 118內(nèi)。由于存儲(chǔ)在器件114的ROM118中的擴(kuò)充BIOS的第一部分120基本上小于如上所述寄存器140向全部擴(kuò)充BIOS所請(qǐng)求的空間量,所以把偽造生成(faked generated)的數(shù)據(jù)映射到此額外的系統(tǒng)存儲(chǔ)空間。這可以各種方式來(lái)實(shí)現(xiàn)。例如,可把ROM 118上的單個(gè)數(shù)據(jù)位置映射到整個(gè)額外系統(tǒng)存儲(chǔ)空間,從而只需要單個(gè)數(shù)據(jù)位置來(lái)填充整個(gè)額外系統(tǒng)存儲(chǔ)空間?;蛘撸商峁┠茉陲w行中(on the fly)產(chǎn)生數(shù)據(jù)模式的小的數(shù)據(jù)產(chǎn)生代碼。在本例中,把數(shù)據(jù)產(chǎn)生代碼映射到此額外存儲(chǔ)空間,從而在訪問(wèn)該空間時(shí),數(shù)據(jù)產(chǎn)生代碼產(chǎn)生被訪問(wèn)的數(shù)據(jù)量。
雖然僅描述了如何填充此額外RAM空間的兩個(gè)特例,但可使用各種其它特殊的方法,所有這些方法都落在本發(fā)明的范圍內(nèi)。在一較佳樣式中,把整個(gè)額外RAM空間映射到包含擴(kuò)充BIOS的第一部分120的ROM 118內(nèi)的單個(gè)數(shù)據(jù)位置。該數(shù)據(jù)位置把零作為該位置的數(shù)據(jù)。這樣,以零填充整個(gè)額外RAM空間。由于以零填充整個(gè)額外RAM空間,所以此額外空間不影響校驗(yàn)和計(jì)數(shù)器,且可把校驗(yàn)和126置于擴(kuò)充BIOS的第一部分120的結(jié)尾處。
如塊152所示,POST碼通過(guò)讀取擴(kuò)充BIOS映射到的存儲(chǔ)器位置來(lái)通讀擴(kuò)充BIOS,從而搜索適當(dāng)?shù)臄U(kuò)充BIOS的代碼映象(在此情況下,為包含在擴(kuò)充BIOS的第一部分120中的唯一代碼映象)。如果如判斷塊154所示,未找到適當(dāng)?shù)拇a映象,則順序返回塊56,以查看是否存在待配置的附加器件。然而,如果找到適當(dāng)?shù)拇a映象,則順序移至塊156,其中POST碼確定把擴(kuò)充BIOS代碼從器件的ROM 118拷貝到主機(jī)RAM 106內(nèi)的存儲(chǔ)器位置。然后,在塊158中,POST碼把來(lái)自器件ROM 118的代碼映象拷貝到系統(tǒng)RAM 106中。此拷貝包括擴(kuò)充BIOS的第一部分120及以上詳細(xì)描述的偽造生成數(shù)據(jù)。如塊160所示,POST碼調(diào)用現(xiàn)在位于系統(tǒng)RAM 106中的擴(kuò)充BIOS的第一部分120的初始化代碼124,并運(yùn)行此初始化代碼124。
依據(jù)本發(fā)明,如塊162所示,初始化代碼124包含剛好足以啟動(dòng)海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件114并把擴(kuò)充BIOS的第二部分128裝入系統(tǒng)RAM 106中所需的代碼。如塊164所示,初始化代碼124運(yùn)行現(xiàn)在位于主RAM中的第二部分128的初始化代碼134。雖然在給出的例子中,初始化代碼124只包括足以啟動(dòng)海量存儲(chǔ)裝置器件114、裝載第二部分128和運(yùn)行初始化代碼134的代碼,但這不是本發(fā)明的要求。初始化代碼124可包括更多的代碼,只要把擴(kuò)充BIOS的至少一部分存儲(chǔ)在海量存儲(chǔ)裝置114上。然而,較佳實(shí)施例把存儲(chǔ)在ROM 118中的代碼的數(shù)量減到最少,從而盡可能減少ROM的成本。在塊166中,初始化代碼134還配置外設(shè)器件114并安裝包括中斷處理程序、器件專用數(shù)據(jù)等的系統(tǒng)級(jí)軟件支持。如塊168所示,一旦初始化代碼134結(jié)束,初始化代碼134把系統(tǒng)的控制返回POST碼。在塊170中,POST碼進(jìn)行任意最終初始化,諸如在已運(yùn)行初始化代碼134后給用來(lái)存儲(chǔ)系統(tǒng)RAM中剩余的擴(kuò)充BIOS的系統(tǒng)RAM 106的部分標(biāo)為只讀。最后,在這里,順序返回判斷塊56,以查看是否還存在待配置的任何器件。
在如圖5所示的第二實(shí)施例中,特定外設(shè)計(jì)算機(jī)器件可采用不同于海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的器件或擴(kuò)充卡的形式。這種器件的例子是視頻卡、多媒體卡網(wǎng)絡(luò)卡或包括擴(kuò)充BIOS的如何其它擴(kuò)充卡或外設(shè)器件。在本實(shí)施例中,計(jì)算機(jī)系統(tǒng)100包括外設(shè)計(jì)算機(jī)擴(kuò)充卡或器件174,此擴(kuò)充卡或器件174需要把有關(guān)的擴(kuò)充BIOS裝入主機(jī)以初始化和/或操作擴(kuò)充卡174。如以上對(duì)器件114所述的相同方式,擴(kuò)充卡174包括包含與擴(kuò)充卡174有關(guān)的擴(kuò)充BIOS的第一部分178的ROM 176。然而,在本實(shí)施例中,與擴(kuò)充卡174有關(guān)的擴(kuò)充BIOS的第二部分180存儲(chǔ)在器件114的海量存儲(chǔ)裝置中。這使得可把用于擴(kuò)充卡174的大部分?jǐn)U充BIOS存儲(chǔ)在海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件114的海量存儲(chǔ)裝置116中。除了在包含在ROM 176中的第一部分178內(nèi)所提供的小的初始化代碼將操作器件114并訪問(wèn)與包含在海量存儲(chǔ)裝置116內(nèi)的擴(kuò)充卡174有關(guān)的擴(kuò)充BIOS的第二部分180以外,本實(shí)施例的操作與上述第一實(shí)施例的操作相同。
雖然上述第一和第二實(shí)施例都包括位于需要裝置擴(kuò)充BIOS以便被主系統(tǒng)初始化和/或操作的外設(shè)計(jì)算機(jī)器件上的ROM 118和ROM 176,但這不是必要的?;蛘?,包含擴(kuò)充BIOS的第一部分的ROM可提供在整個(gè)系統(tǒng)內(nèi)的其它位置。其一個(gè)例子可以是把高度集成的系統(tǒng)作為包括外設(shè)器件的特定分組的完整封裝的情況。參考圖5,在此情況下,可把分別包含用于器件114和器件174的擴(kuò)充BIOS的第一部分的ROM 118和176作為系統(tǒng)ROM 108的一部分。在此示例的器件114和174中,以與上述相同的方式,把與包含在完整封裝中的外設(shè)器件有關(guān)的大多數(shù)擴(kuò)充BIOS存儲(chǔ)在諸如硬盤(pán)驅(qū)動(dòng)器等海量存儲(chǔ)裝置器件內(nèi)。系統(tǒng)ROM 108所需包括的擴(kuò)充BIOS ROM僅需要大到足以包含操作硬驅(qū)并把控制移交給存儲(chǔ)在硬驅(qū)中的初始化代碼的代碼。然后,可以如上所述相同的方式,把與包含在封裝內(nèi)的各外設(shè)器件有關(guān)的所有擴(kuò)充BIOS裝入主系統(tǒng)的RAM中。然而,在此情況下,把用于每個(gè)外設(shè)器件的擴(kuò)充BIOS的第一部分作為系統(tǒng)BIOS的一部分,因此系統(tǒng)BIOS(即先前例子中的POST)不需要如上所述對(duì)這些外設(shè)器件進(jìn)行搜索。
依據(jù)本發(fā)明的另一個(gè)實(shí)施例,可使用此通用途徑來(lái)減少主機(jī)內(nèi)所需的系統(tǒng)ROM的量。再參考圖5,在本實(shí)施例中,存儲(chǔ)在系統(tǒng)ROM中的系統(tǒng)BIOS 104只是由主機(jī)102所使用的整個(gè)系統(tǒng)BIOS的小的第一部分。與以上對(duì)外設(shè)器件擴(kuò)充BIOS的方式相同,系統(tǒng)BIOS的第二部分182存儲(chǔ)在海量存儲(chǔ)裝置器件114的海量存儲(chǔ)裝置116中。由此布局,系統(tǒng)ROM 108僅需要大到足以存儲(chǔ)足以啟動(dòng)海量存儲(chǔ)裝置器件114并把第二部分182裝入系統(tǒng)RAM 106的代碼。
現(xiàn)在參考圖8的流程圖來(lái)詳細(xì)地描述系統(tǒng)的操作,其中系統(tǒng)BIOS被分成存儲(chǔ)在系統(tǒng)ROM 108中的第一部分和存儲(chǔ)在海量存儲(chǔ)裝置器件114的海量存儲(chǔ)裝置116內(nèi)的第二部分182。在此布局中,如塊184所示,在計(jì)算機(jī)接通后,存儲(chǔ)在系統(tǒng)ROM 108中的系統(tǒng)BIOS的第一部分找到并配置海量存儲(chǔ)裝置器件114(塊186)。如塊188所示,系統(tǒng)BIOS的第一部分包括確定把系統(tǒng)BIOS的第二部分182裝入系統(tǒng)RAM 106內(nèi)的可接受地址的代碼。接著,在塊190和192中,系統(tǒng)BIOS代碼的第一部分把系統(tǒng)BIOS的第二部分182從海量存儲(chǔ)裝置器件114裝入系統(tǒng)RAM 106,并運(yùn)行現(xiàn)在位于系統(tǒng)RAM中的系統(tǒng)BIOS的第二部分。在此處,如塊194所示,系統(tǒng)BIOS的第二部分得到控制,且系統(tǒng)繼續(xù)象整個(gè)系統(tǒng)BIOS設(shè)置在ROM 104內(nèi)一樣進(jìn)行操作。
應(yīng)理解,一旦把系統(tǒng)BIOS的第二部分裝入RAM并已執(zhí)行,則系統(tǒng)可繼續(xù)依據(jù)用于裝載與連到系統(tǒng)的外設(shè)器件有關(guān)的任何BIOS的上述布局?;蛘撸扇缫韵滤鲅b載擴(kuò)充BIOS。使用此整個(gè)途徑,可把大多數(shù)系統(tǒng)BIOS與連到系統(tǒng)的外設(shè)器件的大多數(shù)或甚至全部擴(kuò)充BIOS存儲(chǔ)在連到系統(tǒng)的海量存儲(chǔ)裝置器件的海量存儲(chǔ)裝置中,而不是存儲(chǔ)在ROM中。這樣消除了與典型計(jì)算機(jī)系統(tǒng)中的系統(tǒng)BIOS和擴(kuò)充BIOS所需的BIOS ROM有關(guān)的大多數(shù)成本。此外,進(jìn)一步采用此相同的基本概念,還可消除典型計(jì)算機(jī)系統(tǒng)的附加部件,這是通過(guò)把存儲(chǔ)在這些元件中的信息存儲(chǔ)在海量存儲(chǔ)裝置器件內(nèi)來(lái)實(shí)現(xiàn)的。例如,電池備用存儲(chǔ)器可包括系統(tǒng)配置信息、密碼、系統(tǒng)時(shí)間、系統(tǒng)日期、軟驅(qū)配置數(shù)據(jù)、尺寸、磁盤(pán)類型和容量(包括無(wú)效、3.5英寸的1.44MB、3.5英寸的1.25MB、3.5英寸的7.20KB、5.25英寸的1.2MB、5.25英寸的3.60KB)、磁盤(pán)寫(xiě)保護(hù)使能(enable)/無(wú)效(disable)、硬盤(pán)容量、配置數(shù)據(jù)和尺寸、CD ROM和DVD配置數(shù)據(jù)、尺寸和容量、此種硬驅(qū)的海量存儲(chǔ)器件檢測(cè)方法、可附著于計(jì)算機(jī)的CD ROM和/或DVD外設(shè)或通常存儲(chǔ)在ROM或電池備用存儲(chǔ)器中的任何其它信息,通過(guò)把此信息存儲(chǔ)在海量存儲(chǔ)裝置器件上并如上所述在系統(tǒng)啟動(dòng)期間訪問(wèn)該信息可免去此電池備用存儲(chǔ)器。
用戶通常具有通過(guò)選擇自動(dòng)(自動(dòng)地)或手動(dòng)來(lái)建立BIOS的選擇權(quán)。如果用戶選擇手動(dòng),則用戶通常可能選擇以下的至少一個(gè)驅(qū)動(dòng)器類型、CD或DVD、對(duì)應(yīng)于專有驅(qū)動(dòng)器號(hào)或用戶所定義的配置的號(hào)碼,允許用戶選擇柱面(cylinder)的號(hào)碼、頭、扇區(qū)或磁道的號(hào)碼、寫(xiě)預(yù)補(bǔ)償、引導(dǎo)順序,選擇系統(tǒng)試圖引導(dǎo)安裝在計(jì)算機(jī)中的諸如磁盤(pán)驅(qū)動(dòng)器軟盤(pán)器件、CD ROM驅(qū)動(dòng)器和DVD器件等每個(gè)存儲(chǔ)器件的次序(例如,它可專用于首先引導(dǎo)從軟盤(pán)驅(qū)動(dòng)器、其次是CD ROM驅(qū)動(dòng)器、第三是硬驅(qū))或可使用的任何次序,使系統(tǒng)揚(yáng)聲器使能和無(wú)效,選擇引導(dǎo)顯示器或視頻顯示器件(例如以具有LCD顯示器或CRT的計(jì)算機(jī)),可選擇LCD或TV端口,在進(jìn)行引導(dǎo)或例如投影顯示器時(shí)所有都可能出現(xiàn),可同時(shí)顯示任何一個(gè)或全部。
存儲(chǔ)主機(jī)的當(dāng)前存儲(chǔ)尺寸、總存儲(chǔ)尺寸、高速緩沖RAM或高速緩沖存儲(chǔ)器尺寸,存儲(chǔ)主機(jī)的當(dāng)前擴(kuò)充存儲(chǔ)尺寸,存儲(chǔ)主CPU尺寸和主CPU速度,存儲(chǔ)主系統(tǒng)號(hào)和BIOS版本號(hào),存儲(chǔ)靜態(tài)(quiet)引導(dǎo)、使能或無(wú)效電視口的選擇以允許把數(shù)據(jù)顯示在TV上,選擇TV信號(hào)的類型(例如,PAL或NTSC)、串行口IRQ(中斷請(qǐng)求線)地址、串行口通信口號(hào)(COM1、COM2和COM3),選擇把哪一個(gè)COM口用于諸如紅外器件等器件與計(jì)算機(jī)的無(wú)線通信、諸如LPT1、LPT2等并行口地址,使以上端口的地址無(wú)效,建立并行口的操作模式(標(biāo)準(zhǔn)模式、雙向模式和ECP模式)。
通常,如果選中ECP模式,則通常將選中ECP信道,還使諸如用戶密碼和高級(jí)密碼等密碼使能和無(wú)效,設(shè)定密碼應(yīng)是什么,確定引導(dǎo)時(shí)是否需要密碼,重新開(kāi)始時(shí)使密碼使能或無(wú)效,存儲(chǔ)軟盤(pán)驅(qū)動(dòng)器的磁盤(pán)的密碼保護(hù),可把固定磁盤(pán)引導(dǎo)保護(hù)設(shè)定為正?;?qū)懕Wo(hù),使能集成的硬驅(qū)接口,選擇或無(wú)效初級(jí)(primary)集成適配器(integrated adapter)、次級(jí)(secondary)集成適配器、這兩者,使能或無(wú)效軟盤(pán)控制器,配置串行口(無(wú)效、使能或自動(dòng)),選擇串行口配置的無(wú)效、使能和自動(dòng),選擇紅外口配置的無(wú)效、使能和自動(dòng),選擇紅外口或無(wú)線口的模式(IRDA或FIR),選擇紅外口的基本I/O地址,選擇并行口的配置以由系統(tǒng)BIOS或操作系統(tǒng)使能、無(wú)效或自動(dòng)配置路徑,選擇并行口的模式(其中,這些模式包括正常、雙向ECP或EPP模式),選擇調(diào)制解調(diào)器口的配置以由系統(tǒng)BIOS或操作系統(tǒng)來(lái)使能、無(wú)效或自動(dòng)配置該口,配置電源管理,配置電源管理模式(永遠(yuǎn)(AC與電池電源的電源管理)、僅用電池、無(wú)效(無(wú)電源管理)),允許保持功率且具有最佳系統(tǒng)性能的最大性能,允許以系統(tǒng)性能為等價(jià)的最節(jié)電的最大節(jié)電量,允許對(duì)不同電源管理特征(包括具有開(kāi)和關(guān)選項(xiàng)的靈敏CPU模式)的定制設(shè)定的定制,具有無(wú)效和預(yù)定時(shí)間段的待機(jī)暫停(standby time out),具有無(wú)效和預(yù)定時(shí)間段的掛起暫停(suspend timeout),磁盤(pán)保存的暫?;騌AM保存的暫停,重新開(kāi)始;重新開(kāi)始調(diào)制解調(diào)器,使能或無(wú)效響鈴的鳴響,重新開(kāi)始日期,設(shè)定重新開(kāi)始時(shí)間的設(shè)定時(shí)間,具有使能或無(wú)效特征的電池不足暫停,無(wú)效計(jì)時(shí)器,具有通過(guò)設(shè)定警報(bào)時(shí)間和警報(bào)日期的使能或無(wú)效的使能、無(wú)效、重新開(kāi)始發(fā)警報(bào),配置以固定時(shí)間量無(wú)效的暫停功能,待機(jī)暫停,5伏掛起暫停,伏掛起暫停,硬盤(pán)暫停,視頻暫停,語(yǔ)言,選擇初級(jí)主IDE(primary IDE master)、初級(jí)從IDE(primary IDEslave)、次級(jí)主IDE(secondary IDE master)、次級(jí)從IDE(secondary IDE slave)存儲(chǔ)的所有東西都是找到的東西,選擇插入式插頭操作系統(tǒng)(包括是和否),復(fù)位配置數(shù)據(jù)(包括是和否選項(xiàng)),選擇速度快且兼容的系統(tǒng)來(lái)設(shè)定存儲(chǔ)高速緩沖存儲(chǔ)器的速度,選擇糾錯(cuò)控制(ECC)配置,設(shè)定存儲(chǔ)器ECC狀態(tài)(包括ECC或非ECC),選擇資源配置存儲(chǔ)器保留來(lái)保留專用存儲(chǔ)器塊,保留專用IOQ的IOQ,選擇鍵盤(pán)配置(包括NUM鎖)以設(shè)定通電狀態(tài),NUM鎖有效或無(wú)效,選擇鍵盤(pán)速率來(lái)選擇鍵盤(pán)重復(fù)率(每秒),鍵盤(pán)延遲在鍵盤(pán)重復(fù)前選擇延遲,選擇視頻配置選項(xiàng)板(palette)探測(cè)(snooping)以使能或無(wú)效,DMI事件登錄(包括事件登錄容量、事件登錄可見(jiàn)性、DMI事件登錄數(shù)據(jù)、清除DMI事件登錄、事件登錄使能或無(wú)效、把DMI數(shù)據(jù)標(biāo)為讀),選擇設(shè)置密碼,恢復(fù)功耗以恢復(fù)發(fā)生功耗前的最后狀態(tài),保持?jǐn)嚅_(kāi)(stay off)來(lái)保持?jǐn)嚯娭钡桨聪码娫窗粹o,上電來(lái)恢復(fù)系統(tǒng)的電力,快速引導(dǎo)模式使能或無(wú)效以在引導(dǎo)時(shí)跳開(kāi)某些測(cè)試。
在本發(fā)明的另一個(gè)實(shí)施例中,一并消除了對(duì)與特定外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS ROM的需要。參考圖9,如對(duì)先前的實(shí)施例所述,整個(gè)系統(tǒng)200包括主機(jī)102、系統(tǒng)BIOS 104、系統(tǒng)RAM 106、系統(tǒng)ROM 108,主橋路112和外設(shè)總線110。系統(tǒng)200還包括具有海量存儲(chǔ)裝置204的海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件202。在本實(shí)施例中,把與器件202有關(guān)的所有擴(kuò)充BIOS存儲(chǔ)在海量存儲(chǔ)裝置204內(nèi)。如以上對(duì)其它實(shí)施例所述,器件202可采用硬盤(pán)驅(qū)動(dòng)器、小型光盤(pán)唱機(jī)或如何其它形式的海量存儲(chǔ)裝置的形式。
海量存儲(chǔ)裝置器件202還包括存儲(chǔ)緩沖器206,該緩沖器用于存儲(chǔ)來(lái)往于海量存儲(chǔ)裝置204所傳遞的數(shù)據(jù)輸入和輸出。如此構(gòu)成存儲(chǔ)緩沖器206,從而它對(duì)于主系統(tǒng)就象它是在系統(tǒng)啟動(dòng)期間安裝在器件202上的一擴(kuò)充ROM。依據(jù)本發(fā)明,器件202還包括智能啟動(dòng)布局208。啟動(dòng)布局208偵測(cè)系統(tǒng)何時(shí)接通,響應(yīng)于系統(tǒng)布局208的啟動(dòng),使海量存儲(chǔ)裝置器件202快速地接通并把擴(kuò)充BIOS的至少第一部分裝入存儲(chǔ)緩沖器206。布局208構(gòu)成足夠快速地把此擴(kuò)充BIOS的第一部分裝入存儲(chǔ)緩沖器206,從而在POST檢查器件202而查看它是否需要任何擴(kuò)充BIOS。此擴(kuò)充BIOS的第一部分類似于用于上述第一實(shí)施例的擴(kuò)充BIOS的第一部分120。
參考圖10,本實(shí)施例以與圖7的流程圖所示實(shí)施例的操作所述大致相同的方式操作。如圖10所示,第一塊146和148與以上所述的相同。然而,在本實(shí)施例中,在POST碼使能擴(kuò)充ROM解碼后,以塊210來(lái)替換圖7的塊150,在塊210中,器件202把其內(nèi)部存儲(chǔ)緩沖器206作為擴(kuò)充BIOS映射到在POST碼提供給器件的配置空間的地址出開(kāi)始的系統(tǒng)存儲(chǔ)器中。以與以上對(duì)圖7詳細(xì)描述的相同的方式,把偽造數(shù)據(jù)映射到器件202的配置空間所要求的額外系統(tǒng)存儲(chǔ)空間。器件202建立其內(nèi)部地址解碼器,從而即使在器件202中沒(méi)有ROM時(shí),也可對(duì)其配置空間所請(qǐng)求的整個(gè)存儲(chǔ)器地址范圍進(jìn)行解碼。
如對(duì)先前的實(shí)施例所述,POST碼通過(guò)讀取擴(kuò)充BIOS映射到的存儲(chǔ)器位置而通讀擴(kuò)充BIOS,從而搜索適當(dāng)?shù)臄U(kuò)充BIOS代碼映象(塊152)。如果未找到適當(dāng)?shù)拇a映象,則順序返回塊56,以查看是否存在待配置的附加器件。然而,如果找到適當(dāng)?shù)拇a映象,則順序移至塊212,其中POST碼確定把擴(kuò)充BIOS碼從器件202的存儲(chǔ)緩沖器206拷貝到主系統(tǒng)RAM 106內(nèi)的存儲(chǔ)位置。然后,如塊214所示,POST碼把代碼映象從器件202的存儲(chǔ)緩沖器206拷貝到系統(tǒng)RAM 106。此拷貝包括擴(kuò)充BIOS的第一部分以及以上詳細(xì)描述的偽造數(shù)據(jù)。如塊160所示,POST碼調(diào)用包含在現(xiàn)在位于系統(tǒng)RAM 106中的擴(kuò)充BIOS第一部分內(nèi)的初始化代碼,并運(yùn)行初始化代碼。本實(shí)施例的操作的其余部分與以上對(duì)圖7所述的相同。
或者,在本實(shí)施例的另一個(gè)樣式中,可把存儲(chǔ)緩沖器206映射到主系統(tǒng)的存儲(chǔ)器作為用于整個(gè)擴(kuò)充BIOS映象的擴(kuò)充BIOS,從而不需要把擴(kuò)充BIOS分成第一和第二部分。參考圖11的流程圖,將描述此途徑。塊54、56、146和148與以上對(duì)圖10所述的實(shí)施例保持相同。然而,在塊216中,器件202把其存儲(chǔ)緩沖器206作為用于整個(gè)擴(kuò)充BIOS映象的擴(kuò)充BIOS映射到系統(tǒng)存儲(chǔ)器中,該系統(tǒng)存儲(chǔ)器在POST碼提供給器件202的配置空間的地址處開(kāi)始。器件202把來(lái)自其海量存儲(chǔ)器的擴(kuò)充BIOS讀入其存儲(chǔ)緩沖器,并把此映象映射到系統(tǒng)存儲(chǔ)器中。如果提供多個(gè)映象,則還可把這些映象映射到系統(tǒng)存儲(chǔ)器中。器件建立它自己的內(nèi)部解碼器,從而即使在器件上沒(méi)有ROM時(shí)也可對(duì)整個(gè)存儲(chǔ)范圍進(jìn)行解碼。塊152、154和212也與以上對(duì)圖10所述的相同。然而,在塊218中,POST碼把適當(dāng)?shù)臄U(kuò)充BIOS映象(包含從海量存儲(chǔ)裝置204讀出的整個(gè)擴(kuò)充BIOS)從器件202的存儲(chǔ)緩沖器206拷貝到系統(tǒng)RAM 106中。從該處開(kāi)始,操作以與如圖4流程圖所示對(duì)已有技術(shù)的系統(tǒng)所述就象已裝載來(lái)自器件上的ROM的擴(kuò)充BIOS的相同方式通過(guò)塊76、78、80和82繼續(xù)進(jìn)行。
再參考圖9,另一個(gè)實(shí)施例提供了一并消除對(duì)不同于海量存儲(chǔ)裝置器件的特定外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS ROM的需要的布局。在本實(shí)施例中,系統(tǒng)200包括外設(shè)計(jì)算機(jī)擴(kuò)充卡或器件220,該擴(kuò)充卡或器件220需要把有關(guān)的擴(kuò)充BIOS裝入主機(jī)以便初始化和/或操作擴(kuò)充卡220。如以上對(duì)器件220所述的相同方式,與擴(kuò)充卡220有關(guān)的擴(kuò)充BIOS存儲(chǔ)在器件202的海量存儲(chǔ)裝置204中。除了存儲(chǔ)在海量存儲(chǔ)裝置204中的初始化代碼包括用于擴(kuò)充卡220的初始化和運(yùn)行期代碼以及用于器件202的初始化代碼和運(yùn)行期代碼以外,本實(shí)施例的操作與所述的上一實(shí)施例相同。
本發(fā)明的一個(gè)優(yōu)點(diǎn)是可容易地對(duì)海量存儲(chǔ)裝置所存儲(chǔ)的擴(kuò)充BIOS的部分進(jìn)行升級(jí)。在海量存儲(chǔ)裝置為硬盤(pán)驅(qū)動(dòng)器的情況下,可把擴(kuò)充BIOS的部分存儲(chǔ)在海量存儲(chǔ)裝置中用戶不可訪問(wèn)的那部分中。可使用各種方法而在硬驅(qū)的正常操作期間保護(hù)這部分區(qū)不被訪問(wèn)。在此情況下,可提供一種應(yīng)用程序,它使得在想要更新或修正存儲(chǔ)在硬驅(qū)上的這部分?jǐn)U充BIOS時(shí)保護(hù)硬驅(qū)的這部分被訪問(wèn)。上述實(shí)施例都能利用這個(gè)能力來(lái)更新和修訂存儲(chǔ)在系統(tǒng)的海量存儲(chǔ)裝置外設(shè)期間的海量存儲(chǔ)裝置中的擴(kuò)充BIOS的這部分。
把擴(kuò)充BIOS的至少一部分存儲(chǔ)在海量存儲(chǔ)裝置上的這一通用途徑還允許對(duì)不同的情況下不同地配置主系統(tǒng)。此途徑的一個(gè)例子是在把系統(tǒng)用于運(yùn)行特定游戲或應(yīng)用程序時(shí),這些運(yùn)行或應(yīng)用程序可在以不同于系統(tǒng)正常操作期間的方式配置系統(tǒng)時(shí)起到更好的作用。在此情況下,海量存儲(chǔ)裝置器件可以是小型光盤(pán)唱機(jī),可把游戲或應(yīng)用程序設(shè)置在小型光盤(pán)上。依據(jù)使用上述的哪一個(gè)途徑,小型光盤(pán)本身將包含擴(kuò)充BIOS的至少一部分(如果不是全部)。此小型光盤(pán)上的擴(kuò)充BIOS將包括初始化和運(yùn)行時(shí)代碼,這些代碼將優(yōu)化所運(yùn)行的特定游戲或應(yīng)用程序的系統(tǒng)的操作。
通過(guò)把擴(kuò)充BIOS和/或系統(tǒng)BIOS的一部分存儲(chǔ)在海量存儲(chǔ)裝置外設(shè)器件的海量存儲(chǔ)裝置上,可提供大得多的擴(kuò)充和/或系統(tǒng)BIOS,而不增加外設(shè)器件和/或系統(tǒng)的成本。如上所述,存儲(chǔ)系統(tǒng)啟動(dòng)期間所需的信息的這個(gè)一般概念可包括在系統(tǒng)啟動(dòng)期間增強(qiáng)系統(tǒng)功能的各種操作數(shù)據(jù)、文本或其它信息。它的一個(gè)特例是在系統(tǒng)啟動(dòng)期間提供更多精細(xì)的圖形顯示而無(wú)需在系統(tǒng)內(nèi)的某處包括用來(lái)包含所需圖形信息的大量ROM的能力。
參考圖12A,將描述依據(jù)本發(fā)明的計(jì)算機(jī)系統(tǒng)的操作,該操作包括在系統(tǒng)啟動(dòng)期間把特定圖形信息提供給系統(tǒng)的能力。如塊222和224所示,計(jì)算機(jī)接通,與系統(tǒng)有關(guān)的BIOS的初始化代碼對(duì)系統(tǒng)采取控制。此BIOS可以是以上所述的各種BIOS布局中的任一種。在此處,如判斷塊226所示,BIOS的初始化代碼進(jìn)行檢查以查看計(jì)算機(jī)系統(tǒng)是否包含視頻圖形存儲(chǔ)器。如果不存在視頻圖形存儲(chǔ)器,則如塊234所示,BIOS的初始化代碼開(kāi)始對(duì)系統(tǒng)進(jìn)行配置。然而,如果存在視頻圖形存儲(chǔ)器,則分別如塊228和230所示,把當(dāng)前視頻存儲(chǔ)器平面設(shè)定為有效,并把當(dāng)前視頻存儲(chǔ)器平面映象從海量存儲(chǔ)裝置器件直接讀入視頻存儲(chǔ)器。然后,如塊232所示,BIOS的初始化代碼進(jìn)行檢查以查看是否存在待讀取的另一個(gè)視頻存儲(chǔ)器平面。如果是這樣,則重復(fù)塊228和230,直到不再有待讀取的視頻存儲(chǔ)器平面。
現(xiàn)在參考圖12B,可使用與以上對(duì)圖形例子所述的相同基本途徑來(lái)給系統(tǒng)提供其它操作數(shù)據(jù)。此操作數(shù)據(jù)可包括系統(tǒng)配置信息、數(shù)據(jù)、文本、密碼或可在系統(tǒng)啟動(dòng)期間提供某些功能的任何其它信息,但不限于此。如以上對(duì)圖12A所述,如塊222和224所示,計(jì)算機(jī)接通,與系統(tǒng)有關(guān)的BIOS的初始化代碼對(duì)系統(tǒng)采取控制。在此處,如判斷塊236所示,BIOS的初始化代碼進(jìn)行檢查以查看海量存儲(chǔ)裝置期間是否包含待裝入系統(tǒng)的操作數(shù)據(jù)。如果不存在操作數(shù)據(jù),則如塊234所示,BIOS的初始化代碼開(kāi)始對(duì)系統(tǒng)進(jìn)行配置。然而,如果存在操作數(shù)據(jù),則分別如塊238和240所示,初始化代碼確定裝入操作數(shù)據(jù)的存儲(chǔ)器位置,把操作數(shù)據(jù)從海量存儲(chǔ)裝置器件直接讀入系統(tǒng)RAM。然后,如判斷塊242所示,BIOS的初始化代碼進(jìn)行檢查以查看是否存在待讀取的任何操作數(shù)據(jù)。如果是這樣,則重復(fù)塊238和240直到不再有待讀取的操作數(shù)據(jù)。
如上所述,通過(guò)使用對(duì)圖12A和12B所述的途徑,可在系統(tǒng)的確定期間把操作數(shù)據(jù)或圖形提供給系統(tǒng),而無(wú)需用于此信息的附加ROM存儲(chǔ)空間。這允許在系統(tǒng)啟動(dòng)期間提供多得多的信息,而不增加系統(tǒng)或外設(shè)的成本。此途徑還允許消除ROM或諸如目前用于此目的的電池備用存儲(chǔ)器等其它形式的存儲(chǔ)裝置的成本,從而減少系統(tǒng)成本。
雖然把外設(shè)總線描述成PCI總線,但這不是必需的。如上所述,可等效地應(yīng)用需要把擴(kuò)充BIOS位置地址(而不是固定的硬連線擴(kuò)充BIOS位置地址)映射到系統(tǒng)存儲(chǔ)器中的任何外設(shè)總線。此外,應(yīng)理解,在本實(shí)施例中,完全免除了特定外設(shè)器件上的擴(kuò)充BIOS ROM,特定外設(shè)器件還可包括用于其它目的的ROM,這仍在本發(fā)明的范圍內(nèi)。
雖然僅描述了提供把BIOS或操作數(shù)據(jù)的至少一部分存儲(chǔ)在海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置中的這一布局的少量特例,應(yīng)理解本發(fā)明可采用各種其它特殊形式。例如,在把幾個(gè)外設(shè)器件連到主機(jī)的系統(tǒng)中,可把用于所有器件的擴(kuò)充BIOS存儲(chǔ)在海量存儲(chǔ)裝置器件上。在本例中,還可把用于海量存儲(chǔ)裝置器件的擴(kuò)充BIOS的第一部分諸如如上所述的存儲(chǔ)緩沖器內(nèi),或者可把它們存儲(chǔ)在如上所述的小的擴(kuò)充BIOS ROM中??砂延糜诤A看鎯?chǔ)裝置的擴(kuò)充BIOS的第二部分與用于所有其它外設(shè)器件的擴(kuò)充BIOS一起存儲(chǔ)在海量存儲(chǔ)裝置器件的海量存儲(chǔ)裝置中,并可使用用于海量存儲(chǔ)裝置器件的擴(kuò)充BIOS的第一部分對(duì)它們進(jìn)行訪問(wèn)。因此,認(rèn)為這些例子是示意性的而非限制性的,本發(fā)明不限于這里給出的細(xì)節(jié),而可在所附權(quán)利要求書(shū)至少的范圍內(nèi)對(duì)這些細(xì)節(jié)進(jìn)行修改。
權(quán)利要求
1.一種使用計(jì)算機(jī)系統(tǒng)的方法,所述計(jì)算機(jī)系統(tǒng)包括具有系統(tǒng)RAM的主機(jī)以及具有連到主機(jī)的海量存儲(chǔ)裝置的海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件,主機(jī)使用BIOS來(lái)控制其在計(jì)算機(jī)系統(tǒng)的啟動(dòng)期間的操作,其特征在于所述方法包括以下步驟在計(jì)算機(jī)系統(tǒng)啟動(dòng)期間對(duì)主機(jī)提供訪問(wèn),用以包含BIOS的至少一部分;把配置數(shù)據(jù)存儲(chǔ)在海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置內(nèi);在系統(tǒng)啟動(dòng)期間,使主機(jī)訪問(wèn)并獲得BIOS的所述部分;以及通過(guò)使用BIOS的所述部分,使主機(jī)來(lái)(i)訪問(wèn)海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置,(ii)獲得位于海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置內(nèi)的配置數(shù)據(jù),以及(iii)把此配置數(shù)據(jù)存儲(chǔ)在系統(tǒng)RAM內(nèi)。
2.如權(quán)利要求1所述的方法,其特征在于所述配置數(shù)據(jù)為日期數(shù)據(jù)。
3.如權(quán)利要求1所述的方法,其特征在于所述配置數(shù)據(jù)為時(shí)間數(shù)據(jù)。
4.如權(quán)利要求1所述的方法,其特征在于所述配置數(shù)據(jù)為有關(guān)來(lái)往于海量存儲(chǔ)器件進(jìn)行讀或?qū)懙臄?shù)據(jù)。
5.如權(quán)利要求1所述的方法,其特征在于所述配置數(shù)據(jù)為有關(guān)配置數(shù)據(jù)的類型的數(shù)據(jù)。
6.如權(quán)利要求1所述的方法,其特征在于所述配置數(shù)據(jù)為有關(guān)主機(jī)數(shù)據(jù)的數(shù)據(jù)。
7.如權(quán)利要求1所述的方法,其特征在于所述配置數(shù)據(jù)為有關(guān)電源管理的數(shù)據(jù)。
8.如權(quán)利要求1所述的方法,其特征在于所述配置數(shù)據(jù)為有關(guān)鍵盤(pán)數(shù)據(jù)的數(shù)據(jù)。
9.如權(quán)利要求1所述的方法,其特征在于所述配置數(shù)據(jù)為有關(guān)啟動(dòng)或初始化的數(shù)據(jù)。
10.一種計(jì)算機(jī)系統(tǒng),包括具有系統(tǒng)RAM的主機(jī)以及具有連到主機(jī)的海量存儲(chǔ)裝置的海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件,主機(jī)使用BIOS來(lái)控制其在計(jì)算機(jī)系統(tǒng)的啟動(dòng)期間的操作,其特征在于包括可在計(jì)算機(jī)系統(tǒng)啟動(dòng)期間訪問(wèn)主機(jī)的存儲(chǔ)器,用以包含BIOS的至少一部分;具有海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的配置數(shù)據(jù)的海量存儲(chǔ)器;在系統(tǒng)啟動(dòng)期間,可操作主機(jī)訪問(wèn)并獲得BIOS的所述部分;以及通過(guò)使用BIOS的所述部分,可操作主機(jī)來(lái)(i)訪問(wèn)海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置,(ii)獲得位于海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置內(nèi)的配置數(shù)據(jù),以及(iii)把此配置數(shù)據(jù)存儲(chǔ)在系統(tǒng)RAM內(nèi)。
11.如權(quán)利要求10所述的方法,其特征在于所述配置數(shù)據(jù)為日期數(shù)據(jù)。
12.如權(quán)利要求10所述的方法,其特征在于所述配置數(shù)據(jù)為時(shí)間數(shù)據(jù)。
13.如權(quán)利要求10所述的方法,其特征在于所述配置數(shù)據(jù)為有關(guān)來(lái)往于海量存儲(chǔ)器件進(jìn)行讀或?qū)懙臄?shù)據(jù)。
14.如權(quán)利要求10所述的方法,其特征在于所述配置數(shù)據(jù)為有關(guān)配置數(shù)據(jù)的類型的數(shù)據(jù)。
15.如權(quán)利要求10所述的方法,其特征在于所述配置數(shù)據(jù)為有關(guān)主機(jī)數(shù)據(jù)的數(shù)據(jù)。
16.如權(quán)利要求10所述的方法,其特征在于所述配置數(shù)據(jù)為有關(guān)電源管理的數(shù)據(jù)。
17.如權(quán)利要求10所述的方法,其特征在于所述配置數(shù)據(jù)為有關(guān)鍵盤(pán)數(shù)據(jù)的數(shù)據(jù)。
18.如權(quán)利要求10所述的方法,其特征在于所述配置數(shù)據(jù)為有關(guān)啟動(dòng)或初始化的數(shù)據(jù)。
全文摘要
這里揭示了一種用于操作計(jì)算機(jī)系統(tǒng)(包括具有系統(tǒng)RAM的主機(jī))的布局和方法。主機(jī)使用BIOS來(lái)控制系統(tǒng)的操作。系統(tǒng)的操作需要主機(jī)獲得BIOS驅(qū)動(dòng)程序并把BIOS存儲(chǔ)在系統(tǒng)RAM內(nèi)。本發(fā)明的布局和方法允許把BIOS的至少一部分存儲(chǔ)在海量存儲(chǔ)裝置外設(shè)計(jì)算機(jī)器件的海量存儲(chǔ)裝置內(nèi),而不是存儲(chǔ)在ROM內(nèi)。BIOS可以是與特定外設(shè)計(jì)算機(jī)器件有關(guān)的擴(kuò)充BIOS或與主機(jī)有關(guān)的系統(tǒng)BIOS。
文檔編號(hào)G06F9/445GK1266230SQ00103780
公開(kāi)日2000年9月13日 申請(qǐng)日期2000年3月9日 優(yōu)先權(quán)日1999年3月9日
發(fā)明者T·D·哈默, C·H·布倫納 申請(qǐng)人:德克薩斯儀器股份有限公司