ARM | MIPS | |
安全性總覽 | 基於trust zone構建,區分為一個安全世界與一個正常世界,正常世界不可以訪問安全世界的存儲空間等部件,正常世界信任安全世界,安全世界中的指令互相信任。 |
基於虛擬化CPU的硬件,允許存在多個域,並且每個域都是獨立被保護的,互相不信任其他域中的軟件或是數據,MIPS-VZ最多允許255個獨立域。這些域運用於不同的模式下:內核模式以及用戶模式。 |
ARMv8-M和MIPS-VZ都使用了額外的執行執行模式給與most trusted code以更多權限,同時減少less trusted code的權限 | ||
存儲管理中的安全性 | ARMv8-M使用了兩個模塊解決存儲單元訪問問題,分別是SAU(安全屬性單元)以及MPU(存儲保護單元)。SAU檢查安全/不安全模式,然后MPU在不同模式下利用不同的權限訪問,這兩個單元基於地址比較器 | 是用了有如下兩個特點的MMU:1.大系統區分為客人TLB和根TLB的兩層TLB系統,分別給客戶OS與內核軟件使用。2.小系統區分為兩級MMU,客人部分可以是一個完整的TLB也可以是一個固定映射轉換單元,根部分將TLB拆成沒有物理地址的部分,成為根保護單元(RPU). 這種MMU基於CAM(?),較好地提供了應用軟件與操作系統之間的絕緣。 |
不同安全域之間的例程調用 | ARMv8-M擁有一種不使用SMC(secure monitor call)指令就可以從正常世界調用安全世界特定例程的能力。這種能力使用到了SG(secure gateway)指令,用於標記進入安全世界的地址(不可以從例程的中部進入),安全性不高。 | 在不同客人/域之間分享例程的能力是等價的,會被MMU的根部分(root portion)編程並產生,而這些被分享的部分只可以被執行(不可讀或寫,這些權限是被MMU所監控的)。 在這種比較中,MIPS相較於ARM會更加快速,因為MIPS不需要使用SG指令和SC指令后的跳轉指令去進入被調用的例程。 此外,根環境下的軟件和安全碼用於推行MIPS虛擬化模型提供的保護,這意味着這種保護對於應用來說大部分都是透明的。根環境中的軟件不以犧牲對於操作環境的控制為代價完全監控着客人的活動。 |
中斷處理中的安全性 | ARMv8-M在安全執行模式下(secure execution mode)支持更快的ARM中斷方案。 | MIPS-VZ支持所有快速MIPS中斷方案,可以被直接執行於各個客人或是根部,從而不會影響到內核軟件或是安全性。 |
SOC安全性 | ARMv8-M支持傳統的TZ HNONSEC fabric signal以及HPROT memory attribute signal以便通知IO設備是正常世界或是安全世界的訪問。 | MIPS-VZ支持multi-bit GuestID signals以通知IO設備是哪一個客人發出的存儲請求。 |
不同域的轉換 | 正常世界和安全世界之間的轉換需要保存/載入通用寄存器(GPRs)以及浮點數寄存器(FPRs)。 | 在客人與根域之間轉換的時候不需要保存/載入COP0(MIPS結構中保存特權控制/狀態寄存器、MMU、異常邏輯寄存器exception logic register的結構),因為所有域中都有COP0的備份,但GPR以及FPR都需要保存/載入。然而有些時候Shadow register set特性可以與CPU虛擬化結合使用,如GPR shadow set讓我們不需要保存/載入GPR。 在客人域之間轉換的時候COP0、GPRs、FPRs都要保存/載入。 |
應用與市場 | 目前ARMv8有兩個主要功能,ARMv8-R用於工業控制設備中的嵌入式應用,ARMv8-A則主要用於移動端。此外,ARM也在開發不同的擴展部分,例如有些支持java加速,也包括Jazelle、TrustZone、SIMD等應用。 | MIPS優勢之一就是有很多開源工具,且對新手較為友好。目前MIPS管理部門希望減少CPU資源的消耗以降低系統資源的使用,這種方式也使得MIPS不易出現錯誤;MIPS也因其低功耗被集成於移動設備中,但事實上在這一方面MIPS落后於ARM,目前MIPS的復興主要依托於中國市場的支持以及更多核CPU的開發。 |
架構 | ARM最特殊的一點就是它采用了高密度的16-bit壓縮指令集Thumb,並可以在ARM與Thumb之間相互轉換,這使得ARM在保持高密度的同時也有了較好的靈活性。 | 相對來說較為簡單,可以用較少的指令完成一系列復雜任務,同時也使得MIPS功耗較低。此外,MIPS擁有存儲管理單元(MMU)以更高效使用存儲單元,減少不必要的損失,這也使得MIPS功耗進一步降低。 |
尋址方式 | 前變址尋址(pre-index adressing) 帶回寫的前變址尋址(Pre-indexed Addressing with Write Back) 后變址尋址(post-index addressing) 程序指針相對尋址(Program Counter Relative Addressing) |
寄存器尋址 立即數尋址 PC相對尋址 偽直接尋址(pseudo-direct addressing存在於J型指令中,指令中地址26bits,可以通過如下操作轉換成32bits地址:PC[31:27]+26bits+00) 基地址尋址 |
操作模式 |
ARM具有七個基本操作模式:用戶模式,特權模式(privileged mode),異常模式(exception mode,包括SVC, SWI, ABT, UND, IRQ),以及快速中斷模式(Fast Interrupt mode) | MIPS具有兩個操作模式:kernel(內核)模式以及用戶模式,內核模式的狀態位為0,可以訪問或更改任意寄存器,改模式可以用於處理異常、錯誤、中斷或開機時。用戶模式時狀態位為1,相較於內核模式其權限較低,同時也保證了用戶之間不會干擾。 |
異常處理 | ARM在ARM模式下進行異常處理。當中斷出現時,當前狀態寄存器CPSR會將當前值存儲到存儲狀態寄存器SPSR,然后修改CPSR中的值並處理異常。PC在異常處理結束后跳轉回原地址。 | MIPS異常處理是通過coprocessor0實現的,當中斷出現時,異常程序指針(EPC)會儲存PC的值,然后PC跳轉到中斷處理指令,接着,運行模式會從用戶模式跳轉到內核模式。當異常處理完成后,PC會回到原PC+4的地方。 共有4個主要寄存器參與異常處理:reg8(儲存中斷開始時的存儲地址),reg12(狀態位),reg13(存儲異常類型),reg14(EPC) |
此外,在寄存器以及堆棧方面,ARM與MIPS也有不同,具體見TABLE I 和 TABLE II(來源:El Kady, S., Khater, M., Alhafnawi, M.: MIPS, ARM and SPARC-an architecture comparison. In: Proceedings of the World Congress on Engineering, vol. 1 (2014))。
本文來源:
1.El Kady, S., Khater, M., Alhafnawi, M.: MIPS, ARM and SPARC-an architecture comparison. In: Proceedings of the World Congress on Engineering, vol. 1 (2014)
2.MIPS,https://www.mips.com/