1.一種寄存器地址空間的控制方法,其特征在于,包含以下步驟:
預先為總線上的各硬件資源設(shè)置至少一個配置項,每個配置項用于指定一個寄存器地址空間、和指示該寄存器地址空間是否受到讀保護或?qū)懕Wo;
如果非安全世界的主設(shè)備訪問的寄存器地址在所述設(shè)置的第i個配置項指定的地址空間內(nèi),則根據(jù)第i個配置項所指示的地址是否受到讀保護或?qū)懕Wo,判斷是否允許所述主設(shè)備訪問;其中,所述i大于或等于0,并且小于配置的寄存器組的個數(shù)。
2.根據(jù)權(quán)利要求1所述的寄存器地址空間的控制方法,其特征在于,
所述硬件資源包含寄存器和/或隨機存取存儲器RAM;
在所述預先為總線上的各硬件資源配置至少一個配置項的步驟中,為每一個需要保護的寄存器地址空間配置一個配置項。
3.根據(jù)權(quán)利要求1所述的寄存器地址空間的控制方法,其特征在于,
所述各配置項包含:用于保存寄存器地址空間基址的基址寄存器、用于保存寄存器地址空間掩碼的掩碼寄存器、用于表示是否受到讀訪問保護的讀訪問保護寄存器和用于表示是否受到寫訪問保護的寫訪問保護寄存器;其中,所述基址寄存器和掩碼寄存器中的數(shù)據(jù)進行位與操作后得到本組寄存器指定的寄存器地址空間。
4.根據(jù)權(quán)利要求3所述的寄存器地址空間的控制方法,其特征在于,根據(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)。
5.根據(jù)權(quán)利要求4所述的寄存器地址空間的控制方法,其特征在于,在判斷所述訪問的寄存器地址是否在所述配置的第i個配置項指定的寄存器地址空間內(nèi)的步驟之前,還包含:
根據(jù)總線信號判斷請求訪問的設(shè)備是否為非安全世界的主設(shè)備,如果為非安全世界的主設(shè)備,則再進入判斷所述訪問的地址是否在所述配置的第i個配置項指定的寄存器地址空間內(nèi)的步驟。
6.根據(jù)權(quán)利要求3所述的寄存器地址空間的控制方法,其特征在于,所述每個配置項中基址寄存器和掩碼寄存器的位數(shù)與系統(tǒng)寄存器地址空間的位數(shù)相同。
7.根據(jù)權(quán)利要求1至6中任一項所述的寄存器地址空間的控制方法,其特征在于,所述主設(shè)備為能夠訪問寄存器的任意類型的主設(shè)備。
8.一種寄存器地址空間控制器,其特征在于,包含:
配置單元,用于為總線上的各硬件資源設(shè)置至少一個配置項,每個配置項用于指定一個寄存器地址空間、和指示該寄存器地址空間是否受到讀保護或?qū)懕Wo;
邏輯單元,與所述配置單元相連,用于在接收到非安全世界的主設(shè)備的訪問時,判斷非安全世界的主設(shè)備訪問的寄存器地址是否在所述配置的第i個配置項指定的地址空間內(nèi),如果所述主設(shè)備訪問的寄存器地址在所述設(shè)置的第i個配置項指定的地址空間內(nèi),則根據(jù)第i個配置項所指示的是否受到讀保護或?qū)懕Wo,判斷是否允許所述主設(shè)備訪問;其中,所述i大于或等于0,并且小于或等于配置的寄存器組的個數(shù)。
9.根據(jù)權(quán)利要求8所述的寄存器地址空間控制器,其特征在于,
所述硬件資源包含寄存器和/或隨機存取存儲器RAM;
所述配置項包含4個寄存器:用于保存寄存器地址空間基址的基址寄存器、用于保存寄存器地址空間掩碼的掩碼寄存器、用于表示是否受到讀訪問保護的讀訪問保護寄存器和用于表示是否受到寫訪問保護的寫訪問保護寄存器。
10.一種片上系統(tǒng),其特征在于,包含:總線、硬件資源、主設(shè)備和權(quán)利要求8或9所述的寄存器地址空間控制器;
其中,所述硬件資源、主設(shè)備和寄存器地址空間控制器均與所述總線相連。