このページは、ソフトウェア、機器組込みのエンベデット・ソフトウェア(ファームウェア)の開発に関連したコラムのページです。このコラムはメールマガジン「アメニティ&サウンド 音と快適の空間へ」で連載していた技術・開発コラムを再編集したものを掲載しています。
前回は、ソースプログラムの作成についてでした。ソースプログラムを作成し、アセンブル、もしくはコンパイルという専用プログラムによる機械翻訳をして最終的なプログラムコードを作成します。
DSPや現在の高速なCPUの場合には、並列実行やパイプライン実行されたり(Pentiumなどの場合には、μOPと呼ぶパイプライン用のコードにCPUで翻訳され、パイプライン実行)投機実行などを持ちますから、単純に順次ではないのですが、基本的にはプログラムされた通り1つづつ順次実行します(1ステップと呼ばれていた単位です)。
この1ステップでは、「メモリを見る」、「加算する」、「メモリに記録する」など単純な動作をしています。機械コードに近いアセンブラでは、この単位でプログラムします。「A+B=C」のように値を加算するプログラムの場合(多くのアーキテクチャの物は)、
というプログラムを記述します。
アセンブラ言語の場合には、このソースプログラムをアセンブルという変換して実行コードに変換します。この変換ツールをアセンブラと呼びます。
元々機械の動作に近いソースのため、アセンブラは、比較的、単純な翻訳をすることで実行コードに変換しています。
▼アセンブラ
ASCII24 デジタル用語辞典
http://yougo.ascii24.com/gh/57/005733.html
一方、高級言語と言われる方式は「A+B=C」に近い形式で記述すると、アセンブラ形式のプログラムに翻訳しますので、人がプログラムを記載するのが容易になります。
この翻訳をコンパイルといい機械用のコードもしくは、アセンブラソースに翻訳します。この変換用ツールをコンパイラと呼びます。
高級言語の場合、人が作成したプログラムは機械にとってかなり複雑な翻訳をしなければならない場合があります(翻訳してコードを作ることをコード生成といいます)。そのため、時々、変換動作がうまく行かなかったり、無駄な動作を含んだコードが生成される場合があります。
開発ツールの評価時には、コード生成評価用のプログラムを作成して、どのような翻訳コードが生成されるか、正しい実行コードに変換されるか、無駄なコードはないか、翻訳のルールがANSI規格などの規格の動作をしているかなどを調べます。
▼ANSI(American National Standards Institute)
ASCII24 デジタル用語辞典
http://yougo.ascii24.com/gh/08/000816.html
プログラムの数量や規模を評価するのにステップ数という表現が多く採られていた(今でも使われているかも知れませんが)のをご存知の方もいらっしゃるかと思います。
高級言語では、命令の記述方法が柔軟になっているため、非常に多数の動作を含む命令を1命令文(1ステップ)として記載ができます。並列実行可能なSIMD命令などを利用したコードでは、1命令が1ステップではなくなっています。
ソースプログラムの量は、必ずしも、プログラムの複雑度や、ロジカルな規模とは比例しているわけではありませんので、ステップ数量によってプログラムの規模や質は的確に表されません。
量的には、客観的な数値ですが、それ以上でも、以下でもありません。百万ステップのプログラムの方が、千ステップのプログラムより規模が大きく、複雑だろうという推測は成り立つかも知れません...(乱暴な言い方でスミマセン。) (^^;
評価時には、さらに、ソースコードの書き方によって、翻訳結果に変化があるか、プロセッサ特有の命令を利用する方法なども調べます。
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)ソフトウェアの開発を行っています。 お客様のお役に立てることがございましたらご用命ください。