亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

寄存器地址空間的控制方法、控制器及片上系統(tǒng)與流程

文檔序號:12597044閱讀:322來源:國知局
寄存器地址空間的控制方法、控制器及片上系統(tǒng)與流程

本發(fā)明涉及集成電路和信息安全領(lǐng)域,特別涉及寄存器地址空間的控制方法、控制器及片上系統(tǒng)。



背景技術(shù):

使用ARM TrustZone技術(shù)的SoC(片上系統(tǒng))將所有的硬件資源和訪問這些硬件資源的主設(shè)備master(包括中央處理器CPU,圖形處理器GPU和其它可進行直接內(nèi)存存取(DMA)的硬件組件)劃分為2個世界---安全世界和非安全世界(也稱正常世界)。其中,硬件資源是指總線上組建內(nèi)的被訪問的存儲設(shè)備,包括RAM和寄存器等。安全世界的資源是受到保護的,只能被安全世界的master訪問,而不能被非安全世界的master訪問。從靈活性出發(fā),對安全世界和非安全世界的劃分,只有少量的硬件資源和master是固定的(運行在上面的軟件不可配置的),大部分是在軟件啟動過程中進行配置的。

在劃分和保護寄存器方面,現(xiàn)有的方法是使用ARM總線,該總線有地址區(qū)域控制寄存器用于配置總線上各硬件組件的寄存器是否受到保護的。如圖1所示,總線上有SDIO控制器(安全數(shù)字輸入/輸出接口控制器)、USB控制器(通用串行總線控制器)和ISP(圖像信號處理器)等3個組件。軟件通過設(shè)置總線中的地址區(qū)域控制寄存器可以指定這3個組件中的寄存器是否受到保護。

這種方式存在以下2個缺點:

1、不靈活,只能配置某個組件中的寄存器地址空間全部受到保護,或 全部不受到保護。不能指定組件中的一部分寄存器受到保護,而其它部分不受到保護。

2、提供給軟件開發(fā)人員的接口不友好,因為在一個SoC中通常有多個總線分別連接不同的組件,各個總線中的地址區(qū)域控制寄存器地址空間也不是連續(xù)的。軟件開發(fā)人員需要知道SoC中的總線連接情況和各個總線中的地址區(qū)域控制寄存器。



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

本發(fā)明的目的在于提供一種寄存器地址空間的控制方法、寄存器地址空間控制器及片上系統(tǒng)。使得終端設(shè)備可以通過寄存器組標識地址空間和訪問是否受保護,進而使軟件開發(fā)人員僅通過設(shè)置該控制器就可以靈活的指定任意寄存器地址空間受到保護,而不需要關(guān)心SoC中的總線連接情況和總線中的地址區(qū)域控制寄存器。

為解決上述技術(shù)問題,本發(fā)明的實施方式提供了一種寄存器地址空間的控制方法,包含以下步驟:預(yù)先為總線上的各硬件資源設(shè)置至少一個配置項,每個配置項用于指定一個寄存器地址空間、和指示該寄存器地址空間是否受到讀保護或?qū)懕Wo;如果非安全世界的主設(shè)備訪問的地址在所述配置的第i組寄存器指定的地址空間內(nèi),則根據(jù)第i個配置項所指示地址的是否受到讀保護或?qū)懕Wo,判斷是否允許主設(shè)備訪問;其中,i大于或等于0,并且小于或等于配置的寄存器組的個數(shù)。

本發(fā)明的實施方式還提供了一種寄存器地址空間控制器,包含:配置單元,用于為總線上的各硬件資源配置至少一個配置項,每個配置項用于指定一個寄存器地址空間、和指示該寄存器地址空間是否受到讀保護或?qū)懕Wo;邏輯單元,與配置單元相連,用于在接收到非安全世界的主設(shè)備的訪問時,判斷非安全世界的主設(shè)備訪問的寄存器地址是否在所述設(shè)置的第i個配置項 指定的地址空間內(nèi),如果主設(shè)備訪問的寄存器地址在設(shè)置的第i個配置項指定的地址空間內(nèi),則根據(jù)第i個配置項所指示的是否受到讀保護或?qū)懕Wo,判斷是否允許主設(shè)備訪問;其中,所述i大于或等于0,并且小于或等于配置的寄存器組的個數(shù)。

本發(fā)明的實施方式還提供了一種片上系統(tǒng),包含:總線、硬件資源、主設(shè)備和上述寄存器地址空間控制器;其中,硬件資源、主設(shè)備和上述寄存器地址空間控制器均與總線相連。

本發(fā)明實施方式相對于現(xiàn)有技術(shù)而言,控制器通過設(shè)置的配置項自動判斷被訪問的寄存器地址空間是否受保護,使得軟件開發(fā)人員僅通過配置該控制器就可以靈活的指定任意寄存器地址空間受到保護,而不需要關(guān)心SoC中的總線連接情況和總線中的地址區(qū)域控制寄存器。

另外,硬件資源包含寄存器和/或隨機存取存儲器RAM;在預(yù)先為總線上的各硬件資源配置至少一個配置項的步驟中,為每一個需要保護的寄存器地址空間配置一個配置項??偩€上的一個組件中一般包含多個寄存器,通過設(shè)置配置項,可以實現(xiàn)對任意寄存器空間的訪問權(quán)限的設(shè)置,將保護細化到一個寄存器,解決現(xiàn)有技術(shù)只能將一個硬件組件中的所有寄存器作為一個整體來配置的問題。

另外,根據(jù)以下等式,判斷非安全世界的主設(shè)備訪問的寄存器地址是否在配置的第i個配置項指定的寄存器地址空間內(nèi):addr&config[i].addr_mask=config[i].addr_base&config[i].addr_mask其中,addr表示所述主設(shè)備訪問的地址,config[i].addr_mask表示第i個配置項中的掩碼寄存器中存儲的數(shù)據(jù),config[i].addr_base表示基址寄存器中存儲的數(shù)據(jù),&表示位于操作;如果主設(shè)備訪問的地址滿足以上等式,則判定主設(shè)備訪問的地址在所述配置的第i個配置項指定的地址空間內(nèi)。只有當主設(shè)備訪問的地址在配置的第i個配置項指定的地址空間內(nèi),才可以根據(jù)配置的第i個配置項所指示地址的是否受 到讀保護或?qū)懕Wo,以此來判斷是否允許主設(shè)備訪問。

另外,在判斷所述訪問的地址是否在設(shè)置的第i個配置項指定的地址空間內(nèi)的步驟之前,還包含:根據(jù)總線信號判斷請求訪問的設(shè)備是否為非安全世界的主設(shè)備,如果為非安全世界的主設(shè)備,則再進入判斷所述訪問的寄存器地址是否在所述配置的第i個配置項指定的寄存器地址空間內(nèi)的步驟。如果是安全世界的主設(shè)備,則訪問正常發(fā)出。因為安全世界的資源是受到保護的,只能被安全世界的主設(shè)備訪問,而不能被非安全世界的主設(shè)備訪問。所以只有當主設(shè)備為非安全世界的主設(shè)備,才需要判斷主設(shè)備訪問的地址是否在配置的第i個配置項指定的地址空間內(nèi),進而判斷配置的第i個配置項所指示地址的是否受到讀保護或?qū)懕Wo。

另外,每個配置項中基址寄存器和掩碼寄存器的位數(shù)與系統(tǒng)寄存器地址空間的位數(shù)相同??梢愿鶕?jù)不同位數(shù)的系統(tǒng)進行相關(guān)配置,實現(xiàn)了不同位數(shù)系統(tǒng)的兼容性。

附圖說明

圖1是根據(jù)現(xiàn)有技術(shù)中的總線上各組件的訪問示意圖;

圖2是根據(jù)本發(fā)明第一實施方式的寄存器地址空間的控制方法的流程圖;

圖3是根據(jù)本發(fā)明第二實施方式的寄存器地址空間控制器的原理示意圖;

圖4是根據(jù)本發(fā)明第三實施方式的片上系統(tǒng)的原理示意圖。

具體實施方式

為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā) 明的各實施方式進行詳細的闡述。然而,本領(lǐng)域的普通技術(shù)人員可以理解,在本發(fā)明各實施方式中,為了使讀者更好地理解本申請而提出了許多技術(shù)細節(jié)。但是,即使沒有這些技術(shù)細節(jié)和基于以下各實施方式的種種變化和修改,也可以實現(xiàn)本申請各權(quán)利要求所要求保護的技術(shù)方案。

首先值得聲明的是,本申請文件中主設(shè)備可以是中央處理器CPU,圖形處理器GPU和其它可進行直接內(nèi)存存取(DMA)的硬件組件。

本發(fā)明的第一實施方式涉及一種寄存器地址空間的控制方法。如圖2所示。

流程圖中,n表示軟件已經(jīng)設(shè)置的配置項的個數(shù);i為這n個配置項的索引,取值范圍從0到n-1。

在進入步驟101之前,通過軟件預(yù)先為總線上的各硬件資源配置至少一個配置項。

具體地說,預(yù)先為總線上的各硬件資源配置至少一個配置項,每個配置項用于指定一個寄存器地址空間、和指示該寄存器地址空間是否受到讀保護或?qū)懕Wo。

其中,硬件資源包含寄存器和/或隨機存取存儲器RAM;在預(yù)先為總線上的各硬件資源配置至少一個配置項的步驟中,為每一個需要保護的寄存器地址空間設(shè)置一個配置項。

具體地說,配置項最多可以為16個或32個。用于分別指定多個寄存器地址空間受到保護。每一個配置項包含有4個寄存器:addr_base(用于保存寄存器空間基址的基址寄存器)、addr_mask(用于保存寄存器掩碼的掩碼寄存器)、sec_rd(用于表示是否受到讀訪問保護的讀訪問保護寄存器)、sec_wr(用于表示是否受到寫訪問保護的寫訪問保護寄存器),其中,基址寄存器和掩碼寄存器中的數(shù)據(jù)進行位與操作后得到本組寄存器指定的地址空間?;芳拇嫫骱脱诖a寄存器的位數(shù)與系統(tǒng)寄存器地址空間的位數(shù)相同,sec_rd和 sec_wr只使用最低的一位。

在步驟101中,主設(shè)備通過總線請求信號,請求訪問寄存器。

在本實施方式中,對寄存器的訪問要經(jīng)過寄存器地址空間控制器。在SoC中所有的主設(shè)備對寄存器進行訪問都先經(jīng)過寄存器地址空間控制器,該控制器統(tǒng)一檢查所有主設(shè)備對任意寄存器空間的訪問權(quán)限。

接著,進入步驟102,根據(jù)總線信號判斷請求訪問的主設(shè)備是否為非安全世界的主設(shè)備。如果請求訪問的主設(shè)備為安全世界的主設(shè)備,則進入步驟108;如果請求訪問的主設(shè)備為非安全世界的主設(shè)備,則進入步驟103。

具體地說,根據(jù)總線協(xié)議,如果安全世界的主設(shè)備讀訪問,則arprot[1]=0;如果非安全世界的主設(shè)備讀訪問,則arprot[1]=1;如果安全世界的主設(shè)備寫訪問,則awprot[1]=0;如果非安全世界的主設(shè)備寫訪問,則awprot[1]=1。所以只需根據(jù)arprot[1]和awprot[1]的值,即可判斷請求訪問的主設(shè)備是否為非安全世界的主設(shè)備,如果arprot[1]=0并且awprot[1]=0,則判定請求訪問的主設(shè)備為安全世界的主設(shè)備;否則,請求訪問的主設(shè)備為非安全世界的主設(shè)備。

在步驟103中,設(shè)置i=0。

接著,進入步驟104,判斷i是否小于n。如果i小于n,進入步驟106;否則進入步驟108,這是因為如果訪問的寄存器地址在n個配置項中都沒指定,則訪問正常發(fā)出。

其中,n表示軟件已經(jīng)設(shè)置的配置項的組數(shù);i為這n配置項的索引,取值范圍為從0到n-1的整數(shù)。比如,n取5,則代表已經(jīng)設(shè)置的配置項個數(shù)為5。此時當i的取值為0、1、2、3或者4的時候進入步驟106。

在步驟106中,判斷訪問的地址是否在設(shè)置的第i個配置項指定的地址空間內(nèi)。如果訪問的地址在設(shè)置的第i個配置項指定的地址空間內(nèi),則進入 步驟107,否則進入步驟105。

具體地說,如果某一非安全世界主設(shè)備訪問的地址addr,滿足以下等式,則表示該地址在寄存器地址空間控制器的第i個配置項指定的地址空間內(nèi)。addr&config[i].addr_mask=config[i].addr_base&config[i].addr_mask

其中,config[i].addr_base表示第i個配置項的基址寄存器中存儲的數(shù)據(jù),config[i].addr_mask表示第i個配置項的掩碼寄存器中存儲的數(shù)據(jù),“&”表示位與操作。

以一個32位系統(tǒng)舉例來說,若config[i].addr_base=0xf7f80000,config[i].addr_mask=0xffff0000,則地址空間0xf7f80000---0xf7f8ffff在其指定的地址空間內(nèi)。若config[i].addr_base=0xf7f80000,config[i].addr_mask=0xfff70000,則地址空間0xf7f80000---0xf7f8ffff和0xf7f00000---0xf7f0ffff兩個區(qū)域都在其指定的地址空間內(nèi)。

在步驟105中,i增加1。

接著,進入步驟104,繼續(xù)判斷i是否小于n。

在步驟107中,第i組寄存器所指示的地址是否受到讀保護或?qū)懕Wo。如果第i組寄存器所指示的地址受到保護,則進入步驟109;否則進入步驟108。

具體地說,如果是讀訪問,則arprot[1]=1。當arprot[1]=1且config[i].sec_rd=1時,則禁止該讀訪問,設(shè)置addr_out為異常訪問地址;如果是寫訪問,則awprot[1]=1。當awprot[1]=1且config[i].sec_wr=1時,則禁止該寫訪問,設(shè)置addr_out為異常訪問地址。

在步驟108中,訪問正常發(fā)出。

設(shè)置addr_out為addr,發(fā)出正常訪問的信號,邏輯處理結(jié)束。其中,addr表示主設(shè)備訪問的地址。

在步驟109中,訪問產(chǎn)生異常。

發(fā)出訪問產(chǎn)生異常的信號,邏輯處理結(jié)束。

本實施方式中,軟件開發(fā)人員僅通過配置地址空間控制器就可以靈活的指定任意配置的寄存器地址空間受到保護,而不需要關(guān)心SoC(片上系統(tǒng))中的總線連接情況和總線中的地址區(qū)域控制寄存器。

本發(fā)明第二實施方式涉及一種寄存器地址空間控制器,如圖3所示。

包含:配置單元,用于為總線上的各硬件資源配置至少一個配置項,每個配置項用于指定一個寄存器地址空間、和指示該寄存器地址空間是否受到讀保護或?qū)懕Wo;邏輯單元,與配置單元相連,用于在接收到非安全世界的主設(shè)備的訪問時,判斷非安全世界的主設(shè)備訪問的地址是否在設(shè)置的第i個配置項指定的寄存器地址空間內(nèi),如果主設(shè)備訪問的地址在設(shè)置的第i個配置項指定的寄存器地址空間內(nèi),則根據(jù)第i個配置項所指示的是否受到讀保護或?qū)懕Wo,判斷是否允許主設(shè)備訪問;其中,i大于或等于0,并且小于或等于設(shè)置的配置項的個數(shù)。

進一步地,硬件資源包含寄存器和/或隨機存取存儲器RAM;所述配置項包含4個寄存器:用于保存寄存器地址空間基址的基址寄存器、用于保存寄存器地址空間掩碼的掩碼寄存器、用于表示是否受到讀訪問保護的讀訪問保護寄存器和用于表示是否受到寫訪問保護的寫訪問保護寄存器。這些寄存器不能被非安全世界的主設(shè)備訪問。

本實施方式中,控制器通過設(shè)置的配置項自動判斷被訪問的寄存器地址空間是否受保護,使得軟件開發(fā)人員僅通過設(shè)置該控制器就可以靈活的指定任意寄存器地址空間受到保護,而不需要關(guān)心SoC中的總線連接情況和總線中的地址區(qū)域控制寄存器,靈活性高。

不難發(fā)現(xiàn),本實施方式為與第一實施方式相對應(yīng)的設(shè)備實施例,本實施方式可與第一實施方式互相配合實施。第一實施方式中提到的相關(guān)技術(shù)細節(jié) 在本實施方式中依然有效,為了減少重復(fù),這里不再贅述。相應(yīng)地,本實施方式中提到的相關(guān)技術(shù)細節(jié)也可應(yīng)用在第一實施方式中。

值得一提的是,本實施方式中所涉及到的各模塊均為邏輯模塊,在實際應(yīng)用中,一個邏輯單元可以是一個物理單元,也可以是一個物理單元的一部分,還可以以多個物理單元的組合實現(xiàn)。此外,為了突出本發(fā)明的創(chuàng)新部分,本實施方式中并沒有將與解決本發(fā)明所提出的技術(shù)問題關(guān)系不太密切的單元引入,但這并不表明本實施方式中不存在其它的單元。

本發(fā)明第三實施方式涉及一種片上系統(tǒng)。第三實施方式包含第二實施方式中的寄存器地址空間控制器。

本實施方式的片上系統(tǒng),包含:總線、硬件資源、主設(shè)備和第二實施方式的寄存器地址空間控制器;其中,硬件資源、主設(shè)備和寄存器地址空間控制器均與總線相連。

如圖4所示,圖中,可以發(fā)起寄存器訪問的主設(shè)備有:CPU(中央處理器),SDIO(安全數(shù)字輸入/輸出接口)控制器,NAND(閃存設(shè)備)控制器,USB(通用串行總線)控制器,ISP(圖像信號處理器)。其寄存器空間受到寄存器地址空間控制器控制的硬件組件有:SDIO(安全數(shù)字輸入/輸出接口)控制器,NAND(閃存設(shè)備)控制器,USB(通用串行總線)控制器,ISP(圖像信號處理器),DDR(雙倍速率同步動態(tài)隨機存儲器)控制器,VIDEO(視頻)處理器,GPU(圖形處理器),PWM(脈沖寬度調(diào)制)模塊,I2C(兩線式串行總線)控制器;SPI(串行外設(shè)接口)控制器,Timer(定時器),WDT(看門狗)模塊,GPIO(通用輸入/輸出)控制器。

在本實施方式中,軟件開發(fā)人員通過配置寄存器地址空間控制器就可以靈活的指定配置的任意寄存器地址空間受到保護,甚至可以細化到每一個寄存器。提供給軟件開發(fā)人員的接口友好,全部接口都在寄存器地址空間控制器中。軟件開發(fā)人員只需要設(shè)置該控制器的幾個寄存器,就可以指定任意寄 存器地址空間受到保護。而不需要關(guān)心SoC中的總線連接情況和各個總線中的地址區(qū)域控制寄存器。

本領(lǐng)域的普通技術(shù)人員可以理解,上述各實施方式是實現(xiàn)本發(fā)明的具體實施例,而在實際應(yīng)用中,可以在形式上和細節(jié)上對其作各種改變,而不偏離本發(fā)明的精神和范圍。

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