本發(fā)明涉及嵌入式技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)傳輸方法及系統(tǒng)。
背景技術(shù):
為了在嵌入式產(chǎn)品的軟硬件及物理特性設(shè)計(jì)中加入安全性控制,保證產(chǎn)品不受外部惡意攻擊,精簡(jiǎn)指令芯片(ARM,Advanced Reduced Instruction Set Computing Machines)提供了不同的工作模式,包括:普通模式(normal world)和安全模式(secure world)。在normal world下,可以運(yùn)行正常使用的操作系統(tǒng)(例如:安卓系統(tǒng)),在secure world下,可以維護(hù)數(shù)據(jù)安全相關(guān)的系統(tǒng)程序。Trustonic公司針對(duì)ARM的secure world提供了TEE(Trusted Execution Environments,可信執(zhí)行環(huán)境)解決方案:t-base解決方案。
t-base可以認(rèn)為是運(yùn)行在ARM secure world下的簡(jiǎn)易操作系統(tǒng),該系統(tǒng)可以分為兩層,可信應(yīng)用層(TA,Trusted Application)和安全驅(qū)動(dòng)層(secure driver)。其中,secure driver層位于底層直接面向硬件操作,由于該層運(yùn)行于secure world,其操作的硬件資源對(duì)于normal world來(lái)說(shuō)是不可操作的,這是ARM本身提供的硬件保護(hù)機(jī)制,TA層為上層應(yīng)用層,主要基于secure driver提供的接口完成軟件邏輯操作,這與Linux的工作機(jī)制相似:底層負(fù)載機(jī)制,上層負(fù)責(zé)策略。
下面以指紋芯片為例,對(duì)TA層和secure driver層的工作方式進(jìn)行說(shuō)明。指紋芯片可以認(rèn)為是屬于涉及到數(shù)據(jù)安全的硬件資源,可以位于secure world下,由secure driver層進(jìn)行直接操作,并為T(mén)A層提供相關(guān)讀寫(xiě)接口,由TA層實(shí)現(xiàn)指紋芯片算法邏輯相關(guān)操作,例如:TA層通過(guò)secure driver層獲取指紋數(shù)據(jù),進(jìn)行算法處理,完成指紋匹配等,之后由TA層將指紋是否匹配的結(jié)果傳送給normal world。
由上述流程可知,在對(duì)secure world下的硬件資源進(jìn)行操作時(shí),TA層和secure driver層需要進(jìn)行頻繁交互?,F(xiàn)有技術(shù)中,TA層和secure driver層進(jìn)行交互的做法包括:TA層在自己的地址空間具有一塊數(shù)據(jù)段,該數(shù)據(jù)段主要用于存儲(chǔ)TA層將要發(fā)送的命令或?qū)?yīng)的參數(shù)等,在需要跟secure driver層交互時(shí),TA層會(huì)發(fā)送一個(gè)進(jìn)程間通信(IPC,Inter-Process Communication)請(qǐng)求給secure driver層,secure driver層接收到該IPC請(qǐng)求之后,使用t-base提供的接口將TA層地址空間中的存儲(chǔ)了命令或參數(shù)的數(shù)據(jù)段整體搬移到secure driver層的地址空間內(nèi),并將該存儲(chǔ)的命令或參數(shù)解析,完成相應(yīng)的操作。
對(duì)于secure world下的有些硬件,使用時(shí)TA層和secure driver層需要頻繁交互,例如:有些廠家提供的指紋芯片,需要頻繁的進(jìn)行寄存器設(shè)置來(lái)執(zhí)行采圖功能,而每次交互TA層和secure driver層都要進(jìn)行各自的虛擬地址分配和與共享內(nèi)存物理地址的映射,不但系統(tǒng)開(kāi)銷大,通信效率也會(huì)降低,使硬件使用起來(lái)耗時(shí)太長(zhǎng)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸方法及系統(tǒng),用以解決現(xiàn)有的TA層和secure driver層的交互方式導(dǎo)致的系統(tǒng)開(kāi)銷大及通信效率低的問(wèn)題。
基于上述問(wèn)題,本發(fā)明實(shí)施例提供的一種數(shù)據(jù)傳輸方法,包括:
可信應(yīng)用層向安全驅(qū)動(dòng)層發(fā)送數(shù)據(jù)傳輸?shù)恼?qǐng)求;
所述可信應(yīng)用層將存儲(chǔ)于可信應(yīng)用層的第一地址空間中的第一數(shù)據(jù)發(fā)送至與所述第一地址空間建立了第一映射關(guān)系的共享內(nèi)存;
所述安全驅(qū)動(dòng)層根據(jù)所述請(qǐng)求從所述共享內(nèi)存中獲取所述第一數(shù)據(jù),并將所述第一數(shù)據(jù)存儲(chǔ)至與所述共享內(nèi)存建立了第二映射關(guān)系的所述安全驅(qū)動(dòng)層的第二地址空間;
其中,所述第一映射關(guān)系與所述第二映射關(guān)系保持不變。
本發(fā)明提供的數(shù)據(jù)傳輸方法,還包括:
所述安全驅(qū)動(dòng)層將存儲(chǔ)于所述第二地址空間的第二數(shù)據(jù)發(fā)送至所述共享內(nèi)存,其中,所述第二數(shù)據(jù)根據(jù)所述第一數(shù)據(jù)生成;
所述安全驅(qū)動(dòng)層向所述可信應(yīng)用層發(fā)送針對(duì)所述請(qǐng)求的響應(yīng)消息;
所述可信應(yīng)用層根據(jù)所述響應(yīng)消息從所述共享內(nèi)存中獲取所述第二數(shù)據(jù),并將所述第二數(shù)據(jù)存儲(chǔ)至所述第一地址空間。
其中,所述第一地址空間在所述可信應(yīng)用層的生存周期中保持不變,所述第二地址空間在所述安全驅(qū)動(dòng)層的生存周期中保持不變。
進(jìn)一步的,所述可信應(yīng)用層將存儲(chǔ)于可信應(yīng)用層的第一地址空間中的第一數(shù)據(jù)發(fā)送至與所述第一地址空間建立了第一映射關(guān)系的共享內(nèi)存之前,還包括:
當(dāng)可信應(yīng)用層向所述安全驅(qū)動(dòng)層發(fā)送數(shù)據(jù)傳輸?shù)恼?qǐng)求時(shí),所述可信應(yīng)用層將初始數(shù)據(jù)存儲(chǔ)在所述可信應(yīng)用層地址空間的第一地址空間中;將所述第一地址空間映射至物理內(nèi)存,獲得物理內(nèi)存的共享內(nèi)存;
當(dāng)所述安全驅(qū)動(dòng)層接收到所述請(qǐng)求時(shí),將所述共享內(nèi)存映射至所述安全驅(qū)動(dòng)層的地址空間,獲得第二地址空間;
所述安全驅(qū)動(dòng)層將從所述共享內(nèi)存中獲得的所述初始數(shù)據(jù)存儲(chǔ)于所述第二地址空間。
進(jìn)一步的,本發(fā)明方法還可以包括:提高所述共享內(nèi)存的運(yùn)行頻率。
本發(fā)明實(shí)施例還提供一種數(shù)據(jù)傳輸系統(tǒng),包括:
可信應(yīng)用層,用于向安全驅(qū)動(dòng)層發(fā)送數(shù)據(jù)傳輸?shù)恼?qǐng)求;以及將存儲(chǔ)于所述可信應(yīng)用層的第一地址空間中的第一數(shù)據(jù)發(fā)送至與所述第一地址空間建立了第一映射關(guān)系的共享內(nèi)存;
安全驅(qū)動(dòng)層,用于根據(jù)所述請(qǐng)求從所述共享內(nèi)存中獲取所述第一數(shù)據(jù),并將所述第一數(shù)據(jù)存儲(chǔ)至與所述共享內(nèi)存建立了第二映射關(guān)系的所述安全驅(qū)動(dòng)層的第二地址空間;
其中,所述第一映射關(guān)系與所述第二映射關(guān)系保持不變。
進(jìn)一步的,所述安全驅(qū)動(dòng)層,還用于將存儲(chǔ)于所述第二地址空間的第二數(shù)據(jù)發(fā)送至所述共享內(nèi)存,其中,所述第二數(shù)據(jù)根據(jù)所述第一數(shù)據(jù)生成;以及向所述可信應(yīng)用層發(fā)送針對(duì)所述請(qǐng)求的響應(yīng)消息;
所述可信應(yīng)用層,還用于根據(jù)所述響應(yīng)消息從所述共享內(nèi)存中獲取所述第二數(shù)據(jù),并將所述第二數(shù)據(jù)存儲(chǔ)至所述第一地址空間。
進(jìn)一步的,所述可信應(yīng)用層,還用于在將存儲(chǔ)于可信應(yīng)用層的第一地址空間中的第一數(shù)據(jù)發(fā)送至與所述第一地址空間建立了第一映射關(guān)系的共享內(nèi)存之前,當(dāng)向所述安全驅(qū)動(dòng)層發(fā)送數(shù)據(jù)傳輸?shù)恼?qǐng)求時(shí),將初始數(shù)據(jù)存儲(chǔ)在所述第一地址空間中;將所述第一地址空間映射至物理內(nèi)存,獲得物理內(nèi)存的共享內(nèi)存;
所述安全驅(qū)動(dòng)層,還用于當(dāng)接收到所述請(qǐng)求時(shí),將所述共享內(nèi)存映射至所述安全驅(qū)動(dòng)層的地址空間,獲得第二地址空間;以及將從所述共享內(nèi)存中獲得的所述初始數(shù)據(jù)存儲(chǔ)于所述第二地址空間。
所述系統(tǒng)還包括頻率調(diào)整接口,用于調(diào)整所述共享內(nèi)存的運(yùn)行頻率。
本發(fā)明實(shí)施例的有益效果包括:
本發(fā)明實(shí)施例提供的一種數(shù)據(jù)傳輸方法及系統(tǒng),TA層向secure driver層發(fā)送數(shù)據(jù)傳輸請(qǐng)求,并將存儲(chǔ)與自身第一地址空間的第一數(shù)據(jù)發(fā)送至于第一地址空間建立了第一映射關(guān)系的共享內(nèi)存中,secure driver層根據(jù)接收到的請(qǐng)求,從共享內(nèi)存中獲取第一數(shù)據(jù),并將第一數(shù)據(jù)存儲(chǔ)至與共享內(nèi)存建立了第二映射關(guān)系的第二地址空間;其中,第一映射關(guān)系與第二映射關(guān)系保持不變。可見(jiàn),本發(fā)明實(shí)施例提供的數(shù)據(jù)傳輸方法中,TA層和secure driver層分別在自己的地址空間中分配了第一地址空間和第二地址空間,并分別與物理內(nèi)存的共享內(nèi)存進(jìn)行了映射,且映射關(guān)系保持不變,與現(xiàn)有技術(shù)中TA層和secure driver層每次交互都要分別分配地址空間以及每次交互都要與物理內(nèi)存的共享內(nèi)存建立映射關(guān)系相比,TA層和secure driver層為傳輸?shù)臄?shù)據(jù)分別分配的地址空間保持不變,那么分配的地址空間與共享內(nèi)存分別建立的映射關(guān)系也可以保持不變,TA層和secure driver層每次交互時(shí),分別通過(guò)固定的地址空間對(duì)共享內(nèi)存進(jìn)行操作就可以了,不需要每次交互都分配地址空間以及建立與共享內(nèi)存的映射關(guān)系,減小了TA層和secure driver層的交互的系統(tǒng)開(kāi)銷,提高了通信效率,對(duì)于secure driver層下的硬件,也降低了在使用時(shí)的系統(tǒng)開(kāi)銷,加快了硬件的響應(yīng)速度。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例提供的包含TA層和secure driver層的t-base系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)傳輸方法的流程示意圖;
圖3為本發(fā)明實(shí)施例提供的另一種數(shù)據(jù)傳輸方法的流程示意圖;
圖4為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)傳輸系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明實(shí)施例提供了一種數(shù)據(jù)傳輸方法及系統(tǒng),以下結(jié)合說(shuō)明書(shū)附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說(shuō)明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí)施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。并且在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
圖1為本發(fā)明實(shí)施例提供的包含TA層101和secure driver層102的t-base系統(tǒng)的結(jié)構(gòu)示意圖。
本發(fā)明實(shí)施例提供一種數(shù)據(jù)傳輸方法,如圖2所示,包括:
S201、可信應(yīng)用層101向安全驅(qū)動(dòng)層102發(fā)送數(shù)據(jù)傳輸?shù)恼?qǐng)求。
具體實(shí)施時(shí),安全驅(qū)動(dòng)層102可以在啟動(dòng)之后開(kāi)啟一個(gè)等待線程,用于等待可信應(yīng)用層101的請(qǐng)求,當(dāng)可信應(yīng)用層101向安全驅(qū)動(dòng)層102發(fā)送數(shù)據(jù)傳輸請(qǐng)求時(shí),該等待線程就能夠接收到。
進(jìn)一步地,本步驟中數(shù)據(jù)傳輸請(qǐng)求可以是IPC(Inter-Process Communication,進(jìn)程間通信)請(qǐng)求。
S202、可信應(yīng)用層101將存儲(chǔ)于可信應(yīng)用層101的第一地址空間中的第一數(shù)據(jù)發(fā)送至與第一地址空間建立了第一映射關(guān)系的共享內(nèi)存。
進(jìn)程運(yùn)行時(shí)可以分配有自己的地址空間,進(jìn)程間不能通過(guò)直接訪問(wèn)對(duì)方的地址空間實(shí)現(xiàn)相互通信,而是需要專門(mén)的進(jìn)程間通信方式,例如:通過(guò)共享內(nèi)存進(jìn)行通信。因此,可信應(yīng)用層101和安全驅(qū)動(dòng)層102之間進(jìn)行數(shù)據(jù)傳輸時(shí)不能直接訪問(wèn)對(duì)方的地址空間,而是需要通過(guò)共享內(nèi)存。
現(xiàn)有技術(shù)中,每次進(jìn)行數(shù)據(jù)傳輸時(shí),在每次TA層和secure driver層需要進(jìn)行交互時(shí),TA層都會(huì)在自己的地址空間中,為本次需要傳輸?shù)臄?shù)據(jù)申請(qǐng)存儲(chǔ)地址,并將申請(qǐng)到的虛擬地址與共享內(nèi)存的物理地址進(jìn)行映射,同樣,secure driver層在將獲取到的TA層存儲(chǔ)的數(shù)據(jù)搬移到自己的地址空間之前,也都會(huì)在自己的地址空間為該獲取的數(shù)據(jù)申請(qǐng)存儲(chǔ)地址,并將申請(qǐng)到的虛擬地址與共享內(nèi)存的物理地址進(jìn)行映射。也就是說(shuō),每次數(shù)據(jù)傳輸都要進(jìn)行“申請(qǐng)?zhí)摂M地址空間-將虛擬地址空間映射至物理空間”的過(guò)程,導(dǎo)致了系統(tǒng)開(kāi)銷大,通信效率降低。因此,本發(fā)明實(shí)施例中,使第一地址空間,以及第一地址空間與共享內(nèi)存的物理地址之間的第一映射關(guān)系保持不變,使得后續(xù)再進(jìn)行數(shù)據(jù)傳輸時(shí),都不需要重新分配地址空間,以及重新為地址空間進(jìn)行映射,而是直接使用已經(jīng)建立的專門(mén)用于存儲(chǔ)數(shù)據(jù)的第一地址空間、第二地址空間以及與分別于該第一地址空間具有第一映射關(guān)系、與該第二址空間具有第二映射關(guān)系的共享內(nèi)存,這樣減少了系統(tǒng)開(kāi)銷,提高了通信效率。
S203、安全驅(qū)動(dòng)層102根據(jù)S201中的請(qǐng)求從共享內(nèi)存中獲取第一數(shù)據(jù),并將第一數(shù)據(jù)存儲(chǔ)至與共享內(nèi)存建立了第二映射關(guān)系的安全驅(qū)動(dòng)層的第二地址空間;其中,第一映射關(guān)系與第二映射關(guān)系保持不變。
現(xiàn)有技術(shù)中,安全驅(qū)動(dòng)層102每次從共享內(nèi)存的物理地址獲取到數(shù)據(jù)時(shí),同樣需要在自己的地址空間中為數(shù)據(jù)申請(qǐng)地址空間,并建立共享內(nèi)存的物理地址與該地址空間之間的映射關(guān)系,再將獲取到的數(shù)據(jù)存儲(chǔ)到申請(qǐng)到的地址空間中,系統(tǒng)開(kāi)銷大,通信效率低,本發(fā)明實(shí)施例中,使專門(mén)用戶存儲(chǔ)數(shù)據(jù)的第二地址空間,以及第二地址空間與共享內(nèi)存的物理地址之間的映射關(guān)系保持不變,使得后續(xù)再進(jìn)行數(shù)據(jù)傳輸時(shí),都不需要重新分配第二地址空間,以及重新進(jìn)行地址映射,而是直接使用已經(jīng)建立的第二映射關(guān)系,這樣減少了系統(tǒng)開(kāi)銷,提高了通信效率。
下面結(jié)合附圖,用具體實(shí)施例對(duì)本發(fā)明提供的方法及系統(tǒng)進(jìn)行詳細(xì)描述。
實(shí)施例1:
本發(fā)明實(shí)施例1中,提供了一種數(shù)據(jù)傳輸方法,如圖3所示,具體包括如下步驟:
S301、當(dāng)可信應(yīng)用層101向安全驅(qū)動(dòng)層102發(fā)送數(shù)據(jù)傳輸?shù)恼?qǐng)求時(shí),可信應(yīng)用層101將初始數(shù)據(jù)存儲(chǔ)在可信應(yīng)用層101的第一地址空間中。
S302、可信應(yīng)用層101將第一地址空間映射至物理內(nèi)存,獲得物理內(nèi)存的共享內(nèi)存。
S303、當(dāng)安全驅(qū)動(dòng)層102接收到S301中的請(qǐng)求時(shí),將共享內(nèi)存映射至安全驅(qū)動(dòng)層102的地址空間,獲得第二地址空間。
S304、安全驅(qū)動(dòng)層102將從共享內(nèi)存中獲得的初始數(shù)據(jù)存儲(chǔ)于第二地址空間。
本實(shí)施例方案中還包括為可信應(yīng)用層101以及安全驅(qū)動(dòng)層102分別與物理內(nèi)存的共享內(nèi)存建立映射關(guān)系的過(guò)程。
具體地,在可信應(yīng)用層101的生存周期中,首次需要向安全驅(qū)動(dòng)層102發(fā)送數(shù)據(jù)傳輸請(qǐng)求時(shí),可以將待傳輸?shù)某跏紨?shù)據(jù)(可以為命令、參數(shù)等)存儲(chǔ)在分配的第一地址空間中,并觸發(fā)建立第一地址空間與共享內(nèi)存的物理地址之間的第一映射關(guān)系,得到物理內(nèi)存的共享內(nèi)存;在安全驅(qū)動(dòng)層102的生存周期中,首次接收到可信應(yīng)用層101發(fā)送的數(shù)據(jù)傳輸請(qǐng)求時(shí),可以觸發(fā)建立共享內(nèi)存與安全驅(qū)動(dòng)層102的地址空間之間的第二映射關(guān)系,即獲得第二地址空間,并將存儲(chǔ)于共享內(nèi)存中的初始數(shù)據(jù)存儲(chǔ)到第二地址空間。
進(jìn)一步地,第一地址空間在可信應(yīng)用層101的生存周期中保持不變,第二地址空間在安全驅(qū)動(dòng)層102的生存周期中保持不變。也就是說(shuō),在后續(xù)可信應(yīng)用層101和安全驅(qū)動(dòng)層102的數(shù)據(jù)傳輸過(guò)程中,第一映射關(guān)系和第二映射關(guān)系保持不變,即不再為傳輸?shù)臄?shù)據(jù)進(jìn)行新的地址空間的分配,以及新的地址空間與共享內(nèi)存的映射,而重復(fù)使用已經(jīng)分配的地址空間和已經(jīng)建立的映射關(guān)系,這樣不但節(jié)約系統(tǒng)開(kāi)銷,也提高了數(shù)據(jù)傳輸效率??梢?jiàn),步驟S301~步驟S304可以執(zhí)行一次,后續(xù)每次進(jìn)行數(shù)據(jù)傳輸可以執(zhí)行步驟S305~S310。
進(jìn)一步地,可信應(yīng)用層101和安全驅(qū)動(dòng)層102的生存周期可以理解為從對(duì)應(yīng)程序啟動(dòng)運(yùn)行(包括開(kāi)機(jī)啟動(dòng)運(yùn)行或者程序結(jié)束后重新啟動(dòng)運(yùn)行等),至對(duì)應(yīng)程序正常運(yùn)行結(jié)束,或者運(yùn)行過(guò)程中出現(xiàn)錯(cuò)誤強(qiáng)制結(jié)束。
S305、可信應(yīng)用層101向安全驅(qū)動(dòng)層102發(fā)送數(shù)據(jù)傳輸?shù)恼?qǐng)求。
步驟S305與步驟S303~步驟S304的執(zhí)行沒(méi)有嚴(yán)格的先后順序,也就是說(shuō),在完成了第一地址空間與共享內(nèi)存的首次映射之后(即步驟S302執(zhí)行之后)即可執(zhí)行步驟S305。
S306、可信應(yīng)用層101將存儲(chǔ)于可信應(yīng)用層101的第一地址空間中的第一數(shù)據(jù)發(fā)送至與第一地址空間建立了第一映射關(guān)系的共享內(nèi)存。
S307、安全驅(qū)動(dòng)層102根據(jù)S305中的請(qǐng)求從共享內(nèi)存中獲取第一數(shù)據(jù),并將第一數(shù)據(jù)存儲(chǔ)至與共享內(nèi)存建立了第二映射關(guān)系的安全驅(qū)動(dòng)層的第二地址空間;其中,第一映射關(guān)系與第二映射關(guān)系保持不變。
進(jìn)一步地,步驟S305~步驟S307之前可以為可信應(yīng)用層101和安全驅(qū)動(dòng)層102分別與共享內(nèi)存建立了映射關(guān)系,通過(guò)該保持不變的映射關(guān)系進(jìn)行數(shù)據(jù)傳輸?shù)牟襟E。第一數(shù)據(jù)可以為命令、參數(shù)等。
S308、安全驅(qū)動(dòng)層102將存儲(chǔ)于第二地址空間的第二數(shù)據(jù)發(fā)送至共享內(nèi)存,其中,第二數(shù)據(jù)根據(jù)第一數(shù)據(jù)生成。
S309、安全驅(qū)動(dòng)層102向可信應(yīng)用層101發(fā)送針對(duì)S305中請(qǐng)求的響應(yīng)消息。
S310、可信應(yīng)用層101根據(jù)S309中的響應(yīng)消息從共享內(nèi)存中獲取第二數(shù)據(jù),并將第二數(shù)據(jù)存儲(chǔ)至第一地址空間。
進(jìn)一步地,步驟S308~步驟S310可以為當(dāng)安全驅(qū)動(dòng)層102接收到可信應(yīng)用層101發(fā)送的第一數(shù)據(jù)之后,需要對(duì)第一數(shù)據(jù)進(jìn)行響應(yīng)發(fā)送第二數(shù)據(jù)時(shí)執(zhí)行,針對(duì)不需要發(fā)送第二數(shù)據(jù)的情況,可以不執(zhí)行步驟S308~步驟S310。
步驟S308~步驟S310中,安全驅(qū)動(dòng)層102可以將第二數(shù)據(jù)先存儲(chǔ)在第二地址空間,基于已建立的第二地址空間與共享內(nèi)存之間的映射關(guān)系,將第二數(shù)據(jù)發(fā)送至共享內(nèi)存。并向可信應(yīng)用層101發(fā)送響應(yīng)消息,以提示可信應(yīng)用層101獲取第二數(shù)據(jù),可信應(yīng)用層101基于已建立的第一地址空間與共享內(nèi)存之間的映射關(guān)系,從共享內(nèi)存中獲取第二數(shù)據(jù),并存儲(chǔ)至第一地址空間。
可見(jiàn),可信應(yīng)用層101和安全驅(qū)動(dòng)層102通過(guò)共享內(nèi)存的方式完成了進(jìn)程間的通信,并且通過(guò)固定自身為傳輸?shù)臄?shù)據(jù)分配的地址空間與共享內(nèi)存之間的映射關(guān)系,使數(shù)據(jù)傳輸?shù)倪^(guò)程系統(tǒng)開(kāi)銷小,提高了傳輸效率。
為了進(jìn)一步提高傳輸效率,還可以提高共享內(nèi)存的運(yùn)行頻率,這樣內(nèi)存運(yùn)行速度越快,可信應(yīng)用層101和安全驅(qū)動(dòng)層102通信消耗的時(shí)間越少。具體實(shí)施時(shí),可以利用系統(tǒng)提供的接口將內(nèi)存鎖到較高的運(yùn)行頻率,這里不再贅述。
基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供了一種數(shù)據(jù)傳輸系統(tǒng),由于這些系統(tǒng)所解決問(wèn)題的原理與前述數(shù)據(jù)傳輸方法相似,因此該系統(tǒng)的實(shí)施可以參見(jiàn)前述方法的實(shí)施,重復(fù)之處不再贅述。
本發(fā)明實(shí)施例提供的一種數(shù)據(jù)傳輸系統(tǒng),如圖4所示,包括:
可信應(yīng)用層401,用于向安全驅(qū)動(dòng)層402發(fā)送數(shù)據(jù)傳輸?shù)恼?qǐng)求;以及將存儲(chǔ)于可信應(yīng)用層401的第一地址空間中的第一數(shù)據(jù)發(fā)送至與所述第一地址空間建立了第一映射關(guān)系的共享內(nèi)存;
安全驅(qū)動(dòng)層402,用于根據(jù)所述請(qǐng)求從所述共享內(nèi)存中獲取所述第一數(shù)據(jù),并將所述第一數(shù)據(jù)存儲(chǔ)至與所述共享內(nèi)存建立了第二映射關(guān)系的安全驅(qū)動(dòng)層402的第二地址空間;其中,所述第一映射關(guān)系與所述第二映射關(guān)系保持不變。
進(jìn)一步地,安全驅(qū)動(dòng)層402,還用于將存儲(chǔ)于所述第二地址空間的第二數(shù)據(jù)發(fā)送至所述共享內(nèi)存,其中,所述第二數(shù)據(jù)根據(jù)所述第一數(shù)據(jù)生成;以及向可信應(yīng)用層401發(fā)送針對(duì)所述請(qǐng)求的響應(yīng)消息;
可信應(yīng)用層401,還用于根據(jù)所述響應(yīng)消息從所述共享內(nèi)存中獲取所述第二數(shù)據(jù),并將所述第二數(shù)據(jù)存儲(chǔ)至所述第一地址空間。
進(jìn)一步地,所述第一地址空間在可信應(yīng)用層401的生存周期中保持不變,所述第二地址空間在安全驅(qū)動(dòng)層402的生存周期中保持不變。
進(jìn)一步地,可信應(yīng)用層401,還用于在將存儲(chǔ)于可信應(yīng)用層401的第一地址空間中的第一數(shù)據(jù)發(fā)送至與所述第一地址空間建立了第一映射關(guān)系的共享內(nèi)存之前,當(dāng)向所述安全驅(qū)動(dòng)層402發(fā)送數(shù)據(jù)傳輸?shù)恼?qǐng)求時(shí),將初始數(shù)據(jù)存儲(chǔ)在所述第一地址空間中;將所述第一地址空間映射至物理內(nèi)存,獲得物理內(nèi)存的共享內(nèi)存;
安全驅(qū)動(dòng)層402,還用于當(dāng)接收到所述請(qǐng)求時(shí),將所述共享內(nèi)存映射至所述安全驅(qū)動(dòng)層的地址空間,獲得第二地址空間;以及將從所述共享內(nèi)存中獲得的所述初始數(shù)據(jù)存儲(chǔ)于所述第二地址空間。
進(jìn)一步地,所述系統(tǒng),還包括:頻率調(diào)整接口403,用于調(diào)整共享內(nèi)存的運(yùn)行頻率;
上述各接口的功能可對(duì)應(yīng)于圖2至圖3所示流程中的相應(yīng)處理步驟,在此不再贅述。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明實(shí)施例可以通過(guò)硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是CD-ROM,U盤(pán),移動(dòng)硬盤(pán)等)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施例的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。
本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述進(jìn)行分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個(gè)或多個(gè)裝置中。上述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。