專利名稱:專用高速緩沖存儲器的制作方法
領(lǐng)域本發(fā)明的實施例一般涉及計算機存儲,尤其涉及專用高速緩沖存儲器。
背景在計算機操作中,高速緩沖存儲器可通過提供對存儲器中可比大容量存儲更快速訪問的某些數(shù)據(jù)的訪問來改進系統(tǒng)操作。處理器和系統(tǒng)可利用不同大小、位置、技術(shù)和操作速度的多種高速緩沖存儲器。
然而,對高速緩沖存儲器的使用在諸如當(dāng)進程在已分配周期中操作等某些操作中可能更復(fù)雜。例如,接收諸如多媒體流等數(shù)據(jù)流的計算機可向數(shù)據(jù)流的處理預(yù)先分配某些計算機周期,以允許可預(yù)測和可靠的操作。
如果對特定操作的數(shù)據(jù)處理是在某些已分配周期中處理的,則高速緩沖存儲器可能在已分配周期之間的間隔中轉(zhuǎn)儲清除。結(jié)果,數(shù)據(jù)流可能無法利用高速緩存來允許高效的操作,因為對高速緩存的訪問可能不會導(dǎo)致可使用的高速緩存數(shù)據(jù)。
附圖簡述本發(fā)明可通過參考用于示出本發(fā)明的實施例的以下描述和附圖來最好地理解。附圖中
圖1示出了利用專用高速緩沖存儲器的微處理器的實施例;圖2示出了高速緩沖存儲器操作的一個實施例;圖3是示出專用高速緩沖存儲器處理的一個實施例的流程圖;圖4是專用高速緩沖存儲器的動態(tài)建立和修改的一個實施例的圖示;以及圖5示出了計算機環(huán)境的一個實施例。
詳細描述描述了用于專用高速緩沖存儲器的方法和裝置。
在描述可實現(xiàn)本發(fā)明的各實施例的示例性環(huán)境之前,將簡要地定義將貫穿本申請便用的某些術(shù)語如此處所使用的,“高速緩存”或“高速緩沖存儲器”意味著其中儲存了數(shù)據(jù)以供快速檢索的存儲器。例如,高速緩沖存儲器可包括小型的、快速存儲器,以保持最近訪問的數(shù)據(jù)并允許對數(shù)據(jù)的更快后續(xù)訪問。在一個示例中,從主存儲器中讀取或?qū)懭胫鞔鎯ζ鞯臄?shù)據(jù)可被復(fù)制到高速緩沖存儲器。在另一示例中,可預(yù)取數(shù)據(jù)以儲存在高速緩沖存儲器中,以允許更高效的操作。
如此處所使用的,“線程”或“計算線程”意味著程序、例程或其它進程內(nèi)的部分、路徑、任務(wù)或執(zhí)行路線。一個線程可獨立于其它線程來執(zhí)行。
依照本發(fā)明的一個實施例,用于計算機的高速緩沖存儲器包括專用高速緩沖存儲器。該專用高速緩沖存儲器專用于一個或多個計算機操作。在一個實施例中,該專用高速緩沖存儲器是線程專用的存儲器,它將一個存儲器或存儲器的區(qū)段專用于某一或某些線程。
依照本發(fā)明的一個實施例,專用高速緩存是高速緩沖存儲器的一部分,該高速緩沖存儲器包括通用部分或區(qū)段以及專用部分或區(qū)段。依照本發(fā)明的另一實施例,專用高速緩存包括與通用高速緩沖存儲器分離的存儲器。
在本發(fā)明的一個實施例中,用于專用高速緩存的存儲器的分配可以是動態(tài)的,且在需要時創(chuàng)建、修改或消除。例如,遇見可從專用高速緩存中得益的進程的計算機系統(tǒng)可建立專用高速緩存。
本發(fā)明的一個實施例可用于任何計算機進程。一個實施例可以對在某些已分配周期或時間片期間活動的進程或線程尤其有用。在這些進程中,通用高速緩存中的數(shù)據(jù)可以在已分配周期之間轉(zhuǎn)儲清除。專用高速緩存的一個實施例可提供這樣的高速緩沖存儲器,它與通用高速緩存的操作隔離,且因此可保留數(shù)據(jù)以供特定的線程或進程訪問,而不管通用高速緩存中的操作如何。
在本發(fā)明的一個具體實施例中,對多媒體數(shù)據(jù)利用專用高速緩沖存儲器。多媒體操作可能是極其時間敏感的,且高速緩存性能會極大地影響操作性能。可利用本發(fā)明的一個實施例來為處理器提供線程專用的高速緩沖存儲器,以允許對多媒體編碼和解碼操作的可預(yù)測性能。例如,可使用通用PC(個人計算機)來將DVD(數(shù)字多功能盤,早先稱為數(shù)字視頻盤)或其它媒體流播放到電視輸出設(shè)備。在未來的應(yīng)用中,可使用計算平臺來通過遍及家庭或其它位置的有線和無線網(wǎng)絡(luò)廣播多個音頻和視頻數(shù)據(jù)流。對于成功的操作,可能需要通用計算平臺即使在存在諸如文字處理程序、電子表格和因特網(wǎng)瀏覽器等其它計算工作負載的情況下也要傳遞準(zhǔn)確(或無假信號)的媒體流。在本發(fā)明的一個實施例中,為使進程能夠以可預(yù)測和可靠的方式來操作,向被提供了訪問預(yù)先分配的計算周期以允許對數(shù)據(jù)流的及時處理的多媒體編碼器和解碼器分配線程專用高速緩沖存儲器。
執(zhí)行要求預(yù)定義計算數(shù)量的預(yù)定義操作所需的時間實質(zhì)上可根據(jù)高速緩存的數(shù)據(jù)對相關(guān)工作負載的適用性來變化。在本發(fā)明的一個實施例中,向高速緩沖存儲器的某一部分分配對特定的一個或多個線程的獨占使用。以此方式,對已知工作負載的數(shù)據(jù)訪問時間可保持相對恒定,而處理最壞情況數(shù)據(jù)流所需的時間量可被預(yù)測。
在一個示例中,當(dāng)前系統(tǒng)中的計算密集工作負載可能需要超過每秒1千兆字節(jié)(GB)的主存儲器帶寬。如果假定典型的處理器高速緩存包含例如1兆字節(jié)(MB)的存儲器,則對這些因子的簡單除法指示可每毫秒轉(zhuǎn)儲清除整個高速緩存。使用10%的系統(tǒng)計算能力的多媒體線程可能被調(diào)度為每10毫秒對1毫秒的時間片進行計算。近似而言,高速緩沖存儲器可能在多媒體線程的激活之間被完全轉(zhuǎn)儲清除9次。
在本發(fā)明的一個實施例中,可由共享目標(biāo)線程ID的任何操作使用專用高速緩沖存儲器。在被調(diào)度成每10毫秒對1毫秒的時間片進行計算的線程的示例中,盡管處理器在媒體線程激活之間對9毫秒執(zhí)行通用代碼,但它不會干擾專用于特定媒體操作的高速緩沖存儲器的一個或多個部分。結(jié)果,不需要媒體指令流來通過重新初始化高速緩存數(shù)據(jù)而浪費已分配的計算。
圖1示出了利用專用高速緩沖存儲器的微處理器的一個實施例。在該圖中,處理器105包括用于操作的處理的處理器核心110以及一個或多個高速緩沖存儲器。高速緩沖存儲器可以用各種不同的方式來構(gòu)造。使用對高速緩沖存儲器常見的術(shù)語,圖1所示的圖示包括包含多個寄存器的L0存儲器115。包括在處理器105上的是提供非??焖俚臄?shù)據(jù)訪問的L1高速緩存120。與處理器105分離的是一般更大但不如L1高速緩存120那樣快的L2高速緩存130。系統(tǒng)可包括其它高速緩沖存儲器,諸如被示出為通過L2高速緩存130與處理器通信的L3高速緩存140。
在圖1所示的圖示中,一個或多個高速緩沖存儲器包括擔(dān)當(dāng)專用高速緩沖存儲器的部分或段。例如,L1高速緩存120包括專用高速緩存125,L2高速緩存130包括專用高速緩存135,而L3高速緩存140包括專用高速緩存145。在本發(fā)明的另一實施例中,專用高速緩存可與通用高速緩沖存儲器分離。在一個可能的示例中,專用高速緩存155可與L2高速緩存130并行地運作。專用高速緩沖存儲器專用于某些進程,諸如專用于某些線程的數(shù)據(jù)。
圖2示出了高速緩沖存儲器操作的一個實施例。在該圖中,高速緩沖存儲器205包括要由多個操作利用的通用部分210,以及專用部分215。專用部分215包括一個或多個子部分,每一子部分是用于一特定線程的專用高速緩沖存儲器。在該圖示中,專用部分215包括用于被指定為線程1的第一線程的高速緩存220,用于被指定為線程2的第二線程的高速緩存225,以及用于被指定為線程3的第三線程的高速緩存230。涉及相關(guān)線程的操作的要高速緩存的任何數(shù)據(jù)將被高速緩存在專用部分215中適當(dāng)?shù)膶S酶咚倬彌_存儲器中。要高速緩存的任何其它數(shù)據(jù)將被高速緩存在通用部分210中。
在一個示例中,要高速緩存5個不同的數(shù)據(jù)元素。為本圖示起見,假定有5個可能的線程,這些線程為線程1到線程5。數(shù)據(jù)流260包括要高速緩存的數(shù)據(jù),以及與各不同的線程有關(guān)的數(shù)據(jù)元素。在本圖中,用于線程3的數(shù)據(jù)235被高速緩存在線程3專用高速緩存230中。用于線程5的數(shù)據(jù)240與專用高速緩存無關(guān),因此被高速緩存在高速緩沖存儲器205的通用部分210中。用于線程1的數(shù)據(jù)245被高速緩存在線程1專用高速緩存220中。用于線程2的數(shù)據(jù)250被高速緩存在線程2專用高速緩存225中。用于線程4的數(shù)據(jù)255與專用高速緩存無關(guān),因此被高速緩存在高速緩沖存儲器205的通用部分210中。
圖3是示出專用高速緩沖存儲器的操作的一個實施例的流程圖。對于圖3,假定系統(tǒng)包括通用高速緩存和至少一個專用高速緩存。在該圖中,專用高速緩存專用于特定的線程。在圖3中,接收對高速緩存某一數(shù)據(jù)的請求(305)。例如,最近訪問的數(shù)據(jù)可被提交給高速緩存。進行關(guān)于用于數(shù)據(jù)的線程ID的判斷(310)。然后進行關(guān)于線程ID是否匹配線程專用高速緩存的判斷(315)。如果是,則在線程專用高速緩存中執(zhí)行操作(320)。如果否,則在通用高速緩存中執(zhí)行操作(325)。
圖4是專用高速緩沖存儲器的動態(tài)建立和修改的一個實施例的圖示。圖4示出了可被包括在動態(tài)操作中的某些操作。在該圖中,執(zhí)行高速緩存操作(405)。進行關(guān)于是否存在用于適當(dāng)?shù)木€程的專用高速緩存的判斷(410)。如果否,則進行關(guān)于是否需要專用高速緩存的判斷(415)。如果存在對專用高速緩存的需求,則分配用于適當(dāng)線程的專用高速緩存(420)。
如果存在或創(chuàng)建了線程專用高速緩存,則然后進行關(guān)于該高速緩存的大小和延續(xù)存在的判斷。如果需要較大的高速緩存(425),則可增大高速緩存的大小(440)。如果較小的高速緩存就已足夠(435),則可減小高速緩存大小(440)。如果不再需要用于特定線程的現(xiàn)有專用局速緩存(445),諸如當(dāng)線程不再活動時,則可消除專用高速緩存(450)。
圖5示出了一個示例性計算機環(huán)境的實施例。在本發(fā)明的一個實施例中,計算機500包括總線505或用于傳遞信息的其它通信裝置,以及諸如一個或多個處理器510等與第一總線505耦合來處理信息的處理裝置(示為511到512)。
計算機500還包括隨機存取存儲器(RAM)或其它動態(tài)存儲設(shè)備,作為用于儲存要由處理器510執(zhí)行的信息和指令的主存儲器515。主存儲器515也可用于儲存處理器510的指令執(zhí)行期間的臨時變量或其它中間信息。計算機500還可包括只讀存儲器(ROM)520和/或其它靜態(tài)存儲設(shè)備,用于儲存用于處理器510的靜態(tài)信息和指令。
數(shù)據(jù)存儲設(shè)備525也可被耦合到計算機500的總線505,用于儲存信息和指令。數(shù)據(jù)存儲設(shè)備525可包括磁盤或光盤及其對應(yīng)的驅(qū)動器、閃存或其它非易失性存儲器、或其它存儲器件。這些元件可被組合在一起或可以是單獨的組件,并利用計算機500的其它元件的各部分。
計算機500也可通過總線505耦合到顯示設(shè)備530,諸如液晶顯示器(LCD)或其它顯示技術(shù),用于向最終用戶顯示信息。在某些環(huán)境中,顯示設(shè)備可以是也用作輸入設(shè)備的至少一部分的觸摸屏。在某些環(huán)境中,顯示設(shè)備530可以是或可包括諸如揚聲器等用于提供聽覺信息的聽覺設(shè)備。輸入設(shè)備540可耦合到總線505,用于向處理器510傳遞信息和/或命令選擇。在各種實現(xiàn)中,輸入設(shè)備540可以是鍵盤、鍵區(qū)、觸摸屏和指示筆、語音激活的系統(tǒng)或其它輸入設(shè)備,或這些設(shè)備的組合??杀话ǖ牧硪活愋偷挠脩糨斎朐O(shè)備是光標(biāo)控制設(shè)備545,諸如鼠標(biāo)、跟蹤球或光標(biāo)方向鍵,用于向處理器510傳遞方向信息和命令選擇,并用于控制顯示設(shè)備530上的光標(biāo)移動。
通信設(shè)備550也可被耦合到總線505。取決于具體的實現(xiàn),通信設(shè)備550可包括收發(fā)器、無線調(diào)制解調(diào)器、網(wǎng)絡(luò)接口卡或其它接口設(shè)備。計算機500可使用通信設(shè)備550鏈接到網(wǎng)絡(luò)或其它設(shè)備,這可包括到因特網(wǎng)、局域網(wǎng)或另一環(huán)境的鏈接。在本發(fā)明的一個實施例中,通信設(shè)備550可提供通過網(wǎng)絡(luò)到服務(wù)供應(yīng)商的鏈接。
在以上描述中,為解釋起見,陳述了眾多具體細節(jié)以提供對本發(fā)明的全面理解。然而,本領(lǐng)域的技術(shù)人員可以清楚,本發(fā)明可不采用部分的這些具體細節(jié)來實施。在其它情況下,以框圖形式示出了公知的結(jié)構(gòu)和設(shè)備。
本發(fā)明可包括各種進程。本發(fā)明的進程可由硬件組件來執(zhí)行,或可在機器可執(zhí)行指令中具體化,機器可執(zhí)行指令可用于使用該指令編程的通用或?qū)S锰幚砥骰蜻壿嬰娐穲?zhí)行進程?;蛘?,進程可由硬件和軟件的組合來執(zhí)行。
本發(fā)明的各部分可作為計算機程序產(chǎn)品來提供,計算機程序產(chǎn)品可包括其上儲存有指令的機器可讀介質(zhì),指令可用于對計算機(或其它電子設(shè)備)進行編程以執(zhí)行根據(jù)本發(fā)明的進程。機器可讀介質(zhì)可包括,但不限于,軟盤、光盤、CD-ROM(光盤只讀存儲器)以及磁光盤、ROM(只讀存儲器)、RAM(隨機存取存儲器)、EPROM(可擦除可編程只讀存儲器)、EEPROM(電可擦除可編程只讀存儲器)、磁或光卡、閃存或適用于儲存電子指令的其它類型的媒體/機器可讀介質(zhì)。此外,本發(fā)明也可作為計算機程序產(chǎn)品來下載,其中程序可通過包含在載波或其它傳播介質(zhì)中的數(shù)據(jù)信號,經(jīng)由通信鏈路(例如,調(diào)制解調(diào)器或網(wǎng)絡(luò)連接)從遠程計算機傳送到請求的計算機。
許多方法是以其最基本的形式來描述的,但是可向任何方法添加或從中刪除過程,并可向任何所描述的消息添加或從中減去信息,而不脫離本發(fā)明的基本范圍。本領(lǐng)域的技術(shù)人員可以清楚,可作出許多其它修改和改編。具體實施例不是為了限制本發(fā)明,而是為圖示本發(fā)明而提供的。本發(fā)明的范圍不是由上文提供的具體示例來確定,而是僅由所附權(quán)利要求書來確定。
也應(yīng)當(dāng)理解,貫穿本說明書對“一個實施例”或“實施例”的引用意味著一特定特征可被包括在本發(fā)明的實踐中。類似地,應(yīng)當(dāng)理解,在以上對本發(fā)明的示例性實施例的描述中,本發(fā)明的各種特征有時候在單個實施例、附圖或其描述中被組合在一起,這是為了使公開內(nèi)容成為一個整體并有助于理解各種發(fā)明性方面中的一個或多個。然而,本公開內(nèi)容的方法不被解釋為反映了所要求保護的本發(fā)明需要比每一權(quán)利要求中明確敘述的更多的特征的意圖。相反,如所附權(quán)利要求書所反映的,發(fā)明性方面在于少于單個前述公開的實施例的所有特征。由此,權(quán)利要求書被明確地結(jié)合到本說明書中,每一權(quán)利要求獨立地代表本發(fā)明的一個單獨實施例。
權(quán)利要求
1.一種高速緩沖存儲器,包括通用區(qū)段,所述通用區(qū)段用于通用計算機操作;以及專用區(qū)段,所述專用區(qū)段專用于第一計算機進程。
2.如權(quán)利要求1所述的高速緩沖存儲器,其特征在于,所述專用區(qū)段被分配給第一程序線程。
3.如權(quán)利要求2所述的高速緩沖存儲器,其特征在于,所述第一程序線程包括多媒體進程。
4.如權(quán)利要求1所述的高速緩沖存儲器,其特征在于,所述專用區(qū)段可被動態(tài)地創(chuàng)建或消除。
5.如權(quán)利要求4所述的高速緩沖存儲器,其特征在于,所述專用區(qū)段的大小可被動態(tài)地修改。
6.如權(quán)利要求1所述的高速緩沖存儲器,其特征在于,所述第一計算機操作已被分配了某些處理時間。
7.一種處理器,包括處理器核心;用于通用操作的第一高速緩沖存儲器;以及專用于第一計算機進程的第二高速緩沖存儲器。
8.如權(quán)利要求7所述的處理器,其特征在于,第一計算機進程是多媒體進程。
9.如權(quán)利要求7所述的處理器,其特征在于,所述第一計算機進程已被分配了所述處理器的某些計算周期。
10.如權(quán)利要求7所述的處理器,其特征在于,所述第一高速緩沖存儲器包括存儲器的第一區(qū)段,并且其中,所述第二高速緩沖存儲器包括所述存儲器的第二區(qū)段。
11.如權(quán)利要求10所述的處理器,其特征在于,所述第二高速緩沖存儲器可被動態(tài)地創(chuàng)建或消除。
12.如權(quán)利要求10所述的處理器,其特征在于,所述第二高速緩沖存儲器區(qū)段的大小可被動態(tài)地修改。
13.一種系統(tǒng),包括總線;耦合到所述總線的處理器;支持所述處理器的通用操作的第一高速緩沖存儲器;以及專用于第一程序線程的第二高速緩沖存儲器。
14.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述第一程序線程是多媒體進程。
15.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述第一程序線程已被分配了所述處理器的某些計算周期。
16.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述第一高速緩沖存儲器包括存儲器單元的第一區(qū)段,并且其中,所述第二高速緩沖存儲器包括所述存儲器單元的第二區(qū)段。
17.如權(quán)利要求16所述的系統(tǒng),其特征在于,所述第二高速緩沖存儲器可被動態(tài)地創(chuàng)建或消除。
18.如權(quán)利要求16所述的系統(tǒng),其特征在于,所述第二高速緩沖存儲器區(qū)段的大小可被動態(tài)地修改。
19.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述第一高速緩沖存儲器和所述第二高速緩沖存儲器被包括在所述處理器中。
20.一種方法,包括將與多個計算機操作有關(guān)的數(shù)據(jù)儲存在第一高速緩沖存儲器中;以及將關(guān)于第一計算機進程的數(shù)據(jù)儲存在專用的第二高速緩沖存儲器中。
21.如權(quán)利要求20所述的方法,其特征在于,還包括創(chuàng)建所述第二高速緩沖存儲器。
22.如權(quán)利要求20所述的方法,其特征在于,還包括改變所述第二高速緩沖存儲器的大小。
23.如權(quán)利要求20所述的方法,其特征在于,還包括消除所述第二高速緩沖存儲器。
24.如權(quán)利要求20所述的方法,其特征在于,還包括轉(zhuǎn)儲清除所述第一高速緩沖存儲器,而不轉(zhuǎn)儲清除所述第二高速緩沖存儲器。
25.一種其上儲存有表示指令序列的數(shù)據(jù)的機器可讀介質(zhì),當(dāng)所述指令序列由處理器執(zhí)行時,使所述處理器執(zhí)行以下操作將與多個計算機操作有關(guān)的數(shù)據(jù)儲存在第一高速緩沖存儲器中;以及將關(guān)于第一計算機進程的數(shù)據(jù)儲存在專用的第二高速緩沖存儲器中。
26.如權(quán)利要求25所述的介質(zhì),其特征在于,所述指令序列還包括使所述處理器執(zhí)行包括創(chuàng)建所述第二高速緩沖存儲器的操作的指令。
27.如權(quán)利要求25所述的介質(zhì),其特征在于,所述指令序列還包括使所述處理器執(zhí)行包括改變所述第二高速緩沖存儲器的大小的操作的指令。
28.如權(quán)利要求25所述的介質(zhì),其特征在于,所述指令序列還包括使所述處理器執(zhí)行包括消除所述第二高速緩沖存儲器的操作的指令。
29.如權(quán)利要求25所述的介質(zhì),其特征在于,所述指令序列還包括使所述處理器執(zhí)行包括轉(zhuǎn)儲清除所述第一高速緩沖存儲器,而不轉(zhuǎn)儲清除所述第二高速緩沖存儲器的操作的指令。
全文摘要
描述了用于專用高速緩沖存儲器的方法和裝置。在本發(fā)明的一個實施例中,高速緩沖存儲器包括通用區(qū)段和專用區(qū)段。通用區(qū)段用于通用計算機操作。專用區(qū)段專用于第一計算機進程。
文檔編號G06F12/08GK1898656SQ200480039062
公開日2007年1月17日 申請日期2004年12月23日 優(yōu)先權(quán)日2003年12月31日
發(fā)明者B·B·繁寧 申請人:英特爾公司