最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

內(nèi)存空間管理及內(nèi)存訪問控制方法及裝置與流程

文檔序號:11199133閱讀:1036來源:國知局
內(nèi)存空間管理及內(nèi)存訪問控制方法及裝置與流程

本發(fā)明涉及存儲領(lǐng)域,特別是涉及內(nèi)存空間管理及內(nèi)存訪問控制方法及裝置。



背景技術(shù):

終端設(shè)備開放環(huán)境的安全問題越來越受到關(guān)注,不僅僅針對終端用戶,還針對服務(wù)提供者、移動運(yùn)營商以及芯片廠商,特別是對于電視及機(jī)頂盒需要處理的uhd(ultrahighdefinitiontelevision,超高清電視)流媒體內(nèi)容及uhd+的流媒體內(nèi)容。

為了保護(hù)媒體內(nèi)容,基于tee(trustedexecutionenvironment,可信執(zhí)行環(huán)境)技術(shù)的drm(數(shù)字版權(quán)保護(hù))幾乎已經(jīng)成了超高清內(nèi)容提供商必備的要求,tee是與設(shè)備上的richos(通常是基于linux的操作系統(tǒng))并存的運(yùn)行環(huán)境,第三方開發(fā)的可信應(yīng)用程序(ta)運(yùn)行于tee環(huán)境中,為richos提供安全服務(wù)。tee本身的啟動可靠性受到安全引導(dǎo)(securityboot)技術(shù)的保護(hù)。

tee環(huán)境下,安全內(nèi)存(securitymemory)是禁止非安全狀態(tài)的硬件單元(hwip,通常代表richos端)訪問的,基于此,視頻解碼緩存器以及圖像增強(qiáng)(pq)緩存器保存在安全內(nèi)存中,以防止盜版。其中,安全內(nèi)存的位置是開機(jī)執(zhí)行的安全引導(dǎo)流程設(shè)置,不能夠任意調(diào)整位置和大小,只能在運(yùn)行tee環(huán)境時打開或關(guān)閉。

而且,如圖1所示現(xiàn)在產(chǎn)品均是將安全內(nèi)存12獨(dú)立于系統(tǒng)內(nèi)存11之外。對于一些終端設(shè)備其所需安全內(nèi)存的空間較大,如對于支援uhd的播放終端,支援單路uhd解碼和圖像增強(qiáng)的芯片,其安全內(nèi)存所需總量超過200mb,支援雙路uhd解碼或者支援uhd+解碼的芯片,其安全內(nèi)存所需總量會達(dá)到350mb以上,故該終端往往設(shè)備需設(shè)置大容量的獨(dú)立的安全內(nèi)存,導(dǎo)致系統(tǒng)成本的上升。而且,當(dāng)安全狀態(tài)的硬件單元不工作時起此大容量的安全內(nèi)存則處于空閑狀態(tài),故導(dǎo)致該存儲資源浪費(fèi)。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明主要解決的技術(shù)問題是提供內(nèi)存空間管理及內(nèi)存訪問控制方法及裝置,能夠減少存儲資源的浪費(fèi),減少系統(tǒng)成本。

為解決上述技術(shù)問題,本發(fā)明采用的一個技術(shù)方案是:提供一種內(nèi)存空間管理方法,用于管理供硬件單元或處理器進(jìn)行訪問的系統(tǒng)內(nèi)存,包括:在接收到所述硬件單元發(fā)出的一操作請求時,根據(jù)操作請求的類型來判斷所述硬件單元請求的操作是否是訪問所述系統(tǒng)內(nèi)存里的一安全內(nèi)存區(qū)域;若是,則將所述系統(tǒng)內(nèi)存中的所述需訪問的安全內(nèi)存區(qū)域從默認(rèn)的第一狀態(tài)更改為第二狀態(tài),并將所述硬件單元設(shè)置為安全狀態(tài);其中,所述安全內(nèi)存區(qū)域處于所述第一狀態(tài)時,表示限定僅供處理器進(jìn)行訪問,所述硬件單元不可對其進(jìn)行訪問;所述安全內(nèi)存區(qū)域處于所述第二狀態(tài)時,表示僅供處于安全狀態(tài)的所述硬件單元進(jìn)行訪問。

為解決上述技術(shù)問題,本發(fā)明采用的另一個技術(shù)方案是:一種內(nèi)存訪問控制方法,用于控制供處理器或一硬件單元訪問的系統(tǒng)內(nèi)存,包括:在接收到訪問請求時,獲取所述訪問請求中的訪問地址和訪問者標(biāo)識;檢查所述訪問地址指向的內(nèi)存空間的當(dāng)前狀態(tài),得到一檢查結(jié)果,其中,所述內(nèi)存空間的狀態(tài)包括第一狀態(tài)和第二狀態(tài);查找所述訪問者標(biāo)識是否屬于多個允許訪問集合中的與所述檢查結(jié)果對應(yīng)的允許訪問集合,其中,所述多個允許訪問集合包括對應(yīng)第一狀態(tài)的第一允許訪問集合和對應(yīng)第二狀態(tài)的第二允許訪問集合;根據(jù)查找結(jié)果生成一指令,其中,所述指令用于指示允許或不允許所述訪問者訪問所述內(nèi)存空間。

為解決上述技術(shù)問題,本發(fā)明采用的再一個技術(shù)方案是:一種非瞬時計算機(jī)可讀儲存媒體,用于管理供處理器或一硬件單元進(jìn)行訪問的系統(tǒng)內(nèi)存,其中存儲由一處理器讀取并執(zhí)行的一程序代碼,所述程序代碼包括:一第一子程序碼,用以在接收到所述硬件單元發(fā)出的一操作請求時,根據(jù)操作請求的類型來判斷所述硬件單元請求的操作是否是訪問所述系統(tǒng)內(nèi)存里的一安全內(nèi)存區(qū)域;以及一第二子程序碼,用以將所述系統(tǒng)內(nèi)存中的所述需訪問的安全內(nèi)存區(qū)域從默認(rèn)的第一狀態(tài)更改為第二狀態(tài),并將所述硬件單元設(shè)置為安全狀態(tài);其中,所述安全內(nèi)存區(qū)域處于所述第一狀態(tài)時,表示限定僅供處理器進(jìn)行訪問,所述硬件單元不可對其進(jìn)行訪問;所述安全內(nèi)存區(qū)域處于所述第二狀態(tài)時,表示僅供處于安全狀態(tài)的所述硬件單元進(jìn)行訪問。

為解決上述技術(shù)問題,本發(fā)明采用的又再一個技術(shù)方案是:一種內(nèi)存訪問控制裝置,與一系統(tǒng)內(nèi)存經(jīng)由總線連接,用來控制處理器或一硬件單元存取該系統(tǒng)內(nèi)存,包括:復(fù)數(shù)個保護(hù)組,其中每個保護(hù)組用于根據(jù)一訪問者標(biāo)識查找一允許訪問列表得到一查找結(jié)果;一檢查單元,用于根據(jù)一訪問地址檢查所述訪問地址指向的內(nèi)存空間的當(dāng)前狀態(tài)為一第一狀態(tài)還是一第二狀態(tài),得到一檢查結(jié)果;以及一判斷單元,連接于所述復(fù)數(shù)個保護(hù)組和所述檢查單元,用于接收所述復(fù)數(shù)個保護(hù)組的復(fù)數(shù)個查找結(jié)果和所述檢查結(jié)果,并根據(jù)所述檢查結(jié)果決定所述復(fù)數(shù)個查找結(jié)果之一查找結(jié)果,并根據(jù)所述查找結(jié)果產(chǎn)生一決定訊號。

為解決上述技術(shù)問題,本發(fā)明采用的又再一個技術(shù)方案是:一種內(nèi)存訪問控制裝置,與一系統(tǒng)內(nèi)存經(jīng)由總線連接,用來控制處理器或一硬件單元存取該系統(tǒng)內(nèi)存,包括:一檢查單元,用于根據(jù)一訪問地址檢查所述訪問地址指向的內(nèi)存空間的當(dāng)前狀態(tài)為一第一狀態(tài)還是一第二狀態(tài),得到一檢查結(jié)果;復(fù)數(shù)個保護(hù)組,連接于所述檢查單元,其中與所述檢查結(jié)果對應(yīng)的保護(hù)組用于根據(jù)一訪問者標(biāo)識查找允許訪問列表得到一查找結(jié)果;以及一判斷單元,連接于所述復(fù)數(shù)個保護(hù)組,用于接收所述與所述檢查結(jié)果對應(yīng)的保護(hù)組的查找結(jié)果,并根據(jù)所述查找結(jié)果產(chǎn)生一決定訊號。

上述方案,系統(tǒng)內(nèi)存中設(shè)置有安全內(nèi)存區(qū)域,處理器根據(jù)硬件單元的操作請求更改安全內(nèi)存區(qū)域的狀態(tài),使得內(nèi)存控制器在接收到訪問安全內(nèi)存區(qū)域的訪問請求時,根據(jù)該安全內(nèi)存區(qū)域的狀態(tài)限定訪問請求的發(fā)出者是否可以訪問,具體限定若安全內(nèi)存區(qū)域?yàn)榈谝粻顟B(tài)時,限定僅處理器可對其訪問,若安全內(nèi)存區(qū)域?yàn)榈诙顟B(tài)時,限定僅安全狀態(tài)的硬件單元可對其訪問,通過設(shè)置安全內(nèi)存區(qū)域的不同狀態(tài)以限定可訪問其的對象,防止處理器和安全狀態(tài)的硬件單元訪問到彼此的存儲數(shù)據(jù),故在保證系統(tǒng)內(nèi)存和安全內(nèi)存區(qū)域各自的安全性的同時,實(shí)現(xiàn)了系統(tǒng)內(nèi)存與安全內(nèi)存區(qū)域的分時共享,處理器和硬件單元分時復(fù)用物理內(nèi)存,無需獨(dú)立設(shè)置安全內(nèi)存,減少了存儲資源的浪費(fèi)以及系統(tǒng)成本。

附圖說明

圖1是現(xiàn)有系統(tǒng)內(nèi)存與安全內(nèi)存之間的結(jié)構(gòu)示意圖;

圖2是本發(fā)明系統(tǒng)內(nèi)存與安全內(nèi)存之間的一結(jié)構(gòu)示意圖;

圖3是本發(fā)明內(nèi)存空間管理方法一實(shí)施例的流程圖;

圖4是本發(fā)明系統(tǒng)內(nèi)存與安全內(nèi)存之間的另一結(jié)構(gòu)示意圖;

圖5是本發(fā)明內(nèi)存訪問控制方法一實(shí)施例的流程圖;

圖6是本發(fā)明內(nèi)存訪問控制方法另一實(shí)施例的部分流程圖;

圖7是本發(fā)明內(nèi)存訪問控制方法再一實(shí)施例的部分流程圖;

圖8是本發(fā)明對于安全內(nèi)存碎片回收利用一實(shí)施例的處理示意圖;

圖9是可采用本發(fā)明內(nèi)存訪問控制方法的系統(tǒng)結(jié)構(gòu)示意圖;

圖10是本發(fā)明內(nèi)存訪問控制裝置一實(shí)施例的結(jié)構(gòu)示意圖;

圖11是本發(fā)明檢查單元的一實(shí)施例的結(jié)構(gòu)示意圖;

圖12是本發(fā)明判斷單元的一實(shí)施例的結(jié)構(gòu)示意圖;

圖13是本發(fā)明內(nèi)存訪問控制裝置另一實(shí)施例的結(jié)構(gòu)示意圖

具體實(shí)施方式

以下描述中,為了說明而不是為了限定,提出了諸如特定系統(tǒng)結(jié)構(gòu)、接口、技術(shù)之類的具體細(xì)節(jié),以便透徹理解本申請。然而,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)清楚,在沒有這些具體細(xì)節(jié)的其它實(shí)施方式中也可以實(shí)現(xiàn)本申請。在其它情況中,省略對眾所周知的裝置、電路以及方法的詳細(xì)說明,以免不必要的細(xì)節(jié)妨礙本申請的描述。

為了便于理解本發(fā)明,先對本發(fā)明部分元件及名詞進(jìn)行說明。

本文所述的處理器為用于運(yùn)行終端操作系統(tǒng)的核心電路。具體,該處理器可用于運(yùn)行安全環(huán)境和非安全環(huán)境,例如tee和richos兩個系統(tǒng)環(huán)境。當(dāng)然,上述兩個環(huán)境也可為同一個處理器或者由兩個處理器分別實(shí)現(xiàn),在此不作限定。

本文所述的硬件單元(也稱為hwip)具體為終端中除處理器外的硬件電路,例如播放設(shè)備的視頻解碼器、圖像增強(qiáng)處理器、顯示屏驅(qū)動器、屏幕顯示(英文:onscreendisplay,簡稱:osd)混合器等媒體相關(guān)硬件單元。該硬件單元包括安全狀態(tài)和非安全狀態(tài),該硬件單元處于安全狀態(tài)即為該硬件單元當(dāng)前執(zhí)行安全性操作,處于非安全狀態(tài)即該硬件單元當(dāng)前執(zhí)行常規(guī)操作,例如,在tee和richos雙系統(tǒng)的終端中,當(dāng)硬件單元在tee環(huán)境下運(yùn)行第三方可信應(yīng)用程序進(jìn)行操作需要訪問安全內(nèi)存區(qū)域內(nèi)容時需要切換到安全狀態(tài),當(dāng)硬件單元運(yùn)行一般的第三方應(yīng)用程序進(jìn)行操作只需訪問一般非保護(hù)需求的內(nèi)存區(qū)域時,則切換到非安全狀態(tài)。

本文所述的系統(tǒng)內(nèi)存為終端的操作系統(tǒng)存儲指令和數(shù)據(jù)的存儲空間,提供給處理器進(jìn)行訪問。該系統(tǒng)內(nèi)存具體可為動態(tài)隨機(jī)存取存儲器(英文:dynamicrandomaccessmemory,簡稱:dram),在一采用linux操作系統(tǒng)的終端中,該系統(tǒng)內(nèi)存為內(nèi)核管理的存儲空間(也稱linuxkernelmemory),以供操作系統(tǒng)內(nèi)核(如linuxkernel)管理及操作系統(tǒng)內(nèi)核和應(yīng)用程序訪問。

基于現(xiàn)有安全內(nèi)存區(qū)域與系統(tǒng)內(nèi)存相互獨(dú)立,導(dǎo)致內(nèi)存資源的浪費(fèi)。本發(fā)明提出將系統(tǒng)內(nèi)存與安全內(nèi)存區(qū)域分時共享,具體將系統(tǒng)內(nèi)存中的一段內(nèi)存空間標(biāo)記作為安全內(nèi)存區(qū)域(securityrange),該安全內(nèi)存區(qū)域按照不同設(shè)置狀態(tài)可提供于安全狀態(tài)的硬件單元訪問,或者提供于處理器訪問。當(dāng)然,在系統(tǒng)內(nèi)存之外還可獨(dú)立設(shè)置有安全內(nèi)存區(qū)域,該系統(tǒng)內(nèi)存內(nèi)的安全內(nèi)存區(qū)域提供給某些安全狀態(tài)的硬件單元的短暫性的訪問,該系統(tǒng)內(nèi)存外的安全內(nèi)存區(qū)域提供給某些安全狀態(tài)的硬件單元的長期訪問。

另外,本發(fā)明還可將系統(tǒng)內(nèi)存中的另一段內(nèi)存空間標(biāo)記作為非安全內(nèi)存區(qū)域,該非安全內(nèi)存區(qū)域按照不同設(shè)置狀態(tài)可提供于非安全狀態(tài)的硬件單元或安全狀態(tài)和非安全狀態(tài)的硬件單元訪問,或提供于處理器訪問。

其中,如圖2所示,上述安全內(nèi)存區(qū)域22和非安全內(nèi)存區(qū)域23均可為由連續(xù)內(nèi)存分配器(英文:contiguousmemoryallocator,簡稱:cma)分配的系統(tǒng)內(nèi)存21中的一段或多段連續(xù)物理內(nèi)存區(qū)域。該安全內(nèi)存區(qū)域22與該非安全內(nèi)存區(qū)域23構(gòu)成cma分配的預(yù)設(shè)內(nèi)存區(qū)域24。該安全內(nèi)存區(qū)域22與該非安全內(nèi)存區(qū)域23具體可設(shè)置與該系統(tǒng)內(nèi)存中的任意位置上,在此不作限定。

請參閱圖3,圖3是本發(fā)明內(nèi)存空間管理方法一實(shí)施例的流程圖。本實(shí)施例中,該方法由處理器執(zhí)行,用于管理供硬件單元或處理器進(jìn)行訪問的系統(tǒng)內(nèi)存,具體包括以下步驟:

s31:處理器在接收到硬件單元發(fā)出的一操作請求時,根據(jù)操作請求的類型來判斷該硬件單元請求的操作是否是訪問該系統(tǒng)內(nèi)存里的一安全內(nèi)存區(qū)域。

其中,終端設(shè)備的處理器預(yù)先將系統(tǒng)內(nèi)存中部分連續(xù)內(nèi)存劃分為安全內(nèi)存區(qū)域。例如,在系統(tǒng)啟動時(即該終端設(shè)備開機(jī)時),處理器按照內(nèi)存分配策略將所述系統(tǒng)內(nèi)存中一段或多段連續(xù)內(nèi)存劃分為安全內(nèi)存區(qū)域,具體可由處理器運(yùn)行驅(qū)動程序以cma的方式向系統(tǒng)內(nèi)存申請得到該安全內(nèi)存區(qū)域。當(dāng)然,根據(jù)實(shí)際需求中,在終端設(shè)備開機(jī)后的工作過程中也可進(jìn)行重新劃分該安全內(nèi)存區(qū)域。該內(nèi)存分類策略具體可為根據(jù)該終端設(shè)備所需運(yùn)行的不同項(xiàng)目對應(yīng)分配不同容量的安全內(nèi)存區(qū)域。為保證安全內(nèi)存區(qū)域的安全性,上述劃分由處于安全狀態(tài)下的處理器執(zhí)行,例如為終端設(shè)備中運(yùn)行tee的處理器,處于非安全狀態(tài)下的處理器如運(yùn)行richos的處理器無法對該設(shè)定的安全內(nèi)存區(qū)域進(jìn)行修改或控制。

本實(shí)施例中,處理器在接收到硬件單元的操作請求后,先確定該操作請求的類型是否為需要占用存儲空間的安全性的操作請求,例如一硬件單元申請安全視頻通路,確認(rèn)該操作需訪問系統(tǒng)內(nèi)存中至少部分安全內(nèi)存區(qū)域以作為其安全視頻通路用到的視頻解碼、圖像增強(qiáng)等過程中使用的內(nèi)存空間。若確定該操作請求為需要占用存儲空間且安全性的操作請求,則判斷該操作請求需要訪問該系統(tǒng)內(nèi)存里的一安全內(nèi)存區(qū)域,并執(zhí)行s32,若確定該操作請求為需要占用存儲空間的非安全性的操作請求,則判斷該操作請求不需要訪問該系統(tǒng)內(nèi)存里的安全內(nèi)存區(qū)域,并執(zhí)行s33。

s32:處理器將所述系統(tǒng)內(nèi)存中的所述需訪問的安全內(nèi)存區(qū)域從默認(rèn)的第一狀態(tài)更改為第二狀態(tài),并將所述硬件單元設(shè)置為安全狀態(tài)。

該系統(tǒng)內(nèi)存中預(yù)設(shè)的安全內(nèi)存區(qū)域可包括第一狀態(tài)和第二狀態(tài)。其中,所述安全內(nèi)存區(qū)域處于所述第一狀態(tài)時,表示限定僅供處理器進(jìn)行訪問,所述硬件單元不可對其進(jìn)行訪問;所述安全內(nèi)存區(qū)域處于所述第二狀態(tài)時,表示僅供處于安全狀態(tài)的所述硬件單元進(jìn)行訪問。

默認(rèn)地,處理器預(yù)設(shè)的安全內(nèi)存區(qū)域的狀態(tài)為第一狀態(tài),即可供處理器進(jìn)行訪問,且硬件單元不具有訪問權(quán)限。在確定當(dāng)前硬件單元的操作需要使用安全內(nèi)存區(qū)域時,利用cma分配需要使用的一段連續(xù)的安全內(nèi)存區(qū)域,并將該操作需要使用的安全內(nèi)存區(qū)域中的當(dāng)前數(shù)據(jù)轉(zhuǎn)移到系統(tǒng)內(nèi)存的其他空間(安全內(nèi)存區(qū)域處于第一狀態(tài)時候的數(shù)據(jù)為處理器訪問的數(shù)據(jù),故為避免處理器數(shù)據(jù)丟失,先將其轉(zhuǎn)移到其他存儲空間)。處理器并將該操作需要使用的安全內(nèi)存區(qū)域的第一狀態(tài)更改為第二狀態(tài)。具體,本次需更改狀態(tài)的安全內(nèi)存區(qū)域的大小可根據(jù)該硬件單元的操作請求的類型進(jìn)行分配,例如,系統(tǒng)內(nèi)存中預(yù)設(shè)有300m安全內(nèi)存區(qū)域,若當(dāng)前操作請求為一路視頻解碼請求,則將系統(tǒng)內(nèi)存中預(yù)設(shè)的100m安全內(nèi)存區(qū)域的狀態(tài)進(jìn)行上述更改,以將該100m安全內(nèi)存區(qū)域用于存儲硬件單元的視頻解碼時的碼流。

而且,處理器將該硬件單元標(biāo)記為安全狀態(tài),以保證該硬件單元在操作過程中有權(quán)限訪問該第二狀態(tài)的安全內(nèi)存區(qū)域。具體,可將每個硬件單元的狀態(tài)以列表形式存儲在處理器以及內(nèi)存控制器可訪問的存儲空間中。

在一具體應(yīng)用中,該安全內(nèi)存區(qū)域劃分為第一數(shù)量內(nèi)存頁(也稱entry),每個內(nèi)存頁的大小固定,具體大小可為1m或512kb等,每個內(nèi)存頁均設(shè)置有第一控制位。s32中所述將所述系統(tǒng)內(nèi)存中的所述需訪問的安全內(nèi)存區(qū)域從默認(rèn)的第一狀態(tài)更改為第二狀態(tài)具體包括以下子步驟:

s321:確定所述需訪問的安全內(nèi)存區(qū)域的大小為第二數(shù)量內(nèi)存頁。

s322:將所述安全內(nèi)存區(qū)域中的第二數(shù)量內(nèi)存頁的第一控制位由第一字符更改為第二字符。

其中,所述第一控制位為第一字符時,表示所述內(nèi)存頁處于所述第一狀態(tài),即該內(nèi)存頁的內(nèi)存回收給處理器使用;所述第一控制位為第二字符時,表示所述內(nèi)存頁處于所述第二狀態(tài),即該內(nèi)存頁的內(nèi)存分配給安全狀態(tài)的硬件單元使用,系統(tǒng)內(nèi)存無法將該內(nèi)存用作內(nèi)部用途;所述第一數(shù)量大于或等于所述第二數(shù)量。

如圖4所示,系統(tǒng)內(nèi)存40預(yù)設(shè)有entry0-entry255共256個內(nèi)存頁作為安全內(nèi)存區(qū)域41,該256個內(nèi)存頁的當(dāng)前第一控制位p的默認(rèn)為1,表示所有該內(nèi)存頁開始均限供處理器訪問。處理器根據(jù)當(dāng)前操作請求的類型確定該操作所需的存儲空間為100個內(nèi)存頁,并將安全內(nèi)存區(qū)域41中的entry0-entry99的第一控制位p值更改為0,以表示該100個內(nèi)存頁當(dāng)前僅供安全狀態(tài)的硬件單元訪問。

s33:處理器將系統(tǒng)內(nèi)存中的至少部分非安全內(nèi)存區(qū)域從第一狀態(tài)更改為第二狀態(tài),并將所述硬件單元設(shè)置為非安全狀態(tài)。

本實(shí)施例中,該系統(tǒng)內(nèi)存中還預(yù)設(shè)有非安全內(nèi)存區(qū)域,該非安全內(nèi)存區(qū)域也包括第一狀態(tài)和第二狀態(tài)。其中,所述非安全內(nèi)存區(qū)域處于所述第一狀態(tài)時,表示僅供處理器進(jìn)行訪問,所述非安全內(nèi)存區(qū)域處于所述第二狀態(tài)時,表示可由處于安全狀態(tài)或非安全狀態(tài)的硬件單元進(jìn)行訪問,或限定僅供處于非安全狀態(tài)的硬件單元進(jìn)行訪問。

默認(rèn)地,處理器預(yù)設(shè)的非安全內(nèi)存區(qū)域的狀態(tài)為第一狀態(tài),即可供處理器進(jìn)行訪問,且硬件單元不具有訪問權(quán)限。在確定當(dāng)前硬件單元的操作不需要使用安全內(nèi)存區(qū)域,即使用非安全內(nèi)存區(qū)域時,利用cma從系統(tǒng)內(nèi)存中分配該操作需要使用的非安全內(nèi)存區(qū)域,并將該操作需要使用的非安全內(nèi)存區(qū)域的第一狀態(tài)更改為第二狀態(tài)。同理于s32所述,本次需更改狀態(tài)的非安全內(nèi)存區(qū)域的大小可根據(jù)該硬件單元的操作請求的類型進(jìn)行分配。

而且,處理器將該硬件單元標(biāo)記為非安全狀態(tài),以確定該硬件單元目前執(zhí)行的是非安全性操作,故只可訪問第二狀態(tài)的非安全內(nèi)存區(qū)域,避免其在操作過程中有權(quán)限訪問該第二狀態(tài)的安全內(nèi)存區(qū)域。

在一具體應(yīng)用中,該非安全內(nèi)存區(qū)域可劃分為第三數(shù)量內(nèi)存頁。該s33中所述將系統(tǒng)內(nèi)存中的至少部分非安全內(nèi)存區(qū)域從第一狀態(tài)更改為第二狀態(tài)具體包括以下子步驟:

s331:確定所述需訪問的非安全內(nèi)存區(qū)域的大小為第四數(shù)量內(nèi)存頁。

s332:將所述非安全內(nèi)存區(qū)域中的第四數(shù)量內(nèi)存頁的第一控制位由第一字符更改為第二字符。

其中,所述第一控制位為第一字符時,表示所述內(nèi)存頁處于所述第一狀態(tài),即該內(nèi)存頁的內(nèi)存回收給處理器使用;所述第一控制位為第二字符時,表示所述內(nèi)存頁處于所述第二狀態(tài),即該內(nèi)存頁的內(nèi)存分配給硬件單元使用,系統(tǒng)內(nèi)存無法將其作為內(nèi)部用途;所述第一數(shù)量大于或等于所述第二數(shù)量。

繼續(xù)如圖4所示,系統(tǒng)內(nèi)存40預(yù)設(shè)有entry256-entry356共100個內(nèi)存頁作為非安全內(nèi)存區(qū)域42,其中,該安全內(nèi)存區(qū)域41和非安全內(nèi)存區(qū)域42構(gòu)成了系統(tǒng)內(nèi)存的預(yù)設(shè)內(nèi)存區(qū)域43,該區(qū)域43屬于cma分配的區(qū)域,系統(tǒng)內(nèi)存40除預(yù)設(shè)內(nèi)存區(qū)域43外的剩余區(qū)域均限供處理器訪問。非安全內(nèi)存區(qū)域42的100個內(nèi)存頁的當(dāng)前第一控制位p的默認(rèn)為1,表示所有該內(nèi)存頁開始均限供處理器訪問,硬件單元不可訪問。處理器根據(jù)當(dāng)前操作請求的類型確定該操作所需的存儲空間為50個內(nèi)存頁,并將非安全內(nèi)存區(qū)域42中的entry256-entry306的第一控制位p值更改為0,以表示該50個內(nèi)存頁當(dāng)前僅供非安全狀態(tài)的硬件單元訪問,或供任意狀態(tài)下的硬件單元訪問,處理器不可訪問。

當(dāng)然,在其他實(shí)施例中,該系統(tǒng)內(nèi)存可不包括非安全內(nèi)存區(qū)域,相應(yīng),該方法也不包括上述s33,當(dāng)處理器執(zhí)行s31判斷硬件單元的操作不需訪問安全內(nèi)存區(qū)域時,則結(jié)束流程。

s34:處理器在確定該硬件單元操作完成時,將所述操作訪問到的安全內(nèi)存區(qū)域從第二狀態(tài)更改為第一狀態(tài)。

進(jìn)一步地,該處理器執(zhí)行上述s32或s33之后,若確定該硬件單元操作完成,處理器還將所述操作訪問到的安全內(nèi)存區(qū)域或非安全內(nèi)存區(qū)域從第二狀態(tài)更改為第一狀態(tài),以使該訪問到的安全內(nèi)存區(qū)域或非安全內(nèi)存區(qū)域重新回收為系統(tǒng)內(nèi)存的內(nèi)部用途,即僅供處理器使用。當(dāng)然,在另一實(shí)施例中,在硬件單元完成后,處理器可先不更改該相關(guān)內(nèi)存區(qū)域的狀態(tài),而是在確定系統(tǒng)內(nèi)存的其他存儲空間不夠用時,再將所述硬件單元訪問到的安全內(nèi)存區(qū)域或非安全內(nèi)存區(qū)域從第二狀態(tài)更改為第一狀態(tài)。

上述s31-s33可由非安全狀態(tài)的處理器執(zhí)行,例如運(yùn)行richos的處理器,以方便richos端與cma配合以靈活分配相關(guān)的內(nèi)存區(qū)域并控制該內(nèi)存區(qū)域的狀態(tài)。其中,s32中該內(nèi)存區(qū)域的狀態(tài)更改可具體由非安全狀態(tài)的處理器的操作系統(tǒng)(如linux)內(nèi)存管理驅(qū)動模塊執(zhí)行。

當(dāng)然,在其他實(shí)施例中,上述s31-s33也可由安全狀態(tài)的處理器執(zhí)行,或者上述s32中的硬件單元的狀態(tài)設(shè)置可由安全狀態(tài)的處理器執(zhí)行,其余步驟由非安全狀態(tài)的處理器執(zhí)行。在一應(yīng)用中,該安全狀態(tài)的處理器為運(yùn)行tee環(huán)境的處理器,該非安全狀態(tài)的處理器為運(yùn)行richos的處理器,也即運(yùn)行該正常操作系統(tǒng)內(nèi)核(如linuxkernel)的處理器。

本實(shí)施例,系統(tǒng)內(nèi)存中設(shè)置有安全內(nèi)存區(qū)域,處理器根據(jù)硬件單元的操作請求更改安全內(nèi)存區(qū)域的狀態(tài),使得內(nèi)存控制器在接收到訪問安全內(nèi)存區(qū)域的訪問請求時,根據(jù)該安全內(nèi)存區(qū)域的狀態(tài)限定訪問請求的發(fā)出者是否可以訪問,具體限定若安全內(nèi)存區(qū)域?yàn)榈谝粻顟B(tài)時,限定僅處理器可對其訪問,若安全內(nèi)存區(qū)域?yàn)榈诙顟B(tài)時,限定僅安全狀態(tài)的硬件單元可對其訪問,通過設(shè)置安全內(nèi)存區(qū)域的不同狀態(tài)以限定可訪問其的對象,防止處理器和安全狀態(tài)的硬件單元訪問到彼此的存儲數(shù)據(jù),故在保證系統(tǒng)內(nèi)存和安全內(nèi)存區(qū)域各自的安全性的同時,實(shí)現(xiàn)了系統(tǒng)內(nèi)存與安全內(nèi)存區(qū)域的分時共享,處理器和硬件單元分時復(fù)用物理內(nèi)存,無需獨(dú)立設(shè)置安全內(nèi)存,減少了存儲資源的浪費(fèi)以及系統(tǒng)成本。

請參閱圖5,圖5是本發(fā)明內(nèi)存訪問控制方法一實(shí)施例的流程圖,本實(shí)施例中,該控制方法由內(nèi)存控制器執(zhí)行,該內(nèi)存控制器與至少一個處理器以及至少一個硬件單元連接,該內(nèi)存控制器用于執(zhí)行本控制方法來控制處理器及該硬件單元對上述系統(tǒng)內(nèi)存的訪問如向系統(tǒng)內(nèi)存讀取數(shù)據(jù)或?qū)懭霐?shù)據(jù)等。該控制方法具體包括以下步驟:

s51:內(nèi)存控制器在接收到訪問請求時,獲取所述訪問請求中的訪問地址和訪問者標(biāo)識。

該訪問請求可來自與處理器或硬件單元,用于請求訪問上述系統(tǒng)內(nèi)存中的部分內(nèi)存空間。本文所述的訪問具體包括讀取或?qū)懭霐?shù)據(jù)。

s52:檢查所述訪問地址指向的內(nèi)存空間的當(dāng)前狀態(tài),得到一檢查結(jié)果。

如上實(shí)施例所述,系統(tǒng)內(nèi)存中包含有預(yù)設(shè)內(nèi)存區(qū)域如圖4所述的預(yù)存內(nèi)存區(qū)域43,以可用于提供給硬件單元訪問。在不同實(shí)施例中,該預(yù)存內(nèi)存區(qū)域具體可包括上述安全內(nèi)存區(qū)域,或者包括上述安全內(nèi)存區(qū)域和上述非安全內(nèi)存區(qū)域。且該預(yù)存內(nèi)存區(qū)域的狀態(tài)可如上述實(shí)施例所述進(jìn)行設(shè)置。內(nèi)存控制器可先確定該訪問地址指向的內(nèi)存空間是否為該預(yù)存內(nèi)存區(qū)域,若是,則執(zhí)行s52;否則確定該內(nèi)存空間僅供處理器訪問,并當(dāng)訪問者為硬件單元時阻止其訪問該內(nèi)存空間,以防止硬件單元竊取處理器的數(shù)據(jù)。

本實(shí)施例中,該預(yù)設(shè)內(nèi)存區(qū)域如圖4所示,包括若干個上述內(nèi)存頁。若該資源共享僅針對預(yù)設(shè)內(nèi)存區(qū)域的安全內(nèi)存區(qū)域,只需檢查所述訪問地址指向的內(nèi)存空間的當(dāng)前狀態(tài),s52中的所述查詢所述訪問地址指向的內(nèi)存空間的當(dāng)前狀態(tài)包括:讀取所述訪問地址指向的內(nèi)存頁的第一控制位的值,以確定所述訪問地址指向的內(nèi)存頁的當(dāng)前狀態(tài)。該檢查結(jié)果是:當(dāng)所述訪問地址指向的內(nèi)存頁的第一控制位均為第一字符時,表示訪問地址指向的內(nèi)存空間處于第一狀態(tài);當(dāng)所述訪問地址指向的內(nèi)存頁的第一控制位均為第二字符時,表示訪問地址指向的內(nèi)存空間處于第二狀態(tài)。

s53:根據(jù)訪問者標(biāo)識查找多個允許訪問集合,得到多個查找結(jié)果。

允許訪問集合包含允許訪問系統(tǒng)內(nèi)存的處理器或者硬件單元的標(biāo)識。下面以允許訪問集合具體為允許訪問列表為例,若經(jīng)過查表,判斷訪問者標(biāo)識是否在允許訪問列表中,該查找結(jié)果為在允許訪問列表中,或者不在允許訪問列表中。具體的若僅需檢查所述訪問地址指向的內(nèi)存空間的當(dāng)前狀態(tài),那么該多個允許訪問列表為分別對應(yīng)第一狀態(tài)和第二狀態(tài)的兩個允許訪問列表。

s54:根據(jù)該檢查結(jié)果選擇該多個查找結(jié)果中的一該查找結(jié)果,并根據(jù)該查找結(jié)果生成一指令,其中該指令用于指示允許或不允許該訪問者存取該內(nèi)存空間。

具體,選擇與該檢查結(jié)果對應(yīng)的允許訪問列表的查找結(jié)果,若查找結(jié)果為在該允許訪問列表中,則生成允許該訪問者存取該訪問地址指向的內(nèi)存空間的指令,否則生成不允許該訪問者存取該訪問地址指向的內(nèi)存空間的指令。

可以理解的是,本實(shí)施例是在s54才根據(jù)檢查結(jié)果從多個查找結(jié)果中選擇與檢查結(jié)果匹配的查找結(jié)果,故s52和s53可為同步執(zhí)行。在其他實(shí)施例中,也可在執(zhí)行s52后,執(zhí)行s53為從所述多個允許訪問集合中選擇與所述檢查結(jié)果對應(yīng)的允許訪問集合,并根據(jù)所述訪問者標(biāo)識查找該選擇的允許訪問集合,得到一查找結(jié)果,再執(zhí)行s54為根據(jù)查找結(jié)果生成一指令。以上s52-s54均為查找所述訪問者標(biāo)識是否屬于多個允許訪問集合中的與所述檢查結(jié)果對應(yīng)的允許訪問集合,并根據(jù)查找結(jié)果生成一指令的具體實(shí)現(xiàn)方式,再次不作限定。

由于對應(yīng)內(nèi)存空間不同狀態(tài)的允許訪問列表包含上述不同的訪問者標(biāo)識。在一實(shí)施例中,若對應(yīng)第一狀態(tài)的允許訪問列表僅包含處理器標(biāo)識;對應(yīng)第二狀態(tài)的允許訪問列表僅包含硬件單元標(biāo)識。則s54實(shí)現(xiàn)了:當(dāng)所述訪問地址指向的內(nèi)存空間處于第一狀態(tài)時,若所述訪問請求是處理器發(fā)出的,則允許其訪問所述內(nèi)存空間,否則阻止對所述內(nèi)存空間的訪問;當(dāng)所述訪問地址指向的內(nèi)存空間處于第二狀態(tài)時,若所述訪問請求是符合要求的硬件單元發(fā)出的,則允許其訪問所述內(nèi)存空間,否則直接阻止對所述內(nèi)存空間的訪問。

如上述實(shí)施例所述,該預(yù)設(shè)內(nèi)存區(qū)域包括第一狀態(tài)和第二狀態(tài),且不同狀態(tài)下,允許不同硬件進(jìn)行訪問。當(dāng)所述訪問地址指向的內(nèi)存空間處于第一狀態(tài)時,表示該內(nèi)存空間當(dāng)前僅允許處理器訪問,若硬件單元請求訪問則由該內(nèi)存控制器阻止并可拋出系統(tǒng)異常,以防止硬件單元由于錯誤時序或其他原因誤訪問處理器內(nèi)存,竊取或篡改該處理器內(nèi)存,此時系統(tǒng)內(nèi)存保護(hù)支持(也稱為kprotect)生效,內(nèi)存控制器可采用kprotect進(jìn)行對該預(yù)設(shè)內(nèi)存區(qū)域的保護(hù);當(dāng)所述訪問地址指向的內(nèi)存空間處于第二狀態(tài)時,表示該內(nèi)存空間當(dāng)前僅允許硬件單元訪問,若處理器請求訪問則由該內(nèi)存控制器阻止并可拋出系統(tǒng)異常,以防止處理器由于錯時序或其他原因誤訪問硬件單元內(nèi)存,竊取或篡改該硬件單元內(nèi)存。

基于上一實(shí)施例,在另一實(shí)施例中,若該資源共享不僅針對預(yù)設(shè)內(nèi)存區(qū)域的安全內(nèi)存區(qū)域,故還需區(qū)分安全內(nèi)存區(qū)域和非安全內(nèi)存區(qū)域,即該預(yù)設(shè)內(nèi)存區(qū)域包括安全內(nèi)存區(qū)域和非安全內(nèi)存區(qū)域。請結(jié)合參閱圖6,該內(nèi)存訪問控制方法與上一實(shí)施例的不同步驟包括:

步驟s52還包括根據(jù)所述訪問地址檢查所述訪問地址指向的內(nèi)存空間是否屬于系統(tǒng)內(nèi)存中的預(yù)設(shè)內(nèi)存區(qū)域的安全內(nèi)存區(qū)域。

該檢查結(jié)果有四種情況:該訪問地址指向的內(nèi)存空間是預(yù)設(shè)內(nèi)存區(qū)域的安全內(nèi)存區(qū)域,該內(nèi)存空間處于第一狀態(tài);該訪問地址指向的內(nèi)存空間不是預(yù)設(shè)內(nèi)存區(qū)域的安全內(nèi)存區(qū)域,該內(nèi)存空間處于第一狀態(tài);該訪問地址指向的內(nèi)存空間是預(yù)設(shè)內(nèi)存區(qū)域的安全內(nèi)存區(qū)域,該內(nèi)存空間處于第二狀態(tài);以及該訪問地址指向的內(nèi)存空間不是預(yù)設(shè)內(nèi)存區(qū)域的安全內(nèi)存區(qū)域,該內(nèi)存空間處于第二狀態(tài)。

例如,上述預(yù)設(shè)內(nèi)存區(qū)域中的每個內(nèi)存頁還均配置有第二控制位,該第二控制位用于表示該內(nèi)存頁屬于安全內(nèi)存區(qū)域還是非安全內(nèi)存區(qū)域,其位值并非如第一控制位般采用設(shè)值保存的方式,而是由內(nèi)存控制器即時計算得到。

具體地,內(nèi)存控制器根據(jù)所述訪問地址與所述預(yù)存內(nèi)存區(qū)域中的安全內(nèi)存區(qū)域的地址之間的關(guān)系,計算得到訪問地址指向的內(nèi)存頁的第二控制位的值,例如,若該訪問地址屬于安全內(nèi)存區(qū)域的地址范圍,則該訪問地址指向的內(nèi)存頁的第二控制位為第三字符,若不屬于,則該訪問地址指向的內(nèi)存頁的第二控制位為第四字符。其中,當(dāng)所述第二控制位為第三字符時,表示所述內(nèi)存頁屬于所述安全內(nèi)存區(qū)域;當(dāng)所述第二控制位為第四字符時,表示所述內(nèi)存頁屬于所述非安全內(nèi)存區(qū)域。

上述第一字符與第二字符、第三字符與第四字符均可為任意不同字符,例如第一字符與第二字符分別為1和0,第三字符與第四字符分別為1和0。那么s52得到的檢查結(jié)果有幾種情況可以表示為(1,1),(0,1),(1,0),(0,0)。

該多個允許訪問列表為分別對應(yīng)上述檢查結(jié)果的四種情況的四個允許訪問列表;或者對應(yīng)內(nèi)存空間處于第一狀態(tài)的兩個檢查結(jié)果公用一個允許訪問列表,即該多個允許訪問列表為分別對應(yīng)上述檢查結(jié)果的四種情況的三個允許訪問列表。在一具體應(yīng)用中,可對上述允許訪問列表進(jìn)行如下設(shè)置:對應(yīng)處于第一狀態(tài)的一個或兩個允許訪問列表僅僅包含處理器標(biāo)識,對應(yīng)安全內(nèi)存區(qū)域的第二狀態(tài)的允許訪問列表和對應(yīng)非安全內(nèi)存區(qū)域的第二狀態(tài)的允許訪問列表均僅包含硬件單元標(biāo)識,對應(yīng)安全內(nèi)存區(qū)域的第二狀態(tài)的允許訪問列表的硬件單元標(biāo)識為設(shè)定若處于安全狀態(tài)則可訪問的硬件單元標(biāo)識,對應(yīng)非安全內(nèi)存區(qū)域的第二狀態(tài)的允許訪問列表的硬件單元標(biāo)識至少包括設(shè)定若處于非安全狀態(tài)則可訪問的硬件單元標(biāo)識。

s54中所述根據(jù)該查找結(jié)果生成一指令,包括:

s541:在所述內(nèi)存空間屬于所述安全內(nèi)存區(qū)域時,若所述訪問者處于安全狀態(tài),則生成允許所述訪問者訪問所述內(nèi)存空間的指令,否則生成不允許所述訪問者訪問所述內(nèi)存空間的指令;

若檢查確定需訪問的內(nèi)存空間為安全內(nèi)存區(qū)域,且訪問者標(biāo)識屬于對應(yīng)安全內(nèi)存區(qū)域的第二狀態(tài)的允許訪問集合,則安全內(nèi)存保護(hù)機(jī)制生效,內(nèi)存控制器允許安全狀態(tài)的硬件單元進(jìn)行該訪問,阻止非安全狀態(tài)的硬件單元進(jìn)行該訪問并可拋出系統(tǒng)異常,以防止非安全狀態(tài)的硬件單元由于錯時序或其他原因誤訪問安全內(nèi)存區(qū)域,竊取或篡改該安全內(nèi)存區(qū)域的內(nèi)容。

s542:在所述內(nèi)存空間屬于所述非安全內(nèi)存區(qū)域時,不管所述訪問者處于安全狀態(tài)還是非安全狀態(tài),均生成允許所述訪問者訪問所述內(nèi)存空間的指令;或若所述訪問者處于非安全狀態(tài),則生成允許所述訪問者訪問所述內(nèi)存空間的指令,否則生成不允許所述訪問者訪問所述內(nèi)存空間的指令。

若檢查確定需訪問的內(nèi)存空間為非安全內(nèi)存區(qū)域,且訪問者標(biāo)識屬于對應(yīng)非安全內(nèi)存區(qū)域的第二狀態(tài)的允許訪問集合,則根據(jù)不同應(yīng)用需求,內(nèi)存控制器可允許安全狀態(tài)和非安全狀態(tài)的硬件單元進(jìn)行該訪問?;蛘邇?nèi)存控制器僅允許非安全狀態(tài)的硬件單元進(jìn)行該訪問,阻止安全狀態(tài)的硬件單元進(jìn)行該訪問并可拋出系統(tǒng)異常,以防止安全狀態(tài)的硬件單元由于錯時序或其他原因誤訪問非安全內(nèi)存區(qū)域,導(dǎo)致需受保護(hù)的內(nèi)容誤被輸出到非安全內(nèi)存區(qū)域。

在再一區(qū)分安全內(nèi)存區(qū)域和非安全內(nèi)存區(qū)域的實(shí)施例中,該多個允許訪問列表同理上一實(shí)施例,但對應(yīng)安全內(nèi)存區(qū)域的第二狀態(tài)的允許訪問列表僅包含處于安全狀態(tài)的硬件單元標(biāo)識;對應(yīng)非安全內(nèi)存區(qū)域的第二狀態(tài)的允許訪問列表僅包含處于非安全狀態(tài)的硬件單元標(biāo)識,或者處于安全狀態(tài)和非安全狀態(tài)的硬件單元標(biāo)識。對應(yīng)地,s54中所述根據(jù)該查找結(jié)果生成一指令,包括:若在s53中檢查到的對應(yīng)安全內(nèi)存區(qū)域的第二狀態(tài)的允許集合中存在該訪問者的標(biāo)識,生成允許所述訪問者訪問所述內(nèi)存空間的指令,否則生成不允許所述訪問者訪問所述內(nèi)存空間的指令;若在s53中檢查到的對應(yīng)非安全內(nèi)存區(qū)域的第二狀態(tài)的允許集合中存在該訪問者的標(biāo)識,生成允許所述訪問者訪問所述內(nèi)存空間的指令,否則生成不允許所述訪問者訪問所述內(nèi)存空間的指令。

該內(nèi)存訪問控制方法除包括圖5所示步驟,還包括:監(jiān)測至少部分硬件單元的當(dāng)前狀態(tài),當(dāng)該硬件單元處于安全狀態(tài)時,將其歸到對應(yīng)安全內(nèi)存區(qū)域的第二狀態(tài)的允許訪問集合中或者還將其歸到對應(yīng)非安全內(nèi)存區(qū)域的第二狀態(tài)的允許訪問集合中,當(dāng)該硬件單元處于非安全狀態(tài)時,將其歸到對應(yīng)非安全內(nèi)存區(qū)域的第二狀態(tài)的允許訪問集合中。該至少部分硬件單元至少包括設(shè)定可訪問預(yù)存內(nèi)存區(qū)域的硬件單元。

由上可總結(jié),上述第二狀態(tài)的允許訪問集合中的硬件單元標(biāo)識滿足以下設(shè)定策略,若該資源共享僅針對安全內(nèi)存區(qū)域,則該允許訪問集合中的硬件單元標(biāo)識為處于安全狀態(tài)或者設(shè)定若處于安全狀態(tài)則可訪問的硬件單元標(biāo)識,如為前者,則內(nèi)存控制器可直接執(zhí)行根據(jù)s54的最終查找結(jié)果生成指令,如為后者,則內(nèi)存控制器需如上一實(shí)施例結(jié)合最終查找結(jié)果和訪問者的當(dāng)前狀態(tài)生成指令;若該資源共享還區(qū)分安全內(nèi)存區(qū)域和非安全內(nèi)存區(qū)域,則該對應(yīng)安全內(nèi)存區(qū)域的允許訪問集合中的硬件單元標(biāo)識為處于安全狀態(tài)或者設(shè)定若處于安全狀態(tài)則可訪問的硬件單元標(biāo)識;該對應(yīng)非安全內(nèi)存區(qū)域的允許訪問集合中的硬件單元標(biāo)識至少包括處于非安全狀態(tài)或者設(shè)定若處于非安全狀態(tài)則可訪問的硬件單元標(biāo)識。

在上述預(yù)設(shè)內(nèi)存區(qū)域包括安全內(nèi)存區(qū)域和非安全內(nèi)存區(qū)域的實(shí)施例中,上述內(nèi)存控制器對預(yù)設(shè)內(nèi)存區(qū)域的內(nèi)存訪問控制邏輯如下表1,其中,該下表1中p為上述第一控制位,s為第二控制位,kprotect生效表示該內(nèi)存頁僅允許處理器訪問,并阻止硬件單元訪問;安全內(nèi)存保護(hù)機(jī)制用于保護(hù)處于第二狀態(tài)的安全內(nèi)存區(qū)域僅允許安全狀態(tài)的硬件單元訪問。

表1

結(jié)合上表對本發(fā)明的安全性進(jìn)行分析:

以tee和richos雙運(yùn)行環(huán)境的終端設(shè)備為例,對于每個預(yù)設(shè)內(nèi)存區(qū)域中的內(nèi)存頁,

1)如果其控制位s為1,并且控制位p為0,表示此內(nèi)存頁內(nèi)存已經(jīng)劃歸tee做安全內(nèi)存使用,此時非安全狀態(tài)的硬件單元無法讀寫該內(nèi)存頁,滿足了tee的安全內(nèi)存要求。

2)如果控制位s為1,并且控制位p為1,則內(nèi)存控制器阻止安全狀態(tài)的硬件單元寫此內(nèi)存頁。這樣就阻止了richos端惡意將tee使用的內(nèi)存頁偷偷切換回richos導(dǎo)致安全狀態(tài)的硬件單元在不知情的狀況下繼續(xù)寫此數(shù)據(jù)到該內(nèi)存頁,進(jìn)而導(dǎo)致數(shù)據(jù)泄漏到richos端。

3)控制位s為1時,控制位p的切換,由內(nèi)存控制器自動對相應(yīng)的內(nèi)存頁進(jìn)行內(nèi)存清零,從而阻止了可能的回滾攻擊或者richos端通過頻繁的切換控制位p來偷取安全狀態(tài)的硬件單元的輸出數(shù)據(jù)。

請參閱圖7,圖7是本發(fā)明內(nèi)存訪問控制方法另一實(shí)施例的流程圖。本實(shí)施例除包括上述實(shí)施例所述步驟外,還可包括以下步驟:

s71:內(nèi)存控制器檢測到存在所述內(nèi)存頁的第一控制位的值需發(fā)生變化。

s72:判斷所述需發(fā)生變化的內(nèi)存頁的第二控制位是否為第三字符。若是,則確定該內(nèi)存頁屬于安全內(nèi)存區(qū)域,并執(zhí)行s73,否則執(zhí)行s74。

s73:清除所述需發(fā)生變化的內(nèi)存頁中的數(shù)據(jù)。

s74:通知處理器該所述內(nèi)存頁的第一控制位可發(fā)生變化。

例如,如圖3所示實(shí)施例所述,上述處理器在執(zhí)行s32或者在確定該硬件單元操作完成時將所述操作訪問到的預(yù)設(shè)內(nèi)存區(qū)域從第二狀態(tài)更改為第一狀態(tài)之前,向內(nèi)存控制器發(fā)送指令,以指示該預(yù)設(shè)內(nèi)存區(qū)域的相關(guān)內(nèi)存頁的第一控制位的值需發(fā)生變化。此時,為防止回滾(rollback)攻擊或安全數(shù)據(jù)被竊取,內(nèi)存控制器判斷該內(nèi)存頁是否屬于該安全內(nèi)存區(qū)域。具體地,內(nèi)存控制器計算第一控制位需發(fā)生變化的內(nèi)存頁的第二控制位的值,并判斷該計算得到的第二控制位的值是否為表示該內(nèi)存頁屬于安全內(nèi)存區(qū)域的第三字符,若是,則對該內(nèi)存頁的數(shù)據(jù)進(jìn)行清除,以保證安全狀態(tài)的硬件單元的操作數(shù)據(jù)不被后續(xù)訪問的處理器或硬件單元竊取。在清除完成后或無需執(zhí)行清除時,該內(nèi)存控制器拉中斷通知處理器該內(nèi)存頁的第一控制位可發(fā)生變化,即該內(nèi)存頁的狀態(tài)可進(jìn)行切換,上述處理器收到該通知則執(zhí)行上述對內(nèi)存頁的狀態(tài)的切換,否則不執(zhí)行該內(nèi)存頁的狀態(tài)切換。

為更清楚了解本發(fā)明,下面結(jié)合圖8舉例說明。播放終端如嵌入式平臺的播放終端可支援多路視頻解碼。

現(xiàn)有采用獨(dú)立與系統(tǒng)內(nèi)存的安全內(nèi)存的方案中,在多路視頻任意時序啟播停播的情況下,安全內(nèi)存的分配使用上會出現(xiàn)碎片化。例如,安全內(nèi)存的大小為300mb,目前有兩路視頻正在解碼,共使用90mb,剩余的210mb是空閑的。安全內(nèi)存始終有部分區(qū)域在被使用中,這樣就會導(dǎo)致安全內(nèi)存保護(hù)區(qū)域無法做調(diào)整,進(jìn)而空閑出來的內(nèi)存區(qū)域81無法共享給系統(tǒng)內(nèi)存使用;并且,空閑的安全內(nèi)存碎片81數(shù)目可能非常多,由于傳統(tǒng)的安全內(nèi)存所能保護(hù)的塊(section)數(shù)目的限制而無法支持更多的內(nèi)存碎片數(shù)目,故無法將該安全內(nèi)存碎片81進(jìn)行回收。

采用本發(fā)明,將安全內(nèi)存區(qū)域設(shè)置在系統(tǒng)內(nèi)存中,并通過設(shè)置安全內(nèi)存區(qū)域的狀態(tài)來調(diào)整其由安全狀態(tài)的硬件單元或處理器使用。如圖8所示,該系統(tǒng)內(nèi)存中的安全內(nèi)存區(qū)域在被用于進(jìn)行上述兩路視頻解碼時,其被使用的內(nèi)存頁的第一控制位p為0,第二控制位s為1,而未被使用的安全內(nèi)存碎片81中的內(nèi)存頁的第一控制位p為1,第二控制位s為1,進(jìn)而將安全內(nèi)存碎片81回收給處理器使用具體如ree端的linux使用。故通過設(shè)置安全內(nèi)存區(qū)域的狀態(tài)調(diào)整其使用,實(shí)現(xiàn)了安全內(nèi)存碎片的回收,使得內(nèi)存空間得到有效利用,且不同區(qū)域狀態(tài)保證不同硬件使用,也保證了數(shù)據(jù)安全。

根據(jù)本發(fā)明的另一具體實(shí)施例為一種非瞬時計算機(jī)可讀儲存媒體,用于管理一供硬件單元進(jìn)行訪問的系統(tǒng)內(nèi)存,其中存儲由一處理器讀取并執(zhí)行的一程序代碼,其特征在于,所述程序代碼包括一第一子程序碼和一第二子程序碼。

所述第一子程序碼用于在接收到所述硬件單元發(fā)出的一操作請求時,根據(jù)操作請求的類型來判斷所述硬件單元請求的操作是否是訪問所述系統(tǒng)內(nèi)存里的一安全內(nèi)存區(qū)域;比如說,當(dāng)所述硬件單元是4k高清解碼器時,該操作請求中會包含表示訪問所述系統(tǒng)內(nèi)存的一安全內(nèi)存區(qū)域的信息,當(dāng)所述硬件單元是一標(biāo)清解碼器時,該操作請求中會包含表示不是訪問所述系統(tǒng)內(nèi)存的安全內(nèi)存區(qū)域的信息。

所述第二子程序碼,用于將所述系統(tǒng)內(nèi)存中的所述需訪問的安全內(nèi)存區(qū)域從默認(rèn)的第一狀態(tài)更改為第二狀態(tài),并將所述硬件單元設(shè)置為安全狀態(tài);

其中,所述安全內(nèi)存區(qū)域處于所述第一狀態(tài)時,表示限定僅供處理器進(jìn)行訪問,所述硬件單元不可對其進(jìn)行訪問;所述安全內(nèi)存區(qū)域處于所述第二狀態(tài)時,表示僅供處于安全狀態(tài)的所述硬件單元進(jìn)行訪問。

可選地,所述程序代碼還包括一第三子程序碼,用于在系統(tǒng)啟動時,按照內(nèi)存分配策略將所述系統(tǒng)內(nèi)存中一段或多段連續(xù)內(nèi)存劃分為所述系統(tǒng)內(nèi)存中的安全內(nèi)存區(qū)域。

可選地,所述安全內(nèi)存區(qū)域共包括第一數(shù)量內(nèi)存頁,每個內(nèi)存頁均配置第一控制位;所述第二子程序碼具體用于確定所述需訪問的安全內(nèi)存區(qū)域的大小為第二數(shù)量內(nèi)存頁;將所述安全內(nèi)存區(qū)域中的第二數(shù)量內(nèi)存頁的第一控制位由第一字符更改為第二字符;其中,所述第一控制位為第一字符時,表示所述內(nèi)存頁處于所述第一狀態(tài);所述第一控制位為第二字符時,表示所述內(nèi)存頁處于所述第二狀態(tài);所述第一數(shù)量大于或等于所述第二數(shù)量。

可選地,所述第二子程序碼還用于若所述硬件單元請求的操作不是訪問所述系統(tǒng)內(nèi)存的安全內(nèi)存空間,則將系統(tǒng)內(nèi)存中的至少部分非安全內(nèi)存區(qū)域從第一狀態(tài)更改為第二狀態(tài),并將所述硬件單元設(shè)置為非安全狀態(tài);其中,所述非安全內(nèi)存區(qū)域處于所述第一狀態(tài)時,表示僅供處理器進(jìn)行訪問,所述非安全內(nèi)存區(qū)域處于所述第二狀態(tài)時,表示可由處于安全狀態(tài)或非安全狀態(tài)的硬件單元進(jìn)行訪問,或限定僅供處于非安全狀態(tài)的硬件單元進(jìn)行訪問。

可選地,所述安全內(nèi)存區(qū)域和非安全內(nèi)存區(qū)域均為所述系統(tǒng)內(nèi)存中由cma分配的連續(xù)內(nèi)存區(qū)域。

請參閱圖9,圖9是可采用本發(fā)明內(nèi)存訪問控制方法的系統(tǒng)結(jié)構(gòu)示意圖。該系統(tǒng)包括至少一個硬件單元901,一處理器902和一內(nèi)存控制器903,以上器件通過總線互相溝通并借由內(nèi)存控制器903來存取一系統(tǒng)內(nèi)存904。上述實(shí)施例中的內(nèi)存訪問控制方法即可應(yīng)用在圖9所示的系統(tǒng)中,結(jié)合起來可更好理解本發(fā)明。

請參閱圖10,圖10是本發(fā)明內(nèi)存訪問控制裝置一實(shí)施例的結(jié)構(gòu)示意圖。本實(shí)施例中,該內(nèi)存訪問控制裝置包括多個保護(hù)組101(101a、101b、101c、101d)、一檢查單元102和一判斷單元103。

該檢查單元102用于從總線中接收訪問地址,根據(jù)所述訪問地址檢查所述訪問地址指向的內(nèi)存空間是否屬于系統(tǒng)內(nèi)存中的預(yù)設(shè)內(nèi)存區(qū)域的安全內(nèi)存區(qū)域,以及檢查所述訪問地址指向的內(nèi)存空間的當(dāng)前狀態(tài),得到一檢查結(jié)果,并將該檢查結(jié)果發(fā)送到該判斷單元103。

該多個保護(hù)組101a,101b的每個保護(hù)組用于接收從總線得到的訪問者標(biāo)識,根據(jù)訪問者標(biāo)識查找允許訪問列表得到一查找結(jié)果,并將該多個查找結(jié)果發(fā)送到該判斷單元103。

該判斷單元103,連接于該多個保護(hù)組101a,102b…和所述檢查單元102,用于根據(jù)該檢查結(jié)果選擇一查找結(jié)果,然后根據(jù)該查找結(jié)果生成一決定訊號。

在一實(shí)施例中,若該資源共享僅針對預(yù)設(shè)內(nèi)存區(qū)域的安全內(nèi)存區(qū)域,那么僅需設(shè)置第一控制位p,就可實(shí)現(xiàn)本發(fā)明的內(nèi)存訪問控制。該檢查單元102的檢查結(jié)果為p=1或p=0,并且僅需2個保護(hù)組101a和101b即可實(shí)現(xiàn)保護(hù)功能。具體的,保護(hù)組101a可設(shè)定為判斷所述訪問者標(biāo)識是否存在于在所述訪問地址指向的內(nèi)存空間的當(dāng)前狀態(tài)為第一狀態(tài)(即p為1)時對應(yīng)的允許訪問列表,若在該列表內(nèi),則查找結(jié)果為是;若不在該列表內(nèi),則查找結(jié)果為否。保護(hù)組101b可設(shè)定為判斷所述訪問者標(biāo)識是否存在于所述訪問地址指向的內(nèi)存空間的當(dāng)前狀態(tài)為第二狀態(tài)(即p為0)時對應(yīng)的允許訪問列表,若在該列表內(nèi),則查找結(jié)果為是;若不在該列表內(nèi),則查找結(jié)果為否。舉例來說,若檢查單元102的檢查結(jié)果為p=1,那么判斷單元103就選擇保護(hù)組101a的查找結(jié)果,若該查找結(jié)果為是,該決定訊號就是允許該訪問者對所述訪問地址指向的內(nèi)存空間區(qū)域的訪問,反之不允許。

在另一實(shí)施例中,若需要區(qū)分所述訪問地址指向的內(nèi)存空間是否屬于系統(tǒng)內(nèi)存中的預(yù)設(shè)內(nèi)存區(qū)域的安全內(nèi)存區(qū)域,以及檢查所述訪問地址指向的內(nèi)存空間的當(dāng)前狀態(tài),那么設(shè)置s,p兩個控制位,即可實(shí)現(xiàn)本發(fā)明的內(nèi)存訪問控制。該檢查單元102的檢查結(jié)果為(s,p)是(1,1),(0,1),(1,0),(0,0),并且需4個保護(hù)組101a,101b,101c,101d即可實(shí)現(xiàn)保護(hù)功能。具體的,保護(hù)組101a可設(shè)定為判斷所述訪問者標(biāo)識是否存在于在(s,p)=(1,1)時對應(yīng)的允許訪問列表,若在該列表內(nèi),則查找結(jié)果為是;若不在該列表內(nèi),則查找結(jié)果為否。保護(hù)組101b可設(shè)定為判斷所述訪問者標(biāo)識是否存在于在(s,p)=(0,1)時對應(yīng)的允許訪問列表,若在該列表內(nèi),則查找結(jié)果為是;若不在該列表內(nèi),則查找結(jié)果為否。保護(hù)組101c可設(shè)定為判斷所述訪問者標(biāo)識是否存在于在(s,p)=(1,0)時對應(yīng)的允許訪問列表,若在該列表內(nèi),則查找結(jié)果為是;若不在該列表內(nèi),則查找結(jié)果為否。保護(hù)組101d可設(shè)定為判斷所述訪問者標(biāo)識是否存在于在(s,p)=(0,0)時對應(yīng)的允許訪問列表,若在該列表內(nèi),則查找結(jié)果為是;若不在該列表內(nèi),則查找結(jié)果為否。舉例來說,若檢查單元102的檢查結(jié)果為(s,p)=(1,1),那么判斷單元103就選擇保護(hù)組101a的查找結(jié)果,若該查找結(jié)果為是,該決定訊號就是允許該訪問者對所述訪問地址指向的內(nèi)存空間區(qū)域的訪問,反之不允許。

若在實(shí)際應(yīng)用中,還需要設(shè)置更多的控制位時,可利用更多的保護(hù)組數(shù)來實(shí)現(xiàn)保護(hù)功能,本領(lǐng)域技術(shù)人員可知這種變化也落入本發(fā)明的保護(hù)范圍之內(nèi)。

請結(jié)合參閱圖11,圖11是本發(fā)明檢查單元的一實(shí)施例的結(jié)構(gòu)示意圖。如圖11所示,該檢查單元包含一地址位移單元111,當(dāng)存取命令進(jìn)入內(nèi)存控制裝置的檢查單元102時,該地址位移單元111從總線中的地址信息得到一訪問地址,該檢查單元102會根據(jù)所述訪問地址查出該訪問地址對應(yīng)的內(nèi)存空間的控制位的值。在一實(shí)施例中,該檢查單元102可用一多工器實(shí)現(xiàn)。

請參閱圖12,圖12是本發(fā)明判斷單元的一實(shí)施例的結(jié)構(gòu)示意圖,所述該內(nèi)存訪問控制裝置的該判斷單元103,可用一多工器實(shí)現(xiàn)。圖中以設(shè)置s和p兩個控制位的情況,當(dāng)然也可改變成只有一個控制位或其他多個控制位的情況,此處不作贅述。

在內(nèi)存資源共享后可能會引起安全問題,所以要采用內(nèi)存區(qū)域保護(hù)機(jī)制,可應(yīng)用在保護(hù)操作系統(tǒng)核心的內(nèi)存存取區(qū)域,只允許cpu(centralprocessingunit,中央處理單元)或特定類型的硬件單元才能存取此區(qū)域,以防止操作系統(tǒng)核心的資料遭到破壞。傳統(tǒng)的保護(hù)機(jī)制只能以一塊連續(xù)的內(nèi)存區(qū)域?yàn)閱挝?,一組保護(hù)組數(shù)即可滿足條件,當(dāng)內(nèi)存被共享重新分配以后,原始的連續(xù)保護(hù)區(qū)域可能會被拆開成數(shù)塊分別被cpu或其他硬件單元存取,如此需要針對每組來設(shè)定多個保護(hù)組,每組起的作用是保護(hù)該組范圍的區(qū)塊僅被預(yù)設(shè)的允許的cpu或特定類型的硬件單元存取。而本發(fā)明僅需2組或4組保護(hù)組來保護(hù)相應(yīng)的內(nèi)存空間,又不會影響已分配給其他硬件單元的內(nèi)存空間。于是操作系統(tǒng)就不需占用多個保護(hù)組,可大大降低內(nèi)存空間保護(hù)組的成本。特別是,當(dāng)原始的連續(xù)保護(hù)區(qū)域被拆開成2個或4個以上的區(qū)域時,本發(fā)明的保護(hù)機(jī)制所降低的成本顯著。

請參閱圖13,圖13是本發(fā)明內(nèi)存訪問控制裝置另一實(shí)施例的結(jié)構(gòu)示意圖。本實(shí)施例中,該內(nèi)存訪問控制裝置與圖10所示的裝置的保護(hù)組和單元基本相同,其區(qū)別在于該多個保護(hù)組131(131a、131b、131c、131d)連接于檢查單元132,該判斷單元133連接于該多個保護(hù)組131。該多個保護(hù)組131根據(jù)檢查單元132的檢查結(jié)果,選擇與所述檢查結(jié)果對應(yīng)的保護(hù)組根據(jù)一訪問者標(biāo)識查找允許訪問列表得到一查找結(jié)果;該判斷單元133直接接收所述與所述檢查結(jié)果對應(yīng)的保護(hù)組的查找結(jié)果,并根據(jù)所述查找結(jié)果產(chǎn)生一決定訊號。

上述內(nèi)存訪問控制裝置的對應(yīng)單元結(jié)構(gòu)還用于執(zhí)行上述內(nèi)存訪問控制方法實(shí)施例的對應(yīng)步驟對應(yīng),具體可參閱上述方法實(shí)施例的描述。

上述處理器還可以稱為cpu。上述內(nèi)存控制器可為片上系統(tǒng)(systemonchip,soc)芯片。在具體應(yīng)用中,終端設(shè)備的上述各個組件通過總線(圖未示)耦合在一起,其中總線除包括數(shù)據(jù)總線之外,還可以包括電源總線、控制總線和狀態(tài)信號總線等。

上述本發(fā)明實(shí)施例揭示的方法可以應(yīng)用于處理器或內(nèi)存控制器中,或者由處理器或內(nèi)存控制器實(shí)現(xiàn)。處理器或內(nèi)存控制器可能是一種集成電路芯片,具有信號的處理能力。在實(shí)現(xiàn)過程中,上述方法的各步驟可以通過處理器或內(nèi)存控制器中的硬件的集成邏輯電路或者軟件形式的指令完成。上述的處理器或內(nèi)存控制器可以是通用處理器、數(shù)字信號處理器(dsp)、專用集成電路(asic)、現(xiàn)成可編程門陣列(fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。結(jié)合本發(fā)明實(shí)施例所公開的方法的步驟可以直接體現(xiàn)為硬件電路執(zhí)行完成,或者用硬件電路中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機(jī)存儲器、閃存、只讀存儲器、可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領(lǐng)域成熟的存儲介質(zhì)中。該存儲介質(zhì)位于存儲器,處理器或內(nèi)存控制器讀取存儲器中的信息,結(jié)合其硬件完成上述方法的步驟。

以上方案可帶來以下有益效果:

1)系統(tǒng)內(nèi)存與安全內(nèi)存區(qū)域分時共用物理內(nèi)存,減少系統(tǒng)的總內(nèi)存需求;

2)具有足夠的穩(wěn)健性,不會因?yàn)榈谌酱a的錯誤或者其他時序問題導(dǎo)致硬件單元與處理器之間的數(shù)據(jù)互踩;

3)具有足夠的安全性,能夠阻止非安全狀態(tài)如運(yùn)行在richos的處理器或硬件單元向安全狀態(tài)如tee環(huán)境中的硬件單元灌輸數(shù)據(jù)的回滾攻擊,并能阻止非安全狀態(tài)的處理器或硬件單元偷取安全內(nèi)存區(qū)域的數(shù)據(jù);

4)從硬件成本分析:

本方案無需另外設(shè)置安全內(nèi)存,可降低系統(tǒng)成本;并且減少保護(hù)組數(shù)也可降低系統(tǒng)成本。

進(jìn)一步,本方案可采用了比較大的頁面(page),如1m,512k之類的大粒度內(nèi)存頁,同時每個內(nèi)存頁只需要一個位的控制字來設(shè)置其狀態(tài),而不是像傳統(tǒng)mmu那樣每個內(nèi)存頁均需非常多的控制位來支援隨機(jī)映射,故大幅的減少了硬件內(nèi)部的存儲位需求,進(jìn)一步減少了系統(tǒng)存儲成本。

在本發(fā)明所提供的幾個實(shí)施方式中,應(yīng)該理解到,所揭露的方法以及裝置,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施方式僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。

所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施方式方案的目的。

另外,在本發(fā)明各個實(shí)施方式中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。

上述其他實(shí)施方式中的集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個實(shí)施方式所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機(jī)存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1