專利名稱:微碼仿真存儲(chǔ)器的高速緩存的制作方法
技術(shù)領(lǐng)域:
本發(fā)明系關(guān)于微處理器,且更具體地關(guān)于以微碼仿真復(fù)雜指令,且又更具體地關(guān)
于在這樣仿真過(guò)程中高速緩存被使用的存儲(chǔ)器。
背景技術(shù):
盡管想要讓微處理器能維持與復(fù)雜指令集計(jì)算機(jī)(CISC)架構(gòu)的兼容性,但是其 它架構(gòu)提供了改良的執(zhí)行速率和效能。微處理器設(shè)計(jì)者已經(jīng)試圖藉由仿真CISC指令來(lái)達(dá) 到CISC的兼容性與高效能這兩者。舉例來(lái)說(shuō),超純量(superscalar)的精簡(jiǎn)指令集計(jì)算 機(jī)(RISC)架構(gòu)可包括履行CISC指令仿真的微碼。在該仿真程序過(guò)程中,微碼使用暫存 (scratchpad)存儲(chǔ)器來(lái)儲(chǔ)存中間數(shù)值。為了維持高效能,想要讓微處理器的微碼能夠盡快 地存取該仿真存儲(chǔ)器。 此外,微處理器通常包括層次結(jié)構(gòu)排列與被多重核心或執(zhí)行單元所分享的多重存 儲(chǔ)器高速緩存。各種高速緩存架構(gòu)系被使用且包括晶載高速緩存(on-chip cache)和非晶 載高速緩存(off-chip cache)的許多組合。從高速緩存或存儲(chǔ)器中讀取數(shù)據(jù)的存儲(chǔ)器運(yùn) 作可更簡(jiǎn)便地在此被視為「載入(loads)」。寫入數(shù)據(jù)到高速緩存或存儲(chǔ)器中的存儲(chǔ)器運(yùn)作 可更簡(jiǎn)便地在此被視為「儲(chǔ)存(stores)」。載入或儲(chǔ)存可針對(duì)具體高速緩存列(或部分高 速緩存列)且包括識(shí)別該目標(biāo)列以及包括要被從該高速緩存列載入或儲(chǔ)存入該高速緩存 列的數(shù)據(jù)的地址。由于高速緩存存取比存儲(chǔ)器存取還要快,因此許多高速緩存技術(shù)被用來(lái) 在當(dāng)核心或執(zhí)行單元需要存取數(shù)據(jù)時(shí)增加該數(shù)據(jù)位于高速緩存的可能性,因此改善執(zhí)行速 率。因此高速緩存該微碼仿真存儲(chǔ)器提供相較于系統(tǒng)存儲(chǔ)器比較快的高速緩存的存取時(shí)間 的效能優(yōu)勢(shì)。該最短存取時(shí)間一般系為與該存儲(chǔ)器層次結(jié)構(gòu)的最低階相關(guān)聯(lián)者,通常視為 L1-高速緩存或僅為L(zhǎng)1。因此想要高速緩存在L1里的該微碼仿真存儲(chǔ)器。這些效能優(yōu)勢(shì) 已經(jīng)常常藉由微碼仿真存儲(chǔ)器的部分LI的永久分配來(lái)加強(qiáng)。 當(dāng)然,使用該LI-高速緩存的效能優(yōu)勢(shì)也有益于其它程序。因此,想要使該LI-高 速緩存盡可能的大以增加對(duì)于任何程序的Ll-高速緩存空間的可用性。然而,增加L1的 尺寸系增加該微處理器的成本和復(fù)雜度。并且,如果該微碼仿真存儲(chǔ)器永久分配在L1中, 則L1的此部分系無(wú)法被其它程序來(lái)使用。為了對(duì)付該上述顧慮,需要能改善在已知大小 LI-高速緩存的空間的對(duì)于所有程序的可用性,同時(shí)維持高速緩存該微碼仿真存儲(chǔ)器的優(yōu) 點(diǎn)。
發(fā)明內(nèi)容
本文揭露處理器、計(jì)算機(jī)系統(tǒng)和方法的許多實(shí)施例。該處理器系包括含有至少第 一l階(level-1)高速緩存和較高階高速緩存的高速緩存層次結(jié)構(gòu)。該處理器系配置來(lái)映 射物理存儲(chǔ)器空間的第一部分到該較高階高速緩存的的第一部分、執(zhí)行至少其中的一些包 括微碼的指令、允許微碼能存取該較高階高速緩存的第一部分、與防止不包括微碼的指令 去存取該較高階高速緩存的第一部分。在一個(gè)實(shí)施例中,該較高階高速緩存系為第二階高速緩存。在另一個(gè)實(shí)施例中,該物理存儲(chǔ)器空間的第一部分永久分配給微碼來(lái)使用。
在又一個(gè)實(shí)施例中,該處理器系配置來(lái)把該較高階高速緩存的第一部分的一個(gè)或 多個(gè)高速緩存列從該較高階高速緩存移動(dòng)到該第一1階高速緩存的第一部分。該處理器系 進(jìn)一步配置來(lái)允許微碼能存取該第一1階高速緩存的第一部分及防止不包含微碼的指令 來(lái)存取該第一1階高速緩存的第一部分。 在更又一實(shí)施例中,該處理器系配置來(lái)探測(cè)微碼存取信號(hào)。該處理器系進(jìn)一步配
置來(lái)在如果該微碼存取信號(hào)沒(méi)有確立則防止指令來(lái)存取該物理存儲(chǔ)器空間的第一部分,及
在如果該微碼存取信號(hào)有確立則允許指令來(lái)存取該物理存儲(chǔ)器空間的第一部分。 在又一個(gè)實(shí)施例中,該處理器系包括變換后備緩沖區(qū)(translationlook-aside
buffer,簡(jiǎn)稱TLB),其防止沒(méi)包含微碼的指令來(lái)存取該物理存儲(chǔ)器空間的第一部分。該處理
器系進(jìn)一步配置來(lái)不允許TLB來(lái)再填滿到該物理存儲(chǔ)器空間的第一部分。
圖1系為計(jì)算機(jī)系統(tǒng)的一個(gè)實(shí)施例的廣義方塊圖。
圖2系圖標(biāo)虛擬存儲(chǔ)器和高速緩存架構(gòu)的一個(gè)實(shí)施例。 圖3系圖示用來(lái)存取包括微碼仿真存儲(chǔ)器的存儲(chǔ)器層次結(jié)構(gòu)的程序的一個(gè)實(shí)施 例。 圖4系圖示用來(lái)存取在1階高速緩存中的微碼仿真存儲(chǔ)器的程序的一個(gè)實(shí)施例。
圖5系為包含結(jié)合到各種系統(tǒng)組件的L2數(shù)據(jù)高速緩存和微碼仿真存儲(chǔ)器的計(jì)算 機(jī)系統(tǒng)的一個(gè)實(shí)施例的方塊圖。 雖然本發(fā)明容許有不同的修改與替代形式,但是具體實(shí)施例系以圖式中的例子的 方式來(lái)表示且在此詳細(xì)地?cái)⑹?。然而?yīng)該了解的是,圖式與有關(guān)的詳細(xì)敘述并不是要來(lái)限 制本發(fā)明為所揭露的特定形式,而相反地,本發(fā)明系涵蓋如附加的申請(qǐng)專利范圍所定義的 本發(fā)明的精神與范圍內(nèi)的所有修改型式、相等物和替代形式。
具體實(shí)施例方式
圖1系為計(jì)算機(jī)系統(tǒng)100的一個(gè)實(shí)施例的廣義方塊圖。在該圖示的實(shí)施例中,處 理器110系顯示為結(jié)合到存儲(chǔ)器150。存儲(chǔ)器150可包括SDRAM、SRAM、ROM、DRAM和/或其 它習(xí)知的存儲(chǔ)器裝置。處理器110包括核心120、L2數(shù)據(jù)高速緩存130、和L2變換后備緩沖 區(qū)(TLB) 140。核心120包括執(zhí)行單元122、載入/儲(chǔ)存單元124、 Ll數(shù)據(jù)高速緩存126、和 LI TLB 128。 L2數(shù)據(jù)高速緩存130包括微碼仿真存儲(chǔ)器135。在替代的實(shí)施例中,處理器 110可包括至少一個(gè)核心,每個(gè)核心包括1階數(shù)據(jù)高速緩存且每個(gè)核心分享單一 2階數(shù)據(jù)高 速緩存。在一個(gè)替代實(shí)施例中,L1資料高速緩存126可從核心120中分離出來(lái)。在其它替 代實(shí)施例中,額外的高速緩存階系可被包含在計(jì)算機(jī)系統(tǒng)100中,例如第3階高速緩存不是 被包含在處理器110中就是從處理器110中分離出來(lái)。在這些和其它替代實(shí)施例中,微碼 仿真存儲(chǔ)器135可包含任何高于1階的高速緩存階。也可設(shè)想各種其它實(shí)施例。然而,為 了容易了解,下面的例子將假設(shè)空間是永久分配在微碼仿真存儲(chǔ)器135的2階數(shù)據(jù)高速緩 存中。 在運(yùn)作過(guò)程中,執(zhí)行單元122可經(jīng)由連結(jié)161從載入/儲(chǔ)存單元124接收要被執(zhí)行的載入的該數(shù)據(jù)部分,與經(jīng)由連結(jié)162來(lái)運(yùn)送儲(chǔ)存的該數(shù)據(jù)部分到載入/儲(chǔ)存單元124。 載入/儲(chǔ)存單元124可經(jīng)由連結(jié)163從LI數(shù)據(jù)高速緩存126接收要被執(zhí)行的載入的該數(shù) 據(jù)部分與經(jīng)由連結(jié)164運(yùn)送儲(chǔ)存的該數(shù)據(jù)部分到LI數(shù)據(jù)高速緩存126。 LI數(shù)據(jù)高速緩存 126可經(jīng)由連結(jié)165來(lái)從L2數(shù)據(jù)高速緩存130接收載入的該數(shù)據(jù)部分與經(jīng)由連結(jié)166來(lái) 運(yùn)送儲(chǔ)存的該數(shù)據(jù)部分到L2數(shù)據(jù)高速緩存130。 L2數(shù)據(jù)高速緩存130可經(jīng)由連結(jié)167來(lái) 從存儲(chǔ)器150接收載入的該數(shù)據(jù)部分與運(yùn)送儲(chǔ)存的該數(shù)據(jù)部分到存儲(chǔ)器150。 LI TLB 128 顯示為經(jīng)由連結(jié)171來(lái)結(jié)合到LI數(shù)據(jù)高速緩存126、經(jīng)由連結(jié)172來(lái)結(jié)合到L2數(shù)據(jù)高速緩 存130、與經(jīng)由連結(jié)173來(lái)結(jié)合到L2 TLB 140。 L2 TLB 140也顯示為經(jīng)由連結(jié)174來(lái)結(jié)合 到L2數(shù)據(jù)高速緩存130。 LI資料高速緩存126、 LI TLB 128、 L2資料高速緩存130、和L2TLB 140可履行常 見(jiàn)的地址變換(address translation)和高速緩存功能。舉例來(lái)說(shuō),Ll TLB 128可高速緩 存虛擬地址的映像到實(shí)體地址。當(dāng)存儲(chǔ)器存取要求發(fā)生時(shí),可檢查L(zhǎng)l TLB 128以察看到實(shí) 體地址的想要的虛擬地址的映像是否被高速緩存了。高速緩存在Ll TLB 128中的映像可 使用來(lái)判定想要的高速緩存列是否存在LI數(shù)據(jù)高速緩存126中。如果想要的高速緩存列 不存在LI數(shù)據(jù)高速緩存126中,也就是有LI高速緩存未擊中,則可檢查L(zhǎng)2 TLB 140以察 看至實(shí)體地址的想要的虛擬地址的映像是否被高速緩存了。高速緩存在L2 TLB 140的映 像系可用來(lái)判定想要的高速緩存列是否存在L2數(shù)據(jù)高速緩存130中。當(dāng)高速緩存未擊中 系發(fā)生在LI資料高速緩存126中時(shí),為了讓出空位給新的項(xiàng)目,高速緩存列系可被從LI資 料高速緩存126逐出到L2資料高速緩存130。在LI TLB 128中的對(duì)應(yīng)項(xiàng)目系可移動(dòng)到L2 TLB 140。為了讓出空位給在L2數(shù)據(jù)高速緩存130中的新項(xiàng)目,可能必須把高速緩存列從 L2數(shù)據(jù)高速緩存130逐出到存儲(chǔ)器150。可為了該想要的高速緩存列和高速緩存在Ll TLB 128的該結(jié)果而履行新地址變換,可被稱為TLB再填滿(TLB refill)的程序。用以說(shuō)明與 避免微碼仿真存儲(chǔ)器135的訛誤(corruption)的數(shù)據(jù)高速緩存126和130及TLBs 128和 140的該運(yùn)作的進(jìn)一步細(xì)節(jié)將在下面被提出。 圖2系圖示可與處理器110 —起使用的虛擬存儲(chǔ)器和高速緩存架構(gòu)的一個(gè)實(shí)施 例。在該圖式中顯示出虛擬存儲(chǔ)器空間210,部分系被映射到物理存儲(chǔ)器地址空間220。部 分物理存儲(chǔ)器地址空間220系顯示為映射到L2高速緩存空間230,部分系依次映射到LI高 速緩存空間240。執(zhí)行在處理器110上的每個(gè)應(yīng)用系可使用個(gè)別的虛擬存儲(chǔ)器地址空間。 如圖標(biāo)在圖2中的虛擬存儲(chǔ)器地址空間210系包括代表映射到物理存儲(chǔ)器地址空間220與 可利用來(lái)借著及時(shí)在已知點(diǎn)中的應(yīng)用以存取的該部分虛擬存儲(chǔ)器的區(qū)塊211至215。同樣 地,物理存儲(chǔ)器地址空間220系包括代表高速緩存在L2高速緩存空間230中的該部分物理 存儲(chǔ)器的區(qū)塊221至224。同樣地,L2高速緩存空間230包括代表高速緩存在Ll高速緩存 空間240中的該部分L2高速緩存的區(qū)塊231至233。更具體地說(shuō),L2高速緩存空間230的 區(qū)塊231、232和233系分別映射到Ll高速緩存空間240的區(qū)塊242、243和241。在許多 實(shí)施例中,上述的每個(gè)區(qū)塊可代表高速緩存列組、相同大小的區(qū)塊、高速緩存列或區(qū)塊的群 組、或變化大小的區(qū)塊的其中一個(gè)。在替代實(shí)施例中,任何虛擬存儲(chǔ)器地址空間210、物理存 儲(chǔ)器地址空間220、 L2高速緩存空間230、和Ll高速緩存空間240系可包括相較于顯示在 圖2中的該數(shù)量更多或更少的區(qū)塊。在一個(gè)實(shí)施例中,區(qū)塊221可被保留在物理存儲(chǔ)器空間220中以作為微碼仿真存儲(chǔ)器。此外,L2高速緩存空間230的區(qū)塊231可永久被保留來(lái)高速緩存微碼仿真存儲(chǔ)器的 內(nèi)容。在運(yùn)作過(guò)程中,當(dāng)處理器110想要存取微碼仿真存儲(chǔ)器時(shí),區(qū)塊231可被高速緩存在 例如區(qū)塊242中的1階高速緩存中,如圖2所示。然而,區(qū)塊242可不會(huì)如區(qū)塊231那樣永 久地保留給微碼仿真存儲(chǔ)器來(lái)使用。高速緩存在L1中的該區(qū)塊系可依據(jù)程序的執(zhí)行而隨 時(shí)間改變。因此,微碼仿真存儲(chǔ)器系可從L1被逐出到L2,其中,區(qū)塊231系保留給它使用。 在一個(gè)實(shí)施例中,可借著拒絕涉及物理存儲(chǔ)器空間的區(qū)塊221的L1 TLB的再填滿以避免藉 由應(yīng)用或程序而不是微碼的對(duì)于微碼仿真存儲(chǔ)器的存取。 圖3系圖示用來(lái)存取包括微碼仿真存儲(chǔ)器的存儲(chǔ)器層次結(jié)構(gòu)的程序300的一個(gè)實(shí) 施例。存儲(chǔ)器存取可由對(duì)于關(guān)聯(lián)于被執(zhí)行單元所譯碼的每個(gè)指令的微碼存取信號(hào)(未圖 示)的存在的檢查來(lái)開始(判斷方塊310)。舉例來(lái)說(shuō),在一個(gè)實(shí)施例中,每個(gè)被譯碼的指令 的位系可被當(dāng)作微碼存取信號(hào)般地來(lái)使用。在替代實(shí)施例中,微碼指令系可具有當(dāng)作微碼 存取信號(hào)且藉此它們可被識(shí)別為微碼的特殊運(yùn)算碼。任何的各種替代微碼存取信號(hào)可被從 執(zhí)行單元傳送到高速緩存控制器以指出指令是否為微碼指令。如果探測(cè)到微碼存取信號(hào), 則可允許對(duì)于該微碼仿真存儲(chǔ)器的存取(方塊320)且完成該存取。 如果沒(méi)有探測(cè)到該微碼存取信號(hào),則程序300可如下地來(lái)進(jìn)行??伤褜ひ粋€(gè)或更 多的TLBs以找到符合該存取的目標(biāo)的該高速緩存列的項(xiàng)目(方塊330)。如果在LI TLB中 找到符合的項(xiàng)目(判斷方塊340),則可存取該目標(biāo)高速緩存列(方塊390)并完成該存取。 如果符合的項(xiàng)目沒(méi)有在L1 TLB被找到而是在L2 TLB被找到(判斷方塊350),然后該目標(biāo) 高速緩存列可被從該L2高速緩存移到該Ll高速緩存(方塊360),則可存取該目標(biāo)高速緩 存列(方塊390),并完成該存取。如果符合的項(xiàng)目沒(méi)有在Ll或L2高速緩存被找到,則可履 行地址變換(方塊370)。如果該地址變換的結(jié)果系產(chǎn)生位于該微碼仿真存儲(chǔ)器中的目標(biāo)地 址(判斷方塊380),則可防止該存取(方塊384)結(jié)束該存取企圖。如果該地址變換的結(jié)果 系產(chǎn)生不是位于該微碼仿真存儲(chǔ)器中的目標(biāo)地址(判斷方塊380),然后可履行TLB再填滿 (方塊382),則可存取該目標(biāo)高速緩存列(方塊390),并完成該存取。 圖4系圖示用來(lái)存取在1階高速緩存中的微碼仿真存儲(chǔ)器的程序400的一個(gè)實(shí)施 例。目標(biāo)為微碼仿真存儲(chǔ)器的存取要求可由察看該目標(biāo)高速緩存列是否高速緩存在Ll高 速緩存中來(lái)開始(判斷方塊410)。如果是這樣的話,則允許對(duì)于該目標(biāo)高速緩存列的存取 (方塊420)并完成該存取。如果該目標(biāo)高速緩存列沒(méi)有高速緩存在L1高速緩存中,則可獲 得在L2高速緩存中的該目標(biāo)高速緩存列的該保留位置(方塊430)。該目標(biāo)高速緩存列接 著可從L2高速緩存移到Ll高速緩存(方塊440)。 一旦該目標(biāo)高速緩存列移到Ll高速緩 存,則可允許存取(方塊420)并完成該存取。 現(xiàn)在翻到圖5,其顯示出包括結(jié)合到各種系統(tǒng)組件的L2數(shù)據(jù)高速緩存560和微碼 仿真存儲(chǔ)器135的計(jì)算機(jī)系統(tǒng)500的一個(gè)實(shí)施例的方塊圖。在該描述的系統(tǒng)中,顯示處理 器510結(jié)合到外圍520與結(jié)合到存儲(chǔ)器530。外圍520可包括任何各種裝置,例如可在習(xí) 知的計(jì)算機(jī)系統(tǒng)中找到的網(wǎng)絡(luò)接口、時(shí)序(timing)電路、儲(chǔ)存媒體、輸入/輸出裝置等等。 存儲(chǔ)器530可包括SDRAM、 SRAM、 ROM、 DRAM與/或其它常見(jiàn)存儲(chǔ)器裝置。處理器510包括 核心540A和540B、寫入聯(lián)合高速緩存(write coalescing cache) 550、2階數(shù)據(jù)高速緩存 560、和1/0接口 570。 1/0接口 570可結(jié)合每個(gè)核心540到外圍520。藉由參照后面接著字 母的數(shù)字來(lái)參照于此之組件可共同地由該參照數(shù)字來(lái)單獨(dú)地稱呼。舉例來(lái)說(shuō),核心540A和540B系可稱為核心540且未指定的一個(gè)核心540可稱為核心540。 每個(gè)核心540包括1階數(shù)據(jù)高速緩存542、儲(chǔ)存邏輯單元544、和載入/儲(chǔ)存管線546。儲(chǔ)存邏輯單元544(取而代之稱之為「儲(chǔ)存單元」)可代表部分的載入/儲(chǔ)存單元、個(gè)別邏輯單元、或其組合。儲(chǔ)存邏輯544可結(jié)合到1階數(shù)據(jù)高速緩存542和寫入聯(lián)合高速緩存550這兩者以使核心540能夠?qū)懭肴魏我粋€(gè)高速緩存階。更具體地說(shuō),儲(chǔ)存邏輯544可傳送儲(chǔ)存584到1階數(shù)據(jù)高速緩存542與傳送儲(chǔ)存582到寫入聯(lián)合高速緩存550。寫入聯(lián)合高速緩存550可進(jìn)一步藉由填滿564與逐出566以結(jié)合到2階數(shù)據(jù)高速緩存560。寫入聯(lián)合高速緩存550可聯(lián)合儲(chǔ)存582到填滿564以產(chǎn)生逐出566的減低號(hào)碼。2階數(shù)據(jù)高速緩存560可進(jìn)一步結(jié)合到每個(gè)1階數(shù)據(jù)高速緩存542。更具體地說(shuō),2階數(shù)據(jù)高速緩存560可傳送填滿562到1階數(shù)據(jù)高速緩存542。 2階數(shù)據(jù)高速緩存560也可雙向地結(jié)合到存儲(chǔ)器530。 在運(yùn)作過(guò)程中,核心540可執(zhí)行一串的指令,當(dāng)譯碼時(shí),導(dǎo)致從Ll數(shù)據(jù)高速緩存542之載入586到載入/儲(chǔ)存管線546與/或從載入/儲(chǔ)存管線546之儲(chǔ)存580到儲(chǔ)存邏輯544。被核心540執(zhí)行的該指令可包括微碼的執(zhí)行。當(dāng)微碼執(zhí)行需要存取到微碼仿真存儲(chǔ)器135中的高速緩存列時(shí),可存取該目標(biāo)的高速緩存列,且如有必要?jiǎng)t使用在上面圖4中描述的該程序以從L2數(shù)據(jù)高速緩存560移到Ll資料高速緩存542。 一旦該目標(biāo)高速緩存列被移到Ll數(shù)據(jù)高速緩存542,則可藉由載入586和/或儲(chǔ)存580與584來(lái)存取。
雖然系統(tǒng)500如圖標(biāo)地包括兩個(gè)核心,但是在替代實(shí)施例中可包括多于兩個(gè)的核心且/或每個(gè)核心可代表執(zhí)行單元的叢集(cluster)。額外的2階高速緩存也可被包括在包含多于兩個(gè)的核心的進(jìn)一步替代實(shí)施例中。此外,雖然2階資料高速緩存560系被顯示為直接接合到存儲(chǔ)器530且存儲(chǔ)器530系顯示為處理器外的(off-processor)存儲(chǔ)器,但是處理器510可包括存儲(chǔ)器控制器與/或處理器內(nèi)的(on-processor)存儲(chǔ)器?;蚩扇《?,處理器外的存儲(chǔ)器控制器可結(jié)合2階數(shù)據(jù)高速緩存560到存儲(chǔ)器530。許多的處理器核心和存儲(chǔ)器配置對(duì)于一個(gè)熟習(xí)此技藝之人士來(lái)說(shuō)將是顯而易見(jiàn)的。 要注意的是,該上述的實(shí)施例可包括軟件。在這樣的實(shí)施例中,實(shí)施該方法與/或機(jī)制的該程序指令系可被傳送或儲(chǔ)存在計(jì)算機(jī)可存取的媒體上。配置以儲(chǔ)存程序指令的許多類型的媒體系可利用的且包括硬盤、軟盤、CD-R0M、DVD、閃存、可程序的ROMs (PR0M)、隨機(jī)存取存儲(chǔ)器(RAM)、與不同的其它形式的依電性或非依電性儲(chǔ)存器。配置以傳送藉由計(jì)算裝置來(lái)存取的程序指令的又其它形式的媒體系包括地面的(terrestrial)和非地面的通訊連接,例如可傳送電氣的、電磁的、光的、或數(shù)字信號(hào)的網(wǎng)絡(luò)、無(wú)線、和衛(wèi)星連接。因此,不同的實(shí)施例可進(jìn)一步包括根據(jù)前述的基于計(jì)算機(jī)可存取的媒體而實(shí)施的接收、送出或儲(chǔ)存指令和/或數(shù)據(jù)。 雖然上述的實(shí)施例已予相當(dāng)詳細(xì)的說(shuō)明,但是一旦完全地了解該上述揭露,則許多的變形和修飾對(duì)于熟習(xí)此技藝之人士來(lái)說(shuō)將變得顯而易見(jiàn)。下列的申請(qǐng)專利范圍是要詮釋成包括所有這類的變形和修飾。
產(chǎn)業(yè)利用性 本發(fā)明一般可應(yīng)用于微處理器。
9
權(quán)利要求
一種處理器,包括高速緩存層次結(jié)構(gòu),包含至少第一1階高速緩存和更高階高速緩存;其中,該處理器被配置為映射物理存儲(chǔ)器空間的第一部分到該更高階高速緩存的第一部分;執(zhí)行指令,至少一些該指令包括微碼;允許微碼來(lái)存取該更高階高速緩存的該第一部分;以及防止不包括微碼的指令來(lái)存取該更高階高速緩存的該第一部分。
2. 如權(quán)利要求1所述的處理器,其中,該更高階高速緩存為2階高速緩存。
3. 如權(quán)利要求1所述的處理器,其中,該物理存儲(chǔ)器空間的該第一部分永久地分配給 微碼來(lái)使用。
4. 如權(quán)利要求1所述的處理器,其中,該處理器進(jìn)一步被配置為從該更高階高速緩存,把該更高階高速緩存的該第一部分的一個(gè)或多個(gè)高速緩存列移 到該第一1階高速緩存的第一部分;允許微碼來(lái)存取該第一1階高速緩存的該第一部分;以及 防止不包括微碼的指令來(lái)存取該第一1階高速緩存的該第一部分。
5. 如權(quán)利要求1所述的處理器,其中,該處理器進(jìn)一步被配置為 探測(cè)微碼存取信號(hào);如果沒(méi)有確立該微碼存取信號(hào),則防止指令來(lái)存取該物理存儲(chǔ)器空間的該第一部分;以及如果有確立該微碼存取信號(hào),則允許指令來(lái)存取該物理存儲(chǔ)器空間的該第一部分。
6. 如權(quán)利要求5所述的處理器,進(jìn)一步包括變換后備緩沖區(qū),其用來(lái)防止不包括微碼 的指令來(lái)存取該物理存儲(chǔ)器空間的該第一部分,該處理器進(jìn)一步配置以拒絕變換后備緩沖 區(qū)再填滿該物理存儲(chǔ)器空間的該第一部分。
7. 如權(quán)利要求1所述的處理器,進(jìn)一步包括至少第一核心和第二核心,其中,該第二核 心被配置為映射該物理存儲(chǔ)器空間的第二部分到該更高階高速緩存的第二部分; 執(zhí)行指令,至少一些該指令包括微碼; 允許微碼來(lái)存取該更高階高速緩存的該第二部分;以及 防止不包括微碼的指令來(lái)存取該更高階高速緩存的該第二部分。
8. 如權(quán)利要求7所述的處理器,其中,該第一核心包含該第一 1階高速緩存與該第二核 心包含第二1階高速緩存;其中,該第一核心進(jìn)一步被配置為從該更高階高速緩存,把映射到該更高階高速緩存的該第一部分的一個(gè)或更多的高速 緩存列移到該第一1階高速緩存的一部分;允許微碼來(lái)存取該第一 1階高速緩存的一部分;以及 防止不包括微碼的指令來(lái)存取該第一 1階高速緩存的一部分;以及 其中,該第二核心進(jìn)一步被配置為從該更高階高速緩存,把映射到該更高階高速緩存的該第二部分的一個(gè)或更多的高速 緩存列移到該第二1階高速緩存的一部分;允許微碼來(lái)存取該第二1階高速緩存的一部分;以及 防止不包括微碼的指令來(lái)存取該第二1階高速緩存的一部分。
9. 一種方法,包括映射物理存儲(chǔ)器空間的第一部分到處理器的高速緩存層次結(jié)構(gòu)中的更高階高速緩存 的第一部分;第一處理器核心執(zhí)行指令,至少一些該指令包括微碼;該第一處理器核心允許微碼來(lái)存取該更高階高速緩存的該第一部分;以及 該第一處理器核心防止不包括微碼的指令來(lái)存取該更高階高速緩存的該第一部分。
10. 如權(quán)利要求9所述的方法,其中,該更高階高速緩存為2階高速緩存。
11. 如權(quán)利要求9所述的方法,進(jìn)一步包括永久地分配該物理存儲(chǔ)器空間的第一部分 給微碼來(lái)使用。
12. 如權(quán)利要求9所述的方法,進(jìn)一步包括從該更高階高速緩存,把該更高階高速緩存的該第一部分的一個(gè)或更多的高速緩存列 移到該處理器的第一1階高速緩存的第一部分;允許微碼來(lái)存取該第一1階高速緩存的該第一部分;以及 防止不包括微碼的指令來(lái)存取該第一1階高速緩存的該第一部分。
13. 如權(quán)利要求9所述的方法,進(jìn)一步包括 探測(cè)微碼存取信號(hào);如果沒(méi)有確立該微碼存取信號(hào),則防止指令來(lái)存取該物理存儲(chǔ)器空間的該第一部分;以及如果確立該微碼存取信號(hào),則允許指令來(lái)存取該物理存儲(chǔ)器空間的該第一部分。
14. 如權(quán)利要求13所述的方法,其中,如果沒(méi)有確立該微碼存取信號(hào),則防止指令來(lái)存 取該物理存儲(chǔ)器空間的該第一部分,進(jìn)一步包括拒絕再填滿到來(lái)自變換后備緩沖區(qū)的該物 理存儲(chǔ)器空間的該第一部分。
15. 如權(quán)利要求9所述的方法,進(jìn)一步包括映射該物理存儲(chǔ)器空間的第二部分到該更高階高速緩存的第二部分; 第二處理器核心執(zhí)行指令,至少一些該指令包括微碼;該第二處理器核心允許微碼來(lái)存取該更高階高速緩存的該第二部分;以及 該第二處理器核心防止不包括微碼的指令來(lái)存取該更高階高速緩存的該第二部分。
16. 如權(quán)利要求15所述的方法,進(jìn)一步包括從該更高階高速緩存,把映射到該更高階高速緩存的該第一部分的一個(gè)或更多的高速 緩存列移到第一1階高速緩存的一部分;從該更高階高速緩存,把映射到該更高階高速緩存的該第二部分的一個(gè)或更多的高速 緩存列移到第二1階高速緩存的一部分;允許微碼來(lái)存取該第一1階高速緩存的一部分和/或該第二1階高速緩存的一部分;防止不包括微碼的指令來(lái)存取該第一 1階高速緩存的一部分;以及防止不包括微碼的指令來(lái)存取該第二1階高速緩存的一部分。
17. —種計(jì)算機(jī)系統(tǒng),包括至少一個(gè)處理器,結(jié)合到存儲(chǔ)器與一個(gè)或更多的外圍裝置;其中,該至少一處理器包括包含至少第一1階高速緩存和更高階高速緩存的高速緩存 層次結(jié)構(gòu);其中,該至少一個(gè)處理器被配置為映射物理存儲(chǔ)器空間的第一部分到該更高階高速緩存的第一部分; 執(zhí)行指令,至少一些該指令包括微碼; 允許微碼來(lái)存取該更高階高速緩存的該第一部分;以及 防止不包括微碼的指令來(lái)存取該更高階高速緩存的該第一部分。
18. 如權(quán)利要求17所述的計(jì)算機(jī)系統(tǒng),其中,該至少一個(gè)處理器進(jìn)一步被配置為 從該更高階高速緩存,把該更高階高速緩存的該第一部分的一個(gè)或更多的高速緩存列移到該第一1階高速緩存的第一部分;允許微碼來(lái)存取該第一 1階高速緩存的該第一部分;以及 防止不包括微碼的指令來(lái)存取該第一1階高速緩存的該第一部分。
19. 如權(quán)利要求17所述的計(jì)算機(jī)系統(tǒng),其中,該至少一個(gè)處理器進(jìn)一步被配置為 探測(cè)微碼存取信號(hào);如果沒(méi)有確立該微碼存取信號(hào),則防止指令來(lái)存取該物理存儲(chǔ)器空間的該第一部分;以及如果確立該微碼存取信號(hào),則允許指令來(lái)存取該物理存儲(chǔ)器空間的該第一部分。
20. 如權(quán)利要求17所述的計(jì)算機(jī)系統(tǒng),其中,該至少一個(gè)處理器進(jìn)一步包括變換后備 緩沖區(qū),其用來(lái)防止不包括微碼的指令來(lái)存取該物理存儲(chǔ)器空間的該第一部分,該至少一 個(gè)處理器進(jìn)一步被配置為拒絕變換后備緩沖區(qū)再填滿該物理存儲(chǔ)器空間的該第一部分。
全文摘要
一種處理器,包括含有1階高速緩存和更高階高速緩存的高速緩存層次結(jié)構(gòu)。該處理器映射部分的物理存儲(chǔ)器空間到部分的該更高階高速緩存、執(zhí)行指令,至少一些該指令包括微碼,允許微碼來(lái)存取該更高階高速緩存的該部分、與防止不包括微碼的指令來(lái)存取該更高階高速緩存的該部分。該物理存儲(chǔ)器空間的該第一部分系可永久地分配給微碼來(lái)使用。該處理器可把該更高階高速緩存的該第一部分的一個(gè)或更多的高速緩存列從該更高階高速緩存移到該1階高速緩存的第一部分、允許微碼來(lái)存取該第一1階高速緩存的該第一部分,與防止不包括微碼的指令來(lái)存取該第一1階高速緩存的該第一部分。
文檔編號(hào)G06F12/08GK101707881SQ200880018278
公開日2010年5月12日 申請(qǐng)日期2008年5月28日 優(yōu)先權(quán)日2007年5月29日
發(fā)明者B·R·霍洛韋, G·勞特巴赫, M·G·布特勒, S·賴 申請(qǐng)人:先進(jìn)微裝置公司