用于在支持共享虛擬存儲器的異構計算系統(tǒng)中的tlb關閉的方法和裝置制造方法
【專利摘要】公開了用于在多核系統(tǒng)中的共享虛擬存儲器的異構設備的有效的TLB(轉換后備緩沖器)關閉的方法和裝置。用于有效的TLB關閉的裝置的實施例可以包括:TLB,用于存儲虛擬地址轉換條目;以及與所述TLB耦合的存儲器管理單元,用于保持與所述虛擬地址轉換條目相對應的PASID(進程地址空間標識符)狀態(tài)條目。PASID狀態(tài)條目可以包括活躍參考狀態(tài)和懶惰無效狀態(tài)。該存儲器管理單元可以響應于接收來自多核系統(tǒng)中的設備的PASID狀態(tài)更新請求而執(zhí)行PASID狀態(tài)條目的原子修改,并讀取PASID狀態(tài)條目的懶惰無效狀態(tài)。該存儲器管理單元可以在響應各自的懶惰無效狀態(tài)的激活之前將PASID狀態(tài)更新響應發(fā)送到該設備以同步TLB條目。
【專利說明】用于在支持共享虛擬存儲器的異構計算系統(tǒng)中的TLB關閉的方法和裝置
【技術領域】
[0001]本公開總體上涉及計算和/或通信領域。特別地,本公開涉及用于在多核系統(tǒng)中共享虛擬存儲器的異構設備的有效的TLB (轉換后備緩沖器)關閉(shoot-down)。
【背景技術】
[0002]現(xiàn)代的處理器通常包括高速緩存,以通過在具有更短的存取延遲的較小的速度更快的存儲器中提供指令和/或數(shù)據(jù)的副本,以改善存取外部存儲器的性能。此外,通過使用設備(例如轉換后備緩沖器(TLB))以高速緩存虛擬到物理地址的轉換,例如來自分頁的虛擬存儲系統(tǒng)中的系統(tǒng)頁表的虛擬到物理地址的轉換,這樣的高速緩存可以為快速虛擬到物理地址的轉換提供支持。當TLB將虛擬地址與TLB中存儲的轉換之一相匹配時,我們可以將這樣的事件稱為TLB命中,并且所檢索的物理地址可以被用來更快地訪問高速緩存或主存儲器中的存儲器。當TLB未將虛擬地址與TLB中存儲的轉換之一相匹配時,我們可以將這樣的事件稱為TLB未命中(miss)或頁面未命中,并且轉換通過查找存儲器中的相應頁表而繼續(xù)。
[0003]典型的多核處理器或多核處理系統(tǒng)可以具有各種同構或異構的處理設備——例如,一定數(shù)目的同構處理器核連同一個或多個異構圖形處理器或視頻處理器等。這些同構或異構處理設備可以共享虛擬存儲器地址空間。通常,同構處理器核可以具有高速緩存層次結構和上述的TLB,以高速緩存來自分頁的虛擬存儲器系統(tǒng)中的系統(tǒng)頁表的虛擬到物理地址的轉換。在現(xiàn)代處理器中,同構處理器核還可以包括硬件中的頁未命中處理器(PMH),用于更快地通過系統(tǒng)頁表執(zhí)行頁面行走。當這些同構處理器核中的一個試圖訪問未映射到物理存儲器中任何地址的虛擬存儲器中的頁面時,所述存儲器訪問將會導致頁面錯誤,并且將調用操作系統(tǒng)來“修復”該問題。
[0004]異構處理設備(例如圖形處理器)還可以具有例如TLB的機構,用于執(zhí)行虛擬到物理地址的轉換,但是,通常存在一些軟件,所述一些軟件運行于同構處理器核上,并可能與用于異構處理設備的驅動器通信以建立頁表等,以實現(xiàn)與異構處理設備的對分頁虛擬存儲器系統(tǒng)的一些有限的共享。但是,不像在同構處理器核中,這些機構可能具有有限的能力,例如缺乏處理頁面故障的能力。因此,由于需求決定,與這些異構處理設備共享的頁面可能需要在存儲器中鎖定,從而防止操作系統(tǒng)從磁盤中將它們分頁,以及將它們向外分頁到磁盤。因此,可被支持的應用程序的數(shù)量可能是有限的,或者所需的物理存儲器的量可能大于以其他方式所需的物理存儲器量。此外,運行在同構處理器上以建立頁表等、用于用異構處理設備共享分頁的虛擬存儲器的軟件引起性能開銷,這可能減少使用異構處理設備的有效性。
[0005]當同構處理器核上運行的軟件(例如操作系統(tǒng))更改頁表時,整個系統(tǒng)的各種TLB中高速緩存的相應的轉換必須被無效。這被稱為TLB關閉。一個簡單的方法是將無效消息廣播到該系統(tǒng)中所有的設備,但是這可能會導致不需要的通信擁塞。此外,為異構處理設備建立的頁表和由同構處理器核所使用的頁表可能不相同,并且在異構處理設備中使用的機構用來使它們的TLB條目(entries)無效、并用來獨自恢復新的頁表信息的能力有限。
[0006]為了避免不需要的擁塞,操作系統(tǒng)已經(jīng)使用了懶惰無效方案的形式。由于操作系統(tǒng)運行于同構處理器核上并且有權訪問各種同構處理器核上的活躍的進程、應用程序或線程,它可以在必要時“關閉”或者觸發(fā)TLB條目的無效,換而言之,僅在活躍運行使用該TLB條目的處理的核的TLB中和/或在可能要激活將使用該TLB條目的處理的核的TLB中使TLB條目無效。因此,可避免對TLB關閉的不必要的活動和開銷。但由于操作系統(tǒng)不在異構處理設備上運行,它無法跟蹤哪些進程是活躍的,以及哪些TLB條目可能需要被無效,即使我們假定異構處理設備能夠恢復新的頁表信息和/或生成頁面錯誤。因此,將需要發(fā)送廣播到可能共享進程虛擬地址空間的所有的異構處理設備。
[0007]隨著處理核和其它異構處理設備訪問高速緩存或使用虛擬存儲器的數(shù)量增加,可能完全有理由來預期例如附加存儲器擁塞的問題以及當虛擬存儲器空間由更多的這些設備所共享時的沖突。迄今為止,對于這樣合理預期的問題的潛在解決方案還沒有得到充分的研究。
【專利附圖】
【附圖說明】
[0008]本發(fā)明是通過舉例的方式示出,并不局限于附圖中的圖。
[0009]圖1示出了用于在具有異構設備的多核系統(tǒng)中共享虛擬存儲器的現(xiàn)有技術。
[0010]圖2示出了用于在具有異構設備的多核系統(tǒng)中共享虛擬存儲器的裝置的一個實施例,該裝置支持有效的TLB關閉。
[0011]圖3示出了用于支持有效的TLB關閉以在具有異構設備的多核系統(tǒng)中共享虛擬存儲器的過程的一個實施例的流程圖。
[0012]圖4示出了用于支持有效的TLB關閉以在具有異構設備的多核系統(tǒng)中共享虛擬存儲器的過程的替代實施例的流程圖。
[0013]圖5示出了使用支持有效的TLB關閉的過程和裝置以在具有異構設備的多核系統(tǒng)中共享虛擬存儲器的處理器的一個實施例。
[0014]圖6示出了使用支持有效的TLB關閉的過程和裝置以在具有異構設備的多核系統(tǒng)中共享虛擬存儲器的系統(tǒng)的一個實施例。
【具體實施方式】
[0015]公開了用于在多核系統(tǒng)中共享虛擬存儲器的異構設備的有效TLB(轉換后備緩沖器)關閉的方法和裝置。用于有效的TLB關閉的裝置的實施例可以包括TLB以存儲虛擬地址轉換條目,以及與所述TLB耦合的存儲器管理單元,以保持與所述虛擬地址轉換條目相對應的PASID (進程地址空間標識符)狀態(tài)條目。PASID狀態(tài)條目可以包括活躍參考狀態(tài)和懶惰無效狀態(tài)。該存儲器管理單元可以響應于接收來自多核系統(tǒng)中的設備的PASID狀態(tài)更新請求而執(zhí)行PASID狀態(tài)條目的原子修改,并讀取PASID狀態(tài)條目的懶惰無效狀態(tài)。該存儲器管理單元可以在響應各自的懶惰無效狀態(tài)的激活之前將PASID狀態(tài)更新響應發(fā)送到該設備以同步TLB條目。
[0016]這些和其它實施例可以根據(jù)以下教導實現(xiàn),并且應該明白的是:在以下的教導中可做出各種修改和變化,而不脫離本發(fā)明的更寬的精神和范圍。相應地,說明書和附圖將被認為是示例性的而非限制性的理解,并且僅根據(jù)權利要求及其等同物來衡量本發(fā)明。
[0017]圖1示出了用于在具有異構設備的多核系統(tǒng)中共享虛擬存儲器的現(xiàn)有技術。多核處理器或多核處理系統(tǒng)可以具有各種同構或異構處理設備。例如,圖1的系統(tǒng)具有一些數(shù)量的同構處理器核,其中兩個示為核102和核104,連同一個或多個異構圖形處理器(如GFX106)或視頻處理器(例如說,設備109)。核102和核104可以是處理多個進程的線程的多線程核,用于分別經(jīng)解碼131和解碼151、每個線程隊列133和153、浮點/單指令多數(shù)據(jù)寄存器 FP / SIMD REGS135a 和 FP / SIMD REGS155a、通用寄存器 GEN REGS 135b 和 GENREGS155b、浮點/單指令多數(shù)據(jù)執(zhí)行單元FP / SIMD EXU137a和FP / SIMD EXU157a、以及整數(shù)執(zhí)行單元INT EXU137b和INT EXU157b而執(zhí)行。核102和核104也可以分別經(jīng)總線/互連115和存儲器單元MEM-U125和MEM-U145、通過總線/互連單元B / 1-U120和B /1-U140與物理存儲器105耦合。核102和核104也可以經(jīng)物理存儲器105和總線/互連115以及可選的末級高速緩存(LLC116)與異構處理設備GFX106和設備109耦合。
[0018]這些同構或異構處理設備可以經(jīng)物理存儲器105以及選擇性地通過末級高速緩存(LLC116)共享虛擬存儲器地址空間。通常,同構處理器核可能具有高速緩存層次結構,例如分別是:1-高速緩存123、D-高速緩存124、L2126和1-高速緩存143、D-高速緩存144、L2166 ;以及 TLB,例如分別是 J-TLB12U D-TLB122 和 1-TLB141、D-TLB142,用于在分頁的虛擬存儲器系統(tǒng)中高速緩存來自所述系統(tǒng)(0S154)、頁表(PTBL152)的虛擬到物理地址的轉換。
[0019]同構處理器核102和104也可以包括硬件中的頁面未命中處理程序,PMH130和PMHl50,以通過系統(tǒng)頁表(PTBL152)執(zhí)行頁面行走(page walk)。當這些同構處理器核102和104中的一個嘗試訪問未映射到物理存儲器105中任何地址的虛擬存儲器中的頁面時,該存儲器訪問將導致頁面錯誤,并將調用操作系統(tǒng)(0S154)以“修復”該問題。
[0020]異構處理設備,例如圖形處理器(GFX106)以及設備109還可以具有例如TLB的機構,用于執(zhí)行虛擬到物理地址的轉換,但是,通常存在一些軟件,這些軟件運行于同構處理器核102和104上,并可能與用于異構處理設備GFX106和設備109的驅動器通信以建立頁表等,以實現(xiàn)與異構處理設備GFX106和設備109的對分頁虛擬存儲器系統(tǒng)的一些有限的共享。但是,不像在同構處理器核102和104中,這些機構可能具有有限的能力,例如缺乏處理頁面故障的能力。因此,由于需求決定,與這些異構處理設備共享的頁面可能需要在物理存儲器105中鎖定,從而防止操作系統(tǒng)(0S154)從磁盤中將它們分頁,以及將它們向外分頁到磁盤。因此,可被支持的應用程序的數(shù)量可能是有限的,或者所需的物理存儲器的量可能大于以其他方式所需的物理存儲器量。此外,運行在同構處理器102或104上以建立頁表等、用于與所述異構處理設備GFX106和設備109共享分頁的虛擬存儲器的軟件引起了性能開銷,這可能減少使用異構處理設備GFX106和設備109的有效性。
[0021]當同構處理器核102和104上運行的軟件(例如操作系統(tǒng),0S154)更改頁表PTBL152 時,分別被高速緩存入各種 TLB (例如 I_TLB121、D_TLB122 和 I_TLB141、D_TLB142)以及GFX106和/或設備109中的任何TLB中的對應轉換必須被無效。將無效消息廣播至系統(tǒng)中的所有設備可能會導致不需要的通信擁塞。為了避免不需要的擁塞,操作系統(tǒng)(0S152)可以使用懶惰無效方案。由于操作系統(tǒng)(0S152)運行于同構處理器核102和104上并有權訪問各種同構處理器核上的活躍的進程、應用程序或線程,它可以在必要時“關閉”TLB條目或者觸發(fā)TLB條目的無效,換句話說,僅在活躍運行使用該TLB條目的處理的核的TLB (分別是1-TLB121、D-TLB122和1-TLB141、D-TLB142)中和/或在可能想要激活將使用該TLB條目的處理的核的TLB中使TLB條目無效。因此,可避免對TLB關閉的不必要的活動和開銷,但只用于同構處理器核102和104。由于操作系統(tǒng)(OS152)不在異構處理設備GFX106和設備109上運行,它無法跟蹤哪些進程是活躍的以及哪些TLB條目可能需要被無效,即使我們假定異構處理設備(GFX106和設備109)能夠恢復的新的頁表信息并生成頁面錯誤。因此,將需要向可能共享進程虛擬地址空間的所有的異構處理設備(GFX106和設備109)發(fā)送廣播。
[0022]將理解的是:隨著訪問高速緩存或使用虛擬存儲器的處理核和其它異構處理設備的數(shù)量增加,可能完全有理由來預期例如附加存儲器擁塞的問題,以及當虛擬存儲器空間由更多的這些設備所共享時的沖突或競爭狀況。
[0023]圖2示出了用于在具有異構設備的多核系統(tǒng)中共享虛擬存儲器的裝置201的一個實施例,該裝置支持有效的TLB關閉。裝置201包括10TLB213以存儲虛擬地址轉換條目。存儲器管理單元10MMU212與該10TLB213和PASID狀態(tài)存儲器214耦合,以保持對應于10TLB213的虛擬地址轉換條目的至少一部分的PASID狀態(tài)條目。PASID狀態(tài)條目的實施例可各自包含活躍參考狀態(tài)和懶惰無效狀態(tài),這將在下面更詳細地描述。為了說明,10TLB213和PASID狀態(tài)存儲器214被示為包括在10MMU212中,但將理解的是,10TLB213和PASID狀態(tài)存儲器214中的一者或兩者可以被實現(xiàn)為單獨的硬件或軟件數(shù)據(jù)結構,并駐留在10MMU212外部,例如在存儲器205中。
[0024]裝置201可選地還包括末級高速緩存(LLC116)和調度器218,LLC116和調度器218被示為包括在10MMU212中,但可以被實現(xiàn)為單獨的硬件或軟件,并可以駐留在10MMU212 外部。
[0025]裝置201與總線/互連215操作地耦合,用于與具有異構設備的多核處理器或多核處理系統(tǒng)通信,并用于在具有異構設備的多核系統(tǒng)中經(jīng)由存儲器205共享虛擬存儲器。該系統(tǒng)可以包括多個同構核(其中兩個被示為核202和核204)以及異構設備(例如圖形設備,其中兩個被示為GFX206和GFX208)、以及可選的其它異構設備(例如視頻設備207和設備209)。
[0026]多個同構核202和核204可以是處理多個進程的線程的多線程核,用于分別經(jīng)解碼231和解碼251、每個線程隊列233和253、浮點/單指令多數(shù)據(jù)寄存器FP / SIMDREGS235a 和 FP / SIMD REGS255a、通用寄存器 GEN REGS235b 和 GEN PEGS255b、浮點 / 單指令多數(shù)據(jù)執(zhí)行單元FP / SIMD EXU237a和FP / SIMD EXU257a、以及整數(shù)執(zhí)行單元INTEXU237b和INT EXU257b的執(zhí)行。核202和核204也可以分別經(jīng)總線/互連215與存儲器205耦合并通過總線/互連單元B / 1-U220和B / 1-U240與存儲器單元MEM-U225和MEM-U245耦合。核202和核204也可以經(jīng)存儲器205和總線/互連215以及可選地經(jīng)末級高速緩存(LLC116)與異構處理設備GFX206和GFX208耦合,以及可選地與其他異構設備(例如視頻設備207和設備209)耦合。
[0027]這些同構或異構處理設備可以經(jīng)存儲器205以及選擇性地通過末級高速緩存(LLC116)共享虛擬存儲器地址空間。通常,同構處理器核可能具有高速緩存層次結構,例如分別是:1-高速緩存223、D-高速緩存224、L2226和1-高速緩存243、D_高速緩存244、L2266 ;以及 TLB,例如分別是:1-TLB221、D_TLB222 和 1-TLB241、D_TLB242,用于在分頁的虛擬存儲器系統(tǒng)中高速緩存來自所述系統(tǒng)(0S254)、頁表(PTBL252)的虛擬到物理地址的轉換。
[0028]同構處理器核202和204也可以包括硬件中的頁面未命中處理程序(PMH230和PMH250),以通過系統(tǒng)頁表(PTBL252)執(zhí)行頁面行走。當這些同構處理器核202和204中的一個嘗試訪問未映射到物理存儲器205中任何地址的虛擬存儲器中的頁面時,該存儲器訪問將導致頁面錯誤,并將調用操作系統(tǒng)(0S254)以“修復”該問題。
[0029]異構處理設備(例如圖形處理器GFX206和GFX208)以及可選的其他異構設備(例如視頻設備207和設備209)還可能具有例如TLB (例如分別是TLB262、TLB282、TLB272和TLB292)的機構,用于執(zhí)行虛擬到物理地址的轉換。TLB262、TLB282、TLB272和TLB292的各種實施例分別可能具有或可能不具有相同的能力,或堪比同構處理器核202和204的能力。異構處理設備GFX206、GFX208以及可選的視頻設備207和設備209也可以具有調度器,例如SCHED268、SCHED288、SCHED278和SCHED298,分別用于調度線程以在異構處理設備GFX206、GFX208、視頻設備207和設備209上執(zhí)行。所述調度器SCHED268、SCHED288、SCHED278和SCHED298 (并且可選地包括中央調度器SCHED218)可以分別發(fā)出來自異構處理設備的PASID狀態(tài)更新請求,以便激活或停用該設備上的進程線程。
[0030]存儲器管理單元10MMU212可能接收來自多核系統(tǒng)中的多個異構設備的一個或多個各自的請求設備的一個或多個PASID狀態(tài)更新請求。當處理來自一個請求設備的PASID狀態(tài)更新清求時,10MMU212可以執(zhí)行對應于此PASID狀態(tài)更新請求的PASID狀態(tài)的原子修改。這樣的原子修改的一個實施例可以是原子的讀-修改-寫操作的形式,其中10MMU212可以讀取PASID狀態(tài)條目的懶惰無效狀態(tài),并為相應的PASID狀態(tài)執(zhí)行懶惰無效校驗,例如,以查明是否需要在由請求設備激活之前將用于進程地址空間的虛擬地址轉換條目與系統(tǒng)頁表同步。該10MMU212然后可將PASID狀態(tài)更新響應發(fā)送到對應于該PASID狀態(tài)更新請求的請求設備,例如,在響應于懶惰無效狀態(tài)被設置而激活之前,告訴該請求設備同步該設備的TLB條目。
[0031]還將在下文中更詳細地、尤其是參考圖3-4來描述用于支持有效TLB關閉以在具有異構設備的多核系統(tǒng)中共享虛擬存儲器的一個或多個過程的實施例。
[0032]圖3示出了用于支持有效的TLB關閉以在具有異構設備的多核系統(tǒng)中共享虛擬存儲器的過程301的一個實施例的流程圖。本文所公開的過程301和其他過程由處理塊來執(zhí)行,所述處理塊可以包括可由通用機器或由專用機器或由兩者的組合執(zhí)行的專用硬件或軟件或固件操作代碼。
[0033]在過程301的處理塊310中,從多核系統(tǒng)中多個異構設備的一個或多個各自的請求設備接收一個或多個PASID狀態(tài)更新請求。在處理塊320中,與那些PASID狀態(tài)更新請求之一對應地執(zhí)行PASID狀態(tài)的原子修改,并且對處理塊330中相應的PASID狀態(tài)執(zhí)行懶惰無效校驗。所述原子修改可以是原子讀-修改-寫操作的形式,其中IOMMU可以讀取PASID狀態(tài)條目的懶惰無效狀態(tài),并為相應的PASID狀態(tài)執(zhí)行懶惰無效校驗,例如,查明是否需要在由請求設備激活之前使用于進程地址空間的虛擬地址轉換條目與系統(tǒng)頁表同步。然后在處理塊350,將PASID狀態(tài)更新響應發(fā)送到與該特定PASID狀態(tài)更新請求相對應的請求設備,例如,在響應于懶惰無效狀態(tài)被設置而激活之前,指示該請求設備需要同步設備TLB條目。
[0034]然后在處理塊360中出現(xiàn)了來自多核系統(tǒng)的操作系統(tǒng)的TLB關閉的處理。一旦IOTLB條目被激活,TLB關閉的處理就可能會以使IOTLB條目無效開始。這樣的處理也可以包括:例如,如果PASID狀態(tài)條目中的活躍參考計數(shù)不為零,則使一個或多個異構設備的設備TLB條目無效??商娲?,處理TLB關閉可能包括:如果PASID狀態(tài)條目中的活躍參考計數(shù)為零,即當前沒有設備使用該TLB條目但在一些設備TLB中它仍可能被激活時,讀取PASID狀態(tài)條目并在PASID狀態(tài)條目中設置懶惰無效字段。
[0035]將理解的是,為了說明,在過程301的一些實施例中,導致處理發(fā)生的事件可能以其他順序發(fā)生,或隨其他事件發(fā)生而同時發(fā)生。例如,可在任何時間從操作系統(tǒng)接收TLB關閉,與此同時IOMMU可能正在處理PASID狀態(tài)更新請求。因此,防止競爭狀況以及當心對于PASID狀態(tài)和TLB條目的更新的排序保留那些結構中的虛擬地址轉換關于系統(tǒng)頁表變化的正確性是重要的。
[0036]圖4示出了用于支持有效的TLB關閉以在具有異構設備的多核系統(tǒng)中共享虛擬存儲器的過程的替代實施例的流程圖。
[0037]在過程401的處理塊410中,從多核系統(tǒng)中的多個異構設備中的請求設備接收PASID狀態(tài)更新請求。在處理塊415中確定該更新請求是否將激活或停用用于該請求設備的PASID狀態(tài)。如果該請求將激活用于該請求設備的PASID狀態(tài),則在處理塊420中,與該PASID狀態(tài)更新請求相對應地執(zhí)行PASID狀態(tài)的原子修改,其中懶惰無效狀態(tài)被讀取,活躍的參考計數(shù)RCOUNT遞增,而懶惰無效狀態(tài)被清除。該原子修改可以是原子的讀-修改-寫(read-modify-write)操作的形式。否則,如果該請求將停用用于該請求設備的PASID狀態(tài),則在處理塊425中,遞減該活躍參考計數(shù)RC0UNT。
[0038]在處理塊430中執(zhí)行對于相應PASID狀態(tài)的懶惰無效校驗,由于在原子修改中,該IOMMU已讀取了該PASID狀態(tài)條目的懶惰無效狀態(tài),所以對于相應PASID狀態(tài)的懶惰無效校驗可包括校驗所讀取的狀態(tài),以查明它是否被預先設置,例如,用于確定用于進程地址空間的虛擬地址轉換條目是否需要在由請求設備激活之前與系統(tǒng)頁表進行同步。
[0039]如果是這樣,則處理塊440以使IOTLB條目無效開始,并進一步包括設置同步標記以使一個或多個需要與系統(tǒng)頁表同步的異構設備的設備TLB條目無效,因為PASID狀態(tài)條目中的活躍參考計數(shù)現(xiàn)在是非零,并且懶惰無效狀態(tài)先前曾被設置。然后在處理塊450中,將PASID狀態(tài)更新響應發(fā)送到與該特定PASID狀態(tài)更新請求相對應的請求設備,并將同步標記置位,向該請求設備指示它需要在激活之前同步該設備TLB條目。
[0040]否則,處理進行到處理塊435,如同在停用請求的情況下,其中所述同步標記被清除。然后在處理塊445中,將PASID狀態(tài)更新響應發(fā)送到與該特定PASID狀態(tài)更新請求相對應的請求設備,并將同步標記清除,向該請求設備指示不需要在激活之前同步該設備TLB條目。
[0041]在處理塊455中,請求設備可能需要在激活之前基于所述PASID狀態(tài)更新響應中同步標記的設置來同步該設備TLB條目。將理解的是,每當PASID狀態(tài)條目中活躍的參考計數(shù)從零增加到一并且懶惰無效狀態(tài)先前曾被設置時,就將以這種方式設置同步標記。也可使用基于懶惰無效狀態(tài)并用于多個設備的同步的其他實施例。[0042]然后在處理塊460中開始的過程402中出現(xiàn)了來自多核系統(tǒng)的操作系統(tǒng)的TLB關閉的處理,其中確定全局頁面是否已被修改。如果是,則TLB關閉的處理可以包括將IOTLB條目和處理塊475中異構設備的所有相應的設備TLB條目無效。否則,處理可以前進到處理塊465,其中讀取對應的PASID狀態(tài)條目。然后在處理塊470中,確定PASID狀態(tài)條目中的活躍參考計數(shù)是否是零。如果不是,則該TLB關閉的處理再次包括在處理塊475中使IOTLB條目和異構設備的所有相應的設備TLB條目無效。但是,如果PASID狀態(tài)條目中的活躍參考計數(shù)為零,則設置PASID狀態(tài)條目中的懶惰無效字段,以觸發(fā)如上所述的關于處理塊420、430和440的懶惰無效。該過程然后重申以過程401的處理塊410開始。
[0043]將理解的是,為了說明,在過程401和402的一些實施例中,導致過程401和402的處理發(fā)生的事件可能以其他順序或同時發(fā)生。例如,可在任何時間從操作系統(tǒng)接收TLB關閉并導致過程402的處理發(fā)生,而在過程401中,IOMMU可能處理PASID狀態(tài)更新請求。因此,防止競爭狀況以及當心對PASID狀態(tài)和TLB條目的更新的排序保留那些結構中的虛擬地址轉換關于系統(tǒng)頁表的變化的正確性是重要的。本領域技術人員可以在各種實施例中使用原子操作,例如讀-修改-寫和測試-和-設置,或用于處理臨界區(qū)的其他技術(例如信號燈)來實現(xiàn)這些目標。
[0044]圖5示出了使用支持有效的TLB關閉的過程(例如過程301)和裝置501以在具有異構設備506-509的多核系統(tǒng)中共享虛擬存儲器的處理器503的一個實施例。處理器503的裝置501包括10TLB513以存儲虛擬地址轉換條目。存儲器管理單元(MMU) 512與該10TLB513和PASID狀態(tài)存儲器514耦合,以保持對應于10TLB513的虛擬地址轉換條目的至少一部分的PASID狀態(tài)條目。該PASID狀態(tài)條目的實施例可各包括活躍參考狀態(tài)和懶惰無效狀態(tài)。為了說明,10TLB513和PASID狀態(tài)存儲器514被示為包括在MMU512中,但將理解的是,10TLB513和PASID狀態(tài)存儲器514中的一者或兩者可以被實現(xiàn)為單獨的硬件或軟件數(shù)據(jù)結構,并駐留在MMU512外部,例如在存儲器505中。
[0045]處理器503的裝置501可選地還包括末級高速緩存(LLC516)和調度器518,LLC516和調度器518被示為包括在MMU512中,但可以被實現(xiàn)為單獨的硬件或軟件,并可以駐留在MMU512外部。
[0046]處理器503的裝置501可操作地與總線/互連515和551耦合,以與具有異構設備的多核處理器或多核處理系統(tǒng)通信,并用于經(jīng)由存儲控制器553、通過存儲器505而在具有異構設備的多核系統(tǒng)中共享虛擬存儲器。該系統(tǒng)可以包括多個同構核(其中兩個被示為核502和核504)以及異構設備(例如圖形設備,其中兩個被示為GFX506和GFX508)、以及可選的其它異構設備(例如視頻設備507和設備509)。
[0047]例如關于圖2,多個同構核502和504可以是用于所述執(zhí)行的處理多個進程線程的多線程核。核502和核504可以經(jīng)總線/互連515與各種設備耦合,例如與I / O擴展設備537、NAND控制器557、傳輸處理器558、安全處理器559、視頻顯示邏輯527、音頻/視頻I / 0548、音頻解碼邏輯549以及可選的單指令多數(shù)據(jù)(SMD)協(xié)處理器591耦合。核502和核504也可以經(jīng)總線/互連551和存儲控制器553與存儲器505耦合。核502和核504也可以經(jīng)存儲器205和總線/互連515和551以及可選地經(jīng)末級高速緩存(LLC516)與異構處理設備GFX506和GFX508耦合,以及可選地與其他異構設備(例如視頻設備507和設備509)耦合。[0048]這些同構或異構處理設備可以經(jīng)存儲器505以及選擇性地通過末級高速緩存(LLC516)共享虛擬存儲器地址空間。通常,同構處理器核可能具有:高速緩存層次結構,例如分別包括L2526和L2546 ;以及TLB,例如分別是TLB522和TLB542,用于在分頁的虛擬存儲器系統(tǒng)中高速緩存來自所述系統(tǒng)(0S554)、頁表(PTBL552)的虛擬到物理地址的轉換。
[0049]同構處理器核502和504也可以包括硬件中的頁面未命中處理程序(未示出),以通過系統(tǒng)頁表(PTBL552)執(zhí)行頁面行走。當這些同構處理器核502和504中的一個嘗試訪問未映射到物理存儲器505中任何地址的虛擬存儲器中的頁面時,該存儲器訪問將導致頁面錯誤,并將調用操作系統(tǒng)(0S554)以“修復”該問題。
[0050]異構處理設備(例如圖形處理器GFX506和GFX508)以及可選的其他異構設備(例如視頻設備507和設備509)還可能具有例如TLB (分別例如是TLB562、TLB582、TLB572和TLB592)的機構,用于執(zhí)行虛擬到物理地址的轉換。TLB562、TLB582、TLB572和TLB592的各種實施例分別可能具有或可能不具有相同的能力,或堪比同構處理器核502和504的能力。異構處理設備GFX506、GFX508以及可選的視頻設備507和設備509也可以具有調度器,例如SCH568、SCH588、SCH578和SCH598,分別用于調度進程線程以在異構處理設備GFX506、GFX508、視頻設備507和設備509上執(zhí)行。所述調度器SCH568、SCH588、SCH578和SCH598 (并可選地包括中央調度器SCH518)分別可以發(fā)出來自異構處理設備的PASID狀態(tài)更新請求,以便激活或停用該設備上的進程線程。
[0051]存儲器管理單元512可能接收來自多核系統(tǒng)中的多個異構設備的一個或多個各自的請求設備的一個或多個PASID狀態(tài)更新請求。當處理來自一個請求設備的PASID狀態(tài)更新請求時,MMU512可以執(zhí)行對應于此PASID狀態(tài)更新請求的PASID狀態(tài)的原子修改。這樣的原子修改的一個實施例可以是原子的讀-修改-寫操作的形式,其中MMU512可以讀取PASID狀態(tài)條目的懶惰無效狀態(tài),并對相應的PASID狀態(tài)執(zhí)行懶惰無效校驗,例如,以查明是否需要在由請求設備激活之前將用于進程地址空間的虛擬地址轉換條目與系統(tǒng)頁表同步。該MMU512然后可將PASID狀態(tài)更新響應發(fā)送到與該PASID狀態(tài)更新請求相對應的請求設備,例如,告訴該請求設備,響應于懶惰無效狀態(tài)被設置,在激活之前同步該設備的TLB條目。
[0052]圖6示出了利用支持有效的TLB關閉的過程(例如過程301)和裝置601以在具有異構設備606-609的多核系統(tǒng)中共享虛擬存儲器的系統(tǒng)610的一個實施例。
[0053]系統(tǒng)610包括處理器603的裝置601,其包括10TLB613以存儲虛擬地址轉換條目。存儲器管理單元612與該10TLB613和PASID狀態(tài)存儲器614耦合,以保持與10TLB613的虛擬地址轉換條目的至少一部分相對應的PASID狀態(tài)條目。該PASID狀態(tài)條目的實施例可各包括活躍參考狀態(tài)和懶惰無效狀態(tài)。為了說明,10TLB613和PASID狀態(tài)存儲器614被示為包括在MMU612中,但將理解的是,10TLB613和PASID狀態(tài)存儲器614中的一者或兩者可以被實現(xiàn)為單獨的硬件或軟件數(shù)據(jù)結構,并駐留在MMU612外部,例如在存儲器605中。
[0054]處理器603的裝置601可選地還包括末級高速緩存(LLC616)和調度器618,LLC616和調度器618被示為包括在MMU612中,但可以被實現(xiàn)為單獨的硬件或軟件,并可以駐留在MMU612外部。
[0055]處理器603的裝置601可操作地耦接總線/互連615和651,用于與具有異構設備的多核處理器或多核處理系統(tǒng)通信,并用于經(jīng)由存儲控制器653、通過存儲器605而在具有異構設備的多核系統(tǒng)中共享虛擬存儲器。系統(tǒng)610的實施例可以使用標準的或非標準的或專有的技術、接口、總線或互連615和651 (例如用于與多核處理器或多核處理系統(tǒng)通信的(外圍組件互連)PCI或PCI Express或(串行高級技術附件)SATA)來實現(xiàn)。
[0056]系統(tǒng)610的其它實施例可使用標準的或非標準的或專有的技術、接口、總線或互連來實現(xiàn),例如:SPI(串行外圍接口 )總線;ISA(工業(yè)標準結構)總線、PC / 104、PC / 104+和擴展ISA、USB(通用串行總線)AVC(音頻視頻類);AMBA(高級微控制器總線架構)(高級外設總線)APB ;火線(IEEE標準1394a-2000高性能串行總線-修訂1,ISBN0-7381-1958-X ;IEEE 標準 1394b_2002 高性能串行總線-修訂 2,ISBN0-7381-3253-5 ;IEEE 標準 1394c-2006,2007-06-08,ISBN0-7381-5237-4)、HDMI (高清晰度多媒體接口 )、VESA(視頻電子標準協(xié)會)的DisplayPort和Mini DisplayPort ;ΜIΡI? (移動行業(yè)處理
器接口 )聯(lián)盟的丨SLIMbus? (串行低功耗芯片間媒體總線)、LLI (低延遲接口)、CSI (照相機串行接口)DSI (顯示屏串行接口)等。
[0057]系統(tǒng)610可以包括多個同構核(其中兩個被示為核602和核604)、以及異構設備(例如圖形設備,其中兩個被示為GFX606和GFX608)、以及任選的其它異構設備(例如視頻設備607和設備609)。
[0058]多個同構核602和604可以是用于執(zhí)行的處理多個進程線程的多線程核。同構處理器核602和核604可以經(jīng)由總線/互連615耦接各種設備,例如橋接器30、無線連接設備20、調制解調器設備26和音頻輸入/輸出設備28。系統(tǒng)610的一些實施例可以實現(xiàn)為芯片上系統(tǒng),例如,在平板計算機或智能電話中使用。在這種實施例中,無線連接設備20可提供無線LAN(局域網(wǎng))鏈路,調制解調器設備26可提供4G(第四代)、5G(第五代)或更聞版本的電話鏈路,而首頻I/O設備28可以提供一組首頻人機接口設備,例如:耳機、首箱、手持設備話筒、音頻輸入和輸出通道以及放大器。
[0059]同構處理器核602和604與總線/互連615、橋接器30和總線/互連18耦合,用于與各種其它系統(tǒng)設備通信,所述各種其它系統(tǒng)設備可以包括但不限于:無線連接設備20、調制解調器設備26和音頻I / O設備28、照相機接口 21、快速IrDA(紅外數(shù)據(jù)協(xié)會)端口
23、HD (高清晰度)多媒體接口 24、USB25、顯示控制器27以及備用主接口 29。同構處理器核602和604還與總線/互連615、橋接器30和總線/互連11耦合,用于與各種其它系統(tǒng)設備通信,所述各種其它系統(tǒng)設備可以包括但不限于:閃速存儲器13、SD(安全數(shù)字)存儲器16、MMC (多媒體卡)17和SSD (固態(tài)驅動器)19。同構處理器核602和604與總線/互連615、橋接器30和總線/互連18耦合,用于與各種其它系統(tǒng)設備通信,所述各種其它系統(tǒng)設備可以包括但不限于=UART (通用異步接收機/發(fā)射機)31、照相機控制器32、可選地包括符合W1-Fi802.1la / b / g的收發(fā)機和/或GPS (全球定位系統(tǒng))接收機的藍牙UART33、鍵盤34、電池控制器35、I / O擴展37和觸摸屏控制器39。
[0060]同構處理器核602和核604也可經(jīng)由總線/互連651和存儲控制器653耦接存儲器605。同構處理器核602和核604也可經(jīng)由存儲器605和總線/互連615和651以及可選地經(jīng)由末級高速緩存(LLC616)與異構處理設備GFX606和GFX608耦合,以及可選地與其它異構設備(例如視頻設備607和設備609)耦合。存儲器605和系統(tǒng)610的其他有形的存儲介質可記錄功能描述性材料,所述功能描述性材料包括0S654、MMU612、SCH618、668、678、688和698以及其他設備和/或驅動器(未示出)的可執(zhí)行指令,所述可執(zhí)行指令可以由同構處理器核602和604執(zhí)行以支持有效的TLB關閉,用于在具有異構設備606-609的多核系統(tǒng)中共享虛擬存儲器。
[0061]系統(tǒng)610的一些實施例可以遵循行業(yè)標準,其允許在一臺計算機內(nèi)同時運行多個操作系統(tǒng)以本地共享設備,所述設備比如單根I/o虛擬化(SRIOV),其在PCI Express拓撲結構中提供本地I / O虛擬化,或者比如多根I / O虛擬化(MRIOV),其在多根復合體共享PCI Express層次結構的拓撲結構中提供本地I / O虛擬化。系統(tǒng)610的一些優(yōu)選實施例可以包括標準的或非標準的或專有的技術、接口、總線或互連,例如:SPI總線、USB、AMBAAPB ;火線、HDM1、Mini DisplayPort, MIPI SLIMbus, MIPI LL1、MIPI CS1、MIPI DSI 等。
[0062]這些同構或異構處理設備可以經(jīng)存儲器605以及選擇性地通過末級高速緩存(LLC616)共享虛擬存儲器地址空間。通常,同構處理器核可能具有:高速緩存層次結構,例如分別是L2626和L2646 ;以及TLB,例如分別是TLB622和TLB642,用于在分頁的虛擬存儲器系統(tǒng)中高速緩存來自主機或客戶系統(tǒng)(0S654)、頁表(PTBL652)的虛擬到物理地址的轉換。
[0063]同構處理器核602和604也可以包括硬件中的頁面未命中處理程序(未示出)以通過系統(tǒng)頁表(PTBL652)執(zhí)行頁面行走。當這些同構處理器核602和604中的一個嘗試訪問未映射到物理存儲器605中任何地址的虛擬存儲器中的頁面時,該存儲器訪問將導致頁面錯誤,并將調用操作系統(tǒng)(0S654)以“修復”該問題。
[0064]異構處理設備(例如圖形處理器GFX606和GFX608)以及可選的其他異構設備(例如視頻設備607和設備609)還可能具有例如TLB (例如分別是TLB662、TLB682、TLB672和TLB692)的機構,用于執(zhí)行虛擬到物理地址的轉換。TLB662、TLB682、TLB672和TLB692的各種實施例可能分別具有或可能不具有相同的能力,或堪比同構處理器核602和604的能力。異構處理設備GFX606、GFX608以及可選的視頻設備607和設備609也可以具有調度器,例如SCH668、SCH688、SCH678和SCH698,分別用于調度進程線程以在異構處理設備GFX606、GFX608、視頻設備607和設備609上執(zhí)行。所述調度器SCH668、SCH688、SCH678和SCH698 (以及可選地包括中央調度器SCH618)分別可以發(fā)出來自異構處理設備的PASID狀態(tài)更新請求,以便激活或停用該設備上的進程線程。
[0065]存儲器管理單元612可能接收來自多核系統(tǒng)中的多個異構設備中的一個或多個相應的請求設備的一個或多個PASID狀態(tài)更新請求。當處理來自一個請求設備的PASID狀態(tài)更新請求時,MMU612可以執(zhí)行與此PASID狀態(tài)更新請求相對應的PASID狀態(tài)的原子修改。這樣的原子修改的一個實施例可以是原子的讀-修改-寫操作的形式,其中MMU612可以讀取該PASID狀態(tài)條目的懶惰無效狀態(tài),并對相應的PASID狀態(tài)執(zhí)行懶惰無效校驗,例如,以查明是否需要在由請求設備激活之前將用于進程地址空間的虛擬地址轉換條目與系統(tǒng)頁表同步。該MMU612然后可將PASID狀態(tài)更新響應發(fā)送到與該PASID狀態(tài)更新請求相對應的請求設備,例如,告訴該請求設備,響應于懶惰無效狀態(tài)被設置,在激活之前同步該設備的TLB條目。
[0066]上面的描述旨在說明本發(fā)明的優(yōu)選實施例。從上面的討論也應明白,尤其在這種發(fā)展速度快而進一步發(fā)展又不容易預見的這類【技術領域】中,可以由本領域技術人員對本發(fā)明的配置和細節(jié)進行修改,而不背離在所附權利要求及其等同物的范圍內(nèi)的本發(fā)明的原理。
【權利要求】
1.一種用于在具有共享虛擬存儲器的異構設備的多核系統(tǒng)中有效的TLB關閉的方法,該方法包括: 從多核系統(tǒng)中的多個異構設備中的一個或多個各自的請求設備接收一個或多個進程地址空間標識符(PASID)狀態(tài)更新請求; 執(zhí)行與所述一個或多個PASID狀態(tài)更新請求中的第一個PASID狀態(tài)更新請求相對應的PASID狀態(tài)的原子修改; 對于所述相對應的PASID狀態(tài)執(zhí)行懶惰無效檢查;以及 將PASID狀態(tài)更新響應發(fā)送至與所述一個或多個PASID狀態(tài)更新請求中的所述第一個PASID狀態(tài)更新請求相對應的請求設備。
2.如權利要求1所述的方法,其特征在于,進一步包括: 處理來自所述多核系統(tǒng)中的操作系統(tǒng)的TLB關閉。
3.如權利要求2所述的方法,其特征在于,處理TLB關閉包括: 使IOTLB條目無效。
4.如權利要求3所述的方法,其特征在于,處理TLB關閉包括: 使所述多個異構設備 中的一個異構設備的設備TLB條目無效。
5.如權利要求2所述的方法,其特征在于,處理TLB關閉包括: 讀取PASID狀態(tài)條目;以及 如果所述PASID狀態(tài)條目中的活躍參考計數(shù)為零,則在所述PASID狀態(tài)條目中設置懶惰無效字段。
6.如權利要求5所述的方法,其特征在于,處理TLB關閉包括: 如果所述PASID狀態(tài)條目中的活躍參考計數(shù)不為零,則使IOTLB條目無效;以及如果所述PASID狀態(tài)條目中的活躍參考計數(shù)不為零,則使所述多個異構設備中的一個異構設備的設備TLB條目無效。
7.如權利要求5所述的方法,其特征在于,使用鎖定的比較和交換指令執(zhí)行在PASID狀態(tài)條目中設置懶惰無效字段。
8.如權利要求1所述的方法,其特征在于,所述PASID狀態(tài)的原子修改包括: 如果所述第一 PASID狀態(tài)更新請求指示停用更新,則遞減活躍參考計數(shù)。
9.如權利要求1所述的方法,其特征在于,所述PASID狀態(tài)的原子修改包括: 讀取包括懶惰無效字段的PASID狀態(tài)條目; 如果所述第一 PASID狀態(tài)更新請求指示激活更新,則遞增活躍的參考計數(shù);以及 如果所述第一 PASID狀態(tài)更新請求指示激活更新,則清除懶惰無效字段。
10.如權利要求9所述的方法,其特征在于,進一步包括: 如果設置了所述PASID狀態(tài)條目讀取中包括的懶惰無效字段,則使IOTLB條目無效;以及 如果設置了所述PASID狀態(tài)條目讀取中包括的懶惰無效字段并且第一 PASID狀態(tài)更新請求指示激活更新,則為所述第一 PASID狀態(tài)更新請求設置設備同步標記。
11.一種裝置,包括: TLB,用于存儲多個虛擬地址轉換條目;以及 與所述TLB耦合的存儲器管理單元,用于保持與虛擬地址轉換條目的一部分相對應的PASID狀態(tài)條目,所述PASID狀態(tài)條目中的每一個包括活躍參考狀態(tài)和懶惰無效狀態(tài),所述存儲器管理單元用于響應于接收來自多核系統(tǒng)中的多個異構設備中的設備的第一 PASID狀態(tài)更新請求執(zhí)行第一 PASID狀態(tài)條目的原子修改,并用于讀取所述第一 PASID狀態(tài)條目的懶惰無效狀態(tài), 所述存儲器管理單元用于在至少部分地響應于懶惰無效狀態(tài)讀取的激活之前將PASID狀態(tài)更新響應發(fā)送到所述設備以同步設備TLB條目。
12.如權利要求11所述的裝置,其特征在于,所述第一PASID狀態(tài)的原子修改包括: 讀取包括懶惰無效字段的第一 PASID狀態(tài)條目; 如果第一 PASID狀態(tài)更新請求指示激活更新,則遞增活躍的參考計數(shù);以及 如果第一 PASID狀態(tài)更新請求指示激活更新,則清除懶惰無效字段。
13.如權利要求11所述的裝置,其特征在于,至少部分地響應于懶惰無效狀態(tài)讀取的存儲器管理單元進一步用于: 使與所述第一 PASID狀態(tài)條目相對應的TLB虛擬地址轉換條目無效;以及 為發(fā)送到所述設備的所述PASID狀態(tài)更新響應設置同步標記。
14.如權利要求11所述的裝置,其特征在于,所述存儲器管理單元進一步用于: 處理來自多核系統(tǒng)中的操作系統(tǒng)的TLB關閉。
15.如權利要求14所述的裝置,其特征在于,處理TLB關閉包括: 使TLB虛擬地址轉換條目無效。
16.如權利要求14所述的裝置,其特征在于,處理TLB關閉包括: 使所述多個異構設備中的一個設備的設備TLB條目無效。
17.如權利要求14所述的裝置,其特征在于,處理TLB關閉包括: 讀取PASID狀態(tài)條目;以及 如果所述PASID狀態(tài)條目中的活躍參考計數(shù)為零,則在所述PASID狀態(tài)條目中設置懶惰無效字段。
18.如權利要求17所述的裝置,其特征在于,處理TLB關閉包括: 如果所述PASID狀態(tài)條目中的活躍參考計數(shù)不為零,則使TLB條目無效;以及如果所述PASID狀態(tài)條目中的活躍參考計數(shù)不為零,則使所述多個異構設備中的一個設備的設備TLB條目無效。
19.如權利要求17所述的裝置,其特征在于,使用鎖定的比較和交換指令執(zhí)行在所述PASID狀態(tài)條目中設置懶惰無效字段。
20.—種多核處理器,包括: 第一多個同構處理核; 異構處理設備; TLB,用于存儲多個虛擬地址轉換條目;以及 與所述TLB耦合的存儲器管理單元,用于保持與虛擬地址轉換條目的一部分相對應的PASID狀態(tài)條目,每個所述PASID狀態(tài)條目包括活躍參考狀態(tài)和懶惰無效狀態(tài), 所述存儲器管理單元用于響應于接收來自所述多核處理器中的多個異構設備中的設備的第一 PASID狀態(tài)更新請求執(zhí)行第一 PASID狀態(tài)條目的原子修改,并用于讀取所述第一PASID狀態(tài)條目的懶惰無效 狀態(tài),所述存儲器管理單元用于在至少部分地響應懶惰無效狀態(tài)讀取的激活之前將PASID狀態(tài)更新響應發(fā)送到所述設備以同步設備TLB條目。
21.如權利要求20所述的多核處理器,其特征在于,所述第一PASID狀態(tài)條目的原子修改包括: 讀取包括懶惰無效字段的所述第一 PASID狀態(tài)條目; 如果所述第一 PASID狀態(tài)更新請求指示激活更新,則遞增活躍參考計數(shù);以及 如果所述第一 PASID狀態(tài)更新請求指示激活更新,則清除所述懶惰無效字段。
22.如權利要求20所述的多核處理器,其特征在于,所述存儲器管理單元進一步用于處理來自操作系統(tǒng)的TLB關閉。
23.如權利要求22所述的多核處理器,其特征在于,處理TLB關閉包括: 讀取PASID狀態(tài)條目;以及 如果所述PASID狀態(tài)條目中的活躍參考計數(shù)為零,則在所述PASID狀態(tài)條目中設置懶惰無效字段。
24.如權利要求23所述的多核處理器,其特征在于,處理TLB關閉包括: 如果所述PASID狀態(tài)條目中的活躍參考計數(shù)不為零,則使TLB條目無效;以及如果所述PASID狀態(tài)條目中的活躍參考計數(shù)不為零,則使所述多個異構設備中的一個設備的設備TLB條目無效。
25.如權利要求23所述的多核處理器,其特征在于,使用鎖定的比較和交換指令執(zhí)行在所述PASID狀態(tài)條目中設置懶惰無效字段。
26.—種多核系統(tǒng),包括: 存儲器,用于存儲包含虛擬地址轉換條目的多個頁表; 第一多個同構處理核; 異構處理設備; TLB,用于存儲多個虛擬地址轉換條目;以及 與所述TLB耦合的存儲器管理單元,用于保持與虛擬地址轉換條目的一部分相對應的PASID狀態(tài)條目,每個所述PASID狀態(tài)條目包括活躍參考狀態(tài)和懶惰無效狀態(tài), 所述存儲器管理單元用于響應于接收來自所述多核系統(tǒng)中的多個異構設備中的設備的第一 PASID狀態(tài)更新請求執(zhí)行第一 PASID狀態(tài)條目的原子修改,并用于讀取所述第一PASID狀態(tài)條目的懶惰無效狀態(tài), 所述存儲器管理單元用于在至少部分地響應于懶惰無效狀態(tài)讀取的激活之前將PASID狀態(tài)更新響應發(fā)送到所述設備以同步設備TLB條目。
27.如權利要求26所述的多核系統(tǒng),其特征在于,所述存儲器管理單元進一步用于: 處理來自所述多核系統(tǒng)中的操作系統(tǒng)的TLB關閉。
28.如權利要求27所述的多核系統(tǒng),其特征在于,處理TLB關閉包括: 使所述多個異構設備中的一個設備的設備TLB條目無效。
29.如權利要求27所述的多核系統(tǒng),其特征在于,處理TLB關閉包括: 讀取PASID狀態(tài)條目;以及 如果所述PASID狀態(tài)條目中的活躍參考計數(shù)為零,則在所述PASID狀態(tài)條目中設置懶惰無效字段。
30.如權利要求29所述的多核系統(tǒng),其特征在于,處理TLB關閉包括: 如果所述PASID狀態(tài)條目中的活躍參考計數(shù)不為零,則使TLB條目無效;以及如果所述PASID狀態(tài)條目中的活躍參考計數(shù)不為零,則使所述多個異構設備中的一個設備的設備TLB條目無效。·
【文檔編號】G06F15/80GK103827839SQ201280031876
【公開日】2014年5月28日 申請日期:2012年7月24日 優(yōu)先權日:2011年7月26日
【發(fā)明者】R·M·桑卡蘭, A·考克, P·蘭茲, A·K·馬里克, J·B·克羅斯蘭, A·納瓦勒, G·尼格, A·V·安德森 申請人:英特爾公司