欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

處理地址轉(zhuǎn)換請求的制作方法

文檔序號:10577298閱讀:356來源:國知局
處理地址轉(zhuǎn)換請求的制作方法
【專利摘要】本公開涉及處理地址轉(zhuǎn)換請求。存儲器管理單元包括用于從設(shè)備接收地址轉(zhuǎn)換請求的接口,該地址轉(zhuǎn)換請求指定要被轉(zhuǎn)換的虛擬地址。轉(zhuǎn)換電路將虛擬地址轉(zhuǎn)換成與直接指定存儲器位置的物理地址不同的中間地址。響應(yīng)于地址轉(zhuǎn)換請求,接口向設(shè)備提供指定中間地址的地址轉(zhuǎn)換響應(yīng)。這通過避免將物理地址披露給設(shè)備來提高安全性。
【專利說明】
處理地址轉(zhuǎn)換請求
技術(shù)領(lǐng)域
[0001]本技術(shù)涉及數(shù)據(jù)處理的領(lǐng)域。更具體地,本技術(shù)涉及存儲器管理單元。
【背景技術(shù)】
[0002]數(shù)據(jù)處理裝置可以具有存儲器管理單元(MMU)以管理對存儲器的訪問。

【發(fā)明內(nèi)容】

[0003 ]在至少一些示例中,本技術(shù)提供了一種存儲器管理單元,包括:
[0004]接口,該接口被配置為從設(shè)備接收地址轉(zhuǎn)換請求,該地址轉(zhuǎn)換請求指定要被轉(zhuǎn)換的虛擬地址;以及
[0005]轉(zhuǎn)換電路,該轉(zhuǎn)換電路被配置為將由地址轉(zhuǎn)換請求指定的虛擬地址轉(zhuǎn)換成與直接指定存儲器位置的物理地址不同的中間地址;
[0006]其中,該接口被配置為響應(yīng)于地址轉(zhuǎn)換請求向設(shè)備提供包括中間地址的地址轉(zhuǎn)換響應(yīng)。
[0007]在另一示例中,本技術(shù)提供了一種包括如上文所討論的存儲器管理單元的數(shù)據(jù)處理裝置。
[0008]在另一示例中,本技術(shù)提供了一種存儲器管理單元,包括:
[0009]用于從設(shè)備接收地址轉(zhuǎn)換請求的裝置,該地址轉(zhuǎn)換請求指定要被轉(zhuǎn)換的虛擬地址;
[0010]用于將由地址轉(zhuǎn)換請求指定的虛擬地址轉(zhuǎn)換成與直接指定存儲器位置的物理地址不同的中間地址的裝置;以及
[0011]用于響應(yīng)于地址轉(zhuǎn)換請求向設(shè)備提供包括中間地址的地址轉(zhuǎn)換響應(yīng)的裝置。
[0012 ]在另一示例中,本技術(shù)提供了一種方法,包括:
[0013]從設(shè)備接收地址轉(zhuǎn)換請求,該地址轉(zhuǎn)換請求指定要被轉(zhuǎn)換的虛擬地址;
[0014]將由地址轉(zhuǎn)換請求指定的虛擬地址轉(zhuǎn)換成與直接指定存儲器位置的物理地址不同的中間地址;以及
[0015]向設(shè)備提供地址轉(zhuǎn)換響應(yīng),該地址轉(zhuǎn)換響應(yīng)包括中間地址。
[0016]以上所述和其它對象、特征和優(yōu)勢從結(jié)合附圖理解的示例實施例的以下詳細描述中變得清楚。
【附圖說明】
[0017]本技術(shù)的另外的特征和優(yōu)勢可以從結(jié)合附圖理解的示例的以下描述中變得清楚,其中:
[0018]圖1示意性地示出其中多個設(shè)備通過存儲器管理單元訪問存儲器的數(shù)據(jù)處理系統(tǒng)的示例;
[0019]圖2示意性地示出MMU分布于若干設(shè)備的示例;[0020 ]圖3示出由MMU執(zhí)行的地址轉(zhuǎn)換的示例;
[0021]圖4示出處理地址轉(zhuǎn)換請求和被轉(zhuǎn)換的存儲器訪問請求的示例;
[0022]圖5是示出處理未被轉(zhuǎn)換的訪問請求的示例的流程圖;
[0023]圖6是示出處理地址轉(zhuǎn)換請求的示例的流程圖;以及
[0024]圖7是示出處理處理轉(zhuǎn)換的訪問請求的示例的流程圖。
【具體實施方式】
[0025]數(shù)據(jù)處理裝置可以具有存儲管理單元(MMU)以管理對存儲器的訪問。例如,MMU可以負責(zé)將由希望訪問存儲器的設(shè)備指定的虛擬地址轉(zhuǎn)換成直接標識在存儲器中訪問的位置的物理地址。MMU還可以基于針對地址空間的區(qū)域的訪問權(quán)限集來控制設(shè)備是否被允許訪問所請求的地址。地址轉(zhuǎn)換和訪問權(quán)限檢查可以利用頁表條目來控制,頁表條目可以位于存儲器中的頁表內(nèi)或者被緩存在MMU本地的轉(zhuǎn)換后備緩沖器(TLB)內(nèi)。如果TLB不包含針對給定訪問的所需頁表條目,那么可能需要相對較慢的頁表移動來訪問來自頁表的頁表條目。如果多個設(shè)備或情境通過MMU爭奪對存儲器的訪問,那么在TLB中可能沒有針對每個設(shè)備或情境所需的頁表條目的足夠的空間,并且因此該爭奪可能導(dǎo)致更頻繁的頁表移動,這可能影響性能。
[0026]為了減小針對MMU資源的爭奪對性能的影響,一些MMU可以提供預(yù)先地址轉(zhuǎn)換功能,其中,客戶端設(shè)備可以向MMU發(fā)送指定要被轉(zhuǎn)換的虛擬地址(雖然該地址還不需要被訪問)的預(yù)先地址轉(zhuǎn)換請求,并且MMU向該設(shè)備發(fā)送指定與該虛擬地址相對應(yīng)的物理地址的響應(yīng)。物理地址可以被緩存在設(shè)備內(nèi),并且隨后設(shè)備可以向MMU提供指定先前緩存的物理地址的被轉(zhuǎn)換的存儲器訪問,從而此時不需要其他地址轉(zhuǎn)換。通過提前執(zhí)行相對慢的地址轉(zhuǎn)換操作并且將結(jié)果緩存在客戶端設(shè)備中,以使得該客戶端設(shè)備不會與其它設(shè)備或情境爭奪MMU存儲或帶寬,執(zhí)行存儲器訪問時的性能可以被改善。
[0027]然而,向設(shè)備披露物理地址可能會造成安全問題,因為這允許設(shè)備向由于已經(jīng)具有物理地址而不需要進行進一步的轉(zhuǎn)換(或訪問權(quán)限檢查)的MMU發(fā)送存儲器訪問請求。如果設(shè)備可以被信任來只針對先前響應(yīng)于地址轉(zhuǎn)換請求而返回的物理地址做出被轉(zhuǎn)換的訪問請求以響應(yīng)于地址轉(zhuǎn)換請求,那么這是可接受的,因為在地址轉(zhuǎn)換請求時執(zhí)行的地址轉(zhuǎn)換可以包括任何需要的權(quán)限檢查。然而,如果設(shè)備不可被信任,那么這可能提供安全漏洞。例如,設(shè)備可以嘗試指定先前未響應(yīng)于地址轉(zhuǎn)換請求而被返回物理地址(或者因為故障而意外地發(fā)生或者因為設(shè)備執(zhí)行的惡意代碼而故意地發(fā)生)的被轉(zhuǎn)換的存儲器訪問。如果該存儲器訪問被允許,那么這可以允許設(shè)備訪問其不被允許訪問的存儲器的區(qū)域,導(dǎo)致安全違規(guī)。因此,在實踐中,預(yù)先地址轉(zhuǎn)換方法只在當(dāng)已知耦合于MMU的所有用戶設(shè)備被信任來正確動作時被使用。通常不是這種情況,并且因此需要禁止預(yù)先地址轉(zhuǎn)換。這就限制了可以通過使用地址轉(zhuǎn)換獲得的性能提升。
[0028]替換地,如本文所討論的,響應(yīng)于地址轉(zhuǎn)換請求,MMU可以將由地址轉(zhuǎn)換請求指定的虛擬地址轉(zhuǎn)換成與直接指定存儲器位置的物理地址不同的中間地址,并且向設(shè)備返回指定該中間地址而不是物理地址的地址轉(zhuǎn)換響應(yīng)。這避免了將物理地址披露給設(shè)備,使其在即使并非所有耦合到MMU的設(shè)備都被信任的情況下也安全地使用預(yù)先地址轉(zhuǎn)換功能。這使得預(yù)先地址轉(zhuǎn)換被更廣泛的使用,允許為更大范圍的實現(xiàn)方式獲得性能節(jié)約。
[0029]設(shè)備可以發(fā)送兩種類型的訪問請求。未被轉(zhuǎn)換的訪問請求是針對存儲器訪問的常規(guī)請求,它指定虛擬地址并且不使用預(yù)先地址轉(zhuǎn)換功能。被轉(zhuǎn)換的訪問請求是利用預(yù)轉(zhuǎn)換的地址來請求存儲器訪問,該預(yù)轉(zhuǎn)換的地址是先前由MMU響應(yīng)于地址轉(zhuǎn)換請求而提供的。地址轉(zhuǎn)換請求不請求要被執(zhí)行的存儲器訪問,而是只請求MMU返回隨后可以被用于被轉(zhuǎn)換的存儲器訪問的被轉(zhuǎn)換的地址。
[0030]如上所述,當(dāng)?shù)刂忿D(zhuǎn)換響應(yīng)提供中間地址時,被轉(zhuǎn)換的訪問請求也將指定中間地址,并且作為響應(yīng),轉(zhuǎn)換電路執(zhí)行進一步轉(zhuǎn)換以將中間地址轉(zhuǎn)換成要被用于存儲器訪問的相應(yīng)的物理地址。因此,所述最終的存儲器訪問仍然是針對物理地址,利用本技術(shù),虛擬地址至中間地址的轉(zhuǎn)換可以在地址轉(zhuǎn)換請求時被執(zhí)行,并且中間地址至物理地址的轉(zhuǎn)換可以在隨后的被轉(zhuǎn)換的訪問請求時被執(zhí)行。
[0031]針對未被轉(zhuǎn)換的訪問請求,轉(zhuǎn)換電路可以在兩個階段執(zhí)行轉(zhuǎn)換,以使得存在用于將虛擬地址轉(zhuǎn)換成相應(yīng)的中間地址的第一轉(zhuǎn)換并且然后由第二階段來將中間地址轉(zhuǎn)換成相應(yīng)的物理地址。例如,兩階段的轉(zhuǎn)換可以被用于支持虛擬化系統(tǒng)。例如,可以利用由第一控制程序控制的第一控制數(shù)據(jù)集來控制第一轉(zhuǎn)換,第一控制程序由包含MMU的系統(tǒng)內(nèi)的處理單元執(zhí)行;并且還可以利用由該處理單元執(zhí)行的第二程序控制的第二控制數(shù)據(jù)集來控制第二轉(zhuǎn)換。例如,第一控制程序可以是訪客操作系統(tǒng)或虛擬機,而第二控制程序可以是用于管理多個訪客操作系統(tǒng)或虛擬機的管理程序。在已經(jīng)有針對未被轉(zhuǎn)換的存儲器訪問的兩個轉(zhuǎn)換階段的MMU中,需要很少的額外硬件或功能以利用中間地址而不是物理地址對地址轉(zhuǎn)換請求進行響應(yīng),并且因此上文討論的技術(shù)可以利用很少的額外電路區(qū)域或能耗開銷來實現(xiàn)。
[0032]有人可能認為只將虛擬地址轉(zhuǎn)換成中間地址以響應(yīng)地址轉(zhuǎn)換請求可能會降低提前執(zhí)行地址轉(zhuǎn)換的主要性能優(yōu)勢,因為當(dāng)設(shè)備隨后進行被轉(zhuǎn)換的訪問請求時仍然需要第二轉(zhuǎn)換。然而,在實踐中,在兩階段的轉(zhuǎn)換中,通常是第一轉(zhuǎn)換導(dǎo)致對MMU內(nèi)的資源的更大爭奪。例如,如果第一轉(zhuǎn)換與由特定虛擬機或操作系統(tǒng)管理的轉(zhuǎn)換相對應(yīng)并且第二轉(zhuǎn)換由管理程序管理,那么通常可能存在與不同虛擬機或操作系統(tǒng)相關(guān)聯(lián)的設(shè)備或情境之間的競爭,因為每個虛擬機或操作系統(tǒng)可以請求不同的頁表數(shù)據(jù)或其它被緩存在MMU中的控制數(shù)據(jù),這增大了對MMU緩存中的空間的競爭。與由管理程序控制的第二階段相比,可能可以利用共同的一組控制數(shù)據(jù)來管理多個情境或設(shè)備,以減少由于競爭產(chǎn)生MMU緩沖未擊中的可能性。因此,在實踐中,與提前執(zhí)行地址轉(zhuǎn)換相關(guān)聯(lián)的很多性能獲益可以通過只提前執(zhí)行第一轉(zhuǎn)換來獲得,即使隨后當(dāng)被轉(zhuǎn)換的存儲器訪問被請求時執(zhí)行第二階段轉(zhuǎn)換。
[0033]不是所有的地址轉(zhuǎn)換請求可以引起指定中間地址的響應(yīng)。一些示例可以支持以不同方式處理地址轉(zhuǎn)換請求的若干不同的地址轉(zhuǎn)換模式。
[0034]例如,在第一地址轉(zhuǎn)換模式下,地址轉(zhuǎn)換請求可以如上文所述地進行處理,從而虛擬地址被轉(zhuǎn)換成中間地址,并且然后向指定中間地址的設(shè)備提供響應(yīng)。相反地,在第二地址轉(zhuǎn)換模式下,物理地址可以響應(yīng)于地址轉(zhuǎn)換請求而被返回。
[0035]當(dāng)在第一模式時,被轉(zhuǎn)換的訪問請求可以指定中間地址,并且因此作為響應(yīng),轉(zhuǎn)換電路可以執(zhí)行中間地址至要被用于存儲器訪問的相應(yīng)物理地址的轉(zhuǎn)換。在第二模式下,被轉(zhuǎn)換的訪問請求已經(jīng)指定了物理地址,所以不需要另外的轉(zhuǎn)換,并且在這種情況下,在請求中指定的物理地址可以被直接用于存儲器訪問。
[0036]轉(zhuǎn)發(fā)電路可以基于轉(zhuǎn)發(fā)電路可訪問的控制信息(例如,在控制寄存器、緩存或主存儲器)來選擇是使用第一模式還是第二模式??刂菩畔⒖梢苑謩e為不同的設(shè)備或情境指定使用哪種模式,這些設(shè)備或情境對存儲器的訪問是由MMU管理的。因此,一個設(shè)備或情境可以使其地址轉(zhuǎn)換請求在第一模式中被處理,而另一設(shè)備或情境可以使其地址轉(zhuǎn)換在第二模式中被處理。因此,針對被信任進行適當(dāng)動作的設(shè)備/情境,第二地址轉(zhuǎn)換模式可以被使用,因為這允許隨后被轉(zhuǎn)換的存儲器訪問被更快的處理,因為不需要進行額外的轉(zhuǎn)換。然而,針對不被信任的設(shè)備/情境,MMU可以在第一模式下處理地址轉(zhuǎn)換,從而只披露中間地址以維護安全。通過提供兩種模式,可以獲得安全和性能之間更好的平衡。
[0037]可能存在與檢查控制信息以確定使用哪種模式來處理地址轉(zhuǎn)換請求相關(guān)聯(lián)的性能開銷。例如,控制信息可以被存儲在存儲器中并且因此在取回和讀取該信息時可能有延遲。如果已知所有設(shè)備都是受信任的,那么該延遲可以是不必要的。
[0038]當(dāng)設(shè)備受信任時時,為了進一步提高系能,可以為MMU提供包括性能模式和安全模式的多個操作模式。在性能模式下,響應(yīng)于從設(shè)備接收到的被轉(zhuǎn)換的訪問請求,MMU可以允許被轉(zhuǎn)換的存儲器訪問利用由被轉(zhuǎn)換的訪問請求指定的地址來進行,而不需要檢查是使用第一地址轉(zhuǎn)換模式還是第二地址轉(zhuǎn)換模式。在安全模式下,轉(zhuǎn)換電路在允許任意存儲器訪問進行以響應(yīng)被轉(zhuǎn)換的訪問請求之前檢查是使用第一地址轉(zhuǎn)換模式還是第二地址轉(zhuǎn)換模式。
[0039]如果所有設(shè)備都是可信的,那么可以選擇性能模式,從而沒有由于檢查控制信息的延遲,并且替代地所有被轉(zhuǎn)換的訪問請求可以被假定為根據(jù)第二地址轉(zhuǎn)換模式指定物理地址。如果考慮到至少一個設(shè)備可能是不可信的,那么可以選擇安全模式,從而在訪問存儲器之前檢查地址轉(zhuǎn)換模式,并且如果為該設(shè)備選擇了第一地址轉(zhuǎn)換模式,那么執(zhí)行中間地址至物理地址的進一步轉(zhuǎn)換。因此,提供性能模式和安全模式可以允許在性能和安全之間權(quán)衡,這可以在實現(xiàn)具體的系統(tǒng)時根據(jù)所使用的設(shè)備來進行選擇。
[0040]在一些示例中,MMU內(nèi)的一些控制信息集可以指示是在安全模式下還是性能模式下操作。例如,可以在MMU內(nèi)提供定義使用哪種模式的標志。
[0041]在性能模式期間,對存儲器的訪問被允許在不檢查地址轉(zhuǎn)換模式的情況下進行。此時,當(dāng)MMU在性能模式下時,存儲器管理單元可以禁止使用第一地址轉(zhuǎn)換模式,從而從設(shè)備接收到的任意被轉(zhuǎn)換的訪問請求將指定物理地址而不是中間地址以避免由被解釋成物理地址的中間地址引起的安全違規(guī)。例如,當(dāng)MMU在安全模式下時,MMU可以只允許選擇使用中間地址的第一地址轉(zhuǎn)換模式。同樣地,如果從安全模式切換到性能模式,那么MMU可以迫使所有設(shè)備使用第二轉(zhuǎn)換模式。圖1是虛擬化環(huán)境中的數(shù)據(jù)處理布置的示意圖。在圖1中,各種單元可以經(jīng)由互聯(lián)布置10被連接。經(jīng)由互聯(lián)布置10連接的單元包括:中央處理單元(CPU)
20、可選擇性地包括緩存存儲器32的系統(tǒng)存儲器30、一個或多個設(shè)備40、50、和包括轉(zhuǎn)換后備緩沖區(qū)(TLB)62的系統(tǒng)存儲器管理單元(SMMU)60。當(dāng)下文的描述提及訪問“存儲器”時,應(yīng)該理解的是這還包括訪問緩存32。
[0042]SMMU是一種類型的MMU,它負責(zé)為多個設(shè)備40、50管理對存儲器的訪問,多個設(shè)備通??梢允怯芍鳈CCPU 20管理的外部設(shè)備。例如,這些設(shè)備可以包括外部用戶接口或者如相機設(shè)備之類的輸入/輸出設(shè)備。本技術(shù)特別適用于SMMU,因為SMMU通??赡芙?jīng)歷不同設(shè)備之間對MMU的嚴重爭奪,但應(yīng)該理解的是本技術(shù)還可以應(yīng)用于其它類型的MMU。
[0043]設(shè)備40、50中的每個設(shè)備與虛擬機(VM)或虛擬環(huán)境中的訪客系統(tǒng)相關(guān)聯(lián)。圖1的裝置向設(shè)備提供對由虛擬存儲器地址定義的虛擬地址空間的訪問。每個虛擬機了解它自己的地址空間,該地址空間包含供該虛擬機使用的指令和數(shù)據(jù)。除其它優(yōu)勢外,虛擬地址的使用允許主機操作系統(tǒng)或管理程序(HV)通過禁止一個虛擬機訪問或者損壞由另一虛擬機使用的信息來控制存儲器訪問。圖1提供此類布置的示例,在該布置中主機數(shù)據(jù)處理系統(tǒng)為一個或多個訪客數(shù)據(jù)處理系統(tǒng)提供虛擬操作環(huán)境。
[0044]系統(tǒng)存儲器通過物理地址來尋址。因此,當(dāng)設(shè)備請求訪問虛擬存儲器地址以例如讀取或?qū)懭胫噶罨驍?shù)據(jù)項時,虛擬存儲器地址被轉(zhuǎn)換成物理存儲器地址,從而所需信息可以從系統(tǒng)存儲器30中獲得或者可以寫入系統(tǒng)存儲器30。存儲器地址的轉(zhuǎn)換由SMMU 60執(zhí)行。下文將給出更多SMMU操作的細節(jié)。
[0045]TLB 62在存儲器地址轉(zhuǎn)換過程中提供緩存功能。TLB 62存儲最近或通常使用的虛擬和物理存儲器地址之間的轉(zhuǎn)換。因此,作為地址轉(zhuǎn)換過程中的第一步,TLB 62被查閱以便檢測TLB是否已經(jīng)包含所需的地址轉(zhuǎn)換。如果不包含,那么可以使用更復(fù)雜的轉(zhuǎn)換過程,例如,涉及查閱保存地址轉(zhuǎn)換信息的所謂頁表,然后通常使得TLB 62中被填入所需轉(zhuǎn)換的細
-K-
T O
[0046]圖1的虛擬化系統(tǒng)利用了多個階段的地址轉(zhuǎn)換。在該布置中,使用了兩個等級的轉(zhuǎn)換。設(shè)備40、50中的一個設(shè)備中的執(zhí)行程序或其它系統(tǒng)的模塊所需的虛擬地址(VA)由第一MMU階段轉(zhuǎn)換成中間物理地址(IPA)。直到VM軟件意識到,IPA是被用于訪問系統(tǒng)存儲器的物理地址。然而,虛擬化系統(tǒng)提供了第二等級的地址轉(zhuǎn)換以使得IPA隨后通過第二 MMU階段轉(zhuǎn)換成物理地址(PA) JPA至PA的轉(zhuǎn)換完全由管理程序控制。因此,特定的VM可以被披露給VA以進行IPA轉(zhuǎn)換,而管理程序監(jiān)督IPA至PA的轉(zhuǎn)換并且因此控制對物理系統(tǒng)存儲器的實際訪問。
[0047]在一些示例中,每個設(shè)備40、50可以與相應(yīng)的虛擬機相關(guān)聯(lián)。在其它示例中,多個設(shè)備可以與單一虛擬機相關(guān)聯(lián)。就設(shè)備和SMMU 60之間的通信而言,設(shè)備可以分別與各自的“流”標識符(流ID)相關(guān)聯(lián),除其它功能外,“流”標識符可以協(xié)助路由向或從設(shè)備路由SMMU交易。
[0048]圖1示出一個SMMU60的使用。在其它示例中,如圖2所示的示例中,存儲器管理單元功能可以是部分分布的,因為TLB可以分別與每個設(shè)備相關(guān)聯(lián),從而轉(zhuǎn)換在設(shè)備本地發(fā)生,但是在所需轉(zhuǎn)換不是在相應(yīng)的TLB中發(fā)現(xiàn)的情況(TLB“未命中(miss)”)中,參考中央MMU來解決所需的轉(zhuǎn)換。然而,為了進行下文的討論,每個布置是適用的。
[0049]還需要注意的是圖1和圖2是數(shù)據(jù)處理布置的物理結(jié)構(gòu)的示意圖。邏輯結(jié)構(gòu)提供了一個或多個VM和HV 和HV作為在CPU 20上運行的不同軟件處理而存在,例如,伴隨著不同的相應(yīng)等級的操作權(quán)限。因此,運行不同的各個軟件(可以被存儲在系統(tǒng)存儲器30中)的通用CPU可以提供(一個或多個)VM和HV的功能。
[0050]如圖3所示,SMMU 60具有用于從設(shè)備40、50接收請求并且向設(shè)備40、50發(fā)送響應(yīng)的設(shè)備接口 61。例如,SMMU 60可以經(jīng)由諸如PCI總線之類的總線被耦合至設(shè)備40、50,并且設(shè)備接口 61可以實施用于在總線上傳輸信號的總線協(xié)議。
[0051]圖3示出響應(yīng)于來自設(shè)備40、50中的一個設(shè)備的未被轉(zhuǎn)換的地址訪問請求而執(zhí)行地址轉(zhuǎn)換的示例。未被轉(zhuǎn)換的存儲器訪問指定上文所討論的虛擬地址(VA)以及流標識符(SID) JA被轉(zhuǎn)換成要被用于訪問包括緩存32或主存儲器30的存儲器系統(tǒng)的物理地址(PA)。如圖3所示,SMMU 60在兩個階段中執(zhí)行轉(zhuǎn)換,SMMU 60利用階段一(SI)轉(zhuǎn)換64來將VA轉(zhuǎn)換成中間物理地址(IPA)并且利用階段二(S2)轉(zhuǎn)換66來將IPA轉(zhuǎn)換成相應(yīng)的PA Al和S2轉(zhuǎn)換64、66被邏輯地示為圖3的獨立單元,但是應(yīng)該理解的是,在一些實現(xiàn)方式中,用于執(zhí)行兩種轉(zhuǎn)換的至少一些電路可以被共享。SI和S2轉(zhuǎn)換是基于控制數(shù)據(jù)被執(zhí)行的,控制數(shù)據(jù)包括:存儲在存儲器系統(tǒng)30、32中的SI頁表70和S2頁表72;分別緩存來自SI和S2頁表70、72的轉(zhuǎn)換數(shù)據(jù)的子集的SI和S2TLB 74、76;定義針對SMMU 60的配置數(shù)據(jù)的控制寄存器80;以及定義針對可通過SMMU發(fā)布訪問請求的各個設(shè)備或情境的控制信息的流表。控制數(shù)據(jù)還可以包括隊列,這些隊列用于跟蹤將由SMMU 60處理的存儲器訪問或地址轉(zhuǎn)換命令的、或者跟蹤由SSMU60檢測的、將被報告給設(shè)備40、50的事件(這些事件可以包括頁面錯誤、訪問許可違規(guī)等)。
[0052]SI頁表70提供定義如何執(zhí)行VA至IPA的SI地址轉(zhuǎn)換64的信息。SI頁表由CPU 20在訪客操作系統(tǒng)或虛擬機的控制下進行設(shè)置。SI頁表70可以為虛擬地址空間的每個頁面定義虛擬地址的頁面部分和相應(yīng)的中間物理地址(通常該地址還包括在轉(zhuǎn)換期間保持不變的偏移部分)的頁面部分之間的映射。SI頁表70還可以定義用于控制是否允許存儲器訪問來自特定設(shè)備或情境的給定地址的訪問權(quán)限數(shù)據(jù)。SI頁表70可以包括若干等級的頁表。當(dāng)需要SI轉(zhuǎn)換時,如果所需的頁表條目不在SlTLB 74中,那么頁表移動操作被執(zhí)行以從存儲器中的SI頁表70的等級中的一個等級中取回條目,并且當(dāng)所需頁表條目被引入SlTLB 74中時,則SI轉(zhuǎn)換64可以進行。頁表移動操作可能相對較慢,并且如果在不同的設(shè)備或情境之間存在對SlTLB 74中的空間的爭奪,那么這可能降低SMMU的性能,因為不可能盡快地為存儲器訪問請求服務(wù)。
[0053]類似地,S2頁表72定義IPA和PA的頁面部分(地址的偏移部分仍可以保持不變)之間的映射、以及用于控制是否允許訪問給定地址的權(quán)限數(shù)據(jù)。S2頁表在管理程序的控制下被設(shè)置。另外,S2TLB 76在用于緩存來自S2頁表72的頁表條目中的一些條目的SMMU內(nèi)的芯片上被提供,并且頁表移動可以被執(zhí)行以將所需的頁表條目取回至S2TLB。然后被S2轉(zhuǎn)換76返回的PA可以被用于訪問存儲器系統(tǒng)30、32。
[0054]控制寄存器80包括針對SMMU的配置數(shù)據(jù),該配置數(shù)據(jù)包括定義SMMU是在性能模式還是安全模式的模式標志84,這將在下文中進行詳細討論。
[0055]流表82可以在存儲器系統(tǒng)30、32內(nèi)或在SMMU 60內(nèi)的本地存儲器(例如,一組寄存器或本地緩存)中被提供。流表82包括由在由SMMU接收到的訪問請求中所指定的流ID索引的多個流表條目86 AMMU可以利用其被訪問的每個設(shè)備或情境可以被分配不同的流ID。
[0056]每個流表條目86包括與發(fā)布訪問請求的具體設(shè)備或情境相關(guān)聯(lián)的控制信息。例如,流表條目86可以包括到存儲器中的S1、S2頁表70、72的指針以用于具有相應(yīng)流ID的請求。因此,不同的設(shè)備/情境可以通過訪問不同的頁表來被提供不同的轉(zhuǎn)換數(shù)據(jù)和權(quán)限。這就是為什么當(dāng)若干流需要不同的條目被取回SlTLB 74中并且沒有針對所有條目的足夠空間時在SlTLB 74中通常存在競爭的原因。并且,流表條目86可以包括“使能地址轉(zhuǎn)換服務(wù)(EATS)”字段88,該字段定義被用于處理指定相應(yīng)的流ID的地址轉(zhuǎn)換請求的地址轉(zhuǎn)換模式??赡芴峁┒鄠€不同的模式。另外,EATS字段88可以指定對地址轉(zhuǎn)換請求和被轉(zhuǎn)換的訪問的處理是否是完全禁用的。如果地址轉(zhuǎn)換服務(wù)是禁用的,那么拒絕任何地址轉(zhuǎn)換請求或被轉(zhuǎn)換的存儲器訪問請求。如果地址轉(zhuǎn)換服務(wù)被使能,那么EATS 88字段可以指示兩種不同的地址轉(zhuǎn)換模式中的一種。
[0057]圖4示出利用兩種地址轉(zhuǎn)換模式來處理地址轉(zhuǎn)換請求和被轉(zhuǎn)換的存儲器訪問。圖4的左手側(cè)部分示意性地示出對從設(shè)備40、50中的一個設(shè)備發(fā)送的地址轉(zhuǎn)換請求90的處理,該地址轉(zhuǎn)換請求90指定將被轉(zhuǎn)換的虛擬地址。當(dāng)還不需要存儲器訪問時,地址轉(zhuǎn)換請求通常被提前發(fā)送。響應(yīng)于地址轉(zhuǎn)換請求90,SMMU向設(shè)備提供指定被轉(zhuǎn)換的地址的轉(zhuǎn)換響應(yīng)92,在實際需要對該被轉(zhuǎn)換的地址的存儲器訪問之前該地址可以被緩存在設(shè)備40、50內(nèi)。當(dāng)需要存儲器訪問時,設(shè)備發(fā)送被轉(zhuǎn)換的存儲器訪問請求94,被轉(zhuǎn)換的存儲器訪問請求94指定先前在轉(zhuǎn)換響應(yīng)92中接收到的被轉(zhuǎn)換的地址。通過提前執(zhí)行一些轉(zhuǎn)換,實際的存儲器訪問不會因為爭奪TLB資源而被延遲,這提高了性能。
[0058]如圖4所示,SMMU可以支持全地址轉(zhuǎn)換模式和半地址轉(zhuǎn)換模式。要使用的模式是基于模式選擇值89被選擇的,模式選擇值89可以從與請求中指定的流ID相對應(yīng)的流表條目86中的EATS字段88中得到。
[0059]在全地址轉(zhuǎn)換模式下,在轉(zhuǎn)換請求90中指定的VA經(jīng)過SI轉(zhuǎn)換64以生成相應(yīng)的IPA,并且IPA經(jīng)過S2轉(zhuǎn)換66以生成相應(yīng)的PA,它們會在轉(zhuǎn)換響應(yīng)92中被返回給設(shè)備40、50。在全地址轉(zhuǎn)換模式下,被轉(zhuǎn)換的存儲器訪問94指定可以被直接用于存儲器訪問而不需要進一步轉(zhuǎn)換的PA。
[0060]另一方面,當(dāng)使用半轉(zhuǎn)換模式時,只有SI轉(zhuǎn)換模式在地址轉(zhuǎn)換請求90時被執(zhí)行,從而VA被轉(zhuǎn)換成IPA而S2轉(zhuǎn)換66被省略。指定從SI轉(zhuǎn)換64獲取的IPA的轉(zhuǎn)換響應(yīng)92被發(fā)送至設(shè)備。在半轉(zhuǎn)換模式下,被轉(zhuǎn)換的訪問請求94指定IPA,并且此時使得S2轉(zhuǎn)換66被執(zhí)行來將IPA轉(zhuǎn)換成將被用于存儲器訪問的PA。
[0061]于是,兩種不同的模式提供了一方面的安全和另一方面的性能之間的平衡。披露直接指定位置和存儲器的物理地址可能帶來安全隱患,因為如圖4的右側(cè)部分所示設(shè)備可以發(fā)布指定物理地址的被轉(zhuǎn)換的流量,該物理地址可以導(dǎo)致存儲器訪問而不需要任何進一步的轉(zhuǎn)換或?qū)υL問許可的檢查。如果終端設(shè)備可以被信任為只發(fā)布針對先前遵循地址轉(zhuǎn)換請求90被返回的物理地址的被轉(zhuǎn)換的流量,那么可以假設(shè)SI和S2轉(zhuǎn)換64、66(包括由操作系統(tǒng)和管理程序?qū)嵤┑娜我庠L問許可檢查)都已經(jīng)被執(zhí)行并且該訪問是安全的。因此,通過為受信任的設(shè)備或情境選擇全轉(zhuǎn)換模式,性能可以通過允許非??焖俚靥幚淼谋晦D(zhuǎn)換的流量來得到改善。
[0062]另一方面,針對不受信任的設(shè)備或情境,半轉(zhuǎn)換模式可以被選擇來避免向該設(shè)備披露物理地址。而在被轉(zhuǎn)換的存儲器請求94時仍然需要S2轉(zhuǎn)換,S2轉(zhuǎn)換遇到由于競爭而產(chǎn)生的延遲的可能性比SI轉(zhuǎn)換低,所以大部分提前執(zhí)行轉(zhuǎn)換的性能優(yōu)勢來自于提前執(zhí)行SI轉(zhuǎn)換而不是S2轉(zhuǎn)換,所以半轉(zhuǎn)換模式仍然能改善性能。半轉(zhuǎn)換模式允許預(yù)先地址轉(zhuǎn)換甚至與潛在不受信任的現(xiàn)成設(shè)備一起被使用,以使得預(yù)先地址轉(zhuǎn)換的性能優(yōu)勢可以在更廣泛范圍的數(shù)據(jù)處理系統(tǒng)中得到使用。而且,可能有一些取決于地址轉(zhuǎn)換服務(wù)的功能是可用的,例如,將設(shè)備耦合至SMMU的PCI總線的PRI功能,并且因此通過使地址轉(zhuǎn)換服務(wù)能夠更廣泛地被使用,還可以使其它優(yōu)化或功能能夠被更廣泛的使用。
[0063]SMMU的模式標志84控制SMMU是在性能模式下還是安全模式下。在性能模式下,SMMU可以根據(jù)全轉(zhuǎn)換模式來處理所有地址轉(zhuǎn)換請求和被轉(zhuǎn)換的存儲器訪問流量。這可以在所有設(shè)備是都受信任的情況下被選擇,從而不需要招致檢查流表條目以確認是使用全轉(zhuǎn)換模式還是半轉(zhuǎn)換模式的延遲,這改善了性能。在安全模式下,SMMU可以在處理任意地址轉(zhuǎn)換請求或被轉(zhuǎn)換的流量之前檢查流表條目,以確認物理地址沒有向不受信任的設(shè)備披露。因此,這可以在存在至少一個潛在不受信任的設(shè)備時被選擇以維護安全。如果SMMU的當(dāng)前模式是性能模式,那么SMMU可以阻止EATS字段88被設(shè)置為指示半轉(zhuǎn)換模式。
[0064]圖5示出利用SMMU處理未被轉(zhuǎn)換的存儲器訪問的方法。在步驟100處,SMMU60從設(shè)備40、50中的一個設(shè)備接收指定VA和流ID的訪問請求。在步驟102處,SI轉(zhuǎn)換64將VA轉(zhuǎn)換成IPA。如果與被指定的地址相對應(yīng)的轉(zhuǎn)換數(shù)據(jù)不存在于SlLTB 74內(nèi),那么到SI頁表70的指針從與在訪問請求中指定的流ID相對應(yīng)的流表條目86中被讀取,并且頁表移動被執(zhí)行以從SI頁表70中獲得所需的轉(zhuǎn)換數(shù)據(jù)。在步驟104中,S2轉(zhuǎn)換66將在步驟102中獲得的IPA轉(zhuǎn)換成PA。再者,如果所需數(shù)據(jù)不存在于S2TLB 76中,那么利用由在相應(yīng)的流表條目內(nèi)的S2頁表指針指示的S2頁表72來執(zhí)行頁表移動。在步驟106處,利用在S2轉(zhuǎn)換66中獲得的PA來執(zhí)行存儲器訪問,該存儲器訪問可以是讀或?qū)憽?br>[0065]圖6示出處理從設(shè)備中的一個設(shè)備中接收到的地址轉(zhuǎn)換請求的方法。在步驟110處,從設(shè)備接收指定VA和流ID的地址轉(zhuǎn)換請求。在步驟112處,基于模式標志84確定SMMU 60是在性能模式還是在安全模式。如果SMMU是在安全模式,那么在步驟114處,SMMU檢查與被指定的流ID相對應(yīng)的流表條目86以確定該地址轉(zhuǎn)換模式。如果地址轉(zhuǎn)換模式是半轉(zhuǎn)換模式,那么在步驟116處,SI轉(zhuǎn)換64被執(zhí)行來將地址轉(zhuǎn)換請求中指定的VA轉(zhuǎn)換成IPA,并且在步驟118處,指定IPA的轉(zhuǎn)換響應(yīng)92被發(fā)送至設(shè)備。另一方面,如果地址轉(zhuǎn)換模式是全轉(zhuǎn)換模式,那么在步驟120處,SI轉(zhuǎn)換被執(zhí)行來將由地址轉(zhuǎn)換請求指定的VA轉(zhuǎn)換成IPA,并且在步驟122處,S2轉(zhuǎn)換還被執(zhí)行為將IPA轉(zhuǎn)換成PA。在步驟124處,指定在S2轉(zhuǎn)換中獲得的PA的轉(zhuǎn)換響應(yīng)被發(fā)送至設(shè)備。如果在步驟112中,SMMU被確定為是在性能模式,那么跳過步驟114并且地址轉(zhuǎn)換模式被假設(shè)為是全轉(zhuǎn)換模式,從而使方法直接進行至步驟120以避免針對檢查在流表82中指定的地址轉(zhuǎn)換模式的任意延遲。
[0066]圖7示出處理轉(zhuǎn)換的訪問請求94的方法。在步驟130處,指定流ID和被轉(zhuǎn)換的地址的被轉(zhuǎn)換的訪問請求從設(shè)備40、50中的一個設(shè)備被接收,取決于被用于該設(shè)備的地址轉(zhuǎn)換模式被轉(zhuǎn)換的地址可以是IPA或PA。在步驟132處,確定SMMU當(dāng)前是在性能模式還是安全模式。如果SMMU是在安全模式,那么在步驟134處,從流表82中確定針對當(dāng)前流ID的地址轉(zhuǎn)換模式。如果地址轉(zhuǎn)換模式是半轉(zhuǎn)換模式,那么在步驟136處,S2轉(zhuǎn)換66被執(zhí)行以將由被轉(zhuǎn)換的訪問請求指定的IPA轉(zhuǎn)換成PA,并且在步驟138處,利用在步驟136中獲得PA執(zhí)行存儲器訪問。如果地址轉(zhuǎn)換模式是全轉(zhuǎn)換模式,那么在步驟140處,利用在被轉(zhuǎn)換的訪問中指定的PA執(zhí)行存儲器訪問,而不需要任何進一步轉(zhuǎn)換。如果在步驟132處,SMMU的當(dāng)前模式是性能模式,那么省略步驟134并且根據(jù)全地址轉(zhuǎn)換模式處理請求,從而方法可以直接從132進行至步驟140。
[0067]在本應(yīng)用中,詞語“被配置為……”被用于表示裝置的元件具有能夠執(zhí)行被定義的操作的配置。在該語境中,“配置”表示硬件或軟件的互連形式或布置。例如,裝置可以具有提供被定義的操作的專用硬件,或者處理器或其它處理設(shè)備可以被編程為執(zhí)行功能?!氨慌渲脼椤辈话凳狙b置元件需要以任意形式進行改變以便于提供被定義的操作。
[0068]雖然說明性實施例在本文中已經(jīng)參考附圖進行了詳細描述,但應(yīng)該理解的是本發(fā)明不限于那些精確的實施例,并且在不背離所附權(quán)利要求的范圍的情況下本領(lǐng)域的相關(guān)技術(shù)人員可以對其進行各種改變和修改。
【主權(quán)項】
1.一種存儲器管理單元,包括: 接口,所述接口被配置為從設(shè)備接收地址轉(zhuǎn)換請求,所述地址轉(zhuǎn)換請求指定要被轉(zhuǎn)換的虛擬地址;以及 轉(zhuǎn)換電路,所述轉(zhuǎn)換電路被配置為將由所述地址轉(zhuǎn)換請求指定的所述虛擬地址轉(zhuǎn)換成與直接指定存儲器位置的物理地址不同的中間地址; 其中,所述接口被配置為響應(yīng)于所述地址轉(zhuǎn)換請求向所述設(shè)備提供包括所述中間地址的地址轉(zhuǎn)換響應(yīng)。2.根據(jù)權(quán)利要求1所述的存儲器管理單元,其中,響應(yīng)于由所述接口從所述設(shè)備接收的被轉(zhuǎn)換的訪問請求,所述被轉(zhuǎn)換的訪問請求指定所述中間地址,所述轉(zhuǎn)換電路被配置為將所述中間地址轉(zhuǎn)換成相應(yīng)地物理地址。3.根據(jù)權(quán)利要求1所述的存儲器管理單元,其中,響應(yīng)于由所述接口從所述設(shè)備接收的未被轉(zhuǎn)換的訪問請求,所述未被轉(zhuǎn)換的訪問請求指定虛擬地址,所述轉(zhuǎn)換電路被配置為將所述虛擬地址轉(zhuǎn)換成相應(yīng)的物理地址。4.根據(jù)權(quán)利要求3所述的存儲器管理單元,其中,響應(yīng)于所述未被轉(zhuǎn)換的訪問請求,所述轉(zhuǎn)換電路被配置為執(zhí)行第一轉(zhuǎn)換以將所述虛擬地址轉(zhuǎn)換成相應(yīng)的中間地址、并且執(zhí)行第二轉(zhuǎn)換以將所述中間地址轉(zhuǎn)換成所述相應(yīng)的物理地址。5.根據(jù)權(quán)利要求4所述的存儲器管理單元,其中,所述轉(zhuǎn)換電路被配置為在由處理單元執(zhí)行的第一控制程序的控制下、基于第一控制數(shù)據(jù)集合來執(zhí)行所述第一轉(zhuǎn)換,并且在由所述處理單元執(zhí)行的第二控制程序的控制下、基于第二控制數(shù)據(jù)集合來執(zhí)行所述第二轉(zhuǎn)換。6.根據(jù)權(quán)利要求1所述的存儲器管理單元,包括:控制電路,所述控制電路被配置為利用由所述轉(zhuǎn)換電路獲取的所述物理地址來控制對存儲器訪問的處理。7.根據(jù)權(quán)利要求1所述的存儲器管理單元,其中,在第一地址轉(zhuǎn)換模式下,響應(yīng)于所述地址轉(zhuǎn)換請求,所述轉(zhuǎn)換電路被配置為將所述虛擬地址轉(zhuǎn)換成所述中間地址,并且所述接口被配置為提供指定所述中間地址的所述地址轉(zhuǎn)換響應(yīng);并且 在第二地址轉(zhuǎn)換模式下,響應(yīng)于所述地址轉(zhuǎn)換請求,所述轉(zhuǎn)換電路被配置為將所述虛擬地址轉(zhuǎn)換成所述物理地址,并且所述接口被配置為提供指定所述物理地址的所述地址轉(zhuǎn)換響應(yīng)。8.根據(jù)權(quán)利要求7所述的存儲器管理單元,其中,所述轉(zhuǎn)換電路被配置為根據(jù)所述轉(zhuǎn)換電路可訪問的控制信息來選擇是使用所述第一地址轉(zhuǎn)換模式還是所述第二地址轉(zhuǎn)換模式。9.根據(jù)權(quán)利要求8所述的存儲器管理單元,其中,所述控制信息分別針對多個設(shè)備或情境中的每一設(shè)備或情境來指定針對從該設(shè)備或情境接收到的請求是使用所述第一地址轉(zhuǎn)換模式還是所述第二地址轉(zhuǎn)換模式。10.根據(jù)權(quán)利要求1所述的存儲器管理單元,其中,在所述第一地址轉(zhuǎn)換模式下,響應(yīng)于由所述接口接收的被轉(zhuǎn)換的訪問請求,所述轉(zhuǎn)換電路被配置為將由所述被轉(zhuǎn)換的訪問請求指定的中間地址轉(zhuǎn)換成要被用于存儲器訪問的相應(yīng)的物理地址;以及 在所述第二地址轉(zhuǎn)換模式下,響應(yīng)于由所述接口接收的被轉(zhuǎn)換的訪問請求,所述存儲器管理單元被配置為提供由所述被轉(zhuǎn)換的訪問請求指定的、要被用于存儲器訪問的所述物理地址。11.根據(jù)權(quán)利要求10所述的存儲器管理單元,其中,所述存儲器管理單元具有多個操作模式,所述多個操作模式包括: 性能模式,在所述性能模式下,響應(yīng)于由所述接口接收的被轉(zhuǎn)換的訪問請求,所述存儲器管理單元被配置為在不需要檢查是使用第一地址轉(zhuǎn)換模式還是第二地址轉(zhuǎn)換模式的情況下,允許利用由所述被轉(zhuǎn)換的訪問請求指定的地址來進行存儲器訪問;以及 安全模式,在所述安全模式下,響應(yīng)于由所述接口接收的被轉(zhuǎn)換的訪問請求,所述轉(zhuǎn)換電路被配置為在響應(yīng)于所述被轉(zhuǎn)換的訪問請求而允許進行任意存儲器訪問之前,檢查針對所述被轉(zhuǎn)換的訪問請求是使用所述第一地址轉(zhuǎn)換模式還是所述第二地址轉(zhuǎn)換模式。12.根據(jù)權(quán)利要求11所述的存儲器管理單元,其中,所述存儲器管理單元被配置為當(dāng)所述存儲器管理單元是在所述性能模式下時禁止使用所述第一地址轉(zhuǎn)換模式。13.根據(jù)權(quán)利要求1所述的存儲器管理單元,包括控制存儲元件,所述控制存儲元件被配置為存儲指示所述存儲器管理單元是在所述性能模式還是所述安全模式下的控制信息。14.一種數(shù)據(jù)處理裝置,包括根據(jù)權(quán)利要求1所述的存儲器管理單元。15.一種存儲器管理單元,包括: 用于從設(shè)備接收地址轉(zhuǎn)換請求的裝置,所述地址轉(zhuǎn)換請求指定要被轉(zhuǎn)換的虛擬地址; 用于將由所述地址轉(zhuǎn)換請求指定的所述虛擬地址轉(zhuǎn)換成與直接指定存儲器位置的物理地址不同的中間地址的裝置;以及 用于響應(yīng)于所述地址轉(zhuǎn)換請求向所述設(shè)備提供包括所述中間地址的地址轉(zhuǎn)換響應(yīng)的目.ο16.一種方法,包括: 從設(shè)備接收地址轉(zhuǎn)換請求,所述地址轉(zhuǎn)換請求指定要被轉(zhuǎn)換的虛擬地址; 將由所述地址轉(zhuǎn)換請求指定的所述虛擬地址轉(zhuǎn)換成與直接指定存儲器位置的物理地址不同的中間地址;以及 向所述設(shè)備提供地址轉(zhuǎn)換響應(yīng),所述地址轉(zhuǎn)換響應(yīng)包括所述中間地址。
【文檔編號】G06F12/10GK105938459SQ201610101795
【公開日】2016年9月14日
【申請日】2016年2月24日
【發(fā)明人】馬修·埃文斯
【申請人】Arm 有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
罗甸县| 福州市| 家居| 建水县| 咸宁市| 晋中市| 兴化市| 金湖县| 彭水| 定西市| 白沙| 城步| 双鸭山市| 大安市| 金坛市| 宁明县| 神池县| 金塔县| 新和县| 星子县| 昆明市| 宽城| 灌南县| 三河市| 武邑县| 昌吉市| 胶南市| 汤阴县| 库伦旗| 当阳市| 铜陵市| 阿拉尔市| 米林县| 田东县| 大同县| 察雅县| 庄河市| 惠来县| 吉木乃县| 天水市| 施甸县|