国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種將儲存數(shù)據(jù)重新導向的虛擬集合高速緩存的制作方法

      文檔序號:6578103閱讀:222來源:國知局

      專利名稱::一種將儲存數(shù)據(jù)重新導向的虛擬集合高速緩存的制作方法
      技術領域
      :本發(fā)明涉及一種微處理器的高速緩存(microprocessorcache),特別涉及一種將儲存數(shù)據(jù)重新導向而更正虛擬集合以避免虛擬集合儲存失誤的懲罰的虛擬集合高速緩存(virtualsetcache)。數(shù)據(jù)高速緩存的容量較物理內(nèi)存小。因此,當一個數(shù)據(jù)高速緩存存取一行數(shù)據(jù)時,它也必須記住該數(shù)據(jù)的地址,以便之后當一個新的指令須在內(nèi)存中執(zhí)行該存取數(shù)據(jù)時,它可以比較該新數(shù)據(jù)地址與該數(shù)據(jù)的地址,或者稱為標志(tag),是否匹配(match)。當新的指令欲存取一內(nèi)存地址時,該數(shù)據(jù)高速緩存便將該新內(nèi)存地址與其它地址或標志相對照,若可匹配,則代表內(nèi)存中已儲存。如果該新地址與標志之一匹配,代表該筆數(shù)據(jù)已在高速緩存中,因此該高速緩存便將該數(shù)據(jù)提供給該微處理器的請求部分(requestingportion),而非再由微處理器自內(nèi)存中取得該數(shù)據(jù)。數(shù)據(jù)在數(shù)據(jù)高速緩存中的情形,稱為快取命中(cachehit)。數(shù)以百計用于快取線(cachelines)的標志被快取地儲存(cached)于數(shù)據(jù)高速緩存(datacache)中。要將新的地址與儲存在高速緩存內(nèi)數(shù)以百計的標志做比較,將花費相當久的時間并且會使該高速緩存處理速度變慢。因此,高速緩存便以集合數(shù)組(arraysofsets)的方式排列。每一個集合包括了一個或是多個快取線。一個典型的高速緩存排列是在一個集合上包括了四個快取線。其中的每一個快取線皆以不同的存取方式進行。一個具有四個快取線(cachelines)的高速緩存通常被稱為四路集合關聯(lián)高速緩存(four-waysetassociativecache)。通常當一個新的快取線被儲存至一個集合中時,該集合中近來最少使用的快取線(theleastrecentlyusedcacheline)將被選出而被該新快取線取代。通過將高速緩存排列為一個集合的數(shù)組,將該新地址與高速緩存中已儲存的地址相對照(compare)所需的時間,將減少到以下所述的可被接受的程度。當一個快取線被儲存至該高速緩存中后,該高速緩存并未讓該快取線儲存至該數(shù)組中的任一集合。相反地,該快取線可儲存的集合已因該快取線的地址而受到限制。該新地址的較低階位被用來選擇在數(shù)組中唯一的一個集合。用來從數(shù)組中選擇一個集合的地址位稱為索引(index)。由于高速緩存的容量較物理內(nèi)存小,因此該索引僅需紀錄該低階位。意即,因為儲存在高速緩存中的快取線數(shù)目遠低于儲存在物理內(nèi)存中的快取線數(shù)目,便只需要在高速緩存中制作數(shù)目較少的地址位索引。一但高速緩存通過索引而選擇了一個集合,該高速緩存便只需將被選擇的集合中該快取線的標志與該新地址相對照,以判斷快取命中是否發(fā)生。該索引所需要的地址位數(shù)目決定于該數(shù)組中的集合數(shù)目。舉例來說,如果該高速緩存有512個集合,則需要9個地址位來為該集合制作索引。該地址位中的哪一個將作為索引決定于快取線的尺寸。舉例來說,如果該快取線的尺寸是32個字節(jié),因為該地址中低階的5個位僅用來選擇快取線內(nèi)的一個字節(jié),因此便不會被使用。因此,對于一個內(nèi)有由大小為32個字節(jié)的快取線所組成的512個集合的高速緩存,地址位135被用來作為索引?,F(xiàn)代的微處理器也支持虛擬內(nèi)存的概念。在一個虛擬內(nèi)存系統(tǒng)中,程序指令利用虛擬的地址存取數(shù)據(jù)。該虛擬的地址很少與物理地址(physicaladdress)相同,物理地址指物理內(nèi)存中該數(shù)據(jù)所儲存的地址。該物理地址是使用于該處理器的總線(bus)中,以用來存取物理內(nèi)存。此外,當該程序指令存取被該虛擬內(nèi)存地址所指定的數(shù)據(jù)時,該數(shù)據(jù)甚至可能不會在物理內(nèi)存中。相反地,該數(shù)據(jù)也可能會存在一第二個儲存裝置中,一般為磁盤(diskdrive)。操作系統(tǒng)管理介于磁盤儲存裝置與物理內(nèi)存之間因執(zhí)行程序指令而必要的數(shù)據(jù)交換。該操作系統(tǒng)也管理虛擬地址對物理地址的指定工作,并維持通過微處理器將虛擬地址轉換為物理地址的轉換表(translationtable)?,F(xiàn)代的微處理器包括一轉換參照緩沖器(translationlookasidebuffer,TLB),其能存取最常存取的虛擬地址的物理地址的轉換,以避免微處理器仍須存取該轉換表來完成該轉換工作。典型的虛擬內(nèi)存為分頁式內(nèi)存系統(tǒng)((pagingmemorysystem)。在一分頁式內(nèi)存系統(tǒng)中,物理內(nèi)存分成許多頁,每一頁通常為4KB大小。因此,只有該虛擬地址的高位(upperbits)需要被轉換成物理地址,而該虛擬地址的低位(lowerbits)是不需被轉換為物理地址的。即,該低位與該物理地址位是相同的,可作為該物理分頁基址(baseaddress)的物理字節(jié)偏移(physicalbyteoffset)。該物理分頁的基址由該虛擬地址的高位所轉換而來。例,在一個有4KB個分頁的分頁式系統(tǒng)中,該虛擬地址的低12位(位110)是不被轉換的,其即為物理地址位。因此,若該虛擬地址為32位,則該虛擬地址的高20位(位3112)將利用該轉換表而被轉換,并且將存取在轉換參照緩沖器中。虛擬內(nèi)存系統(tǒng)的另一個效果(effect),是兩個不同的程序可利用兩個不同的虛擬地址在內(nèi)存中存取相同的物理位置,高速緩存可利用該物理位置追蹤該存取數(shù)據(jù)以確保數(shù)據(jù)的一致性。意即這些物理地址即為標志,另外物理地址應被作為索引。然而,利用物理地址作為索引可能會因下述的原因而減損(detrimental)效能。較大的高速緩存一直是我們所持續(xù)追求的目標,而微處理器集成電路在集成度上的改善,使得現(xiàn)今的微處理器可包括相對大容量的高速緩存。接續(xù)所述的例子,現(xiàn)在假設在一個分頁為4KB大小的分頁式系統(tǒng)中,具有一個64KB的四路集合關聯(lián)高速緩存,其快取線為32字節(jié)(byte)。在該四個快取線的集合中,每一個集合包括128字節(jié)(byte)的數(shù)據(jù)。這將在該數(shù)組形成512個集合。如我們之前所討論的,其索引將位于地址位135處。然而,我們得知地址位1312也是轉換的地址位,即虛擬的地址位,而非物理的地址位。一個解決的方法是等待該轉換參照緩沖器轉換虛擬地址位1312并將該轉換后的物理地址位1312作為該索引的兩個高位。然而,這個解決方式由于必須等待轉換參照緩沖器完成其轉換工作,以利用物理地址位1312為高速緩存制作索引以取得或儲存數(shù)據(jù),因此將花費較久的時間而會減損效能。潛在的結果是不僅該微處理器的運作時間將增加,而且須為微處理器增加另一個步驟以順應該額外轉換參照緩沖器的查找時間,避免增長該運作時間。為了避免由于等待該轉換參照緩沖器(TLB)所需要的轉換后的物理地址位來提供索引而帶來的懲罰(penalty),該微處理器可利用索引中的一些虛擬位,如所述例子中的虛擬地址位1312。利用一些虛擬地址位作為索引的高速緩存便稱為虛擬集合高速緩存。該高速緩存是一虛擬的集合高速緩存,因其對一已知的快取線將儲存于高速緩存數(shù)組中的哪一個集合不再具有決定性。更確切地說,該快取線因該索引中的虛擬地址位而具有指向同一個物理高速緩存線的多個數(shù)值,因此可能被儲存于多個集合中的一個集合??烊【€可能被儲存于其內(nèi)的數(shù)個集合便稱作是虛擬集合。利用所述的例子,一包括01數(shù)值、物理地址位1312的快取線能被四個不同的虛擬地址存取。意即,該快取線不只是能在1312的虛擬地址位被存取01的數(shù)值,更可以被存取00、10以及11等數(shù)值。因此,該快取線能儲存于該高速緩存中四個不同的虛擬集合中的一個集合。在該物理地址位上被選擇的集合便稱為物理集合。該虛擬集合高速緩存的一個負面結果是可能造成一種所謂的虛擬集合錯誤(virtualsetmiss)。當一指令存取在高速緩存中的數(shù)據(jù)時,由于索引部分是虛擬的,因此,該索引選擇除了具有該快取線存在的虛擬集合以外的一個虛擬集合,即除了物理集合以外的一個虛擬集合,則虛擬集合錯誤(virtualsetmiss)便會發(fā)生。由儲存行為產(chǎn)生的虛擬集合錯誤便是虛擬集合儲存錯誤。本發(fā)明的發(fā)明人已測試編碼紀錄(codetraces)并觀察到windows98操作系統(tǒng)常常執(zhí)行近200個指令中的兩個指令,利用兩個不同的虛擬地址來儲存至同一個物理內(nèi)存地址。這些指令代表了一虛擬集合儲存錯誤在一虛擬集合高速緩存中發(fā)生的狀況。因此,此處所需要的是讓虛擬集合高速緩存中不會產(chǎn)生虛擬集合儲存錯誤的懲罰(virtualsetstoremisspenalty)。另一方面,本發(fā)明的特征在提供一個微處理器,該微處理器包括一個轉換參照緩沖器(TLB),其接收一個儲存動作的虛擬分頁號碼并提供該虛擬分頁號碼的物理分頁地址。該微處理器還包括一與轉換參照緩沖器對應的虛擬集合高速緩存,其獲得該儲存動作的物理快取線偏移。該物理快取線偏移選擇在該虛擬集合高速緩存中的多個虛擬集合。該虛擬集合高速緩存查尋該數(shù)個虛擬集合中哪一個集合具有由轉換參照緩沖器所提供的物理分頁地址所作的儲存動作指定的快取線。該微處理器還包括一與該虛擬集合高速緩存對應的地址緩存器(addressregister),其儲存了一匹配虛擬集合數(shù)字(matchingvirtualsetnumber),該匹配虛擬集合數(shù)字由該儲存動作所指定的多個虛擬集合中指定一個集合。如果該虛擬集合高速緩存顯示一部分用來制作索引的虛擬分頁號碼,該虛擬集合高速緩存中會產(chǎn)生虛擬集合儲存錯誤,則該微處理器便依據(jù)地址緩存器的匹配虛擬集合數(shù)字來更新該快取線。另一方面,本發(fā)明的特征在于提供一種將受到儲存指令地址所指定的數(shù)據(jù)儲存至虛擬集合高速緩存的方法。該方法包括了在高速緩存內(nèi)利用該儲存指令的地址上未轉換的物理地址位制作索引,以由快取線選擇多個虛擬集合以及關聯(lián)標志。該方法也包括將該儲存指令的地址上的虛擬地址位轉換為轉換后的物理地址位,并比較該關聯(lián)標志與該轉換后的物理地址位。該方法也包括利用比較的結果,儲存數(shù)個虛擬集合中的一個匹配集合的匹配虛擬集合數(shù)字。該方法也包括如果該數(shù)個虛擬集合中的一個虛擬集合,與受到該儲存指令虛擬地址位指定的虛擬集合不相同的話,則利用該匹配的虛擬集合數(shù)字更新數(shù)個虛擬集合中的一個匹配集合,以在該高速緩存中制作索引。本發(fā)明的優(yōu)點在于可在不需大量的額外邏輯的情況下避免該虛擬集合儲存錯誤懲罰。本發(fā)明的所述及其它目的、特征及優(yōu)點可由下述詳細說明并配合而更得以彰顯。該微處理器100在D階段與G階段101時包括一數(shù)據(jù)高速緩存(datacache)104。在實施例中,該數(shù)據(jù)高速緩存104包括一64KB的四路集合關聯(lián)數(shù)據(jù)高速緩存(4-wayset-associativedatacache)。在實施例中,該數(shù)據(jù)高速緩存104包括一個具有四個32字節(jié)快取線的512個集合的數(shù)組(array),其中該集合的四路徑中每一路徑皆儲存該集合的四個快取線中的一個快取線。該數(shù)據(jù)高速緩存104接收一儲存動作或儲存指令的一儲存地址(storeaddress)103。一部分儲存地址103是用來在該數(shù)據(jù)高速緩存104中集合的數(shù)組(arraysets)的索引(index)。在實施例中,該儲存地址103包括了32個位,表示為SA310。該儲存地址103指定欲儲存進數(shù)據(jù)高速緩存104的儲存數(shù)據(jù)的地址。該儲存地址103為一虛擬地址(virtualaddress)。該儲存地址103包括了一虛擬分頁號碼部分(virtualpagenumberportion)105,即虛擬地址位3112,表示為VA3112105。該儲存地址也包括一物理分頁偏移部分(physicalpageoffsetportion)109,即未轉換的物理地址位110,表示為PA110109。該微處理器100在D階段與G階段101也包括一轉換參照緩沖器(translationlookasidebuffer,TLB)106。該轉換參照緩沖器106獲得儲存地址103的虛擬分頁號碼VA3112105后,該轉換參照緩沖器便查找該虛擬分頁號碼(virtualpagenumber)105,如果該虛擬分頁號碼105已儲存于該轉換參照緩沖器106中,則該轉換參照緩沖器便會提供轉換后的物理地址位107,表示為PA3112107,給該數(shù)據(jù)高速緩存104。該轉換后的物理地址(physicaladdress)107也稱作該物理分頁地址107。該數(shù)據(jù)高速緩存104受一動作驅(qū)使后便產(chǎn)生數(shù)據(jù)172。在執(zhí)行階段111的緩存器112由該數(shù)據(jù)高速緩存104獲得該數(shù)據(jù)172。該數(shù)據(jù)高速緩存104還產(chǎn)生一命中信號(hitsignal)174。如果該儲存地址103在該數(shù)據(jù)高速緩存104內(nèi),則該數(shù)據(jù)高速緩存104便在該命中信號174上產(chǎn)生一正確數(shù)值(truevalue)。意即,如果由該儲存地址103所指定的該數(shù)據(jù)儲存于該數(shù)據(jù)高速緩存104中,那么該數(shù)據(jù)高速緩存104便在該命中信號174上產(chǎn)生一正確數(shù)值,以下將詳細地描述。該數(shù)據(jù)高速緩存104還產(chǎn)生一延遲信號(stallsignal)176。如果無法在該數(shù)據(jù)高速緩存104中找到該儲存地址103,則該數(shù)據(jù)高速緩存104便在該延遲信號上產(chǎn)生一正確數(shù)值。意即,如果由該儲存地址103所指定的該數(shù)據(jù)并不儲存于該數(shù)據(jù)高速緩存104中,則該數(shù)據(jù)高速緩存104便會在該延遲信號176上產(chǎn)生一正確數(shù)值,以延遲該流水線(pipeline)直到由該儲存地址103所指定的該快取線已由內(nèi)存中抓取,以下將詳細地描述。該數(shù)據(jù)高速緩存104還產(chǎn)生一虛擬集合儲存錯誤指示器(virtualsetstoremissindicator)187。一在該執(zhí)行階段111的緩存器117由該數(shù)據(jù)高速緩存104獲得該虛擬集合儲存錯誤指示信號187。該虛擬集合儲存錯誤指示信號187經(jīng)由傳輸線路(pipeline)傳送,并且在該儲存動作的更新過程(updatepassofthestoreoperation)時以虛擬集合錯誤指示器(virtualsetstoremissindicator)197的形式傳回至該數(shù)據(jù)高速緩存104。該虛擬集合儲存錯誤指示信號187的傳送分別經(jīng)過儲存階段121的緩存器127,回寫階段131的緩存器137,以及儲存緩沖階段141的緩存器147。緩存器147將該虛擬集合儲存錯誤指示信號197傳回給該數(shù)據(jù)高速緩存104。如果該儲存地址103已產(chǎn)生一虛擬集合儲存錯誤,則該虛擬集合儲存錯誤指示信號197將用來把該儲存數(shù)據(jù)重新導向(redirect)至數(shù)據(jù)高速緩存中一正確的虛擬集合,以下將詳細地描述。該數(shù)據(jù)高速緩存104還產(chǎn)生一原始虛擬集合數(shù)字信號(originalvirtualsetnumbersignal)189。該原始虛擬集合數(shù)字189系該儲存地址103的原始虛擬地址位1312。一在執(zhí)行階段111的緩存器119由該數(shù)據(jù)高速緩存104獲得該原始虛擬集合數(shù)字189。該原始虛擬集合數(shù)字189的傳送分別經(jīng)過儲存階段121的緩存器129,回寫階段131的緩存器139,以及儲存緩沖階段141的緩存器149。在實施例中,該原始虛擬集合數(shù)字189包括兩個位,在經(jīng)過流水線的傳送并且在該儲存動作的更新過程時回傳給該數(shù)據(jù)高速緩存104后,也稱作原始虛擬地址位,表示為OVA1312199。緩存器149將0VA1312199回傳給該數(shù)據(jù)高速緩存104。該數(shù)據(jù)高速緩存104還產(chǎn)生一匹配的虛擬集合數(shù)字信號(matchingvirtualsetnumbersignal)182。在該執(zhí)行階段111的緩存器114由該數(shù)據(jù)高速緩存104處獲得該匹配的虛擬集合數(shù)字182。該匹配的虛擬集合數(shù)字182的傳送分別經(jīng)過儲存階段121的緩存器124,回寫階段131的緩存器134,以及儲存緩沖階段141的緩存器144。在實施例中,該匹配的虛擬集合數(shù)字182包括兩個位,在經(jīng)過流水線的傳送并且在該儲存動作的更新過程時回傳給該數(shù)據(jù)高速緩存104后,也稱作重新導向路徑地址位(redirectaddressbits),表示為RA1312194。緩存器144將RA1312194回傳給該數(shù)據(jù)高速緩存104。該數(shù)據(jù)高速緩存104還產(chǎn)生一匹配路徑數(shù)字信號(matchingwaynumbersignal)184。在該執(zhí)行階段111的緩存器116由該數(shù)據(jù)高速緩存104處獲得該匹配的路徑數(shù)字信號184。該匹配的虛擬集合數(shù)字信號182的傳送分別經(jīng)過儲存階段121的緩存器126,回寫階段131的緩存器136,以及儲存緩沖階段141的緩存器146。在實施例中,該匹配的路徑數(shù)字信號184包括兩個位,在經(jīng)過流水線的傳送并且在該儲存動作的更新過程時回傳給該數(shù)據(jù)高速緩存104后,也稱作重新導向路徑位(redirectwaybits)196。緩存器146將該重新導向路徑位196回傳給該數(shù)據(jù)高速緩存104。該數(shù)據(jù)高速緩存104還產(chǎn)生一匹配狀態(tài)信號(matchingstatussignal)186。在該執(zhí)行階段111的緩存器118由該數(shù)據(jù)高速緩存104處獲得該匹配狀態(tài)信號186。在實施例中,該匹配狀態(tài)信號186包括修正、不兼容、分享以及無效(modified,exclusive,sharedandinvalidMESI)位,在經(jīng)過傳送并且在當該儲存動作的更新過程時回傳給該數(shù)據(jù)高速緩存104后,也稱作重新導向路徑狀態(tài)位(redirectwaybits)198。該匹配狀態(tài)信號186的傳送分別經(jīng)過儲存階段121的緩存器128,回寫階段131的緩存器138,以及儲存緩沖階段141的緩存器148。緩存器148將該重新導向路徑狀態(tài)位198回傳給該數(shù)據(jù)高速緩存104。該微處理器100在執(zhí)行階段111中還包括一算術邏輯單元(arithmeticlogicunit,ALU)113。該算術邏輯單元113由緩存器112獲得數(shù)據(jù)。該微處理器100在執(zhí)行階段111中還包括一多工器(multiplexer)115。該多工器115由該算術邏輯單元113獲得結果。該算術邏輯單元113的結果可能成為儲存動作的儲存數(shù)據(jù)。另外,該多工器115由該微處理器100中的緩存器檔案,或是由一儲存指令中的實時數(shù)據(jù),獲得儲存數(shù)據(jù)153。由該多工器115所選擇的儲存數(shù)據(jù)輸出的傳送系分別經(jīng)過儲存階段121的緩存器122,回寫階段131的緩存器132。該微處理器100在儲存階段121中還包括一多工器133。該多工器133由緩存器122獲得該儲存數(shù)據(jù)。該多工器133也由在寫入緩沖階段151中的反應緩沖(responsebuffer,RB)154獲得快取線數(shù)據(jù)155。該反應緩沖154由一總線接口單元(businterfaceunit,BIU)162獲得一快取線。該總線接口單元162自內(nèi)存處經(jīng)由一處理器總線(processorbus)164抓取快取線,該處理器總線與該總線接口單元對該內(nèi)存相對應。該多工器133的輸出由回寫階段131的緩存器132提供。該微處理器100在儲存緩沖階段141中還包括一儲存緩沖(storebuffer,SB)142。該儲存緩沖142由緩存器132獲得數(shù)據(jù)。該儲存緩沖142保留將提供給該數(shù)據(jù)高速緩存104并由該數(shù)據(jù)高速緩存104儲存的儲存數(shù)據(jù)192。該儲存緩沖142中的儲存數(shù)據(jù)192也在寫入緩沖階段151時提供給寫入緩沖(writebuffer,WB)152。該寫入緩沖152保留寫入數(shù)據(jù)以等待由該總線接口單元162寫入該微處理器總線164上的內(nèi)存。圖2為圖1中該數(shù)據(jù)高速緩存104的方框圖。該數(shù)據(jù)高速緩存104包括一標志與狀態(tài)數(shù)組202,以及一數(shù)據(jù)數(shù)組204。在實施例中,該數(shù)組202及204各為四路徑(fourways),表示為路徑0,路徑1,路徑2以及路徑3。在實施例中,該數(shù)據(jù)數(shù)組204包括512個快取線集合。如圖所示其中三個代表性的集合,分別表示為集合0252,集合N254以及集合511256。集合0252系數(shù)組202與204的第一個或最上層的集合;集合511256是數(shù)組202與204最后一個或最下層的集合;而集合N254是位于數(shù)組202與204中間位置的集合。該數(shù)組202與204由索引222選擇一個集合標示出。在實施例中,該索引222包括9個位,表示為索引80,以由512個集合中選擇出一個集合。該索引222的低7位包括圖1中該儲存地址103的物理地址位115,表示為PA115224。物理地址位115224也稱作物理快取線偏移224。該物理快取線偏移224指定由內(nèi)存中物理分頁的基址所產(chǎn)生的32字節(jié)的快取線偏移(offset)。該索引222的高2位包括虛擬集合選擇位228。該虛擬集合選擇位228系與該物理地址位PA115224相連接以產(chǎn)生該索引222。該虛擬集合選擇位228由多工器216的輸出所提供。如下所述,該虛擬集合選擇位228選擇經(jīng)由該物理地址位PA115224所選出的該數(shù)據(jù)高速緩存104內(nèi)四個虛擬集合中的一個集合。該多工器216的第一次輸入獲得該儲存地址103的虛擬地址位1312,表示為VA1312226。該多工器216的第二次輸入獲得圖1中的重新導向路徑地址位RA1312194。該多工器的第三次輸入獲得圖1中的原始虛擬地址位OVA1312199。該多工器216的控制輸入由控制邏輯208獲得控制信號246。該控制邏輯208獲得圖1的該虛擬集合儲存錯誤指示信號197并通過該虛擬集合儲存錯誤指示信號197產(chǎn)生控制信號246來控制該多工器216以選擇以下所述的一個輸入。圖3為圖2中該虛擬集合選擇位多工器的運作表格300。該表格300是兩行四列的表格。第一行顯示出一根據(jù)圖1的數(shù)據(jù)高速緩存104所為的動作。第二行顯示多工器216選擇哪一個輸入作為該虛擬集合選擇位228。表格300的第一列顯示當一加載動作在圖1的數(shù)據(jù)高速緩存104執(zhí)行時,該多工器216選擇圖2的虛擬地址位VA1312226。意即,該儲存地址103在加載動作時為一加載地址,并且該多工器216選擇該虛擬地址位VA1312226以從圖2的數(shù)組202與204中選出一個集合。表格300的第二列顯示當一儲存查尋動作進入該數(shù)據(jù)高速緩存104時,不需考慮該多工器216選擇哪一個位。一儲存動作由該數(shù)據(jù)高速緩存104的兩次過程方式(two-passmanner)所完成。該第一次過程稱作查尋過程(querypass)。該第二次過程稱作更新過程(updatepass)。在該查尋過程,圖2的該標志與狀態(tài)數(shù)組202受到查尋以判斷該儲存地址103所指定的快取線是否正在該數(shù)據(jù)高速緩存104中,若是,則該數(shù)據(jù)高速緩存104中的狀態(tài)及位置即為該快取線所需。以下將詳細描述,在儲存動作的查尋過程中,該數(shù)據(jù)高速緩存104將檢驗由圖4的物理地址位PA115224所選擇的四個所有的虛擬集合。表格300的第三列顯示在儲存動作的更新過程中,哪一個對應的查尋過程在該數(shù)據(jù)高速緩存104的儲存地址103產(chǎn)生錯誤,該多工器選擇出原始虛擬地址位OVA1312199。表格300的第四列顯示在儲存動作的更新過程中,哪一個對應的查尋過程在該數(shù)據(jù)高速緩存104的儲存地址103產(chǎn)生命中,該多工器選擇出重新導向路徑地址位RA1312194。如表格300中所述,該多工器216運作的目的在于將成為本發(fā)明其余部分(remainder)更充分的證據(jù),特別是在圖5的部分?;氐綀D2,該數(shù)據(jù)高速緩存104也獲得圖1的儲存數(shù)據(jù)192,重新導向路徑狀態(tài)位198,以及重新導向路徑位196。這些數(shù)值在以下所述中將用來更新該數(shù)據(jù)高速緩存104。該數(shù)據(jù)高速緩存104還包括一多工器(multiplexer)212。受該加載動作的作用,該多工器212獲得四個快取線,一個由索引222從該數(shù)據(jù)數(shù)組204的四路中的每一個路徑選擇出來。該多工器212從四個快取線中選擇一個快取線作為圖1的加載數(shù)據(jù)172。該多工器212基于控制邏輯208所產(chǎn)生的控制信號242來選擇一個快取線?;貞?inresponseto)該索引222,該標志與狀態(tài)數(shù)組202產(chǎn)生16個標志與狀態(tài)數(shù)值232。如以下所述,見圖4,該16個標志與狀態(tài)數(shù)值232包括一個標志與狀態(tài)數(shù)值,是該索引222的物理地址位PA115224自該四個虛擬集合中的四路中的每一路徑所選出的。該數(shù)據(jù)高速緩存104還包括16個比較器206。每一個比較器206將圖1中經(jīng)該轉換參照緩沖器106所產(chǎn)生的物理地址位PA3112107與其所對應的該標志與狀態(tài)數(shù)組202中輸出的16個標志234進行比較。這16個比較器206產(chǎn)生16個匹配信號236。若該比較后的標志與該物理地址位224相匹配,則匹配信號236便為一正確數(shù)值。該16個匹配信號236提供給該控制邏輯208,這樣,該控制邏輯208便能判斷是否虛擬集合的路徑上的任何一個標志能與該物理地址位3112107相匹配。該控制邏輯208利用該16個匹配信號236來產(chǎn)生圖1中的命中信號174、延遲信號176、該匹配虛擬集合數(shù)字信號182以及該匹配路徑數(shù)字信號184。該數(shù)據(jù)高速緩存104還包括一比較器248,該比較器248將比較該匹配虛擬集合數(shù)字信號182以及該原始虛擬集合數(shù)字189,以產(chǎn)生圖1的虛擬集合儲存錯誤指示信號187。如果該匹配虛擬集合數(shù)字信號182與該原始虛擬集合數(shù)字189不一致,則該比較器248將在該虛擬集合儲存錯誤指示信號187上產(chǎn)生一正確顯示。否則,該比較器248將產(chǎn)生一錯誤顯示。該數(shù)據(jù)高速緩存還包括一多工器214。該多工器214自該標志與狀態(tài)數(shù)組202的輸出獲得16個狀態(tài)238。該多工器214選擇該16個狀態(tài)238之一作為圖1中的匹配狀態(tài)186。該控制邏輯208利用該16個匹配信號236來產(chǎn)生控制信號244,以控制該多工器214選擇該匹配狀態(tài)186。見圖4,圖4為圖2中標志與狀態(tài)數(shù)組202的方框圖。在圖4的實施例中,未經(jīng)轉換的索引位60,即圖2中的物理地址位PA115224,為0000000b,或0x00。因此,索引222的未經(jīng)轉換位224便選擇了集合0、集合128、集合256以及集合384。集合0由于被圖2的虛擬集合選擇位228的數(shù)值0所選擇,故稱作虛擬集合0。集合128由于被圖2的虛擬集合選擇位228的數(shù)值1所選擇,故稱作虛擬集合1。集合256由于被圖2的虛擬集合選擇位228的數(shù)值2所選擇,故稱作虛擬集合2。集合384由于被圖2的虛擬集合選擇位228的數(shù)值3所選擇,故稱作虛擬集合3。圖2虛擬集合選擇位228的每一個可能值也顯示出來,即該虛擬集合選擇位228的數(shù)值00b選擇虛擬集合0;該虛擬集合選擇位228的數(shù)值01b選擇虛擬集合1;該虛擬集合選擇位228的數(shù)值10b選擇虛擬集合2;該虛擬集合選擇位228的數(shù)值11b選擇虛擬集合3。該四個虛擬集合中,每一個路徑的標志與狀態(tài)成對地依次序排列(denoted),縱坐標為該虛擬集合數(shù)字,橫坐標為該路徑數(shù)字。因此,舉例來說,該虛擬集合1的路徑2的標志與狀態(tài)即表示為(1,2)。圖2中的該16個標志234被提供給圖2中的比較器206。該比較器將圖4中依16個成雙排列的每一個標志與圖1的物理地址位PA3132相比較。由該比較器206所產(chǎn)生的該匹配信號236(圖2中)被提供給控制邏輯208(圖2中)。該控制邏輯208產(chǎn)生兩位匹配虛擬集合數(shù)字信號10182,以及依照下述與圖4所示的方程式得出的16個匹配信號236所產(chǎn)生的圖1中兩位匹配路徑數(shù)字信號10184。在該方程式中,該成對排序的數(shù)字表示由該成對排序數(shù)字所對應的標志產(chǎn)生的匹配信號236的數(shù)值。匹配虛擬集合數(shù)字[1]=(2,0)|(2,1)|(2,2)|(2,3)|(3,0)|(3,1)|(3,2)|(3,3);匹配虛擬集合數(shù)字=(1,0)|(1,1)|(1,2)|(1,3)|(3,0)|(3,1)|(3,2)|(3,3);匹配路徑數(shù)字[1]=(0,2)|(1,2)|(2,2)|(3,2)(0,3)|(1,3)|(2,3)|(3,3);匹配路徑數(shù)字=(0,1)|(1,1)|(2,1)|(3,1)|(0,3)|(1,3)|(2,3)|(3,3);見圖5,圖5為圖1中本發(fā)明的虛以集合高速緩存的運作流程圖。流程開始于方框502及504。在方框502中,一儲存查尋過程開始一儲存動作進行圖1中的D階段101,并且圖1的該數(shù)據(jù)高速緩存104利用儲存地址103(圖1中)的未轉換地址位PA115224(圖2中)作為索引位60222(圖2中)。地址位PA115224從數(shù)據(jù)高速緩存204(圖2中)的快取線中選擇四個虛擬集合,以及從標志與狀態(tài)數(shù)組202(圖2中)中選擇標志及狀態(tài),如圖4中的虛擬集合0至虛擬集合3。流程由方框502進行至方框506。在方框504中,轉換參照緩沖器106(圖1中)獲得該儲存地址103的地址位VA3112226(圖2中),并提供轉換后地址位PA3112107(圖1中)給比較器206(圖2中)。流程由方框504進行到方框506。方框502及方框504實質(zhì)上(substantially)是同時進行的。意即,該儲存地址103實質(zhì)上是同時地(simultaneously)提供給該數(shù)據(jù)高速緩存104和該轉換參照緩沖器106。特別是,該數(shù)據(jù)高速緩存104在未利用PA115224選擇該四個虛擬集合之前,沒有等待該轉換參照緩沖器106來提供PA3112107。在方框506中,該比較器206比較圖2中16個標志234,以及在方框504中由轉換參照緩沖器106提供以產(chǎn)生圖2中16個匹配信號236的轉換后物理地址PA3132107。流程由方框506進行至判斷方框508。在判斷方框508,該控制邏輯208檢驗在方框506產(chǎn)生的16個匹配信號236(圖2)以判斷該16個標志234是否與PA3112107相匹配、以及該16個標志234中的哪一個與PA3112107相匹配。如果沒有一個標志能夠匹配,流程將進行到方框512。否則流程將進行到方框524。在方框512中,該控制邏輯208在圖1的命中信號174產(chǎn)生一錯誤數(shù)值以顯示在數(shù)據(jù)高速緩存104中的錯誤,并且延遲信號176(圖1)產(chǎn)生一正確數(shù)值以遲延該微處理器100的流水線進程。流程由方框512進行到方框514。在方框514中,圖1的總線接口單元162執(zhí)行圖1在該微處理器總線164上的總線交換(bustransaction)以抓取圖1中在反應緩沖154的錯誤快取線(missingcacheline)。該微處理器100便把與該儲存動作對應的儲存數(shù)據(jù)153(圖1)以及被抓取入該反應緩沖154的快取線進行合并,并且將該合并的數(shù)據(jù)置入儲存緩沖142(圖1)。流程由方框514進行到方框516。在方框516中,該控制邏輯208放棄(desert)該延遲信號176以進行(unstall)該微處理器100流水線。流程由方框516進行至方框518。在方框518中,該控制邏輯208產(chǎn)生控制信號246以控制圖2的多工器216來選擇圖1地址位0VA1312作為圖2的虛擬集合選擇位228。因此,該數(shù)據(jù)高速緩存104便利用關聯(lián)的PA115224與0VA1312199以形成索引位80222來選擇在該數(shù)據(jù)高速緩存104的集合進行更新。流程由方框518進行至方框522。在方框522中,數(shù)據(jù)高速緩存104內(nèi)在方框518中受選擇的集合,由方框514中合所并入該儲存緩沖142的數(shù)據(jù)更新。流程在方框522停止。在方框524,該控制邏輯208在該命中信號174上產(chǎn)生一正確數(shù)值以向該流水線顯示該儲存地址103已在該數(shù)據(jù)高速緩存104內(nèi)。特別是只要任何匹配信號236是正確的,該控制邏輯208便產(chǎn)生一命中信號,不論被地址位VA1312226所選擇的相應于該虛擬集合的匹配信號236是否正確。換言之,即使會發(fā)生虛擬集合儲存錯誤,該控制邏輯208仍然顯示該數(shù)據(jù)高速緩存104內(nèi)的命中信號。流程由方框524進行至方框526。在方框526中,圖1中的該原始虛擬集合數(shù)字189、虛擬集合儲存錯誤指示信號187、匹配虛擬集合數(shù)字信號182、匹配方向路徑數(shù)字信號184以及匹配狀態(tài)186,分別儲存于圖1的緩存器119、117、114、116以及118,并且傳送至儲存緩沖階段141以執(zhí)行該儲存動作的更新過程。流程由方框526進行至判斷方框528。在判斷方框528,該控制邏輯208判斷該儲存動作是否會產(chǎn)生虛擬集合儲存錯誤,意即,該控制邏輯208判斷該虛擬集合儲存錯誤信號197是否正確。如果為不正確,則流程進行到方框532。否則,流程進行到方框534。在方框532中,該控制邏輯208產(chǎn)生控制信號246以控制圖2的多工器216選擇該原始虛擬地址位0VA1312199作為圖2的虛擬集合選擇位228。因此,該數(shù)據(jù)高速緩存104便利用關聯(lián)的PA115224與0VA1312199來形成索引位80222以在該數(shù)據(jù)高速緩存104中選擇一集合進行更新。意即,所儲存位103的原始虛擬地址位1312選擇該原始虛擬集合進行更新。流程由方框532進行至方框536。在方框534中,該控制邏輯208產(chǎn)生控制信號246以控制圖2的多工器216選擇該重新導向路徑地址位RA1312194作為圖2的虛擬集合選擇位228。因此,該數(shù)據(jù)高速緩存104便利用關聯(lián)的PA115224與RA1312194來形成索引位80222以在該數(shù)據(jù)高速緩存104中選擇一集合進行更新。意即,該匹配虛擬集合被選擇以進行更新,而非該儲存地址103的原始虛擬地址位所指定的虛擬集合,因為該原始虛擬地址位1312會產(chǎn)生一虛擬集合儲存錯誤。流程由方框534進行到方框536。在方框536中,利用從儲存緩沖142中儲存動作的儲存數(shù)據(jù),更新該數(shù)據(jù)高速緩存104內(nèi)在方框532或方框534中被選擇的集合。流程在方框536停止。圖6為本發(fā)明將兩個相異的虛擬儲存地址轉換為相同的物理地址的方框圖,如圖1的儲存地址103。圖6所示的實施例用來顯示兩個儲存動作如何能產(chǎn)生一虛擬集合儲存錯誤條件。該實施例將結合圖7來顯示出在一導致虛擬集合儲存錯誤的狀態(tài)下,本發(fā)明如何產(chǎn)生一快取命中。圖6所顯示的是圖1中微處理器100的虛擬內(nèi)存空間602。第一及第二虛擬內(nèi)存儲存地址分別為0x11111000與0x22222000。圖1的第一個范例的虛擬儲存地址的VA3112位105具有提供給圖1中轉換參照緩沖器106的數(shù)值0x11111。在該實施例中,該轉換參照緩沖器106產(chǎn)生圖1的轉換后物理地址位PA3112107,其數(shù)值為0x33333。在該實施例中,圖1未轉換物理地址位PA110109的數(shù)值為0x000。該PA110位109與該PA3112位107相關聯(lián)以產(chǎn)生數(shù)值為0x33333000的物理地址位PA310606,其將在圖1中微處理器總線164上微處理器100的物理內(nèi)存空間604內(nèi)指定一個位置。同樣地,該第二個范例的虛擬儲存地址的VA3112位105具有提供給轉換參照緩沖器106的數(shù)值0x22222。在該實施例中,該轉換參照緩沖器106產(chǎn)生轉換后物理地址位PA3112107,其數(shù)值為0x33333。在該實施例中,如果該第二虛擬儲存地址同為0x000,則未轉換物理地址位PA110109與該第一個范例的儲存虛擬地址的PA110109相同。因此,該PA110位109便與該PA3112位107相關聯(lián)以產(chǎn)生數(shù)值同樣為0x33333000的物理地址位PA310606,其與第一虛擬儲存地址在微處理器100的物理內(nèi)存空間604內(nèi)指定相同的位置。圖7為經(jīng)儲存指令的三次執(zhí)行動作后,在該數(shù)據(jù)高速緩存中所成功產(chǎn)生三個內(nèi)容的方框圖。該數(shù)據(jù)高速緩存104的三個內(nèi)容分別表示為104A、104B以及104C,并代表儲存指令的執(zhí)行依時間前后排列的結果。在每一個數(shù)據(jù)高速緩存104A、104B以及104C中,一矩陣顯示出圖4中哪一列顯示該四個快取路徑,以及圖4中哪一行顯示出四個不同的虛擬集合,表示為VS0、VS1、VS2以及VS3。數(shù)據(jù)高速緩存104A的內(nèi)容顯示在儲存指令執(zhí)行后,具有圖6的第一個范例的虛擬儲存地址,即0x11111000。該指令為ST0x111110000xAA,即儲存數(shù)值為0xAA的數(shù)據(jù)位至虛擬地址0x11111000,其將轉換為物理地址0x33333000。為了解釋上的簡單及清楚,僅在該第一儲存指令執(zhí)行之前,假設該數(shù)據(jù)高速緩存104A的VS1的所有四個路徑皆為空的,即皆是無效的。因此,該數(shù)據(jù)高速緩存104A的錯誤將根據(jù)圖5的方框508而被偵測出來。該數(shù)據(jù)高速緩存104A指示出錯誤,該流水線延遲,該錯誤的快取線被抓取出,并且之后該流水線便根據(jù)圖5的方框512、514以及516而開始通行。依據(jù)圖5的方框518,該高速緩存104A利用圖1的0VA1312位199制作索引以選擇一集合以進行更新。由于該0VA1312位199具有數(shù)值01b,因此VS1便被選中。在該實施例中,路徑2為最近最少使用的路徑,因此便被選擇出進行更新。依據(jù)圖5的方框522,該數(shù)據(jù)高速緩存104A的VS1的路徑2顯示出一數(shù)據(jù)數(shù)值0xAA。此外,該數(shù)據(jù)高速緩存104A的VS1的路徑2便被數(shù)值為0x33333的PA3112位107的標志更新。最后,該數(shù)據(jù)高速緩存104A顯示一修正后的狀態(tài)數(shù)值,由“M”表示。數(shù)據(jù)高速緩存104B的內(nèi)容顯示在儲存指令執(zhí)行后,具有圖6的第二個范例的虛擬儲存地址,即0x22222000。該指令為ST0x222220000xBB,即儲存數(shù)值為0xBB的數(shù)據(jù)位至虛擬地址0x22222000,其將轉換為物理地址0x33333000。僅在該第二儲存指令執(zhí)行之前,假設該數(shù)據(jù)高速緩存104B的VS2的所有四個路徑皆為空的,即皆是無效的。然而,由于圖2的比較器206根據(jù)圖5的方框506,將比較四個虛擬集合的四個路徑的所有16個標志,因此該數(shù)據(jù)高速緩存104B的快取命中將根據(jù)圖5的方框508而被偵測出來,并且發(fā)現(xiàn)VS1路徑2的標志與圖1的PA3112位107及具有修正數(shù)值的快取線狀態(tài)相匹配,顯示數(shù)據(jù)存在。因此,該數(shù)據(jù)高速緩存104B根據(jù)圖5的方框524顯示一快取命中。根據(jù)圖5的方框526,圖1中該原始虛擬集合數(shù)字189、虛擬集合儲存錯誤指示信號187、匹配虛擬集合數(shù)字信號182、匹配路徑數(shù)字信號184以及匹配狀態(tài)信號186將儲存并傳送至圖1的儲存階段121。依圖5方框528的判斷,因為一虛擬集合儲存錯誤可能發(fā)生,所以該數(shù)據(jù)高速緩存104B根據(jù)圖5的方框534,利用圖1的RA1312位194制作索引以選擇一集合以進行更新。由于該RA1312位194具有數(shù)值01b,所以VS1便被選出。依據(jù)圖5的方框536,該數(shù)據(jù)高速緩存104B的VS1的路徑2顯示出一數(shù)據(jù)值0xBB。此外,該數(shù)據(jù)高速緩存104B的VS1的路徑2便被數(shù)值為0x33333的PA3112位107的標志更新。最后,該數(shù)據(jù)高速緩存104B的VS1的路徑2顯示一修正后的狀態(tài)數(shù)值,由“M”表示。數(shù)據(jù)高速緩存104C顯示在第三次的儲存指令后的內(nèi)容,該儲存命令即圖6中具有第一個范例的虛擬儲存地址的儲存指令,即所述更新數(shù)據(jù)高速緩存104A內(nèi)容的ST0x111110000xAA。僅在該第三儲存指令執(zhí)行之前,該數(shù)據(jù)高速緩存104C的VS2的所有四個路徑仍然被假設為空的,即皆是無效的。然而,由于圖2的比較器206根據(jù)圖5的方框506,將比較四個虛擬集合的四個路徑的所有16個標志,因此該數(shù)據(jù)高速緩存104C的快取命中將根據(jù)圖5的方框508而被偵測出來,并且發(fā)現(xiàn)VS1路徑2的標志與PA3112位107及具有修正數(shù)值的快取線狀態(tài)相匹配,顯示數(shù)據(jù)存在。因此,該數(shù)據(jù)高速緩存104C根據(jù)圖5的方框524顯示一快取命中。根據(jù)圖5的方框526,該原始虛擬集合數(shù)字189,虛擬集合儲存錯誤指示信號187、匹配虛擬集合數(shù)字182、匹配路徑數(shù)字信號184以及匹配狀態(tài)186將儲存并傳送至圖1的儲存階段121。依圖5方框528的判斷,因為一虛擬集合儲存錯誤可能發(fā)生,所以該數(shù)據(jù)高速緩存104C根據(jù)圖5的方框534,利用圖1的RA1312位194制作索引以選擇一集合以進行更新。因為該RA1312位194具有數(shù)值01b,所以VS1便被選出。依據(jù)圖5的方框536,該數(shù)據(jù)高速緩存104C的VS1的路徑2顯示出一數(shù)據(jù)數(shù)值0xAA。此外,該數(shù)據(jù)高速緩存104C的VS1的路徑2便被數(shù)值為0x33333的PA3112位107的標志更新。最后,該數(shù)據(jù)高速緩存104C的VS1的路徑2顯示一修正后的狀態(tài)數(shù)值,由“M”表示。由圖7可以得知,本發(fā)明尤其能在虛擬集合儲存錯誤的情況下,避免該微處理器100流水線的延遲以及在該微處理器總線164上產(chǎn)生交換而導致的儲存動作實質(zhì)上的延長。雖然本發(fā)明的目的、基本特征及優(yōu)點已可經(jīng)由所述的文字說明與而得以了解,但當了解的是本發(fā)明的范圍并不僅局限于以上所說明的實施例。舉例來說,本發(fā)明可由任何大小的虛擬集合數(shù)據(jù)高速緩存與任何大小的儲存地址所替代。進一步地說,任何對該儲存地址中物理與虛擬地址位數(shù)字的改變均在保護的范圍內(nèi)。最后,任何對該高速緩存中的高速緩存標志大小與高速緩存狀態(tài)的型式的改變均在保護的范圍內(nèi)。熟知該項技術者在閱讀過以上的公開后可輕易加以變動及修改,然而本發(fā)明的范圍并不僅局限于以上所說明的實施例,所述的修改及置換都不脫離本發(fā)明的精神范圍。權利要求1.一個虛擬集合高速緩存(virtualsetcache),其特征在于,該內(nèi)存至少包括一數(shù)組,具有2N個集合的快取線(cachelines)與對應的標志(associatedtag);一索引(index),對應于所述數(shù)組,該索引包括一儲存地址中M個未轉換的物理地址位,用以從所述2N個集合中選擇2N-M個虛擬集合的物理地址;多個與所述數(shù)組相對應的比較器,用來比較在所述2N-M個虛擬集合中的關聯(lián)標志和所述儲存地址中多個已轉換的物理地址,一與所述比較器相對應命中信號(hitsignal),用來顯示如果在所述2N-M個虛擬集合中的所述關聯(lián)標志之一與所述儲存地址的多個已轉換的物理地址位相匹配的話,在該虛擬集合高速緩存中有一命中,。2.如權利要求1所述的虛擬集合高速緩存,其特征在于,所述索引還包括L個虛擬集合選擇位,該虛擬集合選擇位用于在2N-M個虛擬集合中選擇一個集合。3.如權利要求2所述的虛擬集合高速緩存,其特征在于,所述的L大于零。4.如權利要求2所述的虛擬集合高速緩存,其特征在于,所述的L個虛擬集合選擇位與所述M個未轉換的物理地址位相結合(concatenated)以形成所述的索引。5.如權利要求2所述的虛擬集合高速緩存,其特征在于,所述高速緩存還包括一多工器,包括一輸出,對應提供給所述索引的所述虛擬集合選擇位;第一及第二地址輸入;以及一控制輸入,用來自所述第一及第二地址輸入選擇其一以提供于所述的輸出。6.如權利要求5所述的虛擬集合高速緩存,其特征在于,所述的第一地址輸入相對應以取得所述儲存地址的L個虛擬地址。7.如權利要求6所述的虛擬集合高速緩存,其特征在于,無論所述L個虛擬地址位是否自所述2N-M個虛擬集合中找到一個匹配的集合,所述命中信號顯示該命中的情形。8.如權利要求7所述的虛擬集合高速緩存,其特征在于,所述2N-M個虛擬集合中該匹配集合,具有所述2N-M個虛擬集合中與所述儲存地址的該多個轉換的物理地址位匹配的該關聯(lián)標志之一。9.如權利要求8所述的虛擬集合高速緩存,其特征在于,還包括一與所述的多個比較器對應的緩存器,用來儲存L個虛擬集合重新導向路徑位。10.如權利要求9所述的虛擬集合高速緩存,其特征在于,所述L個虛擬集合重新導向路徑位指定(specify)所述2N-M個虛擬集合中的該匹配集合。11.如權利要求10所述的虛擬集合高速緩存,其特征在于,所述第二地址輸入對應獲得所述L個虛擬集合重新導向路徑位。12.如權利要求11所述的虛擬集合高速緩存,其特征在于,如果所述命中信號顯示在該虛擬集合高速緩存中已找到,則所述控制輸入選擇該第二輸入利用所述儲存地址所指定的數(shù)據(jù)更新該高速緩存。13.如權利要求6所述的虛擬集合高速緩存,其特征在于,如果所述2N-M個虛擬集合中該關聯(lián)標志沒有一個與所述儲存地址的多個轉換物理地址位相匹配,則所述命中信號在該虛擬集合高速緩存中將顯示錯誤(miss)。14.如權利要求13所述的虛擬集合高速緩存,其特征在于,如果該命中信號顯示在所述虛擬集合高速緩存中存在所述的錯誤,則所述控制輸入選擇該第一輸入利用所述儲存地址所指定的數(shù)據(jù)更新該高速緩存。15.如權利要求1所述的虛擬集合高速緩存,其特征在于,所述索引由所述2N個集合中選擇該2N-M個虛擬集合時,也同時于一轉換參照緩沖器中查找該儲存地址的虛擬地址位,以提供所述儲存地址的該轉換后物理地址位。16.一微處理器,其特征在于,至少包括一轉換參照緩沖器(TLB),用來獲得一儲存動作的一虛擬分頁號碼并提供其中的物理分頁地址;一與所述轉換參照緩沖器對應的虛擬集合高速緩存,用來獲得所述儲存動作的一個物理快取線偏移以選擇其中的數(shù)個虛擬集合,并且查尋(query)所述數(shù)個虛擬集合中哪一個集合具有基于該轉換參照緩沖器所提供的該物理分頁地址的該儲存動作所指定的快取線;以及一與所述虛擬集合高速緩存相對應的地址緩存器,用來儲存一匹配虛擬集合號碼,其指定受到該儲存動作指定的該數(shù)個虛擬集合中的一個集合;其中如果該虛擬集合快取線顯示所述虛擬分頁號碼的部分用來為該虛擬集合高速緩存制作索引會產(chǎn)生一虛擬集合儲存錯誤的話,該微處理器利用儲存在該地址緩存器的該匹配虛擬集合號碼來更新所述快取線。17.如權利要求16所述的微處理器,其特征在于,所述物理快取線偏移在該虛擬集合高速緩存選擇所述數(shù)個虛擬集合,與所述轉換參照緩沖器提供該物理分頁地址同時發(fā)生。18.如權利要求16所述的微處理器,其特征在于,所述虛擬集合高速緩存包括一N路徑集合關聯(lián)高速緩存,其中N大于零。19.如權利要求18所述的微處理器,其特征在于,還包括一與所述虛擬集合高速緩存對應的路徑緩存器,用來儲存一匹配路徑號碼,其中所述匹配路徑號碼指定在所述查尋上具有該快取線的該N路徑集合關聯(lián)高速緩存之一。20.如權利要求19所述的微處理器,其特征在于,如果所述虛擬集合高速緩存顯示所述虛擬分頁數(shù)字會在該虛擬集合高速緩存產(chǎn)生一虛擬儲存錯誤,則該微處理器利用儲存在該路徑緩存器中的所述匹配路徑號碼更新該虛擬集合高速緩存。21.如權利要求16所述的微處理器,其特征在于,還包括一與所述虛擬集合高速緩存對應的狀態(tài)緩存器,用來儲存一匹配狀態(tài),其中該匹配狀態(tài)在所述查尋中指定所述快取線的一快取線狀態(tài)。22.如權利要求21所述的微處理器,其特征在于,如果所述虛擬集合高速緩存顯示所述虛擬分頁數(shù)字會在該虛擬集合高速緩存產(chǎn)生一虛擬儲存錯誤,則該微處理器利用儲存在該狀態(tài)緩存器中的所述快取線狀態(tài)更新該虛擬集合高速緩存。23.一種用來將由一儲存指令的一地址所指定的數(shù)據(jù)儲存至一虛擬高速緩存的方法,其特征在于,該方法至少包括利用該儲存指令的該地址上的未轉換的物理地址位,在該高速緩存中制作索引以選擇數(shù)個快取線及關聯(lián)標志的虛擬集合;將該儲存指令的該地址上的虛擬地址位轉換為轉換后的物理地址位;將所述轉換后的物理地址位與所述數(shù)個虛擬集合的所述關聯(lián)標志相比較;利用所述比較的結果儲存所述數(shù)個虛擬集合中一匹配集合的匹配虛擬集合號碼;如果所述數(shù)個虛擬集合中該匹配虛擬集合與所述儲存指令的該虛擬地址所指定的虛擬集合不相同,則利用所述匹配虛擬集合號碼制作索引以更新該數(shù)個虛擬集合中的一個匹配虛擬集合。24.如權利要求23所述的方法,其特征在于,還包括如果所述數(shù)個虛擬集合中該匹配集合與所述儲存指令的該虛擬地址所指定的虛擬集合相同,則利用所述儲存指令的虛擬地址位在該高速緩存中制作索引,以更新該數(shù)個虛擬集合中的該匹配虛擬集合。25.如權利要求23所述的方法,其特征在于,于所述轉換結束前開始時,利用所述未轉換物理地址位在該高速緩存中制作索引。26.如權利要求23所述的方法,其特征在于,利用所述未轉換物理地址位在該高速緩存中制作索引與所述轉換實質(zhì)上同時完成。27.如權利要求23所述的方法,其特征在于,利用所述匹配虛擬集合號碼在該高速緩存中制作索引,以更新所述數(shù)個虛擬集合中的一個匹配集合,且在不延遲具有該虛擬集合高速緩存的微處理器的流水線的情形下執(zhí)行(performed)。28.如權利要求23所述的方法,其特征在于,利用所述匹配虛擬集合號碼在該高速緩存中制作索引還包括利用與所述匹配虛擬集合號碼相關聯(lián)的該未轉換的物理地址位,在該高速緩存中制作索引。29.如權利要求23所述的方法,其特征在于,還包括利用該比較的結果,判斷任何所述的關聯(lián)標志是否與所述轉換的物理地址位相匹配。30.如權利要求29所述的方法,其特征在于,還包括利用該比較的結果,如果任何所述的關聯(lián)標志與所述轉換的物理地址位相匹配,則產(chǎn)生一正確命中信號。31.如權利要求29所述的方法,其特征在于,還包括利用該比較的結果,如果沒有任何所述的關聯(lián)標志與所述轉換的物理地址位相匹配,則產(chǎn)生一錯誤命中信號。32.如權利要求29所述的方法,其特征在于,還包括如果沒有任何所述的關聯(lián)標志與所述轉換的物理地址位相匹配,則延遲具有該虛擬集合高速緩存的一微處理器的流水線過程。33.如權利要求32所述的方法,其特征在于,還包括利用所述儲存指令的該虛擬地址位在該高速緩存中制作索引,在該延遲后更新該虛擬集合。全文摘要本發(fā)明涉及避免虛擬集合儲存錯誤懲罰的虛擬集合高速緩存。當一儲存動作查尋期間,僅有該儲存地址的未轉換的物理地址位才會被用來索引該高速緩存數(shù)組。在實施例中,該物理地址位選擇快取線的四個虛擬集合。在選擇該虛擬集合的同時,一個轉換參照緩沖器將該儲存地址的虛擬部分轉換為物理地址。比較器將比較該虛擬集合的所有標志與轉換后的物理地址,以判斷其是否匹配。如果匹配,即使并非是該儲存地址的原始虛擬地址位所指定的集合,該高速緩存將顯示一個命中信號。該匹配的虛擬集合、路以及狀態(tài)將在更新過程中記憶并使用以儲存該數(shù)據(jù)。文檔編號G06F12/10GK1397887SQ0211855公開日2003年2月19日申請日期2002年4月27日優(yōu)先權日2001年8月15日發(fā)明者羅德·胡克,葛蘭·亨利申請人:智慧第一公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1