2. 2. 1 設計問題の分析

設計問題を分散オブジェクト間の通信問題とみることができます。ここでは、
- 要求された機能をいかに分散配置するか
- 高性能CPUコア上のプロセス、または、ハードウェアで実現するか
などを分析する必要があります。 また、 分散オブジェクト間の通信の設計は重要な問題です。
- どのようなプロトコルを使うか
- 分散オブジェクトの実現方法
- RTOS上のSW部品として実現
- HW部品として実現
など検討して、設計を進めなければなりません。

設計問題を分散オブジェクト間の通信問題とみることができます。ここでは、
などを分析する必要があります。 また、 分散オブジェクト間の通信の設計は重要な問題です。
など検討して、設計を進めなければなりません。
UMLは、 オブジェクト指向の考えが ソフトウェアに入り、ソフトウェアの設計方法が構造化設計 から大きくオブジェクト分析を中心とした 方法に変わる中で生まれました。 ソフトウェア工学上の知見を集大成し、 オブジェクト指向ソフトウェア開発手法としてUMLが定着しつつあります。 リアルタイム・組込みシステム向けのUMLシステムも提供されつつ あります。また、 UMLから組込みシステム向け開発プロセス定義の取り組み も始まりました。
UMLをSoC設計に使う利点を以下にあげます。
特にシーケンスチャートは、HW部品、SW部品間の連携を表す チャートとして、SoC設計にも有効に利用できます。
簡単な例として、SW部品、RTOS、BUS、HW部品の連携を シーケンスチャートとして表わした例を下記に示します。

システムの検証は、早期に、実行可能なモデル(Executable Model)を 記述し、シミュレーションを行いながら確認することが大切です。 これにより、仕様の見落としなどを早期に無くすこと可能になります。
従来は、ハードウェアの設計が完了してから、ソフトウェアの 開発に着手していたため、設計期間の長期化しがちでした。
最近、注目をあびている設計手法として、ソフトウェア/ハードウェアの 協調設計・協調検証を用いた設計手法です。
最近、C++をベースにしたハードウェア記述言語である、SystemCは このような目的に適した言語として注目されています。
SystemCではco-routineという手法で並列処理プロセスを モデル化する機能を持っています。 以下にSystemCでの並列処理プロセスのシーケンス 概念図を示します。

SystemCではsc_moduleの中で定義されたSC_THREADプロセスは wait文を実行するたびにSystemCカーネルに実行の制御を 移します。
この機能を使い、HW部品やRTOSなどの並行プロセスをモデル化 することが可能となります。