專利名稱:系統(tǒng)啟動(dòng)時(shí)間減少的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及操作系統(tǒng),尤其涉及在系統(tǒng)中使用的非易失性高速緩存器。
背景技術(shù):
將處理器與高速緩存器一起使用,減少存儲(chǔ)器訪問時(shí)間并提供設(shè)備的總體速度。典型地,高速緩存器是存儲(chǔ)器的一個(gè)區(qū)域,該區(qū)域充當(dāng)了設(shè)備的臨時(shí)存儲(chǔ)區(qū)域。處理器所頻繁訪問的數(shù)據(jù),在針對(duì)高速緩存器的同一數(shù)據(jù)可能進(jìn)行了初次訪問及后續(xù)訪問之后,仍然保留在該高速緩存器當(dāng)中。
通常使用兩類緩存技術(shù)存儲(chǔ)器緩存技術(shù)和盤緩存技術(shù)。存儲(chǔ)器高速緩存器,有時(shí)稱作高速緩沖存儲(chǔ)器,典型為高速存儲(chǔ)器設(shè)備,諸如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)。存儲(chǔ)器緩存技術(shù)非常有效,這是因?yàn)榻^大多數(shù)程序常常會(huì)重復(fù)訪問相同數(shù)據(jù)或指令。
盤緩存技術(shù)工作在和存儲(chǔ)器緩存技術(shù)相同的原理下的,但是卻使用常規(guī)的存儲(chǔ)設(shè)備,諸如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)。最近從盤所訪問的數(shù)據(jù),被存儲(chǔ)于盤高速緩存器當(dāng)中。當(dāng)程序需要從盤訪問該數(shù)據(jù)時(shí),就首先要檢查盤高速緩存器,以便查看該數(shù)據(jù)是否在盤高速緩存器中。盤緩存技術(shù)能夠顯著提高應(yīng)用程序的性能,這是因?yàn)樵赗AM中訪問數(shù)據(jù)的一個(gè)字節(jié)能夠比訪問在盤上的一個(gè)字節(jié)要快得多。舉例來講,為加載操作系統(tǒng)和啟用系統(tǒng)服務(wù)所需的盤訪問序列,是可以預(yù)測(cè)的。因此,為了更快地訪問,可以在正常操作期間,把此初始化數(shù)據(jù)帶入到盤高速緩存器中。
然而,高速緩存器的存儲(chǔ)器大小是有限的,而且通常用來存儲(chǔ)最近所使用的數(shù)據(jù)。因而,當(dāng)高速緩存器變滿時(shí),在高速緩存器中所存儲(chǔ)的現(xiàn)存數(shù)據(jù)行,就會(huì)被替換或被取消分配,以便為新近請(qǐng)求的數(shù)據(jù)行騰出空間。最常用的高速緩存器替換是最近最少使用(LRU)算法,通過該算法來驅(qū)逐最舊(最近最少使用)的存儲(chǔ)器行。
盡管,替換過程通常不會(huì)產(chǎn)生問題,但是確定類型的數(shù)據(jù)替換也會(huì)造成損害。因此,在相關(guān)技術(shù)中,已經(jīng)提出了許多解決一些可能由替換算法所引起的問題的方法。例如,名為“Programmable CacheIncluding a Non-Lockable Data Way and a Lockable Data WayConfigured To Lock Real-Time Data(包含配置以鎖定實(shí)時(shí)數(shù)據(jù)的不可鎖定數(shù)據(jù)方式和可鎖定數(shù)據(jù)方式的可編程高速緩存器)”的美國(guó)專利5913224和名為“Cache Memory System and Method ForAutomatically Locking Cache Entries To Prevent SelectedMemory Items From Being Replaced(用于自動(dòng)鎖定高速緩存器條目以防止所選存儲(chǔ)項(xiàng)被替換的高速緩沖存儲(chǔ)器系統(tǒng)及方法)”的美國(guó)專利5974508公開了一種方法,該方法用于鎖定易失性高速緩沖存儲(chǔ)器中的時(shí)間臨界數(shù)據(jù)的內(nèi)容,從而防止在正常操作期間的驅(qū)逐。
然而,對(duì)于在系統(tǒng)初始化期間所需數(shù)據(jù)的類型而言,由于在系統(tǒng)啟動(dòng)或系統(tǒng)供電周期之間會(huì)丟失信息,所以將初始化數(shù)據(jù)鎖定到易失性高速緩沖存儲(chǔ)器中,在需要這些數(shù)據(jù)時(shí)就會(huì)使它們變得不可用。
下面將參照下列附圖詳細(xì)描述本發(fā)明,在其中相同參考標(biāo)記指的是相似元件,其中圖1是實(shí)現(xiàn)本發(fā)明的示范性系統(tǒng);圖2示出依照本發(fā)明實(shí)施例的示范性固鎖(pinning)過程;圖3示出依照本發(fā)明第二實(shí)施例的示范性固鎖過程;和圖4示出依照本發(fā)明第三實(shí)施例的示范性固鎖過程。
詳細(xì)說明在以下說明中給出具體細(xì)節(jié),來提供對(duì)本發(fā)明的徹底理解。例如,為了防止不必要細(xì)節(jié)造成本發(fā)明不清楚,而在方框圖中示出一些電路。然而,本領(lǐng)域技術(shù)人員將應(yīng)當(dāng)理解本發(fā)明可以在沒有上述具體細(xì)節(jié)的情況下加以實(shí)施。
如這里所公開的,“高速緩存器”指的是臨時(shí)存儲(chǔ)區(qū)域,也可以是存儲(chǔ)器緩存器或者盤緩存器。術(shù)語“數(shù)據(jù)”指的是能被存儲(chǔ)在高速緩存器中的數(shù)據(jù)和指令?!氨P”指的是硬盤驅(qū)動(dòng)器、軟盤驅(qū)動(dòng)器、光盤(CD)驅(qū)動(dòng)器或任何其它用于大容量數(shù)據(jù)大容量存儲(chǔ)器的磁存儲(chǔ)器設(shè)備或光存儲(chǔ)器設(shè)備。術(shù)語“系統(tǒng)初始化”既指當(dāng)?shù)谝淮未蜷_電源時(shí)的系統(tǒng)啟動(dòng),即周知的冷啟動(dòng),也指當(dāng)系統(tǒng)重新啟動(dòng)時(shí)的系統(tǒng)重啟,即周知的熱啟動(dòng)。為了解釋起見,將可互換地使用系統(tǒng)啟動(dòng)和系統(tǒng)重啟。術(shù)語“計(jì)算機(jī)可讀介質(zhì)”包括但不限于便攜式或固定式存儲(chǔ)設(shè)備、光存儲(chǔ)設(shè)備和任何其它能存儲(chǔ)計(jì)算機(jī)指令和/或數(shù)據(jù)的存儲(chǔ)設(shè)備。術(shù)語“計(jì)算機(jī)指令”是包含可被讀取和/或執(zhí)行來完成確定任務(wù)的數(shù)據(jù)、代碼及程序的軟件或固件。
一般而言,本發(fā)明提供了一種在非易失性存儲(chǔ)介質(zhì)中保留系統(tǒng)初始化期間所需數(shù)據(jù)的系統(tǒng)和方法。重新加載操作系統(tǒng)和重新啟動(dòng)系統(tǒng)服務(wù)所需的時(shí)間,是使用戶惱怒的重要來源。然而,大多數(shù)上述時(shí)間都專用于從盤讀取必要數(shù)據(jù)。由于在系統(tǒng)啟動(dòng)或開啟期間從盤讀取的數(shù)據(jù)序列是可重復(fù)的,而且能夠被預(yù)測(cè),因而通過將系統(tǒng)初始化必要的數(shù)據(jù)預(yù)先加載到高速緩存器中來減少初始化時(shí)間。
具體而言,將初始化期間所訪問的數(shù)據(jù)(以下稱為“必要數(shù)據(jù)”)加載到非易失性高速緩存器中,并且標(biāo)注或“固鎖”它以防止驅(qū)逐。因此,必要數(shù)據(jù)就會(huì)駐留在高速緩存器中,以用于在系統(tǒng)初始化期間、甚至是在意外系統(tǒng)關(guān)閉后快速訪問,由此來避免對(duì)盤的訪問。
在圖1中示出了實(shí)現(xiàn)本發(fā)明原理的系統(tǒng)100的示范性實(shí)施例。該系統(tǒng)100包括處理器110,它通過總線130耦合于易失性存儲(chǔ)器120(以下稱為“存儲(chǔ)器”)。在一個(gè)實(shí)施例中,存儲(chǔ)器110是動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)。同樣耦合于總線130的存儲(chǔ)器控制集線器(hub)140,經(jīng)由鏈路125來控制存儲(chǔ)器120的操作、經(jīng)由鏈路155來控制非易失性高速緩存器150(以下稱為“高速緩存器”)的操作,以及經(jīng)由鏈路165來控制盤160的操作。存儲(chǔ)器控制集線器140包括管理存儲(chǔ)器120和高速緩存器150的狀態(tài)或元數(shù)據(jù)信息的邏輯電路(未示出)。此外,本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到存儲(chǔ)器控制集線器140還可包括控制諸如讀、寫、更新以及無效的操作之類的高速緩存功能的附加電路。最后,可將諸如鍵盤、鼠標(biāo)和/或顯示器等多個(gè)輸入/輸出設(shè)備170耦合于總線130。
盡管所示出的系統(tǒng)100是具有單個(gè)處理器的系統(tǒng),但是本發(fā)明可以用多個(gè)處理器加以實(shí)施,在其中附加處理器也將耦合于總線130。在這種情況下,每個(gè)附加處理器都將共享高速緩存器150和存儲(chǔ)器120,以便將數(shù)據(jù)和/或指令寫入到其中,以及從其中讀取數(shù)據(jù)和/或指令。而且,系統(tǒng)100示出了作為非易失性存儲(chǔ)介質(zhì)的高速緩存器150。然而,高速緩存器150可以是易失性和非易失性存儲(chǔ)介質(zhì)的組合。同樣,存儲(chǔ)器120可以是易失性存儲(chǔ)介質(zhì)和非易失性存儲(chǔ)介質(zhì)的一種組合或任意組合。此外,可以將高速緩存器150實(shí)施到系統(tǒng)100當(dāng)中,以作為諸如外圍部件互連(PCI)內(nèi)插附件的內(nèi)插卡。在另一實(shí)施例中,可以將盤160的一部分分配作為高速緩存器150。在下面將接著描述本發(fā)明。
在一個(gè)實(shí)施例中,通過將“固鎖位”添加到高速緩存器150中每行數(shù)據(jù)的元數(shù)據(jù)狀態(tài)上,來實(shí)現(xiàn)數(shù)據(jù)的固鎖。典型地,將校正操作所需的元數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器120和高速緩存器150兩者中。因?yàn)樵獢?shù)據(jù)是在系統(tǒng)啟動(dòng)期間被保留的,因此把這種元數(shù)據(jù)稱作為“持久元數(shù)據(jù)”。持久元數(shù)據(jù)可包括表明高速緩存器150中相應(yīng)數(shù)據(jù)行為有效和/或臟的標(biāo)志,以及表明在高速緩存器行中所包含數(shù)據(jù)的起始盤地址的標(biāo)記。校正操作不需要、但卻能提高性能的元數(shù)據(jù),典型地被存儲(chǔ)在易失性存儲(chǔ)介質(zhì)中,比如被存儲(chǔ)在存儲(chǔ)器120中。易失性存儲(chǔ)介質(zhì)中所存儲(chǔ)的這種元數(shù)據(jù)在系統(tǒng)啟動(dòng)期間丟失,將上述數(shù)據(jù)稱作為“非持久元數(shù)據(jù)”。非持久元數(shù)據(jù)可包括用作最近最少使用(LRU)信息的每個(gè)高速緩存器行的時(shí)效期。
在一個(gè)實(shí)施例中,將固鎖位放置在存儲(chǔ)器120當(dāng)中,以作為非持久元數(shù)據(jù)。在系統(tǒng)重啟時(shí),在前一次系統(tǒng)啟動(dòng)的初始化期間已固鎖的必要數(shù)據(jù),會(huì)已經(jīng)被加載到高速緩存器150中。然而,由于固鎖位是非持久性的,因而固鎖位信息會(huì)在系統(tǒng)啟動(dòng)中間丟失,并且無法判斷出是否固鎖了數(shù)據(jù)行或者該數(shù)據(jù)行是否僅僅在高速緩存器150呆過。因此,在每次初始化序列期間,都要執(zhí)行固鎖過程來固鎖數(shù)據(jù)。此處,提高系統(tǒng)啟動(dòng)性能的需要與在正常操作期間保持高速緩存器150中多數(shù)空間的空閑或可替換的需要,這兩者應(yīng)當(dāng)保持平衡。因此,為固鎖到高速緩存器150當(dāng)中的數(shù)據(jù)量設(shè)置一個(gè)上限,來限制正常執(zhí)行期間所占用的空間量。
盡管可以利用任意方法來限制所固鎖的數(shù)據(jù)量,但圖2示出了依照本發(fā)明一個(gè)實(shí)施例的使用一個(gè)計(jì)時(shí)器的示范性固鎖過程200。當(dāng)系統(tǒng)剛一初始化,就設(shè)置計(jì)時(shí)器(決220)。之后,圖1的存儲(chǔ)器控制集線器140促使對(duì)與所訪問數(shù)據(jù)行相對(duì)應(yīng)的固鎖位被設(shè)置(塊230),直到計(jì)時(shí)器到期為止(塊240)。這里,數(shù)據(jù)訪問包括對(duì)高速緩存器150的讀和寫。也可以根據(jù)系統(tǒng)需要來設(shè)置計(jì)時(shí)器。然而,在設(shè)置計(jì)時(shí)器過程中,應(yīng)該為初始化序列預(yù)留出充分的時(shí)間量。例如,在大容量存儲(chǔ)高速緩存器中可以將計(jì)時(shí)器設(shè)置為兩分鐘。
圖3示出了依照本發(fā)明第二實(shí)施例的另一個(gè)固鎖過程300,所述第二實(shí)施例允許固鎖最大數(shù)據(jù)量。當(dāng)系統(tǒng)剛一初始化,就判斷是否已經(jīng)固鎖最大數(shù)據(jù)量(塊320)。直到超出最大量,存儲(chǔ)器控制集線器140才促使設(shè)置對(duì)應(yīng)于所訪問數(shù)據(jù)行的固鎖位(塊320和330)。這里,訪問也包括對(duì)高速緩存器150的讀和寫。根據(jù)系統(tǒng)需要來給出能被固鎖的最大量。一般而言,應(yīng)當(dāng)為正常操作而使高速緩存器150中大多數(shù)數(shù)據(jù)行保持“不固鎖”。例如,在帶有N個(gè)高速緩存器相聯(lián)組(associativity set)的大容量存儲(chǔ)高速緩存器中,可為每一個(gè)高速緩存器相聯(lián)組中的一行設(shè)置最大量。
圖4示出了依照本發(fā)明第三實(shí)施例的另一個(gè)固鎖過程400,所述第三實(shí)施例既使用了計(jì)時(shí)器也使用了最大數(shù)據(jù)量來進(jìn)行固鎖。在固鎖過程400中,還將“重啟前緩存位(cacheBeforeReboot bit)”添加到非持久元數(shù)據(jù)中。為系統(tǒng)初始化之前存在于高速緩存器150中的任一高速緩存行,設(shè)置重啟前緩存位。例如,當(dāng)系統(tǒng)重新啟動(dòng)時(shí),隨著從高速緩存器150頁入(page in)該持久元數(shù)據(jù),就可以設(shè)置這些位。
現(xiàn)在參照?qǐng)D4,當(dāng)系統(tǒng)剛一初始化就設(shè)置計(jì)時(shí)器(塊420),并且如果還沒有超出最大量,那么存儲(chǔ)器控制集線器140就促使對(duì)應(yīng)于所訪問的高速緩存行的固鎖位被設(shè)置(塊430和440)。這里的訪問包括對(duì)高速緩存器150的讀和寫。如果超出最大量,則通過檢查該重啟前緩存位信息,來判斷當(dāng)前所訪問的高速緩存行在重啟之前是否被緩存過(塊450)。如果設(shè)置了與當(dāng)前所訪問的高速緩存行相對(duì)應(yīng)的重啟前緩存位,則也通過檢查相應(yīng)的重啟前緩存位,來進(jìn)一步判斷在重啟之前是否存在未被緩存的固鎖行(塊460)。
例如,如果在該相聯(lián)組中具有重啟之前未被緩存的現(xiàn)存固鎖行,那么存儲(chǔ)器控制集線器140就促使與現(xiàn)存行相對(duì)應(yīng)的固鎖位被清除(或被解鎖),并促使對(duì)應(yīng)于當(dāng)前所訪問的高速緩存行的固鎖位被設(shè)置(塊470)。如果在塊450判斷出當(dāng)前所訪問的高速緩存行在重啟之前未被緩存,或是在塊460判斷出不存在重啟之前未被緩存的固鎖行,那么存儲(chǔ)器控制集線器140就促使將當(dāng)前所訪問的高速緩存行被帶入到高速緩存器150中,但卻不被固鎖(塊470)。
在塊440、470和480之后,判斷計(jì)時(shí)器是否到期(塊490)。如果計(jì)時(shí)器已到期,則固鎖過程400就結(jié)束。否則,該過程將返回到塊430并重復(fù)。直到計(jì)時(shí)器到期,才將數(shù)據(jù)有選擇地固鎖到高速緩存器150中,以便改進(jìn)下次重啟的性能。與此同時(shí),限制可被固鎖的行數(shù),從而為正常操作允許高速緩存器中的大多數(shù)空間。
在固鎖過程400中,通過固鎖在重啟之前已被緩存的行,來將優(yōu)先權(quán)賦予固鎖那些已經(jīng)存在高速緩存器中的行。如果在塊460中有一行以上的固鎖行在重啟之前未被緩存,則就利用LRU信息來清除與具有最新時(shí)效期的行相對(duì)應(yīng)的固鎖位。因此,為了反映出真實(shí)的初始化序列而不是可能的早期用戶活動(dòng),固鎖過程400還可以將優(yōu)先權(quán)賦予具有更早時(shí)間的行。此外,與在固鎖過程200和300一樣,應(yīng)當(dāng)設(shè)置計(jì)時(shí)器,從而為初始化序列保留出充分的時(shí)間量,并且還應(yīng)當(dāng)設(shè)置要固鎖的最大量,從而在高速緩存器中為正常操作保留出每一組的大多數(shù)。例如,可以為大容量存儲(chǔ)高速緩存器將計(jì)時(shí)器設(shè)置為一分鐘、而將最大數(shù)目設(shè)置為每組一行。
一旦在固鎖過程200-400中已經(jīng)固鎖了最大量或者計(jì)時(shí)器到期了,則任何另外的訪問將不驅(qū)逐具有被設(shè)置的相應(yīng)固鎖位的高速緩存行。而且,圖1的存儲(chǔ)器控制集線器140可進(jìn)一步包括用于清除一個(gè)或多個(gè)高速緩存行的固鎖位的邏輯電路。例如,如果在系統(tǒng)上加載新的操作系統(tǒng),則多個(gè)緩存行的清除就將允許高速緩存行的不同集合被固鎖。
通過在系統(tǒng)初始化期間將數(shù)據(jù)固鎖到非易失性高速緩存器中,就能夠減少系統(tǒng)初始化所需的時(shí)間。這在大容量存儲(chǔ)高速緩存器中尤為顯著。然而,在另一實(shí)施例中,可將該固鎖位存儲(chǔ)在非易失性存儲(chǔ)介質(zhì)中,從而在啟動(dòng)之間保留該信息。例如,可將固鎖位包含于存儲(chǔ)在高速緩存器150的元數(shù)據(jù)中,或者如果存儲(chǔ)器120包括非易失性存儲(chǔ)介質(zhì),也可將固鎖位包含于存儲(chǔ)器120中。在這種情況下,由于在系統(tǒng)啟動(dòng)之間保留有固鎖位信息,因而在每次系統(tǒng)初始化期間的固鎖過程將不再成為必要。而且,雖然已經(jīng)參考系統(tǒng)初始化對(duì)本發(fā)明作了描述,但是本發(fā)明的教導(dǎo)并不限制于固鎖系統(tǒng)初始化期間所必須的數(shù)據(jù),并且本發(fā)明的教導(dǎo)能應(yīng)用于需要重復(fù)使用非易失性高速緩存器中的數(shù)據(jù)的任何操作之中。
前述實(shí)施例僅僅是示范性的,并不能認(rèn)為它會(huì)限制本發(fā)明。目前的教導(dǎo)能容易地應(yīng)用于任何其它類型的裝置。本發(fā)明的說明是解釋說明性的,而不能限定權(quán)利要求的保護(hù)范圍。對(duì)本領(lǐng)域技術(shù)人員而言,許多替換、修改和變形都是顯而易見的。
權(quán)利要求
1.一種方法,包括將數(shù)據(jù)存儲(chǔ)到第一存儲(chǔ)器中,所述第一存儲(chǔ)器是高速緩存器中的非易失性存儲(chǔ)介質(zhì);和固鎖在第一存儲(chǔ)器中存儲(chǔ)的一部分?jǐn)?shù)據(jù)。
2.如權(quán)利要求1所述的方法,其中存儲(chǔ)數(shù)據(jù)包括將所述數(shù)據(jù)存儲(chǔ)到大容量高速緩存器中。
3.如權(quán)利要求1所述的方法,其中數(shù)據(jù)的固鎖包括固鎖系統(tǒng)初始化所必須的一部分?jǐn)?shù)據(jù)。
4.如權(quán)利要求1所述的方法,其中數(shù)據(jù)的固鎖包括存儲(chǔ)與在第一存儲(chǔ)器中存儲(chǔ)的數(shù)據(jù)相對(duì)應(yīng)的元數(shù)據(jù);和在所述元數(shù)據(jù)中設(shè)置一狀態(tài),用于表明對(duì)應(yīng)的數(shù)據(jù)行被固鎖。
5.如權(quán)利要求4所述的方法,其中存儲(chǔ)元數(shù)據(jù)包括將所述元數(shù)據(jù)存儲(chǔ)到第二存儲(chǔ)器中。
6.如權(quán)利要求4所述的方法,其中存儲(chǔ)元數(shù)據(jù)包括將所述元數(shù)據(jù)存儲(chǔ)到易失性存儲(chǔ)介質(zhì)中。
7.一種存儲(chǔ)于存儲(chǔ)器中的元數(shù)據(jù),包括第一狀態(tài),用于表明非易失性存儲(chǔ)器中對(duì)應(yīng)的數(shù)據(jù)行的最近最少使用信息;和第二狀態(tài),用于表明非易失性存儲(chǔ)器中對(duì)應(yīng)的數(shù)據(jù)行是否被固鎖。
8.如權(quán)利要求7所述的元數(shù)據(jù),進(jìn)一步包括第三狀態(tài),用于表明在系統(tǒng)初始化之前在非易失性存儲(chǔ)器中是否存在對(duì)應(yīng)的數(shù)據(jù)行。
9.如權(quán)利要求7所述的元數(shù)據(jù),其中所述元數(shù)據(jù)被存儲(chǔ)在易失性存儲(chǔ)介質(zhì)中。
10.一種系統(tǒng),包括高速緩存器,包括用于存儲(chǔ)高速緩存數(shù)據(jù)的第一存儲(chǔ)介質(zhì),所述第一存儲(chǔ)介質(zhì)是非易失性存儲(chǔ)介質(zhì);和第二存儲(chǔ)介質(zhì),用于存儲(chǔ)在第一存儲(chǔ)介質(zhì)中所存儲(chǔ)的高速緩存數(shù)據(jù)的元數(shù)據(jù),所述元數(shù)據(jù)包括一狀態(tài),用于表明對(duì)應(yīng)的數(shù)據(jù)行是否被固鎖。
11.如權(quán)利要求10所述的系統(tǒng),其中所述高速緩存器是大容量存儲(chǔ)高速緩存器。
12.如權(quán)利要求10所述的系統(tǒng),其中所述第二存儲(chǔ)介質(zhì)是易失性存儲(chǔ)介質(zhì)。
13.如權(quán)利要求10所述的系統(tǒng),其中所述第二存儲(chǔ)介質(zhì)被包含于高速緩存器中。
14.如權(quán)利要求10所述的系統(tǒng),其中將所述高速緩存器被實(shí)現(xiàn)成內(nèi)插卡。
15.一種方法,包括在系統(tǒng)初始化期間訪問第一存儲(chǔ)器,所述第一存儲(chǔ)器是高速緩存器;和在第一存儲(chǔ)器中固鎖在系統(tǒng)初始化期間所訪問的數(shù)據(jù)。
16.如權(quán)利要求15所述的方法,其中所述高速緩存器是大容量存儲(chǔ)高速緩存器。
17.如權(quán)利要求15所述的方法,進(jìn)一步包括在系統(tǒng)初始化期間限制數(shù)據(jù)的固鎖。
18.如權(quán)利要求15所述的方法,其中在系統(tǒng)初始化期間數(shù)據(jù)的固鎖包括存儲(chǔ)在第一存儲(chǔ)器中所存儲(chǔ)的數(shù)據(jù)的元數(shù)據(jù),所述元數(shù)據(jù)包括用于表明對(duì)應(yīng)的數(shù)據(jù)行是否被固鎖的第一狀態(tài);和設(shè)置對(duì)應(yīng)于所訪問數(shù)據(jù)的第一狀態(tài),以便表明所訪問的數(shù)據(jù)被固鎖。
19.如權(quán)利要求18所述的方法,其中數(shù)據(jù)的固鎖進(jìn)一步包括當(dāng)系統(tǒng)剛初始化時(shí),設(shè)置計(jì)時(shí)器;和設(shè)置對(duì)應(yīng)于所訪問數(shù)據(jù)的第一狀態(tài),直到該計(jì)時(shí)器到期為止。
20.如權(quán)利要求18所述的方法,其中數(shù)據(jù)的固鎖進(jìn)一步包括設(shè)置要固鎖的最大數(shù)據(jù)量;和設(shè)置對(duì)應(yīng)于所訪問數(shù)據(jù)的第一狀態(tài),直到超出最大量為止。
21.如權(quán)利要求18所述的方法,其中所述元數(shù)據(jù)還包括第二狀態(tài);并且其中數(shù)據(jù)的固鎖進(jìn)一步包括為在系統(tǒng)初始化之前存在的數(shù)據(jù)設(shè)置第二狀態(tài),第二狀態(tài)的設(shè)置用來表明在系統(tǒng)初始化之前存在對(duì)應(yīng)的數(shù)據(jù);當(dāng)系統(tǒng)剛初始化時(shí),設(shè)置計(jì)時(shí)器;設(shè)置要固鎖的最大數(shù)據(jù)量;如果未超出最大量且如果計(jì)時(shí)器未到期,則設(shè)置對(duì)應(yīng)于所訪問數(shù)據(jù)的第一狀態(tài);以及否則清除對(duì)應(yīng)于已固鎖數(shù)據(jù)的第一狀態(tài),并且如果未設(shè)置對(duì)應(yīng)于已固鎖數(shù)據(jù)的第二狀態(tài),而設(shè)置了對(duì)應(yīng)于所訪問數(shù)據(jù)的已固鎖數(shù)據(jù),且如果計(jì)時(shí)器還未到期,則設(shè)置對(duì)應(yīng)于所訪問數(shù)據(jù)的第一狀態(tài)。
22.如權(quán)利要求21所述的方法,其中所述元數(shù)據(jù)還包括用于表明對(duì)應(yīng)數(shù)據(jù)行的時(shí)效期的第三狀態(tài),并且第一狀態(tài)的清除包括如果存在第二狀態(tài)未被設(shè)置的、一個(gè)以上的已固鎖數(shù)據(jù)行,則清除最近的數(shù)據(jù)行。
23.一種系統(tǒng),包括高速緩存器,包括用于在系統(tǒng)初始化期間訪問的第一存儲(chǔ)介質(zhì),所述第一存儲(chǔ)介質(zhì)是非易失性的;第二存儲(chǔ)介質(zhì),用于存儲(chǔ)在系統(tǒng)初始化期間所訪問的數(shù)據(jù)的元數(shù)據(jù),所述元數(shù)據(jù)包括第一狀態(tài);和存儲(chǔ)器控制集線器,用于促使為在系統(tǒng)初始化期間所訪問的數(shù)據(jù)設(shè)置第一狀態(tài),所述第一狀態(tài)的設(shè)置用來表明對(duì)應(yīng)的數(shù)據(jù)行被固鎖。
24.如權(quán)利要求23所述的系統(tǒng),其中所述元數(shù)據(jù)還包括第二狀態(tài);并且其中所述存儲(chǔ)器控制集線器促使為在系統(tǒng)初始化之前存在的數(shù)據(jù)設(shè)置第二狀態(tài),所述第二狀態(tài)的設(shè)置用來表明在系統(tǒng)初始化之前存在對(duì)應(yīng)的數(shù)據(jù)行。
25.如權(quán)利要求23所述的系統(tǒng),其中所述高速緩存器是大容量存儲(chǔ)高速緩存器。
26.如權(quán)利要求23所述的系統(tǒng),其中所述存儲(chǔ)器控制集線器限制所固鎖的數(shù)據(jù)量。
27.如權(quán)利要求23所述的系統(tǒng),其中所述第二存儲(chǔ)介質(zhì)是易失性存儲(chǔ)介質(zhì)。
28.如權(quán)利要求23所述的系統(tǒng),其中所述第二存儲(chǔ)介質(zhì)被包含于高速緩存器中。
29.如權(quán)利要求23所述的系統(tǒng),其中將所述高速緩存器被實(shí)現(xiàn)為內(nèi)插卡。
30.一種被加載到計(jì)算機(jī)可讀介質(zhì)中的程序,包括第一組計(jì)算機(jī)指令,用于訪問非易失性高速緩存器中的數(shù)據(jù);第二組計(jì)算機(jī)指令,用于固鎖在非易失性高速緩存器中所訪問的數(shù)據(jù)。
31.如權(quán)利要求30所述的程序,其中所述第二組計(jì)算機(jī)指令包括用于固鎖在系統(tǒng)初始化期間所訪問數(shù)據(jù)的計(jì)算機(jī)指令。
32.如權(quán)利要求31所述的程序,其中所述第二組計(jì)算機(jī)指令進(jìn)一步包括用于限制所固鎖數(shù)據(jù)量的計(jì)算機(jī)指令。
全文摘要
公開了一種減少系統(tǒng)初始化時(shí)間的系統(tǒng)和方法。依照本發(fā)明,將在系統(tǒng)初始化期間所訪問的數(shù)據(jù)加載到非易失性高速緩存器中并將其固鎖從而防止驅(qū)逐。在系統(tǒng)重啟時(shí),通過將數(shù)據(jù)固鎖在高速緩存器中,來將系統(tǒng)初始化所需的數(shù)據(jù)預(yù)先加載到高速緩存器中,由此消除訪問盤的需要。
文檔編號(hào)G06F12/08GK1520549SQ02812929
公開日2004年8月11日 申請(qǐng)日期2002年6月6日 優(yōu)先權(quán)日2001年6月27日
發(fā)明者J·加尼, R·庫(kù)爾森, J·馬休斯, R·小魯耶, J 加尼, 菟, 騁 申請(qǐng)人:英特爾公司