このページは、ソフトウェア、機器組込みのエンベデット・ソフトウェア(ファームウェア)の開発に関連したコラムのページです。このコラムはメールマガジン「アメニティ&サウンド 音と快適の空間へ」で連載していた技術・開発コラムを再編集したものを掲載しています。
前回は、コンパイラの生成コードの評価の具体例として型変換が行なわれる時の生成コード評価についてでした。ポイントは、暗黙の型変換による語長拡張、符号拡張と式評価のコードのオプティマイズです。
組込系であっても、Windowsアプリケーションであっても、実行モジュールのサイズ(ファイルサイズ)や実行速度に代表されるCPU効率は重要です。
昨今のパソコンは高速化が著しいため最適化など必要がないという意見があります。しかし、10年前でも同様の意見がありました。
高速化することによってリアルタイムに処理できなかった動画などの処理が可能になったように、例えば、数学的な大量の計算を必要とする処理がリアルタイムに計算可能であれば、利用方法が進化しますから、限界までの処理速度が要求されるのは、少なくても、まだ、数年は続くことでしょう。
サイズと速度は、メモリやCPUなどのデバイスの特性によって変化しますが、現在のパソコン用のPentium 4などの場合には、キャッシュメモリとパイプラインの効率が速度に与える影響が大きくなっています。
コードのオプティマイズでも、アルゴリズム上、キャッシュヒット率が高いアルゴリズムを採用した方が、処理量が少ないコードより高速に動作することが多く、同様の理由で、小さい共通関数などを多く利用するようにしてキャッシュヒット率を向上させることで高速化できる場合があります。
オプティマイズする場合には、古い文献や方法論を頼りにせず、実際のターゲットCPUの動作を正しく理解することが必要になります。
Pentium IIについて書かれた手法は、Pentium3では有用ではない場合がありますし、同様にPentium3の方法論はPentium4では誤りに相当することがあります。
開発ツールでも、効率を重んじるためオプティマイズ(オプティマイザ)に関するポイントを含めて評価します。
コンパイラには、明示的で利用者が選択して利用するライブラリと、暗黙の内に利用されるライブラリが存在していることが多く見受けられます。
明示的なライブラリは、そのライブラリ関数を(マクロもありますし、関数に限りませんが)利用しなければ全く利用されませんが、暗黙のライブラリは、ソースコード上でライブラリを利用していなくても自動的に利用されます。
CPUやDSP、コンパイラの仕様によりますが、主に、コードを生成するよりも、共通のライブラリコードを利用するようにした方が効率がよいと考えられている汎用的な処理で暗黙のライブラリが採用されます。
この暗黙のライブラリがどのような処理で採用されているか(含まれるか)と、ライブラリ・コードの品質を調べることは重要です。ライブラリコードが効率的ではない場合がありますし、暗黙のライブラリを利用させないようにソースコードを作成する必要が生じるほど、暗黙のライブラリが使用される部分が、処理効率に支配的な影響を与えることがあるからです。
ARIはハードウェア設計、製造、ファームウェア開発、 Windowsアプリケーションの開発をしています。 実績等に興味をお持ちいただけましたら、会社情報に主な開発実績を 「音響と開発」のコーナーには事例など関連情報を掲載していますのでご覧ください。
ソフトウェア開発と開発ツール関連の雑記
機器組込みのエンベデット・ソフトウェア(ファームウェア)の開発に関連したコラムです。 メールマガジン「アメニティ&サウンド 音と快適の空間へ」に連載していた技術・開発コラムを編集掲載しています。
ソフト、ハードウェア 技術関連の雑記
このコラムは無料メールマガジン「アメニティ&サウンド 音と快適の空間へ」 vol.36〜vol.64(2003年8/21〜2004年11/18)に 音響と開発の関連コラムとして連載していたものを編集掲載したものです。
技術・開発の閑話-2- vol.11〜20F1とコンピュータ技術 / ソフトウェアの標準と部品化
( 戦術と戦略の誤解 / アジャイル開発 / リファクタリング / 遺産と再生産 / 標準と生産管理 ほか)
|
技術・開発の閑話-2- vol.01〜10「ありえない」フェイルセーフと安全機能の連鎖 / HDD容量の差(天使の分け前) / リアルタイムとベストエフォート / エラーとコスト(ブルースクリーン/XP) / NDAと情報公開 / 専門ドメインの基礎範囲 / NHK技研公開(超高精細映像システム) |
エーアールアイはPCアプリケーション、デジタル機器の組込み(CPU)、信号処理(DSP)ソフトウェアの開発を行っています。 お客様のお役に立てることがございましたらご用命ください。