午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

用于執(zhí)行具有最低表查詢優(yōu)先級(jí)的硬件預(yù)取表查詢的系統(tǒng)和方法

文檔序號(hào):9631500閱讀:399來源:國知局
用于執(zhí)行具有最低表查詢優(yōu)先級(jí)的硬件預(yù)取表查詢的系統(tǒng)和方法【
技術(shù)領(lǐng)域
】[0001]本發(fā)明一般涉及在微處理器中執(zhí)行表查詢(tablewalk),尤其涉及執(zhí)行具有最低表查詢優(yōu)先級(jí)的硬件預(yù)取表查詢操作以便改進(jìn)性能。【
背景技術(shù)
】[0002]現(xiàn)代處理器支持虛擬存儲(chǔ)器能力。虛擬存儲(chǔ)器系統(tǒng)把由程序使用的虛擬地址映射或翻譯為由硬件使用的物理地址以便對(duì)存儲(chǔ)器進(jìn)行尋址。虛擬存儲(chǔ)器的優(yōu)點(diǎn)在于對(duì)程序隱藏物理存儲(chǔ)器的存儲(chǔ)碎片,便于程序重定位,以及使程序能夠?qū)ふ冶绕淇捎玫膶?shí)際物理存儲(chǔ)器更大且適合它的存儲(chǔ)器地址空間以供使用。這些優(yōu)點(diǎn)在支持由多個(gè)程序或進(jìn)程對(duì)處理器進(jìn)行分時(shí)共享的現(xiàn)代系統(tǒng)中是特別有益的。[0003]微處理器所支持的常見虛擬存儲(chǔ)器方案是分頁式存儲(chǔ)系統(tǒng)。分頁式存儲(chǔ)系統(tǒng)采用分頁機(jī)制來把虛擬地址翻譯或映射為物理地址。物理地址空間被劃分為固定大小的物理頁面。通常的頁面大小是4千字節(jié)(KB)。虛擬地址包括虛擬頁面地址部分和頁面偏移部分。虛擬頁面地址指定了虛擬地址空間中的虛擬頁面。微處理器的分頁機(jī)制把虛擬頁面地址翻譯為物理頁面地址。此過程被稱為頁面翻譯。頁面偏移指定了物理頁面中的物理偏移,即相對(duì)于物理頁面地址的物理偏移。[0004]操作系統(tǒng)判定存儲(chǔ)器中的哪些物理頁面將被映射到每個(gè)虛擬頁面,并且維持用于指定該映射的頁面映射信息。當(dāng)微處理器遇到用于指定虛擬地址以訪問存儲(chǔ)器中的一位置的指令(諸如加載或存儲(chǔ)指令)時(shí),所述微處理器通過使用操作系統(tǒng)的頁面映射信息把虛擬地址翻譯為適當(dāng)?shù)奈锢淼刂?。操作系統(tǒng)在系統(tǒng)存儲(chǔ)器中維持頁面映射信息。從而,微處理器從存儲(chǔ)器中讀取適當(dāng)?shù)捻撁嬗成湫畔⒁员惆烟摂M地址翻譯為物理地址。頁面映射信息一般按層級(jí)結(jié)構(gòu)布置以便減小其大小,這要求微處理器通過在所述層級(jí)結(jié)構(gòu)的多個(gè)分級(jí)上執(zhí)行讀取操作以便遍歷該層級(jí)結(jié)構(gòu)。由于此原因,并且因?yàn)轫撁嬗成湫畔⒌闹辽僖徊糠滞ǔ1环Q為頁表,所以微處理器遍歷所述頁面映射信息以便把虛擬地址翻譯為物理地址的過程通常被稱為頁表查詢(pagetablewalk),或簡稱為表查詢(tablewalk)。從而,表查詢操作把虛擬地址等翻譯為物理地址或物理地址翻譯,更一般地說,稱為翻譯地址。[0005]舉例來說,常用的層級(jí)頁面映射信息方案包括第一級(jí)頁面目錄和第二級(jí)頁表。頁面目錄中的每個(gè)條目指向不同的頁表,并且每個(gè)頁表中的每個(gè)條目包括被映射到該條目的頁面的物理地址或翻譯地址以及特性。頁面目錄的基地址被存儲(chǔ)在微處理器的寄存器中。在英特爾公司于2006年6月公開的、文檔號(hào)為253668-020US的IA-32英特爾體系結(jié)構(gòu)軟件開發(fā)者手冊(cè)第3A卷:系統(tǒng)編程指南的第一部分的第3-23頁的圖3-12中圖示了這種方案,這里為了各種目的通過引用而并入此文獻(xiàn)以供參考。在此例子中,微處理器通過在由虛擬地址的上部中的頁面目錄條目位元(bit)所指定的頁面目錄內(nèi)的索引處讀取頁面目錄條目,來執(zhí)行表查詢。頁面目錄條目指定了相關(guān)頁表的基地址。然后微處理器在由虛擬地址的中間的頁表位元所指定的頁表內(nèi)的索引處讀取頁表?xiàng)l目。頁表?xiàng)l目指定了相關(guān)頁面的翻譯地址。頁表?xiàng)l目還包括每個(gè)頁面的特性。例如,頁面特性可以包括以下指示:頁面是否已經(jīng)被訪問;頁面是否已經(jīng)被寫入;高速緩存特性,諸如頁面是否是可高速緩存的,并且如果是的話,回寫高速緩存的策略;為所述頁面分配了哪種特權(quán)等級(jí);頁面的寫入特權(quán);以及物理存儲(chǔ)器中是否存在所述頁面。[0006]操作系統(tǒng)利用頁面特性值來填充頁面目錄條目和頁表?xiàng)l目。然而,微處理器還響應(yīng)于程序執(zhí)行來更新一些頁面特性。例如,在上述英特爾方案中,處理器寫入相關(guān)的頁面目錄條目和/或頁表?xiàng)l目,以便響應(yīng)于程序讀取和/或?qū)懭氪鎯?chǔ)頁面來更新已訪問的和/或臟位(Accessedand/orDirtybit)。從而,當(dāng)執(zhí)行表查詢時(shí),除從系統(tǒng)存儲(chǔ)器中讀取頁面映射信息以便把虛擬地址翻譯為翻譯地址(例如,物理地址或物理地址翻譯)之外,處理器有時(shí)還可能必須把頁面映射信息寫入到系統(tǒng)存儲(chǔ)器中。[0007]因?yàn)轫撁嬗成湫畔Ⅰv留在系統(tǒng)存儲(chǔ)器中,并且對(duì)系統(tǒng)存儲(chǔ)器的訪問相對(duì)緩慢,所以對(duì)微處理器來說執(zhí)行表查詢以便執(zhí)行虛擬到物理地址翻譯以及獲得和/或更新頁面特性是相對(duì)高代價(jià)的操作。為了通過減少表查詢的數(shù)目來改進(jìn)性能,許多微處理器提供了用于高速緩存頁面映射信息的機(jī)制。頁面映射信息高速緩存器通常被稱為翻譯后援緩沖器(TLB)。當(dāng)微處理器遇到存儲(chǔ)器訪問指令時(shí),微處理器向TLB提供虛擬地址并且所述TLB執(zhí)行虛擬頁面地址的查找。如果虛擬頁面地址在TLB中命中,則TLB提供相應(yīng)的翻譯物理頁面地址和頁面特性,由此避免了執(zhí)行表查詢的需要。然而,如果虛擬頁面地址在TLB中未命中,則微處理器執(zhí)行表查詢。從而,除了根據(jù)需要從存儲(chǔ)器中讀取頁面映射信息并且更新頁面映射信息之外,表查詢還包括微處理器在TLB中分配條目并且利用翻譯物理地址和頁面特性來更新所述條目。[0008]作為總結(jié),概括地講,表查詢包括三個(gè)步驟。第一步驟是從存儲(chǔ)器中讀取用于把虛擬地址翻譯為翻譯地址并且獲得頁面特性所要求的必要的頁面映射信息。第二步驟是,如果必要的話,更新系統(tǒng)存儲(chǔ)器中的頁面映射信息。第三步驟是分配TLB條目,并且利用新的頁面映射信息來更新所述TLB條目。[0009]許多現(xiàn)代微處理器是超純量的微處理器。即,微處理器包括多個(gè)執(zhí)行單元并且能夠在單個(gè)時(shí)鐘周期內(nèi)向執(zhí)行單元發(fā)出多個(gè)指令。許多現(xiàn)代微處理器還執(zhí)行非循序執(zhí)行操作。即,微處理器可以不按照由包括指令的程序所指定的次序來執(zhí)行指令。超純量非循序執(zhí)行微處理器一般試圖維持相對(duì)較大的未執(zhí)行指令(outstandinginstruction)池,使得它們可以享受更大量的指令并行性的益處。[0010]許多現(xiàn)代微處理器還執(zhí)行推測性指令執(zhí)行操作。即,微處理器在確實(shí)知道指令實(shí)際上是否完成所述指令之前指令的執(zhí)行,或者至少執(zhí)行由所述指令規(guī)定的動(dòng)作中的一些動(dòng)作。存在若干為什么指令可能未完成的原因。例如,微處理器可能誤預(yù)測了比所涉指令更舊的分支指令。舉例來說,微處理器可能在所涉指令完成之前出現(xiàn)異常。異??梢允钱惒降?,諸如中斷,或者可以是同步的,即由指令所引起的,諸如頁面錯(cuò)誤、除以零條件、一般保護(hù)錯(cuò)誤等。導(dǎo)致異常的指令可以是所涉指令或者是比所涉指令更舊的指令。盡管微處理器可以推測性地執(zhí)行由指令規(guī)定的動(dòng)作中的一些動(dòng)作,不過在結(jié)構(gòu)上不允許微處理器利用指令的結(jié)果來更新系統(tǒng)的結(jié)構(gòu)狀態(tài),直到所述指令不再是推測性的為止,即直到確信所述指令將會(huì)完成為止。[0011]許多現(xiàn)代微處理器還執(zhí)行硬件預(yù)取。硬件預(yù)取通常指的是預(yù)期將來需要該信息而把數(shù)據(jù)(或指令)從存儲(chǔ)器中送到高速緩沖存儲(chǔ)器中。硬件預(yù)取實(shí)際上是高度推測性的,這是因?yàn)橛酗@著的幾率并不會(huì)使用所獲取的信息。硬件預(yù)取器包括檢測器等,用于識(shí)別微處理器中的模式和訪問,并且在軟件需要信息甚至請(qǐng)求信息之前產(chǎn)生用于獲取所述信息的請(qǐng)求。然而常規(guī)的硬件預(yù)取器在命中或接近頁面邊界時(shí)停止。由于頁面大小可能是未知的,所以通常假定4KB的最小大小。頁面邊界限制在一定程度上是基于舊系統(tǒng)的,所述舊系統(tǒng)在運(yùn)用跨過頁面邊界訪問的物理地址時(shí)可能會(huì)有問題。[0012]在虛擬存儲(chǔ)器系統(tǒng)中,硬件預(yù)取的虛擬地址首先被轉(zhuǎn)換為翻譯物理地址。在TLB中未找到所述翻譯地址的情況下,執(zhí)行表查詢以便使用虛擬地址取得所述翻譯地址。盡管在隨后處理期間使用所取得的信息時(shí)硬件預(yù)取仍可提供顯著的優(yōu)點(diǎn),不過硬件預(yù)取表查詢可能會(huì)阻礙基于軟件的表查詢?;谲浖谋聿樵兪腔趯?shí)際的軟件或代碼指令的,因而具有比硬件預(yù)取操作更高的優(yōu)先級(jí)。從而,強(qiáng)迫基于軟件的表查詢等待較低優(yōu)先級(jí)的硬件預(yù)取表查詢是無益的?!?br/>發(fā)明內(nèi)容】[0013]依照一個(gè)實(shí)施例的用于微處理器的硬件預(yù)取表查詢系統(tǒng)包括表查詢引擎和硬件預(yù)取引擎。表查詢引擎可以包括表查詢邏輯、比較器和優(yōu)先邏輯。表查詢邏輯配置為執(zhí)行表查詢操作以取得用于所接收的虛擬地址的翻譯地址。比較器配置為比較優(yōu)先級(jí)值并且提供比較值。優(yōu)先邏輯被配置為接收包括虛擬地址和優(yōu)先級(jí)值的新的表查詢請(qǐng)求,當(dāng)表查詢邏輯目前不是正在執(zhí)行表查詢操作時(shí),由所述表查詢邏輯發(fā)起新的表查詢操作以尋找與所述新的表當(dāng)前第1頁1 2 3 4 5 
當(dāng)前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1