專利名稱:基于SoC芯片外部數(shù)據(jù)安全存儲架構(gòu)及存取控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及安全SoC芯片設(shè)計(jì)領(lǐng)域,具體涉及一種MCS-52系列的基于SoC芯片外部數(shù)據(jù)存儲架構(gòu)與安全存取控制方法,用于擴(kuò)展MCS-52系列SoC芯片中哈佛存儲器體系結(jié)構(gòu)、外部數(shù)據(jù)存儲器的分級安全管理,確保存儲數(shù)據(jù)在生成、使用、修改、歸檔、清除等生命周期的全程監(jiān)管,實(shí)現(xiàn)不同安全等級數(shù)據(jù)之間的“防火墻”功能,保護(hù)存儲數(shù)據(jù)資源的安全性。
背景技術(shù):
目前基于MCS-52系列哈佛存儲器體系結(jié)構(gòu)的SoC芯片,其存儲器組織通常由256 字節(jié)的內(nèi)部緩沖存儲器RAM、64K字節(jié)的外部數(shù)據(jù)存儲器和64K字節(jié)的程序存儲器組成;通過MOVX A,@DPTR和MOVX @DPTR,A兩條指令,可完成對整個外部數(shù)據(jù)存儲區(qū)的讀出和寫入操作,因而對于能進(jìn)行二次開發(fā)的SoC芯片來說數(shù)據(jù)存儲區(qū)對用戶是完全透明的,沒有任何安全防護(hù)措施來保護(hù)數(shù)據(jù)存儲區(qū)的敏感數(shù)據(jù)被非法或非授權(quán)用戶進(jìn)行讀出、覆蓋寫入和修改操作。對于一個嵌入式安全SoC芯片,其內(nèi)部存儲有各種安全屬性不同的敏感信息,SoC 芯片運(yùn)行在不同的安全狀態(tài)下可訪問不同安全屬性的敏感信息,是應(yīng)用系統(tǒng)對SoC芯片的基本安全要求。對SoC芯片運(yùn)行時的所有敏感信息實(shí)施分級分層的安全防護(hù)措施,能有效防止敏感信息的泄露和敏感信息的越權(quán)訪問,提高SoC芯片系統(tǒng)運(yùn)行的安全性。
發(fā)明內(nèi)容
本發(fā)明的目的在于通過設(shè)置外部數(shù)據(jù)存儲區(qū)訪問屬性控制字存儲器、存儲器工作方式控制寄存器和相應(yīng)的安全訪問控制邏輯電路、訪問外部數(shù)據(jù)存儲器的三總線重構(gòu)邏輯,實(shí)現(xiàn)對外部數(shù)據(jù)存儲區(qū)數(shù)據(jù)的分級與分塊的安全存取和不同的安全保護(hù)策略,構(gòu)建不同安全等級數(shù)據(jù)之間“防火墻”功能的基于SoC芯片外部數(shù)據(jù)存儲架構(gòu)與安全存取控制方法。本發(fā)明的目的是這樣實(shí)現(xiàn)的
一種基于SoC芯片外部數(shù)據(jù)安全存儲架構(gòu),其特征在于包括內(nèi)部緩沖存儲器RAM、外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC、存儲器工作方式控制寄存器MACR、數(shù)據(jù)存取安全控制邏輯電路DASCL、外部數(shù)據(jù)存儲器DRAM和程序存儲器PR0M,存儲器工作方式控制寄存器MACR位于SoC芯片的特殊功能寄存器SFR區(qū),其地址為8HL上述各存儲器與寄存器均通過地址總線AB、數(shù)據(jù)總線DB和控制總線CB與中央處理器單元CPU相連,中央處理器單元CPU通過存儲器工作方式控制寄存器MACR設(shè)置外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器 DRAMC的工作模式,外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC的工作模式?jīng)Q定安全屬性控制字與數(shù)據(jù)塊之間的對應(yīng)關(guān)系。中央處理器單元CPU訪問數(shù)據(jù)存儲器發(fā)出的地址總線信號AB,通過外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC的轉(zhuǎn)換后,譯碼指向外部數(shù)據(jù)存儲器DRAM的被訪問單元,同時得到該單元的存取控制屬性的權(quán)限控制值;而中央處理器單元CPU發(fā)出的訪問外部數(shù)據(jù)存儲器DRAM的控制總線信號CB,通過DASCL電路對該單元的訪問控制權(quán)限值與中央處理器單元CPU當(dāng)前所處的安全狀態(tài)值進(jìn)行邏輯運(yùn)算的控制重組后,與外部數(shù)據(jù)存儲器DRAM的讀寫控制信號相連,當(dāng)CPU當(dāng)前所處的安全狀態(tài)值大于或等于訪問控制權(quán)限值時,被訪問外部數(shù)據(jù)存儲器DRAM的單元數(shù)據(jù)才能通過數(shù)據(jù)總線DB送入中央處理器單元CPU,或者將中央處理器單元CPU內(nèi)部的數(shù)據(jù)寫入到指定的存儲單元,實(shí)現(xiàn)數(shù)據(jù)的雙向交互。在中央處理器單元CPU的控制下,通過存儲器工作方式控制寄存器MACR、外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC和數(shù)據(jù)存取安全控制邏輯電路DASCL,完成外部數(shù)據(jù)存儲器DRAM安全靜態(tài)和動態(tài)存取控制方式下的存取屬性控制字與相應(yīng)數(shù)據(jù)塊的對應(yīng)關(guān)系轉(zhuǎn)換、地址總線的動態(tài)重構(gòu)以及控制總線和控制邏輯的重組,確保兩種存取控制方式下數(shù)據(jù)安全交互控制功能的實(shí)現(xiàn)。一種基于SoC芯片外部數(shù)據(jù)安全存儲架構(gòu)的存取控制方法,其特征在于該方法基于所述基于SoC芯片外部數(shù)據(jù)安全存儲架構(gòu)之上,包括外部數(shù)據(jù)存儲器安全靜態(tài)存取控制方法和外部數(shù)據(jù)存儲器安全動態(tài)存取控制方法。外部數(shù)據(jù)存儲器安全靜態(tài)存取控制方法的實(shí)現(xiàn)如下
在該工作方式下,每個外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器的存儲單元存放一個訪問外部數(shù)據(jù)存儲器存取屬性控制字,該存取屬性控制字對應(yīng)外部數(shù)據(jù)存儲器256個存儲單元,構(gòu)成一個數(shù)據(jù)塊。CPU的地址總線信號AB、存取屬性控制字DACWi與外部數(shù)據(jù)存儲塊的塊號BKAddri的對應(yīng)關(guān)系為=A15I8=DACWi=BKAddri,其中i = A15I8的編碼。數(shù)據(jù)存取安全控制邏輯電路DASCL由SoC芯片運(yùn)行安全狀態(tài)字、外部數(shù)據(jù)存儲塊安全存取屬性控制字輸入通道和判決邏輯電路組成。CPU運(yùn)行需要訪問外部數(shù)據(jù)存儲器時,只有當(dāng)SoC芯片運(yùn)行的當(dāng)前安全狀態(tài)滿足對應(yīng)數(shù)據(jù)存儲塊的安全存取屬性控制字要求時,DASCL電路發(fā)出有效的數(shù)據(jù)存儲器訪問控制信號,完成數(shù)據(jù)的讀出或?qū)懭氩僮鳌oC芯片運(yùn)行時,首先設(shè)置存儲器工作方式控制寄存器,選中DRAMC作為芯片的內(nèi)部緩沖存儲器RAM,并根據(jù)外部數(shù)據(jù)存儲器安全訪問控制策略,對DRAMC寫入每個數(shù)據(jù)存儲塊相對應(yīng)的安全存取屬性控制字,其次,設(shè)置存儲器工作方式控制寄存器,構(gòu)成外部數(shù)據(jù)存儲器安全靜態(tài)存取控制方式,初始化存儲器工作方式結(jié)束,SoC芯片進(jìn)入外部數(shù)據(jù)存儲器安全靜態(tài)存取控制狀態(tài)。當(dāng)CPU運(yùn)行需要訪問外部數(shù)據(jù)存儲器時,將地址總線的高8位尋址 DRAMC,讀取對應(yīng)數(shù)據(jù)塊的安全存取屬性控制字,并與芯片當(dāng)前所處的安全狀態(tài)字進(jìn)行邏輯運(yùn)算,滿足訪問安全條件時,DASCL電路給出有效的外部數(shù)據(jù)存儲器訪問讀或?qū)懣刂菩盘枺?且CPU給出的高8位地址選中安全存取屬性控制字所對應(yīng)的一個存儲塊,低8位地址選中該塊中某一確定的存儲單元,在讀或?qū)懣刂菩盘柕目刂葡?,完成?shù)據(jù)的讀出或?qū)懭氩僮?;若芯片?dāng)前所處的安全狀態(tài)與安全存取屬性控制字進(jìn)行邏輯運(yùn)算,不滿足訪問安全條件時, DASCL輸出無效的讀或?qū)懣刂菩盘?,則禁止系統(tǒng)對外部數(shù)據(jù)存儲器的訪問操作。外部數(shù)據(jù)存儲器安全動態(tài)存取控制方法的實(shí)現(xiàn)如下
當(dāng)SoC芯片處于外部數(shù)據(jù)存儲器安全動態(tài)存取控制方式下時,外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC被劃分為1 個字存儲單元,每個字的高8位存儲訪問外部數(shù)據(jù)存儲區(qū)的物理塊號,低8位存儲該塊的安全存取屬性控制字,外部數(shù)據(jù)存儲器對應(yīng)被劃分為1 塊,每塊512字節(jié),CPU訪問外部數(shù)據(jù)存儲器給出16位邏輯地址,低9位用于訪問一塊內(nèi) 512個存儲單元中的某一個確定存儲單元,高7位用于尋址DRAMC的1 個字中的某一個確定的字,每個字高8位數(shù)據(jù)指向外部數(shù)據(jù)存儲器1 塊中的某一塊,低8位則是該塊存儲區(qū)對應(yīng)的存取屬性控制字,即A15I9 — BKAddri=DACffi0數(shù)據(jù)訪問安全控制邏輯電路DASCL 由SoC芯片運(yùn)行安全狀態(tài)字、外部數(shù)據(jù)存儲塊安全存取屬性控制字輸入通道和判決邏輯電路組成,只有當(dāng)SoC芯片運(yùn)行的當(dāng)前安全狀態(tài)滿足對應(yīng)數(shù)據(jù)存儲塊的安全存取屬性控制字要求時,DASCL電路發(fā)出有效的數(shù)據(jù)存儲器訪問控制信號,完成數(shù)據(jù)的讀出或?qū)懭氩僮?。SoC芯片運(yùn)行時,首先設(shè)置存儲器工作方式控制寄存器,選中DRAMC作為片內(nèi)緩沖存儲器RAM,并根據(jù)外部數(shù)據(jù)存儲器安全訪問控制策略,對DRAMC寫入每個數(shù)據(jù)存儲塊相對應(yīng)的安全存取屬性控制字和對應(yīng)的物理塊地址;其次,設(shè)置存儲器工作方式控制寄存器,構(gòu)成外部數(shù)據(jù)存儲器安全動態(tài)存取控制方式,初始化存儲器工作方式結(jié)束,SoC芯片進(jìn)入外部數(shù)據(jù)存儲器安全動態(tài)存取控制狀態(tài)。當(dāng)CPU運(yùn)行需要訪問外部數(shù)據(jù)存儲器時,將地址總線的高7位尋址DRAMC,讀取對應(yīng)數(shù)據(jù)塊的安全存取屬性控制字,并與芯片當(dāng)前所處的安全狀態(tài)進(jìn)行邏輯運(yùn)算,滿足訪問安全條件時,DASCL電路給出有效的外部數(shù)據(jù)存儲器訪問讀或?qū)懣刂菩盘枺褼RAMC高8位數(shù)據(jù)選中安全存取控制屬性字所對應(yīng)的一個存儲塊,CPU地址的低9位選中該塊中某一確定的存儲單元,在讀或?qū)懣刂菩盘柕目刂葡?,完成?shù)據(jù)的寫入或讀出操作。若芯片當(dāng)前所處的安全狀態(tài)與安全存取屬性控制字進(jìn)行邏輯運(yùn)算,不滿足訪問安全條件時,DASCL電路輸出無效的讀或?qū)懣刂菩盘?,則禁止CPU對外部數(shù)據(jù)存儲器的訪問操作。若CPU不執(zhí)行外部數(shù)據(jù)存儲器安全訪問策略,即工作于正常外部數(shù)據(jù)存儲工作模式,執(zhí)行其它訪問外部數(shù)據(jù)存儲器指令時,不執(zhí)行初始化操作,與程序正常執(zhí)行階段的步驟相同,且DRAMC在存儲器工作方式控制寄存器的控制下,作為芯片內(nèi)部緩沖存儲器的擴(kuò)展使用,在執(zhí)行MOVX A, iRi或MOVX iRi, A指令時,訪問DRAMC的高8位地址固定設(shè)置為00H, 即A15 A8為OOH0本發(fā)明具有如下積極效果通過對數(shù)據(jù)存儲器的每一塊設(shè)置不同的安全存取屬性控制字,可實(shí)現(xiàn)對外部數(shù)據(jù)存儲器的分級安全訪問控制,確保不同安全等級的敏感數(shù)據(jù)得到有效保護(hù),構(gòu)建不同安全等級數(shù)據(jù)之間的“防火墻”。理論上用一個字節(jié)來表示安全訪問屬性對應(yīng)著256種不同的安全狀態(tài),用戶可根據(jù)自己的安全需求靈活設(shè)置相應(yīng)的安全訪問控制策略。存儲器安全動態(tài)存取控制方式為多任務(wù)的運(yùn)行提供了安全的運(yùn)行環(huán)境,實(shí)現(xiàn)了在較小內(nèi)存資源基礎(chǔ)之上的存儲單元的分配、釋放、回收、再分配等動態(tài)管理模式,提高了存儲器資源的利用率。具體為SoC芯片根據(jù)用戶運(yùn)行程序?qū)ν獠繑?shù)據(jù)存儲區(qū)存儲數(shù)據(jù)的敏感程度制定相應(yīng)的安全訪問控制策略,在初始化時將安全存取屬性控制字寫入外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器中,不同安全存取控制屬性的數(shù)據(jù)分配各自不同的數(shù)據(jù)存儲塊,相同安全存取控制屬性的數(shù)據(jù)根據(jù)存儲數(shù)據(jù)的大小可占用相同或不同的數(shù)據(jù)存儲塊號。用戶程序在設(shè)計(jì)階段嚴(yán)格遵守安全訪問策略制定數(shù)據(jù)存儲器分配使用方案,即對數(shù)據(jù)的產(chǎn)生、寫入、讀出、使用、修改、存檔、銷毀等生命周期全程進(jìn)行安全管理。當(dāng)用戶程序投入運(yùn)行時,通過成功完成安全策略制定的各種挑戰(zhàn)后,SoC芯片可獲得相應(yīng)的安全狀態(tài)。如正確驗(yàn)證用戶口令、成功識別和驗(yàn)證敏感數(shù)據(jù)使用者的身分、正確執(zhí)行敏感數(shù)據(jù)的交互協(xié)議、 密鑰協(xié)商完成、密碼運(yùn)算單元功能正確、關(guān)聯(lián)功能的正確執(zhí)行等等,都是SoC芯片系統(tǒng)提升當(dāng)前所處安全狀態(tài)的方法。只有在SoC芯片所處的安全狀態(tài)滿足訪問對應(yīng)存儲塊安全存取屬性控制字的要求前提下,才能實(shí)施對該數(shù)據(jù)塊由安全存取屬性控制字所規(guī)定的操作,從而有效保障敏感數(shù)據(jù)在安全可控狀態(tài)下完成其生命周期的全程監(jiān)控,滿足SoC芯片對敏感數(shù)據(jù)的安全保護(hù)需要。
圖1為本發(fā)明的基于SoC芯片外部數(shù)據(jù)存儲器安全存取控制架構(gòu)示意圖。圖2為本發(fā)明的外部數(shù)據(jù)存儲器安全靜態(tài)存取屬性控制字與數(shù)據(jù)塊的對應(yīng)關(guān)系圖。圖3為本發(fā)明的外部數(shù)據(jù)存儲器安全靜態(tài)存取控制工作原理圖。圖4為本發(fā)明的外部數(shù)據(jù)存儲器安全動態(tài)存取屬性控制字與數(shù)據(jù)塊的對應(yīng)關(guān)系圖。圖5為本發(fā)明的外部數(shù)據(jù)存儲器安全動態(tài)存取控制工作原理圖。
具體實(shí)施例方式如圖1所示,本發(fā)明的基于SoC芯片外部數(shù)據(jù)安全存儲架構(gòu)包括內(nèi)部緩沖存儲器 RAM、外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC、存儲器工作方式控制寄存器MACR、數(shù)據(jù)存取安全控制邏輯電路DASCL、外部數(shù)據(jù)存儲器DRAM和程序存儲器PR0M。存儲器工作方式控制寄存器MACR位于SoC的特殊功能寄存器SFR區(qū),其地址為8HL上述各存儲器與寄存器均通過地址總線AB、數(shù)據(jù)總線DB和控制總線CB與中央處理器單元CPU相連,并通過AB、 DB、CB三總線實(shí)現(xiàn)CPU與各存儲器和寄存器之間的數(shù)據(jù)雙向交換。如圖2和圖4所示,根據(jù)外部數(shù)據(jù)存儲器訪問控制策略,中央處理器單元CPU通過存儲器工作方式控制寄存器MACR,設(shè)置外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC的工作方式,DRAMC的工作方式?jīng)Q定安全存取屬性控制字與數(shù)據(jù)塊之間的對應(yīng)關(guān)系。當(dāng)SoC芯片處于安全靜態(tài)存取控制方式時,外部數(shù)據(jù)存儲器DRAM被劃分為256個數(shù)據(jù)塊,每塊256個字節(jié)。而外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC的256個存儲單元中,各存放一個數(shù)據(jù)塊的安全存取屬性控制字,使CPU的地址總線信號AB、安全存取屬性控制字DACWi與外部數(shù)據(jù)存儲塊的塊號BKAddri三者之間構(gòu)成一一對應(yīng)關(guān)系,即A15I8=DACWi=BKAddri,其中i = A15X的編碼。而當(dāng)SoC芯片處于安全動態(tài)存取控制方式時,外部數(shù)據(jù)存儲器DRAM被劃分為1 個數(shù)據(jù)塊,每塊512個字節(jié);外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC也被劃分的 128個字存儲單元,且每個字的高8位存放訪問外部數(shù)據(jù)存儲器的物理塊號,低8位則存放該塊所對應(yīng)的安全存取屬性控制字,使CPU的地址總線信號AB、安全存取屬性控制字DACWi 與外部數(shù)據(jù)存儲塊的塊號BKAddri三者之間構(gòu)成A15 A8 — DACffi=BKAddri的映射與轉(zhuǎn)換關(guān)系,即通過A15I8實(shí)現(xiàn)邏輯塊地址到物理塊地址和對應(yīng)物理塊的安全存取屬性控制字的轉(zhuǎn)換。如圖3和圖5所示,中央處理器單元CPU訪問數(shù)據(jù)存儲器DRAM發(fā)出的地址總線信號AB,通過外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC的轉(zhuǎn)換后,譯碼指向外部數(shù)據(jù)存儲器DRAM的被訪問單元,同時從外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC中得到該單元的存取屬性控制的權(quán)限值;而中央處理器單元CPU發(fā)出的訪問外部數(shù)據(jù)存儲器DRAM的控制總線信號CB,通過DASCL電路對該單元的訪問控制權(quán)限值與中央處理器單元CPU當(dāng)前所處的安全狀態(tài)值進(jìn)行邏輯運(yùn)算的控制重組后,與外部數(shù)據(jù)存儲器DRAM的控制信號相連;當(dāng)CPU當(dāng)前所處的安全狀態(tài)值大于或等于訪問控制權(quán)限值時,被訪問外部數(shù)據(jù)存儲器DRAM單元中的數(shù)據(jù),才能通過數(shù)據(jù)總線DB送入到中央處理器單元CPU,或者將中央處理器單元CPU 內(nèi)部的數(shù)據(jù)寫入到指定的存儲單元,實(shí)現(xiàn)數(shù)據(jù)的雙向交互。在中央處理器單元CPU的控制下,通過存儲器工作方式控制寄存器MACR、外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC和數(shù)據(jù)存取安全控制邏輯電路DASCL,本發(fā)明能完成外部數(shù)據(jù)存儲器DRAM安全靜態(tài)和動態(tài)存取控制方式下的安全存取屬性控制字與相應(yīng)數(shù)據(jù)塊的對應(yīng)關(guān)系轉(zhuǎn)換、地址總線的動態(tài)重構(gòu)以及控制總線和控制邏輯的重組,確保兩種工作方式下數(shù)據(jù)安全交互控制功能的實(shí)現(xiàn)。一種基于SoC芯片外部數(shù)據(jù)安全存儲架構(gòu)的安全存取控制方法,該方法基于所述基于SoC芯片外部數(shù)據(jù)安全存儲架構(gòu)之上,包括外部數(shù)據(jù)存儲器安全靜態(tài)存取控制方法和外部數(shù)據(jù)存儲器安全動態(tài)存取控制方法。外部數(shù)據(jù)存儲器安全靜態(tài)存取控制方法實(shí)現(xiàn)如下
在該工作方式下,每個外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器的256個存儲單元存放一個訪問外部數(shù)據(jù)存儲器安全存取屬性控制字,該存取屬性控制字對應(yīng)外部數(shù)據(jù)存儲器256 個存儲單元,構(gòu)成一個數(shù)據(jù)塊,CPU的地址總線信號、安全存取屬性控制字與外部數(shù)據(jù)存儲塊的塊號三者之間一一對應(yīng),即A1^A8=DACWi=BKAddri,其對應(yīng)關(guān)系如圖2所示。數(shù)據(jù)存取安全控制邏輯電路DASCL由SoC芯片運(yùn)行安全狀態(tài)字、外部數(shù)據(jù)存儲塊安全存取屬性控制字輸入通道和判決邏輯電路組成。CPU運(yùn)行需要訪問外部數(shù)據(jù)存儲器時, 只有當(dāng)SoC芯片運(yùn)行的當(dāng)前安全狀態(tài)滿足對應(yīng)數(shù)據(jù)存儲塊的安全存取屬性控制字要求時, 該電路發(fā)出有效的數(shù)據(jù)存儲器訪問控制信號,完成數(shù)據(jù)的讀出或?qū)懭氩僮?。外部?shù)據(jù)存儲器靜態(tài)存取控制工作原理如圖3所示。CPU運(yùn)行時,首先設(shè)置存儲器工作方式控制寄存器,選中DRAMC作為芯片的內(nèi)部緩沖存儲器RAM,并根據(jù)外部數(shù)據(jù)存儲器安全訪問控制策略,對DRAMC寫入每個數(shù)據(jù)存儲塊相對應(yīng)的安全存取屬性控制字。其次,設(shè)置存儲器工作方式控制寄存器,構(gòu)成外部數(shù)據(jù)存儲器安全靜態(tài)存取控制方式,初始化存儲器存取工作方式結(jié)束,SoC芯片進(jìn)入外部數(shù)據(jù)存儲器安全靜態(tài)存取控制狀態(tài)。當(dāng)CPU運(yùn)行需要訪問外部數(shù)據(jù)存儲器時,將地址總線的高8位尋址 DRAMC,讀取對應(yīng)數(shù)據(jù)塊的安全存取屬性控制字,并與芯片當(dāng)前所處的安全狀態(tài)字進(jìn)行邏輯運(yùn)算,滿足訪問安全條件時,DASCL電路給出有效的外部數(shù)據(jù)存儲器訪問讀或?qū)懣刂菩盘枺?且CPU給出的高8位地址選中安全存取屬性控制字所對應(yīng)的一個存儲塊,低8位地址選中該塊中某一確定的存儲單元,在讀或?qū)懣刂菩盘柕目刂葡?,完成?shù)據(jù)的讀出或?qū)懭氩僮?。若芯片?dāng)前所處的安全狀態(tài)與安全存取屬性控制字進(jìn)行邏輯運(yùn)算,不滿足訪問安全條件時, DASCL電路輸出無效的讀或?qū)懣刂菩盘?,則禁止CPU對外部數(shù)據(jù)存儲器的訪問操作。外部數(shù)據(jù)存儲器安全動態(tài)存取控制方法如下
當(dāng)SoC芯片處于外部數(shù)據(jù)存儲器安全動態(tài)存取控制方式時,外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC被劃分為1 個字存儲單元,每個字的高8位存儲訪問外部數(shù)據(jù)存儲區(qū)的物理塊號,低8位存儲該塊的安全存取屬性控制字,外部數(shù)據(jù)存儲器對應(yīng)被劃分為1 ±夬,每塊512字節(jié),CPU訪問外部數(shù)據(jù)存儲器給出16位邏輯地址,低9位用于訪問一塊內(nèi)512 個存儲單元中的某一個確定存儲單元,高7位用于尋址DRAMC的1 個字中的某一個確定的字,每個字高8位數(shù)據(jù)指向外部數(shù)據(jù)存儲器1 塊中的某一塊,低8位則是該塊存儲塊對應(yīng)的安全存取屬性控制字,構(gòu)成CPU給出的高7位地址、外部數(shù)據(jù)存儲器物理塊號和該存儲塊對應(yīng)安全存取屬性控制字三者之間的映射與轉(zhuǎn)換關(guān)系,即A15I9 — BKAddri=DACWi,其對應(yīng)關(guān)系如圖4所示。數(shù)據(jù)訪問安全控制邏輯由SoC芯片運(yùn)行安全狀態(tài)字、外部數(shù)據(jù)存儲塊安全存取屬性控制字輸入通道和判決邏輯電路組成。只有當(dāng)CPU運(yùn)行的當(dāng)前安全狀態(tài)滿足對應(yīng)數(shù)據(jù)存儲塊的安全存取屬性控制字要求時,該電路發(fā)出有效的數(shù)據(jù)存儲器訪問控制信號,完成數(shù)據(jù)的讀出或?qū)懭氩僮?。外部?shù)據(jù)存儲器動態(tài)存取控制工作原理如圖5所示。SoC芯片運(yùn)行時,首先設(shè)置存儲器工作方式控制寄存器,選中DRAMC作為片內(nèi)緩沖存儲器RAM,并根據(jù)外部數(shù)據(jù)存儲器安全訪問控制策略,對DRAMC寫入每個數(shù)據(jù)存儲塊相對應(yīng)的安全存取屬性控制字和對應(yīng)的物理塊地址。其次,設(shè)置存儲器工作方式控制寄存器,構(gòu)成外部數(shù)據(jù)存儲器安全動態(tài)存取控制方式,初始化存儲器工作方式結(jié)束,SoC芯片進(jìn)入外部數(shù)據(jù)存儲器安全動態(tài)存取控制狀態(tài)。當(dāng)CPU運(yùn)行需要訪問外部數(shù)據(jù)存儲器時,將地址總線的高7位尋址DRAMC,讀取對應(yīng)數(shù)據(jù)塊的安全存取屬性控制字(低8位),并與芯片當(dāng)前所處的安全狀態(tài)進(jìn)行邏輯運(yùn)算,滿足訪問安全條件時,DASCL電路給出有效的外部數(shù)據(jù)存儲器訪問讀或?qū)懣刂菩盘?,且DRAMC高8位數(shù)據(jù)選中安全存取屬性控制字所對應(yīng)的一個存儲塊, CPU地址的低9位選中該塊中某一確定的存儲單元,在讀或?qū)懣刂菩盘柕目刂葡?,完成?shù)據(jù)的讀出或?qū)懭氩僮?。若芯片?dāng)前所處的安全狀態(tài)與安全存取屬性控制字進(jìn)行邏輯運(yùn)算,不滿足訪問安全條件時,則DASCL電路輸出無效的讀或?qū)懣刂菩盘枺笴PU對外部數(shù)據(jù)存儲器的訪問操作。若SoC芯片不執(zhí)行外部數(shù)據(jù)存儲器安全訪問策略,即工作于正常外部數(shù)據(jù)存儲模式,執(zhí)行其它訪問外部數(shù)據(jù)存儲器指令時,不執(zhí)行初始化操作,與程序正常執(zhí)行階段的步驟相同,且DRAMC在存儲器工作方式控制寄存器的控制下,作為芯片內(nèi)部緩沖存儲器的擴(kuò)展使用。在執(zhí)行MOVX A, iRi或MOVX iRi, A指令時,訪問DRAMC的高8位地址固定設(shè)置為00H, 即A15 A8為00H。實(shí)施例本發(fā)明公開了一種基于SoC芯片外部數(shù)據(jù)安全存儲架構(gòu)與存取控制方法,該方法包括存儲管理架構(gòu)的硬件平臺、外部數(shù)據(jù)存儲器安全靜態(tài)存取控制方法和安全動態(tài)存取控制方法的實(shí)現(xiàn)機(jī)制三個基本部分。本發(fā)明所指的存儲器管理架構(gòu)是基于MCS-52 系列的哈佛存儲器體系結(jié)構(gòu)的芯片,這類結(jié)構(gòu)的SoC芯片大量應(yīng)用于智能卡領(lǐng)域,在我國有極其廣泛的應(yīng)用,如銀行IC卡、社會保障卡、SIM卡、市民卡、身份證等芯片。 1、外部數(shù)據(jù)存儲器安全存取控制架構(gòu)
外部數(shù)據(jù)存儲器安全存取控制架構(gòu)如圖1所示。由內(nèi)部緩沖存儲器RAM、外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC、存儲器工作方式控制寄存器MACR、數(shù)據(jù)存取安全控制邏輯電路DASCL、外部數(shù)據(jù)存儲器DRAM和程序存儲器PROM等組成。存儲器工作方式控制寄存器MACR位于系統(tǒng)的SFR區(qū),其地址為8HL上述各存儲器與寄存器均通過地址總線AB、數(shù)據(jù)總線DB和控制總線CB與中央處理器單元CPU相連。CPU通過存儲器工作方式寄存器, 設(shè)置外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器的工作模式,存儲器的工作模式?jīng)Q定了安全屬性控制字與數(shù)據(jù)塊之間的對應(yīng)關(guān)系,如圖2和圖4所示,CPU訪問數(shù)據(jù)存儲器發(fā)出的地址總線信號AB,通過外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器的轉(zhuǎn)換后,譯碼指向數(shù)據(jù)存儲器的被訪問單元,同時從DRAMC中得到該單元的存取屬性控制字即權(quán)限值;而CPU發(fā)出的訪問數(shù)據(jù)存儲器的控制總線信號CB,通過DASCL電路對該單元的存取控制權(quán)限值與CPU當(dāng)前所處的安全狀態(tài)值進(jìn)行邏輯運(yùn)算的控制重組后,與數(shù)據(jù)存儲器的讀寫控制信號相連,如圖3和圖5所示;只有當(dāng)CPU當(dāng)前所處的安全狀態(tài)值大于或等于安全存取屬性控制字權(quán)限值時,被訪問數(shù)據(jù)存儲器單元的數(shù)據(jù)才能通過數(shù)據(jù)總線DB送入CPU,或者將CPU內(nèi)部的數(shù)據(jù)寫入到指定的存儲單元,實(shí)現(xiàn)數(shù)據(jù)的雙向交互。存儲器工作方式控制寄存器MACR各位的定義如下
b7:外部數(shù)據(jù)存儲器存取控制方式位。b7=l時,外部數(shù)據(jù)存儲器為動態(tài)存取控制方式, b7=0時,外部數(shù)據(jù)存儲器為靜態(tài)存取控制方式。b6:數(shù)據(jù)存儲體控制使能位。M=I時,CPU自動選中DRAMC作為DRAM的安全屬性控制存儲器出6=0時,若blb0=01時,選中DRAMC作為內(nèi)部數(shù)據(jù)緩沖存儲器使用,其作用相當(dāng)于內(nèi)部RAM存儲器的擴(kuò)展。b5b4b3b2:保留,在此無任何意義。blbO:存儲體選擇控制位。若使能位M=O,且當(dāng)blb0=00時,選中RAM存儲體作為芯片內(nèi)部數(shù)據(jù)緩沖存儲器;blb0=01時,選中DRAMC存儲體作為芯片內(nèi)部數(shù)據(jù)緩沖存儲器; blbO其它編碼保留,以備存儲體的擴(kuò)展。在MACR寄存器的控制下,完成外部數(shù)據(jù)存儲器安全靜態(tài)和動態(tài)存取控制方式下的安全存取屬性控制字與相應(yīng)數(shù)據(jù)塊之間對應(yīng)關(guān)系轉(zhuǎn)換,數(shù)據(jù)和地址總線的動態(tài)重構(gòu),以及控制總線和控制邏輯的重組,確保兩種存取控制方式下數(shù)據(jù)安全存儲功能的實(shí)現(xiàn)。2、外部數(shù)據(jù)存儲器安全靜態(tài)存取控制方法的實(shí)現(xiàn)
在該工作方式下,每個外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器的256個存儲單元存放一個訪問外部數(shù)據(jù)存儲器安全存取屬性控制字,該存取屬性控制字對應(yīng)外部數(shù)據(jù)存儲器256 個存儲單元,構(gòu)成一個數(shù)據(jù)塊;CPU的地址信號AB、安全存取屬性控制字DACWi與外部數(shù)據(jù)存儲塊的塊號BKAddri三者之間一一對應(yīng),即A15I8=DACWi=BKAddri,其對應(yīng)關(guān)系如圖2所
7J\ ο數(shù)據(jù)存取安全控制邏輯電路DASCL由SoC芯片運(yùn)行安全狀態(tài)字、外部數(shù)據(jù)存儲塊安全存取屬性控制字輸入通道和判決邏輯電路組成。CPU運(yùn)行需要訪問外部數(shù)據(jù)存儲器時, 只有當(dāng)SoC芯片運(yùn)行的當(dāng)前安全狀態(tài)滿足對應(yīng)數(shù)據(jù)存儲塊的安全存取屬性控制字要求時, 該電路發(fā)出有效的數(shù)據(jù)存儲器訪問控制信號,完成數(shù)據(jù)的讀出或?qū)懭氩僮?。外部?shù)據(jù)存儲器安全靜態(tài)存取控制工作原理如圖3所示。下面以指令MOVX A,ODPTR執(zhí)行為例,說明外部數(shù)據(jù)存儲器安全靜態(tài)存取控制方式的工作流程。首先,SoC芯片加電自檢后,進(jìn)行存儲器工作方式選擇的初始化操作,分為如下三
步
第一步設(shè)置存儲器工作方式控制寄存器MACR=OlH,DRAMC作為內(nèi)部緩沖存儲器RAM接入CPU工作。第二步初始化DRAMC,寫入各數(shù)據(jù)塊相對應(yīng)的安全存取屬性控制字,以及程序運(yùn)行時所必須的初始化工作,為程序運(yùn)行作好準(zhǔn)備。第三步設(shè)置存儲器工作方式控制寄存器MACR=40H,配置DRAMC為訪問外部數(shù)據(jù)存儲區(qū)的安全屬性控制字存儲區(qū)、外部數(shù)據(jù)存儲區(qū)工作于安全靜態(tài)存取控制方式、RAM為系統(tǒng)內(nèi)部緩沖存儲器。
然后,SoC芯片轉(zhuǎn)入數(shù)據(jù)存儲器安全靜態(tài)存取控制運(yùn)行狀態(tài),該指令的執(zhí)行分為如下五步
第一步CPU取指令從PROM中讀出指令的操作碼,譯碼得知為從DRAM中取出由DPTR指針指示地址的一個字節(jié)數(shù)據(jù),送入累加器A。第二步CPU將DPTR寄存器所存放的地址放入地址總線,從DRAM中譯碼指向?qū)?yīng)的存儲單元。第三步同時DPTRH尋址DRAMC得到對應(yīng)塊號的安全存取屬性控制字。第四步數(shù)據(jù)存儲安全控制邏輯電路DASCL將安全存取屬性控制字與當(dāng)前安全狀態(tài)字進(jìn)行邏輯運(yùn)算,滿足訪問條件時,DASCL電路輸出有效的讀取DRAM的低電平控制信號, 否則輸出無效的高電平信號。第五步CPU輸出低電平有效的DRAM讀信號,該信號經(jīng)數(shù)據(jù)存取安全控制邏輯電路DASCL處理后,其輸出的控制信號與DRAM存儲器的讀信號相連。若滿足訪問控制安全條件,則DPTR指示的存儲單元的數(shù)據(jù)被讀取到數(shù)據(jù)總線上,并送入累加器A中;否則,禁止訪問DPTR所指向的存儲單元,并通知CPU該條指令發(fā)生了對所指存儲塊的非法訪問錯誤。若CPU不執(zhí)行外部數(shù)據(jù)存儲器安全訪問策略,即工作于正常外部數(shù)據(jù)存儲模式, 執(zhí)行其它訪問外部數(shù)據(jù)存儲器指令時,不執(zhí)行初始化操作,與程序正常執(zhí)行階段的步驟相同,且DRAMC在存儲器工作方式控制寄存器的控制下,可作為芯片內(nèi)部緩沖存儲器的擴(kuò)展使用。在執(zhí)行MOVX A, iRi或MOVX iRi, A指令時,訪問DRAMC的高8位地址固定設(shè)置為 00H,即 A15X 為 OOH03、外部數(shù)據(jù)存儲器安全動態(tài)存取控制方式的實(shí)現(xiàn)
當(dāng)SoC芯片處于外部數(shù)據(jù)存儲器安全動態(tài)存取控制方式時,外部數(shù)據(jù)存儲區(qū)安全存取屬性控制字存儲器DRAMC被劃分為1 個字存儲單元,每個字的高8位存儲訪問外部數(shù)據(jù)存儲器的物理塊號,低8位存儲該塊的安全存取屬性控制字,外部數(shù)據(jù)存儲器對應(yīng)被劃分為1 塊,每塊512字節(jié)。CPU訪問外部數(shù)據(jù)存儲器給出16位邏輯地址,低9位用于尋址一塊內(nèi)512個存儲單元中的某一個確定存儲單元,高7位用于尋址DRAMC的1 個字中的某一個確定的字,每個字的高8位數(shù)據(jù)指向外部數(shù)據(jù)存儲器1 塊中的某一塊,低8位則是對應(yīng)塊的安全存取屬性控制字,構(gòu)成CPU給出的高7位地址、外部數(shù)據(jù)存儲器物理塊號和該存儲塊對應(yīng)安全存取屬性控制字三者之間的映射與轉(zhuǎn)換關(guān)系,即A15I9 — BKAddri=DACWi,其對應(yīng)關(guān)系如圖4所示。外部數(shù)據(jù)存取安全控制邏輯電路DASCL由SoC芯片運(yùn)行安全狀態(tài)字、外部數(shù)據(jù)存儲塊安全存取屬性控制字輸入通道和判決邏輯電路組成。只有當(dāng)系統(tǒng)運(yùn)行的當(dāng)前安全狀態(tài)滿足對應(yīng)數(shù)據(jù)存儲塊的安全存取屬性控制字要求時,該電路發(fā)出有效的數(shù)據(jù)存儲器訪問控制信號,完成數(shù)據(jù)的讀出或?qū)懭氩僮鳌M獠繑?shù)據(jù)存儲器安全動態(tài)存取控制工作原理如圖5 所示。下面以指令MOVX A,ODPTR執(zhí)行為例,說明外部數(shù)據(jù)存儲器安全動態(tài)存取控制方式的工作流程。首先,SoC芯片加電自檢后,進(jìn)行存儲器工作方式選擇的初始化操作,分為如下三
步
第一步設(shè)置存儲器工作方式控制寄存器MACR=OlH,DRAMC作為內(nèi)部緩沖存儲器RAM接入CPU工作。第二步初始化DRAMC,寫入各數(shù)據(jù)塊相對應(yīng)的安全存取屬性控制字和對應(yīng)物理存儲器塊號,以及程序運(yùn)行時所必須的初始化工作,為程序運(yùn)行作好準(zhǔn)備。第三步設(shè)置存儲器工作方式控制寄存器MACR=0C0H,配置DRAMC為訪問外部數(shù)據(jù)存儲區(qū)的安全屬性控制字存儲器、外部數(shù)據(jù)存儲器工作于安全動態(tài)存取控制方式、RAM為系統(tǒng)內(nèi)部緩沖存儲器。然后,SoC芯片轉(zhuǎn)入數(shù)據(jù)存儲器安全動態(tài)存取控制運(yùn)行階段,該指令的執(zhí)行分為如下五步
第一步CPU取指令從PROM中讀出指令的操作碼,譯碼得知為從DRAM中取出由DPTR指針指示地址的一個字節(jié)數(shù)據(jù),送入累加器A。第二步CPU將DPTR寄存器所存放的地址放入地址總線,A8Ici直接與DRAM中低9 位地址線對應(yīng)相連。第三步同時DPTR的高7位A15I9尋址DRAMC得到對應(yīng)塊號的7位物理地址和該塊的安全存取屬性控制字,7位物理地址對應(yīng)接入DRAM的A15I9用于尋址某一數(shù)據(jù)塊,與低9位地址一起譯碼指向該塊中唯一的存儲單元。第四步數(shù)據(jù)存取安全控制邏輯電路DASCL將安全存取屬性控制字與當(dāng)前安全狀態(tài)字進(jìn)行比較,滿足訪問安全條件時,DASCL電路輸出有效的讀取DRAM的低電平控制信號, 否則輸出無效的高電平信號。第五步CPU輸出低電平有效的DRAM讀信號,該信號經(jīng)數(shù)據(jù)存取安全控制邏輯電路DASCL處理后,其輸出的控制信號與DRAM存儲器的讀信號相連。若滿足訪問控制安全條件,則DPTR指示的存儲單元的內(nèi)容被讀取到數(shù)據(jù)總線上,并送入累加器A中;否則,禁止訪問DPTR所指向的存儲單元,并通知CPU該條指令發(fā)生了對所指存儲塊的非法訪問錯誤。由于DPTR存儲訪問外部數(shù)據(jù)存儲器的地址由高7位邏輯塊地址和低9位塊內(nèi)偏移地址組成,在訪問外部數(shù)據(jù)存儲器時需要將邏輯塊地址轉(zhuǎn)換為物理塊地址,而存儲在 DRAMC中某一存儲單元的物理塊地址可以是整個外部數(shù)據(jù)存儲器128塊中的任意一塊,這就使得在程序設(shè)計(jì)時邏輯上連續(xù)的兩個數(shù)據(jù)塊,可能在物理上是不連續(xù)的兩塊,這種存儲器管理模式能實(shí)現(xiàn)存儲器的動態(tài)分配、釋放和回收,減少數(shù)據(jù)存儲區(qū)碎片的產(chǎn)生,提高存儲單元的利用率。
權(quán)利要求
1.一種基于SoC芯片外部數(shù)據(jù)安全存儲架構(gòu),其特征在于包括內(nèi)部緩沖存儲器RAM、 外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC、存儲器工作方式控制寄存器MACR、數(shù)據(jù)存取安全控制邏輯電路DASCL、外部數(shù)據(jù)存儲器DRAM和程序存儲器PR0M,存儲器工作方式控制寄存器MACR位于SoC芯片的特殊功能寄存器SFR區(qū),上述各存儲器與寄存器均通過地址總線AB、數(shù)據(jù)總線DB和控制總線CB與中央處理器單元CPU相連,中央處理器單元CPU通過存儲器工作方式控制寄存器MACR設(shè)置外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC的工作模式,外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC的工作模式?jīng)Q定安全屬性控制字與數(shù)據(jù)塊之間的對應(yīng)關(guān)系;中央處理器單元CPU訪問數(shù)據(jù)存儲器發(fā)出的地址總線信號AB,通過外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC的轉(zhuǎn)換后,譯碼指向外部數(shù)據(jù)存儲器DRAM的被訪問單元,同時得到該單元的存取控制屬性的權(quán)限控制值;而中央處理器單元CPU發(fā)出的訪問外部數(shù)據(jù)存儲器DRAM的控制總線信號CB,通過DASCL電路對該單元的訪問控制權(quán)限值與中央處理器單元CPU當(dāng)前所處的安全狀態(tài)值進(jìn)行邏輯運(yùn)算的控制重組后,與外部數(shù)據(jù)存儲器DRAM的讀寫控制信號相連,當(dāng)CPU當(dāng)前所處的安全狀態(tài)值大于或等于訪問控制權(quán)限值時,被訪問外部數(shù)據(jù)存儲器DRAM的單元數(shù)據(jù)才能通過數(shù)據(jù)總線DB送入中央處理器單元CPU,或者將中央處理器單元CPU內(nèi)部的數(shù)據(jù)寫入到指定的存儲單元,實(shí)現(xiàn)數(shù)據(jù)的雙向交互;在中央處理器單元CPU的控制下,通過存儲器工作方式控制寄存器MACR、外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC和數(shù)據(jù)存取安全控制邏輯電路DASCL,完成外部數(shù)據(jù)存儲器 DRAM安全靜態(tài)和動態(tài)存取控制方式下的存取屬性控制字與相應(yīng)數(shù)據(jù)塊的對應(yīng)關(guān)系轉(zhuǎn)換、地址總線的動態(tài)重構(gòu)以及控制總線和控制邏輯的重組,確保兩種存取控制方式下數(shù)據(jù)安全交互控制功能的實(shí)現(xiàn)。
2.一種基于SoC芯片外部數(shù)據(jù)安全存儲架構(gòu)的存取控制方法,其特征在于該方法基于權(quán)利要求1所述基于SoC芯片外部數(shù)據(jù)安全存儲架構(gòu)之上,包括外部數(shù)據(jù)存儲器安全靜態(tài)存取控制方法和外部數(shù)據(jù)存儲器安全動態(tài)存取控制方法;外部數(shù)據(jù)存儲器安全靜態(tài)存取控制方法具體為在該工作方式下,每個外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器的存儲單元存放一個訪問外部數(shù)據(jù)存儲器存取屬性控制字,該存取屬性控制字對應(yīng)外部數(shù)據(jù)存儲器256個存儲單元,構(gòu)成一個數(shù)據(jù)塊;CPU的地址總線信號AB、存取屬性控制字DACWi與外部數(shù)據(jù)存儲塊的塊號BKAddri的對應(yīng)關(guān)系為=A15I8=DACWi=BKAddri,其中i = A15X的編碼;數(shù)據(jù)存取安全控制邏輯電路DASCL由SoC芯片運(yùn)行安全狀態(tài)字、外部數(shù)據(jù)存儲塊安全存取屬性控制字輸入通道和判決邏輯電路組成;CPU運(yùn)行需要訪問外部數(shù)據(jù)存儲器時,只有當(dāng)SoC芯片運(yùn)行的當(dāng)前安全狀態(tài)滿足對應(yīng)數(shù)據(jù)存儲塊的安全存取屬性控制字要求時,DASCL電路發(fā)出有效的數(shù)據(jù)存儲器訪問控制信號,完成數(shù)據(jù)的讀出或?qū)懭氩僮?;SoC芯片運(yùn)行時,首先設(shè)置存儲器工作方式控制寄存器,選中DRAMC作為芯片的內(nèi)部緩沖存儲器RAM,并根據(jù)外部數(shù)據(jù)存儲器安全訪問控制策略,對DRAMC寫入每個數(shù)據(jù)存儲塊相對應(yīng)的安全存取屬性控制字,其次,設(shè)置存儲器工作方式控制寄存器,構(gòu)成外部數(shù)據(jù)存儲器安全靜態(tài)存取控制方式,初始化存儲器工作方式結(jié)束,SoC芯片進(jìn)入外部數(shù)據(jù)存儲器安全靜態(tài)存取控制狀態(tài);當(dāng)CPU運(yùn)行需要訪問外部數(shù)據(jù)存儲器時,將地址總線的高8位尋址 DRAMC,讀取對應(yīng)數(shù)據(jù)塊的安全存取屬性控制字,并與芯片當(dāng)前所處的安全狀態(tài)字進(jìn)行邏輯運(yùn)算,滿足訪問安全條件時,DASCL電路給出有效的外部數(shù)據(jù)存儲器訪問讀或?qū)懣刂菩盘?,且CPU給出的高8位地址選中安全存取屬性控制字所對應(yīng)的一個存儲塊,低8位地址選中該塊中某一確定的存儲單元,在讀或?qū)懣刂菩盘柕目刂葡?,完成?shù)據(jù)的讀出或?qū)懭氩僮?;若芯片?dāng)前所處的安全狀態(tài)與安全存取屬性控制字進(jìn)行邏輯運(yùn)算,不滿足訪問安全條件時, DASCL電路輸出無效的讀或?qū)懣刂菩盘?,則禁止系統(tǒng)對外部數(shù)據(jù)存儲器的訪問操作;外部數(shù)據(jù)存儲器安全動態(tài)存取控制方法具體為當(dāng)SoC芯片處于外部數(shù)據(jù)存儲器安全動態(tài)存取控制方式下時,外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器DRAMC被劃分為1 個字存儲單元,每個字的高8位存儲訪問外部數(shù)據(jù)存儲區(qū)的物理塊號,低8位存儲該塊的安全存取屬性控制字,外部數(shù)據(jù)存儲器對應(yīng)被劃分為1 塊,每塊512字節(jié),CPU訪問外部數(shù)據(jù)存儲器給出16位邏輯地址,低9位用于訪問一塊內(nèi) 512個存儲單元中的某一個確定存儲單元,高7位用于尋址DRAMC的1 個字中的某一個確定的字,每個字高8位數(shù)據(jù)指向外部數(shù)據(jù)存儲器1 塊中的某一塊,低8位則是該塊存儲區(qū)對應(yīng)的存取屬性控制字,即AjA9 — BKAddri=DACffi ;數(shù)據(jù)訪問安全控制邏輯電路DASCL由 SoC芯片運(yùn)行安全狀態(tài)字、外部數(shù)據(jù)存儲塊安全存取屬性控制字輸入通道和判決邏輯電路組成,只有當(dāng)SoC芯片運(yùn)行的當(dāng)前安全狀態(tài)滿足對應(yīng)數(shù)據(jù)存儲塊的安全存取屬性控制字要求時,DASCL電路發(fā)出有效的數(shù)據(jù)存儲器訪問控制信號,完成數(shù)據(jù)的讀出或?qū)懭氩僮鳎籗oC芯片運(yùn)行時,首先設(shè)置存儲器工作方式控制寄存器,選中DRAMC作為片內(nèi)緩沖存儲器RAM,并根據(jù)外部數(shù)據(jù)存儲器安全訪問控制策略,對DRAMC寫入每個數(shù)據(jù)存儲塊相對應(yīng)的安全存取屬性控制字和對應(yīng)的物理塊地址;其次,設(shè)置存儲器工作方式控制寄存器,構(gòu)成外部數(shù)據(jù)存儲器安全動態(tài)存取控制方式,初始化存儲器工作方式結(jié)束,SoC芯片進(jìn)入外部數(shù)據(jù)存儲器安全動態(tài)存取控制狀態(tài);當(dāng)CPU運(yùn)行需要訪問外部數(shù)據(jù)存儲器時,將地址總線的高7 位尋址DRAMC,讀取對應(yīng)數(shù)據(jù)塊的安全存取屬性控制字,并與芯片當(dāng)前所處的安全狀態(tài)進(jìn)行邏輯運(yùn)算,滿足訪問安全條件時,DASCL電路給出有效的外部數(shù)據(jù)存儲器訪問讀或?qū)懣刂菩盘?,且DRAMC高8位數(shù)據(jù)選中安全存取控制屬性字所對應(yīng)的一個存儲塊,CPU地址的低9位選中該塊中某一確定的存儲單元,在讀或?qū)懣刂菩盘柕目刂葡?,完成?shù)據(jù)的寫入或讀出操作;若芯片當(dāng)前所處的安全狀態(tài)與安全存取屬性控制字進(jìn)行邏輯運(yùn)算,不滿足訪問安全條件時,DASCL電路輸出無效的讀或?qū)懣刂菩盘?,則禁止CPU對外部數(shù)據(jù)存儲器的訪問操作;若CPU不執(zhí)行外部數(shù)據(jù)存儲器安全訪問策略,即工作于正常外部數(shù)據(jù)存儲工作模式, 執(zhí)行其它訪問外部數(shù)據(jù)存儲器指令時,不執(zhí)行初始化操作,與程序正常執(zhí)行階段的步驟相同,且DRAMC在存儲器工作方式控制寄存器的控制下,作為芯片內(nèi)部緩沖存儲器的擴(kuò)展使用,在執(zhí)行MOVX A, iRi或MOVX iRi, A指令時,訪問DRAMC的高8位地址固定設(shè)置為00H,即 A15X 為 00H。
全文摘要
本發(fā)明涉及一種基于SoC芯片外部數(shù)據(jù)安全訪問結(jié)構(gòu)及存儲控制方法,由內(nèi)部緩沖存儲器、擴(kuò)展的外部程序存儲區(qū)安全屬性控制存儲器、存儲器工作方式控制寄存器、數(shù)據(jù)存取安全控制邏輯電路、外部數(shù)據(jù)存儲器與程序存儲器組成,存儲器工作方式控制寄存器位于SoC的特殊功能寄存器區(qū),上述各存儲器與寄存器均通過地址總線、數(shù)據(jù)總線和控制總線與中央處理器單元相連,CPU通過存儲器工作方式寄存器設(shè)置外部數(shù)據(jù)存儲區(qū)安全屬性控制存儲器的工作模式,配置SoC芯片工作于外部數(shù)據(jù)存儲器安全靜態(tài)或動態(tài)存取控制方式,在數(shù)據(jù)存取安全控制邏輯電路的控制下,進(jìn)行外部數(shù)據(jù)存儲器的分級安全管理,確保外部數(shù)據(jù)存儲器存儲的數(shù)據(jù)在生成、使用、修改、歸檔、清除等生命周期的全程監(jiān)管,實(shí)現(xiàn)不同安全等級數(shù)據(jù)之間的“防火墻”功能,滿足SoC芯片對敏感數(shù)據(jù)的安全保護(hù)需要。
文檔編號G06F21/00GK102184365SQ20111015055
公開日2011年9月14日 申請日期2011年6月7日 優(yōu)先權(quán)日2011年6月7日
發(fā)明者何駿, 劉熙胖, 常朝穩(wěn), 張魯國, 李平, 梁松濤, 王曙光, 董建強(qiáng), 趙國磊 申請人:鄭州信大捷安信息技術(shù)有限公司