專利名稱:基于SoC芯片外部程序安全訪問架構(gòu)的制作方法
技術(shù)領(lǐng)域:
本實用新型涉及安全SoC芯片技術(shù)領(lǐng)域,尤其涉及一種基于MCS-52系列SoC芯片外部程序存儲管理架構(gòu)與安全存儲方法的基于SoC芯片外部程序安全訪問架構(gòu)及控制方法,用于擴展MCS-52系列SoC芯片中哈佛存儲器體系結(jié)構(gòu)、外部程序存儲器的分級安全管理,確保指令和敏感數(shù)據(jù)在安全狀態(tài)滿足要求的前提下的執(zhí)行、訪問與監(jiān)管,構(gòu)建信息系統(tǒng)可信根的逐級啟動與傳遞,敏感數(shù)據(jù)的授權(quán)使用,保護SoC芯片資源和應用程序執(zhí)行的安全性。
背景技術(shù):
目前基于MCS-52系列哈佛存儲器體系結(jié)構(gòu)的SoC芯片,其存儲器組織通常由256 字節(jié)的內(nèi)部緩沖存儲器RAM、64K字節(jié)的外部數(shù)據(jù)存儲器和64K字節(jié)的程序存儲器組成。對于用戶來說存儲在外部程序存儲器的指令和敏感數(shù)據(jù)都能被在無任何安全要求的情況下執(zhí)行與訪問,因而對于能進行二次開發(fā)的SoC芯片系統(tǒng)來說程序存儲區(qū)對用戶是完全透明的,沒有任何安全防護措施來保護程序存儲區(qū)的程序被非法或非授權(quán)用戶進行執(zhí)行和調(diào)用,以及敏感數(shù)據(jù)的越權(quán)訪問與使用。對于一個嵌入式安全SoC芯片,其內(nèi)部存儲有各種安全屬性不同的敏感數(shù)據(jù)和程序,SoC芯片運行在不同的安全狀態(tài)下,可執(zhí)行不同安全屬性的敏感程序和訪問不同安全屬性的數(shù)據(jù),是應用系統(tǒng)對SoC芯片的安全要求,也是可信計算平臺信任根傳遞的基礎(chǔ)。對 SoC芯片運行時的所有敏感程序和數(shù)據(jù)實施分級分層的安全防護措施,能有效防止敏感程序的非法執(zhí)行和越權(quán)調(diào)用,以及敏感數(shù)據(jù)的非法訪問,提高SoC芯片系統(tǒng)運行的安全性。
發(fā)明內(nèi)容本實用新型的目的在通過設(shè)置外部程序存儲區(qū)訪問屬性控制字存儲器、存儲器工作方式控制寄存器和相應的安全訪問控制邏輯電路、訪問外部程序存儲器的三總線重構(gòu)邏輯,實現(xiàn)對外部程序存儲區(qū)程序和敏感數(shù)據(jù)的分級與分塊的安全運行和訪問以及多種安全保護策略,構(gòu)建不同安全等級程序和敏感數(shù)據(jù)之間“防火墻”功能的基于SoC芯片外部程序安全訪問架構(gòu)及控制方法。本實用新型的目的是這樣實現(xiàn)的一種基于SoC芯片外部程序安全訪問架構(gòu),其特征在于包括內(nèi)部緩沖存儲器 RAM、外部程序存儲區(qū)安全屬性控制存儲器PRAMC、存儲器工作方式控制寄存器MACR、程序執(zhí)行安全控制邏輯電路PESCL、外部數(shù)據(jù)存儲器DRAM與程序存儲器PROM。存儲器工作方式控制寄存器MACR位于SoC芯片的特殊功能寄存器SFR區(qū),其地址為8HL上述各存儲器與寄存器均通過地址總線AB、數(shù)據(jù)總線DB和控制總線CB與中央處理器單元CPU相連,中央處理器單元CPU通過存儲器工作方式控制寄存器MACR設(shè)置外部程序存儲區(qū)安全屬性控制存儲器PRAMC的工作模式,該存儲器的工作模式?jīng)Q定了安全屬性控制字與程序塊之間的對應關(guān)系。中央處理器單元CPU訪問程序存儲器PROM發(fā)出的地址總線信號AB,通過外部程序存儲區(qū)安全屬性控制存儲器PRAMC轉(zhuǎn)換后譯碼指向程序存儲器PROM的被訪問單元,同時從外部程序存儲區(qū)安全屬性控制存儲器PRAMC中得到該單元的訪問控制屬性即權(quán)限控制值,而中央處理器單元CPU發(fā)出訪問程序存儲器PROM的控制總線信號CB,經(jīng)過PESCL電路對該單元的訪問控制權(quán)限值與中央處理器單元CPU當前所處的安全狀態(tài)值進行邏輯運算的控制重組后,與程序存儲器PROM的訪問控制信號相連,只有當中央處理器單元CPU當前所處的安全狀態(tài)值大于或等于訪問控制權(quán)限值時,被訪問程序存儲器PROM單元數(shù)據(jù)才能通過數(shù)據(jù)總線DB送入中央處理器單元CPU,實現(xiàn)數(shù)據(jù)的訪問或程序的執(zhí)行。在存儲器工作方式控制寄存器MACR的控制下,通過外部程序存儲區(qū)安全屬性控制存儲器PRAMC和安全訪問控制邏輯電路,完成外部程序存儲區(qū)安全屬性控制存儲器PRAMC安全靜態(tài)和動態(tài)訪問控制方式下的訪問或執(zhí)行屬性控制字與相應程序塊的對應關(guān)系轉(zhuǎn)換,地址總線的動態(tài)重構(gòu)以及控制總線和控制邏輯的重組,確保兩種訪問控制方式下程序安全執(zhí)行或數(shù)據(jù)訪問控制功能的實現(xiàn)。本實用新型具有如下積極效果通過對程序存儲器的每一塊設(shè)置不同的安全訪問或執(zhí)行屬性控制字,可實現(xiàn)對外部程序存儲器的分級安全訪問控制,確保不同安全等級的敏感程序或數(shù)據(jù)得到有效保護,理論上用一個字節(jié)來表示安全訪問或執(zhí)行屬性對應著256 種不同的安全狀態(tài),用戶可根據(jù)自己的安全需求靈活設(shè)置相應的安全訪問或執(zhí)行控制策略。存儲器動態(tài)管理模式為多任務的運行提供了安全的運行環(huán)境,實現(xiàn)了在較小內(nèi)存資源基礎(chǔ)之上的不同安全等級程序之間的“防火墻”功能,確保了程序分級運行和信任根的逐級傳遞。具體為SoC芯片根據(jù)用戶運行程序安全等級制定相應的安全訪問或執(zhí)行控制策略, 在初始化時將安全訪問或執(zhí)行屬性控制字寫入外部程序存儲區(qū)安全屬性控制存儲器中,不同安全訪問或執(zhí)行控制屬性的指令或數(shù)據(jù)分配各自不同的程序存儲塊,相同安全訪問或執(zhí)行控制屬性的指令或數(shù)據(jù)根據(jù)存儲程序或數(shù)據(jù)的大小可占用相同或不同的程序存儲塊號。 用戶程序在設(shè)計階段嚴格遵守安全訪問或執(zhí)行策略制定程序存儲器安全管理方案,即對程序或數(shù)據(jù)進行分級安全管理。當用戶程序投入運行時,SoC芯片可通過成功完成安全策略制定的各種挑戰(zhàn)后,獲得相應的安全狀態(tài)。如正確驗證用戶口令、成功識別和驗證敏感數(shù)據(jù)使用者的身分、正確執(zhí)行敏感數(shù)據(jù)的交互協(xié)議、密鑰協(xié)商完成、密碼運算單元功能正確、關(guān)聯(lián)功能的正確執(zhí)行等等,都是SoC芯片系統(tǒng)提升當前所處安全狀態(tài)的方法。只有在SoC芯片所處的安全狀態(tài)滿足執(zhí)行對應存儲塊安全訪問或執(zhí)行屬性控制字的要求前提下,才能實施對該程序塊由安全訪問或執(zhí)行屬性控制字所規(guī)定的操作,從而有效保障敏感程序或數(shù)據(jù)在安全可控狀態(tài)下完成其生命周期的全程監(jiān)控,滿足SoC芯片對敏感程序或數(shù)據(jù)的安全保護需要。
圖1為本實用新型的基于SoC芯片外部程序存儲器安全訪問架構(gòu)的示意圖。圖2為本實用新型的外部程序存儲器安全靜態(tài)訪問或執(zhí)行屬性控制字與程序塊的對應關(guān)系圖。圖3為本實用新型的外部程序存儲器安全靜態(tài)訪問控制工作原理圖。圖4為本實用新型的外部程序存儲器安全動態(tài)訪問或執(zhí)行屬性控制字與程序塊的對應關(guān)系圖。[0012]圖5為本實用新型的外部程序存儲器安全動態(tài)訪問控制工作原理圖。
具體實施方式
如圖1所示,本發(fā)明的基于SoC芯片外部程序安全訪問架構(gòu)包括內(nèi)部緩沖存儲器 RAM、外部程序存儲區(qū)安全屬性控制存儲器PRAMC、存儲器工作方式控制寄存器MACR、程序執(zhí)行安全控制邏輯電路PESCL、外部數(shù)據(jù)存儲器DRAM與程序存儲器PR0M。存儲器工作方式控制寄存器MACR位于SoC芯片的特殊功能寄存器SFR區(qū),其地址為8HL上述各存儲器與寄存器均通過地址總線AB、數(shù)據(jù)總線DB和控制總線CB與中央處理器單元CPU相連,并通過 AB、DB和CB三總線實現(xiàn)CPU與各存儲器和寄存器之間的數(shù)據(jù)與命令交互。如圖2和圖4所示,根據(jù)外部程序存儲器安全訪問控制策略,中央處理器單元CPU 通過存儲器工作方式控制寄存器MACR,設(shè)置外部程序存儲區(qū)安全屬性控制存儲器PRAMC的工作模式,PRAMC的工作模式?jīng)Q定了安全屬性控制字與程序塊之間的對應關(guān)系。當SoC芯片處于安全靜態(tài)訪問控制方式時,外部程序存儲器PROM被劃分為256個程序或數(shù)據(jù)塊,每塊256個字節(jié)。而外部程序存儲區(qū)安全屬性控制存儲器PRAMC的256個存儲單元中,各存放一個程序或數(shù)據(jù)塊的安全訪問或執(zhí)行屬性控制字,使CPU的地址總線信號AB、安全訪問或執(zhí)行屬性控制字PACWi與外部程序存儲塊的塊號BKAddri三者之間構(gòu)成一一對應關(guān)系,即 A15^V8=PACWi=BKAddri,其中i = A15I8的編碼。而當SoC芯片處于安全動態(tài)訪問控制方式時, 外部數(shù)據(jù)存儲器PRAM被劃分為1 個數(shù)據(jù)塊,每塊512個字節(jié);外部程序存儲區(qū)安全屬性控制存儲器PRAMC也被劃分的1 個字存儲單元,且每個字的高8位存放訪問外部程序或數(shù)據(jù)存儲器的物理塊號,低8位則存放該塊所對應的安全存訪問或執(zhí)行屬性控制字,使CPU 的地址總線信號AB、安全訪問或執(zhí)行屬性控制字PACWi與外部程序存儲塊的塊號BKAddriH 者之間構(gòu)成A15I8 — DACffi=BKAddri的映射與轉(zhuǎn)換關(guān)系,即通過A15I8實現(xiàn)邏輯塊地址到物理塊地址和對應物理塊的安全訪問屬性控制字的轉(zhuǎn)換。如圖3和圖5所示,中央處理器單元CPU訪問程序存儲器PROM發(fā)出的地址總線信號AB,通過外部程序存儲區(qū)安全屬性控制存儲器PRAMC轉(zhuǎn)換后,譯碼指向程序存儲器PROM 的被訪問單元,同時從外部程序存儲區(qū)安全屬性控制存儲器PRAMC中得到該單元的訪問或執(zhí)行屬性控制字即權(quán)限控制值,而中央處理器單元CPU發(fā)出訪問程序存儲器PROM的控制總線信號CB,經(jīng)過PESCL電路對該單元的訪問控制權(quán)限值與中央處理器單元CPU當前所處的安全狀態(tài)值進行邏輯運算的控制重組后,與程序存儲器PROM的訪問控制信號相連。只有當中央處理器單元CPU當前所處的安全狀態(tài)值大于或等于訪問控制權(quán)限值時,被訪問程序存儲器PROM的單元數(shù)據(jù)才能通過數(shù)據(jù)總線DB送入中央處理器單元CPU,實現(xiàn)數(shù)據(jù)的訪問或程序的執(zhí)行。在中央處理單元CPU的控制下,通過存儲器工作方式控制寄存器MACR、外部程序存儲區(qū)安全屬性控制存儲器PRAMC和程序執(zhí)行安全控制邏輯電路PESCL,本發(fā)明能完成外部程序存儲區(qū)安全屬性控制存儲器PRAMC安全靜態(tài)和動態(tài)訪問控制方式下的訪問或執(zhí)行屬性控制字與相應程序塊的對應關(guān)系轉(zhuǎn)換,地址總線的動態(tài)重構(gòu)以及控制總線和控制邏輯的重組,確保兩種訪問控制方式下程序安全執(zhí)行或數(shù)據(jù)訪問控制功能的實現(xiàn)。一種基于SoC芯片外部程序安全訪問控制方法,其特征在于該方法基于所述基于SoC芯片外部程序安全訪問架構(gòu)之上,包括外部程序存儲器安全靜態(tài)訪問控制方法和安全動態(tài)訪問控制方法。外部程序存儲器安全靜態(tài)訪問控制方法的實現(xiàn)如下在該工作方式下,每個外部程序存儲區(qū)安全屬性控制存儲器的256個存儲單元存放一個外部程序存儲器訪問或執(zhí)行屬性控制字,該訪問或執(zhí)行屬性控制字對應外部程序存儲器256個存儲單元,構(gòu)成一個程序塊。CPU的地址信號AB、訪問或執(zhí)行屬性控制字與外部程序存儲塊的塊號三者之間一一對應,即A1^A8=PACWi=BKAddri,其對應關(guān)系如圖2所示。程序執(zhí)行安全控制邏輯電路PESCL由SoC芯片運行安全狀態(tài)字、外部程序存儲器塊安全訪問或執(zhí)行屬性控制字輸入通道和判決邏輯電路組成。CPU運行需要訪問外部程序存儲器的數(shù)據(jù)或執(zhí)行外部程序存儲器的指令時,只有當SoC芯片運行的當前安全狀態(tài)滿足對應程序存儲塊的安全訪問或執(zhí)行屬性控制字要求時,該電路發(fā)出有效的程序存儲器訪問或執(zhí)行控制信號,完成指令或數(shù)據(jù)的讀出操作,并送入指令譯碼器。外部程序存儲器安全靜態(tài)訪問控制工作原理如圖3所示。CPU運行時,首先設(shè)置存儲器工作方式控制寄存器,選中PRAMC作為芯片的內(nèi)部緩沖存儲器RAM,并根據(jù)外部程序存儲器安全執(zhí)行控制策略,對PRAMC寫入每個程序存儲塊相對應的安全訪問或執(zhí)行屬性控制字。其次,設(shè)置存儲器工作方式控制寄存器,構(gòu)成外部程序存儲器安全靜態(tài)訪問控制工作方式,初始化存儲器工作方式結(jié)束,SoC芯片進入外部程序存儲器安全靜態(tài)訪問控制狀態(tài)。當CPU運行需要執(zhí)行外部程序存儲器的指令或訪問其數(shù)據(jù)時,將地址總線的高8位尋址PRAMC,讀取對應程序塊的安全訪問或執(zhí)行屬性控制字,并與芯片當前所處的安全狀態(tài)進行邏輯運算,滿足程序執(zhí)行安全條件時,PESCL電路給出有效的外部程序存儲器訪問控制信號,且CPU給出的高8位地址選中安全訪問或執(zhí)行屬性控制字所對應的一個存儲塊,低8位地址選中該塊中某一確定的存儲單元,在外部程序存儲器訪問控制信號的控制下,完成指令或數(shù)據(jù)的讀出操作,如果讀出的數(shù)據(jù)是指令的操作碼,則送入指令譯碼器,譯碼并執(zhí)行該條指令。若芯片當前所處的安全狀態(tài)與安全訪問或執(zhí)行屬性控制字進行邏輯運算,不滿足程序執(zhí)行的安全條件時,PESCL電路輸出無效的外部程序存儲器訪問控制信號,則禁止CPU對外部程序存儲器的訪問操作,即禁止對應程序塊存儲指令的執(zhí)行或數(shù)據(jù)的訪問操作。外部程序存儲器安全動態(tài)訪問控制方法的實現(xiàn)如下當SoC芯片處于外部程序存儲器安全動態(tài)訪問控制方式下時,外部程序存儲區(qū)安全屬性控制存儲器PRAMC被劃分為1 個字存儲單元,每個字的高8位存儲訪問外部程序存儲區(qū)的物理塊號,低8位存儲該塊的安全訪問或執(zhí)行屬性控制字,外部程序存儲器對應被劃分為1 塊,每塊512字節(jié),CPU訪問外部程序存儲器給出16位邏輯地址,低9位用于訪問一塊內(nèi)512個存儲單元中的某一個確定存儲單元,高7位用于尋址PRAMC的1 個字中的某一個確定的字,每個字高8位數(shù)據(jù)指向外部程序存儲器1 塊中的某一塊,低8位則是該塊存儲區(qū)對應的訪問或執(zhí)行屬性控制字,構(gòu)成CPU輸出的高7位地址、外部程序存儲器的物理塊號與該存儲塊對應的安全訪問或執(zhí)行屬性控制字三者之間的映射與轉(zhuǎn)換,即 A15X — BKAddri=PACWi,其對應關(guān)系如圖4所示。程序執(zhí)行安全控制邏輯電路PESCL由SoC芯片運行安全狀態(tài)字、外部程序存儲塊安全訪問或執(zhí)行屬性控制字輸入通道和判決邏輯電路組成。只有當CPU運行的當前安全狀態(tài)滿足對應程序存儲塊的安全訪問或執(zhí)行屬性控制字要求時,該電路發(fā)出有效的程序存儲器訪問控制信號,完成指令或數(shù)據(jù)的讀出操作,如果讀出的數(shù)據(jù)是指令的操作碼,則送入指令譯碼器進行譯碼,譯碼并執(zhí)行該條指令,外部程序存儲器安全動態(tài)訪問控制工作原理如圖5所示。SoC芯片運行時,首先設(shè)置存儲器工作方式控制寄存器,選中PRAMC作為片內(nèi)緩沖存儲器RAM,并根據(jù)外部程序存儲器安全執(zhí)行控制策略,對PRAMC寫入每個程序存儲塊相對應的安全訪問或執(zhí)行屬性控制字和對應的物理塊地址。其次,設(shè)置存儲器工作方式控制寄存器,構(gòu)成外部程序存儲器安全動態(tài)訪問控制方式,初始化存儲器訪問控制方式式結(jié)束,SoC芯片進入外部程序存儲器安全動態(tài)訪問控制狀態(tài)。當CPU運行需要執(zhí)行外部程序存儲器的指令或訪問其數(shù)據(jù)時,將地址總線的高7位尋址PRAMC,讀取對應程序塊的安全訪問或執(zhí)行屬性控制字,并與芯片當前所處的安全狀態(tài)進行邏輯運算,滿足訪問安全條件時, PESCL電路給出有效的外部程序存儲器讀指令或數(shù)據(jù)控制信號,且PRAMC高8位數(shù)據(jù)選中安全訪問或執(zhí)行屬性控制字所對應的一個存儲塊,CPU地址的低9位選中該塊中某一確定的存儲單元,在外部程序存儲器訪問控制信號的控制下,完成指令或數(shù)據(jù)的讀出操作。若芯片當前所處的安全狀態(tài)與安全訪問或執(zhí)行屬性控制字進行邏輯運算,不滿足指令執(zhí)行的安全條件時,PESCL電路輸出無效的外部程序存儲器訪問控制信號,則禁止CPU對外部程序存儲器的訪問操作。若CPU不執(zhí)行外部程序存儲器安全管理策略,即工作于正常外部程序存儲管理模式,執(zhí)行外部程序存儲器取指令或讀數(shù)據(jù)操作時,不執(zhí)行初始化過程,與程序正常執(zhí)行階段的步驟相同,且PRAMC在存儲器工作方式控制寄存器的控制下,作為芯片內(nèi)部緩沖存儲器的擴展使用。本實用新型公開了一種基于SoC芯片外部程序安全訪問架構(gòu)與訪問控制方法,該方法包括存儲管理架構(gòu)的硬件平臺、外部程序存儲器安全靜態(tài)訪問控制方法和安全動態(tài)訪問控制方法的實現(xiàn)機制三個基本部分。本實用新型所指的存儲器管理架構(gòu)是基于MCS-52 系列哈佛存儲器體系結(jié)構(gòu)的芯片,這類結(jié)構(gòu)的SoC芯片大量應用于智能卡領(lǐng)域,在我國有極其廣泛的應用,如銀行IC卡、社會保障卡、SIM卡、市民卡、身份證等芯片。1、外部程序存儲器安全訪問控制架構(gòu)外部程序存儲器安全訪問控制架構(gòu)如圖1所示。由內(nèi)部緩沖存儲器RAM、擴展的外部程序存儲區(qū)安全屬性控制存儲器PRAMC、存儲器工作方式控制寄存器MACR、程序執(zhí)行安全控制邏輯電路PESCL、外部數(shù)據(jù)存儲器DRAM和程序存儲器PROM等組成。存儲器工作方式控制寄存器位于SoC的特殊功能寄存器SFR區(qū),其地址為8HL上述各存儲器與寄存器均通過地址總線AB、數(shù)據(jù)總線DB和控制總線CB與中央處理器單元CPU相連。CPU通過存儲器工作方式寄存器MACR,設(shè)置外部程序存儲區(qū)安全屬性控制存儲器的工作模式,PRAMC 的工作模式?jīng)Q定了安全屬性控制字與程序塊之間的對應關(guān)系,如圖2和圖4所示。CPU訪問程序存儲器發(fā)出的地址總線信號AB,通過外部程序存儲區(qū)安全屬性控制存儲器的轉(zhuǎn)換后, 譯碼指向程序存儲器的被訪問單元,同時得到該單元的訪問或執(zhí)行屬性控制字即權(quán)限控制值;而CPU發(fā)出的訪問程序存儲器的控制總線信號CB,經(jīng)過PESCL電路對該單元的訪問控制權(quán)限值與CPU當前所處的安全狀態(tài)值進行邏輯運算的控制重組后,與程序存儲器的訪問控制信號相連,如圖3和圖5所示。只有當CPU當前所處的安全狀態(tài)值大于或等于訪問控制權(quán)限值時,被訪問程序存儲器單元的數(shù)據(jù)才能通過數(shù)據(jù)總線DB送入CPU,實現(xiàn)數(shù)據(jù)的訪問或程序的執(zhí)行。存儲器工作方式控制寄存器MACR各位的定義如下b7b6 保留,在此無任何意義。b5:外部程序存儲器工作方式控制位。1^5=1時,外部程序存儲器為安全動態(tài)訪問控制方式,b5=0時,外部程序存儲器為安全靜態(tài)訪問控制方式。b4:程序存儲體控制允許位。b4=l時,CPU自動選中PRAMC作為PROM的安全屬性控制存儲器;b4=0時,若blb0=10時,選中PRAMC作為內(nèi)部數(shù)據(jù)緩沖存儲器使用,其作用相當于內(nèi)部RAM存儲器的擴展。b3b2:保留,在此無任何意義。blbO:存儲體選擇控制位。若使能位b4=0,且當blb0=00時,選中RAM存儲體作為芯片內(nèi)部數(shù)據(jù)緩沖存儲器;blb0=10時,選中PRAMC存儲體作為芯片內(nèi)部數(shù)據(jù)緩沖存儲器; blbO其它編碼保留,以備存儲體的擴展。在MACR寄存器的控制下,通過PRAMC完成外部程序存儲器安全靜態(tài)和動態(tài)訪問控制方式下的訪問或執(zhí)行屬性控制字與相應程序塊之間對應關(guān)系轉(zhuǎn)換,數(shù)據(jù)和地址總線的動態(tài)重構(gòu),以及控制總線和控制邏輯的重組,確保兩種訪問控制方式下程序安全運行或數(shù)據(jù)訪問控制機制的實現(xiàn)。2、外部程序存儲器安全靜態(tài)訪問控制方法的實現(xiàn)在該工作方式下,每個外部程序存儲區(qū)安全訪問屬性控制存儲器的256個存儲單元,存放一個訪問外部程序存儲器訪問或執(zhí)行屬性控制字,該訪問或執(zhí)行屬性控制字對應外部程序存儲器256個存儲單元,構(gòu)成一個程序或數(shù)據(jù)塊。CPU的地址信號AB、 訪問或執(zhí)行屬性控制字PACWi與外部程序存儲塊的塊號BKAddri三者之間一一對應,即 A15I8=PACWi=BKAddri,其對應關(guān)系如圖2所示。程序執(zhí)行安全控制邏輯電路PESCL由SoC芯片運行安全狀態(tài)字、外部程序存儲塊安全訪問或執(zhí)行屬性控制字輸入通道和判決邏輯電路組成。CPU運行需要訪問外部程序存儲器的數(shù)據(jù)或執(zhí)行外部程序存儲器的指令時,只有當SoC芯片運行的當前安全狀態(tài)滿足對應程序存儲塊的安全訪問或執(zhí)行屬性控制字要求時,該電路發(fā)出有效的程序存儲器訪問或執(zhí)行控制信號,完成指令或數(shù)據(jù)的讀出操作。外部程序存儲器安全靜態(tài)訪問控制工作原理如圖3所示。下面以指令MOVC A,0A+DPTR執(zhí)行為例,說明外部程序存儲器安全靜態(tài)訪問控制方式下的工作流程。首先,SoC芯片加電自檢后,進行存儲器工作方式選擇的初始化操作,分為如下三
第一步設(shè)置存儲器工作方式控制寄存器MACR=02H,PRAMC作為內(nèi)部緩沖存儲器 RAM接入CPU工作。第二步初始化PRAMC,寫入各程序塊相對應的安全訪問或執(zhí)行屬性控制字,以及程序運行時所必須的初始化工作,為程序運行作好準備。第三步設(shè)置存儲器工作方式控制寄存器MACR=IOH,配置PRAMC為訪問外部程序存儲區(qū)的安全屬性控制字存儲區(qū)、外部程序存儲區(qū)工作于安全靜態(tài)訪問控制方式、RAM為 CPU內(nèi)部緩沖存儲器。然后,SoC芯片轉(zhuǎn)入程序存儲器安全靜態(tài)訪問控制方式程序執(zhí)行階段,該指令的執(zhí)行分為如下五步第一步CPU取指令從PROM中讀出指令的操作碼,譯碼得知為從PROM中取出由累加器A+DPTR指針指示地址的一個字節(jié)數(shù)據(jù),送入累加器A。第二步CPU將DPTR寄存器值加上累加器A的值,作為訪問數(shù)據(jù)的地址放入地址總線,從PROM中譯碼指向?qū)拇鎯卧5谌酵瑫r該地址的高8位尋址PRAMC得到對應塊號的訪問或執(zhí)行屬性控制字。第四步程序執(zhí)行安全控制邏輯電路PESCL將訪問或執(zhí)行屬性控制字與當前安全狀態(tài)字進行邏輯運算,滿足訪問條件時,PESCL電路輸出有效的讀取PROM的低電平控制信號,否則輸出無效的高電平信號。第五步CPU輸出低電平有效的PROM讀信號,該信號經(jīng)程序執(zhí)行安全控制邏輯電路PESCL處理后,其輸出的控制信號與PROM存儲器的訪問控制信號相連。若滿足訪問控制安全條件,則A+DPTR指示的存儲單元的數(shù)據(jù)被讀取到數(shù)據(jù)總線上,并送入累加器A中;否則,禁止訪問A+DPTR所指向的存儲單元,并通知CPU該條指令發(fā)生了對所指存儲塊的非法訪問錯誤。對外部程序存儲器的訪問操作只有讀操作,可分為三種類型查表操作類型為 MOVC A, 0A+DPTR和MOVC A, 0A+PC ;取指令與執(zhí)行指令操作類型包括取操作碼、讀操作數(shù)或者操作數(shù)地址;跳轉(zhuǎn)指令操作類型為JMP Addr, JMP @A+DPTR、SJMP rel、JB bit等指令, 該類指令的共同點是將跳轉(zhuǎn)指令執(zhí)行時最終形成的地址,送入地址總路線去取操作碼。無論執(zhí)行上述那類指令,對外部程序存儲器的操作可歸納為讀數(shù)據(jù)、取指令與取操作數(shù),其實質(zhì)就是對外部程序存儲器的讀操作,只是16位地址的形成方式不同,對外部程存儲器的訪問操作其地址形成方式有A+DPTR、A+PC (程序計數(shù)器)、PC和跳轉(zhuǎn)指令最終形成的16位地址四種,他們的訪問控制機制是完全相同的。若CPU不執(zhí)行外部程序存儲器安全訪問策略,即工作于正常外部程序存儲管理模式,執(zhí)行其它訪問外部程序存儲器指令時,不執(zhí)行初始化操作,與程序正常執(zhí)行階段的步驟相同,且PRAMC在存儲器工作方式控制寄存器的控制下,可作為芯片內(nèi)部緩沖存儲器的擴展使用。3、外部程序存儲器安全動態(tài)訪問控制方法的實現(xiàn)當SoC芯片處于外部程序存儲器安全動態(tài)訪問控制方式時,外部程序存儲區(qū)安全訪問或執(zhí)行屬性控制字存儲器PRAMC被劃分為1 個字存儲單元,每個字的高8位存儲訪問外部程序存儲器的物理塊號,低8位存儲該塊的安全訪問或執(zhí)行屬性控制字,外部程序存儲器對應被劃分為1 塊,每塊512字節(jié),CPU訪問外部程序存儲器給出16位邏輯地址, 低9位用于訪問一塊內(nèi)512個存儲單元中的某一個確定存儲單元,高7位用于尋址PRAMC 的1 個字中的某一個確定的字,每個字高8位數(shù)據(jù)指向外部程序存儲器1 塊中的某一塊,低8位則是對應塊的訪問或執(zhí)行屬性控制字,構(gòu)成CPU給出的高7位地址、外部程序存儲器物理塊號與該存儲塊對應的安全訪問或執(zhí)行屬性控制字三者之間的映射與轉(zhuǎn)換關(guān)系, 即A15I9 — BKAddri=PACWi,其對應關(guān)系如圖4所示。程序執(zhí)行安全控制邏輯電路PESCL由SoC芯片運行安全狀態(tài)字、外部程序存儲塊安全訪問或執(zhí)行屬性控制字輸入通道和判決邏輯電路組成。只有當SoC芯片運行的當前安全狀態(tài)滿足對應程序存儲塊的安全訪問或執(zhí)行屬性控制字要求時,該電路發(fā)出有效的程序存儲器訪問控制信號,完成數(shù)據(jù)或指令的讀出操作。外部程序存儲器安全動態(tài)訪問控制工作原理如圖5所示。下面以指令MOVC A,0A+DPTR執(zhí)行為例,說明外部程序存儲器安全動態(tài)訪問控制方式下的工作流程。首先,SoC芯片加電自檢后,進行存儲器工作方式選擇的初始化操作,分為如下三第一步設(shè)置存儲器工作方式控制寄存器MACR=02H,PRAMC作為內(nèi)部緩沖存儲器 RAM接入CPU工作。第二步初始化PRAMC,寫入各程序塊相對應的安全訪問或執(zhí)行屬性控制字和對應程序存儲器物理塊號,以及程序運行時所必須的初始化工作,為程序運行作好準備。第三步設(shè)置存儲器工作方式控制寄存器MACR=30H,配置PRAMC為訪問外程序據(jù)存儲區(qū)的安全屬性控制字存儲器、外部數(shù)據(jù)存儲器工作于安全動態(tài)訪問控制方式、RAM為 CPU內(nèi)部緩沖存儲器。然后,CPU轉(zhuǎn)入程序存儲器安全動態(tài)訪問控制方式程序執(zhí)行階段,該指令的執(zhí)行分為如下五步第一步CPU取指令從PROM中讀出指令的操作碼,譯碼得知為從PROM中取出由 A+DPTR指示地址的一個字節(jié)數(shù)據(jù),送入累加器A。第二步CPU將A+DPTR所形成的地址放入地址總線,A8Ici直接與PROAM中低9位地址線對應相連。第三步同時A+DPTR的高7位A15I9尋址PRAMC得到對應塊號的7位有效地址和該塊的訪問或執(zhí)行屬性控制字,7位地址對應接入PROM的A15I9,與低9位地址一起譯碼指向該塊中唯一的存儲單元。第四步程序執(zhí)行安全控制邏輯電路PESCL將訪問或執(zhí)行屬性控制字與當前安全狀態(tài)字進行邏輯運算,滿足訪問安全條件時,PESCL電路輸出有效的訪問PROM的低電平控制信號,否則輸出無效的高電平信號。第五步CPU輸出低電平有效的PROM讀信號,該信號經(jīng)程序執(zhí)行安全控制邏輯電路PESCL處理后,其輸出的控制信號與PROM存儲器的訪問控制信號相連。若滿足訪問或執(zhí)行安全控制條件,則A+DPTR指示的存儲單元的數(shù)據(jù)被讀取到數(shù)據(jù)總線上,并送入累加器A 中;否則,禁止訪問A+DPTR所指向的存儲單元,并通知CPU該條指令發(fā)生了對所指存儲塊的非法訪問錯誤。由于A+DPTR形成訪問外部程序存儲器的地址由高7位邏輯塊地址和低9位塊內(nèi)偏移地址組成,在訪問外部程序存儲器時需要將邏輯塊地址轉(zhuǎn)換為物理塊地址,而存儲在 PRAMC中某一存儲單元的物理塊地址可以是整個外部程序存儲器1 塊中的任意一塊,這就使得在程序設(shè)計時邏輯上連續(xù)的兩個程序塊,可能在物理上是不連續(xù)的兩塊,這種存儲器管訪問控制方式能實現(xiàn)存儲器的動態(tài)分配、釋放和回收,減少程序存儲區(qū)碎片的產(chǎn)生,提高存儲單元的利用率。
權(quán)利要求1. 一種基于SoC芯片外部程序安全訪問架構(gòu),其特征在于包括內(nèi)部緩沖存儲器RAM、 外部程序存儲區(qū)安全屬性控制存儲器PRAMC、存儲器工作方式控制寄存器MACR、程序執(zhí)行安全控制邏輯電路PESCL、外部數(shù)據(jù)存儲器DRAM與程序存儲器PR0M,存儲器工作方式控制寄存器MACR位于SoC芯片的特殊功能寄存器SFR區(qū),其地址為8 ,上述各存儲器與寄存器均通過地址總線AB、數(shù)據(jù)總線DB和控制總線CB與中央處理器單元CPU相連,中央處理器單元CPU通過存儲器工作方式控制寄存器MACR設(shè)置外部程序存儲區(qū)安全屬性控制存儲器 PRAMC的工作模式,該存儲器的工作模式?jīng)Q定了安全屬性控制字與程序塊之間的對應關(guān)系, 中央處理器單元CPU訪問程序存儲器PROM發(fā)出的地址總線信號AB,通過外部程序存儲區(qū)安全屬性控制存儲器PRAMC轉(zhuǎn)換后,譯碼指向程序存儲器PROM的被訪問單元,同時從外部程序存儲區(qū)安全屬性控制存儲器PRAMC中得到該單元的訪問或執(zhí)行屬性控制字即權(quán)限控制值,而中央處理器單元CPU發(fā)出訪問程序存儲器PROM的控制總線信號CB,經(jīng)過PESCL電路對該單元的訪問控制權(quán)限值與中央處理器單元CPU當前所處的安全狀態(tài)值進行邏輯運算的控制重組后,與程序存儲器PROM的訪問控制信號相連,只有當中央處理器單元CPU當前所處的安全狀態(tài)值大于或等于訪問控制權(quán)限值時,被訪問程序存儲器PROM單元數(shù)據(jù)才能通過數(shù)據(jù)總線DB送入中央處理器單元CPU,實現(xiàn)數(shù)據(jù)的訪問或程序的執(zhí)行,在存儲器工作方式控制寄存器MACR的控制下,通過外部程序存儲區(qū)安全屬性控制存儲器PRAMC和安全訪問控制邏輯電路,完成外部程序存儲區(qū)安全屬性控制存儲器PRAMC安全靜態(tài)和動態(tài)訪問控制方式下的訪問或執(zhí)行屬性控制字與相應程序塊的對應關(guān)系轉(zhuǎn)換,地址總線的動態(tài)重構(gòu)以及控制總線和控制邏輯的重組,確保兩種訪問控制方式下程序安全執(zhí)行或數(shù)據(jù)訪問控制功能的實現(xiàn)。
專利摘要本實用新型涉及一種基于SoC芯片外部程序安全訪問架構(gòu),由內(nèi)部緩沖存儲器、外部程序存儲區(qū)安全屬性控制存儲器、存儲器工作方式控制寄存器、程序執(zhí)行安全控制邏輯電路、外部數(shù)據(jù)存儲器與程序存儲器組成,存儲器工作方式控制寄存器位于SoC芯片特殊功能寄存器區(qū)。上述各存儲器與寄存器均通過地址總線、數(shù)據(jù)總線和控制總線與中央處理器單元相連,CPU通過存儲器工作方式寄存器設(shè)置外部程序存儲區(qū)安全屬性控制存儲器的工作模式,該存儲器工作模式?jīng)Q定安全屬性控制字與程序塊之間的對應關(guān)系,和訪問外部程序存儲器的三總線重構(gòu)邏輯,用于擴展MCS-52系列SoC芯片中哈佛存儲器體系結(jié)構(gòu)、外部程序存儲器的分級安全管理,確保指令和敏感數(shù)據(jù)在安全狀態(tài)滿足要求前提下執(zhí)行、訪問與監(jiān)管,構(gòu)建信息系統(tǒng)可信根的逐級啟動與傳遞,敏感數(shù)據(jù)的授權(quán)使用,不同安全等級程序和敏感數(shù)據(jù)之間的“防火墻”功能,保護SoC芯片資源、存儲的敏感數(shù)據(jù)和應用程序執(zhí)行的安全性。
文檔編號G06F21/00GK202102449SQ20112018858
公開日2012年1月4日 申請日期2011年6月7日 優(yōu)先權(quán)日2011年6月7日
發(fā)明者常朝穩(wěn), 張魯國, 董建強 申請人:鄭州信大捷安信息技術(shù)股份有限公司