日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Cortex‐M3-指令集

發布時間:2024/4/13 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Cortex‐M3-指令集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Cortex‐M3-指令集:

  • Cortex‐M3 只使用 Thumb‐2 指令集。這是個了不起的突破,因為它允許 32 位指令和 16 位指令水乳交融,代碼密度與處理性能兩手抓,兩手都硬。而且雖然它很強大,卻依然易于使用。
  • 在過去,做 ARM 開發必須處理好兩個狀態。這兩個狀態是井水不犯河水的,它們是:32 位的ARM 狀態和 16 位的 Thumb 狀態。當處理器在 ARM 狀態下時,所有的指令均是 32 位的(哪怕只是個”NOP”指令),此時性能相當高。而在 Thumb 狀態下,所有的指令均是 16 位的,代碼密度提高了一倍。不過,thumb 狀態下的指令功能只是 ARM 下的一個子集,結果可能需要更多條的指令去完成相同的工作,導致處理性能下降。
  • 為了取長補短,很多應用程序都混合使用 ARM 和 Thumb 代碼段。然而,這種混合使用是有額外開銷(overhead)的,時間上的和空間上的都有,主要發生在狀態切換之時。另一方面,ARM 代碼和 Thumb 代碼需要以不同的方式編譯,這也增加了軟件開發管理的復雜度。
ARM7 處理器上的狀態切換模式圖
  • 伴隨著 Thumb‐2 指令集的橫空出世,終于可以在單一的操作模式下搞定所有處理了,再也沒有來回切換的事來煩你了。事實上,Cortex‐M3 內核干脆都不支持 ARM 指令,中斷也在 Thumb 態下處理(以前的 ARM 總是在 ARM 狀態下處理所有的中斷和異常)。這可不是小便宜,它使 CM3 在好幾個方面都比傳統的 ARM 處理器更先進:
  • 消滅了狀態切換的額外開銷,節省了 both?執行時間和指令空間。
  • 不再需要把源代碼文件分成按 ARM 編譯的和按 Thumb 編譯的,軟件開發的管理大大減負。
  • 無需再反復地求證和測試:究竟該在何時何地切換到何種狀態下,我的程序才最有效率。開發軟件容易多了
  • CM3 并不支持所有的 Thumb‐2 指令,ARMv7‐M 的規格書只要求實現 Thumb‐2 的一個子集。舉例來說,協處理器指令就被裁掉了(可以使用外部的數據處理引擎來替代)。CM3 也沒有實現 SIMD 指令集。舊世代的一些 Thumb 指令不再需要,因此也被排除。

總結

以上是生活随笔為你收集整理的Cortex‐M3-指令集的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。