ZYNQ基礎知識一
參考:UG1181 Zynq-7000 Programable Soc Architrcture Porting Quick Start Guide
zynq處理器結構圖
CPU MODE:At any given time, the CPU can be in only one mode, but it can switch modes due to external events (interrupts) or programmatically (對比ARM裡的7種模式)
User Mode 使用者模式
FIQ Mode 快速中斷模式
IRQ Mode 中斷模式
SVC Mode
ABORT mode
undefined mode
system mode
monitor mode
Hyp mode
trust zone技術簡介:
目前的一些安全手段。
CPU通過記憶體對映手段給每個程序營造一個單獨的地址空間來隔離多個程序的程式碼和資料,通過核心空間和使用者空間不同的特權級來隔離作業系統和使用者程序的程式碼和資料。但由於記憶體中的程式碼和資料都是明文,容易被同處於記憶體中的其它應用偷窺,因此出現了擴充套件的安全模組,應用將加密資料送往安全模組,由安全模組處理完後再返回結果給相應的應用。
很多消費電子裝置都使用擴充套件的安全模組來確保資料安全,目前常見的方式有:
外部掛接硬體安全模組
資料的處理交由外部的安全模組實現,這些模組能夠保護自己的資源和金鑰等資料的安全,如SIM卡、各種智慧卡或連線到外部的硬體加解密模組等,但其同主晶片的通訊線路暴露在外部,容易被監聽破解。另外,通訊的速率比較低。
內部整合硬體安全模組
將外部安全模組的功能整合到晶片內,因此一個晶片上至少有兩個核:一個普通核和一個安全核。優點是核與核之間的通訊在晶片內部實現,不再暴露在外面。缺點是核之間的通訊速度仍然較低,而且單獨的安全核效能有限,還會會佔用SoC面積,成本較高。
TrustZone是ARM針對消費電子裝置設計的一種硬體架構,其目的是為消費電子產品構建一個安全框架來抵禦各種可能的攻擊。
TrustZone在概念上將SoC的硬體和軟體資源劃分為安全(Secure World)和非安全(Normal World)兩個世界,所有需要保密的操作在安全世界執行(如指紋識別、密碼處理、資料加解密、安全認證等),其餘操作在非安全世界執行(如使用者作業系統、各種應用程式等),安全世界和非安全世界通過一個名為Monitor Mode的模式進行轉換
圖1. ARM的安全世界和非安全世界
處理器架構上,TrustZone將每個物理核虛擬為兩個核,一個非安全核(Non-secure Core, NS Core),執行非安全世界的程式碼;和另一個安全核(Secure Core),執行安全世界的程式碼。
兩個虛擬的核以基於時間片的方式執行,根據需要實時佔用物理核,並通過Monitor Mode在安全世界和非安全世界之間切換,類似同一CPU下的多應用程式環境,不同的是多應用程式環境下作業系統實現的是程序間切換,而Trustzone下的Monitor Mode實現了同一CPU上兩個作業系統間的切換。
兩個獨立的 ARM Cortex-A9(ARMv7)處理器核心與兩個Neon 協處理器,他們共享512KB 的L2 快取。各處理的L1 級快取是獨立的,因此兩個處理器可以單獨執行各自的任務。Neon技術主要用於加速多媒體和訊號處理演算法(如視訊編解碼、3D圖形、影象處理技術、遊戲加速等),Neon可認為是128bit向量DSP,可執行打包的SIMD 指令,最高支援64bit單精度浮點運算。
Thumb2指令設定,NEON技術,增強型SIMD,一次指令可以處理多個數據。VFPU vector floating point unit向量浮點單元
Caches: L1 和L2 級Cache。512KB L2 級Cache為兩個處理器共有,32KB D-Cache 和 I-Cache 為每個處理器私有。
8 通道 DMA 控制器。64bit位寬,支援 M-toM,其中四個通道支援 PL請求。
GIC(Generic Interrupt Controller)。管理95 中斷訊號,需要注意的是,PL-PS 的中斷有對應各自處理器的快速中斷和普通的F2P IRQ。
偵聽控制單元(SCU)。智慧管理兩個出來器與 L2 共享快取記憶體之間的資料一致性。
OCM(On Chip Memory)。256KB SRAM,PL可以通過 AXI_HP 介面直接訪問。
暫存器設定: