工業和家用電器市場中的各種應用要求使用數學運算來實現不同的算法和計算。基于 Cortex?-M0+的單片機包含加法、減法和乘法指令。Cortex-M0+架構沒有用于除法運算的匯編指令,除法邏輯可以根據不同的編譯器而變化。基于 Arm? Cortex-M0+的單片機(MCU)具有一個可配置選項,可通過該選項使用快速乘法器進行乘法運算。基于該可配置選項,乘法運算可以為單個周期指令到最多 32 個周期指令不等。 SAMC21(一款 Cortex-M0+ MCU)非常適合需要數學計算的應用。SAMC21 MCU 具有可進行乘法運算的快速單周期乘法器選項,還具有一個新的外設,稱為除法和平方根加速器(Division and Square RootAccelerator,DIVAS),可用于執行快速除法和平方根運算。
概念
適用于Arm架構的應用程序二進制接口(ABI)包含一系列標準,其中有些是開放的標準,還有一些是 Arm 架構專用標準。ABI 可管控各種基于 Arm 的執行環境中二進制文件和開發工具的互操作。支持 Arm MCU 的編譯器需符合這些標準。這些標準的其中一項是適用于 Arm 架構的運行時 ABI。此標準為 ABI 指定輔助函數,使之能夠支持 C、C++和算術運算。對于除法,編譯器會用各自的庫代碼替換除法和模運算符(即,使用重復減法來實現除法)。該庫代碼將數百個字節添加到代碼存儲器,MCU 消耗 50 到 400 之間任意數量的時鐘周期,具體取決于操作數的大小。編譯器可通過過載運行時ABI 輔助方法來使用 DIVAS 功能。DIVAS 展現出的性能優于編譯器除法(即,比除法 65535/3 少 50 個時鐘周期)。DIVAS 支持整數平方根運算,而不需要任何額外的庫依賴關系。
解決方案/實現
DIVAS 只支持 32 位整數除法。用于除法運算的運行時 ABI 輔助方法過載,以便編譯器了解除法應使用DIVAS 功能進行除法。根據運行時 ABI 標準,32 位整數除法函數在 r0 中返回商,或在{r0, r1}中返回商和余數。
-
DIVAS除法運算
-
DIVAS平方根運算
-
單片機
+關注
關注
6061文章
44903瀏覽量
646392 -
mcu
+關注
關注
146文章
17821瀏覽量
359918 -
ARM
+關注
關注
134文章
9298瀏覽量
374757
原文標題:文檔:如何利用 Cortex?-M0+ 單片機實現更快的數學計算
文章出處:【微信號:MicrochipTechnology,微信公眾號:Microchip微芯】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
在Windows上安裝OpenVINO?運行時遇到錯誤怎么解決?
運行時OpenVINO?找不到模型優化器,為什么?
智能電機控制裝置如何最大限度地提高恢復能力和正常運行時間

ups主機選購方法,選擇電池運行時間滿足

影響逆變器電池狀態的原因,整體運行時間

為什么變壓器空載運行時功率因數很低
直線電機在運行時噪音大不大

評論