两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

作為用于執(zhí)行引導(dǎo)碼的ram的處理器緩存存儲(chǔ)器的制作方法

文檔序號(hào):6422419閱讀:174來(lái)源:國(guó)知局
專利名稱:作為用于執(zhí)行引導(dǎo)碼的ram的處理器緩存存儲(chǔ)器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算系統(tǒng)。更具體地,本發(fā)明涉及執(zhí)行引導(dǎo)碼。
背景技術(shù)
加載操作系統(tǒng)通常需要引導(dǎo)或“初始程序裝入”碼。在歷史上,在永久性存儲(chǔ)器初始化前,這樣的碼至少部分在計(jì)算機(jī)系統(tǒng)上執(zhí)行,因此,必須寫(xiě)入以便在無(wú)記憶(memoryless)環(huán)境中工作。對(duì)當(dāng)今典型的計(jì)算平臺(tái)來(lái)講,早期的BIOS或固件通常在被稱為“無(wú)堆棧匯編(stackless assembly)”的模式中運(yùn)行,其中不具有能初始化調(diào)用堆棧的存儲(chǔ)器庫(kù)。不幸地是,這種無(wú)堆棧匯編語(yǔ)言啟動(dòng)碼是非移植性的并且相對(duì)于維護(hù)和特性增強(qiáng)非常脆弱。同樣,由于有限可用的狀態(tài)和簡(jiǎn)陋的編程環(huán)境,難以增加特征或?qū)崿F(xiàn)有用的算法,比如驗(yàn)證固件組件的密碼計(jì)算。
當(dāng)現(xiàn)代的64位處理器(包括Itanium處理器系列)用在計(jì)算系統(tǒng)中時(shí),與復(fù)雜的和特征性的不良引導(dǎo)碼相關(guān)聯(lián)的問(wèn)題特別尖銳。需要用匯編語(yǔ)言手工編制的代碼量極大。同樣,在如可用的可擴(kuò)展固件接口(例如基于EFI的Tiano固件)那樣的現(xiàn)代BIOS體系結(jié)構(gòu)的上下文(context)中,該早期代碼必須完成復(fù)雜的活動(dòng),所述活動(dòng)比如解析固件文件系統(tǒng)元數(shù)據(jù),以找出插件環(huán)境初始化模塊(PEIMs)以及為合法模塊調(diào)度(legal module dispatch)等等目的來(lái)評(píng)價(jià)相關(guān)性。這些后面的任務(wù)在傳統(tǒng)BIOS無(wú)堆棧環(huán)境中從來(lái)就不是必需的,并且難以在僅有寄存器的環(huán)境中實(shí)現(xiàn)。


從下述給出的詳細(xì)描述以及本發(fā)明的實(shí)施方案的附圖,將更全面地理解本發(fā)明,然而,上述內(nèi)容不應(yīng)當(dāng)被用來(lái)將本發(fā)明限制到所述的具體實(shí)施方案,而僅是用于說(shuō)明和理解。
圖1示意性地圖示多處理器系統(tǒng)。
圖2圖示在引導(dǎo)多處理器期間,存儲(chǔ)器的遷移(migration);圖3圖示作為RAM的緩存(CAR)軟件和處理器抽象層(PAL)間的幾種可能的交互作用;以及圖4圖示在作為RAM的緩存(CAR)軟件和處理器抽象層(PAL)之間的交互作用的一個(gè)實(shí)施方案,所述實(shí)施方案用于Itanium系列處理器(IPF)。
具體實(shí)施例方式
如參考圖1所看到的,用于引導(dǎo)計(jì)算機(jī)的系統(tǒng)10包括多處理器12、13、14和15。這些處理器適合于執(zhí)行編程代碼(包括基本輸入/輸出系統(tǒng)(BIOS)指令、操作系統(tǒng)指令和應(yīng)用碼),并且這些處理器通過(guò)基板管理控制器22來(lái)互連和部分控制。處理器進(jìn)一步連接到高速局部緩存存儲(chǔ)器(cache memory)16和稍微較慢的主存儲(chǔ)器18。系統(tǒng)BIOS從所連接的可更新固件存儲(chǔ)器20加載。
鏈路連接可以是通用信息輸入/輸出線路,常規(guī)的可尋址總線,或?qū)S么谢虿⑿袛?shù)據(jù)跡線(trace)?;骞芾砜刂破?2通常管理系統(tǒng)管理軟件和平臺(tái)管理硬件之間的接口,提供自動(dòng)監(jiān)視、事件記錄和恢復(fù)控制,以及用作系統(tǒng)管理軟件和互連平臺(tái)組件的被支持總線系統(tǒng)之間的網(wǎng)關(guān)?;骞芾砜刂破骺梢约傻骄哂胁煌芾硖卣鞯母鞣N計(jì)算平臺(tái)中,并且可以包括母板上的單一集成組件,或者用由多個(gè)離散控制器共同組成的分布式系統(tǒng)來(lái)表征。例如,企業(yè)級(jí)服務(wù)器中的復(fù)雜、多板組可以使用多管理控制器,用于監(jiān)視不同子系統(tǒng),諸如冗余電源監(jiān)視和控制、RAID、擴(kuò)展I/O等等。在操作中,基板管理控制器22起政策代理(policy agency)的功能,即決定向哪一處理器施加通電復(fù)位、何時(shí)斷言INIT和NMI、何時(shí)啟動(dòng)或終止引導(dǎo)過(guò)程等等。
系統(tǒng)10的例子包括但不局限于或限制到計(jì)算機(jī)(例如臺(tái)式機(jī)、膝上型機(jī)、服務(wù)器、刀片服務(wù)器、工作站、個(gè)人數(shù)字助理等等),或與之相關(guān)聯(lián)的任何外圍設(shè)備;通信裝置(例如電話手機(jī)(telephone handset)、尋呼機(jī)等等);電視機(jī)頂盒等等。“連接”或“鏈路”寬泛地定義為邏輯或物理通信路徑,諸如例如電線、光纖、纜、總線跡線(bus trace),或甚至使用紅外、射頻(RF)的無(wú)線信道,或任何其他無(wú)線信令機(jī)制。另外,術(shù)語(yǔ)“信息”定義為數(shù)據(jù)、地址和/或控制中的一位(bit)或多個(gè)位?!按a”包括在被執(zhí)行時(shí)實(shí)現(xiàn)某些功能的軟件或固件。代碼的例子包括應(yīng)用、小應(yīng)用程序(applet)、引導(dǎo)碼或任何其他指令系列。
如圖2所看到的關(guān)于表示在多處理器系統(tǒng)中地址遷移的動(dòng)畫(huà)30,設(shè)計(jì)有“X”路組相聯(lián)性(set associativity)的“N”字節(jié)大小的統(tǒng)一高速緩沖器16可以被形象化為由“X”列的陣列組成,每個(gè)陣列具有“N/X”字節(jié)大小。為從緩存存儲(chǔ)器引導(dǎo)這種計(jì)算機(jī),與緩存對(duì)齊的數(shù)據(jù)塊被選擇為N/X。緩存的至少一個(gè)緩存RAM列預(yù)先加載為RAM系統(tǒng),使用標(biāo)記(tag)來(lái)防止無(wú)意識(shí)緩存線驅(qū)逐(eviction)。然后引導(dǎo)碼被執(zhí)行,其中預(yù)先加載的緩存RAM分別對(duì)正在執(zhí)行的引導(dǎo)碼流而言表現(xiàn)為存儲(chǔ)器庫(kù)32、33、34和35。
這樣作為RAM的緩存(CAR)軟件可以選擇數(shù)據(jù)地址范圍從而使其不與任何預(yù)定的平臺(tái)地址范圍沖突。使用轉(zhuǎn)交寄存器(hand-offregister)進(jìn)行數(shù)據(jù)塊對(duì)齊以便傳送實(shí)現(xiàn)的緩存大小N和組相聯(lián)性X??商鎿Q地,可以使用過(guò)程調(diào)用來(lái)進(jìn)行數(shù)據(jù)塊對(duì)齊以確定實(shí)現(xiàn)的緩存大小N和組相聯(lián)性。
在某些實(shí)施方案中,為將這種高性能處理器的緩存存儲(chǔ)器由早期引導(dǎo)碼來(lái)用作RAM,緩存RAM對(duì)正在執(zhí)行的碼流而言必須看起來(lái)為存儲(chǔ)器庫(kù),以便所有數(shù)據(jù)存儲(chǔ)器的訪問(wèn)命中并且不產(chǎn)生緩沖驅(qū)逐。“無(wú)驅(qū)逐”是重要的,因?yàn)轵?qū)逐必需在初始化存儲(chǔ)控制器和系統(tǒng)結(jié)構(gòu)前,回寫(xiě)到主存儲(chǔ)器。在最佳的情況下,上述動(dòng)作將不具有副作用,在最糟的情況下,系統(tǒng)會(huì)鎖定或產(chǎn)生故障情況,諸如機(jī)器校驗(yàn)中斷。因此,在CAR模式期間,來(lái)自處理器的支持機(jī)制必須是數(shù)據(jù)地址空間沒(méi)有前端總線(FSB)周期。
在一些實(shí)施方案中,諸如參考圖3所示,CAR軟件能使用由處理器抽象層(PAL)提供的特定方法以確保不啟動(dòng)FSB周期,并且使用轉(zhuǎn)交寄存器來(lái)進(jìn)行數(shù)據(jù)塊對(duì)齊以傳送實(shí)現(xiàn)的緩存大小N和組相聯(lián)性X。該P(yáng)AL碼層是由處理器提供商生成的,并且包含處理器初始化碼和抽象處理器硬件的調(diào)用接口,所述處理器硬件包括可用的處理器緩存。PAL軟件可以用適當(dāng)?shù)臉?biāo)記預(yù)先加載一個(gè)或兩個(gè)(如果需要可以更多)緩存RAM列。只要這樣做,將不存在任何無(wú)意識(shí)緩存線驅(qū)逐,并且因此沒(méi)有前端總線周期,只要CAR軟件不超出最大大小的限制。根據(jù)特定處理器實(shí)現(xiàn)方式,基于PAL的方法可以選擇針對(duì)給定的最大CAR碼大小不會(huì)被驅(qū)逐的緩存區(qū)(列),并且因此使我們能夠運(yùn)行被緩存的碼流,所述基于PAL的方法將針對(duì)數(shù)據(jù)使用的標(biāo)記預(yù)先加載到所述緩存。
基于PAL的方法可以涉及來(lái)自處理器的一些硬件支持,或它們可以直接用PAL碼來(lái)實(shí)現(xiàn)。在一些實(shí)施方案中,能使用新的PAL調(diào)用和對(duì)PAL碼的轉(zhuǎn)交狀態(tài)增強(qiáng)。轉(zhuǎn)交狀態(tài)增強(qiáng)增加新的移交寄存器,該移交寄存器將緩存的實(shí)現(xiàn)拓?fù)浣Y(jié)構(gòu)(如上所述的N和X參數(shù))傳送到CAR設(shè)置碼,所述CAR設(shè)置碼為與PAL碼接口的固件碼的一部分??商鎿Q的,PAL碼可以支持用于數(shù)據(jù)塊對(duì)齊的過(guò)程調(diào)用,所述過(guò)程調(diào)用直接提供實(shí)現(xiàn)緩存大小N(implementation cache size N)和組相聯(lián)性(set associativity),而不是修改移交狀態(tài)。在該實(shí)施方案中,CAR設(shè)置碼使用該信息來(lái)選擇CAR數(shù)據(jù)塊位置和對(duì)齊。
在某些實(shí)施方案中,使用新的PAL調(diào)用是許多方式之一,在該許多方式中,PAL層被指示為用適當(dāng)?shù)臉?biāo)記位來(lái)選擇和加載具有所需大小的緩存區(qū)。對(duì)該新的PAL調(diào)用的輸入是CAR數(shù)據(jù)的大小和地址范圍以及CAR碼的最大大小(size)。使用基于PAL的方法還允許將CAR設(shè)置碼與對(duì)處理器緩存體系結(jié)構(gòu)的任何未來(lái)的開(kāi)發(fā)分開(kāi),因?yàn)榛赑AL的方法抽象處理器緩存的所有實(shí)現(xiàn)細(xì)節(jié)。
使用CAR還允許支持并行執(zhí)行模式中的多處理器,同時(shí)使用MESI(修改/排他/共享/無(wú)效)緩存一致性協(xié)議以及影響該CAR性能所需的計(jì)算模型。在所有處理器同時(shí)擺脫復(fù)位,以及全SMP(對(duì)稱多處理)拓?fù)浣Y(jié)構(gòu)必須在軟件中可見(jiàn)的情況下,這特別有用?,F(xiàn)在,在SMP中,如果所有處理代理訪問(wèn)相同的緩存線,MESI協(xié)議將嘗試維護(hù)緩存一致性。MESI與較新的協(xié)議——諸如MOESI(修改/自有/排他/共享/無(wú)效)不同,因?yàn)楹笳呔哂袑⒕彺婢€從一個(gè)處理器傳送到另一個(gè)的能力。在MESI的情況下,回寫(xiě)總是在交替的另一(alternate)處理器中的線被更新前發(fā)生。
因此,CAR支持要求分區(qū)用于CAR數(shù)據(jù)區(qū)的地址范圍。具體地,如果每個(gè)處理器需要支持在該無(wú)驅(qū)逐模式中可用的256K CAR數(shù)據(jù)區(qū),并且在該局部SMP復(fù)合體中最多有四個(gè)處理器,那么CAR數(shù)據(jù)地址空間被分區(qū),以使每個(gè)處理器僅能看見(jiàn)其自己的256kb區(qū)域。換句話說(shuō),PAL/處理器提供的方法將唯一的標(biāo)記位填入每個(gè)處理器緩存中以至于它們每個(gè)分別在它們自己的256K區(qū)中操作。每個(gè)處理器具有的堆棧視圖將是唯一地址,其中地址加上256kb范圍將不會(huì)覆蓋3個(gè)對(duì)等處理器的其他范圍中的任何一個(gè)。因此,沒(méi)有機(jī)會(huì)更新屬于另一處理器數(shù)據(jù)空間中的任何數(shù)據(jù)記錄,這意味著盡管每個(gè)按其自己的步調(diào)(pace)執(zhí)行,不存在處理器間的同步問(wèn)題。對(duì)所有處理器來(lái)講,緩存包含在相同數(shù)據(jù)地址空間中未被修改的記錄,因此,不會(huì)產(chǎn)生任何問(wèn)題。
在部分參考圖3的流程圖50來(lái)說(shuō)明的一個(gè)典型實(shí)施方案中,CAR設(shè)置碼從PAL-A層接收有關(guān)CAR的大小和構(gòu)成(路數(shù))的信息,作為轉(zhuǎn)交狀態(tài)的一部分。通過(guò)將L2緩存的大小除以構(gòu)成緩存的路數(shù),可以計(jì)算用于數(shù)據(jù)的最小對(duì)齊規(guī)則。從平臺(tái)服務(wù)模塊還可以知道數(shù)據(jù)的最大大小和CAR碼的長(zhǎng)度。然后,激活PAL-A CAR服務(wù)調(diào)用PAL_CAR_INITIALIZE來(lái)允許PAL-A選擇和初始化作為RAM的緩存的區(qū)域,所述區(qū)域出CAR軟件作為數(shù)據(jù)區(qū)使用。引導(dǎo)碼暫時(shí)使用CAR模式,直到找到和初始化永久存儲(chǔ)器為止。在該階段后,將所有所需數(shù)據(jù)從CAR拷貝到實(shí)際存儲(chǔ)器并且退出CAR模式。為了退出CAR模式,執(zhí)行調(diào)用,以使輸入變量Data_Address、Data_Size和Code Size均設(shè)置成NULL(空值)。此時(shí),該調(diào)用將移除硬件工作區(qū)(workaround),從而當(dāng)退出CAR模式時(shí),處理器緩存被完全特征化。因此,在操作系統(tǒng)(OS)的控制下,本發(fā)明對(duì)正常處理器操作模式無(wú)有害影響。
更具體地,上述方法與Intel Itanium處理器系列(IPF)處理器一起工作,所述處理器可以被修改成在擴(kuò)展固件接口(EFI)的Tiano或類似Tiano的實(shí)現(xiàn)方式中使用作為RAM的緩存。從軟件的角度看,可用的作為RAM的緩存(CAR)將可用于下面三個(gè)目的。第一組塊(chunk)用于為局部堆棧寄存器提供64k的后備存儲(chǔ)器指針(BSP)。第二組塊用在配置用于C編譯器的128Kb的堆棧(作為數(shù)據(jù)堆棧指針的R12),以生成基于堆棧的激活幀數(shù)據(jù)應(yīng)用(usage)??蓪ぶ窞槿侄训木€性映射RAM的第三64KB組塊允許系統(tǒng)RAM的模塊配置。
在操作中,正在用作CAR的緩存部分必須能夠被配置和使用,從而從不替換/無(wú)效通過(guò)軟件寫(xiě)入它的數(shù)據(jù),直到由軟件清楚地指示它為止。換句話說(shuō),正用作CAR的緩存確保1.總是從緩存讀所有數(shù)據(jù)載入并且不生成前端總線(FSB)周期。
2.緩存數(shù)據(jù)讀故障會(huì)更新緩存。
3.緩存寫(xiě)命中(hit)總是更新緩存,盡管它會(huì)生成FSB周期。
4.緩存寫(xiě)故障會(huì)更新緩存,并且會(huì)訪問(wèn)存儲(chǔ)器以確保緩存寫(xiě)故障不會(huì)發(fā)生。
5.從不替換或無(wú)效(invalidate)緩存線,盡管會(huì)替換碼緩存線。如通過(guò)參考圖4的引導(dǎo)過(guò)程流程圖650所看見(jiàn)的,在典型的IPF體系結(jié)構(gòu)中,所有處理器將執(zhí)行固件碼直到該碼選擇自引導(dǎo)處理器(BSP)為止。因此,在當(dāng)所有處理器正在執(zhí)行固件碼時(shí)的那段時(shí)間期間,處理器間的CAR可能會(huì)變成不一致。不要求使所有處理器上的CAR保持一致??梢宰⒁獾剑ㄟ^(guò)適當(dāng)?shù)剡x擇用于每個(gè)處理器的不同CAR地址,固件碼可以選擇在非一致模式中工作。
必須配置和使用緩存和存儲(chǔ)器控制器,從而在存儲(chǔ)器初始化之前或期間,在存儲(chǔ)器接口上不產(chǎn)生不希望的存儲(chǔ)器周期。未初始化芯片組中的邊界狀態(tài)會(huì)導(dǎo)致來(lái)自FSB的存儲(chǔ)器周期,所述存儲(chǔ)器周期使存儲(chǔ)器接口掛起存儲(chǔ)器控制器或改變其狀態(tài),從而使其不能適當(dāng)?shù)毓ぷ?。啟?dòng)時(shí)緩存中的“垃圾”數(shù)據(jù)必須由早期PAL-A碼無(wú)效掉,并且不對(duì)芯片組存儲(chǔ)器接口產(chǎn)生存儲(chǔ)器周期。如果由于一些原因,在傳送前,PAL-A碼沒(méi)有無(wú)效緩存,那么它必須支持PAL-A層內(nèi)的PAL_CACHE_INIT調(diào)用。
在許多IPF處理器中,緩存寫(xiě)命中會(huì)產(chǎn)生前端總線周期。為避免生成FSB周期,在無(wú)效緩存后,使用CAR的軟件將用適當(dāng)?shù)腡AG值預(yù)加載所述緩存。PAL_A層不僅應(yīng)當(dāng)傳遞緩存信息位,而且還應(yīng)當(dāng)提供用必要的數(shù)據(jù)加載所述緩存的方法,從而完全避免FSB周期。這對(duì)于處于“反向監(jiān)聽(tīng)我(back-snoop-me)”狀態(tài)下的處理器來(lái)說(shuō)尤其重要,在該狀態(tài)中,從L1犧牲的緩存線被置于FSB,即使它存在于L2中并且本來(lái)應(yīng)該已經(jīng)被寫(xiě)回L2。該用于L1犧牲寫(xiě)回的不期望的FSB事務(wù)可以產(chǎn)生不正確的CAR操作。通過(guò)使用PAL調(diào)用來(lái)將L1緩存配置成有序的、一次一個(gè)訪問(wèn)的設(shè)計(jì)可以避免所述狀態(tài)。
為確保在系統(tǒng)存儲(chǔ)器初始化期間,作為臨時(shí)數(shù)據(jù)庫(kù)的處理器緩存的一致和可靠操作,初始化算法必須遵守下述要求和限制。固件必須允許該機(jī)制改變,并且當(dāng)它的確改變時(shí),能處理所有情況。執(zhí)行該初始化的固件通常是可單獨(dú)更新的模塊,如參考圖1所見(jiàn)。
PAL-A必須通過(guò)在將它傳遞到EFI碼(SALE_ENTRY)前無(wú)效該緩存中的早期的垃圾數(shù)據(jù),或者它必須支持無(wú)效緩存的方法,來(lái)初始化CAR軟件所需的L2緩存,從而CAR設(shè)置模塊能無(wú)效該緩存。PAL-A碼還必須向CAR碼模塊提供有關(guān)L2緩存大小的信息以及L2緩存的路數(shù)(相聯(lián)性),以允許CAR模塊選擇最佳CAR數(shù)據(jù)地址并且將其提供給PAL方法,從而使PAL可以將相應(yīng)的標(biāo)記信息載入該緩存。該操作可以通過(guò)當(dāng)在PAL-A轉(zhuǎn)交到SALE_ENTRY時(shí)將信息轉(zhuǎn)交到CAR碼,或通過(guò)支持過(guò)程調(diào)用來(lái)使得CAR碼能夠用針對(duì)CAR數(shù)據(jù)的正確標(biāo)記加載緩存來(lái)實(shí)現(xiàn)。
所有處理器離開(kāi)PAL_A來(lái)在系統(tǒng)上進(jìn)行恢復(fù)校驗(yàn)。該周期期間的碼流查找存儲(chǔ)器并且確定是否需要恢復(fù)PAL-B或系統(tǒng)軟件。如果不需要恢復(fù)動(dòng)作,那么所有處理器返回到PAL碼進(jìn)行進(jìn)一步測(cè)試和初始化。只要這是由PLA-B完成,所有處理器均返回到SALE_ENTRY進(jìn)行正常引導(dǎo)(boot)。在該碼轉(zhuǎn)變成PAL-B和返回期間,緩存不需要保持一致。換句話說(shuō),當(dāng)控制在PAL碼中時(shí),PAL碼擁有用于初始化和測(cè)試的緩存。Tiano調(diào)度碼總是從新開(kāi)始并且在每次它啟動(dòng)時(shí)構(gòu)造其自己的變量。
基于CAR的固件將多線程和多內(nèi)核封裝中的多邏輯CPUs視為單獨(dú)的處理器,以及它們被分配有自己的非重疊CAR數(shù)據(jù)區(qū)。在這樣的情況下,CPU封裝上的總CAR數(shù)據(jù)區(qū)需求是所有單個(gè)CAR數(shù)據(jù)區(qū)的大小的總和。還可以注意到這一需求很容易滿足,因?yàn)槎鄡?nèi)核CPUs通常占有較大的L2緩存。
基于CAR的軟件所需的所有數(shù)據(jù)必須僅駐留在為特定平臺(tái)所分配的分配連續(xù)CAR地址空間中。基于堆棧的數(shù)據(jù)、后備存儲(chǔ)器指針尋址區(qū)以及任何全局?jǐn)?shù)據(jù)區(qū)必須均符合該范例。該數(shù)據(jù)區(qū)地址的起始將具有相對(duì)于不同的處理器而不同的對(duì)齊限制。由于IPF處理器具有統(tǒng)一的緩存體系結(jié)構(gòu),總的基于CAR的軟件和按字節(jié)計(jì)的數(shù)據(jù)長(zhǎng)度必須不超出可用的總CAR緩存長(zhǎng)度。在MP系統(tǒng)中,CAR軟件不假定在一個(gè)節(jié)點(diǎn)中的處理器上的數(shù)據(jù)是一致的。這表示CAR軟件不使用CAR數(shù)據(jù)區(qū)中的任何MP信號(hào)量(semaphore)以及取決于它們。然而,CAR軟件可以使用芯片組以及其他硬件資源來(lái)實(shí)現(xiàn)信號(hào)量和其他MP碼執(zhí)行控制機(jī)制。如果為任何目的(例如按大小排列或調(diào)整存儲(chǔ)器),基于CAR的軟件需要寫(xiě)入由節(jié)點(diǎn)存儲(chǔ)器控制器控制的實(shí)際存儲(chǔ)器,它必須作為非緩存訪問(wèn)來(lái)執(zhí)行此操作。這表示如果該碼在物理模式中操作或在虛擬尋址模式的情況下設(shè)置適當(dāng)?shù)腡C入口(entry),開(kāi)啟位63。
如前面所提到的,CAR軟件可以將數(shù)據(jù)塊對(duì)齊選擇為“N/X”字節(jié)。CAR軟件選擇用于CAR DATA的數(shù)據(jù)地址,然后(使用由PAL-A提供的方法),用正確標(biāo)記預(yù)先載入一個(gè)或兩個(gè)(根據(jù)需要可以更多)數(shù)據(jù)列。在IPF處理器中,由于用來(lái)控制L2緩存線的存取的偽LRU算法的操作屬性,剩余的緩存列不能用于執(zhí)行碼。如果CAR碼的起始不是像數(shù)據(jù)列一樣對(duì)齊“N/X”字節(jié),那么使有效碼大小可以被減少的最大值為(碼列的大小)-(一個(gè)緩存線大小)。
如果這是可容許的,那么不必對(duì)齊CAR碼。使CAR_DATA總是對(duì)齊所需的極限。同時(shí),應(yīng)當(dāng)將地址范圍設(shè)置成不與由平臺(tái)所使用的最大地址范圍相沖突。最大范圍通常是最高可尋址存儲(chǔ)器,以及是系統(tǒng)可能的被分配PCI范圍。所選擇的地址范圍不與基于IPF處理器的其他體系結(jié)構(gòu)地址范圍沖突。這些范圍包括為IO塊、IPI地址塊、ROM選擇的地址范圍和芯片組預(yù)留的地址范圍。
存在兩種不同的情況上,其中,PAL-A碼和CAR設(shè)置模塊需要通信。PAL-A需要將有關(guān)L2緩存大小的信息以及路數(shù)(緩存拓?fù)浣Y(jié)構(gòu))傳送到CAR設(shè)置碼中。然后,CAR碼必須與PAL-A通信從而無(wú)效該緩存并且將標(biāo)記位填入。另外,PAL-A軟件層將多個(gè)參數(shù),諸如自測(cè)試狀態(tài)、進(jìn)行PAL過(guò)程調(diào)用的物理地址指針等等,傳遞給位于SALE_ENTRY點(diǎn)處的OEM碼模塊。CAR設(shè)置碼位于該輸入點(diǎn)處并且從PAL-A接收控制。另外的參數(shù)可以添加到PALE_RESET退出狀態(tài)來(lái)描述CAR設(shè)置碼環(huán)境所需的緩存參數(shù)。在IPF(Itanium處理器系列)環(huán)境中,系統(tǒng)中的所有處理器開(kāi)始同步地執(zhí)行,并且這轉(zhuǎn)換成早期引導(dǎo)碼的設(shè)計(jì)要求為MP安全。這一添加到傳統(tǒng)的IPF平臺(tái)的復(fù)雜性之上的要求是極其難以滿足的。
實(shí)現(xiàn)上述方法和過(guò)程便于堅(jiān)持各種處理器的安全要求,包括但不限于通常在當(dāng)今計(jì)算平臺(tái)上實(shí)施的安全引導(dǎo)方法。如將會(huì)意識(shí)到,這樣的引導(dǎo)技術(shù)導(dǎo)致不能由無(wú)記憶環(huán)境處理的編程復(fù)雜性。大多數(shù)安全算法,如SHA需要幾個(gè)KB的存儲(chǔ)器來(lái)進(jìn)行安全密鑰的操作,所述的存儲(chǔ)器可以使用如上所述的用作RAM的緩存來(lái)獲得上。
另外,當(dāng)今計(jì)算平臺(tái)還具有非常復(fù)雜的總線拓?fù)浣Y(jié)構(gòu),所述結(jié)構(gòu)在能找到存儲(chǔ)器前,需要在非常早就被初始化。像USB(通用串行總線)的總線結(jié)構(gòu)的初始化需要幾個(gè)命令和狀態(tài)字節(jié)流動(dòng)到總線控制器設(shè)備或從來(lái)自總線控制器設(shè)備。類似地,高密度存儲(chǔ)器技術(shù)還需要非常復(fù)雜的初始化和大小(size)掃描算法。這些操作在支持堆棧和至少有限存儲(chǔ)器的環(huán)境中被簡(jiǎn)化,額外的好處來(lái)自于使用與ISA(指令集結(jié)構(gòu))體系結(jié)構(gòu)無(wú)關(guān)的更高級(jí)語(yǔ)言(如C(或等效)碼)的能力。這允許例如重新使用適用于在32位Intel體系結(jié)構(gòu)處理器系統(tǒng)設(shè)計(jì)和基于IPF(IA-64)的系統(tǒng)之間的公共硬件塊的軟件。
實(shí)現(xiàn)上述方法和系統(tǒng)的軟件可以存儲(chǔ)在計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中,作為被執(zhí)行的指令集。另外,執(zhí)行如上所述方法和系統(tǒng)的指令可以可替換地存儲(chǔ)在其他形式的機(jī)器可讀介質(zhì)上,包括磁盤(pán)和光盤(pán)。例如,本發(fā)明的方法可以存儲(chǔ)在通過(guò)盤(pán)驅(qū)動(dòng)器(或計(jì)算機(jī)可讀介質(zhì)驅(qū)動(dòng)器)訪問(wèn)的機(jī)器可讀介質(zhì)上,諸如閃存、磁盤(pán)或光盤(pán)。另外,指令可以以用于自安裝的可執(zhí)行版本的形式,從數(shù)據(jù)網(wǎng)下載到計(jì)算設(shè)備中。
可替換地,執(zhí)行如上所述的方法和系統(tǒng)的邏輯可以在另外的計(jì)算機(jī)和/或機(jī)器可讀介質(zhì)中實(shí)施,這樣的計(jì)算機(jī)和/或機(jī)器可讀介質(zhì)比如作為大規(guī)模集成電路(LSI),專用集成電路(ASIC),或諸如電可擦可編程只讀存儲(chǔ)器(EEPROM)的固件的分立硬件組件;或通過(guò)電、光、聲和其他形式的傳播信號(hào)(例如電波或紅外光信號(hào))來(lái)傳遞信息的在空間上隔離的計(jì)算機(jī)。
在說(shuō)明書(shū)中引用“實(shí)施方案”、“一個(gè)實(shí)施方案”、“一些實(shí)施方案”或“其他實(shí)施方案”是指結(jié)合實(shí)施方案描述的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一些實(shí)施方案中,但不一定是所有實(shí)施方案。不同形式的“實(shí)施方案”、“一個(gè)實(shí)施方案”或“一些實(shí)施方案”不一定均指相同的實(shí)施方案。
如果說(shuō)明書(shū)表述“可以”、“可能”或“能”包括組件、特性、結(jié)構(gòu)或特性,那個(gè)特定的組件、特征、結(jié)構(gòu)或特性不一定要被包括進(jìn)來(lái)。如果說(shuō)明書(shū)或權(quán)利要求書(shū)指出“一”或“一個(gè)”元件,不表示僅有一個(gè)元件。如果說(shuō)明書(shū)或權(quán)利要求書(shū)引用“另外的”元件,不排除另外的元件多于一個(gè)。
獲益于該公開(kāi)內(nèi)容的本領(lǐng)域的技術(shù)人員將意識(shí)到可以在本發(fā)明的范圍內(nèi),做出來(lái)自上述公開(kāi)內(nèi)容和附圖的許多其他變化。因此,是下述權(quán)利要求書(shū)定義本發(fā)明的范圍,所述權(quán)利要求書(shū)包括了任何對(duì)其的修改。
權(quán)利要求
1.一種計(jì)算機(jī)引導(dǎo)方法,包括當(dāng)緩存具有大小N并且組相聯(lián)性具有達(dá)X路的交互作用時(shí),將用于緩存的數(shù)據(jù)塊對(duì)齊選擇為N/X字節(jié),使用防止無(wú)意識(shí)緩存線驅(qū)逐的標(biāo)記,預(yù)加載作為RAM系統(tǒng)的緩存系統(tǒng)的至少一個(gè)緩存RAM列,以及執(zhí)行引導(dǎo)碼,其中預(yù)加載的緩存RAM對(duì)正在執(zhí)行的引導(dǎo)碼流而言表現(xiàn)為存儲(chǔ)器庫(kù)。
2.如權(quán)利要求1所述的方法,其中,作為RAM的緩存軟件選擇不與任何預(yù)定平臺(tái)地址范圍沖突的數(shù)據(jù)地址范圍。
3.如權(quán)利要求1所述的方法,進(jìn)一步包括使用轉(zhuǎn)交寄存器來(lái)選擇數(shù)據(jù)塊對(duì)齊,從而將實(shí)現(xiàn)緩存大小N和組相聯(lián)性X傳送到處理器抽象層。
4.如權(quán)利要求1所述的方法,進(jìn)一步包括通過(guò)由處理器抽象層使用過(guò)程調(diào)用來(lái)選擇數(shù)據(jù)塊對(duì)齊,從而確定實(shí)現(xiàn)的緩存大小N和組相聯(lián)性。
5.如權(quán)利要求1所述的方法,進(jìn)一步包括通過(guò)由處理器抽象層使用過(guò)程調(diào)用來(lái)選擇數(shù)據(jù)塊對(duì)齊,從而確定實(shí)現(xiàn)的緩存大小N和組相聯(lián)性,其中輸入包括作為RAM的緩存數(shù)據(jù)的大小和地址范圍以及作為RAM的緩存碼的最大大小。
6.如權(quán)利要求1所述的方法,其中,從緩存讀所有數(shù)據(jù)載入,以限制生成前端總線周期。
7.如權(quán)利要求1所述的方法,其中,從緩存讀通過(guò)執(zhí)行引導(dǎo)碼生成的所有數(shù)據(jù)載入,以限制生成前端總線周期。
8.如權(quán)利要求1所述的方法,其中,通過(guò)執(zhí)行引導(dǎo)碼生成的緩存寫(xiě)命中總是更新緩存。
9.如權(quán)利要求1所述的方法,其中,執(zhí)行引導(dǎo)碼提供處理器的早期初始化,處理器健康分析,以及自引導(dǎo)處理器選擇。
10.如權(quán)利要求1所述的方法,進(jìn)一步包括通過(guò)劃分作為RAM的緩存數(shù)據(jù)空間以使每個(gè)處理器被限制在其自己的緩存區(qū),來(lái)執(zhí)行用于多個(gè)處理器的引導(dǎo)碼。
11.一種制品,包括具有在其上存儲(chǔ)指令的存儲(chǔ)介質(zhì),當(dāng)由機(jī)器執(zhí)行所述指令時(shí),導(dǎo)致當(dāng)緩存具有大小N并且組相聯(lián)性具有達(dá)X路的交互作用時(shí),將用于緩存的數(shù)據(jù)塊對(duì)齊選擇為N/X字節(jié),使用防止無(wú)意識(shí)緩存線驅(qū)逐的標(biāo)記,預(yù)加載作為RAM系統(tǒng)的緩存系統(tǒng)的至少一個(gè)緩存RAM列,以及執(zhí)行引導(dǎo)碼,其中預(yù)加載的緩存RAM對(duì)正在執(zhí)行的引導(dǎo)碼流而言表現(xiàn)為存儲(chǔ)器庫(kù)。
12.如權(quán)利要求11所述的包括具有在其上存儲(chǔ)指令的存儲(chǔ)介質(zhì)的制品,其中,作為RAM的緩存軟件選擇不與任何預(yù)定平臺(tái)地址范圍沖突的數(shù)據(jù)地址范圍。
13.如權(quán)利要求11所述的包括具有在其上存儲(chǔ)指令的存儲(chǔ)介質(zhì)的制品,進(jìn)一步包括使用轉(zhuǎn)交寄存器來(lái)選擇數(shù)據(jù)塊對(duì)齊,從而將實(shí)現(xiàn)緩存大小N和組相聯(lián)性X傳送到處理器抽象層。
14.如權(quán)利要求11所述的包括具有在其上存儲(chǔ)指令的存儲(chǔ)介質(zhì)的制品,其中,進(jìn)一步包括通過(guò)由處理器抽象層使用過(guò)程調(diào)用來(lái)選擇數(shù)據(jù)塊對(duì)齊,從而確定實(shí)現(xiàn)的緩存大小N和組相聯(lián)性。
15.如權(quán)利要求11所述的包括具有在其上存儲(chǔ)指令的存儲(chǔ)介質(zhì)的制品,其中,進(jìn)一步包括通過(guò)由處理器抽象層使用過(guò)程調(diào)用來(lái)選擇數(shù)據(jù)塊對(duì)齊,從而確定實(shí)現(xiàn)的緩存大小N和組相聯(lián)性,其中輸入包括作為RAM的緩存數(shù)據(jù)的大小和地址范圍以及作為RAM的緩存碼的最大大小。
16.如權(quán)利要求11所述的包括具有在其上存儲(chǔ)指令的存儲(chǔ)介質(zhì)的制品,其中,從緩存讀所有數(shù)據(jù)載入,以限制生成前端總線周期。
17.如權(quán)利要求11所述的包括具有在其上存儲(chǔ)指令的存儲(chǔ)介質(zhì)的制品,其中,從緩存讀通過(guò)執(zhí)行引導(dǎo)碼生成的所有數(shù)據(jù)載入,以限制生成前端總線周期。
18.如權(quán)利要求11所述的包括具有在其上存儲(chǔ)指令的存儲(chǔ)介質(zhì)的制品,其中,通過(guò)執(zhí)行引導(dǎo)碼生成的緩存寫(xiě)命中總是更新緩存。
19.如權(quán)利要求11所述的包括具有在其上存儲(chǔ)指令的存儲(chǔ)介質(zhì)的制品,其中,執(zhí)行引導(dǎo)碼提供處理器的早期初始化,處理器健康分析,以及自引導(dǎo)處理器選擇。
20.如權(quán)利要求11所述的包括具有在其上存儲(chǔ)指令的存儲(chǔ)介質(zhì)的制品,其中,通過(guò)劃分作為RAM的緩存數(shù)據(jù)空間以使每個(gè)處理器被限制在其自己的緩存區(qū),來(lái)執(zhí)行用于多個(gè)處理器的引導(dǎo)碼。
21.一種引導(dǎo)系統(tǒng),包括作為RAM的緩存軟件模塊,所述模塊在當(dāng)緩存具有大小N并且組相聯(lián)性具有達(dá)X路的交互作用時(shí),將用于緩存的數(shù)據(jù)塊對(duì)齊選擇為N/X字節(jié),并且使用防止無(wú)意識(shí)緩存線驅(qū)逐的標(biāo)記,預(yù)加載作為RAM系統(tǒng)的緩存系統(tǒng)的至少一個(gè)緩存RAM列,以及用于執(zhí)行引導(dǎo)碼的處理器和所連接的緩存RAM,其中預(yù)加載的緩存RAM對(duì)正在執(zhí)行的引導(dǎo)碼流而言表現(xiàn)為存儲(chǔ)器庫(kù)出現(xiàn)。
22.如權(quán)利要求21所述的系統(tǒng),其中,作為RAM的緩存軟件選擇不與任何預(yù)定平臺(tái)地址范圍沖突的數(shù)據(jù)地址范圍。
23.如權(quán)利要求21所述的系統(tǒng),其中,使用轉(zhuǎn)交寄存器來(lái)選擇數(shù)據(jù)塊對(duì)齊,從而將實(shí)現(xiàn)緩存大小N和組相聯(lián)性X傳送到處理器抽象層。
24.如權(quán)利要求21所述的系統(tǒng),其中,通過(guò)由處理器抽象層使用過(guò)程調(diào)用來(lái)選擇數(shù)據(jù)塊對(duì)齊,從而確定實(shí)現(xiàn)的緩存大小N和組相聯(lián)性。
25.如權(quán)利要求21所述的系統(tǒng),其中,進(jìn)一步包括通過(guò)由處理器抽象層使用過(guò)程調(diào)用來(lái)選擇數(shù)據(jù)塊對(duì)齊,從而確定實(shí)現(xiàn)的緩存大小N和組相聯(lián)性,其中輸入包括作為RAM的緩存數(shù)據(jù)的大小和地址范圍以及作為RAM的緩存碼的最大大小。
26.如權(quán)利要求21所述的系統(tǒng),其中,從緩存讀所有數(shù)據(jù)載入,以限制生成前端總線周期。
27.如權(quán)利要求21所述的系統(tǒng),其中,從緩存讀通過(guò)執(zhí)行引導(dǎo)碼生成的所有數(shù)據(jù)載入,以限制生成前端總線周期。
28.如權(quán)利要求21所述的系統(tǒng),其中,通過(guò)執(zhí)行引導(dǎo)碼生成的緩存寫(xiě)命中總是更新緩存。
29.如權(quán)利要求21所述的系統(tǒng),其中,執(zhí)行引導(dǎo)碼提供處理器的早期初始化,處理器健康分析,以及自引導(dǎo)處理器選擇。
30.如權(quán)利要求21所述的系統(tǒng),其中,通過(guò)劃分作為RAM的緩存數(shù)據(jù)空間以使每個(gè)處理器被限制在其自己的緩存區(qū),來(lái)執(zhí)行用于多個(gè)處理器的引導(dǎo)碼。
全文摘要
在一個(gè)實(shí)施方案中,計(jì)算機(jī)引導(dǎo)方法允許選擇預(yù)定數(shù)據(jù)塊,所述預(yù)定數(shù)據(jù)塊與具有多個(gè)交叉處理器交互作用的緩存對(duì)齊。作為RAM系統(tǒng)的緩存的緩存RAM列加載有防止無(wú)意識(shí)緩存線驅(qū)逐的標(biāo)記,并且引導(dǎo)碼被執(zhí)行,其中預(yù)加的載緩存RAM對(duì)正在執(zhí)行的引導(dǎo)碼流而言表現(xiàn)為存儲(chǔ)器庫(kù)。
文檔編號(hào)G06F12/08GK1894662SQ200380103263
公開(kāi)日2007年1月10日 申請(qǐng)日期2003年10月30日 優(yōu)先權(quán)日2002年11月15日
發(fā)明者沙姆·戴塔, 文森特·齊默, 庫(kù)沙格拉·韋德, 威廉·史蒂文斯, 埃米·桑托尼 申請(qǐng)人:英特爾公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
黄冈市| 长沙县| 乌鲁木齐县| 苍南县| 宁强县| 灵石县| 开平市| 洛隆县| 嘉义市| 博野县| 襄城县| 潮安县| 江川县| 富顺县| 浮山县| 原阳县| 怀化市| 金平| 鄂托克旗| 准格尔旗| 大连市| 宜宾市| 霞浦县| 云龙县| 咸丰县| 谢通门县| 成都市| 南和县| 泽普县| 莆田市| 石棉县| 科技| 定州市| 都昌县| 禹州市| 历史| 谢通门县| 永城市| 田林县| 镇平县| 繁峙县|