外部可編程存儲(chǔ)器管理單元的制作方法
【專利說明】外部可編程存儲(chǔ)器管理單元
[0001]相關(guān)串請(qǐng)案的交叉參考
[0002]本申請(qǐng)案主張2013年3月14日申請(qǐng)的共同擁有的美國(guó)非臨時(shí)專利申請(qǐng)案第13/828,718號(hào)的優(yōu)先權(quán)且涉及2013年3月14日申請(qǐng)的同在申請(qǐng)中的美國(guó)非臨時(shí)專利申請(qǐng)案第13/829,023號(hào)。這些申請(qǐng)案中的每一者的內(nèi)容是以全文引用的方式并入。
技術(shù)領(lǐng)域
[0003]本發(fā)明大體上涉及存儲(chǔ)器管理單元(MMU)。
【背景技術(shù)】
[0004]技術(shù)的進(jìn)步已產(chǎn)生更小且更強(qiáng)大的計(jì)算裝置。舉例來說,當(dāng)前存在多種便攜式個(gè)人計(jì)算裝置,包含無(wú)線計(jì)算裝置,例如較小、輕重量且易于由用戶攜帶的便攜式無(wú)線電話、個(gè)人數(shù)字助理(PDA)、平板計(jì)算機(jī)和尋呼裝置。許多這些計(jì)算裝置包含并入其中的其它裝置。舉例來說,無(wú)線電話還可包含數(shù)字靜態(tài)相機(jī)、數(shù)字視頻相機(jī)、數(shù)字記錄器和音頻文件播放器。而且,這些計(jì)算裝置能夠處理可執(zhí)行指令,包含軟件應(yīng)用,例如網(wǎng)頁(yè)瀏覽器應(yīng)用,其可用以訪問利用靜態(tài)或視頻攝像機(jī)且提供多媒體播放功能性的英特網(wǎng)和多媒體應(yīng)用。
[0005]例如移動(dòng)電話的電子裝置可包含多個(gè)處理器。舉例來說,移動(dòng)電話可包含中央處理單元(CPU)(有時(shí)被稱作為應(yīng)用處理器)和數(shù)字信號(hào)處理器(DSP)。每一處理器可比其它處理器更適合處理執(zhí)行特定計(jì)算任務(wù)。舉例來說,CPU(其可充當(dāng)主要處理器且可執(zhí)行移動(dòng)電話操作系統(tǒng))在執(zhí)行例如網(wǎng)頁(yè)瀏覽器及用戶界面代碼的“控制代碼”時(shí)可能更高效。另一方面,DSP在執(zhí)行信號(hào)處理及其它數(shù)學(xué)密集功能時(shí)可能比CPU高效。
[0006]在一些多處理器裝置中,所述處理器中的一者可充當(dāng)“主要”處理器且其余處理器可充當(dāng)“次要”處理器。主要處理器可設(shè)定關(guān)于次要處理器可以做什么和不可以做什么的準(zhǔn)則。另外,主要處理器可迫使次要處理器關(guān)于某些配置信息依賴于主要處理器,而非在次要處理器處計(jì)算這一配置信息。出于安全性目的,主要處理器可限制次要處理器計(jì)算這一配置信息(例如,以避免多個(gè)次要處理器嘗試定義同一配置信息的情形,此可導(dǎo)致數(shù)據(jù)完整性、死鎖等的丟失)。
【發(fā)明內(nèi)容】
[0007]揭示存儲(chǔ)器管理單元(MMU)和供所述MMU使用的可執(zhí)行指令。有利地,所述可包含于次要處理器內(nèi)或耦合到次要處理器且可提供與主要處理器兼容的外部可編程接口,因此所述主要處理器能夠編程配置值以供第二處理器的MMU使用。所述MMU還可提供不需要由所述主要處理器進(jìn)行的外部編程的內(nèi)部接口,因此所述次要處理器可執(zhí)行不受所述主要處理器限制的操作而不必依賴于所述主要處理器。
[0008]在一特定實(shí)施例中,一種設(shè)備包含到第一處理器的接口。所述設(shè)備還包含第二處理器,所述第二處理器包含存儲(chǔ)器管理單元。所述設(shè)備進(jìn)一步包含存儲(chǔ)一個(gè)或多個(gè)配置值的存儲(chǔ)器裝置。所述第一處理器經(jīng)配置以使用所述接口將所述一個(gè)或多個(gè)配置值編程到所述存儲(chǔ)器裝置中。所述第二處理器經(jīng)配置以使用所述一個(gè)或多個(gè)配置值執(zhí)行地址轉(zhuǎn)換。舉例來說,所述接口可匹配系統(tǒng)MMU(SMMU)的接口(例如,可“SMMU兼容”),且所述接口可由所述第一處理器使用以編程地址轉(zhuǎn)換表的位置以供所述第二處理器使用。
[0009]在另一特定實(shí)施例中,一種非暫時(shí)性計(jì)算機(jī)可讀媒體存儲(chǔ)可由處理器執(zhí)行以執(zhí)行操作的指令,所述操作包含從存儲(chǔ)器管理單元的存儲(chǔ)裝置讀取一個(gè)或多個(gè)配置值。所述操作還包含將所述一個(gè)或多個(gè)配置值加載到處理器的一個(gè)或多個(gè)寄存器中。所述一個(gè)或多個(gè)寄存器可由所述處理器使用以執(zhí)行地址轉(zhuǎn)換。
[0010]在另一特定實(shí)施例中,一種非暫時(shí)性計(jì)算機(jī)可讀媒體存儲(chǔ)可由處理器執(zhí)行以執(zhí)行操作的指令,所述操作包含從存儲(chǔ)器讀取一個(gè)或多個(gè)配置值和將所述一個(gè)或多個(gè)配置值加載到處理器的一個(gè)或多個(gè)寄存器中。所述一個(gè)或多個(gè)寄存器通過所述指令排他性地可寫入。所述一個(gè)或多個(gè)配置值可由所述處理器使用以執(zhí)行地址轉(zhuǎn)換。
[0011]在另一特定實(shí)施例中,一種方法包含由處理器從相關(guān)聯(lián)于所述處理器的存儲(chǔ)器管理單元的存儲(chǔ)裝置讀取一個(gè)或多個(gè)配置值。所述方法還包含將所述一個(gè)或多個(gè)配置值加載到所述處理器的一個(gè)或多個(gè)寄存器中。所述一個(gè)或多個(gè)寄存器可由所述處理器使用以執(zhí)行地址轉(zhuǎn)換。
[0012]在另一特定實(shí)施例中,一種設(shè)備包含用于處理的第一裝置和用于介接到用于處理的所述第一裝置的裝置。所述設(shè)備還包含用于處理的第二裝置。用于處理的所述第二裝置包含存儲(chǔ)器管理單元。所述設(shè)備進(jìn)一步包含用于存儲(chǔ)一個(gè)或多個(gè)配置值的裝置。用于處理的所述第一裝置經(jīng)配置以使用用于介接的所述裝置將所述一個(gè)或多個(gè)配置值編程到用于存儲(chǔ)的所述裝置中。用于處理的所述第二裝置經(jīng)配置以使用所述一個(gè)或多個(gè)配置值執(zhí)行地址轉(zhuǎn)換。
[0013]所揭示實(shí)施例中的至少一個(gè)實(shí)施例所提供的一個(gè)特定優(yōu)點(diǎn)是可由主要處理器使用以編程用于次要處理器的地址轉(zhuǎn)換的外部可編程MMU。在檢視整個(gè)申請(qǐng)案后,將明白本發(fā)明的其它方面、優(yōu)點(diǎn)和特征,申請(qǐng)案包含以下部分:【附圖說明】、【具體實(shí)施方式】和權(quán)利要求書。
【附圖說明】
[0014]圖1為說明包含外部可編程存儲(chǔ)器管理單元(MMU)的系統(tǒng)的特定實(shí)施例的框圖;
[0015]圖2為說明存取外部可編程MMU的方法的特定實(shí)施例的流程圖;
[0016]圖3為說明執(zhí)行指令以選擇性地使用外部可編程MMU的方法的特定實(shí)施例的流程圖;且
[0017]圖4為包含外部可編程MMU的無(wú)線裝置的框圖。
【具體實(shí)施方式】
[0018]圖1為說明包含外部可編程存儲(chǔ)器管理單元(MMU)的系統(tǒng)100的特定實(shí)施例的框圖。在系統(tǒng)100中,“主要”處理器(例如,中央處理單元(CPU)) 110可經(jīng)由接口 120編程用于“次要”處理器(例如,數(shù)字信號(hào)處理器(DSP)) 130的配置值。接口 120可匹配系統(tǒng)存儲(chǔ)器管理單元(SMMU)(也被稱作輸入/輸出MMU (1MMU))的接口。SMMU兼容接口 120可與主要處理器110兼容以供主要處理器110進(jìn)行外部編程。舉例來說,SMMU接口可為標(biāo)準(zhǔn)化存儲(chǔ)器管理接口。SMMU兼容接口 120可通過主要處理器110存取以編程配置值(例如,一個(gè)或多個(gè)地址轉(zhuǎn)換表的一個(gè)或多個(gè)地址),如本文中所進(jìn)一步描述。處理器110可被視為“主要”處理器且處理器130可被視為“次要”處理器,這是因?yàn)樘幚砥?30依賴處理器110來編程某些配置值,而不是處理器130自己編程所述配置值。
[0019]主要處理器110和次要處理器130可與不同指令集結(jié)構(gòu)相關(guān)聯(lián)。舉例來說,主要處理器110可與CPU特定指令集結(jié)構(gòu)相關(guān)聯(lián)且次要處理器130可與DSP特定指令集結(jié)構(gòu)相關(guān)聯(lián)。每一處理器110、130可包含一個(gè)或多個(gè)處理單元、核心和/或硬件線程,如本文中所進(jìn)一步描述。多線程處理器可以經(jīng)由具有同時(shí)執(zhí)行的多個(gè)硬件執(zhí)行上下文來實(shí)施,或?qū)嵤榫哂袉我挥布?zhí)行上下文的多個(gè)處理器(例如,對(duì)稱多處理(SMP)群集)。應(yīng)注意,本文中對(duì)CPU和DSP的描述僅用于舉例。其它處理器或處理器的集合(例如,網(wǎng)絡(luò)處理單元(NPU)、圖形處理單元(GPU)等)也可包含于系統(tǒng)100中。
[0020]三個(gè)類型的存儲(chǔ)器地址可用于系統(tǒng)100中:虛擬地址(VA)、中間物理地址(IPA)(也被稱作偽物理地址)以及物理地址(PA)。每一虛擬地址可與虛擬地址空間相關(guān)聯(lián),且每一中間物理地址可與中間物理地址空間相關(guān)聯(lián)。可用以直接存取存儲(chǔ)器(例如,隨機(jī)存取存儲(chǔ)器(RAM)、基于磁盤的存儲(chǔ)器、緩存、寄存器存儲(chǔ)器等)和記憶體映射裝置(例如,輸入/輸出(I/O)裝置)的區(qū)域的物理地址可屬于單一物理地址空間。當(dāng)在系統(tǒng)100中使用虛擬地址、中間物理地址以及物理地址時(shí),可在系統(tǒng)100中定義兩個(gè)類型的地址轉(zhuǎn)換映射。第一類型的地址轉(zhuǎn)換映射可為虛擬地址到中間物理地址,且第二類型的地址轉(zhuǎn)換映射可為中間物理地址到物理地址。因此,系統(tǒng)100中的用于虛擬地址的“完全”地址轉(zhuǎn)換映射可包含從虛擬地址到中間物理地址的“第一階段”轉(zhuǎn)換,繼之以從中間物理地址到物理地址的“第二階段”轉(zhuǎn)換。
[0021]主要處理器110可使用接口 120來編程次要處理器130能夠用來執(zhí)行地址轉(zhuǎn)換的信息。舉例來說,接口 120可存儲(chǔ)地址轉(zhuǎn)換表的地址。所述地址轉(zhuǎn)換表可存儲(chǔ)在存儲(chǔ)器(例如,隨機(jī)存取存儲(chǔ)器(RAM))中并且可定義VA到IPA轉(zhuǎn)換和/或IPA到PA轉(zhuǎn)換。在圖1的實(shí)例中,主要處理器110編程第一地址轉(zhuǎn)