隨著ARM Cortex-A9多處理器和FPGA SoC的推出,可把現(xiàn)有的分立微控制器和數字邏輯功能集成到一個多核器件中。這減小了功耗和體積,而主要難點之一是在一個器件中同時實現(xiàn)安全關鍵和非安全關鍵軟件單元。圖1顯示了使用三個分立器件實現(xiàn)的一個典型電機控制系統(tǒng)。系統(tǒng)有一個非安全網絡/用戶接口處理器,一個電機控制監(jiān)控微控制器和一片用于實現(xiàn)硬核實時電機控制器的FPGA。圖1中的陰影部分含有設計的安全關鍵單元,需要通過外部權威機構進行安全認證。
把一個電機控制系統(tǒng)合并到SoC中,支持使用一個器件來實現(xiàn)信號處理、監(jiān)控和通信等應用。Altera的28 nm Cyclone V SoC便是適用于這方面應用的一個器件實例。它具有低功耗FPGA架構和硬核處理器系統(tǒng)(HPS),含有ARM Cortex-A9雙處理器內核和外設。HPS包括對ARM TrustZone技術的支持;這也可以延伸到FPGA架構中。
ARM的TrustZone技術支持把多核系統(tǒng)劃分成關鍵系統(tǒng)資源運行的安全的環(huán)境和其他系統(tǒng)資源運行的非安全環(huán)境。因此,TrustZone隔離系統(tǒng)的關鍵部分只能在安全環(huán)境下訪問這些部分;其基礎是Cortex-A9 MPCore硬件和AMBA AXI3總線標準。在TrustZone支持系統(tǒng)中,每一AXI會話包括一個非安全(NS)比特,用于表示此次會話來自非安全還是安全環(huán)境。每次會話利用這一信息,系統(tǒng)中的從機可以選擇根據其TrustZone狀態(tài)進行響應。例如,處于安全模式的一個系統(tǒng)復位控制器只響應來自安全環(huán)境的復位申請,忽略非安全環(huán)境的響應,否則會產生錯誤。這一方法可以延伸到系統(tǒng)中的所有從機,在SoC器件中提供一個安全環(huán)境子系統(tǒng)。這一安全子系統(tǒng)與非安全環(huán)境隔離,可以用于運行可信軟件,或者,在我們的安全軟件中,不會受到流氓軟件的危害,也不會受到來自系統(tǒng)非安全部分AXI會話的影響。安全檢查器可以接受這類保護。
可以使用Altera的Cyclone V SoC來開發(fā)電機控制實例。這些器件在Cortex-A9 MPCore處理器、HPS外設、SDRAM控制器和FPGA上采用了ARM的TrustZone技術,能夠在SoC的所有外設中構建安全感知功能。在這個例子中,系統(tǒng)軟件的控制部分運行在μC/OS-II RTOS上,用戶接口軟件運行在Linux上。為能夠對此提供支持,Cortex-A9 MPcore處理器被配置為一個內核運行Linux,另一個內核運行μC/OS-II,實現(xiàn)AMP操作。
實時關鍵電機控制功能運行μC/OS-II,工作在內核1上,而Linux以及提供控制和通信通道的應用程序運行在內核0上。目的是提供一個隔離域,在處理器內核1中運行功能時不會受到內核0的干擾。對此,內核1 (μC/OS-II)運行在安全環(huán)境中,內核0 (Linux)運行在非安全環(huán)境中。兩個處理器內核通過共享物理存儲器通道進行通信,使用了OpenMCAPI標準。對YHPS系統(tǒng)進行了靜態(tài)劃分,每一操作系統(tǒng)(OS)只可訪問到其分配資源中。存儲器映射被劃分為分配給μC/OS-II或者Linux的區(qū)域,以及由二者共享的區(qū)域。
同樣的,在μC/OS-II和Linux之間劃分了外設,外設是不共享的。主機配置表列出了HPS中的所有AXI主機及其TrustZone安全狀態(tài)??梢栽O置狀態(tài),這樣,外設總是產生安全或者非安全訪問,或者在每次“會話”基礎上進行安全訪問(例如,專門在每一訪問上設置安全狀態(tài))。