單頁(yè)表?xiàng)l目?jī)?nèi)的多組屬性字段的制作方法
【專利摘要】第一處理單元(110)及第二處理單元(120)可存取系統(tǒng)存儲(chǔ)器(130),所述系統(tǒng)存儲(chǔ)器(130)存儲(chǔ)所述第一處理單元及所述第二處理單元所共用的共用頁(yè)表(132)。所述共用頁(yè)表可存儲(chǔ)用于由應(yīng)用的工作存取的存儲(chǔ)器塊的虛擬存儲(chǔ)器地址到物理存儲(chǔ)器地址的映射。所述共用頁(yè)表內(nèi)的頁(yè)條目可包含界定所述第一處理單元對(duì)所述存儲(chǔ)器塊的可存取性的第一組屬性位、界定所述第二處理單元對(duì)所述相同存儲(chǔ)器塊的可存取性的第二組屬性位,及界定所述存儲(chǔ)器塊的物理地址的物理地址位。
【專利說(shuō)明】單頁(yè)表?xiàng)l目?jī)?nèi)的多組屬性字段
【技術(shù)領(lǐng)域】
[0001]本發(fā)明一般涉及計(jì)算,且更確切地說(shuō),涉及用于將虛擬存儲(chǔ)器地址空間映射到物理存儲(chǔ)器地址空間的技術(shù)。
【背景技術(shù)】
[0002]典型的計(jì)算系統(tǒng)包含多個(gè)處理單元,例如中央處理單元(CPU)及圖形處理單元(GPU),其從物理存儲(chǔ)器進(jìn)行讀取且對(duì)物理存儲(chǔ)器進(jìn)行寫(xiě)入。裝置的各種處理單元可實(shí)施虛擬解決方案以使得可向正由客戶端執(zhí)行的應(yīng)用指派鄰接的虛擬地址空間而不必保留鄰接的物理存儲(chǔ)器空間。每一處理單元通常具有存儲(chǔ)器管理單元(MMU)以將虛擬的存儲(chǔ)器地址翻譯為物理存儲(chǔ)器中的物理地址。為了執(zhí)行所需的虛擬地址到物理地址的映射,每一 MMU在系統(tǒng)存儲(chǔ)器中維持單獨(dú)的頁(yè)表,且這些單獨(dú)的頁(yè)表中的每一者的大小可為數(shù)兆字節(jié)。
【發(fā)明內(nèi)容】
[0003]一般來(lái)說(shuō),本發(fā)明中描述的技術(shù)涉及實(shí)施虛擬地址到物理地址的映射的計(jì)算裝置。根據(jù)本發(fā)明的技術(shù),兩個(gè)或更多個(gè)處理單元可共享用于將虛擬地址映射到物理地址的共用頁(yè)表。所述共用頁(yè)表的頁(yè)表?xiàng)l目可包含多組屬性字段,例如用于第一處理單元的屬性組、用于第二處理單元的屬性組,以及其它屬性組。使用所述多組屬性字段,可個(gè)別地管理用于兩個(gè)或更多個(gè)處理單元的屬性。舉例來(lái)說(shuō),本發(fā)明中描述的技術(shù)可允許對(duì)第一和第二處理單元的讀取/寫(xiě)入存取的個(gè)別管理,以使得用于一個(gè)處理單元的讀取/寫(xiě)入存取可不同于用于第二處理單元的讀取/寫(xiě)入存取。
[0004]根據(jù)一個(gè)實(shí)例,一種設(shè)備包含第一處理單元、第二處理單元及存儲(chǔ)器。所述存儲(chǔ)器存儲(chǔ)所述第一處理單元及所述第二處理單元共用的共用頁(yè)表且存儲(chǔ)用于由作業(yè)存取的存儲(chǔ)器塊的虛擬存儲(chǔ)器地址到物理存儲(chǔ)器地址的映射。所述存儲(chǔ)器還在所述共用頁(yè)表內(nèi)存儲(chǔ)所述第一處理單元及所述第二處理單元用以存取多個(gè)存儲(chǔ)器塊的一存儲(chǔ)器塊的頁(yè)條目,其中所述頁(yè)條目包括界定所述第一處理單元對(duì)所述存儲(chǔ)器塊的可存取性的第一組屬性位、界定所述第二處理單元對(duì)所述相同存儲(chǔ)器塊的可存取性的第二組屬性位,及界定所述存儲(chǔ)器塊的物理地址的物理地址位。
[0005]根據(jù)另一實(shí)例,一種方法包含由第一處理單元使用存儲(chǔ)于存儲(chǔ)器中的共用頁(yè)表將虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址;由所述第一處理單元存取由所述物理存儲(chǔ)器地址識(shí)別的存儲(chǔ)器塊;由第二處理單元使用存儲(chǔ)于所述存儲(chǔ)器中的所述共用頁(yè)表將所述虛擬存儲(chǔ)器地址翻譯為所述物理存儲(chǔ)器地址;及由所述第二處理單元存取由所述物理存儲(chǔ)器地址識(shí)別的所述存儲(chǔ)器塊。所述共用頁(yè)表為所述第一處理單元及所述第二處理單元所共用且存儲(chǔ)用于由作業(yè)存取的存儲(chǔ)器塊的虛擬存儲(chǔ)器地址到物理存儲(chǔ)器地址的映射。所述共用頁(yè)表包括所述第一處理單元及所述第二處理單元用以存取所述存儲(chǔ)器塊的頁(yè)條目,且所述頁(yè)條目包括界定所述第一處理單元對(duì)所述存儲(chǔ)器塊的可存取性的第一組屬性位、界定所述第二處理單元對(duì)所述相同存儲(chǔ)器塊的可存取性的第二組屬性位,及界定所述存儲(chǔ)器塊的物理地址的物理地址位。
[0006]根據(jù)另一實(shí)例,一種設(shè)備包含第一處理裝置、第二處理裝置及存儲(chǔ)器。所述第一處理裝置包括用于使用存儲(chǔ)于所述存儲(chǔ)器中的共用頁(yè)表將虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址的裝置;及用于存取由所述物理存儲(chǔ)器地址識(shí)別的存儲(chǔ)器塊的裝置,且所述第二處理裝置包括用于使用存儲(chǔ)于所述存儲(chǔ)器中的所述共用頁(yè)表將所述虛擬存儲(chǔ)器地址翻譯為所述物理存儲(chǔ)器地址的裝置;及用于存取由所述物理存儲(chǔ)器地址識(shí)別的所述存儲(chǔ)器塊的裝置。所述共用頁(yè)表為所述第一處理裝置及第二處理裝置第二處理裝置所共用且存儲(chǔ)用于由作業(yè)存取的存儲(chǔ)器塊的虛擬存儲(chǔ)器地址到物理存儲(chǔ)器地址的映射。所述共用頁(yè)表包括所述第一處理裝置及所述第二處理裝置用以存取所述存儲(chǔ)器塊的頁(yè)條目,且所述頁(yè)條目包括界定所述第一處理裝置對(duì)所述存儲(chǔ)器塊的可存取性的第一組屬性位、界定所述第二處理裝置對(duì)所述相同存儲(chǔ)器塊的可存取性的第二組屬性位,及界定所述存儲(chǔ)器塊的物理地址的物理地址位。
[0007]根據(jù)另一實(shí)例,一種計(jì)算機(jī)可讀存儲(chǔ)媒體存儲(chǔ)指令,所述指令在被執(zhí)行時(shí)致使第一處理單元及第二處理單元:由所述第一處理單元使用存儲(chǔ)于存儲(chǔ)器中的共用頁(yè)表將虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址;由所述第一處理單元存取由所述物理存儲(chǔ)器地址識(shí)別的存儲(chǔ)器塊;由所述第二處理單元使用存儲(chǔ)于所述存儲(chǔ)器中的所述共用頁(yè)表將所述虛擬存儲(chǔ)器地址翻譯為所述物理存儲(chǔ)器地址;及由所述第二處理單元存取由所述物理存儲(chǔ)器地址識(shí)別的所述存儲(chǔ)器塊。所述共用頁(yè)表為所述第一處理單元及所述第二處理單元所共用且存儲(chǔ)用于由作業(yè)存取的存儲(chǔ)器塊的虛擬存儲(chǔ)器地址到物理存儲(chǔ)器地址的映射。所述共用頁(yè)表包括所述第一處理單元及所述第二處理單元用以存取存儲(chǔ)器塊的頁(yè)條目。所述頁(yè)條目包括界定所述第一處理單元對(duì)所述存儲(chǔ)器塊的可存取性的第一組屬性位、界定所述第二處理單元對(duì)所述相同存儲(chǔ)器塊的可存取性的第二組屬性位,及界定所述存儲(chǔ)器塊的物理地址的物理地址位。
【專利附圖】
【附圖說(shuō)明】
[0008]圖1展示經(jīng)配置以實(shí)施本發(fā)明中描述的虛擬存儲(chǔ)器地址到物理存儲(chǔ)器地址的映射技術(shù)的計(jì)算裝置的實(shí)例。
[0009]圖2展示經(jīng)配置以實(shí)施本發(fā)明中描述的虛擬存儲(chǔ)器地址到物理存儲(chǔ)器地址的映射技術(shù)的計(jì)算裝置的另一實(shí)例。
[0010]圖3展示根據(jù)本發(fā)明中描述的技術(shù)的在單一頁(yè)表?xiàng)l目?jī)?nèi)具有多組屬性字段的共用頁(yè)表的概念圖。
[0011]圖4展示說(shuō)明本發(fā)明中描述的虛擬存儲(chǔ)器地址到物理存儲(chǔ)器地址的映射技術(shù)的流程圖。
【具體實(shí)施方式】
[0012]一般來(lái)說(shuō),本發(fā)明中描述的技術(shù)涉及實(shí)施虛擬地址到物理地址的映射(在本發(fā)明中還被稱作虛擬到物理映射)的計(jì)算裝置。更具體來(lái)說(shuō),本發(fā)明中描述的技術(shù)針對(duì)于可由兩個(gè)或更多個(gè)處理單元共享的共用頁(yè)表。所述共用頁(yè)表的頁(yè)表?xiàng)l目可包含多組屬性字段,例如用于第一處理單元的屬性組、用于第二處理單元的屬性組,以及其它屬性組。使用所述多組屬性字段,可個(gè)別地管理用于兩個(gè)或更多個(gè)處理單元的屬性。舉例來(lái)說(shuō),用于一個(gè)處理單元的讀取/寫(xiě)入存取可不同于用于第二處理單元的讀取/寫(xiě)入存取。
[0013]例如中央處理單元(CPU)及圖形處理單元(GPU)等處理單元需要存取物理存儲(chǔ)器(即,從其讀取數(shù)據(jù)并且對(duì)其寫(xiě)入數(shù)據(jù))。為了讀取或?qū)懭霐?shù)據(jù),處理單元使用存儲(chǔ)器內(nèi)的位置的物理地址來(lái)存取將從其讀取數(shù)據(jù)或?qū)ζ鋵?xiě)入數(shù)據(jù)的所述物理存儲(chǔ)器內(nèi)的所述位置。然而,處理單元可難以管理所有存儲(chǔ)器塊(即,可對(duì)其寫(xiě)入數(shù)據(jù)或從其讀取數(shù)據(jù)的物理存儲(chǔ)器的位置)的物理地址。為了克服此困難,處理單元可使用虛擬尋址。在虛擬尋址中,向在處理單元上執(zhí)行的應(yīng)用(即,客戶端)指派鄰接的虛擬存儲(chǔ)器地址。應(yīng)用可包括多個(gè)作業(yè),其中不同作業(yè)在不同處理單元上執(zhí)行。處理單元中的每一者包含相應(yīng)的存儲(chǔ)器管理單元(MMU)。處理單元中的每一者的MMU具有從虛擬存儲(chǔ)器地址確定實(shí)際存儲(chǔ)器地址(還被稱作物理存儲(chǔ)器地址)的任務(wù)。
[0014]舉例來(lái)說(shuō),MMU包含被稱作翻譯旁視緩沖器(TLB)的高速緩沖存儲(chǔ)器。TLB存儲(chǔ)用于所選擇的存儲(chǔ)器塊(例如,最近存取的存儲(chǔ)器塊或頻繁存取的存儲(chǔ)器塊)的虛擬到物理映射。為了存取存儲(chǔ)器塊,處理單元將用于存儲(chǔ)器塊的虛擬存儲(chǔ)器地址供應(yīng)到MMU。MMU轉(zhuǎn)而存取TLB以識(shí)別用于所述存儲(chǔ)器塊的物理存儲(chǔ)器地址。在所述映射在TLB中可用時(shí)(被稱作TLB命中),MMU隨后使用物理存儲(chǔ)器地址存取存儲(chǔ)器塊。或者,MMU將物理存儲(chǔ)器地址供應(yīng)到處理單元的不同單元或模塊,其隨后使用物理存儲(chǔ)器地址存取存儲(chǔ)器塊。
[0015]在一些情況下,TLB可不包含用于虛擬存儲(chǔ)器地址的映射(被稱作TLB未命中)。舉例來(lái)說(shuō),處理單元可能需要存取其物理地址未包含在由TLB存儲(chǔ)的頁(yè)條目中的存儲(chǔ)器塊,因?yàn)樗龃鎯?chǔ)器塊不是最近存取或頻繁存取的存儲(chǔ)器塊。在此發(fā)生時(shí),處理單元存取存儲(chǔ)于系統(tǒng)存儲(chǔ)器中的頁(yè)表。
[0016]頁(yè)表與TLB類似之處在于,兩者都存儲(chǔ)將虛擬存儲(chǔ)器地址映射到物理存儲(chǔ)器地址的頁(yè)條目。頁(yè)表中或TLB中的一個(gè)頁(yè)表?xiàng)l目將一個(gè)虛擬存儲(chǔ)器地址映射到一個(gè)物理存儲(chǔ)器地址。然而,與在本地存儲(chǔ)在處理單元的MMU內(nèi)的TLB相比,頁(yè)表存儲(chǔ)于系統(tǒng)存儲(chǔ)器中。而且,因?yàn)轫?yè)表存儲(chǔ)用于處理單元的整個(gè)虛擬到物理地址映射而不是比如TLB等有限數(shù)目的頁(yè)條目,所以頁(yè)表的大小一般比TLB的大小大得多。舉例來(lái)說(shuō),頁(yè)表的大小可在數(shù)兆字節(jié)范圍內(nèi)。
[0017]在一些技術(shù)中,系統(tǒng)存儲(chǔ)器存儲(chǔ)用于處理單元中的每一者的對(duì)應(yīng)頁(yè)表。舉例來(lái)說(shuō),系統(tǒng)存儲(chǔ)器存儲(chǔ)用于CPU的一頁(yè)表且存儲(chǔ)用于GPU的另一單獨(dú)的頁(yè)表。然而,在一些情況下,這些不同頁(yè)表包含相同的頁(yè)表?xiàng)l目。因此,可有可能CPU頁(yè)表中的多個(gè)頁(yè)表?xiàng)l目等同于GPU頁(yè)表中的頁(yè)表?xiàng)l目。舉例來(lái)說(shuō),CPU頁(yè)表中的頁(yè)表?xiàng)l目可將一個(gè)虛擬存儲(chǔ)器地址映射到物理存儲(chǔ)器地址,且GPU頁(yè)表中的頁(yè)表?xiàng)l目可將相同的虛擬存儲(chǔ)器地址映射到相同的物理存儲(chǔ)器地址。
[0018]作為一個(gè)實(shí)例,在CPU上執(zhí)行的操作系統(tǒng)可具有將鄰接的虛擬存儲(chǔ)器地址指派給應(yīng)用的任務(wù)。所述應(yīng)用可包含多個(gè)作業(yè)或任務(wù),其中一些作業(yè)在CPU上執(zhí)行且一些作業(yè)在GI^U上執(zhí)行。操作系統(tǒng)還可將虛擬存儲(chǔ)器地址與物理存儲(chǔ)器地址之間的映射存儲(chǔ)在頁(yè)表中。因?yàn)椴僮飨到y(tǒng)具有針對(duì)CPU及GPU兩者指派虛擬存儲(chǔ)器地址且將這些虛擬存儲(chǔ)器地址映射到物理地址的任務(wù),所以操作系統(tǒng)可針對(duì)CPU及GPU兩者創(chuàng)建存儲(chǔ)所述虛擬到物理映射的共用頁(yè)表。
[0019]在共用此共用頁(yè)表的CPU及GPU中可存在益處。舉例來(lái)說(shuō),系統(tǒng)存儲(chǔ)器不再存儲(chǔ)重復(fù)的頁(yè)表?xiàng)l目,系統(tǒng)存儲(chǔ)器可存儲(chǔ)用于CPU頁(yè)表及GPU頁(yè)表中的相同的頁(yè)表?xiàng)l目的單一頁(yè)條目,其促成存儲(chǔ)器節(jié)約。此外,因?yàn)榇嬖谟糜谶@些相同頁(yè)表?xiàng)l目的一個(gè)頁(yè)條目,所以更新單一頁(yè)表?xiàng)l目而不是兩個(gè)相同的頁(yè)表?xiàng)l目可在計(jì)算上更有效。
[0020]已經(jīng)開(kāi)發(fā)出一些現(xiàn)有技術(shù)來(lái)實(shí)現(xiàn)頁(yè)表共享。在這些技術(shù)中,CPU MMU及GPU MMU各自將指向共用頁(yè)表的位置的指針存儲(chǔ)在系統(tǒng)存儲(chǔ)器中。在CPU及GPU存取存儲(chǔ)器塊時(shí),它們的相應(yīng)的MMU使用它們的指針以從共享的頁(yè)表檢索物理存儲(chǔ)器地址。然而,用于共享頁(yè)表的這些技術(shù)可有時(shí)遭受識(shí)別不了不同處理單元對(duì)存儲(chǔ)器塊的不同存取能力的問(wèn)題。
[0021]不同的存取能力可與不同處理單元相關(guān)聯(lián)。舉例來(lái)說(shuō),頁(yè)條目在常規(guī)上是32位。前12位被保留為屬性位,且剩余的20位識(shí)別物理存儲(chǔ)器地址。這些屬性位識(shí)別處理單元的存取能力。作為一個(gè)實(shí)例,可將存儲(chǔ)器塊中的一些指定為可讀取及可寫(xiě)入,且可將其它存儲(chǔ)器塊指定為僅可讀取。屬性位的一或多個(gè)位強(qiáng)制執(zhí)行此可存取性限制。除了將存儲(chǔ)器塊指定為可讀取及可寫(xiě)入或僅可讀取的位之外,存在屬性位中的位的其它實(shí)例。舉例來(lái)說(shuō),屬性位的一或多個(gè)其它位可指示某些存儲(chǔ)器塊內(nèi)的數(shù)據(jù)也應(yīng)存儲(chǔ)于高速緩沖存儲(chǔ)器(例如,處理單元的L2高速緩沖存儲(chǔ)器)中。以此方式,頁(yè)條目的屬性位可描述由頁(yè)條目中的地址位尋址的存儲(chǔ)器塊。
[0022]在一些情況下,用于一個(gè)處理單元的屬性位可需要不同于用于另一處理單元的屬性位。舉例來(lái)說(shuō),在CPU上執(zhí)行的操作系統(tǒng)可將一些塊指定為可所述CPU寫(xiě)入及讀取,且將這些相同塊指定為僅可由GPU讀取。舉例來(lái)說(shuō),在其中CPU及GPU包含它們的自身相應(yīng)的頁(yè)表的上文所描述的實(shí)例中,虛擬地址到物理地址的映射在頁(yè)表中的每一者中可能相同,但屬性位可不相同。在其中CPU及GPU共享共用頁(yè)表的上文所描述的其它實(shí)例中,屬性位可由CPU及GPU兩者共享。這迫使操作系統(tǒng)界定用于CPU或GPU而不是用于兩者的屬性位。
[0023]舉例來(lái)說(shuō),在以上實(shí)例中,屬性位是界定CPU的可存取性但不一定是GPU的可存取性的屬性位。此可潛在地導(dǎo)致對(duì)塊的不善管理。舉例來(lái)說(shuō),可能需要將存儲(chǔ)器塊的可存取性限制為僅對(duì)于GPU可讀取。然而,因?yàn)榇藟K可由CPU讀取及寫(xiě)入,且屬性位不在CPU與GPU之間區(qū)分,所以在其中使用到共用頁(yè)表中的指針的實(shí)例中,GPU可無(wú)意地對(duì)存儲(chǔ)器塊寫(xiě)入。
[0024]本發(fā)明的技術(shù)針對(duì)于特定地指定用于不同處理單元的屬性位。舉例來(lái)說(shuō),GPU屬性位界定GPU的可存取性且CPU屬性位界定CPU的可存取性。以此方式,不同處理單元可共享共用頁(yè)表,且用于GPU的屬性位描述GPU對(duì)存儲(chǔ)器塊的可存取性且用于CPU的屬性位描述CPU對(duì)存儲(chǔ)器塊的可存取性。因?yàn)樘囟ǖ蒯槍?duì)CPU及GPU指定屬性位,所以GPU不正確地對(duì)存儲(chǔ)器塊進(jìn)行寫(xiě)入的概率會(huì)降低,同時(shí)由于不需要用于CPU及GPU的不同頁(yè)表而可實(shí)現(xiàn)存儲(chǔ)器節(jié)省。
[0025]可存在用以指定用于不同處理單元的屬性位的各種技術(shù)。舉例來(lái)說(shuō),如上文所描述,通常頁(yè)條目中的32位中的12位經(jīng)保留用于屬性位。這些12位中的許多者的值對(duì)于GPU及CPU兩者可相同。對(duì)于其值對(duì)于CPU及GPU可不同的剩余位,操作系統(tǒng)可特定地指定哪些位用于CPU且哪些位用于GPU。舉例來(lái)說(shuō),12個(gè)屬性位中的前兩個(gè)位可經(jīng)保留以指示存儲(chǔ)器塊是否可由CPU寫(xiě)入、讀取或?qū)懭爰白x取,所述12個(gè)屬性位中的接下來(lái)的兩個(gè)位可經(jīng)保留以指示存儲(chǔ)器塊是否可由GPU寫(xiě)入、讀取或?qū)懭爰白x取,且剩余的八個(gè)位可為GPU及CPU兩者共用。
[0026]作為另一實(shí)例,頁(yè)條目可包含多于32個(gè)位(例如,40位)。在此實(shí)例中,最后20位可經(jīng)保留以用于地址映射,且前20位可經(jīng)保留為屬性位。這些20位中的前10位可經(jīng)保留用于CPU,且這些20位中的最后10位可經(jīng)保留用于GPU?;蛘撸淞鶄€(gè)位可經(jīng)保留用于CPU。接下來(lái)的六個(gè)位可經(jīng)保留用于GPU,且接下來(lái)的8位可由CPU及GPU共享。位的這些分配既定是實(shí)例。本發(fā)明的技術(shù)不應(yīng)被視為限于以上實(shí)例。雖然出于解釋的目的,參考CPU及GPU來(lái)描述本發(fā)明的技術(shù)中的一些技術(shù),但應(yīng)理解,本發(fā)明的技術(shù)還可使用其它類型的處理單元實(shí)施。
[0027]圖1展示可實(shí)施本發(fā)明的技術(shù)的實(shí)例計(jì)算裝置,計(jì)算裝置100。計(jì)算裝置100的實(shí)例包含(但不限于)移動(dòng)無(wú)線電話、個(gè)人數(shù)字助理(PDA)、視頻游戲控制臺(tái)、手持式游戲單元、移動(dòng)視頻會(huì)議單元、膝上型計(jì)算機(jī)、桌上型計(jì)算機(jī)、電視機(jī)頂盒、數(shù)字媒體播放器、智能電話、平板計(jì)算機(jī)、相機(jī)及類似者。雖然不僅受限于資源有限的裝置,但本發(fā)明的技術(shù)對(duì)于包含電池供電的裝置的資源有限的裝置可特別有益。本發(fā)明的技術(shù)可(例如)通過(guò)更有效地使用有限的裝置存儲(chǔ)器來(lái)提高整體裝置性能,且可通過(guò)維持較少的頁(yè)表而降低計(jì)算復(fù)雜度,其可轉(zhuǎn)而提高裝置的響應(yīng)性以及減少電力消耗。
[0028]計(jì)算裝置100包含第一處理單元110、第二處理單元120及系統(tǒng)存儲(chǔ)器130。第一處理單元110包含MMU 112,且第二處理單元120包含MMU 122。MMU 110可包含TLB 114,且MMU 122可包含TLB 124。第一處理單元110可(例如)為裝置100的CPU。第二處理單元120可(例如)為可操作以輸出用于在顯示器上呈現(xiàn)的圖形數(shù)據(jù)的GPU。第一處理單元110及第二處理單元120可另外表示其它類型的處理單元(例如用于包含顯示器控制器、聯(lián)網(wǎng)裝置的各種外圍裝置的處理單元),或從例如CPU或GPU等處理器卸載信號(hào)處理的任何類型的數(shù)字信號(hào)處理(DSP)核。第一處理單元110及第二處理單元120的實(shí)例可包含(但不限于)數(shù)字信號(hào)處理器(DSP)、通用微處理器、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程邏輯陣列(FPGA)或其它等效的集成或離散邏輯電路。雖然一般將參考兩個(gè)處理單元來(lái)描述本發(fā)明的技術(shù),但可使用兩個(gè)以上處理單元實(shí)施所述技術(shù)。
[0029]系統(tǒng)存儲(chǔ)器130可為計(jì)算機(jī)可讀存儲(chǔ)媒體的實(shí)例。系統(tǒng)存儲(chǔ)器130可(例如)為一類型的隨機(jī)存取存儲(chǔ)器(RAM),例如動(dòng)態(tài)RAM、靜態(tài)RAM、晶閘管RAM、零電容器RAM、雙晶體管RAM,或一些其它類型的易失性存儲(chǔ)器。系統(tǒng)存儲(chǔ)器130還可為非易失性存儲(chǔ)器,例如快閃存儲(chǔ)器或其它類型的非易失性RAM。系統(tǒng)存儲(chǔ)器130可存儲(chǔ)致使處理單元110及處理單元120執(zhí)行歸于本發(fā)明中的每一者的功能的指令。以此方式,系統(tǒng)存儲(chǔ)器130可被視為包括指令的計(jì)算機(jī)可讀存儲(chǔ)媒體,所述指令致使例如處理單元110及處理單元120等一或多個(gè)處理器執(zhí)行各種功能。然而,在一些實(shí)例中,此類指令可存儲(chǔ)于除系統(tǒng)存儲(chǔ)器130之外的存儲(chǔ)器中(圖1中未展示)。
[0030]第一處理單元110及第二處理單元120經(jīng)配置以從系統(tǒng)存儲(chǔ)器130讀取數(shù)據(jù)及對(duì)系統(tǒng)存儲(chǔ)器130寫(xiě)入數(shù)據(jù)。為了讀取或?qū)懭霐?shù)據(jù),第一處理單元110及第二處理單元120經(jīng)配置以存取系統(tǒng)存儲(chǔ)器130中的特定物理位置。這些特定位置可(例如)為4KB的塊,且每一塊可具有其自身的唯一物理地址。然而,如上文所介紹,第一處理單元110及第二處理單元120可實(shí)施虛擬尋址,以使得向左第一處理單元110或第二處理單元120上執(zhí)行的應(yīng)用指派鄰接的虛擬存儲(chǔ)器地址。然而,對(duì)應(yīng)于這些鄰接的虛擬存儲(chǔ)器地址的物理存儲(chǔ)器地址可能被分段且是非鄰接的。因此,處理單元110及處理單元120可使用這些鄰接的虛擬存儲(chǔ)器地址而非對(duì)應(yīng)的非鄰接的物理存儲(chǔ)器地址來(lái)處理數(shù)據(jù)。然而,在處理單元110及處理單元120需要存取系統(tǒng)存儲(chǔ)器130 (即,從其讀取或?qū)ζ鋵?xiě)入)時(shí),需要將這些虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址。
[0031]MMU 112經(jīng)配置以針對(duì)第一處理單元110將虛擬存儲(chǔ)器地址映射到物理存儲(chǔ)器地址,且MMU 122經(jīng)配置以針對(duì)第二處理單元120將虛擬存儲(chǔ)器地址映射到物理存儲(chǔ)器地址。具有整組頁(yè)條目的完整頁(yè)表存儲(chǔ)于共用頁(yè)表132中。TLB 114及TLB 124中的每一者存儲(chǔ)存儲(chǔ)于共用頁(yè)表132中的頁(yè)條目的子集。所述子集可(例如)為最近存取的頁(yè)條目、頻繁存取的頁(yè)條目,或基于一些其它準(zhǔn)則所選擇的頁(yè)條目。存儲(chǔ)于TLB 114中的頁(yè)條目的子集可不同于存儲(chǔ)于TLB 124中的頁(yè)條目的子集。舉例來(lái)說(shuō),由第一處理單元110經(jīng)由MMU 112最近存取或頻繁存取的頁(yè)表?xiàng)l目可不同于由第二處理單元120經(jīng)由MMU122最近或頻繁存取的頁(yè)表?xiàng)l目。因此,TLB 114可存儲(chǔ)與TLB 124不同的頁(yè)表?xiàng)l目子集。
[0032]如果(例如)第一處理單元110需要將虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址,在TLB 114存儲(chǔ)用于所述虛擬存儲(chǔ)器地址的頁(yè)條目時(shí),那么MMU 112可使用TLB 114確定對(duì)應(yīng)于特定虛擬存儲(chǔ)器地址的物理存儲(chǔ)器地址。使用所確定的物理存儲(chǔ)器地址,處理單元110可從系統(tǒng)存儲(chǔ)器130的特定物理位置進(jìn)行讀取或?qū)ζ鋵?xiě)入。類似地,如果第二處理單元120需要將虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址,在TLB 124存儲(chǔ)用于所述虛擬存儲(chǔ)器地址的頁(yè)條目時(shí),那么MMU 122可使用TLB 124以確定對(duì)應(yīng)于特定虛擬存儲(chǔ)器地址的物理存儲(chǔ)器地址。使用所確定的物理存儲(chǔ)器地址,處理單元120可從系統(tǒng)存儲(chǔ)器130讀取或?qū)ζ鋵?xiě)入。
[0033]如上文所介紹,TLB 114及TLB 124可為存儲(chǔ)用于僅虛擬存儲(chǔ)器地址的子集的虛擬到物理映射的高速緩沖存儲(chǔ)器。因此,TLB 114可不存儲(chǔ)用于處理單元110的整個(gè)虛擬到物理映射,且類似地,TLB 124可不存儲(chǔ)用于處理單元120的整個(gè)虛擬到物理映射。在一些情況下,MMU 112可需要確定不具有存儲(chǔ)于TLB 114中的映射的用于虛擬存儲(chǔ)器地址的對(duì)應(yīng)物理存儲(chǔ)器地址。為了確定未包含在TLB 114中的用于虛擬存儲(chǔ)器地址的映射,第一處理單元110可存取存儲(chǔ)于系統(tǒng)存儲(chǔ)器130中的共用頁(yè)表132。共用頁(yè)表132包含用于處理單元110的整個(gè)虛擬到物理映射,且因此,可比TLB 114及TLB 124大得多。
[0034]如同MMU 112,在一些情況下,MMU 122可需要確定不具有存儲(chǔ)于TLB 124中的映射的用于虛擬存儲(chǔ)器地址的對(duì)應(yīng)物理存儲(chǔ)器地址。為了確定未包含在TLB 124中的用于虛擬存儲(chǔ)器地址的映射,第二處理單元120可存取存儲(chǔ)于系統(tǒng)存儲(chǔ)器130中的共用頁(yè)表132。以此方式,MMU 122可以實(shí)質(zhì)上類似于MMU 112的方式起作用。共用頁(yè)表132包含用于處理單元120以及用于處理單元110的整個(gè)虛擬到物理映射。以此方式,第一處理單元110及第二處理單元120共享相同的頁(yè)表(S卩,在圖1的實(shí)例中的共用頁(yè)表132)。如果MMU 112及MMU 122將維持用于處理單元110及處理單元120的單獨(dú)的頁(yè)表,那么由處理單元110及處理單元120共享的共用頁(yè)表132可小于兩個(gè)頁(yè)表的組合大小。共用頁(yè)表132可小于兩個(gè)單獨(dú)的頁(yè)表的組合大小,因?yàn)楣灿庙?yè)表132的一些頁(yè)表?xiàng)l目由MMU 112及MMU 122兩者共享。
[0035]共用頁(yè)表132可包含將虛擬存儲(chǔ)器地址映射到存儲(chǔ)器塊的物理存儲(chǔ)器地址的多個(gè)頁(yè)條目。存儲(chǔ)器塊可為可經(jīng)由其物理存儲(chǔ)器地址個(gè)別地存取的系統(tǒng)存儲(chǔ)器130的一部分。每一頁(yè)條目可包含第一組屬性位及第二組屬性位。第一組屬性位可設(shè)定用于第一處理單元110的控制,例如權(quán)限及存取權(quán)利,而第二組屬性位設(shè)定用于第二處理單元120的控制。每一頁(yè)條目可任選地包含一或多個(gè)額外組的屬性位,例如設(shè)定用于第一處理單元110及第二處理單元120兩者的共用控制的一組屬性位。
[0036]用于共用頁(yè)表132的頁(yè)條目的第一組屬性位及第二組屬性位可使得第一處理單元110及第二處理單元120能夠在共享共用頁(yè)表的同時(shí)具有不同的權(quán)限及存取權(quán)利。作為一個(gè)實(shí)例,第一組屬性位可經(jīng)設(shè)定以使得第一處理單元110具有對(duì)系統(tǒng)存儲(chǔ)器130的特定存儲(chǔ)器塊的讀取及寫(xiě)入存取兩者,而第二處理單元120可僅具有對(duì)相同特定存儲(chǔ)器塊的讀取存取。當(dāng)然,其它配置也是可能的,例如第二處理單元120具有讀取及寫(xiě)入存取兩者,而第一處理單元110僅具有讀取存取,或第一處理單元110及第二處理單元120中的一者具有讀取及寫(xiě)入存取兩者,而另一者既不具有讀取存取也不具有寫(xiě)入存取。
[0037]圖2展示可實(shí)施本發(fā)明的技術(shù)的另一實(shí)例計(jì)算裝置(計(jì)算裝置200)。計(jì)算裝置200的實(shí)例包含(但不限于)移動(dòng)無(wú)線電話、個(gè)人數(shù)字助理(PDA)、視頻游戲控制臺(tái)、手持式游戲單元、移動(dòng)視頻會(huì)議單元、膝上型計(jì)算機(jī)、桌上型計(jì)算機(jī)、電視機(jī)頂盒、數(shù)字媒體播放器、智能電話、平板計(jì)算機(jī)、相機(jī)及類似者。計(jì)算裝置200包含第一處理單元210、第二處理單元220、第三處理單元240、輸入/輸出存儲(chǔ)器管理單元(1MMU) 222及系統(tǒng)存儲(chǔ)器230。第一處理單元210包含MMU 212。第二處理單元220及第三處理單元240各自不具有專用的MMU,而是共享共用MMU( S卩,圖2中的1MMU 222)。第一處理單元210可(例如)為裝置200的CPU。第二處理單元120可(例如)為可操作以輸出用于在顯示器上呈現(xiàn)的圖形數(shù)據(jù)的GPU。第三處理單元240可(例如)為第三類型的處理單元,例如外圍裝置的處理單元。第一處理單元210、第二處理單元220及第三處理單元240的實(shí)例可包含(但不限于)數(shù)字信號(hào)處理器(DSP)、通用微處理器、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程邏輯陣列(FPGA)或其它等效的集成或離散邏輯電路。
[0038]系統(tǒng)存儲(chǔ)器230可為計(jì)算機(jī)可讀存儲(chǔ)媒體的實(shí)例。系統(tǒng)存儲(chǔ)器230可(例如)為一類型的隨機(jī)存取存儲(chǔ)器(RAM),例如動(dòng)態(tài)RAM、靜態(tài)RAM、晶閘管RAM、零電容器RAM、雙晶體管RAM,或一些其它類型的易失性存儲(chǔ)器。系統(tǒng)存儲(chǔ)器230還可為非易失性存儲(chǔ)器,例如快閃存儲(chǔ)器或其它類型的非易失性RAM。系統(tǒng)存儲(chǔ)器230可存儲(chǔ)致使處理單元210及處理單元220執(zhí)行歸于本發(fā)明中的每一者的功能的指令。以此方式,系統(tǒng)存儲(chǔ)器230可被視為包括指令的計(jì)算機(jī)可讀存儲(chǔ)媒體,所述指令致使例如處理單元210、處理單元220及/或處理單元240等一或多個(gè)處理器執(zhí)行各種功能。然而,在一些實(shí)例中,此類指令可存儲(chǔ)于除系統(tǒng)存儲(chǔ)器230之外的存儲(chǔ)器中(圖2中未展示)。
[0039]第一處理單元210、第二處理單元220及第三處理單元240經(jīng)配置以從系統(tǒng)存儲(chǔ)器230讀取數(shù)據(jù)及對(duì)其寫(xiě)入數(shù)據(jù)。為了讀取或?qū)懭霐?shù)據(jù),第一處理單元210、第二處理單元220及第三處理單元240經(jīng)配置以存取系統(tǒng)存儲(chǔ)器230中的特定物理位置。這些特定位置可(例如)為4KB的塊,且每一塊可具有其自身的唯一物理地址。如上文所介紹,然而,第一處理單元210、第二處理單元220及第三處理單元240可實(shí)施虛擬尋址,以使得向在第一處理單元210、第二處理單元220及/或第三處理單元240上執(zhí)行的應(yīng)用的作業(yè)指派鄰接的虛擬存儲(chǔ)器地址。然而,對(duì)應(yīng)于這些鄰接的虛擬存儲(chǔ)器地址的物理存儲(chǔ)器地址可能被分段且是非鄰接的。因此,處理單元210、處理單元220及第三處理單元240可使用這些鄰接的虛擬存儲(chǔ)器地址而非對(duì)應(yīng)的非鄰接的物理存儲(chǔ)器地址處理數(shù)據(jù)。然而,在處理單元210、處理單元220及處理單元240需要存取系統(tǒng)存儲(chǔ)器230 (即,從其讀取或?qū)ζ鋵?xiě)入)時(shí),需要將這些虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址。
[0040]MMU 212經(jīng)配置以針對(duì)第一處理單元210將虛擬存儲(chǔ)器地址映射到物理存儲(chǔ)器地址。1MMU 222經(jīng)配置以針對(duì)第二處理單元220及第三處理單元230兩者將虛擬存儲(chǔ)器地址映射到物理存儲(chǔ)器地址。具有整組頁(yè)條目的完整頁(yè)表存儲(chǔ)于共用頁(yè)表232中。TLB214及TLB 224中的每一者存儲(chǔ)存儲(chǔ)于共用頁(yè)表232中的頁(yè)條目的子集。所述子集可(例如)為最近存取的頁(yè)條目、頻繁存取的頁(yè)條目,或基于一些其它準(zhǔn)則所選擇的頁(yè)條目。
[0041]如果(例如)第一處理單元210需要將虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址,在TLB 214存儲(chǔ)用于所述虛擬存儲(chǔ)器地址的頁(yè)條目時(shí),那么MMU 212可使用TLB 214確定對(duì)應(yīng)于特定虛擬存儲(chǔ)器地址的物理存儲(chǔ)器地址。使用所確定的物理存儲(chǔ)器地址,處理單元210可從系統(tǒng)存儲(chǔ)器230讀取或?qū)ζ鋵?xiě)入。類似地,如果第二處理單元220或第三處理單元240需要將虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址,在TLB 224存儲(chǔ)用于所述虛擬存儲(chǔ)器地址的頁(yè)條目時(shí),那么MMU 222可使用TLB 224以確定對(duì)應(yīng)于特定虛擬存儲(chǔ)器地址的物理存儲(chǔ)器地址。使用所確定的物理存儲(chǔ)器地址,第二處理單元220及第三處理單元240可從系統(tǒng)存儲(chǔ)器230讀取或?qū)ζ鋵?xiě)入。
[0042]如上文所介紹,TLB 214及TLB 224可為存儲(chǔ)用于僅虛擬存儲(chǔ)器地址的子集的虛擬到物理映射的高速緩沖存儲(chǔ)器。因此,TLB 214可不存儲(chǔ)用于第一處理單元210的整個(gè)虛擬到物理映射,且類似地,TLB 224可不存儲(chǔ)用于第二處理單元220及第三處理單元240的整個(gè)虛擬到物理映射。在一些情況下,MMU 212可需要確定不具有存儲(chǔ)于TLB 214中的映射的用于虛擬存儲(chǔ)器地址的對(duì)應(yīng)物理存儲(chǔ)器地址。為了確定未包含在TLB 214中的用于虛擬存儲(chǔ)器地址的映射,MMU 212存取存儲(chǔ)于系統(tǒng)存儲(chǔ)器230中的共用頁(yè)表232。共用頁(yè)表232包含用于處理單元210的整個(gè)虛擬到物理映射,且因此,可比TLB 214大得多。
[0043]如同第一處理單元210,在一些情況下,第二處理單元220可需要確定不具有存儲(chǔ)于TLB 224中的映射的用于虛擬存儲(chǔ)器地址的對(duì)應(yīng)物理存儲(chǔ)器地址。為了確定未包含在TLB 224中的用于虛擬存儲(chǔ)器地址的映射,MMU 222存取存儲(chǔ)于系統(tǒng)存儲(chǔ)器230中的共用頁(yè)表232。共用頁(yè)表232包含用于第一處理單元210以及用于第二處理單元220和第三處理單元240的整個(gè)虛擬到物理映射。以此方式,第一處理單元210、第二處理單元220及第三處理單元240共享相同的頁(yè)表(即,在圖2的實(shí)例中的共用頁(yè)表232)。
[0044]共用頁(yè)表232可包含將虛擬存儲(chǔ)器地址映射到存儲(chǔ)器塊的物理存儲(chǔ)器地址的多個(gè)頁(yè)條目。每一頁(yè)條目可包含第一組屬性位及第二組屬性位。第一組屬性位可設(shè)定用于第一處理單元210的控制,例如權(quán)限及存取權(quán)利,而第二組屬性位設(shè)定用于第二處理單元220及第三處理單元240的控制。每一頁(yè)條目可任選地包含一或多個(gè)額外組的屬性位,例如設(shè)定用于第一處理單元210、第二處理單元220及第三處理單元240全部的共用控制的一組屬性位。
[0045]在一些實(shí)例中,第二組屬性可設(shè)定用于共享1MMU 222的所有處理單元的控制。因此,在此實(shí)例中,第二組屬性位界定用于第二處理單元220及第三處理單元240兩者的控制。然而,在其它實(shí)例中,第二處理單元220及第三處理單元240可各自具有一組專用屬性位。在此實(shí)例中,第二組屬性可設(shè)定用于第二處理單元220的控制,而第三組屬性位可設(shè)定用于第三處理單元240的控制。
[0046]用于共用頁(yè)表232的頁(yè)條目的第一組屬性位及第二組屬性位可使得第一處理單元210在與第二處理單元220及第三處理單元240共享共用頁(yè)表的同時(shí)具有與第二處理單元220及第三處理單元240不同的權(quán)限及存取權(quán)利。作為一個(gè)實(shí)例,第一組屬性位可經(jīng)設(shè)定以使得第一處理單元210具有對(duì)系統(tǒng)存儲(chǔ)器230的特定存儲(chǔ)器塊的讀取及寫(xiě)入存取權(quán)兩者,而第二處理單元220及第三處理單元240可僅具有對(duì)相同特定存儲(chǔ)器塊的讀取存取權(quán)。當(dāng)然,其它配置也是可能的,例如第二處理單元220及第三處理單元240具有讀取及寫(xiě)入存取權(quán)兩者,而第一處理單元210僅具有讀取存取權(quán),或第二處理單元220及第三處理單元240具有讀取及寫(xiě)入存取權(quán)兩者,而第一處理單元210既不具有讀取存取權(quán)也不具有寫(xiě)入存取權(quán)。
[0047]圖3是說(shuō)明共用頁(yè)表332的各方面的概念圖。共用頁(yè)表可表示圖1的共用頁(yè)表132或圖2的共用頁(yè)表232。圖3既定是概念性的以用于解釋的目的,且不應(yīng)被解釋為表示實(shí)際數(shù)據(jù)結(jié)構(gòu)。共用頁(yè)表332包含多個(gè)頁(yè)條目。每一頁(yè)條目包含第一組屬性位352A-N、第二組屬性位354A-N、第三組屬性位356A-N及物理存儲(chǔ)器地址位358A-N。因此第一組屬性位352A、第二組屬性位354A、第三組屬性位356A及物理存儲(chǔ)器地址位358A共同地構(gòu)成頁(yè)條目A。第一組屬性位352B、第二組屬性位354B、第三組屬性位356B及物理存儲(chǔ)器地址位358B共同地構(gòu)成頁(yè)條目B,以此類推。如上文所論述,頁(yè)條目356A-N中的每一者可為32位、40位或某一其它大小。物理存儲(chǔ)器地址位358A-N可各自為20位或某一其它大小,且可針對(duì)第一組屬性位352A-N、第二組屬性位354A-N及第三組屬性位356A-N中的每一者使用各種大小。
[0048]圖3中的系統(tǒng)存儲(chǔ)器334表示具有存儲(chǔ)器塊134A-N的物理存儲(chǔ)器。系統(tǒng)存儲(chǔ)器334可(例如)對(duì)應(yīng)于圖1的系統(tǒng)存儲(chǔ)器130或圖2的系統(tǒng)存儲(chǔ)器230。存儲(chǔ)器塊134A-N既定表示存儲(chǔ)器334的非鄰接塊,意味著存儲(chǔ)器塊334A-N的物理存儲(chǔ)器地址可為非鄰接的。頁(yè)條目A-N中的每一者將存儲(chǔ)器塊334A-N中的一者的物理地址包含在物理存儲(chǔ)器地址位358A-N中。
[0049]頁(yè)條目A-N中的每一者對(duì)應(yīng)于虛擬存儲(chǔ)器地址。在例如圖1的第一處理單元110或第二處理單元120等處理單元需要存取系統(tǒng)存儲(chǔ)器時(shí),其可使用頁(yè)表332以尋找用于虛擬存儲(chǔ)器地址的對(duì)應(yīng)物理存儲(chǔ)器地址。如果(例如)第一處理單元110需要將特定虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址,那么第一處理單元110讀取對(duì)應(yīng)于所述特定虛擬存儲(chǔ)器地址的頁(yè)條目。
[0050]在此實(shí)例中,假定頁(yè)條目A對(duì)應(yīng)于特定虛擬存儲(chǔ)器地址。第一處理單元110可因此讀取頁(yè)條目A以確定存儲(chǔ)于物理存儲(chǔ)器地址位358A中的對(duì)應(yīng)的物理存儲(chǔ)器地址。在圖3的實(shí)例中,條目A映射到其中存儲(chǔ)物理存儲(chǔ)器塊334B的物理存儲(chǔ)器地址。因此,物理存儲(chǔ)器地址位358A將物理地址存儲(chǔ)到存儲(chǔ)器塊334B在系統(tǒng)存儲(chǔ)器334內(nèi)所處的地方。第一屬性位352A設(shè)定第一處理單元110在存取物理存儲(chǔ)器塊334B時(shí)的權(quán)限。舉例來(lái)說(shuō),第一位可能確定第一處理單元110是否具有對(duì)存儲(chǔ)器塊334B的讀取特權(quán)。第二位可能確定第一處理單元110是否具有對(duì)存儲(chǔ)器塊334B的寫(xiě)入特權(quán)。
[0051]在一些情況下,第二處理單元120可需要翻譯由第一處理單元110翻譯的相同特定虛擬存儲(chǔ)器地址。為此,第二處理單元120可讀取第一處理單元110在翻譯特定虛擬存儲(chǔ)器地址時(shí)所讀取的對(duì)應(yīng)于所述特定虛擬存儲(chǔ)器地址的相同頁(yè)條目。
[0052]在此實(shí)例中,再次假設(shè)頁(yè)條目A對(duì)應(yīng)于所述特定虛擬存儲(chǔ)器地址。第二處理單元120可因此讀取頁(yè)條目A以確定存儲(chǔ)于物理存儲(chǔ)器位358A中的對(duì)應(yīng)的物理存儲(chǔ)器地址。在圖3的實(shí)例中,條目A映射到物理存儲(chǔ)器塊334B。因此,物理存儲(chǔ)器地址位358A存儲(chǔ)存儲(chǔ)器塊334B的物理地址。第二屬性位354A界定第二處理單元120在存取物理存儲(chǔ)器塊334B時(shí)的權(quán)限。舉例來(lái)說(shuō),第二屬性位356A的第一位可能確定第二處理單元120是否具有對(duì)存儲(chǔ)器塊334B的讀取特權(quán)。第二屬性位356A的第二位可能確定第二處理單元120是否具有對(duì)存儲(chǔ)器塊334B的寫(xiě)入特權(quán)。以此方式,即使第一處理單元110及第二處理單元120在存取相同頁(yè)表中的相同頁(yè)條目以將虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址,第一處理單元110及第二處理單元120也可具有對(duì)相同存儲(chǔ)器塊的不同的特權(quán),例如不同的讀取及寫(xiě)入存取。
[0053]在另一實(shí)例中,在例如第一處理單元210或圖2的第二處理單元220或第三處理單元240中的一者等處理單元需要存取系統(tǒng)存儲(chǔ)器時(shí),其可使用頁(yè)表332以尋找用于虛擬存儲(chǔ)器地址的對(duì)應(yīng)物理存儲(chǔ)器地址。在此實(shí)例中,第一屬性位352A-N可界定第一處理單元210的權(quán)限,而第二屬性位354A-N可界定第二處理單元220及第三處理單元240兩者的權(quán)限。因此,在第二處理單元220需要存取存儲(chǔ)器334的物理存儲(chǔ)器塊時(shí),第二屬性位354A-N界定第二處理單元220的權(quán)限。類似地,在第三處理單元240需要存取存儲(chǔ)器334的物理存儲(chǔ)器塊時(shí),第二屬性位354A-N還界定第三處理單元240的權(quán)限。
[0054]圖4展示說(shuō)明本發(fā)明中描述的虛擬到物理映射技術(shù)的流程圖。圖4的技術(shù)可由使用兩個(gè)或更多個(gè)處理單元的計(jì)算裝置(例如圖1的計(jì)算裝置100或圖2的計(jì)算裝置200)執(zhí)行。將參考計(jì)算裝置100描述圖4的技術(shù),但應(yīng)理解,圖4的技術(shù)適用于廣泛的計(jì)算裝置且不僅受限于經(jīng)配置為計(jì)算裝置100的裝置。
[0055]第一處理單元110經(jīng)由MMU 112使用存儲(chǔ)于存儲(chǔ)器中的共用頁(yè)表將虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址(410)。所述共用頁(yè)表為第一處理單元110及第二處理單元120所共用且存儲(chǔ)用于由應(yīng)用存取的存儲(chǔ)器塊的虛擬存儲(chǔ)器地址到物理存儲(chǔ)器地址的映射。所述應(yīng)用可在第一處理單元110及第二處理單元120兩者上執(zhí)行。所述共用頁(yè)表包含第一處理單元110及第二處理單元120用以存取存儲(chǔ)器塊的頁(yè)條目。所述頁(yè)條目還包含界定存儲(chǔ)器塊的物理地址的物理地址位。
[0056]第一處理單元120存取由物理存儲(chǔ)器地址識(shí)別的存儲(chǔ)器塊(420)。所述頁(yè)條目包含界定第一處理單元對(duì)存儲(chǔ)器塊的可存取性的第一組屬性位。第二處理單元120使用存儲(chǔ)于所述存儲(chǔ)器中的共用頁(yè)表將虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址(430)。以此方式,第一處理單元110及第二處理單元120在將虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址時(shí)存取相同的共用頁(yè)表。第二處理單元120存取由物理存儲(chǔ)器地址識(shí)別的存儲(chǔ)器塊(440)。所述頁(yè)條目包含界定第二處理單元對(duì)相同存儲(chǔ)器塊的可存取性的第二組屬性位。在此實(shí)例中,第一處理單元110及第二處理單元120在將特定虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址時(shí)存取相同的頁(yè)條目,但所述頁(yè)條目可針對(duì)第一處理單元110及第二處理單元120具有單獨(dú)的屬性位。所述頁(yè)條目還可包含界定第一處理單元110及第二處理單元120兩者共用的屬性的第三組屬性位。
[0057]在圖4的實(shí)例中,第一處理單元110可為CPU,且第二處理單元120可為GPU。第一組屬性位可界定第一處理單元110是否具有對(duì)存儲(chǔ)器塊的寫(xiě)入存取權(quán),且界定第一處理單元110是否具有對(duì)存儲(chǔ)器塊的讀取存取權(quán)。第二組屬性位可界定第二處理單元120是否具有對(duì)存儲(chǔ)器塊的寫(xiě)入存取權(quán)且界定第二處理單元120是否具有對(duì)存儲(chǔ)器塊的讀取存取權(quán)。第一處理單元110對(duì)存儲(chǔ)器塊的可存取性可不同于第二處理單元120對(duì)存儲(chǔ)器塊的可存取性。舉例來(lái)說(shuō),基于所述第一組屬性,第一處理單元110可具有對(duì)存儲(chǔ)器塊的讀取存取權(quán)及寫(xiě)入存取權(quán),而基于第二組屬性,第二處理單元120具有對(duì)存儲(chǔ)器塊的只讀存取權(quán)。
[0058]第一處理單元110可包含第一 MMU(例如,MMU 112),且第二處理單元120可包含第二 MMU(例如,MMU 122)。第一 MMU可經(jīng)配置以存取共用頁(yè)表,且第二 MMU還可經(jīng)配置以存取所述相同共用頁(yè)表。
[0059]系統(tǒng)存儲(chǔ)器26的實(shí)例包含但不限于隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、CD-ROM或其它光盤存儲(chǔ)裝置、磁盤存儲(chǔ)裝置或其它磁性存儲(chǔ)裝置、快閃存儲(chǔ)器,或可用于以指令或數(shù)據(jù)結(jié)構(gòu)的形式攜載或存儲(chǔ)所要的程序代碼且可由計(jì)算機(jī)或處理器存取的任何其它媒體。在一些實(shí)例中,系統(tǒng)存儲(chǔ)器26可被視為非暫時(shí)性存儲(chǔ)媒體。術(shù)語(yǔ)“非暫時(shí)性”可指示存儲(chǔ)媒體不體現(xiàn)于載波或傳播信號(hào)中。然而,術(shù)語(yǔ)“非暫時(shí)性”不應(yīng)解釋為意指系統(tǒng)存儲(chǔ)器26是不可移動(dòng)的。作為一個(gè)實(shí)例,可從裝置10移除系統(tǒng)存儲(chǔ)器26,及將系統(tǒng)存儲(chǔ)器26移動(dòng)到另一裝置。作為另一實(shí)例,實(shí)質(zhì)上類似于系統(tǒng)存儲(chǔ)器26的存儲(chǔ)裝置可插入到裝置10中。在某些實(shí)例中,非暫時(shí)性存儲(chǔ)媒體可存儲(chǔ)可隨時(shí)間改變的數(shù)據(jù)(例如,在RAM中)。
[0060]在一或多個(gè)實(shí)例中,所描述的功能可以硬件、軟件、固件或其任何組合來(lái)實(shí)施。如果以軟件實(shí)施,則所述功能可以作為一或多個(gè)指令或代碼在計(jì)算機(jī)可讀媒體上存儲(chǔ)或傳輸,并且由基于硬件的處理單元來(lái)執(zhí)行。計(jì)算機(jī)可讀媒體可包含計(jì)算機(jī)可讀存儲(chǔ)媒體,其對(duì)應(yīng)于有形媒體,例如數(shù)據(jù)存儲(chǔ)媒體,或包括任何促進(jìn)將計(jì)算機(jī)程序從一處傳送到另一處的媒體(例如,根據(jù)通信協(xié)議)的通信媒體。以此方式,計(jì)算機(jī)可讀媒體一般可對(duì)應(yīng)于(1)非暫時(shí)性的有形計(jì)算機(jī)可讀存儲(chǔ)媒體或(2)例如信號(hào)或載波等通信媒體。數(shù)據(jù)存儲(chǔ)媒體可為可由一或多個(gè)計(jì)算機(jī)或一個(gè)或多個(gè)處理器存取以檢索用于實(shí)施本發(fā)明中描述的技術(shù)的指令、代碼及/或數(shù)據(jù)結(jié)構(gòu)的任何可用媒體。計(jì)算機(jī)程序產(chǎn)品可以包含計(jì)算機(jī)可讀媒體。
[0061]舉例來(lái)說(shuō)而非限制,此類計(jì)算機(jī)可讀存儲(chǔ)媒體可包含RAM、ROM、EEPROM、CD-ROM或其它光盤存儲(chǔ)裝置、磁盤存儲(chǔ)裝置或其它磁性存儲(chǔ)裝置、快閃存儲(chǔ)器或可用來(lái)存儲(chǔ)呈指令或數(shù)據(jù)結(jié)構(gòu)的形式的所要的程序代碼并且可由計(jì)算機(jī)存取的任何其它媒體。同樣,任何連接可恰當(dāng)?shù)胤Q為計(jì)算機(jī)可讀媒體。舉例來(lái)說(shuō),如果使用同軸電纜、光纖纜線、雙絞線、數(shù)字訂戶線(DSL)或例如紅外線、無(wú)線電和微波等無(wú)線技術(shù)從網(wǎng)站、服務(wù)器或其它遠(yuǎn)程源傳輸指令,那么同軸電纜、光纖纜線、雙絞線、DSL或例如紅外線、無(wú)線電和微波等無(wú)線技術(shù)包含在媒體的定義中。然而,應(yīng)理解,計(jì)算機(jī)可讀存儲(chǔ)媒體和數(shù)據(jù)存儲(chǔ)媒體并不包含連接、載波、信號(hào)或其它暫時(shí)性媒體,而是實(shí)際上針對(duì)于非暫時(shí)性有形存儲(chǔ)媒體。如本文所使用,磁盤及光盤包含壓縮光盤(CD)、激光光盤、光學(xué)光盤、數(shù)字多功能光盤(DVD)、軟性磁盤及藍(lán)光光盤,其中磁盤通常以磁性方式重現(xiàn)數(shù)據(jù),而光盤使用激光以光學(xué)方式重現(xiàn)數(shù)據(jù)。上述各者的組合也應(yīng)包含在計(jì)算機(jī)可讀媒體的范圍內(nèi)。
[0062]指令可以由一或多個(gè)處理器執(zhí)行,所述一或多個(gè)處理器例如是一或多個(gè)數(shù)字信號(hào)處理器(DSP)、通用微處理器、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程邏輯陣列(FPGA)或其它等效的集成或離散邏輯電路。因此,如本文中所使用的術(shù)語(yǔ)“處理器”可指上述結(jié)構(gòu)或適合于實(shí)施本文中所描述的技術(shù)的任一其它結(jié)構(gòu)中的任一者。另外,在一些方面中,本文中所描述的功能性可以在經(jīng)配置用于編碼和解碼的專用硬件和/或軟件模塊內(nèi)提供,或者并入在組合編解碼器中。并且,可將所述技術(shù)完全實(shí)施于一或多個(gè)電路或邏輯元件中。
[0063]本發(fā)明的技術(shù)可實(shí)施在廣泛多種裝置或設(shè)備中,包含無(wú)線手持機(jī)、集成電路(1C)或一組1C(例如,芯片組)。本發(fā)明中描述各種組件、模塊或單元是為了強(qiáng)調(diào)經(jīng)配置以執(zhí)行所揭示技術(shù)的裝置的功能方面,但未必需要通過(guò)不同硬件單元實(shí)現(xiàn)。實(shí)際上,如上文所描述,各種單元可以結(jié)合合適的軟件及/或固件組合在編碼解碼器硬件單元中,或者通過(guò)互操作硬件單元的集合來(lái)提供,所述硬件單元包含如上文所描述的一或多個(gè)處理器。
[0064]已描述各種實(shí)例。這些及其它實(shí)例在所附權(quán)利要求書(shū)的范圍內(nèi)。
【權(quán)利要求】
1.一種設(shè)備,其包括: 第一處理單元; 第二處理單元;及 存儲(chǔ)器,其存儲(chǔ): 共用頁(yè)表,其為所述第一處理單元及所述第二處理單元所共用,且存儲(chǔ)用于所述存儲(chǔ)器內(nèi)的由應(yīng)用的工作存取的存儲(chǔ)器塊的虛擬存儲(chǔ)器地址到物理存儲(chǔ)器地址的映射;及 所述共用頁(yè)表內(nèi)的所述第一處理單元及所述第二處理單元用以存取所述存儲(chǔ)器塊中的一存儲(chǔ)器塊的頁(yè)條目,其中所述頁(yè)條目包括界定所述第一處理單元對(duì)所述存儲(chǔ)器塊的可存取性的第一組屬性位、界定所述第二處理單元對(duì)所述相同存儲(chǔ)器塊的可存取性的第二組屬性位,及界定所述存儲(chǔ)器內(nèi)的所述存儲(chǔ)器塊的物理地址的物理地址位。
2.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述頁(yè)條目包括界定所述第一處理單元及所述第二處理單元兩者所共用的屬性的第三組屬性位。
3.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述第一處理單元包括中央處理單元CPU、且其中所述第二處理單元包括圖形處理單元GPU。
4.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述第一組屬性位界定所述第一處理單元是否具有對(duì)所述存儲(chǔ)器塊的寫(xiě)入存取權(quán),且界定所述第一處理單元是否具有對(duì)所述存儲(chǔ)器塊的讀取存取權(quán),且其中所述第二組屬性位界定所述第二處理單元是否具有對(duì)所述存儲(chǔ)器塊的寫(xiě)入存取權(quán)且界定所述第二處理單元是否具有對(duì)所述存儲(chǔ)器塊的讀取存取權(quán)。
5.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述第一處理單元對(duì)所述存儲(chǔ)器塊的所述可存取性不同于所述第二處理單元對(duì)所述存儲(chǔ)器塊的所述可存取性。
6.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述第一組屬性位界定所述第一處理單元具有對(duì)所述存儲(chǔ)器塊的讀取存取權(quán)及寫(xiě)入存取權(quán),且其中所述第二組屬性位界定所述第二處理單元具有對(duì)所述存儲(chǔ)器塊的只讀存取權(quán)。
7.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述第一處理單元包括第一存儲(chǔ)器管理單元MMU且所述第二處理單元包括第二 MMU,其中所述第一 MMU經(jīng)配置以存取所述共用頁(yè)表且所述第二 MMU經(jīng)配置以存取所述共用頁(yè)表。
8.根據(jù)權(quán)利要求1所述的設(shè)備,其進(jìn)一步包括: 第一存儲(chǔ)器管理單元MMU,其中所述第一處理單元包括所述第一 MMU ; 第三處理單元; 輸入/輸出MMU 1MMU,其中所述1MMU由所述第二處理單元及所述第三處理單元共 其中所述第一 MMU經(jīng)配置以存取所述共用頁(yè)表且所述1MMU經(jīng)配置以存取所述共用頁(yè)表。
9.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述應(yīng)用在所述第一處理單元及所述第二處理單元兩者上執(zhí)行。
10.一種方法,其包括: 由第一處理單元使用存儲(chǔ)于存儲(chǔ)器中的共用頁(yè)表將虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址; 由所述第一處理單元存取由所述物理存儲(chǔ)器地址識(shí)別的存儲(chǔ)器塊; 由第二處理單元使用存儲(chǔ)于所述存儲(chǔ)器中的所述共用頁(yè)表將所述虛擬存儲(chǔ)器地址翻譯為所述物理存儲(chǔ)器地址; 由所述第二處理單元存取由所述物理存儲(chǔ)器地址識(shí)別的所述存儲(chǔ)器塊; 其中所述共用頁(yè)表為所述第一處理單元及所述第二處理單元所共用,且存儲(chǔ)用于由應(yīng)用的工作存取的存儲(chǔ)器塊的虛擬存儲(chǔ)器地址到物理存儲(chǔ)器地址的映射;且 其中所述共用頁(yè)表包括所述第一處理單元及所述第二處理單元用以存取所述存儲(chǔ)器塊的頁(yè)條目,其中所述頁(yè)條目包括界定所述第一處理單元對(duì)所述存儲(chǔ)器塊的可存取性的第一組屬性位、界定所述第二處理單元對(duì)所述相同存儲(chǔ)器塊的可存取性的第二組屬性位,及界定所述存儲(chǔ)器塊的物理地址的物理地址位。
11.根據(jù)權(quán)利要求10所述的方法,其中所述頁(yè)條目包括界定所述第一處理單元及所述第二處理單元兩者所共用的屬性的第三組屬性位。
12.根據(jù)權(quán)利要求10所述的方法,其中所述第一處理單元包括中央處理單元CPU,且其中所述第二處理單元包括圖形處理單元GPU。
13.根據(jù)權(quán)利要求10所述的方法,其中所述第一組屬性位界定所述第一處理單元是否具有對(duì)所述存儲(chǔ)器塊的寫(xiě)入存取權(quán),且界定所述第一處理單元是否具有對(duì)所述存儲(chǔ)器塊的讀取存取權(quán);而且,其中所述第二組屬性位界定所述第二處理單元是否具有對(duì)所述存儲(chǔ)器塊的寫(xiě)入存取權(quán),且界定所述第二處理單元是否具有對(duì)所述存儲(chǔ)器塊的讀取存取權(quán)。
14.根據(jù)權(quán)利要求10所述的方法,其中所述第一處理單元對(duì)所述存儲(chǔ)器塊的所述可存取性不同于所述第二處理單元對(duì)所述存儲(chǔ)器塊的所述可存取性。
15.根據(jù)權(quán)利要求10所述的方法,其中基于所述第一組屬性,所述第一處理單元具有對(duì)所述存儲(chǔ)器塊的讀取存取權(quán)及寫(xiě)入存取權(quán),且其中基于所述第二組屬性,所述第二處理單元具有對(duì)所述存儲(chǔ)器塊的只讀存取權(quán)。
16.根據(jù)權(quán)利要求10所述的方法,其中所述第一處理單元包括第一存儲(chǔ)器管理單元MMU且所述第二處理單元包括第二 MMU,其中所述第一 MMU經(jīng)配置以存取所述共用頁(yè)表且所述第二 MMU經(jīng)配置以存取所述共用頁(yè)表。
17.根據(jù)權(quán)利要求10所述的方法,其進(jìn)一步包括: 由第三處理單元使用存儲(chǔ)于所述存儲(chǔ)器中的所述共用頁(yè)表將第二虛擬存儲(chǔ)器地址翻譯為第二物理存儲(chǔ)器地址; 由所述第三處理單元存取由所述第二物理存儲(chǔ)器地址識(shí)別的存儲(chǔ)器塊; 其中所述第二處理單元及所述第三處理單元共享輸入/輸出MMU 1MMU,且其中所述1MMU經(jīng)配置以存取所述共用頁(yè)表。
18.根據(jù)權(quán)利要求10所述的方法,其中所述應(yīng)用在所述第一處理單元及所述第二處理單元兩者上執(zhí)行。
19.一種設(shè)備,其包括: 第一處理裝置; 第二處理裝置; 存儲(chǔ)器; 其中所述第一處理裝置包括 用于使用存儲(chǔ)于所述存儲(chǔ)器中的共用頁(yè)表將虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址的第一裝置; 用于存取由所述物理存儲(chǔ)器地址識(shí)別的存儲(chǔ)器塊的第一裝置;其中所述第二處理裝置包括 用于使用存儲(chǔ)于所述存儲(chǔ)器中的所述共用頁(yè)表將所述虛擬存儲(chǔ)器地址翻譯為所述物理存儲(chǔ)器地址的第二裝置; 用于存取由所述物理存儲(chǔ)器地址識(shí)別的所述存儲(chǔ)器塊的第二裝置; 其中所述共用頁(yè)表為所述第一處理裝置及所述第二處理裝置所共用且存儲(chǔ)用于由應(yīng)用的工作存取的存儲(chǔ)器塊的虛擬存儲(chǔ)器地址到物理存儲(chǔ)器地址的映射;且 其中所述共用頁(yè)表包括所述第一處理裝置及所述第二處理裝置用以存取所述存儲(chǔ)器塊的頁(yè)條目,其中所述頁(yè)條目包括界定所述第一處理裝置對(duì)所述存儲(chǔ)器塊的可存取性的第一組屬性位、界定所述第二處理裝置對(duì)所述相同存儲(chǔ)器塊的可存取性的第二組屬性位,及界定所述存儲(chǔ)器塊的物理地址的物理地址位。
20.根據(jù)權(quán)利要求19所述的設(shè)備,其中所述頁(yè)條目包括界定所述第一處理裝置及所述第二處理裝置兩者所共用的屬性的第三組屬性位。
21.根據(jù)權(quán)利要求19所述的設(shè)備,其中所述第一處理裝置包括中央處理單元CPU,且其中所述第二處理裝置包括圖形處理單元GPU。
22.根據(jù)權(quán)利要求19所述的設(shè)備,其中所述第一組屬性位界定所述第一處理裝置是否具有對(duì)所述存儲(chǔ)器塊的寫(xiě)入存取權(quán),且界定所述第一處理裝置是否具有對(duì)所述存儲(chǔ)器塊的讀取存取權(quán);而且,其中所述第二組屬性位界定所述第二處理裝置是否具有對(duì)所述存儲(chǔ)器塊的寫(xiě)入存取權(quán),且界定所述第二處理裝置是否具有對(duì)所述存儲(chǔ)器塊的讀取存取權(quán)。
23.根據(jù)權(quán)利要求19所述的設(shè)備,其中所述第一處理裝置對(duì)所述存儲(chǔ)器塊的所述可存取性不同于所述第二處理裝置對(duì)所述存儲(chǔ)器塊的所述可存取性。
24.根據(jù)權(quán)利要求19所述的設(shè)備,其中基于所述第一組屬性,所述第一處理裝置具有對(duì)所述存儲(chǔ)器塊的讀取存取權(quán)及寫(xiě)入存取權(quán),且其中基于所述第二組屬性,所述第二處理裝置具有對(duì)所述存儲(chǔ)器塊的只讀存取權(quán)。
25.根據(jù)權(quán)利要求19所述的設(shè)備,其中所述第一處理裝置包括第一存儲(chǔ)器管理單元MMU且所述第二處理裝置包括第二 MMU,其中所述第一 MMU經(jīng)配置以存取所述共用頁(yè)表且所述第二 MMU經(jīng)配置以存取所述共用頁(yè)表。
26.根據(jù)權(quán)利要求19所述的設(shè)備,其進(jìn)一步包括: 第三處理裝置,其中所述第三處理裝置包括 用于使用存儲(chǔ)于所述存儲(chǔ)器中的所述共用頁(yè)表將第二虛擬存儲(chǔ)器地址翻譯為第二物理存儲(chǔ)器地址的第二裝置; 所述用于存取由所述第二物理存儲(chǔ)器地址識(shí)別的所述存儲(chǔ)器塊的第二裝置。
27.根據(jù)權(quán)利要求19所述的設(shè)備,其中所述應(yīng)用在所述第一處理裝置及所述第二處理裝置兩者上執(zhí)行。
28.—種在其上存儲(chǔ)有指令的計(jì)算機(jī)可讀存儲(chǔ)媒體,所述指令在被執(zhí)行時(shí)致使第一處理單元及第二處理單元: 由所述第一處理單元使用存儲(chǔ)于存儲(chǔ)器中的共用頁(yè)表將虛擬存儲(chǔ)器地址翻譯為物理存儲(chǔ)器地址; 由所述第一處理單元存取由所述物理存儲(chǔ)器地址識(shí)別的存儲(chǔ)器塊; 由所述第二處理單元使用存儲(chǔ)于所述存儲(chǔ)器中的所述共用頁(yè)表將所述虛擬存儲(chǔ)器地址翻譯為所述物理存儲(chǔ)器地址; 由所述第二處理單元存取由所述物理存儲(chǔ)器地址識(shí)別的所述存儲(chǔ)器塊; 其中所述共用頁(yè)表為所述第一處理單元及所述第二處理單元所共用且存儲(chǔ)用于由應(yīng)用的工作存取的存儲(chǔ)器塊的虛擬存儲(chǔ)器地址到物理存儲(chǔ)器地址的映射;且 其中所述共用頁(yè)表包括所述第一處理單元及所述第二處理單元用以存取所述存儲(chǔ)器塊的頁(yè)條目,其中所述頁(yè)條目包括界定所述第一處理單元對(duì)所述存儲(chǔ)器塊的可存取性的第一組屬性位、界定所述第二處理單元對(duì)所述相同存儲(chǔ)器塊的可存取性的第二組屬性位,及界定所述存儲(chǔ)器塊的物理地址的物理地址位。
29.根據(jù)權(quán)利要求28所述的計(jì)算機(jī)可讀存儲(chǔ)媒體,其中所述頁(yè)條目包括界定所述第一處理單元及所述第二處理單元兩者所共用的屬性的第三組屬性位。
30.根據(jù)權(quán)利要求28所述的計(jì)算機(jī)可讀存儲(chǔ)媒體,其中所述第一處理單元包括中央處理單元CPU,且其中所述第二處理單元包括圖形處理單元GPU。
31.根據(jù)權(quán)利要求28所述的計(jì)算機(jī)可讀存儲(chǔ)媒體,其中所述第一組屬性位界定所述第一處理單元是否具有對(duì)所述存儲(chǔ)器塊的寫(xiě)入存取權(quán),且界定所述第一處理單元是否具有對(duì)所述存儲(chǔ)器塊的讀取存取權(quán);而且,其中所述第二組屬性位界定所述第二處理單元是否具有對(duì)所述存儲(chǔ)器塊的寫(xiě)入存取權(quán),且界定所述第二處理單元是否具有對(duì)所述存儲(chǔ)器塊的讀取存取權(quán)。
32.根據(jù)權(quán)利要求28所述的計(jì)算機(jī)可讀存儲(chǔ)媒體,其中所述第一處理單元對(duì)所述存儲(chǔ)器塊的所述可存取性不同于所述第二處理單元對(duì)所述存儲(chǔ)器塊的所述可存取性。
33.根據(jù)權(quán)利要求28所述的計(jì)算機(jī)可讀存儲(chǔ)媒體,其中基于所述第一組屬性,所述第一處理單元具有對(duì)所述存儲(chǔ)器塊的讀取存取權(quán)及寫(xiě)入存取權(quán),且其中基于所述第二組屬性,所述第二處理單元具有對(duì)所述存儲(chǔ)器塊的只讀存取權(quán)。
34.根據(jù)權(quán)利要求28所述的計(jì)算機(jī)可讀存儲(chǔ)媒體,其中所述第一處理單元包括第一存儲(chǔ)器管理單元MMU且所述第二處理單元包括第二 MMU,其中所述第一 MMU經(jīng)配置以存取所述共用頁(yè)表且所述第二 MMU經(jīng)配置以存取所述共用頁(yè)表。
35.根據(jù)權(quán)利要求28所述的計(jì)算機(jī)可讀存儲(chǔ)媒體,在其上存儲(chǔ)有額外指令,所述額外指令在被執(zhí)行時(shí)致使第三處理單元: 由所述第三處理單元使用存儲(chǔ)于所述存儲(chǔ)器中的所述共用頁(yè)表將第二虛擬存儲(chǔ)器地址翻譯為第二物理存儲(chǔ)器地址; 由所述第三處理單元存取由所述第二物理存儲(chǔ)器地址識(shí)別的存儲(chǔ)器塊; 其中所述第二處理單元及所述第三處理單元共享輸入/輸出MMU 1MMU,且其中所述1MMU經(jīng)配置以存取所述共用頁(yè)表。
36.根據(jù)權(quán)利要求28所述的計(jì)算機(jī)可讀存儲(chǔ)媒體,其中所述應(yīng)用在所述第一處理單元及所述第二處理單元兩者上執(zhí)行。
【文檔編號(hào)】G06F12/14GK104508641SQ201380039836
【公開(kāi)日】2015年4月8日 申請(qǐng)日期:2013年7月18日 優(yōu)先權(quán)日:2012年8月2日
【發(fā)明者】科林·克里斯托弗·夏普, 托馬斯·安德魯·薩托里烏斯 申請(qǐng)人:高通股份有限公司