低コスト・低消費電力のカーナビ・システムを構築するためのハード&ソフト設計 ――拡張性のあるプロセッサ・ベースの開発プラットホーム作り
非定期的なタスクのスケジュールを設定する場合の例を図4に示します.図のいちばん下の黒色で示したスケジュールでは,上述のデータ駆動イベントが行われます.ここでは,ナビゲーションとオーディオ・システムが稼働していることを想定しています.ナビゲーション・システムは,フラッシュ・メモリに格納してある事前に計算された経路から必要な情報を取得し,オーディオ・システムはCDデータの再生を実行しています.この例では,ほとんどの時間はバッファに対してMP3復号が行われていますが,周期的な測位タスクによって定期的に割り込みがかかります.
図4の例では,ガイダンス実行用ソフトウェアは6回目のデータ駆動イベントまたはGPS駆動イベントによって,進行方法に関するメッセージを運転者のために準備する必要があることを認識します.すると,MP3復号とその関連タスクは停止しますが,オーディオの生データが事前にバッファリングされているため,再生はDMA経由で継続されています.この時点では,CPUパワーはガイダンス・メッセージの準備に使用されます.準備が完了すると,直ちに元のタスク(すなわちMP3復号処理)が続行され,音声ガイダンスを再生します.
図4 動的ソフトウェアの例
ナビゲーションとオーディオ・システムが稼働しているという想定.MP3データの再生と音声ガイダンスを実行するソフトウェアが,どのようなタイミングで処理を行っているかを示す.