專利名稱:安全dma控制器、soc系統(tǒng)及其數(shù)據(jù)搬運(yùn)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于基于信息安全的微電子設(shè)計技術(shù)領(lǐng)域,特別涉及一種具有信息安全特性的DMA (Direct Memory Access,直接內(nèi)存存取)控制器。
背景技術(shù):
隨著微電子技術(shù)的迅速發(fā)展,微電子產(chǎn)品深入到越來越多的應(yīng)用場合,當(dāng)然這其中就包括信息安全應(yīng)用領(lǐng)域。無論是互聯(lián)網(wǎng)的電子商務(wù),還是金融銀行業(yè)務(wù),或者是個人的手提設(shè)備等都會涉及到信息安全的問題。微電子產(chǎn)品在這里面涉及到用戶關(guān)鍵數(shù)據(jù)的安全存儲、電子簽名、身份鑒別以及數(shù)據(jù)加解密等。SOC(SyStem-0n-a-Chip)芯片通常是其所處的系統(tǒng)控制的核心,因此其本身的安全性至關(guān)重要。各種針對SOC芯片的攻擊破解技術(shù)正不斷的涌現(xiàn)。目前常見的攻擊手段有軟件攻擊,故障攻擊,物理攻擊,旁路攻擊等。面對這種情況,如何保證SOC的信息安全,就成為SOC芯片在安全信息領(lǐng)域立足的關(guān)鍵。SOC芯片在信息安全領(lǐng)域的應(yīng)用場景里面,為了保證保密數(shù)據(jù)不被惡意軟件攻擊獲取,通常保密數(shù)據(jù)是處理器無法接觸的。在這種情況下,通常使用DMA控制器來協(xié)助傳輸保密數(shù)據(jù)。當(dāng)使用DMA控制器來搬運(yùn)保密數(shù)據(jù)的時候,怎么保證DMA控制器不會泄漏保密數(shù)據(jù),就成為了安全SOC芯片及系統(tǒng)設(shè)計必須考慮的問題了。傳統(tǒng)的做法是用存儲保護(hù)單元把SOC芯片的系統(tǒng)空間劃分為若干受保護(hù)的安全區(qū)域和不受保護(hù)的普通區(qū)域。限制DMA控制器只能在有限的幾個安全區(qū)域之間進(jìn)行讀寫訪問,而這些安全區(qū)域是處理器不能訪問的。從而防止DMA控制器受到軟件或者其他方式的攻擊,把數(shù)據(jù)搬運(yùn)到處理器可以訪問的區(qū)域,導(dǎo)致泄密。但是這種實現(xiàn)方式,在DMA控制器初始化存儲保護(hù)單元的過程中仍然存在被攻擊的風(fēng)險,存在破壞存儲保護(hù)環(huán)境的建立可能;并且,該方式只能防止DMA控制器把保密數(shù)據(jù)搬運(yùn)到普通區(qū)域,但是無法知道數(shù)據(jù)是否被篡改。
發(fā)明內(nèi)容
本發(fā)明提供一種保證數(shù)據(jù)在SOC系統(tǒng)中傳輸時不被篡改的安全DMA控制器。一種安全DMA控制器包括主設(shè)備接口,用于提供安全DMA控制器對總線上的從設(shè)備發(fā)出讀寫操作的接口 ;從設(shè)備接口,用于提供處理器對安全DMA控制器進(jìn)行配置和查詢的接口 ;寄存器模塊,包含鏈表描述符寄存器、狀態(tài)寄存器;鏈表描述符寄存器指向首鏈表地址,安全DMA控制器啟動后根據(jù)鏈表描述符寄存器讀取鏈表,鏈表包括數(shù)據(jù)搬運(yùn)控制信息以及鏈表校驗數(shù)據(jù);軟件請求寄存器用于配置安全DMA控制器的請求模式以及在軟件模式下設(shè)置軟件請求;狀態(tài)寄存器用于存儲數(shù)據(jù)搬運(yùn)過程的狀態(tài);數(shù)據(jù)搬運(yùn)監(jiān)視模塊,用于執(zhí)行數(shù)據(jù)搬運(yùn)控制信息的完整性校驗,只有數(shù)據(jù)搬運(yùn)控制信息通過完整性校驗通過才能按照數(shù)據(jù)搬運(yùn)控制信息進(jìn)行數(shù)據(jù)搬運(yùn),否則數(shù)據(jù)搬運(yùn)監(jiān)視模塊置位狀態(tài)寄存器的鏈表數(shù)據(jù)完整性出錯標(biāo)志;數(shù)據(jù)傳輸引擎,用于根據(jù)寄存器模塊的鏈表描述符寄存器的內(nèi)容,控制主設(shè)備接口讀取鏈表并根據(jù)鏈表信息完成數(shù)據(jù)搬運(yùn)。
一種數(shù)據(jù)搬運(yùn)方法包括S301,設(shè)置安全DMA控制器的鏈表描述符,使能安全DMA控制器;S302,等待數(shù)據(jù)傳輸請求;S303,讀取鏈表數(shù)據(jù)搬運(yùn)控制信息和鏈表校驗數(shù)據(jù);S304,判斷鏈表數(shù)據(jù)搬運(yùn)控制信息的完整性校驗是否通過,如果通過,則執(zhí)行S305,如果沒有通過,則執(zhí)行S314 ;S305,分析鏈表數(shù)據(jù)搬運(yùn)控制信息;S307,根據(jù)鏈表數(shù)據(jù)搬運(yùn)控制信息搬運(yùn)數(shù)據(jù);S309,判斷數(shù)據(jù)搬運(yùn)是否完成,如果是,則執(zhí)行S310,如果否,則執(zhí)行S307 ;S310,安全DMA控制器的數(shù)據(jù)搬運(yùn)監(jiān)視器結(jié)束監(jiān)視并輸出結(jié)果到狀態(tài)寄存器;S312,判斷當(dāng)前鏈表是否是終結(jié)鏈表,如果是,則執(zhí)行S313 ;如果否則執(zhí)行S303 ;S313,停止數(shù)據(jù)搬運(yùn),發(fā)送應(yīng)答,設(shè)置鏈表全部完成的狀態(tài)標(biāo)志,產(chǎn)生中斷;S314,停止數(shù)據(jù)搬運(yùn),設(shè)置對應(yīng)的異常狀態(tài)標(biāo)志,產(chǎn)生中斷。一種SOC系統(tǒng)包括處理器,通過讀取和執(zhí)行指令控制著整個芯片的運(yùn)作;如上所述的安全DMA控制器,用于搬運(yùn)保密數(shù)據(jù)和安全配置信息;總線陣列,負(fù)責(zé)總線的復(fù)用與選通;存儲保護(hù)單元,根據(jù)安全配置對處理器和安全DMA控制器的訪問空間做一定的限制;片上靜態(tài)存儲器;非易失性存儲器,用于存儲安全DMA控制器的鏈表、保密數(shù)據(jù)、安全配置信息等;安全數(shù)據(jù)處理設(shè)備,用于實現(xiàn)對關(guān)鍵數(shù)據(jù)的處理,處理器不可以訪問安全數(shù)據(jù)處理設(shè)備;普通設(shè)備,處理器有權(quán)對普通設(shè)備進(jìn)行讀寫。本發(fā)明具體實施方式
對鏈表的數(shù)據(jù)搬運(yùn)控制信息進(jìn)行完整性校驗,防止安全DMA控制器取得的鏈表數(shù)據(jù)搬運(yùn)控制信息被篡改;同時確保了鏈表執(zhí)行完整性,避免通過軟件攻擊安全DMA控制器,使安全DMA控制器跳過部分和安全配置有關(guān)的鏈表,只執(zhí)行另一部分鏈表,從而提高保密數(shù)據(jù)以及安全配置信息傳輸?shù)陌踩浴?br>
圖1為本發(fā)明具體實施方式
一的安全DMA控制器的方框示意圖2為本發(fā)明具體實施方式
二的安全DMA控制器的方框示意圖3為本發(fā)明具體實施方式
一或二的安全DMA控制器的鏈表結(jié)構(gòu)示意圖4為本發(fā)明具體實施方式
三的數(shù)據(jù)搬運(yùn)方法的流程圖5為本發(fā)明具體實施方式
四的數(shù)據(jù)搬運(yùn)方法的流程圖6為本發(fā)明具體實施方式
五的數(shù)據(jù)搬運(yùn)方法的流程圖7為本發(fā)明具體實施方式
六的SOC系統(tǒng)的方框示意圖8為本發(fā)明具體實施方式
一至六的安全DMA控制器的鏈表結(jié)構(gòu)的應(yīng)用實例的示意圖。
具體實施例方式下面結(jié)合附圖和實施例對發(fā)明進(jìn)行詳細(xì)的說明。如圖1所示,本發(fā)明具體實施方式
一的一種安全DMA控制器,該安全DMA控制器用于提高數(shù)據(jù)在SOC系統(tǒng)中傳輸安全性,其包括從設(shè)備接口 201、寄存器模塊202、數(shù)據(jù)傳輸引擎203、主設(shè)備接口 204以及數(shù)據(jù)搬運(yùn)監(jiān)視模塊205。從設(shè)備接口 201,SOC系統(tǒng)的處理器則通過從設(shè)備接口 201實現(xiàn)對安全DMA控制器的寄存器模塊201進(jìn)行配置和查詢。寄存器模塊202,包含鏈表描述符寄存器、狀態(tài)寄存器;優(yōu)化的,還可包括、軟件請求寄存器;處理器不能直接定義安全DMA控制器所執(zhí)行的鏈表的內(nèi)容,只能通過設(shè)置鏈表描述符寄存器控制安全DMA控制器讀取指定的鏈表,以防止處理器通過安全DMA控制器泄露保密數(shù)據(jù);
鏈表描述符寄存器指向首鏈表地址,安全DMA控制器啟動后根據(jù)鏈表描述符寄存器讀取鏈表,所述鏈表包括數(shù)據(jù)搬運(yùn)控制信息以及鏈表校驗數(shù)據(jù)??梢栽诎踩玈OC芯片的實現(xiàn)過程中參數(shù)化鏈表描述符寄存器的復(fù)位值,使鏈表描述符寄存器的復(fù)位值指向初始化鏈表,從而利用安全DMA控制器協(xié)助完成安全初始化的配置。軟件請求寄存器用于配置安全DMA控制器的請求模式以及在軟件模式下設(shè)置軟件請求,啟動安全DMA控制器。請求模式包括軟件請求模式和硬件請求模式,默認(rèn)是硬件請求模式。亦即,安全DMA控制器除了可以支持軟件請求外,還支持硬件傳輸請求。復(fù)位后默認(rèn)采用硬件請求,可以通過配置軟件請求寄存器對硬件請求模式和軟件請求模式進(jìn)行切換。狀態(tài)寄存器用于存儲數(shù)據(jù)搬運(yùn)過程的狀態(tài),如,全部完成,總線應(yīng)答錯誤,超時異常,總線行為異常等。數(shù)據(jù)傳輸引擎203,控制主設(shè)備接口 204對總線發(fā)出讀寫操作,從而根據(jù)寄存器模塊202的鏈表描述符寄存器,讀取鏈表并根據(jù)鏈表的數(shù)據(jù)傳輸控制信息完成數(shù)據(jù)搬運(yùn)。主設(shè)備接口 204,安全DMA控制器作為總線上的主設(shè)備,通過主設(shè)備接口 204對總線上的從設(shè)備發(fā)出讀寫操作;通過對源地址的讀操作和對目的地址的寫操作完成數(shù)據(jù)的搬運(yùn)。上述從設(shè)備接口 201和主設(shè)備接口 204均為系統(tǒng)總線接口。數(shù)據(jù)搬運(yùn)監(jiān)視模塊205,用于執(zhí)行數(shù)據(jù)搬運(yùn)控制信息的完整性校驗。數(shù)據(jù)搬運(yùn)控制信息的完整性校驗是指在安全DMA控制器根據(jù)鏈表信息進(jìn)行搬運(yùn)數(shù)據(jù)之前,數(shù)據(jù)搬運(yùn)監(jiān)視模塊對數(shù)據(jù)搬運(yùn)控制信息進(jìn)行完整性校驗,保證數(shù)據(jù)搬運(yùn)控制信息的完整性。只有數(shù)據(jù)搬運(yùn)控制信息通過完整性校驗通過才能按照數(shù)據(jù)搬運(yùn)控制信息進(jìn)行數(shù)據(jù)搬運(yùn),否則數(shù)據(jù)搬運(yùn)監(jiān)視模塊置位狀態(tài)寄存器的鏈表數(shù)據(jù)完整性出錯標(biāo)志。安全DMA控制器得知鏈表數(shù)據(jù)完整性錯誤后,停止數(shù)據(jù)傳輸,進(jìn)入錯誤掛起狀態(tài),發(fā)出鏈表數(shù)據(jù)完整性錯誤指示信號和相應(yīng)的中斷信號給系統(tǒng),以便系統(tǒng)處理。本發(fā)明安全DMA控制器具體實施方式
一對鏈表的數(shù)據(jù)搬運(yùn)控制信息進(jìn)行完整性校驗,防止安全DMA控制器取得的鏈表數(shù)據(jù)搬運(yùn)控制信息被篡改;同時確保了鏈表執(zhí)行完整性,避免通過軟件攻擊安全DMA控制器,使安全DMA控制器跳過部分和安全配置有關(guān)的鏈表,只執(zhí)行另一部分鏈表。優(yōu)化的,數(shù)據(jù)搬運(yùn)監(jiān)視模塊205,還可以用于對安全DMA控制器主設(shè)備接口搬運(yùn)數(shù)據(jù)過程的總線行為監(jiān)視;
對數(shù)據(jù)搬運(yùn)過程總線行為的監(jiān)視是指安全DMA控制器的數(shù)據(jù)搬運(yùn)監(jiān)視模塊在數(shù)據(jù)搬運(yùn)控制信息通過完整性校驗之后開始監(jiān)視安全DMA控制器的主設(shè)備接口的總線行為,在當(dāng)前鏈表所對應(yīng)的數(shù)據(jù)搬運(yùn)任務(wù)完成之后結(jié)束監(jiān)視。數(shù)據(jù)搬運(yùn)監(jiān)視模塊對數(shù)據(jù)搬運(yùn)過程的總線行為監(jiān)視數(shù)據(jù)進(jìn)行運(yùn)算,在數(shù)據(jù)搬運(yùn)完成后把運(yùn)算結(jié)果與校驗期望值進(jìn)行比較,如果不一致則認(rèn)為數(shù)據(jù)搬運(yùn)過程的總線行為存在異常。數(shù)據(jù)搬運(yùn)監(jiān)視模塊根據(jù)總線行為監(jiān)視結(jié)果設(shè)置寄存器模塊202中狀態(tài)寄存器的總線行為異常標(biāo)志。如果安全DMA控制器得知數(shù)據(jù)搬運(yùn)的總線行為存在異常,則停止數(shù)據(jù)搬運(yùn),進(jìn)入錯誤掛起狀態(tài),發(fā)出總線行為監(jiān)視異常指示信號和相應(yīng)的中斷信號給系統(tǒng),以便系統(tǒng)處理。數(shù)據(jù)搬運(yùn)監(jiān)視模塊所監(jiān)視的總線行為包括但不限制于以下信號總線地址信號、總線寫控制信號、總線讀數(shù)據(jù)有效指示信號、總線寫數(shù)據(jù)信號、總線讀數(shù)據(jù)信號。對數(shù)據(jù)搬運(yùn)過程中訪問序列的總線地址、數(shù)據(jù)以及讀寫控制信息進(jìn)行算法運(yùn)算,通過比較最終運(yùn)算結(jié)果和期望結(jié)果來判斷安全DMA控制器執(zhí)行數(shù)據(jù)搬運(yùn)過程中的總線行為是否被篡改。實現(xiàn)了對數(shù)據(jù)的傳輸通道進(jìn)行有效保護(hù),避免了數(shù)據(jù)可能在傳輸過程中受到多種攻擊手段攻擊,防止安全SOC系統(tǒng)在安全配置或關(guān)鍵程序被篡改后運(yùn)行,以及防止安全DMA控制器在執(zhí)行數(shù)據(jù)搬運(yùn)時總線地址或重要數(shù)據(jù)被偽造或被攻擊,有效提高安全SOC系統(tǒng)對故障攻擊的抵抗能力,進(jìn)一步提高SOC系統(tǒng)的信息安全。優(yōu)化的,數(shù)據(jù)搬運(yùn)監(jiān)視模塊205,還可以用于安全DMA控制器主設(shè)備接口總線訪問超時監(jiān)測;此時,寄存器模塊202則需包括超時閾值寄存器,用于存儲用來判斷總線等待是否超時的閾值;
主設(shè)備接口 204的總線訪問超時檢測是指安全DMA控制器的數(shù)據(jù)搬運(yùn)監(jiān)視模塊在鏈表的數(shù)據(jù)搬運(yùn)控制信息通過完整性校驗之后開始對安全DMA控制器的主設(shè)備接口的總線訪問進(jìn)行超時檢測,在當(dāng)前鏈表所對應(yīng)的數(shù)據(jù)搬運(yùn)任務(wù)完成之后結(jié)束檢測。當(dāng)安全DMA控制器通過主設(shè)備接口向總線上的從設(shè)備發(fā)出讀或者寫的操作時,如果在超時等待閾值寄存器所設(shè)的時鐘周期個數(shù)之后仍然沒有收到有效應(yīng)答,那么數(shù)據(jù)搬運(yùn)監(jiān)視模塊就認(rèn)為發(fā)生了總線超時異常,并置位狀態(tài)寄存器的總線超時標(biāo)志。安全DMA控制器得知總線超時候,停止數(shù)據(jù)搬運(yùn),進(jìn)入出錯掛起狀態(tài),發(fā)出超時異常指示信號和相應(yīng)的中斷信號給系統(tǒng),以便系統(tǒng)處理。本發(fā)明具體實施方式
一的安全DMA控制器,在考慮到系統(tǒng)存在死機(jī)或崩潰的情形或因惡意攻擊而導(dǎo)致的假死,而造成總線等待超時,用戶可配置總線超時等待閾值,當(dāng)總線等待時鐘周期個數(shù)超過預(yù)設(shè)的超時閾值時,給出超時警告信號。SOC系統(tǒng)可以根據(jù)超時警告信息強(qiáng)制恢復(fù)總線傳輸,并進(jìn)行異常處理,這種機(jī)制有效的防止了 SOC系統(tǒng)長期處于意外超時等待狀況的非正常行為,提高了總線的工作效率,確保一些關(guān)鍵任務(wù)的及時執(zhí)行,如保證安全初始化及時完成,或安全數(shù)據(jù)及時送達(dá)目的地址。同時也可以在發(fā)現(xiàn)超時異常后復(fù)位系統(tǒng),避免安全信息的泄漏。數(shù)據(jù)搬運(yùn)監(jiān)視模塊205不影響安全DMA控制器的主設(shè)備接口 204的正??偩€訪問,同時也不會影響其他主設(shè)備的總線訪問。如圖2所示,本發(fā)明具體實施方式
二的一種安全DMA控制器,具體實施方式
二相對于具體實施方式
一而言,主要的區(qū)別在于,具體實施方式
二的數(shù)據(jù)搬運(yùn)監(jiān)視模塊205A具體包括硬件算法引擎205A1以及總線等待超時計數(shù)器205A2。硬件算法引擎205A1,用于對數(shù)據(jù)搬運(yùn)過程的總線行為監(jiān)視數(shù)據(jù)進(jìn)行運(yùn)算,在數(shù)據(jù)搬運(yùn)完成后把運(yùn)算結(jié)果與校驗期望值進(jìn)行比較,如果不一致則認(rèn)為數(shù)據(jù)搬運(yùn)過程的總線行為存在異常;
更進(jìn)一步的,硬件算法引擎205A1還具體包括第一硬件算法引擎,用于數(shù)據(jù)搬運(yùn)控制信息的完整性校驗,以數(shù)據(jù)搬運(yùn)控制信息作為輸入數(shù)據(jù)進(jìn)行運(yùn)算;第二硬件算法引擎,用于數(shù)據(jù)搬運(yùn)的總線行為監(jiān)視,以有效的總線行為監(jiān)視數(shù)據(jù)作為數(shù)據(jù)輸入進(jìn)行運(yùn)算。總線等待超時計數(shù)器205A2,用于對系統(tǒng)時鐘周期進(jìn)行計數(shù),當(dāng)計數(shù)值大于閾值后,發(fā)出超時信號給數(shù)據(jù)搬運(yùn)監(jiān)視模塊。如圖3,本發(fā)明具體實施方式
一或二的安全DMA控制器安全DMA控制器的鏈表結(jié)構(gòu)示意圖,安全DMA控制器的鏈表按如下所述結(jié)構(gòu)儲存
安全DMA控制器所執(zhí)行的鏈表包含5項內(nèi)容。前面4項內(nèi)容屬于數(shù)據(jù)搬運(yùn)控制信息,第五個項內(nèi)容屬于鏈表校驗數(shù)據(jù)。數(shù)據(jù)搬運(yùn)控制信息包括數(shù)據(jù)長度、數(shù)據(jù)源地址、數(shù)據(jù)目的地址、下一鏈表描述符。處理器不可以直接定義安全DMA控制器所執(zhí)行的鏈表的內(nèi)容,則具體是指處理器不能定義數(shù)據(jù)長度、數(shù)據(jù)源地址和數(shù)據(jù)的目的地址,下一鏈表描述符,鏈表校驗數(shù)據(jù)。下一鏈表描述符包括兩個信息第一個是下一鏈表的地址,第二個終結(jié)鏈表指示。終結(jié)鏈表指示則表示當(dāng)前鏈表是最后一個鏈表,安全DMA控制器在完成當(dāng)前鏈表的數(shù)據(jù)傳輸后結(jié)束鏈表的讀取與數(shù)據(jù)搬運(yùn),進(jìn)入空閑狀態(tài),等待下一個的數(shù)據(jù)傳輸請求。鏈表校驗數(shù)據(jù)包括一部分是安全DMA控制器在執(zhí)行數(shù)據(jù)搬運(yùn)控制信息的完整性校驗期望值;另一部分是安全DMA控制器在執(zhí)行數(shù)據(jù)搬運(yùn)過程的總線行為監(jiān)視數(shù)據(jù)的校驗期望值。數(shù)據(jù)搬運(yùn)控制信息的四項數(shù)據(jù),每一項數(shù)據(jù)的長度為一個字,即鏈表的數(shù)據(jù)搬運(yùn)控制信息總長度為4個字。第五項是鏈表校驗數(shù)據(jù),其數(shù)據(jù)長度根據(jù)數(shù)據(jù)搬運(yùn)監(jiān)視模塊內(nèi)的硬件算法引擎所采用的具體算法有關(guān),不做具體的規(guī)定。除了首鏈表外,每個鏈表的鏈表校驗數(shù)據(jù)包括數(shù)據(jù)搬運(yùn)控制信息的完整性校驗期望值和安全DMA控制器數(shù)據(jù)搬運(yùn)總線行為監(jiān)視數(shù)據(jù)的校驗期望值,都是以上一個鏈表的鏈表校驗數(shù)據(jù)為初值進(jìn)行計算所得的。根據(jù)上述校驗數(shù)據(jù)計算規(guī)則,鏈表描述符寄存器的數(shù)值必須指向數(shù)據(jù)搬運(yùn)的首鏈表,否則無法通過鏈表的數(shù)據(jù)搬運(yùn)控制信息完整性校驗和數(shù)據(jù)搬運(yùn)總線行為監(jiān)視數(shù)據(jù)的校驗。由此,可以多個鏈表連續(xù)執(zhí)行來完成一次數(shù)據(jù)傳輸請求所要求的數(shù)據(jù)搬運(yùn)。如圖4所示,本發(fā)明具體實施方式
三的數(shù)據(jù)搬運(yùn)方法的流程圖,該方法用于安全DMA控制器,其包括
步驟301,設(shè)置安全DMA控制器的鏈表描述符,使能安全DMA控制器;具體的,處理器通過安全DMA控制器的從設(shè)備接口 201設(shè)置安全DMA控制器的鏈表描述符寄存器選擇鏈表;步驟302,等待數(shù)據(jù)傳輸請求;具體的,安全DMA控制器等待數(shù)據(jù)傳輸請求,安全DMA控制器102默認(rèn)處于硬件請求模式,根據(jù)硬件請求信號的數(shù)據(jù)傳輸請求啟動;安全DMA控制器,也可以配置成為軟件請求模式,由軟件提供數(shù)據(jù)傳輸請求啟動;
步驟303,讀取鏈表數(shù)據(jù)搬運(yùn)控制信息和鏈表校驗數(shù)據(jù);具體的,安全DMA控制器讀取鏈表描述符寄存器指向的鏈表,包括鏈表的數(shù)據(jù)傳輸控制信息和鏈表校驗數(shù)據(jù);
步驟304,判斷鏈表數(shù)據(jù)搬運(yùn)控制信息的完整性校驗是否通過,如果通過,則執(zhí)行步驟305,如果沒有通過,則執(zhí)行步驟314 ;具體的,數(shù)據(jù)搬運(yùn)監(jiān)視模塊205對鏈表的數(shù)據(jù)搬運(yùn)控制信息進(jìn)行完整性校驗,安全DMA控制器把鏈表的數(shù)據(jù)搬運(yùn)控制信息和鏈表校驗數(shù)據(jù)讀取到安全DMA控制器內(nèi)部之后,并不是立即分析鏈表的數(shù)據(jù)搬運(yùn)控制信息,而是對鏈表的數(shù)據(jù)搬運(yùn)控制信息進(jìn)行完整性校驗,安全DMA控制器根據(jù)數(shù)據(jù)搬運(yùn)監(jiān)視模塊對鏈表的數(shù)據(jù)搬運(yùn)控制信息完整性校驗結(jié)果來決定是否對鏈表的數(shù)據(jù)搬運(yùn)控制信息進(jìn)行分析以得到鏈表的數(shù)據(jù)傳輸要求;
步驟305,分析鏈表數(shù)據(jù)搬運(yùn)控制信息;具體的,安全DMA控制器對鏈表數(shù)據(jù)進(jìn)行分析,記錄數(shù)據(jù)傳輸?shù)拈L度,數(shù)據(jù)的源地址,數(shù)據(jù)的目的地址,下一個鏈表描述符,下一個鏈表描述符包括當(dāng)前鏈表執(zhí)行完畢后是否讀取下個鏈表以及下一個鏈表的存儲地址;
步驟307,根據(jù)鏈表數(shù)據(jù)搬運(yùn)控制信息搬運(yùn)數(shù)據(jù);具體的,安全DMA控制器根據(jù)鏈表的數(shù)據(jù)傳輸要求,啟動安全DMA控制器的數(shù)據(jù)傳輸引擎203,在數(shù)據(jù)傳輸引擎203的控制下通過安全DMA控制器的主設(shè)備接口 204對總線發(fā)起讀寫時序,從源地址處讀取數(shù)據(jù),然后把數(shù)據(jù)寫到目的地址空間;
步驟309,判斷數(shù)據(jù)搬運(yùn)是否完成,如果是,則執(zhí)行步驟312,如果否,則執(zhí)行步驟307 ;具體的,安全DMA控制器進(jìn)行數(shù)據(jù)搬運(yùn)完成標(biāo)志檢查,如果還有待搬運(yùn)的數(shù)據(jù),則進(jìn)入流程307,繼續(xù)完成當(dāng)前鏈表信息所要求的數(shù)據(jù)搬運(yùn);如果數(shù)據(jù)搬運(yùn)完成,則進(jìn)入步驟312 ;
步驟312,判斷當(dāng)前鏈表是否是終結(jié)鏈表,如果是,則執(zhí)行步驟313 ;如果否則執(zhí)行步驟303;具體的,根據(jù)當(dāng)前鏈表數(shù)據(jù)搬運(yùn)控制信息中的下一鏈表描述符的內(nèi)容,查看當(dāng)前鏈表是否是終結(jié)鏈表,如果當(dāng)前鏈表不是終結(jié)鏈表,則進(jìn)入流程303讀取下一個鏈表,繼續(xù)數(shù)據(jù)傳輸,否則進(jìn)入步驟313;
步驟313,停止數(shù)據(jù)搬運(yùn),發(fā)送應(yīng)答,設(shè)置鏈表全部完成的狀態(tài)標(biāo)志,產(chǎn)生中斷;具體的,停止數(shù)據(jù)傳輸,發(fā)出數(shù)據(jù)傳輸請求應(yīng)答信號,置位全部鏈表完成標(biāo)志,輸出中斷信號給處理器,安全DMA控制器退出數(shù)據(jù)傳輸,數(shù)據(jù)傳輸引擎203進(jìn)入空閑狀態(tài);
步驟314,停止數(shù)據(jù)搬運(yùn),設(shè)置對應(yīng)的異常狀態(tài)標(biāo)志,產(chǎn)生中斷,具體的,停止數(shù)據(jù)傳輸,置位對應(yīng)的錯誤或異常標(biāo)志,輸出錯誤或異常指示信號給系統(tǒng)的相關(guān)設(shè)備,輸出中斷信號給處理器,安全DMA控制器退出數(shù)據(jù)傳輸,數(shù)據(jù)傳輸引擎203進(jìn)入出錯狀態(tài),等待錯誤狀態(tài)解除,方可進(jìn)行數(shù)據(jù)傳輸。上述錯誤或異常狀態(tài)標(biāo)志包括總線應(yīng)答錯誤,超時異常,總線行為異常。在流程313或314之后,處理器通過查詢安全DMA控制器的狀態(tài)寄存器判斷安全DMA控制器的狀態(tài)。從而得知數(shù)據(jù)搬運(yùn)是完成還是出錯停止,或是數(shù)據(jù)搬運(yùn)完成,但是數(shù)據(jù)搬運(yùn)的總線行為存在異常。本發(fā)明具體實施方式
三的數(shù)據(jù)搬運(yùn)方法,對鏈表的數(shù)據(jù)搬運(yùn)控制信息進(jìn)行完整性校驗,防止安全DMA控制器取得的鏈表數(shù)據(jù)搬運(yùn)控制信息被篡改;同時確保了鏈表執(zhí)行完整性,避免通過軟件攻擊安全DMA控制器,使安全DMA控制器跳過部分和安全配置有關(guān)的鏈表,只執(zhí)行另一部分鏈表。如圖5所示,本發(fā)明具體實施方式
四的數(shù)據(jù)搬運(yùn)方法的流程圖,具體實施方式
四與具體實施方式
三相比,其在步驟305與步驟307之間還包括
步驟306,安全DMA控制器開始監(jiān)視DMA數(shù)據(jù)搬運(yùn);具體的,安全DMA控制器的數(shù)據(jù)搬運(yùn)監(jiān)視模塊205開始監(jiān)視安全DMA控制器的主設(shè)備接口 204的總線行為,實行對數(shù)據(jù)搬運(yùn)過程的實時監(jiān)視;
且,在步驟307與步驟309之間還包括
步驟308,判斷總線是否出現(xiàn)錯誤應(yīng)答或超時,如果是,則執(zhí)行步驟314,如果否則,執(zhí)行步驟309 ;具體的,安全DMA控制器在執(zhí)行數(shù)據(jù)搬運(yùn)過程中對總線返回應(yīng)答和總線超時的監(jiān)視,如果遇到總線錯誤應(yīng)答或總線超時,則停止數(shù)據(jù)搬運(yùn),直接進(jìn)入流程314 ; 在步驟309與步驟312之間還包括
步驟310,DMA數(shù)據(jù)搬運(yùn)監(jiān)視器結(jié)束監(jiān)視并輸出結(jié)果到狀態(tài)寄存器;具體的,在檢測到數(shù)據(jù)搬運(yùn)完成標(biāo)志后,數(shù)據(jù)搬運(yùn)監(jiān)視模塊205結(jié)束監(jiān)視,并把監(jiān)視數(shù)據(jù)的校驗結(jié)果和期望值進(jìn)行比較,得出數(shù)據(jù)搬運(yùn)總線行為的監(jiān)視結(jié)果,并根據(jù)監(jiān)視結(jié)果設(shè)置安全DMA控制器的狀態(tài)寄存器的數(shù)據(jù)搬運(yùn)總線行為異常標(biāo)志位。則步驟309具體為,判斷數(shù)據(jù)搬運(yùn)是否完成,如果是,則執(zhí)行步驟310,如果否,則執(zhí)行步驟307。在考慮到系統(tǒng)存在死機(jī)或崩潰的情形或因惡意攻擊而導(dǎo)致的假死,而造成總線等待超時,用戶可配置總線超時等待閾值,當(dāng)總線等待時鐘周期個數(shù)超過預(yù)設(shè)的超時閾值時,給出超時警告信號。SOC系統(tǒng)可以根據(jù)超時警告信息強(qiáng)制恢復(fù)總線傳輸,并進(jìn)行異常處理。這種機(jī)制有效的防止了 SOC系統(tǒng)長期處于意外超時等待狀況的非正常行為,提高了總線的工作效率,確保一些關(guān)鍵任務(wù)的及時執(zhí)行,如保證安全初始化及時完成,或安全數(shù)據(jù)及時送達(dá)目的地址。同時也可以在發(fā)現(xiàn)超時異常后復(fù)位系統(tǒng),避免安全信息的泄漏。如圖6所示,本發(fā)明具體實施方式
五的數(shù)據(jù)搬運(yùn)方法的流程圖,具體實施方式
五與具體實施方式
四相比,其在步驟310與步驟312之間還包括
步驟311,判斷數(shù)據(jù)搬運(yùn)總線行為監(jiān)視結(jié)果是否符合預(yù)期,如果是,則執(zhí)行步驟312,如果否則執(zhí)行步驟314 ;具體的,安全DMA控制器檢測數(shù)據(jù)搬運(yùn)監(jiān)視結(jié)果。通過數(shù)據(jù)搬運(yùn)總線行為異常標(biāo)志安全DMA控制器102得知本次數(shù)據(jù)搬運(yùn)的總線行為是否存在異常,如果存在異常則進(jìn)行入流程314,否則執(zhí)行步驟312。對數(shù)據(jù)搬運(yùn)過程中訪問序列的總線地址、數(shù)據(jù)以及讀寫控制信息進(jìn)行算法運(yùn)算,通過比較最終運(yùn)算結(jié)果和期望結(jié)果來判斷安全DMA控制器執(zhí)行數(shù)據(jù)搬運(yùn)過程中的總線行為是否被篡改。實現(xiàn)了對數(shù)據(jù)的傳輸通道進(jìn)行有效保護(hù),避免了數(shù)據(jù)可能在傳輸過程中受到多種攻擊手段攻擊,防止安全SOC系統(tǒng)在安全配置或關(guān)鍵程序被篡改后運(yùn)行,以及防止安全DMA控制器在執(zhí)行數(shù)據(jù)搬運(yùn)時總線地址或重要數(shù)據(jù)被偽造或被攻擊,有效提高安全SOC系統(tǒng)對故障攻擊的抵抗能力,進(jìn)一步提高SOC系統(tǒng)的信息安全。實際上,具體實施方式
五的步驟311也可以是在具體實施方式
三的基礎(chǔ)上增加的。由于各個步驟在前面已經(jīng)做了詳細(xì)描述,此處不再一一贅述。本發(fā)明具體實施方式
,由于無需針對安全DMA控制器劃分若干受保護(hù)的安全區(qū)域和不受保護(hù)的普通區(qū)域,因此,能有效減少使用存儲保護(hù)單元的安全SOC系統(tǒng)中對存儲保護(hù)單的使用量,從而可以優(yōu)化總線性能和芯片面積,提高系統(tǒng)的信息安全性。本發(fā)明源地址、目的地址、數(shù)據(jù)長度等關(guān)鍵鏈表信息是本發(fā)明直接從安全鏈表存儲地址讀入的,處理器是無法直接控制鏈表信息,降低了處理器通過安全DMA控制器間接泄漏保密數(shù)據(jù)的風(fēng)險。本發(fā)明特別適應(yīng)于數(shù)據(jù)敏感、易受攻擊的多應(yīng)用場景的安全SOC系統(tǒng),且易于集成,不對整個芯片系統(tǒng)的面積和時序造成負(fù)擔(dān)。如圖7所示,本發(fā)明具體實施方式
六的SOC系統(tǒng)的方框示意圖,該安全SOC系統(tǒng)包含
處理器101,通過讀取和執(zhí)行指令控制著整個芯片的運(yùn)作;
安全DMA控制器102,用于搬運(yùn)保密數(shù)據(jù)和安全配置信息;所述安全DMA控制器可以為上述具體實施方式
一或二中任一種,此處不再一一贅述; 總線陣列103,負(fù)責(zé)總線的復(fù)用與選通;
存儲保護(hù)單元104,根據(jù)安全配置對處理器和安全DMA控制器的訪問空間做一定的限
制;
片上靜態(tài)存儲器105 ;
非易失性存儲器106,用于存儲安全DMA控制器的鏈表、保密數(shù)據(jù)、安全配置信息等;安全數(shù)據(jù)處理設(shè)備107,為安全設(shè)備,實現(xiàn)對關(guān)鍵數(shù)據(jù)的處理,處理器不可以訪問安全數(shù)據(jù)處理設(shè)備107 ;
普通設(shè)備108,處理器101有權(quán)對普通設(shè)備108進(jìn)行讀寫。工作中,在使用安全數(shù)據(jù)處理設(shè)備107對保密數(shù)據(jù)進(jìn)行處理之前,需要對安全數(shù)據(jù)處理設(shè)備107進(jìn)行配置,而基于安全考慮,上述配置行為是不可以由處理器101來完成的。因而,在非易失性存儲器106里面存儲安全配置信息和鏈表數(shù)據(jù)。通過安全DMA控制器102讀取鏈表,根據(jù)鏈表信息實現(xiàn)對安全數(shù)據(jù)處理設(shè)備的配置。經(jīng)過安全初始化后,非易失性存儲器106對所有主設(shè)備是只讀的,在片內(nèi)非易失性存儲器106里面存儲安全配置信息和鏈表數(shù)據(jù)。鏈表數(shù)據(jù)包括鏈表的數(shù)據(jù)搬運(yùn)控制信息和鏈表校驗數(shù)據(jù)。如圖8所示,本應(yīng)用實例以CRC算法作為硬件算法引擎加以說說明,安全DMA控制器102的鏈表由5個字構(gòu)成,前面4個字是鏈表的數(shù)據(jù)搬運(yùn)控制信息,包括數(shù)據(jù)長度、數(shù)據(jù)源地址、數(shù)據(jù)目的地址、下一個鏈表描述符,第五個字是鏈表校驗數(shù)據(jù)。鏈表校驗數(shù)據(jù)由兩部分CRC值組成,低半字是鏈表數(shù)據(jù)搬運(yùn)控制信息CRC校驗的期望值,高半字是安全DMA控制器在執(zhí)行數(shù)據(jù)搬運(yùn)的總線行為監(jiān)視數(shù)據(jù)CRC校驗的期望值,用于監(jiān)視安全DMA控制器執(zhí)行數(shù)據(jù)搬運(yùn)的總線行為是否為鏈表定義的預(yù)期行為。處理器101配置安全DMA控制器102的鏈表描述符寄存器,鏈表描述符寄存器指向用于配置安全數(shù)據(jù)處理設(shè)備的鏈表。當(dāng)安全DMA控制器102的接收到數(shù)據(jù)傳輸請求后,讀取鏈表數(shù)據(jù),接下來數(shù)據(jù)搬運(yùn)監(jiān)視模塊205對鏈表數(shù)據(jù)進(jìn)行完整性校驗。當(dāng)鏈表的數(shù)據(jù)搬運(yùn)控制信息通過完整性校驗后,數(shù)據(jù)搬運(yùn)監(jiān)視模塊205開始監(jiān)視主設(shè)備接口 204的總線行為,數(shù)據(jù)傳輸引擎203開始控制主設(shè)備接口 204進(jìn)行數(shù)據(jù)搬運(yùn)。該數(shù)據(jù)搬運(yùn)實現(xiàn)了 把讀取非易失性存儲器106的安全配置信息搬運(yùn)到安全數(shù)據(jù)處理模塊107的配置寄存器,即對安全數(shù)據(jù)處理模塊實施配置。數(shù)據(jù)搬運(yùn)完成后,檢查數(shù)據(jù)搬運(yùn)監(jiān)視模塊205的監(jiān)視結(jié)果,確定配置過程中的總線行為是否符合預(yù)期。如果數(shù)據(jù)搬運(yùn)總線行為監(jiān)視狀態(tài)指示總線行為存在異常,那么根據(jù)安全SOC系統(tǒng)的安全級別,啟動安全保護(hù)機(jī)制,禁止安全數(shù)據(jù)處理設(shè)備107啟動工作或者復(fù)位整個SOC系統(tǒng)。從而保證了安全數(shù)據(jù)處理設(shè)備在運(yùn)行之前確實經(jīng)過了配置,且配置信息未受惡意攻擊。應(yīng)該指出,根據(jù)不同的數(shù)據(jù)傳輸系統(tǒng)可以對上述安全DMA控制器及其數(shù)據(jù)搬運(yùn)方法的具體實施方式
的實現(xiàn)機(jī)制進(jìn)行適當(dāng)調(diào)整,而不是僅僅局限于以某一 SOC總線系統(tǒng)為例的形式,只要為了系統(tǒng)設(shè)計需要,而對SOC所采用的總線進(jìn)行調(diào)整或變更所設(shè)計的安全DMA控制器,都在采用本發(fā)明權(quán)利要求范圍之內(nèi)。上述具體實施方式
說明但并不限制本發(fā)明,本領(lǐng)域的技術(shù)人員能在權(quán)利要求的范圍內(nèi)設(shè)計出多個可代替實例。所屬領(lǐng)域的技術(shù)人員應(yīng)該意識到,對在沒有違反如所附權(quán)利要求書所定義的本發(fā)明的范圍之內(nèi),可對具體實現(xiàn)方案做出適當(dāng)?shù)恼{(diào)整、修改等。因此,凡依據(jù)本發(fā)明的精神和原則,所做的任意修改和變化,均在所附權(quán)利要求書所定義的本發(fā)明的范圍之內(nèi)。
權(quán)利要求
1.一種安全DMA控制器,其特征在于,所述安全DMA控制器用于提高數(shù)據(jù)在SOC系統(tǒng)中的傳輸安全性,所述安全DMA控制器包括 主設(shè)備接口,用于提供所述安全DMA控制器對總線上的從設(shè)備發(fā)出讀寫操作的接口 ; 從設(shè)備接口,用于提供處理器對所述安全DMA控制器進(jìn)行配置和查詢的接口 ; 寄存器模塊,包含鏈表描述符寄存器、狀態(tài)寄存器;所述鏈表描述符寄存器指向首鏈表地址,所述安全DMA控制器啟動后根據(jù)所述鏈表描述符寄存器讀取鏈表,所述鏈表包括數(shù)據(jù)搬運(yùn)控制信息以及鏈表校驗數(shù)據(jù);軟件請求寄存器用于配置所述安全DMA控制器的請求模式以及在軟件模式下設(shè)置軟件請求;所述狀態(tài)寄存器用于存儲數(shù)據(jù)搬運(yùn)過程的狀態(tài); 數(shù)據(jù)搬運(yùn)監(jiān)視模塊,用于執(zhí)行所述數(shù)據(jù)搬運(yùn)控制信息的完整性校驗,只有所述數(shù)據(jù)搬運(yùn)控制信息通過完整性校驗通過才能按照所述數(shù)據(jù)搬運(yùn)控制信息進(jìn)行數(shù)據(jù)搬運(yùn),否則所述數(shù)據(jù)搬運(yùn)監(jiān)視模塊置位所述狀態(tài)寄存器的鏈表數(shù)據(jù)完整性出錯標(biāo)志; 數(shù)據(jù)傳輸引擎,用于根據(jù)所述寄存器模塊的所述鏈表描述符寄存器的內(nèi)容,控制所述主設(shè)備接口讀取鏈表并根據(jù)鏈表信息完成數(shù)據(jù)搬運(yùn)。
2.如權(quán)利要求1所述的安全DMA控制器,其特征在于, 所述寄存器模塊,還包括超時閾值寄存器用于存儲用于判斷總線等待是否超時的閾值; 所述數(shù)據(jù)搬運(yùn)監(jiān)視模塊,還可以用于在鏈表的所述數(shù)據(jù)搬運(yùn)控制信息通過完整性校驗之后,開始對所述安全DMA控制器的主設(shè)備接口的總線訪問進(jìn)行超時檢測,當(dāng)所述安全DMA控制器通過所述主設(shè)備接口向總線上的從設(shè)備發(fā)出讀或者寫的操作時,當(dāng)超過所述超時等待閾值寄存器所設(shè)的閾值仍然沒有收到有效應(yīng)答時,所述數(shù)據(jù)搬運(yùn)監(jiān)視模塊置位所述狀態(tài)寄存器的總線超時標(biāo)志,停止數(shù)據(jù)搬運(yùn)。
3.如權(quán)利要求1所述的安全DMA控制器,其特征在于, 所述數(shù)據(jù)搬運(yùn)監(jiān)視模塊,還可以用于在所述數(shù)據(jù)搬運(yùn)控制信息通過完整性校驗之后,對數(shù)據(jù)搬運(yùn)過程的總線行為監(jiān)視數(shù)據(jù)進(jìn)行運(yùn)算,在數(shù)據(jù)搬運(yùn)完成后把運(yùn)算結(jié)果與校驗期望值進(jìn)行比較,當(dāng)不一致時,設(shè)置所述寄存器模塊中所述狀態(tài)寄存器的總線行為異常標(biāo)志,停止數(shù)據(jù)搬運(yùn)。
4.如權(quán)利要求1所述的安全DMA控制器,其特征在于,所述數(shù)據(jù)搬運(yùn)監(jiān)視模塊包括硬件算法引擎以及總線等待超時計數(shù)器; 所述硬件算法引擎,用于對數(shù)據(jù)搬運(yùn)過程的總線行為監(jiān)視數(shù)據(jù)進(jìn)行運(yùn)算,在數(shù)據(jù)搬運(yùn)完成后把運(yùn)算結(jié)果與校驗期望值進(jìn)行比較,當(dāng)不一致時,則認(rèn)為數(shù)據(jù)搬運(yùn)過程的總線行為存在異常; 所述總線等待超時計數(shù)器,用于對系統(tǒng)時鐘周期進(jìn)行計數(shù),當(dāng)計數(shù)值大于閾值后,發(fā)出超時信號給所述數(shù)據(jù)搬運(yùn)監(jiān)視模塊。
5.如權(quán)利要求4所述的安全DMA控制器,其特征在于, 所述硬件算法引擎包括第一硬件算法引擎,用于所述數(shù)據(jù)搬運(yùn)控制信息的完整性校驗,以所述數(shù)據(jù)搬運(yùn)控制信息作為輸入數(shù)據(jù)進(jìn)行運(yùn)算;第二硬件算法引擎,用于數(shù)據(jù)搬運(yùn)的總線行為監(jiān)視,以有效的總線行為監(jiān)視數(shù)據(jù)作為數(shù)據(jù)輸入進(jìn)行運(yùn)算。
6.如權(quán)利要求1所述的安全DMA控制器,其特征在于, 所述安全DMA控制器所執(zhí)行的鏈表的所述數(shù)據(jù)搬運(yùn)控制信息包括數(shù)據(jù)長度、數(shù)據(jù)源地址、數(shù)據(jù)目的地址、下一鏈表描述符。
7.如權(quán)利要求1至6所述的安全DMA控制器,其特征在于, 每個鏈表的所述鏈表校驗數(shù)據(jù)包括所述安全DMA控制器在執(zhí)行所述數(shù)據(jù)搬運(yùn)控制信息的完整性校驗期望值,所述安全DMA控制器在執(zhí)行數(shù)據(jù)搬運(yùn)過程的總線行為監(jiān)視數(shù)據(jù)的校驗期望值;且除首鏈表外的所述完整性校驗期望值和所述總線行為監(jiān)視數(shù)據(jù)的校驗期望值都是以上一個鏈表的所述鏈表校驗數(shù)據(jù)為初值進(jìn)行計算所得的。
8.一種數(shù)據(jù)搬運(yùn)方法,用于安全DMA控制器,該方法包括 S301,設(shè)置安全DMA控制器的鏈表描述符,使能所述安全DMA控制器; S302,等待數(shù)據(jù)傳輸請求; S303,讀取鏈表數(shù)據(jù)搬運(yùn)控制信息和鏈表校驗數(shù)據(jù); S304,判斷所述鏈表數(shù)據(jù)搬運(yùn)控制信息的完整性校驗是否通過,如果通過,則執(zhí)行S305,如果沒有通過,則執(zhí)行S314 ; S305,分析所述鏈表數(shù)據(jù)搬運(yùn)控制信息; S307,根據(jù)所述鏈表數(shù)據(jù)搬運(yùn)控制信息搬運(yùn)數(shù)據(jù); S309,判斷數(shù)據(jù)搬運(yùn)是否完成,如果是,則執(zhí)行S310,如果否,則執(zhí)行S307 ; S310,所述安全DMA控制器的數(shù)據(jù)搬運(yùn)監(jiān)視器結(jié)束監(jiān)視并輸出結(jié)果到狀態(tài)寄存器;S311,判斷數(shù)據(jù)搬運(yùn)總線行為監(jiān)視結(jié)果是否符合預(yù)期,如果是,則執(zhí)行S312,如果否則執(zhí)行S314 ; S312,判斷當(dāng)前鏈表是否是終結(jié)鏈表,如果是,則執(zhí)行S313 ;如果否則執(zhí)行S303 ; S313,停止數(shù)據(jù)搬運(yùn),發(fā)送應(yīng)答,設(shè)置鏈表全部完成的狀態(tài)標(biāo)志,產(chǎn)生中斷; S314,停止數(shù)據(jù)搬運(yùn),設(shè)置對應(yīng)的異常狀態(tài)標(biāo)志,產(chǎn)生中斷。
9.如權(quán)利要求8所述的數(shù)據(jù)搬運(yùn)方法,其特征在于,該方法在在所述S305與所述S307之間還包括 S306,安全DMA控制器開始監(jiān)視DMA數(shù)據(jù)搬運(yùn); 且,在所述S307與所述S309之間還包括 S308,判斷總線是否出現(xiàn)錯誤應(yīng)答或超時,如果是,則執(zhí)行S314,如果否則,執(zhí)行S309。
10.一種SOC系統(tǒng),其特征在于所述SOC系統(tǒng)包括 處理器,通過讀取和執(zhí)行指令控制著整個芯片的運(yùn)作; 如權(quán)利要求1至7中任意一項所述的安全DMA控制器,用于搬運(yùn)保密數(shù)據(jù)和安全配置信息; 總線陣列,負(fù)責(zé)總線的復(fù)用與選通; 存儲保護(hù)單元,根據(jù)安全配置對所述處理器和所述安全DMA控制器的訪問空間做一定的限制; 片上靜態(tài)存儲器; 非易失性存儲器,用于存儲所述安全DMA控制器的鏈表、保密數(shù)據(jù)、安全配置信息等;安全數(shù)據(jù)處理設(shè)備,用于實現(xiàn)對關(guān)鍵數(shù)據(jù)的處理,所述處理器不可以訪問所述安全數(shù)據(jù)處理設(shè)備; 普通設(shè)備,所述處理器有權(quán)對所述普通設(shè)備進(jìn)行讀寫。
全文摘要
一種安全DMA控制器、SOC系統(tǒng)及其數(shù)據(jù)搬運(yùn)方法。該安全DMA控制器包括主設(shè)備接口,安全DMA控制器通過其對總線上的從設(shè)備發(fā)出讀寫操作;從設(shè)備接口,處理器通過其對安全DMA控制器進(jìn)行配置和查詢;寄存器模塊,包含鏈表描述符寄存器、狀態(tài)寄存器;數(shù)據(jù)搬運(yùn)監(jiān)視模塊,用于執(zhí)行數(shù)據(jù)搬運(yùn)控制信息的完整性校驗;數(shù)據(jù)傳輸引擎,用于根據(jù)寄存器模塊的鏈表描述符寄存器的內(nèi)容,控制主設(shè)備接口讀取鏈表并根據(jù)鏈表信息完成數(shù)據(jù)搬運(yùn)。由于對鏈表的數(shù)據(jù)搬運(yùn)控制信息進(jìn)行完整性校驗,從而防止鏈表數(shù)據(jù)搬運(yùn)控制信息被篡改,提高數(shù)據(jù)傳輸安全性。
文檔編號G06F13/28GK103034599SQ20121053433
公開日2013年4月10日 申請日期2012年12月12日 優(yōu)先權(quán)日2012年12月12日
發(fā)明者陶玉茂, 林青盛 申請人:深圳國微技術(shù)有限公司