專(zhuān)利名稱(chēng):更新多級(jí)翻譯旁視緩沖器(tlb)字段的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及翻譯旁視緩沖器(TLB)。在支持分頁(yè)虛擬存儲(chǔ)器的處理器中,可使用占據(jù)處理器的虛擬地址空間的虛擬地址 (也稱(chēng)為"有效"或"線(xiàn)性"地址)來(lái)指定數(shù)據(jù)。虛擬地址空間通??纱笥谙到y(tǒng)中實(shí)際物 理存儲(chǔ)器的大小。處理器中的操作系統(tǒng)可以固定大小區(qū)塊(稱(chēng)為頁(yè))來(lái)管理物理存儲(chǔ)器。為了將虛擬頁(yè)地址翻譯為物理頁(yè)地址,處理器可搜索存儲(chǔ)在系統(tǒng)存儲(chǔ)器中的頁(yè)表, 所述頁(yè)表可含有必需的地址翻譯信息。由于除非頁(yè)表數(shù)據(jù)在數(shù)據(jù)高速緩沖存儲(chǔ)器中,否 則這些搜索(或"頁(yè)表遍歷")通常可涉及存儲(chǔ)器存取,因此這些搜索可能較耗時(shí)。因此處理器可使用一個(gè)或一個(gè)以上翻譯旁視緩沖器(TLB)來(lái)執(zhí)行地址翻譯。TLB 是地址翻譯高速緩沖存儲(chǔ)器,即,存儲(chǔ)從虛擬地址到物理地址的新近映射的小高速緩沖 存儲(chǔ)器。處理器可在執(zhí)行頁(yè)表搜索和地址翻譯之后將物理地址高速緩沖存儲(chǔ)在TLB中。 TLB的內(nèi)容通??砂ǔL岬降奶摂M頁(yè)地址,以及與其相關(guān)聯(lián)的物理頁(yè)地址??纱嬖?單獨(dú)的用于指令地址的TLB (稱(chēng)為"指令TLB"或"I-TLB")和用于數(shù)據(jù)地址的TLB (稱(chēng) 為"數(shù)據(jù)TLB"或"D-TLB")。為了增加TLB地址的效率,可類(lèi)似于多級(jí)存儲(chǔ)器高速緩沖存儲(chǔ)器來(lái)使用和實(shí)施多級(jí) TLB。與一個(gè)或一個(gè)以上上級(jí)TLB相比,下級(jí)TLB通??奢^小且較快。當(dāng)TLB未命中 發(fā)生在下級(jí)TLB和上級(jí)TLB兩者中時(shí),通??稍陧?yè)表遍歷后更新上級(jí)TLB。一般來(lái)說(shuō),可能不會(huì)用從物理存儲(chǔ)器中的頁(yè)表檢索到的地址翻譯信息來(lái)更新下級(jí) TLB。對(duì)下級(jí)TLB的后續(xù)參考將隨后導(dǎo)致TLB未命中,從而要求針對(duì)所需地址翻譯信息 搜索上級(jí)TLB。然而可能存在不合意的等待時(shí)間,其與下級(jí)TLB中的未命中相關(guān)聯(lián)且與 所引起的對(duì)上級(jí)TLB的搜索相關(guān)聯(lián)。 發(fā)明內(nèi)容一種其中存儲(chǔ)有用于處理器的計(jì)算機(jī)可讀指令的計(jì)算機(jī)可讀媒體。所述指令在由處理器讀取和實(shí)施時(shí)促使所述處理器存取物理存儲(chǔ)器以檢索針對(duì)虛擬地址的地址翻譯信 息,所述虛擬地址針對(duì)下級(jí)TLB和上級(jí)TLB兩者產(chǎn)生TLB未命中信號(hào)的虛擬地址的地址翻譯信息。所述指令還促使所述處理器使用單一TLB寫(xiě)入指令,通過(guò)將從所述存儲(chǔ)器 檢索到的所述地址翻譯信息寫(xiě)入所述下級(jí)TLB和所述上級(jí)TLB兩者中,來(lái)更新所述下級(jí) TLB和所述上級(jí)TLB兩者。一種更新一級(jí)以上TLB的方法包含存取存儲(chǔ)器以檢索針對(duì)虛擬地址的地址翻譯信 息。所述方法包含使用單一TLB寫(xiě)入指令,通過(guò)將從所述存儲(chǔ)器檢索到的所述地址翻譯 信息寫(xiě)入下級(jí)TLB和上級(jí)TLB兩者中,來(lái)更新所述下級(jí)TLB和所述上級(jí)TLB兩者。一種設(shè)備包含存儲(chǔ)器、下級(jí)TLB和上級(jí)TLB以及TLB控制器。所述下級(jí)TLB和所 述上級(jí)TLB經(jīng)配置以存儲(chǔ)多個(gè)條目,所述條目中的每一者含有允許將虛擬地址翻譯為相 應(yīng)物理地址的地址翻譯信息。所述TLB控制器經(jīng)配置以如果所需虛擬地址從所述下級(jí) TLB和從所述上級(jí)TLB產(chǎn)生TLB未命中,那么從所述存儲(chǔ)器檢索用于所述所需虛擬地 址的地址翻譯信息。所述TLB控制器進(jìn)一步經(jīng)配置以使用單一 TLB寫(xiě)入指令,通過(guò)將從 所述存儲(chǔ)器檢索到的所述地址翻譯信息寫(xiě)入所述下級(jí)TLB和所述上級(jí)TLB兩者中,來(lái)更 新所述下級(jí)TLB和所述上級(jí)TLB兩者。
圖1示意性說(shuō)明在虛擬存儲(chǔ)器系統(tǒng)中操作的TLB。圖2是地址翻譯系統(tǒng)的實(shí)例的示意圖,所述地址翻譯系統(tǒng)具有上級(jí)TLB和下級(jí)TLB, 以及經(jīng)配置以在單一 TLB寫(xiě)入操作后更新兩級(jí)TLB的TLB控制器。 圖3是說(shuō)明更新一級(jí)以上TLB的方法的示意性流程圖。
具體實(shí)施方式
下文結(jié)合附圖所陳述的具體實(shí)施方式
希望描述經(jīng)配置以更新多級(jí)TLB的方法與系統(tǒng) 的各種實(shí)施例,而不希望呈現(xiàn)僅可能的實(shí)施例。
具體實(shí)施方式
包含具體細(xì)節(jié),以便允許 對(duì)所描述內(nèi)容的詳盡理解。然而所屬領(lǐng)域的技術(shù)人員應(yīng)了解,這些具體細(xì)節(jié)可能不包含 在所描述實(shí)施例的一些實(shí)施例中。在一些情況下,以框圖形式展示眾所周知的結(jié)構(gòu)和組 件,以便更清楚地說(shuō)明所解釋的概念。圖1示意性說(shuō)明翻譯旁視緩沖器(TLB) 10的結(jié)合包含在物理存儲(chǔ)器30中的頁(yè)表 20的虛擬存儲(chǔ)器系統(tǒng)中的操作。如此項(xiàng)技術(shù)中已知,在虛擬存儲(chǔ)器系統(tǒng)中,映射(或翻 譯)通??稍谔摂M(或"線(xiàn)性")地址空間與物理地址空間之間執(zhí)行。虛擬地址空間通常 指由處理器產(chǎn)生的所有虛擬地址22的集合。物理地址空間通常指針對(duì)駐存在物理存儲(chǔ)器 30中的數(shù)據(jù)的所有物理地址的集合,即,可提供于存儲(chǔ)器總線(xiàn)上以寫(xiě)入到物理存儲(chǔ)器30 中特定位置或從所述位置進(jìn)行讀取的地址。在分頁(yè)虛擬存儲(chǔ)器系統(tǒng)中,可假定數(shù)據(jù)由通常稱(chēng)為頁(yè)31的固定長(zhǎng)度單位組成。可將 虛擬地址空間和物理地址空間劃分為連續(xù)頁(yè)地址的區(qū)塊,每一虛擬頁(yè)地址提供一虛擬頁(yè) 碼,且每一相應(yīng)的物理頁(yè)地址指示存儲(chǔ)器30內(nèi)特定數(shù)據(jù)頁(yè)31的位置。典型頁(yè)大小可為 例如約4千字節(jié),但不同的虛擬分頁(yè)存儲(chǔ)器系統(tǒng)可使用不同的頁(yè)大小。物理存儲(chǔ)器30中 的頁(yè)表20可含有對(duì)應(yīng)于虛擬存儲(chǔ)器系統(tǒng)的所有虛擬頁(yè)地址的物理頁(yè)地址,S卩,針對(duì)虛擬 地址空間中的所有虛擬頁(yè)地址,可含有虛擬頁(yè)地址與相應(yīng)物理頁(yè)地址之間的映射。通常, 頁(yè)表20可含有多個(gè)頁(yè)表?xiàng)l目(PTE) 21,每一PTE21指向物理存儲(chǔ)器30中對(duì)應(yīng)于特定 虛擬地址的頁(yè)31。存取存儲(chǔ)在物理存儲(chǔ)器30中的頁(yè)表20中的PTE 21可能需要存儲(chǔ)器總線(xiàn)事務(wù),其在 處理器循環(huán)時(shí)間和功率消耗方面可能成本較高??赏ㄟ^(guò)存取TLB 10而不是物理存儲(chǔ)器 30來(lái)減少存儲(chǔ)器總線(xiàn)事務(wù)的次數(shù)。如早先所解釋?zhuān)琓LB IO是存儲(chǔ)虛擬地址與物理地址之 間的新近映射的地址翻譯高速緩沖存儲(chǔ)器。TLB 10通常含有存儲(chǔ)在頁(yè)表20中的虛擬到 物理地址映射的子集。TLB IO通??珊卸鄠€(gè)TLB條目12。每一TLB條目12可具有 標(biāo)簽字段14和數(shù)據(jù)字段16。標(biāo)簽字段14可包含虛擬頁(yè)地址的高階位中的某些位作為標(biāo) 簽。數(shù)據(jù)字段16可指示對(duì)應(yīng)于帶標(biāo)簽虛擬頁(yè)地址的物理頁(yè)地址。當(dāng)指令在程序執(zhí)行期間具有需要翻譯為相應(yīng)物理地址的虛擬地址22時(shí),可存取TLB 10以在存儲(chǔ)在TLB 10中的TLB條目12中査找虛擬地址22。虛擬地址22通常包含虛擬 頁(yè)碼,其可用于TLB IO中以査找相應(yīng)的物理頁(yè)地址。如果TLB 10在其TLB條目中含有對(duì)應(yīng)于呈現(xiàn)給TLB的虛擬地址22中所含有的虛 擬頁(yè)碼的特定物理頁(yè)地址,那么發(fā)生TLB"命中",且可從TLB IO檢索所述物理頁(yè)地址。 如果TLB IO不含有對(duì)應(yīng)于呈現(xiàn)給TLB的虛擬地址22中的虛擬頁(yè)碼的特定物理頁(yè)地址, 那么發(fā)生TLB "未命中",且可能必須執(zhí)行對(duì)物理存儲(chǔ)器30中的頁(yè)表20的査找。 一旦從 頁(yè)表20確定物理頁(yè)地址,就可將對(duì)應(yīng)于虛擬頁(yè)地址的物理頁(yè)地址加載到TLB IO中,且 可以虛擬頁(yè)地址22再次存取TLB 10。因?yàn)橐褜⑺璧奈锢眄?yè)地址加載到TLB IO中,所 以TLB存取此時(shí)導(dǎo)致TLB"命中",且新近加載的物理頁(yè)地址可在TLB 10的輸出處產(chǎn)生。圖2是地址翻譯系統(tǒng)100的實(shí)例的功能圖,地址翻譯系統(tǒng)100經(jīng)配置以作為單一TLB 寫(xiě)入操作的結(jié)果來(lái)更新一級(jí)以上TLB。在概述中,地址翻譯系統(tǒng)IOO可包含下級(jí)TLB 110、 上級(jí)TLB 115以及控制下級(jí)TLB 110和上級(jí)TLB 115兩者的操作的TLB控制器140。地 址翻譯系統(tǒng)IOO可連接到物理存儲(chǔ)器130,其可包含頁(yè)表120。 TLB控制器140可以是處 理器中的CPU (中央處理單元)的一部分?;蛘?,TLB控制器140可位于處理器的核心內(nèi),和/或位于處理器的CPU附近。TLB控制器140可包含控制對(duì)兩級(jí)TLB的存取的TLB 管理軟件。類(lèi)似于通常用于例如存儲(chǔ)器高速緩沖存儲(chǔ)器中的多級(jí)高速緩沖存儲(chǔ)器,可通過(guò)使用 下級(jí)TLB 110結(jié)合上級(jí)TLB來(lái)增加地址翻譯操作的效率。下級(jí)TLB 110通??尚∮谏霞?jí) TLB 115,且可含有較少的TLB條目,進(jìn)而提供對(duì)頻繁使用的地址數(shù)據(jù)的短存取時(shí)間。 盡管為了簡(jiǎn)明起見(jiàn),在圖2中僅展示單一上級(jí)TLB 115,但應(yīng)了解,地址翻譯系統(tǒng)100 中可包含多個(gè)上級(jí)TLB,每個(gè)增加級(jí)的TLB通常大于前一級(jí)TLB,且具有逐漸增加TLB 條目數(shù)目。TLB控制器130中的TLB管理軟件可促使初始存取和搜索下級(jí)TLB 110,以查找針 對(duì)所需虛擬地址的地址翻譯信息,如圖2中由標(biāo)有參考標(biāo)號(hào)111的箭頭所指示。如果TLB 命中發(fā)生于下級(jí)TLB 110中,那么TLB控制器130中的軟件可促使檢索搜索結(jié)果,如由 標(biāo)有參考標(biāo)號(hào)112的箭頭所指示。如果TLB未命中發(fā)生于下級(jí)TLB IIO中,軟件可實(shí)施 對(duì)上級(jí)TLB 115的搜索。對(duì)上級(jí)TLB 115的搜索在圖2中由標(biāo)有參考標(biāo)號(hào)113的箭頭指 示。與下級(jí)TLB110相比,上級(jí)TLB 115通??珊卸嗟枚嗟腡LB條目。如果對(duì)上級(jí)TLB 115的搜索113導(dǎo)致TLB命中,那么可檢索搜索的結(jié)果并將其加載 到下級(jí)TLB中,如圖2中由標(biāo)有參考標(biāo)號(hào)116的箭頭所指示。然而對(duì)上級(jí)TLB 115的搜 索113仍可能導(dǎo)致未命中,在此情況下TLB控制器140中的軟件可對(duì)物理存儲(chǔ)器130中 的頁(yè)表120實(shí)施搜索,以便檢索所需的物理頁(yè)地址信息。對(duì)頁(yè)表120的搜索在圖2中由 標(biāo)有參考標(biāo)號(hào)117的箭頭指示。如果所需的頁(yè)不存在于物理存儲(chǔ)器130中,那么可將相關(guān)的地址翻譯信息從頁(yè)表120 加載到上級(jí)TLB 115中。這意味著可將所需的地址翻譯信息(即,虛擬地址與相應(yīng)物理 地址之間的映射)寫(xiě)入上級(jí)TLB 115中,如圖2中由標(biāo)有參考標(biāo)號(hào)121的箭頭所指示。 如果所需的頁(yè)不存在于存儲(chǔ)器130中,那么可發(fā)生頁(yè)錯(cuò)誤,且可向操作系統(tǒng)通知異常。一旦更新上級(jí)TLB 115, TLB管理軟件就可促使TLB控制器140重復(fù)TLB參考過(guò)程。 具有在TLB (IIO和115)兩者中初始產(chǎn)生未命中的虛擬地址的指令可被重新獲取,且可 在下級(jí)TLB 110開(kāi)始再次從頭執(zhí)行TLB參考過(guò)程。如果未更新下級(jí)TLB IIO,且僅以從頁(yè)表120檢索到的地址翻譯信息對(duì)上級(jí)TLB 120 進(jìn)行更新,那么在后續(xù)TLB參考過(guò)程中在下部TLB 110中將發(fā)生TLB未命中。因此, 對(duì)上級(jí)TLB 115的搜索將是必要的,以便檢索所需的地址翻譯信息。不合意的等待時(shí)間 將與下級(jí)TLB 110中的未命中相關(guān)聯(lián),且與所引起的對(duì)上部TLB 115的搜索相關(guān)聯(lián)。在地址翻譯系統(tǒng)100的所說(shuō)明實(shí)施例中,TLB控制器140包含軟件,所述軟件促使 TLB控制器140使用從頁(yè)表120檢索到的地址翻譯信息來(lái)更新下級(jí)TLB 110和上級(jí)TLB 115兩者。特定來(lái)說(shuō),TLB控制器140中的軟件促使將從頁(yè)表120檢索到的地址翻譯信 息在單一TLB寫(xiě)入指令后寫(xiě)入到兩級(jí)TLB中。圖2中,對(duì)下級(jí)TLB IIO的更新由標(biāo)有 參考標(biāo)號(hào)119的箭頭指示。在所說(shuō)明實(shí)施例中,TLB控制器140經(jīng)配置以每當(dāng)對(duì)上級(jí)TLB 115的更新121發(fā)生時(shí)便允許對(duì)下級(jí)TLB 110的更新。作為更新下級(jí)TLB IIO以及上級(jí)TLB 115的結(jié)果,當(dāng)?shù)诙螄L試存取第一級(jí)TLB 110 時(shí),即在含有虛擬地址(在對(duì)TLB的初始存取期間在兩級(jí)TLB中未命中)的指令被重新 獲取之后,現(xiàn)在可導(dǎo)致TLB命中而不是TLB未命中。以此方式,可省去對(duì)上級(jí)TLB115 執(zhí)行另一搜索的需要。而且,可消除與第二 (重復(fù))TLB參考過(guò)程期間下級(jí)TLB IIO中 的未命中相關(guān)聯(lián)以及與所引起的對(duì)上級(jí)TLB 120的搜索相關(guān)聯(lián)的等待時(shí)間。如圖2中說(shuō)明,TLB控制器140可包含具有配置位145的控制寄存器143。配置位 145可控制是否應(yīng)執(zhí)行TLB寫(xiě)入操作(由參考標(biāo)號(hào)121指示)。配置位145也可選擇單一 TLB寫(xiě)入操作應(yīng)對(duì)哪級(jí)TLB執(zhí)行,以便用從頁(yè)表檢索的地址翻譯信息來(lái)更新選定級(jí)TLB。在TLB控制器140的另一實(shí)施例(未圖示)中,可由正從頁(yè)表寫(xiě)入的值來(lái)控制對(duì)所 檢索的地址翻譯信息所寫(xiě)入到的TLB級(jí)的選擇。換句話(huà)說(shuō),從頁(yè)表檢索的值除了所需的 地址翻譯信息以外還可包含與針對(duì)所檢索的地址翻譯信息的TLB寫(xiě)入操作將對(duì)其執(zhí)行的 TLB級(jí)的選擇有關(guān)的信息。TLB控制器140可含有其中存儲(chǔ)有計(jì)算機(jī)可讀指令的計(jì)算機(jī)可讀媒體。這些計(jì)算機(jī) 可讀指令在由處理器讀取和執(zhí)行時(shí)可促使處理器存取物理存儲(chǔ)器130中的頁(yè)表120,以 檢索針對(duì)從下級(jí)TLB IIO和上級(jí)TLB 115兩者產(chǎn)生TLB未命中的虛擬地址的地址翻譯信 息。計(jì)算機(jī)可讀指令可促使處理器響應(yīng)于單一TLB寫(xiě)入指令而將從頁(yè)表120檢索到的地 址翻譯信息寫(xiě)入下級(jí)TLB 110和上級(jí)TLB 115兩者中,進(jìn)而更新兩級(jí)TLB。TLB控制器140可包含具有配置位145的控制寄存器143。計(jì)算機(jī)可讀媒體在其中 可存儲(chǔ)有額外的計(jì)算機(jī)可讀指令,所述計(jì)算機(jī)可讀指令在由處理器讀取和實(shí)施時(shí)可促使 配置位145確定將所檢索的地址翻譯信息寫(xiě)入下級(jí)TLB和上級(jí)TLB中的TLB寫(xiě)入操作 是否應(yīng)發(fā)生。計(jì)算機(jī)可讀媒體在其中可存儲(chǔ)有額外的計(jì)算機(jī)可讀指令,所述計(jì)算機(jī)可讀指令在由 處理器讀取和實(shí)施時(shí)可促使配置位145從處理器內(nèi)的多級(jí)TLB中選擇在單一 TLB寫(xiě)入指 令后將進(jìn)行更新的兩級(jí)或兩級(jí)以上TLB,換句話(huà)說(shuō),這些額外的計(jì)算機(jī)可讀指令可促使配置位選擇從頁(yè)表檢索的地址翻譯信息在單一 TLB寫(xiě)入指令后應(yīng)被寫(xiě)入到的那些級(jí) TLB。計(jì)算機(jī)可讀媒體在其中可存儲(chǔ)有額外的計(jì)算機(jī)可讀指令,所述計(jì)算機(jī)可讀指令在由 處理器讀取和實(shí)施時(shí)可促使處理器從自頁(yè)表檢索到的地址翻譯信息讀取額外信息,所述額外信息與對(duì)在單一TLB寫(xiě)入指令后將進(jìn)行更新的兩級(jí)或兩級(jí)以上TLB的選擇有關(guān)。換 句話(huà)說(shuō),這些額外的計(jì)算機(jī)可讀指令在由處理器讀取和實(shí)施時(shí)可促使處理器從所檢索的 地址翻譯信息本身讀取對(duì)所檢索的地址翻譯信息應(yīng)被寫(xiě)入到的TLB級(jí)的選擇。計(jì)算機(jī)可讀媒體在其中可存儲(chǔ)有額外的計(jì)算機(jī)可讀指令,所述計(jì)算機(jī)可讀指令在由 處理器讀取和實(shí)施時(shí)可促使處理器初始存取下級(jí)TLB 110以搜索針對(duì)所需虛擬地址的地 址翻譯信息,且如果針對(duì)所需虛擬地址的地址翻譯信息從下級(jí)TLB 110未命中,即如果 所需虛擬地址在呈現(xiàn)到下級(jí)TLB 110時(shí)產(chǎn)生TLB未命中,那么存取并搜索上級(jí)TLB 115。額外的計(jì)算機(jī)可讀指令可進(jìn)一步促使處理器如果針對(duì)所需虛擬地址的地址翻譯信息從上 級(jí)TLB115未命中,即如果所需虛擬地址在呈現(xiàn)到上級(jí)TLB 115時(shí)產(chǎn)生TLB未命中,那 么存取物理存儲(chǔ)器130中的頁(yè)表120以檢索所述地址翻譯信息。盡管圖2所說(shuō)明的地址翻譯系統(tǒng)100的實(shí)施例僅展示兩級(jí)TLB,但地址翻譯系統(tǒng)的 其它實(shí)施例(未圖示)可包含兩級(jí)以上TLB。這些地址翻譯系統(tǒng)可包含多級(jí)TLB,每一 級(jí)TLB包含可存儲(chǔ)針對(duì)虛擬地址的地址翻譯信息的TLB條目。這些地址翻譯系統(tǒng)中的 TLB控制器可經(jīng)配置以從最下級(jí)TLB開(kāi)始逐漸到最上級(jí)TLB依次存取多級(jí)TLB中的每 一者。TLB控制器可經(jīng)配置以如果針對(duì)所需虛擬地址的地址翻譯信息在所有所述多級(jí) TLB中未命中,那么存取物理存儲(chǔ)器中的頁(yè)表,且從物理存儲(chǔ)器中的頁(yè)表檢索針對(duì)所需 虛擬地址的地址翻譯信息。TLB控制器可進(jìn)一步經(jīng)配置以用已從物理存儲(chǔ)器中的頁(yè)表檢 索到的地址翻譯信息來(lái)更新所有所述多級(jí)TLB。圖3是更新一級(jí)以上TLB的方法300的流程圖。方法300在步驟302中開(kāi)始。在步 驟304中,可獲取指令以使得指令的執(zhí)行可開(kāi)始。在步驟306中,可針對(duì)獲取的指令產(chǎn) 生虛擬地址。在步驟308中,TLB控制器可存取下級(jí)TLB以在下級(jí)TLB中搜索針對(duì)步 驟306中所產(chǎn)生的虛擬地址的地址翻譯信息。如果地址翻譯信息不存在于下級(jí)TLB中, 那么在步驟309中,TLB控制器可從下級(jí)TLB中檢索地址翻譯信息。如果所需地址翻譯 信息不存在于下級(jí)TLB中,那么可能發(fā)生TLB未命中。TLB控制器可接收來(lái)自下級(jí)TLB 的TLB未命中的指示,即接收"TLB未命中"信號(hào)。TLB控制器接著可在步驟310中進(jìn) 行到檢査上級(jí)TLB以確定所需條目是否存在于上級(jí)TLB中。如果所需地址翻譯信息存在于上級(jí)TLB中,那么在步驟311中,TLB控制器可從上 級(jí)TLB檢索地址翻譯信息。如果所需地址翻譯信息不存在于上級(jí)TLB中,那么在上級(jí) TLB中可能發(fā)生TLB未命中。TLB控制器可接收來(lái)自上級(jí)TLB的TLB未命中的指示, 即接收來(lái)自上級(jí)TLB的"TLB未命中"信號(hào)。在步驟312中,TLB控制器接著可進(jìn)行到 存取物理存儲(chǔ)器以在頁(yè)表中搜索所需條目,如果在頁(yè)表中找到所需地址翻譯信息,那么 在步驟314中,TLB控制器可從頁(yè)表檢索所述信息。如果在頁(yè)表中沒(méi)有找到所需地址翻 譯信息,那么在步驟313中,TLB控制器可促使發(fā)生頁(yè)錯(cuò)誤。在步驟314中TLB控制器從頁(yè)表檢索所需條目之后,在步驟316中TLB控制器可通 過(guò)執(zhí)行單一TLB寫(xiě)入指令將地址翻譯信息(從頁(yè)表檢索)寫(xiě)入下級(jí)TLB和上級(jí)TLB兩 者中。換句話(huà)說(shuō),TLB控制器可通過(guò)執(zhí)行單一TLB寫(xiě)入指令來(lái)更新兩級(jí)TLB。接著可從 步驟318開(kāi)始再次執(zhí)行TLB參考過(guò)程,在所述步驟318中可重新獲取指令。在步驟320 中,可再次存取下級(jí)TLB。此時(shí),由于已經(jīng)用從頁(yè)表檢索到的地址翻譯信息更新下級(jí)TLB, 因此可發(fā)生TLB命中。在步驟322中,TLB控制器可從下級(jí)TLB檢索所需地址翻譯信 息。方法300可包含讀取TLB控制器中的配置位以確定應(yīng)使用單一 TLB寫(xiě)入指令更新哪 級(jí)TLB的動(dòng)作(未圖示)。方法300可包含讀取從頁(yè)表檢索到的值以確定應(yīng)使用單一 TLB 寫(xiě)入指令更新哪級(jí)TLB的動(dòng)作(未圖示)。盡管圖3所說(shuō)明的方法僅展示兩級(jí)TLB (即,下級(jí)TLB和上級(jí)TLB),但更新TLB 的其它方法可包含兩級(jí)以上TLB。概括來(lái)說(shuō),已描述一種用于消除與在指令重新獲取期間下級(jí)TLB中發(fā)生的未命中相 關(guān)聯(lián)的等待時(shí)間的系統(tǒng)和方法,所述未命中是因?yàn)楫?dāng)更新上級(jí)TLB時(shí)下級(jí)TLB未被更新 而引起。下級(jí)TLB中的未命中要求上級(jí)TLB中的搜索,其導(dǎo)致額外的等待時(shí)間。通過(guò)在 更新上級(jí)TLB的同時(shí)更新下級(jí)TLB,后續(xù)對(duì)下級(jí)TLB的參考產(chǎn)生命中而不是未命中, 從而省去了從上級(jí)TLB獲得條目的需要。提供對(duì)所揭示實(shí)施例的先前描述以使所屬領(lǐng)域的技術(shù)人員能夠制作或使用上述方法 和系統(tǒng)。所屬領(lǐng)域的技術(shù)人員將容易明白對(duì)這些實(shí)施例的各種修改,且在不脫離所描述 內(nèi)容的精神或范圍的情況下,可將本文定義的一般原理應(yīng)用于其它實(shí)施例。因此,不希 望上述方法和系統(tǒng)被限于本文所示的實(shí)施例,而是賦予其與權(quán)利要求書(shū)一致的完整范圍, 其中以單數(shù)形式對(duì)元件的參考不希望表示"一個(gè)且僅一個(gè)"(除非具體規(guī)定如此),而是 希望表示"一個(gè)或一個(gè)以上"。整個(gè)本發(fā)明中所描述的所屬領(lǐng)域的技術(shù)人員已知或稍后獲10知的各種實(shí)施例的元件的所有結(jié)構(gòu)和功能等效物明確以引用方式并入本文中,且希望由 權(quán)利要求書(shū)涵蓋。而且,本文所揭示的任何內(nèi)容均不希望公之于眾,無(wú)論所述揭示內(nèi)容 是否在權(quán)利要求書(shū)中明確陳述。除非使用術(shù)語(yǔ)"用于...的裝置"對(duì)權(quán)利要求要素明確加 以陳述,或在方法項(xiàng)的情況下使用術(shù)語(yǔ)"用于...的步驟"對(duì)所述要素加以陳述,否則不 應(yīng)根據(jù)35 U.S.C. §112第六節(jié)來(lái)解釋任何權(quán)利要求要素。
權(quán)利要求
1.一種其中存儲(chǔ)有計(jì)算機(jī)可讀指令的計(jì)算機(jī)可讀媒體,其中所述指令在由處理器讀取和實(shí)施時(shí)促使所述處理器存取物理存儲(chǔ)器以檢索針對(duì)虛擬地址的地址翻譯信息,所述虛擬地址針對(duì)下級(jí)TLB和上級(jí)TLB兩者產(chǎn)生TLB未命中信號(hào);以及使用單一TLB寫(xiě)入指令,通過(guò)將從所述存儲(chǔ)器檢索到的所述地址翻譯信息寫(xiě)入所述下級(jí)TLB和所述上級(jí)TLB兩者中來(lái)更新所述下級(jí)TLB和所述上級(jí)TLB兩者。
2. 根據(jù)權(quán)利要求l所述的計(jì)算機(jī)可讀媒體,其中所述計(jì)算機(jī)可讀媒體在其中存儲(chǔ)有用 于所述處理器的進(jìn)一步的計(jì)算機(jī)可讀指令,且其中所述進(jìn)一步的指令在由所述處理 器讀取和實(shí)施時(shí)促使所述處理器初始存取所述下級(jí)TLB以搜索針對(duì)虛擬地址的地 址翻譯信息,如果所述虛擬地址從所述下級(jí)TLB產(chǎn)生TLB未命中,那么存取并搜 索上級(jí)TLB,且如果所述虛擬地址從所述上級(jí)TLB產(chǎn)生TLB未命中,那么存取所 述物理存儲(chǔ)器中的頁(yè)表以檢索針對(duì)所述所需虛擬地址的所述地址翻譯信息。
3. 根據(jù)權(quán)利要求1所述的計(jì)算機(jī)可讀媒體,其中所述處理器包含具有配置位的控制寄 存器,其中所述計(jì)算機(jī)可讀媒體在其中存儲(chǔ)有用于所述處理器的進(jìn)一步的計(jì)算機(jī)可 讀指令,且其中所述進(jìn)一步的指令在由所述處理器讀取和實(shí)施時(shí)促使所述配置位確 定所述檢索的地址翻譯信息的TLB寫(xiě)入操作是否應(yīng)發(fā)生。
4. 根據(jù)權(quán)利要求3所述的計(jì)算機(jī)可讀媒體,其中所述處理器包含多級(jí)TLB,且其中所 述進(jìn)一步的指令在由所述處理器讀取和實(shí)施時(shí)促使所述配置位從所述多級(jí)TLB中 選擇將響應(yīng)于所述單一 TLB寫(xiě)入指令而更新的所述下級(jí)TLB和所述上級(jí)TLB。
5. 根據(jù)權(quán)利要求l所述的計(jì)算機(jī)可讀媒體,其中所述處理器包含多級(jí)TLB,其中所述 計(jì)算機(jī)可讀媒體在其中存儲(chǔ)有用于所述處理器的進(jìn)一步的計(jì)算機(jī)可讀指令,且其中 所述進(jìn)一步的指令在由所述處理器讀取和實(shí)施時(shí)促使所述處理器使用從所述存儲(chǔ) 器檢索到的所述地址翻譯信息來(lái)從所述多級(jí)TLB中選擇將響應(yīng)于所述單一 TLB寫(xiě) 入指令而更新的所述下級(jí)TLB和所述上級(jí)TLB。
6. —種更新一個(gè)級(jí)以上TLB的方法,所述方法包括存取存儲(chǔ)器以檢索針對(duì)虛擬地址的地址翻譯信息;以及使用單一 TLB寫(xiě)入操作,通過(guò)將從所述存儲(chǔ)器檢索到的所述地址翻譯信息寫(xiě)入下 級(jí)TLB和上級(jí)TLB兩者中來(lái)更新所述下級(jí)TLB和所述上級(jí)TLB兩者。
7. 根據(jù)權(quán)利要求6所述的方法,其進(jìn)一步包括從所述下級(jí)TLB和從所述上級(jí)TLB接 收針對(duì)虛擬地址的TLB未命中的指示的動(dòng)作。
8. 根據(jù)權(quán)利要求5所述的方法,其進(jìn)一步包括存取所述下級(jí)TLB和所述上級(jí)TLB以 搜索針對(duì)所述虛擬地址的地址翻譯信息的動(dòng)作,所述地址翻譯信息允許將所述虛擬 地址翻譯為物理地址。
9. 根據(jù)權(quán)利要求6所述的方法,其中所述存儲(chǔ)器經(jīng)配置以將數(shù)據(jù)存儲(chǔ)在多個(gè)頁(yè)中,其 中所述存儲(chǔ)器含有經(jīng)配置以存儲(chǔ)關(guān)于所述存儲(chǔ)器內(nèi)所述多個(gè)頁(yè)中每一頁(yè)的位置的 信息的頁(yè)表,且其中所述存取所述存儲(chǔ)器以檢索所述地址翻譯信息的動(dòng)作包括從所 述頁(yè)表檢索所述地址翻譯信息。
10. —種設(shè)備,其包括存儲(chǔ)器;下級(jí)翻譯旁視緩沖器(TLB)和上級(jí)TLB,所述下級(jí)TLB和所述上級(jí)TLB經(jīng)配 置以存儲(chǔ)多個(gè)條目,所述條目中的每一者含有允許將虛擬地址翻譯為相應(yīng)物理地址 的地址翻譯信息;以及TLB控制器,其經(jīng)配置以如果所需虛擬地址從所述下級(jí)TLB和從所述上級(jí)TLB 產(chǎn)生TLB未命中,那么從所述存儲(chǔ)器檢索針對(duì)所述所需虛擬地址的地址翻譯信息, 所述TLB控制器進(jìn)一步經(jīng)配置以使用單一 TLB寫(xiě)入指令,通過(guò)將從所述存儲(chǔ)器檢 索到的所述地址翻譯信息寫(xiě)入所述下級(jí)TLB和所述上級(jí)TLB兩者中來(lái)更新所述下 級(jí)TLB和所述上級(jí)TLB兩者。
11. 根據(jù)權(quán)利要求10所述的設(shè)備,其中所述存儲(chǔ)器經(jīng)配置以將數(shù)據(jù)存儲(chǔ)在多個(gè)頁(yè)中, 且其中所述存儲(chǔ)器含有經(jīng)配置以存儲(chǔ)關(guān)于所述存儲(chǔ)器內(nèi)所述多個(gè)頁(yè)中每一頁(yè)的位置的信息的頁(yè)表。
12. 根據(jù)權(quán)利要求10所述的設(shè)備,其中所述TLB控制器進(jìn)一步經(jīng)配置以初始存取所述 下級(jí)TLB以搜索所述所需地址翻譯信息,如果所述所需翻譯信息從所述下級(jí)TLB 未命中,那么存取并搜索所述上級(jí)TLB,且如果所述所需地址翻譯信息從所述上級(jí) TLB未命中,那么存取所述存儲(chǔ)器以檢索所述所需地址翻譯信息。
13. 根據(jù)權(quán)利要求IO所述的設(shè)備,其中所述TLB控制器包括具有配置位的控制寄存器, 且其中所述配置位經(jīng)配置以從多級(jí)TLB中選擇將使用單一 TLB寫(xiě)入指令而更新的 所述下級(jí)TLB和所述上級(jí)TLB。
全文摘要
一種設(shè)備包含經(jīng)配置以存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器、下級(jí)TLB、上級(jí)TLB以及TLB控制器。所述下級(jí)TLB和所述上級(jí)TLB經(jīng)配置以存儲(chǔ)多個(gè)條目,所述條目中的每一者含有允許將虛擬地址翻譯為相應(yīng)物理地址的地址翻譯信息。如果所需虛擬地址從所述下級(jí)TLB和從所述上級(jí)TLB產(chǎn)生TLB未命中,那么所述TLB控制器從所述存儲(chǔ)器中的頁(yè)表檢索針對(duì)所述所需虛擬地址的地址翻譯信息,使用單一TLB寫(xiě)入指令,所述TLB控制器通過(guò)將從所述頁(yè)表檢索到的所述地址翻譯信息寫(xiě)入所述下級(jí)TLB以及所述上級(jí)TLB中來(lái)更新所述下級(jí)TLB和所述上級(jí)TLB兩者。
文檔編號(hào)G06F12/10GK101326499SQ200680046048
公開(kāi)日2008年12月17日 申請(qǐng)日期2006年10月20日 優(yōu)先權(quán)日2005年10月20日
發(fā)明者托馬斯·安德魯·薩托里烏斯, 杰弗里·托德·布里奇斯, 維克托·羅伯茨·奧格斯堡, 詹姆斯·諾里斯·迪芬德?tīng)栙M(fèi)爾 申請(qǐng)人:高通股份有限公司