国产精品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>

      管理tlb的方法和裝置的制作方法

      文檔序號(hào):6577259閱讀:201來源:國知局
      專利名稱:管理tlb的方法和裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及旁路轉(zhuǎn)換緩沖器(TLB),更具體地,涉及對(duì)共享的旁路轉(zhuǎn)換緩沖器進(jìn)行 管理的方法和裝置。
      背景技術(shù)
      出于對(duì)處理大量信息的需要,人們對(duì)處理器的速度要求越來越高。為了不斷提高 處理速度,處理系統(tǒng)也由傳統(tǒng)的單核處理器擴(kuò)展到多核系統(tǒng),也就是,由多個(gè)CPU內(nèi)核共同 進(jìn)行數(shù)據(jù)信息的處理。近來,還提出了異構(gòu)多核處理系統(tǒng)。異構(gòu)多核的方案是將多核架構(gòu) 從通用的對(duì)等設(shè)計(jì)遷移到“主核心+協(xié)處理器”的非對(duì)等設(shè)計(jì),亦即處理器中有一個(gè)或多個(gè) 通用核心承擔(dān)通用計(jì)算,其他專用計(jì)算由專用的硬件核心,即協(xié)處理器來完成,由此實(shí)現(xiàn)處 理器執(zhí)行效率和最終性能的大幅度躍進(jìn)。圖1示出一個(gè)異構(gòu)多核系統(tǒng)的結(jié)構(gòu)示意圖。如圖1所示,處理系統(tǒng)中包含4個(gè)CPU 內(nèi)核,或稱主核心,和4個(gè)協(xié)處理器,主核心和協(xié)處理器之間通過接口和總線連接。其中4 個(gè)內(nèi)核用于執(zhí)行所有的通用任務(wù)以及對(duì)特殊任務(wù)的分派,4個(gè)協(xié)處理器用于執(zhí)行分派的特 殊任務(wù)。作為專用硬件邏輯,依照應(yīng)用的不同,協(xié)處理器可以是例如各種類型的數(shù)字信號(hào)處 理器DSP。例如,這些DSP類型可以是Java解釋器、MPEG視頻引擎、加密/解密處理器等 等。在處理專門任務(wù)時(shí),協(xié)處理器的效能遠(yuǎn)優(yōu)于通用核心,功耗也低得多。基于這樣的異構(gòu) 設(shè)計(jì),處理器系統(tǒng)可以將高負(fù)載的專用作業(yè)交給協(xié)處理器執(zhí)行,這樣主核心的運(yùn)算壓力就 大大減輕,系統(tǒng)整體效能將獲得明顯提升。與常規(guī)處理一樣,在執(zhí)行各種任務(wù)處理時(shí),協(xié)處理器也要利用旁路轉(zhuǎn)換緩沖器 TLB (translation look-aside buffer)來進(jìn)行數(shù)據(jù)的存取。TLB是處理器中的一部分高 速緩存,用于存儲(chǔ)進(jìn)行數(shù)據(jù)處理時(shí)所使用的一些頁表項(xiàng),這些頁表項(xiàng)用于實(shí)現(xiàn)地址的映射 和轉(zhuǎn)換。具體地,TLB中包含多個(gè)條目,每一條目存儲(chǔ)一條虛擬地址和存儲(chǔ)器的物理地址的 映射關(guān)系。由于主核心執(zhí)行大量的通用計(jì)算,邏輯相對(duì)復(fù)雜,因此,每個(gè)內(nèi)核維持有自己的 TLB。而對(duì)于協(xié)處理器,一方面,協(xié)處理器一側(cè)需要維持自己的TLB,以避免每次存取數(shù)據(jù)時(shí) 都要通過總線到內(nèi)核中查找TLB條目造成的性能降低;另一方面,協(xié)處理器執(zhí)行相對(duì)單一 的運(yùn)算,邏輯相對(duì)簡單,因此,多個(gè)協(xié)處理器可以共享地使用一個(gè)TLB以節(jié)省資源。因此,可 以在多個(gè)協(xié)處理器共同連接的接口中嵌入一個(gè)TLB,這個(gè)TLB由連接到這個(gè)接口的多個(gè)協(xié) 處理器所共享。在主核心指示協(xié)處理器執(zhí)行一項(xiàng)作業(yè)(job)時(shí),通常來說,主核心要將這項(xiàng)作業(yè) 中所涉及的數(shù)據(jù)的地址對(duì)應(yīng)關(guān)系寫入?yún)f(xié)處理器所使用的TLB中,這可以稱為TLB的初始化。 之后,主核心準(zhǔn)備好數(shù)據(jù),就可以啟動(dòng)協(xié)處理器執(zhí)行數(shù)據(jù)處理了。這樣,協(xié)處理器根據(jù)主核 心的指令,利用主核心寫入的TLB條目存取數(shù)據(jù),執(zhí)行特定的數(shù)據(jù)處理任務(wù)。在許多情況 下,協(xié)處理器往往要分時(shí)地處理多個(gè)作業(yè),或者一個(gè)作業(yè)隊(duì)列。此外,如上所述,一個(gè)TLB可 以由多個(gè)協(xié)處理器所共享。這就形成多個(gè)協(xié)處理器利用一個(gè)TLB處理多個(gè)作業(yè)的情況。圖2示出多個(gè)協(xié)處理器 共享一個(gè)TLB的示意圖。如圖所示,三個(gè)協(xié)處理器共同使用一個(gè)TLB執(zhí)行數(shù)據(jù)處理。其中每個(gè)協(xié)處理器又示例性地分時(shí)處理一個(gè)作業(yè)隊(duì)列。因此,三個(gè)協(xié)處理器處理的所有這些作業(yè)中涉及的地址對(duì)應(yīng)關(guān)系都要使用共同的一個(gè)TLB來存儲(chǔ)。 然而,眾所周知,TLB中的條目是非常有限的,因此這就帶來如何管理和分配這些條目,使得 該TLB能夠更加有效地被分享使用的問題。

      發(fā)明內(nèi)容
      考慮到上述問題,本發(fā)明提供一種管理共享的旁路轉(zhuǎn)換緩沖器(TLB)的方法和裝 置,以實(shí)現(xiàn)對(duì)共享TLB條目的有效管理。具體地,根據(jù)本發(fā)明第一方面,提供一種管理TLB的方法,所述TLB由多個(gè)作業(yè)共 享使用,所述方法包括獲得所述多個(gè)作業(yè)中的每個(gè)作業(yè)的至少一個(gè)屬性;根據(jù)所述每個(gè) 作業(yè)的至少一個(gè)屬性為每個(gè)作業(yè)分配優(yōu)先級(jí);以及根據(jù)每個(gè)作業(yè)的優(yōu)先級(jí)管理每個(gè)作業(yè)所 涉及的TLB條目。根據(jù)本發(fā)明第二方面,提供一種管理TLB的裝置,所述TLB由多個(gè)作業(yè)共享使用, 所述裝置包括屬性獲取單元,被配置為獲得所述多個(gè)作業(yè)中的每個(gè)作業(yè)的至少一個(gè)屬性; 優(yōu)先級(jí)分配單元,被配置為根據(jù)所述每個(gè)作業(yè)的至少一個(gè)屬性為每個(gè)作業(yè)分配優(yōu)先級(jí);以 及管理單元,被配置為根據(jù)每個(gè)作業(yè)的優(yōu)先級(jí)管理每個(gè)作業(yè)所涉及的TLB條目。利用本發(fā)明提供的方法和裝置,能夠根據(jù)各種作業(yè)的屬性來決定哪些作業(yè)涉及的 TLB條目應(yīng)該保留,哪些作業(yè)涉及的條目可以清空,從而對(duì)多個(gè)協(xié)處理器共享的TLB進(jìn)行有 效管理,提高共享TLB的可用性。


      圖1示出一個(gè)異構(gòu)多核系統(tǒng)的結(jié)構(gòu)示意圖;圖2示出多個(gè)協(xié)處理器共享一個(gè)TLB的示意圖;圖3示出根據(jù)本發(fā)明一個(gè)實(shí)施例管理共享的TLB的方法流程圖;圖4示出根據(jù)本發(fā)明一個(gè)實(shí)施例的屬性列表的示意圖;圖5是示出根據(jù)本發(fā)明一個(gè)具體實(shí)施例的優(yōu)先級(jí)分配方案的示意圖表;圖6示出根據(jù)本發(fā)明一個(gè)實(shí)施例的管理TLB條目的流程圖;圖7示出根據(jù)本發(fā)明一個(gè)實(shí)施例的TLB條目分配和管理狀況;以及圖8示出根據(jù)本發(fā)明一個(gè)實(shí)施例的管理TLB的裝置的結(jié)構(gòu)示意圖。
      具體實(shí)施例方式下面結(jié)合

      本發(fā)明的具體實(shí)施方式
      。圖3示出根據(jù)本發(fā)明一個(gè)實(shí)施例管理共享的TLB的方法流程圖。該實(shí)施例的方法 設(shè)計(jì)用于圖2所示的情形,也就是,多個(gè)協(xié)處理器共享地使用一個(gè)TLB執(zhí)行多個(gè)作業(yè)。為 了對(duì)這樣的TLB進(jìn)行管理,如圖所示,該方法包括以下的步驟在步驟302,獲得每個(gè)作業(yè)的 至少一個(gè)屬性;在步驟304,根據(jù)每個(gè)作業(yè)的所述屬性為每個(gè)作業(yè)分配優(yōu)先級(jí);以及在步驟 306,根據(jù)每個(gè)作業(yè)的優(yōu)先級(jí)管理每個(gè)作業(yè)所涉及的TLB條目。具體地,在步驟302,獲得共享TLB的每個(gè)作業(yè)的屬性,該屬性可以與每個(gè)作業(yè)占 用TLB條目的方式、時(shí)間、狀態(tài)等因素相關(guān)。例如,在一個(gè)具體實(shí)施例中,上述作業(yè)的屬性包括作業(yè)的執(zhí)行狀態(tài),也就是,執(zhí)行完畢、正在執(zhí)行或是掛起(suspend)。其中,掛起是指一個(gè) 作業(yè)因?yàn)門LB匹配不命中(TLB miss)、緩存溢出等原因造成的異常中斷。此時(shí),這個(gè)作業(yè)還 沒有執(zhí)行完畢,只是暫時(shí)中斷執(zhí)行;一旦恢復(fù)或者獲取到需要的頁表項(xiàng),這項(xiàng)作業(yè)就會(huì)繼續(xù) 執(zhí)行。對(duì)于這樣的作業(yè)屬性,在步驟302中獲取該屬性的方式可以是動(dòng)態(tài)運(yùn)行庫(runtime library)動(dòng)態(tài)監(jiān)視并設(shè)置獲得各個(gè)作業(yè)的執(zhí)行狀態(tài)。
      在另一個(gè)具體實(shí)施例中,上述作業(yè)的屬性還包括作業(yè)的執(zhí)行方式。該執(zhí)行方式主 要是該作業(yè)執(zhí)行期間占用和訪問TLB條目的方式,包括固定模式和動(dòng)態(tài)變化模式。具體地, 一部分作業(yè)在進(jìn)行數(shù)據(jù)處理時(shí),會(huì)固定地使用同樣的一部分虛擬地址,從而訪問同一部分 TLB條目,這樣的作業(yè)就可以被稱為執(zhí)行方式為固定模式的作業(yè)。在網(wǎng)絡(luò)處理所涉及的作業(yè) 中,大部分作業(yè)都是使用固定的TLB條目進(jìn)行數(shù)據(jù)處理的,因此,都可以被認(rèn)為是以固定模 式執(zhí)行的作業(yè)。另一部分作業(yè)在進(jìn)行數(shù)據(jù)處理時(shí),動(dòng)態(tài)地使用不同的虛擬地址,變動(dòng)地訪問 不同的TLB條目,這樣的作業(yè)可以被稱為執(zhí)行方式為動(dòng)態(tài)變化模式的作業(yè)。為了獲取作業(yè)的執(zhí)行方式,在一種實(shí)施例中,為用戶,這里主要是作業(yè)的制定者, 例如程序員,提供一個(gè)應(yīng)用程序接口,使得程序員能夠在作業(yè)描述,例如程序中定義作業(yè)的 執(zhí)行方式。在這種情況下,可以通過讀取用戶的定義而獲得作業(yè)的執(zhí)行方式。在另一種實(shí) 施例中,可以獲取一個(gè)作業(yè)在一段時(shí)間內(nèi)執(zhí)行的次數(shù)m,以及在這m次執(zhí)行中初始化TLB的 次數(shù)η。如上所述,在主核心指示協(xié)處理器執(zhí)行一項(xiàng)作業(yè)時(shí),需要將這項(xiàng)作業(yè)中所涉及的數(shù) 據(jù)的地址對(duì)應(yīng)關(guān)系寫入?yún)f(xié)處理器所使用的TLB中,也就是要執(zhí)行一次TLB的初始化。但是, 如果每次執(zhí)行這項(xiàng)作業(yè)所需要的地址對(duì)應(yīng)關(guān)系,或者TLB是相同的,那么下次執(zhí)行這項(xiàng)作 業(yè)時(shí),就不必再次初始化TLB。也就是說,對(duì)于在多次執(zhí)行中傾向于使用同樣的TLB條目的 作業(yè),也就是傾向于以固定模式訪問TLB的作業(yè),初始化TLB的“頻率”相對(duì)較低。因此,在 獲得執(zhí)行次數(shù)m和初始化次數(shù)η的基礎(chǔ)上,可以很容易地獲得該作業(yè)在m次執(zhí)行中初始化 TLB的“頻率”n/m。將該頻率與預(yù)先設(shè)定的閾值或參考值進(jìn)行比較,就可以分析出該作業(yè)執(zhí) 行的方式??梢岳斫?,還可以將該分析方法與允許用戶定義的方法結(jié)合起來,由此獲得作業(yè) 的執(zhí)行方式。在其他實(shí)施例中,上述作業(yè)的屬性還包括作業(yè)最后一次執(zhí)行的時(shí)間、作業(yè)執(zhí)行的 頻率等。其中,作業(yè)的執(zhí)行頻率可以通過監(jiān)視在過去的一段時(shí)間,例如10分鐘或半個(gè)小時(shí) 之內(nèi)該作業(yè)執(zhí)行的次數(shù)而獲得。在一個(gè)實(shí)施例中,各個(gè)作業(yè)的屬性被記錄在一個(gè)屬性列表中。在步驟302中,從該 列表選擇性地讀取需要的屬性。圖4示出根據(jù)本發(fā)明一個(gè)實(shí)施例的屬性列表的示意圖。如 圖4所示,該屬性列表記錄了每個(gè)作業(yè)所對(duì)應(yīng)的執(zhí)行狀態(tài)、執(zhí)行方式、使用的TLB條目以及 最后執(zhí)行時(shí)間。利用這樣的屬性列表,可以簡單清楚地獲得每個(gè)作業(yè)的屬性信息,例如,作 業(yè)1目前已經(jīng)執(zhí)行完畢,執(zhí)行方式為固定模式,涉及的TLB條目為條目3-6,最后一次執(zhí)行的 時(shí)間為時(shí)刻1 ;作業(yè)2被掛起,執(zhí)行方式為動(dòng)態(tài)可變方式,涉及的條目為8-10,等等??梢岳斫?,在以上列出的屬性中,在步驟302中可以選擇性地獲取以上這些屬性 的一部分或者全部。并且,本領(lǐng)域技術(shù)人員能夠想到,可以獲取作業(yè)的更多屬性用來滿足后 續(xù)分析的需要,例如作業(yè)執(zhí)行一次的平均需要時(shí)間、作業(yè)之間的相關(guān)性等等。在獲得了作業(yè)屬性的基礎(chǔ)上,本實(shí)施例的方法前進(jìn)至步驟304,根據(jù)每個(gè)作業(yè)的屬 性為每個(gè)作業(yè)分配優(yōu)先級(jí)。
      在一種實(shí)施方式中,為執(zhí)行方式為固定模式的作業(yè)分配比動(dòng)態(tài)變化模式的作業(yè)更 高的優(yōu)先級(jí)。在另一實(shí)施方式中,為執(zhí)行狀態(tài)為掛起的作業(yè)分配較高的優(yōu)先級(jí)。還可以將 上述兩種實(shí)施方式中的優(yōu)先級(jí)分配方案相結(jié)合。圖5是示出根據(jù)本發(fā)明一個(gè)具體實(shí)施例的優(yōu)先級(jí)分配方案的示意圖表。該圖表的 第一列記錄共享同一個(gè)TLB的多個(gè)作業(yè)的作業(yè)ID,第二列記錄各個(gè)作業(yè)的執(zhí)行狀態(tài),第三 列記錄各個(gè)作業(yè)的執(zhí)行方式,第四列記錄根據(jù)第三列和第四列的信息為每個(gè)作業(yè)分配的優(yōu) 先級(jí)。在該實(shí)施例中,首先判斷作業(yè)的執(zhí)行狀態(tài),為正在執(zhí)行的作業(yè)分配最高的優(yōu)先級(jí),而 不論其執(zhí)行方式。因此,處于執(zhí)行狀態(tài)的作業(yè)1和作業(yè)2都具有第一優(yōu)先級(jí)。然后,為掛起 的作業(yè)分配較高的優(yōu)先級(jí)。對(duì)于均處在掛起狀態(tài)的作業(yè)3和作業(yè)4來說,為了區(qū)分其優(yōu)先 級(jí)的不同,進(jìn)一步判斷其執(zhí)行方式,為執(zhí)行方式為固定模式的作業(yè)分配比動(dòng)態(tài)可變模式的 作業(yè)更高的優(yōu)先級(jí)。因此,具有固定模式的作業(yè)3的優(yōu)先級(jí)要高于動(dòng)態(tài)可變模式的作業(yè)4。 從而,作業(yè)3處于第二優(yōu)先級(jí),作業(yè)4處于第三優(yōu)先級(jí)。最后,已經(jīng)執(zhí)行完畢的作業(yè)具有較 低的優(yōu)先級(jí)。同樣地,為了進(jìn)一步區(qū)分多個(gè)執(zhí)行完畢的作業(yè)的優(yōu)先級(jí),也可以根據(jù)這些作業(yè) 的執(zhí)行方式進(jìn)行進(jìn)一步分配。因此,具有固定模式的作業(yè)5處于第四優(yōu)先級(jí),具有動(dòng)態(tài)可變 模式的作業(yè)6處于最后的第五優(yōu)先級(jí)。在圖5所示的優(yōu)先級(jí)分配中,按照?qǐng)?zhí)行狀態(tài)和執(zhí)行方式為每個(gè)作業(yè)分配了一定的 優(yōu)先級(jí)。然而,存在這樣一種可能,即多個(gè)作業(yè)處于相同的優(yōu)先級(jí),例如,存在多個(gè)已經(jīng)執(zhí)行 完畢的作業(yè),這些作業(yè)均以固定模式共享使用一個(gè)TLB。而另一方面,為了后續(xù)管理TLB條 目的需要,有可能需要進(jìn)一步對(duì)這樣的作業(yè)進(jìn)行區(qū)分,使得每個(gè)作業(yè)具有不同的優(yōu)先級(jí),尤 其是針對(duì)處于較低優(yōu)先級(jí)的作業(yè)。基于這樣的考慮,可以在圖5的優(yōu)先級(jí)分配的基礎(chǔ)上,考 慮作業(yè)的其他屬性,對(duì)處于同一優(yōu)先級(jí)的作業(yè)進(jìn)行進(jìn)一步區(qū)分。在一個(gè)實(shí)施例中,對(duì)于具有相同執(zhí)行狀態(tài)和執(zhí)行方式的作業(yè),進(jìn)一步考慮其最后 一次執(zhí)行時(shí)間。具體地,在一個(gè)例子中,為最后一次執(zhí)行時(shí)間較晚的作業(yè)分配較高的優(yōu)先 級(jí)。由于不同的作業(yè)最后一次執(zhí)行時(shí)間不同,因此,通過這種方式,不同的作業(yè)得到優(yōu)先級(jí) 上的區(qū)分。在另一個(gè)實(shí)施例中,對(duì)于其他屬性相同的作業(yè),進(jìn)一步考慮其執(zhí)行頻率。例如,在 一個(gè)例子中,job A和job B具有相同執(zhí)行方式,但是在最近的30分鐘之內(nèi),job A執(zhí)行了 10000次,job B執(zhí)行了 10次。那么可以認(rèn)為,job A潛在的再執(zhí)行可能性要高于job B,因 此,為job A分配更高的優(yōu)先級(jí)。也就是說,為執(zhí)行頻率較高的作業(yè)分配較高的優(yōu)先級(jí)。如前所述,除了用戶的定義之外,還可以通過分析作業(yè)執(zhí)行中初始化TLB的頻率 來確定作業(yè)的執(zhí)行方式。因此,即使兩個(gè)作業(yè)都被設(shè)定為固定模式,或者通過上述分析確定 為固定模式,其初始化TLB的頻率仍然可能是不同的,也就是說,傾向于固定模式的程度可 能不同。該頻率或者程度也可以作為一個(gè)屬性,用于對(duì)作業(yè)的優(yōu)先級(jí)進(jìn)行進(jìn)一步區(qū)分。具 體地,可以為初始化TLB頻率較低的作業(yè)分配較高的優(yōu)先級(jí)??梢岳斫猓绢I(lǐng)域技術(shù)人員能夠根據(jù)需要對(duì)上述優(yōu)先級(jí)分配方式進(jìn)行選擇,結(jié)合 以及擴(kuò)展,在以上描述的具體實(shí)施例的基礎(chǔ)上采用適當(dāng)?shù)姆绞竭M(jìn)行優(yōu)先級(jí)的分配。典型地, 為作業(yè)分 配的優(yōu)先級(jí)在某一方面反映該作業(yè)再次執(zhí)行的潛在可能性。在為各個(gè)作業(yè)分配了優(yōu)先級(jí)的基礎(chǔ)上,本實(shí)施例的方法前進(jìn)至步驟306,根據(jù)每個(gè) 作業(yè)的優(yōu)先級(jí)管理每個(gè)作業(yè)所涉及的TLB條目。具體地,保留具有較高優(yōu)先級(jí)的作業(yè)所涉及的TLB條目,釋放具有較低優(yōu)先級(jí)的作業(yè)所涉及的TLB條目。 圖6示出根據(jù)本發(fā)明一個(gè)實(shí)施例的管理TLB條目的流程圖。如圖所示,首先在步 驟602,一項(xiàng)新作業(yè)請(qǐng)求使用TLB條目。接著在步驟604,判斷TLB中可用的條目是否足夠 該新作業(yè)使用。如果可用條目是足夠的,那么前進(jìn)至步驟606,為新作業(yè)分配其請(qǐng)求的條目。 如果當(dāng)前可用條目不能滿足新作業(yè)的需要,那么前進(jìn)至步驟608,釋放優(yōu)先級(jí)最低的作業(yè)所 使用的TLB條目。這樣,該優(yōu)先級(jí)最低的作業(yè)所占用的條目現(xiàn)在就變得可用了。于是,回到 步驟604,再次進(jìn)行判斷。這樣,依次釋放優(yōu)先級(jí)最低的作業(yè)所占用的條目,直到足夠新作業(yè) 使用為止。下面結(jié)合圖7的具體實(shí)施例說明上述管理過程。圖7示出根據(jù)本發(fā)明一個(gè)實(shí)施例 的TLB條目分配和管理狀況。如圖7 (a)所示,該實(shí)施例中的TLB包括15個(gè)條目,其中條目 1-3已經(jīng)分配給作業(yè)1,且該作業(yè)1具有第一優(yōu)先級(jí);條目6-9分配給了作業(yè)2,該作業(yè)2具 有第三優(yōu)先級(jí);條目10-12分配給了具有第四優(yōu)先級(jí)的作業(yè)3,條目13-15分配給了具有第 二優(yōu)先級(jí)的作業(yè)4。作業(yè)1-4可以是來自不同協(xié)處理器的作業(yè)。假定現(xiàn)在主核心指示某一 協(xié)處理器執(zhí)行一個(gè)新的作業(yè),作業(yè)n,該作業(yè)η需要使用4個(gè)TLB條目??梢钥吹剑捎诙鄠€(gè) 協(xié)處理器的多個(gè)作業(yè)的共享使用,TLB目前只有條目4-5是可用的,其他條目已經(jīng)分配給了 不同的作業(yè)。然而這兩個(gè)條目并不能完全滿足作業(yè)η對(duì)條目的需要。根據(jù)前述的優(yōu)先級(jí)分 配方案可以看到,潛在具有較低的再次執(zhí)行可能性的作業(yè)被分配了較低的優(yōu)先級(jí)。因此,在 新的作業(yè)請(qǐng)求使用TLB條目的情況下,可以優(yōu)先把具有較低優(yōu)先級(jí)的作業(yè)所占用的TLB條 目釋放出來,以分配給新的作業(yè)。在圖7(a)的TLB占用狀況中,占用條目10-12的作業(yè)3 具有相對(duì)最低的優(yōu)先級(jí),即第四優(yōu)先級(jí)。因此,可以將作業(yè)3涉及的條目釋放出來,供新的 作業(yè)η使用。這樣,作業(yè)η可以使用原有可用的條目4-5以及釋放的條目10-12來保存所 需要的數(shù)據(jù)的地址映射關(guān)系,如圖7(b)所示。同時(shí),作業(yè)η的屬性也被分析和記錄,并基于 該屬性被分配優(yōu)先級(jí),以作為接下來釋放TLB條目順序的參考。在另一個(gè)具體實(shí)施例中,釋放一個(gè)最低優(yōu)先級(jí)的作業(yè)所占用的條目并不能滿足新 的作業(yè)的需要。這時(shí),就按照優(yōu)先級(jí)從低到高的順序依次釋放多個(gè)較低優(yōu)先級(jí)的作業(yè),直到 釋放的條目足夠新的作業(yè)的使用需要。在一個(gè)實(shí)施例中,在新的作業(yè)的請(qǐng)求下,TLB中只有第一優(yōu)先級(jí)的作業(yè),即正在執(zhí) 行的作業(yè)所使用的條目沒有釋放。這時(shí),為了避免正在執(zhí)行的作業(yè)出現(xiàn)執(zhí)行錯(cuò)誤,可以要求 該新的作業(yè)進(jìn)行等待,直到某些作業(yè)因?yàn)閳?zhí)行完畢、掛起等原因優(yōu)先級(jí)降低。也就是說,在 該實(shí)施例中,在按照優(yōu)先級(jí)順序釋放TLB條目的基礎(chǔ)上,始終保留第一優(yōu)先級(jí)的作業(yè)所使 用的條目。如上所述,參考作業(yè)的屬性所設(shè)定的優(yōu)先級(jí)能夠在某一方面反映該作業(yè)再次執(zhí)行 的可能性。優(yōu)先級(jí)越高,近期之內(nèi)再次執(zhí)行的可能性越高。因此,按照優(yōu)先級(jí)的從低到高的 順序釋放TLB條目能夠使得該共享的TLB得到有效的利用。本領(lǐng)域技術(shù)人員能夠在上述具 體描述的實(shí)施例的基礎(chǔ)上,根據(jù)具體的作業(yè)和TLB條目狀態(tài),分配優(yōu)先級(jí),并根據(jù)優(yōu)先級(jí)對(duì) TLB條目進(jìn)行管理?;谕话l(fā)明構(gòu)思,本發(fā)明還提供管理共享的TLB的裝置。圖8示出根據(jù)本發(fā)明 一個(gè)實(shí)施例的管理TLB的裝置的結(jié)構(gòu)示意圖。該裝置總體由數(shù)字800標(biāo)識(shí),用于管理由多 個(gè)協(xié)處理器共享的TLB,所述多個(gè)協(xié)處理器共享地使用該TLB來執(zhí)行多個(gè)作業(yè)。如圖8所示,該裝置800包括屬性獲取單元802,被配置為獲得每個(gè)作業(yè)的至少一個(gè)屬性;優(yōu)先級(jí)分配單元804,被配置為根據(jù)每個(gè)作業(yè)的屬性為每個(gè)作業(yè)分配優(yōu)先級(jí);以及管理單元806,被 配置為根據(jù)每個(gè)作業(yè)的優(yōu)先級(jí)管理每個(gè)作業(yè)所涉及的TLB條目。具體地,屬性獲取單元802用于獲得共享TLB的每個(gè)作業(yè)的屬性,該屬性可以與每 個(gè)作業(yè)占用TLB條目的方式、時(shí)間、狀態(tài)等因素相關(guān)。例如,在一個(gè)具體實(shí)施例中,上述作業(yè) 的屬性包括作業(yè)的執(zhí)行狀態(tài),也就是,執(zhí)行完畢、正在執(zhí)行或是掛起。對(duì)于這樣的作業(yè)屬性, 屬性獲取單元802可以監(jiān)視運(yùn)行時(shí)runtime下的庫,從而獲得各個(gè)作業(yè)的執(zhí)行狀態(tài)。在另一個(gè)具體實(shí)施例中,上述作業(yè)的屬性還包括作業(yè)的執(zhí)行方式。該執(zhí)行方式主 要是該作業(yè)執(zhí)行期間占用和訪問TLB條目的方式,包括固定模式和動(dòng)態(tài)變化模式。為了獲 取作業(yè)的執(zhí)行方式,在一種實(shí)施例中,屬性獲取單元802包括一個(gè)應(yīng)用程序接口,通過該接 口,用戶,例如程序員能夠在作業(yè)描述,例如程序中定義作業(yè)的執(zhí)行方式。在這種情況下,屬 性獲取單元802通過讀取用戶的定義而獲得作業(yè)的執(zhí)行方式。在另一種實(shí)施例中,屬性獲 取單元802可以獲取一個(gè)作業(yè)在一段時(shí)間內(nèi)執(zhí)行的次數(shù)m,以及在這m次執(zhí)行中初始化TLB 的次數(shù)η。在此基礎(chǔ)上,可以很容易地獲得該作業(yè)在m次執(zhí)行中初始化TLB的“頻率” n/m。 通過將該頻率與預(yù)先設(shè)定的閾值或參考值進(jìn)行比較,屬性獲取單元802就可以分析出該作 業(yè)執(zhí)行的方式??梢岳斫?,屬性獲取單元802還可以將該分析方法與通過接口允許用戶定 義的方法結(jié)合起來,由此獲得作業(yè)的執(zhí)行方式。在其他實(shí)施例中,上述作業(yè)的屬性還包括作業(yè)最后一次執(zhí)行的時(shí)間、作業(yè)執(zhí)行的
      頻率等。在一個(gè)實(shí)施例中,屬性獲取單元802將各個(gè)作業(yè)的屬性記錄在一個(gè)屬性列表中。 該列表可以如圖4所示??梢岳斫猓谝陨狭谐龅膶傩灾?,屬性獲取單元802可以選擇性地 獲取以上這些屬性的一部分或者全部。在獲得了作業(yè)屬性的基礎(chǔ)上,優(yōu)先級(jí)分配單元804根據(jù)每個(gè)作業(yè)的屬性為每個(gè)作 業(yè)分配優(yōu)先級(jí)。在一種實(shí)施方式中,優(yōu)先級(jí)分配單元804為執(zhí)行方式為固定模式的作業(yè)分配比動(dòng) 態(tài)變化模式的作業(yè)更高的優(yōu)先級(jí)。在另一實(shí)施方式中,該單元804為執(zhí)行狀態(tài)為掛起的作 業(yè)分配較高的優(yōu)先級(jí)。還可以將上述兩種實(shí)施方式中的優(yōu)先級(jí)分配方案相結(jié)合。對(duì)于處于同樣的執(zhí)行狀態(tài)并具有同樣的執(zhí)行方式的多個(gè)作業(yè),優(yōu)先級(jí)分配單元 804可以參照其他屬性對(duì)其進(jìn)行進(jìn)一步區(qū)分。在一個(gè)實(shí)施例中,優(yōu)先級(jí)分配單元804進(jìn)一 步考慮作業(yè)的最后一次執(zhí)行時(shí)間。具體地,在一個(gè)例子中,為最后一次執(zhí)行時(shí)間較晚的作業(yè) 分配較高的優(yōu)先級(jí)。由于不同的作業(yè)最后一次執(zhí)行時(shí)間不同,因此,通過這種方式,不同的 作業(yè)得到優(yōu)先級(jí)上的區(qū)分。在另一個(gè)實(shí)施例中,對(duì)于其他屬性相同的作業(yè),優(yōu)先級(jí)分配單元 804進(jìn)一步考慮其執(zhí)行頻率。具體地,認(rèn)為執(zhí)行頻率較高的作業(yè)具有潛在更高的再次執(zhí)行可 能性,因此,為執(zhí)行頻率較高的作業(yè)分配更高的優(yōu)先級(jí)。優(yōu)先級(jí)分配單元804還可以進(jìn)一步 地利用其他屬性,例如上述的TLB初始化頻率對(duì)作業(yè)的優(yōu)先級(jí)進(jìn)行分配和區(qū)分。優(yōu)先級(jí)分配單元804將各個(gè)作業(yè)的優(yōu)先級(jí)信息傳遞給管理單元806,使得管理單 元806能夠根據(jù)該優(yōu)先級(jí)信息管理每個(gè)作業(yè)所涉及的TLB條目。具體地,管理單元806保
      留具有較高優(yōu)先級(jí)的作業(yè)所涉及的TLB條目,釋放具有較低優(yōu)先級(jí)的作業(yè)所涉及的TLB條目。
      在一個(gè)實(shí)施例中,當(dāng)一項(xiàng)新的作業(yè)請(qǐng)求使用TLB條目時(shí),管理單元806首先核查共 享的TLB,確定是否存在足夠的可用的TLB條目。如果已有足夠的TLB條目可用,就將相應(yīng) 數(shù)目的可用條目分配給該新的作業(yè)。如果TLB中可用的條目不能滿足新的作業(yè)的需要,那 么管理單元806就將優(yōu)先級(jí)最低的作業(yè)所使用的條目釋放出來,使之成為可用條目,再次 判斷目前可用條目是否滿足需要。如果仍然不能滿足需要,管理單元806就按照優(yōu)先級(jí)從 低到高的順序依次釋放較低優(yōu)先級(jí)的作業(yè)所涉及的條目,直到滿足要求為止。在一個(gè)實(shí)施 例中,在新的作業(yè)的請(qǐng)求下,TLB中只有第一優(yōu)先級(jí)的作業(yè),即正在執(zhí)行的作業(yè)所使用的條 目沒有釋放。這時(shí),為了避免正在執(zhí)行的作業(yè)出現(xiàn)執(zhí)行錯(cuò)誤,管理單元806可以要求該新的 作業(yè)進(jìn)行等待,直到某些作業(yè)的優(yōu)先級(jí)降低。也就是說,在該實(shí)施例中,管理單元806在按 照優(yōu)先級(jí)順序釋放TLB條目的基礎(chǔ)上,始終保留第一優(yōu)先級(jí)的作業(yè)所使用的條目??梢岳斫?,圖8所示的管理裝置可以用于執(zhí)行圖3所示的管理共享TLB的方法。利 用上述的方法和裝置,能夠使得共享的TLB中的條目得到有效的管理和高效的使用。本領(lǐng)域技術(shù)人員可以理解,上述的管理方法及其管理裝置可以使用計(jì)算機(jī)可執(zhí)行指令和/或包含在處理器控制代碼中來實(shí)現(xiàn),例如在諸如磁盤、⑶或DVD-ROM的載體介質(zhì)、 諸如只讀存儲(chǔ)器(固件)的可編程的存儲(chǔ)器或者諸如光學(xué)或電子信號(hào)載體的數(shù)據(jù)載體上提 供了這樣的代碼。本實(shí)施例的管理裝置及其單元可以由諸如超大規(guī)模集成電路或門陣列、 諸如邏輯芯片、晶體管等的半導(dǎo)體、或者諸如現(xiàn)場可編程門陣列、可編程邏輯設(shè)備等的可編 程硬件設(shè)備的硬件電路實(shí)現(xiàn),也可以用由各種類型的處理器執(zhí)行的軟件實(shí)現(xiàn),也可以由上 述硬件電路和軟件的結(jié)合實(shí)現(xiàn)。雖然以上結(jié)合具體實(shí)施例,對(duì)本發(fā)明的管理共享的TLB的方法以及裝置進(jìn)行了詳 細(xì)描述,但本發(fā)明并不限于此。本領(lǐng)域普通技術(shù)人員能夠在說明書教導(dǎo)之下對(duì)本發(fā)明進(jìn)行 多種變換、替換和修改而不偏離本發(fā)明的精神和范圍,例如對(duì)屬性的獲取、優(yōu)先級(jí)分配等進(jìn) 行擴(kuò)展或變換,使其適用于其他情況。應(yīng)該理解,所有這樣的變化、替換、修改仍然落入本發(fā) 明的保護(hù)范圍之內(nèi)。本發(fā)明的保護(hù)范圍由所附權(quán)利要求來限定。
      權(quán)利要求
      一種管理旁路轉(zhuǎn)換緩沖器TLB的方法,所述TLB由多個(gè)作業(yè)共享使用,所述方法包括獲得所述多個(gè)作業(yè)中的每個(gè)作業(yè)的至少一個(gè)屬性;根據(jù)所述每個(gè)作業(yè)的至少一個(gè)屬性為每個(gè)作業(yè)分配優(yōu)先級(jí);以及根據(jù)每個(gè)作業(yè)的優(yōu)先級(jí)管理每個(gè)作業(yè)所涉及的TLB條目。
      2.如權(quán)利要求1的方法,其中所述至少一個(gè)屬性包括以下屬性中的至少一個(gè)作業(yè)的 執(zhí)行狀態(tài),包括正在執(zhí)行、執(zhí)行完畢和掛起;作業(yè)執(zhí)行方式,包括固定模式和動(dòng)態(tài)變化模式; 作業(yè)的執(zhí)行頻率;作業(yè)最后一次執(zhí)行的時(shí)間。
      3.如權(quán)利要求2的方法,其中獲得所述至少一個(gè)屬性的步驟包括讀取由用戶定義的作 業(yè)執(zhí)行方式。
      4.如權(quán)利要求2的方法,其中獲得所述至少一個(gè)屬性的步驟包括監(jiān)視作業(yè)執(zhí)行期間初 始化所述TLB的頻率,分析得出作業(yè)執(zhí)行方式。
      5.如權(quán)利要求2的方法,其中為每個(gè)作業(yè)分配優(yōu)先級(jí)的步驟包括為執(zhí)行方式為固定 模式的作業(yè)分配比動(dòng)態(tài)變化模式的作業(yè)更高的優(yōu)先級(jí)。
      6.如權(quán)利要求2的方法,其中為每個(gè)作業(yè)分配優(yōu)先級(jí)的步驟包括為執(zhí)行狀態(tài)為掛起 的作業(yè)分配比執(zhí)行完畢的作業(yè)更高的優(yōu)先級(jí)。
      7.如權(quán)利要求5或6的方法,其中為每個(gè)作業(yè)分配優(yōu)先級(jí)的步驟包括為執(zhí)行頻率較 高的作業(yè)分配較高的優(yōu)先級(jí)。
      8.如權(quán)利要求5或6的方法,其中為每個(gè)作業(yè)分配優(yōu)先級(jí)的步驟包括為作業(yè)最后一 次執(zhí)行時(shí)間較晚的作業(yè)分配較高的優(yōu)先級(jí)。
      9.如權(quán)利要求1的方法,其中根據(jù)每個(gè)作業(yè)的優(yōu)先級(jí)管理TLB條目的步驟包括釋放 具有較低優(yōu)先級(jí)的作業(yè)所涉及的TLB條目。
      10.一種管理旁路轉(zhuǎn)換緩沖器TLB的裝置,所述TLB由多個(gè)作業(yè)共享使用,所述裝置包括屬性獲取單元,被配置為獲得所述多個(gè)作業(yè)中的每個(gè)作業(yè)的至少一個(gè)屬性; 優(yōu)先級(jí)分配單元,被配置為根據(jù)所述每個(gè)作業(yè)的至少一個(gè)屬性為每個(gè)作業(yè)分配優(yōu)先 級(jí);以及管理單元,被配置為根據(jù)每個(gè)作業(yè)的優(yōu)先級(jí)管理每個(gè)作業(yè)所涉及的TLB條目。
      11.如權(quán)利要求10的裝置,其中所述至少一個(gè)屬性包括以下屬性中的至少一個(gè)作業(yè) 的執(zhí)行狀態(tài),包括正在執(zhí)行、執(zhí)行完畢和掛起;作業(yè)執(zhí)行方式,包括固定模式和動(dòng)態(tài)變化模 式;作業(yè)的執(zhí)行頻率;作業(yè)最后一次執(zhí)行的時(shí)間。
      12.如權(quán)利要求11的裝置,其中所述屬性獲取單元進(jìn)一步被配置為讀取由用戶定義的 作業(yè)執(zhí)行方式。
      13.如權(quán)利要求11的裝置,其中所述屬性獲取單元進(jìn)一步被配置為監(jiān)視所述作業(yè)執(zhí)行 期間初始化所述TLB的頻率,分析得出作業(yè)執(zhí)行方式。
      14.如權(quán)利要求11的裝置,其中所述優(yōu)先級(jí)分配單元進(jìn)一步被配置為為執(zhí)行方式為 動(dòng)態(tài)變化模式的作業(yè)分配比固定模式的作業(yè)更高的優(yōu)先級(jí)。
      15.如權(quán)利要求11的裝置,其中所述優(yōu)先級(jí)分配單元進(jìn)一步被配置為為執(zhí)行狀態(tài)為 掛起的作業(yè)分配比執(zhí)行完畢的作業(yè)更高的優(yōu)先級(jí)。
      16.如權(quán)利要求14或15的裝置,其中所述優(yōu)先級(jí)分配單元進(jìn)一步被配置為為執(zhí)行頻 率較高的作業(yè)分配較高的優(yōu)先級(jí)。
      17.如權(quán)利要求14或15的裝置,其中所述優(yōu)先級(jí)分配單元進(jìn)一步被配置為為作業(yè)最 后一次執(zhí)行時(shí)間較晚的作業(yè)分配較高的優(yōu)先級(jí)。
      18.如權(quán)利要求10的裝置,其中管理單元被配置為釋放具有較低優(yōu)先級(jí)的作業(yè)所涉 及的TLB條目。
      全文摘要
      本發(fā)明涉及管理TLB的方法和裝置。具體地,提供一種管理TLB的方法,所述TLB由多個(gè)作業(yè)共享使用,所述方法包括獲得所述多個(gè)作業(yè)中的每個(gè)作業(yè)的至少一個(gè)屬性;根據(jù)所述每個(gè)作業(yè)的至少一個(gè)屬性為每個(gè)作業(yè)分配優(yōu)先級(jí);以及根據(jù)每個(gè)作業(yè)的優(yōu)先級(jí)管理每個(gè)作業(yè)所涉及的TLB條目。本發(fā)明還提供了與上述方法相對(duì)應(yīng)的裝置。通過本發(fā)明的方法和裝置,能夠使得共享的TLB得到高效的利用。
      文檔編號(hào)G06F12/10GK101847128SQ200910127588
      公開日2010年9月29日 申請(qǐng)日期2009年3月23日 優(yōu)先權(quán)日2009年3月23日
      發(fā)明者侯銳, 劉衛(wèi), 常曉濤, 王鯤 申請(qǐng)人:國際商業(yè)機(jī)器公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1