EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 uperrua 于 2019-6-28 10:43 编辑 / V) ~/ _1 r; N) k
1 f" x& }9 m8 l7 j
接下來介紹其他ARM處理器主要的特徵
# J) l/ G' m0 i. X# U0 a1, Coprocessors5 y6 e3 M U* a; U1 P5 e
ARM本身除了支援ARMv32,Thumb,Thumb2指令集外,還可以透過Coprocessor支援延伸的指令集,每當ARM處理器執行到無法識別的指令集,就會透過Coprocessor 試圖進行指令集的識別動作,如果Coprocessor無法識別有效的指令集,或是該系統沒有對應的Coprocessor配置,就會透過觸發Undefined Instruction Vector透過對應的軟體進行錯誤處理流程 (Undefined Instruction通常也會用在安插Break Point的除錯機制上) . _+ o0 Q# l$ _2 | l
ARM可以支持0-15共16個Coprocessor,例如: CP15(System Control Coprocessor 15)一般是用在Cache與MMU相關的設定工作,CP14(Debug Control Coprocessor 14)支援相關Debug Registers,其它像是新增的NEON MPE (Media Processing Engine) SIMD指令與浮點運算VFP是透過CP10與CP11支援 。
" i" ^" G. B# J目前所提供的Coprocessor指令中,ARM有針對VFP與NEON的指令,定義對應的指令集,舉在Cortext A中有支援的NEON指令集為例,在編譯器端只要加入 vectorize 參數,就可以主動由編譯器根據程式碼內容優化,透過NEON的指令集進行產生對應的指令,如下所示
) E5 M! N* {6 J4 R# E: u+ h, n4 b' N- ]" {. [) \
3 e1 l |) d" t+ f2 f- ~% Y1 `4 g, l: \/ d5 g5 t4 M7 ~& r
|