浮動小数点演算のメリット:Q&Aで学ぶマイコン講座(17)(4/4 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、上級者の方からよく質問される「浮動小数点演算のメリット」についてです。
FPUのパフォーマンス
FPUがなくてもソフトウェアで浮動少数点演算は可能ですが、前述したようにプログラム量が増加し、実行速度も劣ります。STマイクロエレクトロニクスのSTM32F4シリーズを使って両者を比較した例を図2に示します。STM32F4シリーズはFPU付きのARM社のCortex-M4を搭載しており、ソフトでもハードでも浮動少数点演算を実現できます。
ソフトウェアで実現する場合は、ユーザーは浮動小数点演算の関数を作成し、その関数をコールします。1つの演算でも複数の命令の演算が必要になるので、プログラム量が増加し、実行時間も長くなります。FPUを搭載している場合は、アセンブル命令(図中ではVADDとVDIV)が準備されているので、その1命令を実行するだけです。
浮動小数点演算の関数の作成も不要ですし、実行時間も短くなります。Cortex-M4の場合はCMSIS(Cortexマイクロコントローラ ソフトウェア インタフェース規格)でライブラリが準備されているので、ユーザーは容易に浮動少数点演算を自分のプログラムに実装することができます。
図3に、具体例として、FPUありの場合となし(CMSISライブラリ)の場合での、Float32データ型のFIRフィルタ(係数29)実行時間の比較を記述しました。FPUなしの場合の実行時間と比較するとFPUありの場合は約10分の1になります。
マイコンのIEEE754サポート
マイコンに搭載されているFPUは、基本的に「IEEE 754-2008規格準拠」ですが、完全にサポートしているかどうかは、各製品の説明書を確認してください。IEEE 754-2008規格の全ての演算には対応していないFPUもありますので、注意が必要です。半精度、単精度、倍精度、四倍精度のどれをサポートしているかも、説明書を確認してください。FPUだからといって、全ての精度をサポートしているわけではありません。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- マイコン周辺部品の選び方――電源編
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「マイコン周辺部品の選び方――電源編」です。 - マイコンの選び方
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「マイコンの選び方」についてです。 - マイコンでサイン波、コサイン波を作れますか?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。8回目は、上級者の方からよく質問される「マイコンでサイン波、コサイン波を作れますか?」です。 - マイコンに接続する推奨デカップリングコンデンサと接続方法を教えて!
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。3回目は、初心者の方からよく質問される「マイコンの電源に接続するデカップリングコンデンサの推奨タイプと接続方法」についてです。