專利名稱::在處理器中用于減少功耗的微變換檢測緩沖器及微標記符的制作方法
技術領域:
:本發(fā)明涉及處理器的領域,特別是處理器中的高速緩存結(jié)構(gòu)。
背景技術:
:處理器通常實施虛擬尋址,也實施高速緩存存儲器用于存儲最近所存取的數(shù)據(jù)和/或指令。該處理器通常產(chǎn)生待存取(即待讀取或待寫入)位置的虛擬地址,將該虛擬地址轉(zhuǎn)換成物理地址,以便判別在該高速緩存存儲器中該存取是否擊中(hit)。更確切的說,執(zhí)行該高速緩存存儲器的存取與轉(zhuǎn)換同時并行進行,而該轉(zhuǎn)換用來檢測該高速緩存存儲器的存取是否擊中。在該處理器中該高速緩存存儲器的存取通常是關鍵時徑(criticaltimingpath)中的一個,而高速緩存潛伏時間(cachelatency高速緩存遲滯)也是處理器能達到的性能水平的關鍵。因此,處理器設計者常常企圖將他們的高速緩存/轉(zhuǎn)換設計最佳化,以減少高速緩存潛伏時間并滿足時間上的需求。然而,許多最佳化的技術可能增加該高速緩存/轉(zhuǎn)換電路的功耗。在許多的處理器中,對處理器的整個功耗來說,該高速緩存/轉(zhuǎn)換電路可能是最大貢獻者之一。當處理器的功耗隨著時間而增加時,則控制處理器的功耗(及設計用于降低功耗的處理器)的重要性也隨之增加。由于該高速緩存/轉(zhuǎn)換電路常常是處理器的功耗的最大主因,所以更加期望用于降低該高速緩存/轉(zhuǎn)換電路中的功耗的技術。為了改良性能,集關聯(lián)式高速緩存存儲器(setassociativecache)通常都在處理器中實施。而在集關聯(lián)式高速緩存存儲器中,索引至高速緩存存儲器之內(nèi)的特定地址選擇包含兩個或兩個以上的高速緩存線存儲位置的集合,并可用來存儲由該特定地址指定的高速緩存線。在該集合中的高速緩存線存儲位置被稱為集合的路(waysoftheset),具有W路的高速緩存被稱為W路集關聯(lián)式(W-waysetassociative)高速緩存(其中W為大于1的整數(shù))。對相同大小的高速緩存存儲器而言,集關聯(lián)式高速緩存存儲器通常比直接映射式高速緩存存儲器(direct-mappedcache)有較高擊中率,進而可提供比直接映射式高速緩存存儲器更佳的性能。然而,傳統(tǒng)的集關聯(lián)式高速緩存存儲器通常也比直接映射式高速緩存存儲器要消耗更多電力。一般而言,高速緩存存儲器包含用于存儲高速緩存數(shù)據(jù)(cacheddata)的數(shù)據(jù)存儲器和用于存儲標記符的標記符存儲器,而該標記符用于識別該高速緩存數(shù)據(jù)的地址。在傳統(tǒng)的集關聯(lián)式高速緩存存儲器中,響應輸入的地址,該數(shù)據(jù)存儲器中的每一路及該標記符存儲器都會被存取??杀容^對應于集合中每一路的標記符以決定該輸入的地址所擊中的路(若有任何),該高速緩存存儲器將輸出所選擇對應路的數(shù)據(jù)。因此,該數(shù)據(jù)存儲器的每一路及該標記符存儲器都可被存取并消耗電力。此外,由于該高速緩存存儲器的存取常常是關鍵時徑,所以為了計時及潛伏時間,將該標記符存儲器及該數(shù)據(jù)存儲器的存取最佳化,而此將進一步增加電力的消耗。更進一步,該高速緩存存儲器通常標記有物理地址,所以在關鍵路徑中有轉(zhuǎn)換電路,并且為了計時及潛伏時間而被最佳化,因而增加該轉(zhuǎn)換電路的功耗。
發(fā)明內(nèi)容在一個實施例中,處理器包括高速緩存存儲器、第一變換檢測緩沖器(TranslationLook-asideBuffer;TLB)以及與該第一TLB連接的標記符電路。其中,高速緩存存儲器包括數(shù)據(jù)存儲器及標記符存儲器,數(shù)據(jù)存儲器被設定為用于存儲多條高速緩存線,而標記符存儲器被設定為用于存儲多個標記符。多個標記符中的每一個標記符分別對應多條高速緩存線中的一條高速緩存線。第一TLB被設定為用于存儲多個虛擬地址的頁面部分,虛擬地址用于識別多個虛擬頁面,虛擬頁面的物理地址轉(zhuǎn)換存儲在第一TLB中。標記符電路被設定為用于識別一條或一條以上的多條高速緩存線,高速緩存線存儲在高速緩存存儲器中并且在多個虛擬頁面內(nèi)。響應第一TLB中第一虛擬地址的擊中以及標記符電路中第一虛擬地址的擊中,標記符電路被設定為用于阻止對高速緩存存儲器中的標記符存儲器的讀取。在另一個實施例中,考慮了一種方法。用第一虛擬地址存取第一TLB。第一TLB被設定為用于存儲虛擬地址的多個頁面部分,虛擬地址用來識別多個虛擬頁面,虛擬頁面的物理地址轉(zhuǎn)換存儲在該第一TLB中。響應第一TLB中第一虛擬地址的擊中而存取一標記符電路。標記符電路被設定為用于識別多條高速緩存線,高速緩存線存儲在高速緩存存儲器中并且在多個虛擬頁面內(nèi)。通過第一TLB及標記符電路中的第一虛擬地址檢測擊中。響應第一TLB及標記符電路中第一虛擬地址的擊中,而阻止對高速緩存存儲器中標記符存儲器的讀取。在另一個實施例中,處理器包括高速緩存存儲器及標記符電路。高速緩存存儲器包括數(shù)據(jù)存儲器及標記符存儲器,數(shù)據(jù)存儲器被設定為用于存儲多條高速緩存線而標記符存儲器被設定為用于存儲多個標記符。多個標記符中的每一個標記符分別對應多條高速緩存線的一條高速緩存線。標記符電路被設定用于檢測在高速緩存存儲器中多條高速緩存線的子集中的第一虛擬地址的擊中。響應標記符電路中第一虛擬地址的擊中,而將標記符電路設定為用于阻止對標記符存儲器的讀取,其中數(shù)據(jù)存儲器被設定為用于輸出對應于第一虛擬地址的第一高速緩存線的至少一部分。下面參照附圖進行詳細說明,現(xiàn)在簡要地說明附圖。圖1為處理器的一個實施例一部分的方塊圖;圖2為圖1所示的轉(zhuǎn)換及濾波方塊圖的一個實施例的方塊圖;圖3為可通過該處理器的一個實施例而執(zhí)行流水線的一個實施例的時序圖;圖4為微TLB標記符電路的一個實施例的方塊圖;圖5為對應于圖4所示的控制電路的真值表的一個實施例的方塊圖;圖6為微TLB數(shù)據(jù)電路的一個實施例的方塊圖;圖7為微標記符電路的一個實施例的方塊圖;圖8為圖2所示方塊的一個實施例的操作流程圖;圖9為圖1所示的路線預測器的一個實施例的方塊圖;圖10為說明當高速緩存存儲器錯過而選擇替代路線(replacementway)的一個實施例的流程圖;圖11為圖1所示的數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器一部分的一個實施例的方塊圖;圖12為圖1所示的數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器一部分的第二實施例的方塊圖;圖13為圖1所示的該數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器一部分的第三實施例的方塊圖;圖14為產(chǎn)生路線預測的一個實施例的流程圖;圖15為圖1所示的包含該處理器的計算機系統(tǒng)的一個實施例的方塊圖;圖16為圖1所示的包含該處理器的計算機系統(tǒng)的第二實施例的方塊圖。盡管本發(fā)明易受不同的修改及變更形式所影響,但是仍以附圖為例顯示了本發(fā)明的具體實施例,并將在下面進行詳細說明。但是,應當理解,本發(fā)明的附圖和詳細說明并非用于將本發(fā)明限制在所述的特定形式,相反,本發(fā)明將涵蓋落于權利要求書中所定義的本發(fā)明實質(zhì)和范圍內(nèi)的所有修改、等價物以及替換。具體實施例方式請參閱圖1所示的處理器10的部分實施例的方塊圖。在此說明的實施例中,處理器10包含地址產(chǎn)生單元12(AddressGenerationUnit;AGU)、路線預測器14、數(shù)據(jù)高速緩存器16以及轉(zhuǎn)換/濾波電路18。其中數(shù)據(jù)高速緩存器16包括數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20以及數(shù)據(jù)高速緩存器標記符存儲器22。連接AGU12與路線預測器14以接收地址操作數(shù)。將AGU12設定為用于產(chǎn)生虛擬地址(VirtualAddress;VA),連接并提供VA至路線預測器14、數(shù)據(jù)高速緩存器16(尤指數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20與數(shù)據(jù)高速緩存器標記符存儲器22)、以及轉(zhuǎn)換/濾波電路18。連接路線預測器14以將路線預測提供給數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20,并將數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20設定成用于傳送數(shù)據(jù),以響應路線預測及虛擬地址。還連接路線預測器14以提供早期錯過指示(earlymissindication)。轉(zhuǎn)換/濾波電路18連接至該數(shù)據(jù)高速緩存器16,且被連接以提供變換檢測緩沖器(TLB)錯過指示。數(shù)據(jù)高速緩存器16被設定為用于產(chǎn)生高速緩存錯過指示(cachemissindication)。連接AGU12以接收存儲器操作的地址操作數(shù),且針對地址操作數(shù)將AGU12設定為用于產(chǎn)生虛擬地址。例如,AGU12可包括加法電路,加法電路被設定為將地址操作數(shù)加起來以便產(chǎn)生虛擬地址。本發(fā)明所使用的存儲器操作可包含用于讀取存儲器位置的加載操作,以及用于寫入存儲器位置的存儲操作。存儲器操作可以是用于指定存儲器操作數(shù)的指令的隱含部分;在一些實施例中,或可以是響應加載或存儲的指令(有時也稱為移動指令)而執(zhí)行的明確的操作。地址操作數(shù)可以是對應于存儲器操作的指令的操作數(shù),該指令被定義用來產(chǎn)生存儲器操作數(shù)的地址。地址操作數(shù)可包含一種或一種以上的來自由處理器10實施的寄存器的寄存器值(registervalue)、編入指令中的替代數(shù)據(jù)、以及在某些實施例中來自由處理器10實施的分段機制(segmentationmechanism)的分段基址(segmentbaseaddress)。虛擬地址可包括從指令的地址操作數(shù)所產(chǎn)生的地址,該指令還未通過頁面轉(zhuǎn)換機制(pagingtranslationmechanism)轉(zhuǎn)換為物理地址,該物理地址用于尋址具有處理器10的計算機系統(tǒng)中的存儲器。例如,在一個實施例中處理器10可執(zhí)行x86指令集架構(gòu)(instructionsetarchitecture)(也稱為IA-32)。而此實施例中,線性地址(linearaddress)可以是虛擬地址的示例。若頁面轉(zhuǎn)換沒有激活,則虛擬地址可等于該物理地址。處理器10依頁面規(guī)模大小(pagegranularity)執(zhí)行頁面機制(pagingmachenism)將虛擬地址轉(zhuǎn)換為物理地址。換言之,具有用于頁面中每一個虛擬地址的一個轉(zhuǎn)換條目用來辨識對應的物理地址。頁面可以是不同大小。例如,4KB為一般的大小。在有些模式中,該x86指令集架構(gòu)還指定2MB頁面大小以及4MB頁面大小。虛擬地址的最低有效位定義了在該頁面內(nèi)的偏移量(offset),且未被該頁面機制轉(zhuǎn)換。如以4KB頁面大小為例,虛擬地址的最低有效12位將構(gòu)成頁面偏移量。而未包含頁面偏移量的虛擬地址的剩余位,可形成為虛擬地址的頁面部分。頁面部分可用于頁面機制中,以便為虛擬地址選擇物理地址轉(zhuǎn)換。由另一觀點來看,虛擬地址的頁面部分可定義出虛擬頁面,虛擬頁面通過物理地址轉(zhuǎn)換而轉(zhuǎn)換為物理頁面。處理器10可采用一種或一種以上的技術來減少功耗。例如,轉(zhuǎn)換/濾波電路18可含有相當小的TLB(在本文中稱為微TLB),以及標記符電路(本文中稱為微標記符電路)。微標記符電路可設定為用于存儲高速緩存線的相當少量的標記符,該高速緩存線(i)在虛擬頁面內(nèi),微TLB為虛擬頁面存儲轉(zhuǎn)換,(ii)存儲在數(shù)據(jù)高速緩存器16內(nèi)??纱嫒∥LB以響應虛擬地址,如果在該微TLB中檢測到擊中,則可避免針對轉(zhuǎn)換/濾波電路18中較大的主TLB(或多個TLB)的存取,而存取主TLB所消耗的電力則因此可節(jié)省下來。此外,若檢測到微TLB擊中,則可存取該微標記符。若檢測到該微標記符中的擊中,則可避免讀取用來決定高速緩存存儲器是否擊中/錯過的數(shù)據(jù)高速緩存器標記符存儲器22,因此存取數(shù)據(jù)高速緩存器標記符存儲器22所消耗的電力也可減少。而在微標記符中的擊中或在數(shù)據(jù)高速緩存器標記符存儲器中的擊中的任一情況下,來自該擊中的高速緩存線的數(shù)據(jù)可由該數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20轉(zhuǎn)送。因此,微TLB可當作存取該主TLB的濾波器,微TLB與微標記符可當作存取數(shù)據(jù)高速緩存器標記符存儲器22的濾波器??稍谔幚砥?0中執(zhí)行的另一種節(jié)省功耗的技術將路線預測器14用在其中數(shù)據(jù)高速緩存器16為集關聯(lián)式的實施例。路線預測器14則針對存取數(shù)據(jù)高速緩存器16的存儲器操作產(chǎn)生對數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20的路線預測。響應路線預測及虛擬地址,數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20可將數(shù)據(jù)傳送(在圖1的數(shù)據(jù)傳送)至各種可能使用該數(shù)據(jù)的處理器電路(未顯示在圖1中)。由數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20讀取且傳送的數(shù)據(jù)可包括高速緩存線或一部分高速緩存線。由于響應路線預測而傳送數(shù)據(jù),所以在處理器10中轉(zhuǎn)換電路及高速緩存標記符電路不再是關鍵要徑的一部分。在有些實施例中,即使在電路內(nèi)花費一些潛伏時間(latency遲滯時間),可利用具有較低功耗的電路實施該轉(zhuǎn)換電路及高速緩存標記符電路??稍试S例如微TLB及微標記符的濾波結(jié)構(gòu),并可以將轉(zhuǎn)換電路及高速緩存標記符比較的潛伏時間延長(并可通過減少對較大的TLB結(jié)構(gòu)以及數(shù)據(jù)高速緩存器標記符存儲器22的存取來進一步地減少電力的總消耗量)。此外,通過允許降低數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20中的功耗,進而可使用路線預測器14減少處理器10的功耗。數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20的各種設計將參閱圖9并在下文中詳細說明??赏ㄟ^利用轉(zhuǎn)換/濾波電路18的微TLB/微標記符,和/或與標記符或來自該數(shù)據(jù)高速緩存器標記符存儲器22的標記符進行的標記符比較,而使路線預測生效。若該路線預測正確,則響應該路線預測通過以數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20轉(zhuǎn)送的數(shù)據(jù)繼續(xù)進行操作。另一方面,若該路線預測并不正確,則存儲器操作程序可能重頭來過?;蛘咴谟行嵤├?,數(shù)據(jù)高速緩存器16可以控制取代,如果路線預測不正確,則數(shù)據(jù)高速緩存器16中地址錯過。在有些實施例中,可在路線預測的確認期間內(nèi)判別正確的路線預測,并且可在重試期間內(nèi)存取正確的路。而在另一個實施例中,在重試期間可搜尋其它未預測的路線是否擊中(例如,可執(zhí)行在數(shù)據(jù)高速緩存器16中傳統(tǒng)的集關聯(lián)式查詢)。而此重試可由各種方式來完成。例如在有些實施例中,緩沖器可存儲已發(fā)出的執(zhí)行指令等(例如,程序機或保留站)。該存儲器操作可由緩沖器重新發(fā)出。在另一個實施例中,可以重新擷取(例如,可從指令高速緩存存儲器或存儲器)對應于存儲器操作的指令以及后繼的指令。在有些實施例中,路線預測14的使用可減少在該數(shù)據(jù)高速緩存器標記符存儲器22中的功耗。為了確認路線預測,只需存取并比較在已預測方向中的標記符。一些實施例僅在數(shù)據(jù)高速緩存器標記符存儲器22中存取已預測方向(若該微標記符中檢測到錯過,則在數(shù)據(jù)高速緩存器標記符存儲器中執(zhí)行存取,以檢測高速緩存錯過是否發(fā)生)。若在已預測方向中檢測到錯過,則將如上文所述可重試存儲器操作。在此實施例中,數(shù)據(jù)高速緩存器標記符存儲器22可以收到路線預測,如圖1中的虛線箭頭所顯示。當無法針對指定的存儲器操作產(chǎn)生路線預測,則路線預測器14也可提供早期錯過指示。路線預測器可含有存儲器,用于存儲在高速緩存存儲器的每一方向中存儲的地址的指示,且可將該指示與存儲器操作的虛擬地址的對應的指示進行比較,以便產(chǎn)生以存儲器操作的路線預測。若對應的指示并不與路線預測器中的任一指示相符,則將不產(chǎn)生路線預測(即并且可以檢測到錯過)。早期錯過表示可用來暗示L2高速緩存存儲器(以數(shù)據(jù)高速緩存器16當作L1高速緩存存儲器)數(shù)據(jù)高速緩存器16中發(fā)生錯過,因而允許L2高速緩存存儲器及時提早開始存取,而不是等待來自由轉(zhuǎn)換/濾波電路18的高速緩存存儲器錯過指示。數(shù)據(jù)高速緩存器16可指示高速緩存錯過,轉(zhuǎn)換/濾波電路18可指示TLB錯過,以供給在處理器10中其它回路做校正動作,(即表格漫游(tablewalking)以找出待存入該TLB中的轉(zhuǎn)換、高速緩存填充(cachefill),以將錯過的高速緩存線填入數(shù)據(jù)高速緩存器16等等)。用于表格搜尋以及存取存儲器以擷取錯過的高速緩存線的電路并未顯示在圖1中。在說明的實施例中,數(shù)據(jù)高速緩存器16可設定為集關聯(lián)式。而其它實施例可為全關聯(lián)式,以及路線預測器14可用于預測在數(shù)據(jù)高速緩存器16中任一條目(entry)的擊中。若實施例并未實行路線預測器14,則可能有其它的配置(例如直接映射式)。而本發(fā)明所使用的高速緩存線可以是一些連續(xù)的字節(jié),字節(jié)是高速緩存存儲器(例如數(shù)據(jù)高速緩存器或指令高速緩存存儲器)中配置/解除配置的單位。例如,雖然任何大小的高速緩存線均可執(zhí)行,但是一條高速緩存線可為32個連續(xù)字節(jié)或64個連續(xù)的字節(jié)。數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20可包括多個條目,每一條目被設定為用于存儲一高速緩存線。以集關聯(lián)式實施例,條目可安排成W條高速緩存線的集合。數(shù)據(jù)高速緩存器標記符存儲器22還包括多個條目,每一條目被設定為用于存儲一標記符,這些標記符對應于數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20中的條目。數(shù)據(jù)高速緩存器標記符存儲器22的這些條目可安排成W集合,以對應于數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20的安排。在有些實施例中,數(shù)據(jù)高速緩存器16可被物理地標記(即,在數(shù)據(jù)高速緩存器標記符存儲器22中的這些標記符可為物理地址)。一般而言,若對應于特定的物理地址的數(shù)據(jù)存儲在數(shù)據(jù)高速緩存器16內(nèi),則在數(shù)據(jù)高速緩存器16可檢測到擊中。若對應特定物理地址的數(shù)據(jù)沒有存放在數(shù)據(jù)高速緩存器16內(nèi),則將檢測到錯過。但是,在一些情況中即使數(shù)據(jù)高速緩存器16被物理地標記,也可較為方便地討論數(shù)據(jù)高速緩存器16擊中的虛擬地址。若對應的物理地址(虛擬地址轉(zhuǎn)換成的)為擊中,則虛擬地址在數(shù)據(jù)高速緩存器16中可為擊中。在有些情況下,虛擬地址在沒有實際使用對應的物理地址的情況下,仍可檢測為擊中(例如在微標記符中,此將在下文詳細說明)。一般而言,依據(jù)所需的設計該處理器10可包含任何其它電路。在各種不同的實施例中,處理器10可為超標量或標量,這些處理器可依照順序的指令執(zhí)行或不依照順序的指令執(zhí)行等,且可包含電路以執(zhí)行上述的特征。而在有些實施例中,例如將設置一個以上的AGU12并可并行地產(chǎn)生虛擬地址。針對此等實施例,路線預測器14、數(shù)據(jù)高速緩存器16以及轉(zhuǎn)換/濾波電路18可包含電路,用于并行處理多個虛擬地址,或者對其它的實施例也可包含電路來處理該多個虛擬地址。請注意雖然說明了一起使用路線預測器14及轉(zhuǎn)換/濾波電路18的微TLB/微標記符以減少功耗,但是在不執(zhí)行微TLB/微標記符而實施路線預測器14的實施例也是可以考慮采用的。此外,在沒有路線預測器14的情況下實施微TLB/微標記符的實施例等是可以考慮采用的(例如,通過延后來自數(shù)據(jù)高速緩存器16的數(shù)據(jù)轉(zhuǎn)送直到?jīng)Q定好路的選擇為止)。例如,在有些實施例中,當在微標記符中檢測到擊中時,該微標記符可以輸出路的選擇。請注意,雖已說明微TLB/微標記符電路及路線預測器14與數(shù)據(jù)高速緩存器一起使用,但是需要時,微TLB、微標記符和/或路線預測器14的任一個都可與處理器中的指令高速緩存存儲器一起使用。請參閱圖2所示的轉(zhuǎn)換/濾波電路18的一個實施例的方塊圖。在所示的實施例中,轉(zhuǎn)換/濾波電路18包含微TLB30(含有微TLB標記符電路32以及微TLB數(shù)據(jù)電路34)、微標記符電路36、主TLB38(含有主TLB標記符電路40以及主TLB數(shù)據(jù)電路42)、多任務器44以及反向器46與48。在該圖2中還顯示了部分的數(shù)據(jù)高速緩存器16,其含有數(shù)據(jù)高速緩存器標記符存儲器22、高速緩存擊中/錯過電路50以及比較器52。連接微TLB30(尤指微TLB標記符電路32)、微標記符電路36、數(shù)據(jù)高速緩存器標記符存儲器22以及主TLB38(尤指主TLB標記符電路40)用于接收來自AGU12的虛擬地址。微TLB標記符電路32被設定為將擊中信號輸出至微TLB數(shù)據(jù)電路34、微標記符電路36、多任務器44及反向器46(其中反向器46進一步連接至主TLB標記符電路40)。微TLB標記符電路32進一步被設定為將一條目指示輸出至微TLB數(shù)據(jù)電路34及微標記符電路36。微TLB數(shù)據(jù)電路34被設定為將物理地址(PA)輸出至多任務器44,如同主TLB數(shù)據(jù)電路42的配置。多任務器44的輸出被連接至比較器52。主TLB標記符電路40連接至主TLB數(shù)據(jù)電路42,以便提供TLB錯過表示。微標記符電路36被設定為將擊中信號輸出至反向器48以及高速緩存擊中/錯過電路50,其中反向器48進一步連接至數(shù)據(jù)高速緩存器標記符存儲器22。而高速緩存存儲器擊中/錯過電路50進一步連接至比較器42,以便提供高速緩存存儲器錯過指示。微TLB30接收來自AGU12的虛擬地址,并將虛擬地址的頁面部分與存儲在微TLB30中對應至轉(zhuǎn)換的虛擬地址的頁面部分作比較。詳而言之,微TLB標記符電路32可包括用于存儲虛擬地址的這些頁面部分的多個條目。對應的物理地址及其它來自頁面表并提供轉(zhuǎn)換的信息可存儲在微TLB數(shù)據(jù)電路34。微TLB標記符電路32執(zhí)行比較,并輸出擊中信號以便指示出在微TLB中虛擬地址是否擊中;若該指示為擊中,則條目指示將指示出哪一個條目為擊中。微TLB數(shù)據(jù)電路34可能會收到該條目指示并可將對應的物理地址輸出至多任務器44。擊中信號可使多任務器44選擇來自微TLB30的物理地址當作輸出,并輸出至比較器52。雖然在本文中詳細說明了全關聯(lián)式實施例,但其它實施例可能采用其它的配置。在各種不同的實施例中,微TLB30可包括例如全關聯(lián)式配置、集關聯(lián)式配置或者直接映射式配置。此外,來自微TLB30的擊中信號可作為微標記符電路36的使能(enable)。微標記符電路36存儲在虛擬頁面中多條高速緩存線的標記符,而微TLB30則存儲虛擬頁面的轉(zhuǎn)換內(nèi)。因此,在微TLB中若有錯過,微標記符電路36也錯過。若在微TLB30中若有擊中,則微標記符電路30將擊中。此外,微標記符電路36將接收條目指示。微標記符電路36決定虛擬地址是否在微標記符電路36中有擊中,并產(chǎn)生擊中信號。在微標記符電路36中若有擊中,則虛擬地址在數(shù)據(jù)高速緩存器16中擊中,且避免對數(shù)據(jù)高速緩存器標記符存儲器22中的標記符進行存取。因此,來自微標記符電路36的擊中信號可作為數(shù)據(jù)高速緩存器標記符存儲器22的禁止(disable),以阻止數(shù)據(jù)高速緩存器標記符存儲器22為響應虛擬地址而讀取任何標記符。反向器48因而可反轉(zhuǎn)來自微標記符電路36的擊中信號并作為使能輸出至數(shù)據(jù)高速緩存器標記符存儲器22。高速緩存擊中/錯過電路50還收到來自微標記符電路36的擊中信號,且若擊中信號指示出在微標記符電路36中為擊中,則不表示虛擬地址為高速緩存錯過。在此情況下,由比較器52發(fā)出的擊中/錯過可以不予理會。假設微標記符電路36中有錯過(或者由于在微TLB電路30中有錯過,則微標記符電路36并未使能),數(shù)據(jù)高速緩存器標記符存儲器22則被使能并將一標記符或多個標記符輸出至比較器52。而在實施路線預測器14的一些實施例中,只可以輸出來自預測路的標記符。對此實施例而言,數(shù)據(jù)高速緩存器標記符存儲器22可連接成接收該路線預測(WP)。而其它實施例則可輸出在索引集合內(nèi)用于比較的每一標記符。在此種實施例中,高速緩存錯過指示可以指示錯過或在預測的路內(nèi)錯過,但在未預測的路內(nèi)擊中,若在未預測的路內(nèi)出現(xiàn)擊中,則不會發(fā)生高速緩存填充。而在有些實施例中,當高速緩存錯過出現(xiàn)時,可控制替代路的選擇,因此不會發(fā)生在未預測的路內(nèi)擊中的情況。有關于此替代的范例將參閱圖9及圖10并在下文中討論。比較器52將比較的結(jié)果提供給高速緩存擊中/錯過電路50,以產(chǎn)生高速緩存錯過指示。若在數(shù)據(jù)高速緩存器標記符存儲器22中有擊中,且在微TLB30中曾有擊中,則可從數(shù)據(jù)高速緩存器標記符存儲器22加載標記符于微標記符電路36。由于微標記符電路36存儲同樣位于數(shù)據(jù)高速緩存器標記符存儲器22內(nèi)的標記符,因此可維持微標記符電路36與數(shù)據(jù)高速緩存器標記符存儲器22一致。由于經(jīng)由錯過高速緩存線的高速緩存填充的替代,在數(shù)據(jù)高速緩存器16的高速緩存線可能無效,或者可能由其它處理器或代理器的存取而產(chǎn)生的偵伺擊中(snoophit)而無效,其它的處理器或代理器在與處理器10連接的互連上。在一個實施例中,微標記符電路36的全部內(nèi)容,響應數(shù)據(jù)高速緩存器標記符存儲器22中的更新,可以是無效的。在替代實施例中,僅將在微標記符電路36中與當發(fā)生更新時的索引有相同的高速緩存索引的條目無效。而在另一替代實施例中,將僅有(i)與發(fā)生更新時的索引有相同的高速緩存索引;(ii)與數(shù)據(jù)高速緩存器16中無效的高速緩存線有相同的虛擬地址(在對應微TLB條目中)的微標記符電路36中的條目無效。微標記符電路36存儲虛擬頁面內(nèi)的標記符,標記符通過微TLB30中的條目而轉(zhuǎn)換。因此,當更新微TLB30時微標記符也可更新。在一個實施例中,若更新微TLB30則微標記符電路36的整體內(nèi)容可能被無效化。在替代實施例中,可將微標記符電路36中對應于被改變的微TLB的條目的標記符選擇性無效化。微TLB30還可當作主TLB38的濾波器。換言之,若在微TLB30中有擊中則避免對主TLB38存取。因此,通過微TLB30輸出的擊中信號可能由反向器46反轉(zhuǎn)并輸入至主TLB標記符電路40上的使能輸入。若使能輸入并未確立,則主TLB標記符電路40可阻止對主TLB標記符進行存取。若在微TLB30中有錯過,則主TLB標記符電路40可決定主TLB38中虛擬地址是否為擊中。若有擊中,則可存取主TLB數(shù)據(jù)電路42并將對應的物理地址輸出至多任務器44。此外,可將來自主TLB38的轉(zhuǎn)換加載至微TLB30。由于微TLB30中有錯過,則多任務器44選擇由主TLB數(shù)據(jù)電路42所輸出的物理地址并輸出至比較器52。若將主TLB38使能并在主TLB38中檢測到有錯過,則主TLB38產(chǎn)生TLB錯過的指示,以引起頁面表的表格搜尋(tablewalk)以找到所需轉(zhuǎn)換。在表格搜尋期間,在有些實施例中,處理器10可能暫停運作以便減少功耗。在一個實施例中,當主TLB38加載時微TLB30并不會加載。在可加載該微TLB30時,可以檢測到微TLB30中頁面的后續(xù)錯過及主TLB38的擊中。在替代實施例中,當加載主TLB38時,可同時加載微TLB30。由于微TLB30存儲轉(zhuǎn)換,而轉(zhuǎn)換也存儲在主TLB38中,所以可維持微TLB30與主TLB38一致。當主TLB38中一條目被覆寫(overwritten)時(為響應主TLB38的錯過及成功的表格搜尋),將微TLB30中的對應的條目(若有任一)無效化。在一個實施例中,當主TLB38被加載一新條目時,微TLB30的整體內(nèi)容可能被無效化。在一個實施例中,主TLB38可包括兩種TLB一種用于存儲4KB頁面大小的轉(zhuǎn)換,另一種用于存儲2MB或4MB頁面大小的轉(zhuǎn)換。4KB的TLB可包括任何一種配置,但在一個實施方式中可以是4路512條目的TLB。2MB/4MBTLB可包括任何一種配置,但在一個示例中可有8條目,全關聯(lián)式TLB。在施行x86指令集架構(gòu)的一個實施例中,CR3配置緩存器存儲存儲器中頁面表的基底地址。主TLB38的條目可標記符有CR3地址,轉(zhuǎn)換是從該地址讀取,因此主TLB38不須被無效化以響應CR3地址的變化。在有些實施例中,微TLB30中的條目可作相同的標記符或不標記符,并且被無效化以響應CR3地址的變化。請注意雖已描述通過微TLB30及微標記符電路36提供擊中信號,但是通??商峁糁兄甘荆瑩糁兄甘景ㄈ魏螖?shù)量的信號,用于指示是否檢測到擊中。還有,雖然微TLB30顯示為輸出擊中指示以及識別擊中條目的條目指示時,可提供任何擊中及條目的指示。例如,在一個實施例中,擊中及條目指示可合并為對應于微TLB30中的條目的單一熱編碼法(one-hotencoding)。單一熱編碼法可(以任一確立的位)指示有擊中,且可經(jīng)由哪個位是確立的而指示出該擊中條目。請注意,在有些實施例中轉(zhuǎn)換/濾波電路18可以操作在多個流水線階段間。流水線存儲裝置(例如正反器、緩存器等)將不在圖2中說明。可以使用任何流水線階段的分割。例如圖3說明流水線的一個示范例,將通過處理器10的一個實施例施行。圖3中的垂直虛線分界出時鐘周期。該時鐘周期標明為地址產(chǎn)生(addressgeneration;AG)、數(shù)據(jù)高速緩存器1(datacache1;DC1)、數(shù)據(jù)高速緩存器2(datacache2;DC2)以及數(shù)據(jù)高速緩存器3(datacache3;DC3)。在該AG階段期間,該AGU12從地址操作產(chǎn)生虛擬地址(參考數(shù)字60)。此外,在此實施例中路線預測器14產(chǎn)生路線預測(參考數(shù)字62)。路線預測器14可收到地址操作數(shù),并可計算地址索引的總和(將在下文詳細說明),以尋址存儲路線預測值的存儲器。在替代實施例中,來自AGU12的虛擬地址可用來索引路線預測存儲器。而在其它實施例中,路線預測器14可在DC1階段中運作。在DC1階段期間,將存取微TLB標記符電路32并決定是否在微TLB30中有擊中/錯過(參考數(shù)字64)。若微TLB30中有擊中,在DC2階段存取微標記符電路36(參考數(shù)字66)以及在DC3階段存取微TLB數(shù)據(jù)電路34(參考數(shù)字68)。若微標記符電路36中有擊中,可避免存取數(shù)據(jù)高速緩存器標記符,并經(jīng)由微標記符電路36中的擊中而檢測到在數(shù)據(jù)高速緩存器16中的擊中。若微標記符電路36中有錯過,則在DC3階段(參考數(shù)字70)存取數(shù)據(jù)高速緩存器標記符存儲器22且與微TLB數(shù)據(jù)電路34的輸出作比較。若微TLB30中有錯過,則在DC2階段期間存取主TLB標記符電路40(參考數(shù)字72),以及若主TLB標記符電路40中有擊中,則在DC3階段存取主TLB數(shù)據(jù)電路42(參考數(shù)字74)。而在DC3階段中,TLB數(shù)據(jù)電路42的輸出將與數(shù)據(jù)高速緩存器標記符存儲器22的輸出作比較。此外在DC1階段期間,存取數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20,并輸出來自已預測線路的數(shù)據(jù)(參考數(shù)字76)。在DC2階段傳送數(shù)據(jù)(參考數(shù)字78)。請參閱圖4所示的微TLB標記符電路32的一個實施例的方塊圖。在圖4的一個實施例中,微TLB標記符電路32包含具有條目80A及80B的條目組,條目80A及80B分別連接至對應的比較電路82A及82B,而這些條目80A及80B以及這些比較電路82A及82B與控制電路84連接。這些比較電路80A及80B連接為用于接收來自該AGU12的虛擬地址。控制電路84包含最近最少使用(LeastRecentlyUsed;LRU)的存儲器86,并且控制電路84被設定為產(chǎn)生微TLB標記符電路32的擊中信號及條目指示輸出。微TLB標記符電路32可含有任何數(shù)量的條目80A及80B。例如,在一個實施例中可實施4個條目。其它的實施例可實施更多或更少條目。每一條目80A及80B可包含有效位(V);用于存儲虛擬地址的頁面部分的虛擬地址欄(VA[N-1:12]),此虛擬地址欄由條目(以及在微TLB數(shù)據(jù)電路34的對應條目,一起形成微TLB30的條目)轉(zhuǎn)換而來;以及2M位用于指示轉(zhuǎn)換是否是來自于2MB頁面轉(zhuǎn)換。因此,在本實施例中使用N-位的虛擬地址,其中N為整數(shù)。例如,在有些實施例中N可以是整數(shù)32。在其它的實施例中,N可以是整數(shù)48。在其它實施例中N可以是整數(shù)32至64間的任一數(shù)字(包括32及64)。這些條目一般可包括任何一種型式的存儲器。例如,可在實施例中使用緩存器、正反器、或其它類型的時控存儲裝置等。比較電路82A及82B至少接收來自AGU12的虛擬地址的頁面部分,并將虛擬地址的頁面部分與存儲在對應的條目80A及80B中的頁面部分作比較。實施例實施最小的4KB頁面大小(因而在虛擬地址的頁面部分中并不含有位11:0)也實施與x86指令集架構(gòu)兼容的2MB頁面大小。可實施其它的頁面大小。在該實施例中,比較電路82A及82B產(chǎn)生2個匹配信號(matchsignal)匹配低和匹配高。如果在條目內(nèi)設立(set)有效位以及包含在2M頁面范圍內(nèi)的虛擬地址的頁面部分匹配(換言之,VA[N-1:21])時,則可確立匹配高。若剩余的虛擬地址匹配(換言之,VA[20:12])時,即可判定匹配低??刂冯娐?4連接為用于接收這些比較電路82A及82B的輸出,且此電路84被設定為產(chǎn)生擊中信號以及為響應該信號的條目指示。若在一條目中指示出擊中,則控制電路84可確立擊中信號并提出條目指示。若未指示出一擊中,則控制電路84可能不確立擊中信號。圖5為可通過控制電路84實施的真值表90的一個實施例,用于判別虛擬地址是否擊中一條目。在真值表90上所示的是來自條目的2M位(在此實施例中是設定用來代表2M轉(zhuǎn)換)、match_upper與match_lower信號(在此表格90中,數(shù)字1代表確立而數(shù)字0代表未確立)以及結(jié)果字段用于說明2M位、match_upper信號、match_lower信號中的每一組合代表著什么。若match_upper信號無確立,則控制電路84檢測到微TLB中虛擬地址為錯過。微TLB的錯過是與2M位的設定以及match_lower信號狀態(tài)不相關。因此,微標記符電路36也錯過。當2M位設定為1時,對應的轉(zhuǎn)換則是針對2MB頁面。因此,VA[20:12]通常并不包含在比較程序內(nèi)。然而,為給微標記符電路36提供位,可界定為由處理器10在2MB頁面中存取的最后4KB頁面。若match_upper信號為確立,且該2M位設定為1,則該微TLB擊中。然而,若match_lower信號為不確立,則微標記符電路36對此頁面錯過。若match_lower信號為確立,則可能擊中微標記符電路36且實施微標記符查詢。當2M位清除為0(clear)時,對應的轉(zhuǎn)換則是針對4KB頁面。因此,match_upper及match_lower均為確立以代表微TLB擊中(且有微標記符擊中的可能,因而實施微標記符查詢)。若match_lower為不確立,則檢測到微TLB及微標記符錯過。對實施圖5的實施例的控制電路84而言,提供給微標記符電路36的擊中指示與提供給主TLB38的可能有所不同。即使微標記符電路36錯過,只要是轉(zhuǎn)換為擊中(在表格90中陳述微TLB擊中),則提供至主TLB38的擊中指示可代表微TLB30中的擊中。當指示微標記符查詢(在表格90中陳述微標記符查詢的條目)時,傳送至微標記符電路36的擊中指示可以指示擊中。圖4及圖5的實施例支持兩種不同頁面大小。其它的實施例可支持單一頁面大小,因而可提供來自每一比較電路82A及82B的單一匹配信號,以及2M位可由條目80A及80B去除。其它實施例依據(jù)支持的頁面大小進一步分割出虛擬地址的頁面部分,以支持兩種以上的頁面大小。請注意,x86指令集架構(gòu)也支持4MB頁面大小。圖4及圖5的實施例利用微TLB30中的兩個2MB條目,可支持4MB頁面大小。其它實施例可直接支持4MB頁面大小(例如,在每一條目中使用與該2M位相似的4MB位)。顯然上述的實施例利用2MB頁面的條目支持2MB頁面大小,且利用VA[20:12]以識別最近在2MB頁面內(nèi)存取的4KB頁面,其它實施例可允許特定的2MB頁面的多個微TLB條目。每一條目對于已存取的不同4KB頁面可在VA[20:12]中有不同的編碼方式。另一替代實施例中,對于2MB頁面,VA[20:12]可包含在微標記符電路36中,而在2MB頁面上的擊中可用來存取微標記符,以便檢測2MB頁面內(nèi)的高速緩存線的擊中。微TLB30中錯過以及主TLB38中擊中的情況下,控制電路84可選擇來自主TLB38的擊中轉(zhuǎn)換用來替代一條目80A或80B。在圖解實施例中,控制電路84可維持條目80A及80B的LRU,并可選擇最近最少使用的條目來替換??蓤?zhí)行任何其它替代算法(例如,偽-LRU、隨機等等)。條目80A及80B可連接成接收虛擬地址(VA[N-1:12])的輸入頁面部分,以及將在控制電路84的控制的下存在條目中的一個內(nèi)的2M位(輸入地址以及2M位并未顯示在圖4中)。在各種不同的實施例中,輸入的虛擬地址及2M位的來源可能為主TLB38或者為表格搜尋電路。圖6為微TLB數(shù)據(jù)電路34的一個實施例的方塊圖。在圖6的實施例中,微TLB數(shù)據(jù)電路34包含具有條目92A及92B的一組條目。92A及92B的每一條目分別對應于圖4中的80A及80B的每一條目。此外,顯示了多任務器94,連接至92A及92B并接收來自微TLB標記符電路32的條目指示。多任務器94可選擇由條目指示所指定的條目內(nèi)容當輸出。在一個執(zhí)行中,若沒有條目被指定(即,錯過),則多任務器94不選取條目92A及92B(可因而減少功耗)。與圖4中的條目80A及80B類似,條目92A及92B可在任何類型的存儲器中實施(例如,在一個實施例中的各種不同的時控存儲裝置)。在圖解實施例中,92A及92B的每一條目的內(nèi)容包含壞位(Dirtybit;D)、使用者/監(jiān)督者(U/S)位、讀取/寫入(R/W)位、存儲器類型字段(MemType[4:0])以及物理地址字段(PA[M-1:12])。在一個實施例中這些位可與在x86指令集架構(gòu)中定義的頁面機制兼容。壞位可指示出物理頁面是否已被修改(例如,處理器是否對這些頁面執(zhí)行了存儲指令)。使用者/監(jiān)督者位可指示使用者(無特權)頁面對監(jiān)督者(有特權)頁面。讀取/寫入位可指示頁面是否為只讀或讀取/寫入。存儲器類型字段可辨識頁面使用的存儲器類型。在圖解的實施例中,可支持M位物理地址,其中M為任一整數(shù)。尤指M可能與N的整數(shù)不同。在一個實施中,M可為整數(shù)32及64間的任一整數(shù)(包含32及64)。在另一個實施中,M可為整數(shù)32及52間的任一整數(shù)(包含32及52)。例如,M在一特定的實施中為整數(shù)40。請參閱圖7所示的微標記符電路36的一個實施例的方塊圖。在所示的實施例中,微標記符電路36中的多個條目被分割成條目群組。每一條目群組分派給微TLB的不同條目。例如在所示的實施例中,群組100A至100D對應于在微TLB30的4個條目。其它實施例可包含任意數(shù)量的群組,以對應于任一數(shù)量的條目。群組100A至100D連接至控制電路102,而電路102連接成接收使能輸入(En)(來自微TLB標記符電路32的擊中信號),來自微TLB標記符電路32的條目指示以及來自AGU12的虛擬地址??刂齐娐?02被設定為產(chǎn)生通過微標記符電路36而輸出的擊中指示。選擇的群組100A至100D中的條目被分派給微TLB標記符電路32條目中的一個,且辨識出條目所指示的虛擬頁面中的高速緩存線,而高速緩存線也存儲在數(shù)據(jù)高速緩存器16中。在一群組中可包含任一數(shù)量的條目。例如在一個實施例中,每一群組中可包含4個條目。由于當檢測微TLB為擊中而存取微標記符電路時,已知路VA[N-1:12]與來自該AGU12的虛擬地址以及所選擇的群組100A至100D代表的高速緩存線的虛擬地址相符合。因此,為完成虛擬標記符的比較,在選擇的群組100A至100D中的條目可存儲虛擬地址的頁面偏置值部分(未包含形成高速緩存線偏置值的地址位)。在所示的實施例中,可假設64字節(jié)的高速緩存線大小,則由此未包含地址位5:0。在其它實施例中可選擇其它高速緩存線大小。在此實施例中,為了完成該虛擬標記符比較,剩余的虛擬地址位為VA[11:6],以及如圖7顯示每一微標記符條目存儲該VA[11:6]。若使能輸入為確立,控制電路102將來自每一條目的地址位VA[11:6]與來自該AGU12的虛擬地址的對應的位作比較。因此,該控制電路102可連接成接收來自AGU12的虛擬地址的至少頁面偏置值部分(未包含該高速緩存線偏置位)。若在該選擇的群組100A至100D中的一條目內(nèi)檢測到相符合以及設定在該條目內(nèi)的有效位為1,則該虛擬地址在該微標記符電路36中為擊中,且該數(shù)據(jù)高速緩存器16中有擊中。并不須存取該數(shù)據(jù)高速緩存器標記符存儲器22來決定為擊中或錯過。另一方面,若在該選擇的群組100A至100D中的一條目內(nèi)并未檢測到相符合,則可存取該數(shù)據(jù)高速緩存器標記符存儲器22以決定該地址在該數(shù)據(jù)高速緩存器16中是否擊中或錯過。該控制電路102依據(jù)該比較的結(jié)果產(chǎn)生擊中信號。請注意,若該數(shù)據(jù)高速緩存器16被物理地標記(即該數(shù)據(jù)高速緩存器標記符存儲器22存儲物理標記符而不是虛擬標記符),以及針對數(shù)據(jù)高速緩存器16的索引中至少使用一轉(zhuǎn)換地址位(例如,在4KB頁面的實施例至少使用位12),則對于相同的物理地址的多個虛擬地址的別名可能影響微標記符電路36的操作(由于該索引可能與在比較中使用的虛擬地址位并不相同)。在此一個實施例中,該數(shù)據(jù)高速緩存器16可被物理地標記,但該處理器10可確定在任何時間內(nèi)最多一個與物理地址化名成相同的物理地址的虛擬地址存在該數(shù)據(jù)高速緩存器16中。換言之,若第二別名加載該數(shù)據(jù)高速緩存器16而該第一別名仍存在于該高速緩存存儲器,則在該數(shù)據(jù)高速緩存器16的該第一別名被無效。請注意,在高速緩存索引包含至少一個轉(zhuǎn)換地址位的實施例中,微標記符電路36可存儲包含在該高速緩存索引中的每一地址位,而該轉(zhuǎn)換地址位可為物理位。若全條目的無效并不是所期待的,則存儲此位可允許將微標記符電路36條目有目標地無效化(例如,為響應該數(shù)據(jù)高速緩存器16內(nèi)容或該微TLB30內(nèi)容的改變)。在該微TLB30中的擊中、該微標記符電路36中的錯過以及該數(shù)據(jù)高速緩存器標記符存儲器22中的擊中的情況下,而對應的群組100A至100D的條目中的一個可由該擊中標記符替代。該控制電路102可在每一群組100A至100D內(nèi)維持LRU信息(在每一條目中顯示為LRU字段),用來在每一群組100A至100D中選擇替換用的該LRU條目。其它實施例采用其它置換表(例如,隨機、偽-LRU等等)。在有些實施例中(未在圖7中顯示),該群組100A至100D可連接成接收來自數(shù)據(jù)高速緩存器16的VA[11:6],以便存儲該微標記符電路36中的錯過索引。請注意,雖然在圖示的實施例中當微標記符電路36的條目靜態(tài)地分派給微TLB條目,而在其它實施例中依照需要該條目可動態(tài)地分派給每一微TLB條目。在此實施例中,微TLB條目字段可包含在每一微標記符條目中,用于存儲該微標記符條目現(xiàn)今被分派的該微TLB條目的指示。存取時,該控制電路102可將該條目指示與由微TLB30所接收的指示做比較,并且當該條目指示及該VA[11:6]字段符合來自AGU12的虛擬地址的對應的部分,可檢測擊中。請注意,當在此實施例中當該微標記符電路36是與該微TLB一起使用時,其它實施例可在沒有微TLB的情況下實施該微標記符電路36。此種實施例可在微標記符電路36的每一條目中的實施全部標記符,且可通過比較全部標記符,檢測高速緩存存儲器的擊中以及防止該數(shù)據(jù)高速緩存器標記符存儲器22中讀取。不論是在該微標記符電路36或該數(shù)據(jù)高速緩存器標記符存儲器22中檢測到擊中,該數(shù)據(jù)將可由該數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20轉(zhuǎn)送。在一個替代實施例中,該微標記符電路36可針對每一個微TLB條目包括單一條目。該微標記符條目可在該頁面內(nèi)針對每一高速緩存線存儲一位,該頁面由該微TLB條目而辨識,以便指示出該高速緩存線在該數(shù)據(jù)高速緩存器16中是否為擊中。因此,例如若高速緩存線為64字節(jié)及使用4KB頁面,該微標記符條目可包含64位。若對應至特定高速緩存線的位設定為1(set)則指示擊中;若該位清除為0(clear)則可指示錯過(或可使用相反的編碼)??刂齐娐房墒褂迷撐窗摳咚倬彺婢€偏置部分的VA頁面部分(例如,在64字節(jié)高速緩存線實施例中的位11:6),以便選擇適合的位來決定高速緩存存儲器擊中/錯過。在此實施例中,微標記符電路可并入微TLB電路。“標記符電路”或“微標記符電路”的用語意在其中該微標記符電路并入該微TLB的實施例。請參閱圖8,為圖2所示的方塊的一個實施例方塊的示例操作流程圖,以響應來自AGU12的虛擬地址。雖然圖8的方塊為方便了解而以特定順序來排列,任何順序都可行的。依照需求,這些方塊經(jīng)由組合邏輯電路可并行執(zhí)行,或可以流水線方式在兩個或以上的時鐘周期中執(zhí)行。為響應該虛擬地址而存取微TLB標記符電路32(方塊110)。若檢測到微TLB擊中(決策方塊112,“是”的接腳),則存取微標記符電路36(方塊114)。若該微標記符中檢測到擊中(決策方塊116,“是”的接腳),則高速緩存擊中/錯過電路50可指示出高速緩存擊中(例如,高速緩存錯過表示可能并不指示出錯過),且并不存取數(shù)據(jù)高速緩存器標記符存儲器22以響應虛擬地址(方塊118)。若該微標記符中并未檢測到擊中(決策方塊116,“否”的接腳),則可存取微TLB數(shù)據(jù)電路34(方塊120)。在有些實施例中,為響應微TLB標記符擊中可存取該微TLB數(shù)據(jù)電路34,與該微標記符是否為擊中不相關。也可存取該數(shù)據(jù)高速緩存器標記符存儲器22(方塊122)。若來自該數(shù)據(jù)高速緩存器標記符存儲器22的標記符及來自該微TLB數(shù)據(jù)電路34的物理地址間檢測到擊中(決策方塊124,“是”的接腳),該高速緩存擊中/錯過電路50可指示高速緩存擊中(方塊126)。此外,由于在此情況下檢測到微標記符錯過,可加載擊中標記符至微標記符。若在來自該數(shù)據(jù)高速緩存器標記符存儲器22的標記符以及來自該微TLB數(shù)據(jù)電路34的物理地址間檢測錯過(決策方塊124,“否”的接腳),則該高速緩存擊中/錯過電路50可指示高速緩存錯過(方塊128),且可將該錯過的高速緩存線加載該數(shù)據(jù)高速緩存器16(以及也可選擇性的將該微標記符電路36以錯過的高速緩存線的標記符更新)。若檢測到微TLB錯過(決策方塊112,“否”的接腳),則可存取該主TLB標記符電路40(方塊130)。若該主TLB中檢測到擊中(決策方塊132,“是”的接腳),則由該主TLB(方塊134)加載該微TLB,且加載對應于該微TLB條目的該微標記符條目可無效化。此外,方塊122,124,126及128將重復執(zhí)行,與來自該主TLB的物理地址作標記符比較。然而,在方塊126的步驟中,假使需要,該微標記符可選擇不作加載。另一方面來說,若該主TLB中檢測到錯過(決策方塊132,“否”的接腳),該主TLB38可產(chǎn)生TLB錯過,以及可加載具有錯過的轉(zhuǎn)換至主TLB(或者若沒有找到轉(zhuǎn)換則可能出現(xiàn)例外)(方塊136)。在主TLB錯過的狀況中,也可選擇性加載該微TLB且可更新該微標記符以使對應于加載的該微TLB條目的微標記符條目無效化。請注意,雖然前述的說明提及比較來自該微TLB30或該主TLB38的物理地址與該來自該數(shù)據(jù)高速緩存器標記符存儲器22的標記符,這些TLB一般可輸出該物理地址的頁面部分。而作為比較的高速緩存標記符剩余的部分可通過將該物理地址的頁面部分與該虛擬地址的頁面偏置部分而序連(concatenate)形成。請參閱圖9所示的路線預測器14的一個實施例的方塊圖。在圖解的實施例中,該路線預測器14包含總和地址(SA)譯碼器140連接成接收待進行路線預測的對應于虛擬地址的一個或一個以上的地址操作數(shù),且進一步連接至存儲器142。該總和地址譯碼器140可實施總和地址編入索引并將在下文中詳細說明。該存儲器142可為W路集關聯(lián)式(如同數(shù)據(jù)高速緩存器16),因此可有多個條目排列成路0至路W-1。存儲器142中每一條目存儲具有P位(WP[P-1:0])的路線預測值。含有比較器146A及146B的多個比較器連接至該存儲器142。該路線預測器14的每一方向?qū)容^器146A及146B。該比較器146A及146B連接成接收來自AGU12的部分虛擬地址(VA)或一選擇性的路線預測產(chǎn)生電路148的輸出(或者另一種選擇如部分地址操作數(shù))。該比較器146A及146B的輸出可形成路線預測器14的路線預測輸出。此外,若沒有一個比較器146A及146B有檢測到匹配,路線預測器14可輸出早期錯過信號(如圖9中所示用來接收該比較器146A及146B的輸出的或非門150)。該譯碼器140被設定為將地址操作數(shù)譯碼(在此實施例中利用總和地址來譯碼)以便選擇一存儲器142的集合144,且該存儲器142被設定成將該集合144內(nèi)容輸出至該比較器146A及146B。每一個比較器146A及146B將來自存儲器142的個別方向的路線預測值與對應于輸入虛擬地址的路線預測值作比較。若檢測到匹配,則該路線預測器14將預測該對應的方向在該數(shù)據(jù)高速緩存器16中為擊中。在所示的實施例中,該路線預測將包括這些方向的單一熱編碼(one-hotencoding),以一個確立的位為預測方向。若沒有一個路線預測位符合該輸?shù)穆肪€預測位,則不會產(chǎn)生任何路線預測(且將確立為早期錯過信號)。其它實施例可將以其它方式編碼該路線預測,該路線預測器14可包含電路,該電路連接成接收比較器146A及146B的輸出及被設定用于產(chǎn)生路線預測編碼。該路線預測值可依所需由任何方式產(chǎn)生,可包含任何數(shù)量的位(例如,P可為大于1的整數(shù))。依據(jù)在數(shù)據(jù)高速緩存器16中對應的高速緩存線將產(chǎn)生存儲在該路線預測器14中的路線預測值。例如在一個實施例中,該路線預測值可為虛擬地址的一部分標記符,而該標記符是對應于在數(shù)據(jù)高速緩存器16中的路以及存在同一索引內(nèi)的高速緩存線。換言之,該路線預測值包含所選擇的虛擬地址位的序連(未包含為高速緩存標記符的一部分的至少一地址位)。在此實施例中,將期望選擇變化最為頻繁的虛擬地址位(或如由另一觀點來看,將顯示連續(xù)存取間最為隨機性的存取)。例如,可選擇仍是高速緩存標記符的一部分的最低有效地址位(非為高速緩存線偏置的一部分)。此種實施例將不使用路線預測產(chǎn)生電路148,且來自該輸入虛擬地址的所選擇的虛擬地址位可連接當作輸入至該比較器146A及146B。在其它的實施例中,可產(chǎn)生一個或一個以上的路線預測值位以當作兩個或兩個以上的虛擬地址位的邏輯組合。在此實施例中,例如變化頻繁的虛擬地址位可與變化較少的虛擬地址字節(jié)合。在一個實施例中,該邏輯組合可包括異或(exclusiveOR)。此實施例中借著該路線預測產(chǎn)生電路148可對虛擬地址位執(zhí)行該邏輯組合,而該組合的輸出可連接至該比較器146A及146B。在另一個實施例中,在加入以產(chǎn)生另一虛擬地址前可在地址操作數(shù)中選取位。該位可利用路線預測產(chǎn)生電路148并以符合邏輯的方式組合,或者可如同上述的虛擬地址的示例般序連在一起。為了避免兩個或兩個以上的條目含有相同的路線預測值(以及因此在路線預測器14中有一個以上的方向相符合的情況出現(xiàn)),可控制在數(shù)據(jù)高速緩存器16中的高速緩存線的替代以確定在該路線預測器14的一特定集合中的路線預測值為唯一的。此種步驟程序顯示在圖10的流程圖中。希望上述的替代策略的路線預測值含有足夠的位,而不會經(jīng)常造成為了維持該路線預測值的唯一性而過早替代高速緩存線。例如,若利用序連的虛擬地址位來產(chǎn)生路線預測值,則可選取約7位的路線預測值。在有些實施例中,由于與數(shù)據(jù)高速緩存器標記符存儲器22作比較路線預測器14相當?shù)匦。撀肪€預測器14可包含在該AGU12的數(shù)據(jù)路徑中(可縮短由虛擬地址移至所需的電路的距離)。如上述,該譯碼器140可使用總和地址譯碼以便將地址操作數(shù)譯碼,并選取一對應于該虛擬地址的集合144。其它實施例可使用傳統(tǒng)的譯碼器,該譯碼器連接成接收虛擬地址。因此,一般而言,該譯碼器140可接收地址指示以便存取高速緩存存儲器。在有些實施例中,該指示可包含用來形成虛擬地址的地址操作數(shù),或在其它實施例中,包含虛擬地址本身??偤偷刂纷g碼接收用于產(chǎn)生地址的地址操作數(shù),并當正確的選擇與若將地址本身譯碼所選擇的存儲器集合相同的存儲器集合。一般而言,總和地址譯碼依賴基本原理針對A+B=K的測驗,若以常數(shù)K評估,要比將A加上B所得的總合與K作比較要來的快。以譯碼來說,該常數(shù)K為A+B的值,會選取一特定的集合。該電路假設常數(shù)K的該集合而產(chǎn)生該集合的字線??偤偷刂纷g碼的概要將在下文說明。若A代表一位向量an-1an-2…a0,而B代表一位向量bn-1bn-2…b0以及K代表一位向量kn-1kn-2…k0,將可顯示若A+B=K,則該加法A+B(Couti-1)的特定的位位置i-1的進位輸出(carryout)以及至后續(xù)的位位置i(Cini)的進位輸入(carryin)可由下述的方程式1及2所表示(而“!”代表反向,“XOR”代表異或,“&”代表與(AND)以及“|”代表或(OR))Couti-1=((ai-1XORbi-1)&!ki-1)|(ai-1&bi-1)(1)Cini=kiXORaiXORb-i(2)若A+B=K則對于所有i值(范圍0至n-1),Couti-1等于Cini。換言之,若A+B=K則對于所有i值,下列提出ei的等式(3)為1。ei=CiniXOR!Couti-1(3)為了產(chǎn)生用于譯碼器140的ei等式,希望產(chǎn)生不依賴K的項(每一表達式1及2以及3為相依)。確切地說,等式3依賴ki(經(jīng)由Cini)以及ki-1(經(jīng)由Couti-1)。因此,對于每一位位置i可產(chǎn)生4個ei的項。每一個ei項可假設一組ki及ki-1的值。這些項將注譯為eikiki-1,而將假設的每一位值代入ki及ki-1的標記符中(例如,ei01對應于假設ki=0及ki-1=1)。等式4至7說明對在每一位位置的該4個ei項。每一等式4至7由將等式1及2代入等式3而形成的,提供ki及ki-1的假設值并利用布爾代數(shù)(BooleanAlgebra)減少項數(shù)。ei00=aiXORbiXOR!(ai-1|bi-1)(4)ei01=aiXORbiXOR!(ai-1&bi-1)(5)ei10=!(aiXORbi)XOR!(ai-1|bi-1)(6)ei00=!(aiXORbi)XOR!(ai-1&bi-1)(7)此外,對于索引的位位置0,該進位輸入項(c-1)替代i-1項以形成等式8及9e00c=aiXORbiXOR!c-1(8)e01c=!(aiXORbi)XOR!c-1(9)對于索引的每一位位置,上述等式可以邏輯實施于路線預測存儲器142,當該進位輸入c-1等于來自該高速緩存線偏置值的進位輸入加法??衫缤ㄟ^該AGU12自該虛擬地址提供該進位輸入。例如,該進位輸入可能將遲達且可在其中具有奇數(shù)及偶數(shù)的索引的排(banks)間選取。為了產(chǎn)生特定的集合的字線,自ei00,ei01,ei10,及ei11中的一個選取每一位位置(基于對應于產(chǎn)生的字線的索引值),以及選取的值將以AND指令來處理而產(chǎn)生字線。例如,索引0的字線可為ei00(每個位位置)與e00c的邏輯與。索引1的字線(k0=1,所有其它的ki=0)可為ei00(位于2與n-1之間的每個i)、e101與e01c的邏輯與。索引2的字線(k1=1,所有其它的ki=0)可為ei00(位于3與n-1之間的每個i)、e201、e110與e00c的邏輯與。索引3的字線(k1和k0=1,所有其它的ki=0)可為ei00(位于3與n-1之間的每個i)、e201、e111與e01c的邏輯與。同樣地可選擇其它索引的額外字線。將可在由WilliamL.Lynch,GaryLauterbach以及JosephI.Chamdani于名稱為“通過總和地址存儲器的低負載潛浮(LowLoadLatencythroughSum-AddressedMemory(SAM))”的文章(1998年,第25屆國際計算機架構(gòu)座談會,第369-379頁)中,找到有關總和地址譯碼的實施例的其它細節(jié)。通過參照在此并入該文章全體。路線預測器14通過允許降低在數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20的功耗,可用來減少處理器10的功耗。例如在有些實施例中,該數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20可包括一隨機存取存儲器(RAM)。通過激活字線以使該RAM中的地址予以使能運作。使能的位置將特定接至該位置的位線釋放,以便提供一對有差動(differential)的位線,該位線代表該位置中的每一位。該對位線可輸入至感測放大器,可轉(zhuǎn)換差動給輸出位。在有些實施中,該數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20的RAM將個別提供字線信號給該數(shù)據(jù)高速緩存器20中的每一方向。該虛擬地址可譯碼以提供一集合選擇,且該集合選擇具備路線預測的條件以產(chǎn)生每一方向的字線。因此,可將預測方向使能能而其它方向不使能,以便減少在位線上所釋放的功耗,不然將出現(xiàn)在其它未致能的方向內(nèi)。位線的功耗通常是在這種存儲器功耗中最大耗電因素之一(且可能是最大的因素)。圖11顯示數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20實施例的一部分,其中由譯碼器而接收虛擬地址(VA)可產(chǎn)生一集合選擇(例如,圖11中的集合0而其它并未顯示在圖11中的集合等)。與門(ANDgate)收到方向0為預測的方向(WP0)或方向1為預測的方向(WP1)的指示,且產(chǎn)生方向0及方向1的對應的方向字線。圖11顯示每一方向的位0,接收該對應的方向字線。每一方向的位0可由多任務器多任務列置(column-muxed)路線預測控制該多任務器(以由預測方向選擇位0),以及感測放大器(SA0)感測到來自預測的方向的位0,并將位0驅(qū)趕出數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20。其它的位可同等對待,可提供額外的與門以及路線預測而提供額外的方向。在其它的實施例中,該路線預測器未能極早有效地足以提供字線的選擇性的產(chǎn)生。對于此實施例,每一方向的字線可基于地址譯碼而驅(qū)動,位線的釋放將出現(xiàn)在每一方向中。在有些實施中,來自每一方向的位可物理地交叉且多任務行置至感測放大器。換言之,每一方向的位0將可物理地鄰置,且該多任務器可選取來自該選擇的方向的位0到該感測放大器的輸入,用于輸出位0。其它輸出位可以相同方式選取??墒褂迷撀肪€預測來將選取控制提供給列多任務器(columnmux),因而感測放大器的數(shù)量可以是由一方向輸出的位數(shù)量(而不是由路的數(shù)量乘以由一路所輸出的位數(shù)量)。與每一方向有獨立分置的感測放大器比較時,可減少感測放大器及由感測放大器驅(qū)出數(shù)據(jù)所消耗的電力。在此種存儲器的功耗中,感測放大器驅(qū)出使用的電力可為最大耗電因素的一個(且可能是除了位線電力的消耗外最大的因素)。圖12顯示此種實施例一部分的示例。該譯碼器(如同圖11的譯碼器)譯碼輸入的虛擬地址(VA)以便產(chǎn)生字線(例如,圖12的字線0以及未顯示在圖12的其它集合的其它字線)。顯示來自方向0及1的位0,并將每一位釋放本身的位線以響應該字線的確立。圖12中的多任務器由路線預測而控制,以便選取來自預測的方向的位0,置入感測放大器的位0(圖12的SA0)。其它由已預測方向讀取的位可用相同方式來處理,且額外的方向也以相同方式處理。在其它實施中,不同的感測放大器可提供至每一個別的方向,但該感測放大器可有一使能輸入以使能運作。在此種實施中,可用該路線預測用于僅賦予預測方向中的感測放大器,該感測放大器以及由該放大器驅(qū)出數(shù)據(jù)的功耗可以利用如同該多任務列置(column-muxing)技術方法減少的。圖13為該數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20的此種實施例的示例。同樣的該譯碼器可譯碼該輸入的虛擬地址(VA)及產(chǎn)生字線,并提供給方向0及方向1的存儲器。每一方向?qū)⒁恍┪痪€輸出至該方向的一組感測放大器。每組感測放大器接收一使能,該使能由該方向的路線預測(個別為方向0及1的WP0及WP1)所控制。在此實施例中的數(shù)據(jù)高速緩存器數(shù)據(jù)存儲器20也可包含一多任務器,以便選取來自該感測放大器的輸出的預測方向。在其它實施例中,可能僅驅(qū)使該輸入的虛擬地址至預測的方向,以便由不驅(qū)使未預測方向的地址而減少電力。請參閱圖10所示的流程圖說明替代機制,可通過數(shù)據(jù)高速緩存器16采用該替代機制以響應高速緩存錯過。為便于了解,當圖10中的方塊以特定順序排列,但可用任何排列順序。方塊可依照需求經(jīng)由組合邏輯電路可同時執(zhí)行,或可以流水線方式在兩個或以上的時鐘周期中執(zhí)行。若該路線預測器14產(chǎn)生虛擬地址的路線預測,且結(jié)果為高速緩存錯過(決策方塊160),則該已預測方向被選擇為進行置換(方塊162)。不然,則依據(jù)高速緩存存儲器執(zhí)行的置換表選擇進行置換方向(方塊164)??墒褂萌魏翁娲惴?例如,LRU、偽--LRU、隨機等等)。上述的算法強迫在高速緩存存儲器中錯過,但卻與在該路線預測器14中現(xiàn)有的路線預測值符合的高速緩存區(qū)塊,代替對應于路線預測值的高速緩存線。因此,相同的路線預測值將不會存儲在一集合中的一個以上的位置。圖14為流程圖說明依據(jù)該路線預測器14的一個實施例路線預測的形成。雖然在圖14所示的方塊圖以容易了解的特定順序排列,但可使用任何排列順序。方塊經(jīng)由組合邏輯電路可同時執(zhí)行,或可以流水線方式在兩個或以上的時鐘周期中執(zhí)行。該路線預測器14可譯碼地址指示(例如,地址操作數(shù),或在有些實施例中的地址本身)(方塊170)。該路線預測器14可輸出由該譯碼所指示的來自集合的多個路線預測值(方塊172)??蓪⒃撦敵雎肪€預測值與對應于在方塊170中譯碼的該輸入地址值作比較(方塊174)。若比較的結(jié)果產(chǎn)生一條路(決策方塊176,“是”的接腳),將產(chǎn)生該路線預測,等于已檢測到一匹配的該方向(方塊178)。不然(決策方塊176,“否”的接腳),將不會產(chǎn)生路線預測且該路線預測器14可產(chǎn)生早期錯過表示(方塊170)。整體來說,方塊176,178及180可包括產(chǎn)生一路線預測的一個實施例。計算機系統(tǒng)請參閱圖15為具有處理器10的計算機系統(tǒng)200的個實施例的方塊圖,該處理器10經(jīng)由一總線橋接器202連接至各種不同的系統(tǒng)構(gòu)件。在敘述的系統(tǒng)中,主存儲器204經(jīng)由存儲器總線206連接至總線橋接器202,以及圖形控制器208經(jīng)由AGP總線210連接至總線橋接器202。最后,多個PCI裝置212A及212B經(jīng)由PCI總線214連接至總線橋接器202??蛇M一步配置,次要總線橋接器216經(jīng)由EISA/ISA總線220提供電性接口至一種或一種以上的EISA或ISA裝置218。處理器10經(jīng)由CPU總線224連接至總線橋接器202,以及連接至一選擇性的L2高速緩存存儲器228。CPU總線224及至L2高速緩存存儲器228的接口可一起包括一外部接口,該外部接口可連接至外部接口單元18。而該處理器10可能是圖1所示處理器10,且可包含在圖2至圖14中該處理器10架構(gòu)上及操作上的細節(jié)。總線橋接器202在處理器10、主存儲器204、圖形控制器208以及接合在PCI總線214的間提供一接口。當由連接至總線橋接器202的裝置接收到操作程序,總線橋接器202辨別該操作程序的目標(例如,一特定的裝置,或在PCI總線214的情況下,位在PCI總線214上的目標)。總線橋接器202將操作程序路由至目標裝置??偩€橋接器202通常將由源裝置(sourcedevice)或總線使用的操作協(xié)議轉(zhuǎn)換為由目標裝置或總線使用的操作協(xié)議。除了提供用于PCI總線214至ISA/EISA總線的接口外,次要總線橋接器216可進一步將所需的額外功能并入。輸入輸出控制器(未顯示),無論來自外部或整合于次要總線橋接器216,也可包含在計算機系統(tǒng)200內(nèi),以依所需提供鍵盤及鼠標222以及各種不同的串聯(lián)與并聯(lián)的連接埠的操作支持。在其它實施例中,外部高速緩存存儲器單元(未顯示)可進一步在處理器10及總線橋接器202間連接至CPU總線224。在替代實施例中,該外部高速緩存存儲器可連接至總線橋接器202,而外部高速緩存存儲器的高速緩存控制邏輯可整合于總線橋接器202。L2高速緩存存儲器228進一步顯示相對于處理器10的后視配置。請注意,L2高速緩存存儲器228可與處理器10分開并整合入一具有處理器10的匣(cartridge)內(nèi)(例如,夾槽1或夾槽A),或甚至整合在具有處理器10的半導體襯底上。主存儲器204為內(nèi)有存儲應用程序的存儲器,且該應用程序為處理器10主要的執(zhí)行的程序。適當?shù)闹鞔鎯ζ?04包括動態(tài)隨機存取存儲器(DynamicRandomAccessMemory;DRAM)。例如,同步DRAM的多個排(banks)(SynchronousDRAM;SDRAM)、雙倍數(shù)據(jù)速率(DoubleDataRate;DDR)SDRAM、或RambusDRAM(RDRAM)可為適當?shù)拇鎯ζ?。主存儲?04可包含圖1所示的系統(tǒng)存儲器42。PCI裝置212A及212B為各種外圍裝置的例子。該外圍裝置可包括與另一個計算機系統(tǒng)連接通信的裝置(例如網(wǎng)絡接口卡、調(diào)制解調(diào)器等等)。此外,外圍裝置可包含其它裝置,例如視頻加速器、聲頻卡、硬盤或軟盤驅(qū)動器或者驅(qū)動控制器、小計算機系統(tǒng)接口(SmallComputerSystemsInterface;SCSI)適配器以及電話卡。相同的,ISA裝置218為各種不同類型的外圍裝置的示范例,例如調(diào)制解調(diào)器、聲卡以及數(shù)據(jù)采集卡如GPIB或領域總線接口卡。設置圖形控制器208以控制在顯示器226上的圖文的顯示(rendering)。圖形控制器208可并入一般傳統(tǒng)的圖形加速器,以顯示可有效地移入或由主存儲器204移出的3維數(shù)據(jù)結(jié)構(gòu)。圖形控制器208可因而成為AGP總線210的主控制器,可以要求及存取總線橋接器202內(nèi)的目標接口,因而獲得主存儲器204的存取。專屬圖形總線容許由主存儲器204快速取回數(shù)據(jù)。針對特定的操作,圖形控制器208可進一步設定為在AGP總線210上產(chǎn)生PCI協(xié)議異動。總線橋接器202的該AGP總線接口因而可含有支持AGP協(xié)議異動及PCI協(xié)議目標與激活器的異動的功能。顯示器226為任何可顯現(xiàn)影像或文字的電子顯示器。適當?shù)娘@示器226包含陰極射線管(“CRT”)、液晶顯示器(“LCD”)等等。請注意,雖然使用AGP、PCI及ISA或EISA總線上述說明的范例,任何總線架構(gòu)可因需求而替代。請進一步注意,計算機系統(tǒng)200可為具有多重處理的計算機系統(tǒng),包含額外的處理器(例如,處理器10a顯示計算機系統(tǒng)200的選擇性構(gòu)件)。處理器10a可以與處理器10相似。更詳細的說,處理器10a可能是處理器10一致的復制品。處理器10a經(jīng)由獨立總線(如圖15所示)可連接至總線橋接器202,或可與處理器10分享CPU總線224。此外,處理器10a可連接至與L2高速緩存存儲器228類似的一選擇性的L2高速緩存存儲器228a。請參閱圖16所示的計算機系統(tǒng)300的另一個實施例。在圖16的實施例中,計算機系統(tǒng)含有多個處理節(jié)點312A、312B、312C及312D。每一處理節(jié)點經(jīng)由存儲器控制器316A至316D而連接至個別的存儲器314A至314D,而這些存儲器控制器316A至316D包含在每一個別的處理節(jié)點312A至312D內(nèi)。此外,處理節(jié)點312A至312D含有接口邏輯,用于在處理節(jié)點312A至312D間的通信。例如,處理節(jié)點312A包含用于與處理節(jié)點312B通信的接口邏輯318A、用于與處理節(jié)點312C通信的接口邏輯318B以及用于與另一處理節(jié)點(未顯示)通信的第三接口邏輯318C。相同地,處理節(jié)點312B含有接口邏輯318D、318E及318F;處理節(jié)點312C含有接口邏輯318G、318H及318I;以及處理節(jié)點312D含有接口邏輯318J、318K及318L。處理節(jié)點312D經(jīng)由接口邏輯318L可與多個輸入輸出裝置連接作通信(例如,以菊鏈配置的裝置320A及321B)。以相同的方式,其它處理節(jié)點可與其它輸入輸出裝置通信。處理節(jié)點312A至312D實施用于節(jié)點間的通信的包型鏈接(packet-basedlink)。在本發(fā)明的實施例中,該鏈接以單向線路組實施(例如,使用線路324A傳送由處理節(jié)點312A至處理節(jié)點312B的包,以及使用線路324B傳送由處理節(jié)點312B至處理節(jié)點312A的包)。使用其它線路組324C至324H如圖16所示用來傳送其它處理節(jié)點間的包。一般而言,每一組線路324可包含一條或一條以上的數(shù)據(jù)線、對應于該數(shù)據(jù)線的時鐘線(clockline)以及用于指示出運送的包類型的一條或一條以上的控制線。該鏈接以高速緩存一致方式處理節(jié)點間通信,或者以不一致的方式處理節(jié)點及輸入輸出裝置間通信(或者總線橋接器至傳統(tǒng)結(jié)構(gòu)的輸入輸出總線,例如該PCI總線或ISA總線)。此外,該鏈接可利用所示的輸入輸出裝置間的菊鏈結(jié)構(gòu)以不一致的方式來運作。請注意從一處理節(jié)點傳送至另一節(jié)點的包可經(jīng)過一個或一個以上的中間節(jié)點。例如,在圖16中顯示包從處理節(jié)點312A傳送至312D可經(jīng)過處理節(jié)點312B或處理節(jié)點312C??墒褂萌魏芜m當?shù)穆窂剿惴āF渌鼘嵤├挠嬎銠C系統(tǒng)300可包含比圖16所示的實施例要更多或更少的處理節(jié)點。一般而言,該包可在節(jié)點間的線路324上以一或以上的位時間(bittime)傳送。位時間可以是在對應的時鐘線上的時鐘信號邊緣的上升或下降。該包可包含用于激活異動的指令包、用于維持高速緩存存儲器的一致性的探測包(probepacket),并響應探測及指令的響應包。除了存儲器控制器及接口邏輯外,處理節(jié)點312A至312D可包含一個或一個以上的處理器。廣泛的說,處理節(jié)點包括至少一個處理器及依所需選擇性的包含用于與存儲器及其它邏輯接口通信的存儲器控制器。更詳而言的,每一處理節(jié)點312A至312D可包括一個或一個以上的在圖1所示的處理器10的復制品(例如,含有圖2至圖14所示的各種不同結(jié)構(gòu)上及操作上的細節(jié))。外部接口單元18可包含在該節(jié)點及存儲器控制器316內(nèi)的接口邏輯318。存儲器314A至314D可包括任何適用的存儲器裝置。例如,存儲器314A至314D可包括一個或一個以上的RDRAM、同步DRAM、DDRSDRAM、靜態(tài)RAM等等。計算機系統(tǒng)300的地址空間在存儲器314A至314D間分割存在。每一處理節(jié)點312A至312D可包含存儲器映射,以決定哪一地址映射于哪一個存儲器314A至314D,以及該將特定地址的存儲器要求路由至哪一個處理節(jié)點312A至314D。在一個實施例中,計算機系統(tǒng)300內(nèi)地址的一致點(coherencypoint)為存儲器控制器316A至316D,連接至存儲對應于該地址的字節(jié)的存儲器。換句話說,該存儲器控制器316A至316D有責任確認至對應的存儲器314A至314D的每一個存儲器存取以高速緩存一致的方式發(fā)生。存儲器控制器316A至316D可包括控制用于接合存儲器314A至314D的電路。此外,存儲器控制器316A至316D可包含用于排列存儲器的等候要求的請求隊列(requestqueue)。接口邏輯318A至318L一般可包括各種緩沖器,用于接收來自鏈接的包及用于緩沖傳送至連接上的包。計算機系統(tǒng)300可采用任何用于傳送包的適當?shù)牧鞒炭刂茩C制。例如在一個實施例中,每一個接口邏輯318存儲在所連接的鏈接另一端上的接收器內(nèi)的各種緩沖器的數(shù)量。接口邏輯并沒有傳送包,除非接收的接口邏輯有空的緩沖器來存儲包。當接收的緩沖器通過傳送出包而放出空間,接收的接口邏輯將信息傳送至發(fā)送接口邏輯,以便指示出該緩沖器已放出空間。此種機制可稱為“配券型”(coupon-based)系統(tǒng)。輸入輸出裝置320A及320B可以是任何適當?shù)妮斎胼敵鲅b置。例如,輸入輸出裝置320A至320B可包含用于與所連接的其它計算機系統(tǒng)通信(例如網(wǎng)絡接口卡、調(diào)制解調(diào)器等等)。此外,輸入輸出裝置320A及320B可包含視頻加速器、聲頻卡、硬盤或軟盤驅(qū)動器或者驅(qū)動控制器、SCSI適配器以及電話卡、聲卡以及不同的數(shù)據(jù)采集卡如GPIB或領域總線接口卡。請注意,在本發(fā)明中的用語“輸入輸出裝置”及“外圍裝置”意指同義字。對于充分理解上述公開的本領域技術人員來說,各種修飾與變化將是顯而易見的。下面的權利要求傾向于包含所有這樣的修改與變化。工業(yè)應用性本發(fā)明通常可用于處理器領域。權利要求1.一種處理器(10),包括高速緩存存儲器(16),包括數(shù)據(jù)存儲器(20)及標記符存儲器(22),其中該數(shù)據(jù)存儲器被設定為用于存儲多條高速緩存線,而該標記符存儲器被設定為用于存儲多個標記符,多個標記符中的每一個標記符分別對應于多條高速緩存線中的一條;和標記符電路(36),被設定為用于檢測高速緩存存儲器(16)中第一虛擬地址對該多條高速緩存線的子集的擊中;以及將該標記符電路(36)設定為用于避免該標記符存儲器(22)的讀取,以響應該標記符電路(36)中該第一虛擬地址的擊中,其中該數(shù)據(jù)存儲器(20)被設定為用于輸出對應該第一虛擬地址的第一高速緩存線的至少一部分。2.如權利要求1所述的處理器,進一步包括第一變換檢測緩沖器(30),該第一變換檢測緩沖器被設定為用于存儲虛擬地址的多個頁面部分,以辨識多個虛擬頁面,這些虛擬頁面的物理地址轉(zhuǎn)換存儲在該第一變換檢測緩沖器(30)中;其中,標記符電路(36)與該第一變換檢測緩沖器(30)連接,以及其中該多條高速緩存線的子集在多個虛擬頁面中;其中,該標記符電路(36)被設定為用于防止該高速緩存存儲器中(16)該標記符存儲器(22)的讀取,進一步響應該第一變換檢測緩沖器中第一虛擬地址的擊中。3.如權利要求2所述的處理器,其中,該高速緩存存儲器(16)被設定為用于讀取存儲在該標記符存儲器(22)中的一個或一個以上的標記符,且用于檢測該第一虛擬地址是否在該高速緩存存儲器(16)中擊中,以響應該第一變換檢測緩沖器(30)中第一虛擬地址的該擊中以及該標記符電路(36)中該第一虛擬地址的錯過。4.如權利要求3所述的處理器,進一步包括第二變換檢測緩沖器(38),其中為響應該第一變換檢測緩沖器(30)中的錯過而存取該第二變換檢測緩沖器(38),其中該第二變換檢測緩沖器(38)被設定為用于提供對應于該第一虛擬地址的第一物理地址的頁面部分,以響應該第二變換檢測緩沖器(38)中的擊中,以及其中該高速緩存存儲器(16)被連接為用于接收該第一物理地址的標記符部分,且設定為將該第一物理地址的該標記符部分與來自標記符存儲器(22)中的至少一第一標記符比較,以便檢測該高速緩存存儲器(16)中的擊中。5.如權利要求2所述的處理器,其中該第一變換檢測緩沖器(30)包括第一多個條目(80A-80B),該第一多個條目的每一個被設定為用于存儲虛擬地址的該多個頁面部分中的個別的頁面部分;其中該第一變換檢測緩沖器(30)被設定為用于輸出該第一多個條目的第一條目的指示,該第一虛擬地址擊中該第一條目,以及其中該標記符電路(36)被連接為用于接收該第一條目的該指示;其中該標記符電路(36)包括第二多個條目(100A-100D),其中該第二多個條目(100A-100D)的子集對應該第一變換檢測緩沖器(30)中該第一多個條目(80A-80B)的一個,該子集識別出存儲在該高速緩存存儲器(16)中并存在于頁面內(nèi)的這些高速緩存線,該頁面由存儲在該第一多個條目(80A-80B)的一個中的該頁面部分而指出,以及其中該標記符電路(36)被設定為用于檢查該子集是否擊中,以響應該第一條目的指示。6.如權利要求5所述的處理器,其中該第二多個條目(100A-100D)的每一個被設定為用于存儲虛擬地址位,而該虛擬地址位并未包含在該虛擬地址的頁面部分內(nèi),并且未包含在該虛擬地址的高速緩存線偏置部分內(nèi)。7.一種方法,包括以第一虛擬地址存取第一變換檢測緩沖器(30),該第一變換檢測緩沖器被設定為用于存儲虛擬地址的多個頁面部分,以辨識多個虛擬頁面,這些虛擬頁面的物理地址轉(zhuǎn)換存儲在該第一變換檢測緩沖器(30)中;為響應該第一變換檢測緩沖器(30)中該第一虛擬地址的擊中而存取標記符電路(36),該標記符電路被設定為用于識別存儲在高速緩存存儲器(16)中且在該多個虛擬頁面內(nèi)的多條高速緩存線;檢測在該第一變換檢測緩沖器(30)及該標記符電路(36)中該第一虛擬地址的擊中;以及避免在該高速緩存存儲器(16)中該標記符存儲器(22)的讀取,以響應在該第一變換檢測緩沖器(30)及該標記符電路(36)中該第一虛擬地址的擊中。8.如權利要求7所述的方法,進一步包括讀取存儲在該標記符存儲器(22)中的一個或一個以上的標記符并檢測該第一虛擬地址是否在該高速緩存存儲器(16)中擊中,以響應由該第一變換檢測緩沖器中(30)該第一虛擬地址的擊中及在該標記符電路(36)中該第一虛擬地址的錯過。9.如權利要求7所述的方法,進一步包括為響應該第一變換檢測緩沖器(30)中的錯過而存取第二變換檢測緩沖器(38),其中該第二變換檢測緩沖器被設定為用于提供對應于該第一虛擬地址的第一物理地址的頁面部分,以響應該第二變換檢測緩沖器(38)中的擊中;以及該高速緩存存儲器(16)將該第一物理地址與來自該第二標記符存儲器(22)的至少第一標記符比較,以便檢測該高速緩存存儲器中(16)的擊中。全文摘要一種處理器(10)包括高速緩存存儲器(cache)(16)、第一變換檢測緩沖器(TranslationLook-asideBuffer;TLB)(30)以及標記符電路(tagcircuit)(36)。該高速緩存存儲器包括用于存儲多條高速緩存線的數(shù)據(jù)存儲器(20),以及用于存儲多個標記符的標記符存儲器(22)。這些標記符中的每一個標記符分別對應這些高速緩存線中的一條高速緩存線。該第一TLB(30)存儲虛擬地址的多個頁面部分,該頁面部分用于識別多個虛擬頁面,這些虛擬頁面的物理地址存儲在該第一TLB(30)中。該標記符電路(36)被設定為用于識別一條或一條以上的多條高速緩存線,這些高速緩存線存儲在該高速緩存存儲器(16)中以及在該多個虛擬頁面內(nèi)。為響應該第一TLB(30)中第一虛擬地址的擊中及該標記符電路(36)中該第一虛擬地址的擊中,該標記符電路(36)被設定為用于阻止在該高速緩存存儲器中(16)的標記符存儲器(22)作讀取。文檔編號G06F12/08GK1846200SQ200480025291公開日2006年10月11日申請日期2004年6月4日優(yōu)先權日2003年9月3日發(fā)明者G·W·沈,S·C·尼爾森申請人:先進微裝置公司