JP2004086786A - System design support method and system design support apparatus - Google Patents
System design support method and system design support apparatus Download PDFInfo
- Publication number
- JP2004086786A JP2004086786A JP2002249910A JP2002249910A JP2004086786A JP 2004086786 A JP2004086786 A JP 2004086786A JP 2002249910 A JP2002249910 A JP 2002249910A JP 2002249910 A JP2002249910 A JP 2002249910A JP 2004086786 A JP2004086786 A JP 2004086786A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- hardware
- event
- software
- processing block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明はシステム設計支援方法およびシステム設計支援装置に関し、特にシステムの処理機能を機能処理ブロックに分割し、この機能処理ブロックをハードウェアとソフトウェアに分担してシステムの設計を行なうシステム設計支援方法およびシステム設計支援装置に関する。
【0002】
【従来の技術】
近年、SOC(System on a Chip) やSIP (System in a Package) 、SOP(System on a Package) などと呼ばれる半導体チップあるいは半導体パッケージ内に、命令セットを持ち演算実行を行なうプロセッサ、メモリや独自の命令セットを持つかプロセッサによって制御されるコ・プロセッサおよびディジタル周辺回路等のディジタル回路、場合により変調回路、増幅回路等のアナログ回路から構成される複合演算処理システム開発の要求が高まっている。
【0003】
このような半導体装置の開発においては、実現すべき機能をハードウェアとソフトウェアとの最適の組み合わせとして短時間に実現するため、ハード・ソフト協調設計環境の構築が重要な課題となっている。システム設計の処理手順について説明する。図18は、システム設計の処理手順のフローチャートである。
【0004】
システム設計では、まずシステム全体の処理動作の仕様を決定する(ステップS01)。次に、ステップS01で決定されたシステム全体の動作仕様を機能処理ブロックに分割し(ステップS02)、機能処理ブロックごとに処理の動作仕様を決定し(ステップS03)、機能処理ブロックをモデル化する(ステップS04)。続いて、各々の機能処理ブロックをASICなどのハードウェア、あるいはプロセッサなどで実行されるソフトウェアに分割するパーティショニングを行なう(ステップS05)。次に、パーティショニングされたシステム全体の性能、面積などのコストの見積もりを算出して検証を行ない(ステップS06)、見積もりの結果、システム設計者によって与えられる制約を満たしているかどうかを判定する(ステップS07)。満たしていない場合は、ステップS05へ戻ってパーティショニングからの処理を繰り返す。一般に、1回のパーティショニングで求められる制約が満たされることは稀であり、通常はハードウェアとソフトウェアの分担箇所を繰り返し変更し、システム全体の性能、面積などを見積もりながら制約を満たすパーティショニングを決定する。続いて、決定されたパーティショニングに基づいて、ハードウェア、ソフトウェアの詳細設計が開始される(ステップS08)。
【0005】
このパーティショニング決定の工程は、半導体装置開発上、非常に重要であり、パーティショニングの際には、プロセッサ、メモリ、コ・プロセッサ、ディジタル周辺回路等のディジタル回路あるいは変調回路、増幅回路等のアナログ回路のすべてを含むシステム全体の性能、面積などのコストを見積もり、システム設計者によって与えられる制約を満たすハードウェアとソフトウェアの分担を決定しなければならない。パーティショニングに使用する機能処理ブロックのモデルの精度が低く、正確に見積もれなかった場合、ハードウェア、ソフトウェアの詳細設計において、制約が満たされなくなることがある。この結果、システム設計者の要求する制約を満たすために、初期システム検討からやり直すか、制約自体を緩和しなければならない等、設計の長期化あるいは製品性能の劣悪化を招くおそれがある。
【0006】
このように、設計の効率化および製品性能を向上させるためには、正確な見積もりを行なう必要があり、正確な見積もりには、パーティショニングに使用する機能処理ブロックのモデルが一定の精度を持っていなければならない。例えば、初期システム検討の段階では、少なくとも処理シーケンスレベルの精度を持たねばならないし、使用半導体プロセスや使用プロセッサ等が決定した後期システム検討段階では、ハードウェア・ソフトウェアおよびそれぞれの間を結ぶインタフェース部分について、ディジタル回路ではサイクル精度、ディジタル−アナログ・ミックス回路ではさらに信号レベル精度を持たなければならない。このため、このモデリング手法について、様々な手法が提案されている。
【0007】
例えば、ハードウェアブロックのモデリング手法として、特開平11−3367号、あるいは特開2000−113026号公報記載の発明では、拡張ライブラリを使用して機能合成を行なう手法が開示されている。
【0008】
また、システムレベルの記述言語を用いたものとして、例えば特開2000−57199号公報、あるいは、Daniel D. Gajski他著「SpecC仕様記述言語と方法論」、CQ出版社、ISBN4−7898−3353−4、に詳しくそのモデリング手法が述べられている。このようなシステムレベル記述言語を用いたモデリングでは、データフロー(DFG:Data Flow Graph)や、コントロールフロー(FSM:Finite State Machine)や、その組み合わせを使用してモデルが構築される。図19は、データフローおよびコントロールフローによるモデル記述の一例である。(1)は、データフローでの記述、(2)はコントロールフローでの記述の一例である。(1)データフローでは、動作処理がデータの流れ図で示されている。また、(2)コントロールフローでは、動作処理が事象によって状態を遷移する有限状態機械によって示されている。
【0009】
同様に、ハード・ソフト協調設計手法のモデルとして、Felice Balarin他著、「Hardware−Software Co−design of embedded Systems, The POLIS Approach」、Kluwer Academic Publishers、ISBN 0−7923−9936−6、のCFSM(Codesign FSM:協調設計有限状態機械)モデルがある。
【0010】
【発明が解決しようとする課題】
しかし、従来のモデリング手法を用いたシステム設計方法では、システム設計時に使用したモデルを終始一貫して使用することができないという問題がある。
【0011】
一般に、パーティショニング段階におけるハード・ソフトの分担決定は、制約に応じて変更が繰り返される。例えば、ある機能はハードまたはソフトの何れでも作ることができるが、高速化などの点ではハードが有利であり、設計変更などに対する自由度が高いという点ではソフトが有利である場合、どちらが最適であるかは、使用半導体プロセスや使用プロセッサなどの使用半導体テクノロジーが決定していない初期システム検討の段階と、これらが決定した後期システム検討の段階では異なることもある。このため、機能処理ブロックモデルは、ハードウェアおよびソフトウェアのいずれにも対応できるものであることが望ましい。また、設計の効率を考えると、パーティショニングに使用する機能処理ブロックのモデルは、次段階のハードウェア、ソフトウェアの詳細設計においても使用できることが望ましい。
【0012】
しかしながら、従来の拡張ライブラリを使用して機能合成を行なうハードウェアブロックのモデリング手法は、ハードウェアの機能合成を目的とするものであり、ソフトウェアを含むシステム全体のモデリングを目的としたものでない。このため、動的処理シーケンスに対応できてなく、ソフトウェア分担に割り当てを変更することができない。
【0013】
また、システムレベル記述言語を用いてモデルを構築するモデリング手法では、特別な言語およびシミュレーション環境を用いて動的処理シーケンス、すなわち、機能処理ブロックの並行動作に対応している。しかしながら、動作分割後、ハードウェアあるいはソフトウェアの詳細設計を行なう際には、モデルを書き直す工程を必要とし、システム設計時に使用したモデルが終始一貫して使用することができないという問題がある。例えば、ハードウェアブロックの場合、システム記述言語で記述されたモデルを、HDL(Hardware Description Language:ハードウェア記述言語)に書き直さなければならない。
【0014】
さらに、現在のSOC内の演算処理は非常に高度化、複雑化されている。設計システム検討段階で必要とされる処理シーケンスについてさえ、静的シーケンス、静的スケジューリングなどのみで目的の演算処理が行なわれることは極めてまれである。例えば、映像、画像、音声など、広く情報処理と呼ばれる大多数の演算処理が動的シーケンス、動的スケジューリングなどによって達成されており、その処理シーケンスを正確に見積もり、次段階のシステム設計に繋げることが必要となっている。
【0015】
本発明はこのような点に鑑みてなされたものであり、ハードウェアとソフトウェアの分担を自在に切替えることができるとともに、システム設計時に使用したモデルを終始一貫して使用することが可能なシステム設計支援方法およびシステム設計支援装置を提供することを目的とする。
【0016】
【課題を解決するための手段】
本発明では上記課題を解決するために、コンピュータを用いて、システムの処理機能を機能処理ブロックに分割し、この機能処理ブロックをハードウェアとソフトウェアに分担して前記システムの設計を行なうシステム設計支援方法において、内部状態あるいは前記内部状態とその時点での入力値とによって定まる定常応答処理と、所定のイベントに応じて駆動される事象駆動処理とから成る機能処理ブロックモデルに基づいて、前記定常応答処理および前記事象駆動処理の動作を記述した動作仕様を入力・編集するステップと、作成された前記動作仕様に基づいて前記機能処理ブロックがハードウェアとソフトウェアに分担されるステップと、ハードウェアとソフトウェアに分担された前記機能処理ブロックの動作仕様についての評価を行なうステップと、を有することを特徴とするシステム設計支援方法、が提供される。
【0017】
このような手順のシステム設計支援方法では、コンピュータを用いて、定常応答処理と事象駆動処理とから構成される機能処理ブロックモデルに基づいて、定常応答処理と事象駆動処理の動作を記述した動作仕様を入力・編集する。次に、作成された動作仕様に基づいて設定される機能処理ブロックのハードウェアとソフトウェアの分担を入力する。次に、ハードウェアとソフトウェアに分担された機能処理ブロックの動作仕様についての評価を行なう。
【0018】
また、上記課題を解決するために、システムの処理機能を機能処理ブロックに分割し、前記機能処理ブロックをハードウェアとソフトウェアに分担して行なう前記システムの設計を支援するシステム設計支援装置において、内部状態あるいは前記内部状態とその時点での入力値とによって定まる定常応答処理と、所定のイベントに応じて駆動される事象駆動処理とから成る機能処理ブロックモデルに基づいて、前記定常応答処理および前記事象駆動処理の動作を記述した動作仕様の入力と編集を行なう動作仕様編集手段と、前記動作仕様編集手段により作成された前記動作仕様を記録する設計情報記録手段と、前記動作仕様が作成された前記機能処理ブロックをハードウェアとソフトウェアに分担する分担手段と、ハードウェアとソフトウェアに分担された前記機能処理ブロックの動作仕様についての評価を行なう機能処理ブロック評価手段と、を具備することを特徴とするシステム設計支援装置、が提供される。
【0019】
このような構成のシステム設計支援装置では、動作仕様編集手段は、定常応答処理と事象駆動処理とから構成される機能処理ブロックモデルに基づいて、定常応答処理と事象駆動処理の動作を記述した動作仕様を入力し、編集作業を支援する。さらに、作成された動作仕様を設計情報記録手段に記録する。分担手段は、動作仕様に基づいて作成された機能処理ブロックをハードウェアとソフトウェアに分担する設定の支援を行なう。機能処理ブロック評価手段は、ハードウェアとソフトウェアに分担が設定された機能処理ブロックの評価を行なう。
【0020】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概念について説明する。図1は、本発明の実施の形態に適用される発明の概念図である。本発明のシステム設計支援方法では、コンピュータを用いて、以下の手順で実行されるシステム設計の支援を行なう。
【0021】
本発明に係るシステム設計支援方法を用いたシステム設計では、システム全体の動作仕様が決定した後、機能処理ごとに分割される機能処理ブロックモデルとして、従来のモデリング手法に加え、システムの状態に着目し、定常応答処理と事象駆動処理とが択一に選択されて実行されるモデル構造を使用する。定常応答処理は、内部状態あるいは内部状態とその時点での入力値とによって決定される動作であり、有限状態機械の形で記述することができる。事象駆動処理は、所定のイベントが発生した場合、イベントに応じて駆動されて動作を行なう。
【0022】
ここで、システム設計の支援を行なうコンピュータは、情報を表示するモニタ110と、動作記述や指令などを入力するキーボード120を初めとする入力装置、および生成された動作仕様情報の記録や、性能評価時の使用データあるいは動作記述の入力や編集を支援するための情報を含む、設計情報を記録した設計情報データベース130に接続する。
【0023】
このようなコンピュータによるシステム設計支援装置を用いて、上記の説明の機能処理ブロックモデルに基づくシステム設計が行なわれる。以下、システム全体の仕様が決定され、システム全体の動作仕様が機能処理ブロックに分割された以降のシステム設計の手順を説明する。これは、図18に図示したシステム設計手順のステップS04以降のステップに相当する。
【0024】
まず、所定の機能処理ブロックにおいて実行される処理動作を定常応答処理と事象駆動処理に分割する(ステップS11)。
次に、分割された定常応答処理についての動作を記述した動作仕様をコンピュータに入力し、編集作業を行なう(ステップS12)。図1の例では、コンピュータは、キーボード120より入力する動作記述を処理し、モニタ110に表示する。設計者は、モニタ110で動作記述を確認し、必要であれば編集作業を行なう。ここでは動作記述をキーボード120より入力するとしたが、予め設計情報データベース130に登録されている部品を呼び出して使うなどの手法で動作記述を行なうこともできる。作成された動作仕様は、設計情報データベース130に記録される。
【0025】
次に、分割された事象駆動処理についての動作仕様をコンピュータに入力し、編集作業を行なう(ステップS13)。ステップS12と同様に動作記述の編集処理が行なわれ、設計情報データベース130に記録される。事象駆動処理の動作記述と定常応答処理の動作記述の順番は、どちらが先に行なわれてもよいし、機能処理に応じて交互に実行することもできる。
【0026】
ここまでの手順で、機能処理ブロックの動作仕様が決定され、設計情報データベース130に保存される。この動作仕様は、システムの状態に着目して記述されており、ハードウェア、ソフトウェアのどちらにも適用することができる。
【0027】
次に、この機能処理ブロックをハードウェアかソフトウェアに割り当てるパーティショニング設定が入力される(ステップS14)。図1の例では、入力されたパーティショニング設定は、機能処理ブロックごとに設計情報データベース130に記録される。
【0028】
次に、パーティショニングによりハードウェアあるいはソフトウェアが割り当てられた機能処理ブロックの動作仕様について評価が行なわれる(ステップS15)。評価では、システム設計の段階に応じて必要な情報を設計情報データベース130より取得し、動作仕様に基づいて模擬動作させ、見積もりを算出して行なう。例えば、使用半導体プロセスや使用プロセッサなどの仕様半導体テクノロジーが決定していない初期システムの検討段階では、動作仕様に基づく処理シーケンスを再現させ、これが制約を満たすかどうかの評価を行なう。
【0029】
評価の結果、制約を満たすためにハードウェアとソフトウェアの割り当てを変更する場合、ステップS14のパーティショニング設定からの処理を繰り返す。ここで、本発明の機能処理ブロックモデルは、システム状態に着目したモデルであるため、ソフトウェアおよびハードウェアいずれにも適用することができる。すなわち、ソフトウェアとハードウェアの分担を自在に切替えることができる。
【0030】
このように、ソフトウェアあるいはハードウェアといった区別なしにシステムが構築可能であり、自在に分担を切替えながらパーティショニングを検討することができることから、システムの性能見積もりを容易にすることができる。
【0031】
ここで、本発明で使用する機能処理ブロックモデルについて説明する。図2は、本発明の実施の形態である機能処理ブロックモデルの概念図である。
本発明の実施の形態で用いる機能処理ブロックモデルは、従来のモデリング手法に加え、システムの状態に着目している。すなわち、本発明に係るモデルでは、定常状態で実行される定常応答処理210と、イベント発生時に駆動される事象駆動処理220とを境界230によって明確に分離する。ここで、境界230は、定常応答処理210と事象駆動処理220とを分離する仮想的な境界を示しており、特別な演算を示すものではない。ここでは、定常応答処理210と事象駆動処理220とが明確に分離されることを示すため、図示されている。
【0032】
ここで定常応答処理210は、従来のモデリング手法におけるデータフローとコントロールフローの組み合わせで記述することができる。また、事象駆動処理220は、データフローとコントロールフローで記述されるが、好ましくはデータフローのみで記述される。
【0033】
この機能処理ブロックモデルでは、定常応答処理210と事象駆動処理220が択一に選択され、同時に並行に動作する。
ところで、コンピュータにより構成されるシステム設計支援装置では、システム設計を支援するためのデータ処理機能を有している。図3は、システム設計支援装置のハードウェア構成を示す図である。システム設計支援装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、が接続されている。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。グラフィック処理装置104には、モニタ110が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ110の画面に表示させる。入力インタフェース105には、キーボード120やマウス140が接続されている。入力インタフェース105は、キーボード120やマウス140から送られてくる信号を、バス107を介してCPU101に送信する。
【0034】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
続いて、このようなシステム設計支援装置100におけるシステム設計支援機能について説明する。図4は、システム設計支援装置の機能を示すブロック図である。図1と同じものには同じ番号を付し、説明は省略する。
【0035】
本発明に係るシステム設計支援装置は、定常応答処理の動作仕様を入力・編集する定常応答処理動作仕様エディタ部151、事象駆動処理の動作仕様を入力・編集する事象駆動処理動作仕様エディタ部152、パーティショニングを設定するパーティショニング部153、機能処理ブロックの評価を行なう機能処理ブロック評価部154および設計情報データベース130から構成される。
【0036】
設計情報データベース130は、定常応答処理動作仕様エディタ部151および事象駆動処理動作仕様エディタ部152から入力する動作仕様と、パーティショニング部153から入力するパーティショニングの設定を機能処理ブロックに対応させて記録して管理するとともに、機能処理ブロック評価部154による評価の際に必要な情報を記憶している。
【0037】
定常応答処理動作仕様エディタ部151および事象駆動処理動作仕様エディタ部152は、それぞれの処理の動作を記述した動作仕様を作成するための入力・編集作業を支援する動作仕様編集手段である。キーボードやマウスを介して入力される動作の記述あるいは動作記述の編集指示を処理し、動作仕様として設計情報データベース130に記録する。
【0038】
パーティショニング部153は、動作仕様が作成された機能処理ブロックのハードウェアとソフトウェアの分担を設定する分担手段である。設計情報データベース130に記録された機能処理ブロックの動作仕様をモニタ等に表示し、キーボードやマウス等を介して入力する設計者による分担の設定に基づいて、該当する機能処理ブロックのソフトウェアまたはハードウェアの設定を決定し、設計情報データベース130に登録する。
【0039】
機能処理ブロック評価部154は、パーティショニングがされた機能処理ブロックを設計情報データベース130に記録された動作仕様に基づいて再現し、評価を行なう機能処理ブロック評価手段である。
【0040】
以下、このようなシステム設計支援装置を用いたシステム設計支援方法について、具体例で説明する。
最初に、説明で用いる機能処理ブロックモデルを仮想的に具現化した表記について説明する。図5は、本発明の実施の形態である機能処理ブロックモデルの表記例である。この図は、発明モデルの便宜上の表記であり、本発明のモデル構造をわかりやすくするための図である。
【0041】
図5に示した機能処理ブロック201は、ブロックが定常応答処理部211と事象駆動処理部221とから構成されることを示している。また、機能処理ブロック201で示される枠は、機能処理ブロックのパーティショニングが完了しているかどうかを表すこととする。ここでは、機能処理ブロック201の枠内が塗りつぶされていない場合、割当未完であるとする。一方、機能処理ブロック201の枠内が所定の色で塗りつぶされている場合、割当完了であるとする。すなわち、図5に示した機能処理ブロック201はパーティショニング前であり、割当未完である。
【0042】
さらに、階調240で示される枠は、パーティショニングの結果、ソフトウェアあるいはハードウェアのいずれかが選択されたことを表すこととする。ここでは、階調240の枠内が塗りつぶされていない場合、ソフトウェアが割り当てられているとする。一方、階調240の枠内が所定の色で塗りつぶされている場合、ハードウェアが割り当てられているとする。階調240で示される枠による表記は、機能処理ブロック201の枠内が塗りつぶされている場合、すなわちパーティショニングが完了の場合のみ有効である。
【0043】
続いて、パーティショニングによりソフトウェアが割り当てられた場合と、ハードウェアが割り当てられた場合の機能処理ブロックの表記の例について説明する。
【0044】
まず、ソフトウェアが割り当てられた場合について説明する。図6は、ソフトウェアが割り当てられた機能処理ブロックの表記例である。図5と同じものには同じ番号を付し、説明は省略する。機能処理ブロック202は、定常応答処理部211と事象駆動処理部221とから構成されており、機能処理ブロック202の枠内は塗りつぶされて割当完了であることを表しており、階調241の枠内は塗りつぶされておらずソフトウェア割当であることを表している。
【0045】
次に、ハードウェアが割り当てられた場合について説明する。図7は、ハードウェアが割り当てられた機能処理ブロックの表記例である。図5と同じものには同じ番号を付し、説明は省略する。機能処理ブロック203は、定常応答処理部211と事象駆動処理部221とから構成されており、機能処理ブロック203の枠内は塗りつぶされて割当完了であることを表しており、階調242の枠内は塗りつぶされてハードウェア割当であることを表している。
【0046】
このように、システム仕様から機能処理を分割された機能処理ブロックモデルは、定常応答処理(データフローとコントロールフローの組み合わせで表現される)と、事象駆動処理(好ましくはデータフローのみで表現される)を択一に選択し、すべてのシミュレーション工程において同時かつ並行に動作される。定常応答処理と事象駆動処理の切り替えは、多くは、ブロック内部変数によって伝達される、このブロック内部のイベント、あるいは、このブロックが外部に公開しているブロック内部変数への書き込みによって伝達される該ブロックの外部イベントによって行なわれる。
【0047】
次に、機能処理ブロックの動作仕様の記述例について説明する。まず、定常応答処理、続いて事象駆動処理の動作記述について説明する。
図8は、本発明の実施の形態である定常応答処理の動作記述例である。ここでは、プログラミング言語により記述されており、定常応答処理部801は、有限状態機械の形で記述されている。図8の例では、定常応答処理は、ブロック0の状態を示すBLOCK0_STATEの値によって分岐処理を行なっており(802)、BLOCK0_STATEがBLOCK0_ST_INTの場合(803)、BLOCK0_ST_IDLEの場合(804)およびBLOCK0_ST_RUNの場合(805)の各動作が記述されている。ここで、動作記述は、使用するプログラム言語に依存しておらず、分岐処理記述を持ったプログラミング言語であれば、同様の動作記述を行なうことができる。
【0048】
図9は、本発明の実施の形態である事象駆動処理の動作記述例である。駆動応答処理部分は、データフローあるいはコントロールフローで記述することが可能であるが、好ましくは、データフローのみで記述する。図9の例では、発生する事象それぞれに対応する副処理ブロック901と902とに分割され、副処理ブロック901、902ごとに、その事象に応じて駆動される動作が記述される。
【0049】
なお、本発明の機能処理ブロックモデルを使用したシステムの構築には、モデル記述内で使用される変数のいわゆるスコープを明確にしなければならない。このモデルは、定常応答処理部と事象駆動処理部から成り、モデル記述中に使用される変数はすべてこのモデル内にスコープを閉じることが要求される。すなわち、好ましくは、モデル記述内に使用される変数はすべてユニークな変数名であり、さらに、使用するプログラミング言語のスコープ指定により完全に他ブロックの影響を遮断することが望ましい。本発明のモデルの定常応答処理部と事象駆動処理部との関連処理は、このスコープを閉じた変数によって行なう。図8と図9の例では、ブロック0の状態変数(BLOCK0_STATE)によって行なう。言い換えると、モデルで記述されるブロックとその外部ブロックとの通信は、呼び出される(いわゆるスレーブ側)ブロックモデルの事象駆動処理部に、呼び出す側(いわゆるマスター側)からイベント(事象)与えることによって行なわれる。
【0050】
ここで、図8に示した定常応答処理部は、ソフトウェア割り当てではメインルーチンとなり、ハードウェア割り当てでは順序回路として機能することが自明である。また、図9に示した事象駆動処理部は、ソフトウェア割り当てでは割り込み処理部分となり、ハードウェア割り当てでは組み合わせ論理回路として機能することが自明である。また、事象駆動処理にコントロールフローでの記述が含まれている場合、順序論理回路が含まれる。図9の例では、事象駆動処理部(副処理ブロック901,902)はすべて、ブロック0がスレーブとしてイベントを受ける場合に起動され、かつその信号の方向(入力側なのか出力側なのか)にまったく無関係であることがわかる。
【0051】
このように、本発明の機能処理ブロックモデルでは、ハードウェアとソフトウェアの入れ替えが容易であるばかりでなく、システム設計時のパーティショニングを決定する前に実際のインプリメントごとのソフトウェア、あるいはハードウェア形態を容易に予測することができる。
【0052】
以上のように、本発明では、ハードウェアとソフトウェアを同一の機能処理ブロックモデルで表現することができることから、ハードウェアあるいはソフトウェア分担を相互に入れ替えながらシステム設計を行なうことが可能となる。さらに、性能、面積などコスト見積もり後にシステムアーキテクチャが決定した後、機能処理ブロックがハードウェア、ソフトウェアのどちらに割り当てられている場合であっても、モデルの抽象度を詳細化するのみであり、割り当てによりモデルを書き直す必要はまったく生じず、終始一貫したモデル構造の使用が可能となる。また、システム設計者の意図を示すモデル記述は、どの抽象レベルにいても完全に保持することができる。
【0053】
次に、機能評価を行なう際のシミュレーション工程について説明する。図10は、本発明の実施の形態であるシミュレーション工程を示すフローチャートの例である。図10に示したシミュレーション工程では、動作仕様の記述が行なわれた機能処理ブロックをタスク(図ではタスク0からタスク3)に割り当て、シミュレーション処理を起動する。具体的には、シミュレーション処理が開始されると、まずブロック0に割り当てられたタスク0が起動され(S151)、続いて、ブロック1に割り当てられたタスク1が起動され(S152)、ブロック2に割り当てられたタスク2が起動され(S153)、ブロック3に割り当てられたタスク3が起動される(S154)。それぞれのタスク処理が起動されると、タスク0からタスク3まで順に、イベント発生の有無をチェックし、イベント発生が発生していれば、これに応じたシミュレーション処理が行なわれる。どのタスクについての処理も同じであるので、タスク0の場合で説明する。シミュレーション処理では、イベントが発生したかどうかの判定が行なわれ(S1511)、判定結果に応じて事象駆動処理(S5112)、または定常応答処理(S1513)が実行される。これらの処理は、あらかじめ設定された単位時間などに到達するまで繰り返される。
【0054】
このように、すべての機能処理ブロックを同時並行に動作させることが可能であるため、実際の動作を再現することが可能であり、この結果検証が容易に行なえるようになる。
【0055】
なお、図10の例では、イベント処理部1001は厳密なイベント発生順を再現できていない。すなわち、複数のイベントが同一ループ内で発生した場合のシーケンスは正しく再現せず、同一のループ内での唯一のイベントが発生した場合のみ正しく表現できる。これは、シミュレータのイベント処理部1001は、シミュレータを実行するコンピュータ環境に依存しているためである。これについては、たとえば、オペーレーティングシステム(OS)のイベントキューを使用し、ファーストイン・ファーストアウトの概念でタスクスイッチを行なうなどの種々の変形例が考えられる。このように、イベント発生シーケンスに忠実であることが好ましい。シミュレータの定常応答処理部1002も同様にシミュレータを実行するコンピュータ環境に依存し、機能処理ブロックがアイドル状態にあるときの空回りを抑制するシミュレーション機構を構築し、シミュレーション時間の短縮を図るなどの変形例が考えられる。
【0056】
このように、動的処理シーケンスを正確にシミュレーションすることが可能であり、従って性能、面積などのコストを正確に見積もることが可能となる。また、システム検証時の不具合検出率の向上にも寄与することができる。
【0057】
以下、本発明を適用した具体例として、一般的な1プロセッサシステムLSI、プロセッサを含まないLSI、マルチプロセッサシステム、マルチタスクシステムおよびシステム内システムに本発明を適用した場合について図を用いて順に説明する。以下の説明に用いる図は、図5、図6および図7で用いた機能処理ブロックモデルの表記例を用いている。
【0058】
第1に、一般的な1プロセッサシステムLSIの場合について説明する。図11は、一般的な1プロセッサシステムLSIに適用した場合のシステム構成図の例である。図11の例では、所定の処理機能を実行する機能処理ブロック1101、1102、1103、1104、1105、1106、1107、1108が相互に接続するシステム構成であり、機能処理ブロック1101にはソフトウェアが割り当てられており、他の機能処理ブロック1102、1103、1104、1105、1106、1107、1108にはハードウェアが割り当てられている。ソフトウェアが割り当てられている機能処理ブロック1101は、プロセッサによりソフトウェア処理を実行するブロックであり、定常応答処理部1121と事象駆動処理部1122とから構成されている。同様に、ハードウェアが割り当てられている機能処理ブロック1102も、定常応答処理部1123と事象駆動処理部1124とから構成されている。明らかに、ソフトウェアあるいはハードウェア割り当てによってモデル構成が変化することなく、共通のモデルによって表現される。また、どちらに割り当てても、実際のインプリメント後のブロック構成の予測性を損なうことがない。
【0059】
第2に、プロセッサを含まないLSI(いわゆるASIC)の場合について説明する。図12は、プロセッサを含まないLSIに適用した場合のシステム構成図の例である。図12の例は、図11と同様に、機能処理ブロック1201、1202、1203、1204、1205、1206、1207、1208が相互に接続するシステム構成であり、すべての機能処理ブロックにハードウェアが割り当てられている。このハードウェアが割り当てられた機能処理ブロックも、定常応答処理部1221と事象駆動処理部1222とから構成されている。このように、本発明では、プロセッサを含まず、すべてがハードウェア割り当て機能処理ブロックで構成されるシステムも、図11に示したソフトウェア割り当て機能処理ブロックを含む場合と同様に動作を記述することができる。
【0060】
第3に、マルチプロセッサシステム(いわゆる並列コンピューティング)の場合について説明する。図13は、マルチプロセッサシステムに適用した場合のシステム構成図の例である。図13の例は、図12と同様に、機能処理ブロック1301、1302、1303、1304、1305、1306、1307、1308が相互に接続するシステム構成であるが、すべての機能処理ブロックにはソフトウェアが割り当てられている。このソフトウェアが割り当てられた機能処理ブロックも、定常応答処理部1321と事象駆動処理部1322とから構成されている。このように、本発明では、すべてがソフトウェア割り当て機能処理ブロックで構成されるシステムも、図11に示したソフトウェア割り当て機能処理ブロックとハードウェア割り当て機能処理ブロックが混合された場合、あるいは、図12に示したすべてがハードウェア割り当て機能処理ブロックで構成される場合と同様に動作を記述することができる。
【0061】
第4に、マルチタスクシステムの場合について説明する。図14は、マルチタスクシステムに適用した場合のシステム構成図の例である。図14の例のマルチタスクシステムは、階層構造をとっており、すべての機能処理ブロック1401、1402、1403、1404にはソフトウェアが割り当てられている。プロセッサ上のカーネルプログラムに相当する機能処理ブロック1401が最上位階層となり、カーネルプログラム支配下の各タスクに相当する機能処理ブロック1402、1403、1404が下の階層になる。カーネルプログラムに相当する機能処理ブロック1401も、定常応答処理部1421と事象駆動処理部1422とから構成され、その支配下の各タスクも定常応答処理部と事象駆動処理部とから構成されている。カーネルプログラムは、いわゆるOSの使用が一般的である。その場合にも、カーネルプログラムと支配下の各タスクとの関係、および各タスクとの関係は保持されるため、モデル構成を変更する必要がない。
【0062】
また、図15は、マルチタスクシステムに適用した場合の動作仕様の記述例である。動作仕様は、最上位階層の機能処理ブロック1401のものであり、記述の最上位階層に相当する動作記述部1501は、カーネルプログラムを意味する。続く、動作記述部1502では、タスクの生成処理が記述され、次の動作記述部1503では、タスクを実行状態にする処理が記述されている。すなわち、各タスクに相当する機能処理ブロック1402、1403、1404は、動作記述部1502において生成され、動作記述部1503において実行状態となる。この動作記述部1501は、システム設計の後期にはOSに置き換えられ、タスク生成の動作記述部1502およびタスク実行の動作記述部1503は、一般にOSのサービスルーチンコールとして置き換えられる。置き換えの際には、モデルの抽象度を詳細化するのみであり、モデルを書き直す必要がまったく生じない。すなわち、終始一貫したモデル構造の使用が可能となる。
【0063】
このように、階層化構造を有するシステムも、同様に動作記述することが可能であり、階層化構造に対するモデル構造のロバスト性が高い。
第5に、システム内システム(いわゆるSIP、SOP)の場合について説明する。図16は、システム内システムに適用した場合のシステム構成図の例である。図16の例のシステム内システムは、階層構造をとっており、機能処理ブロック1601、1602、1603にはハードウェアが割り当てられ、機能処理ブロック1604、1605、1607、1608にはソフトウェアが割り当てられている。システム構成の最上位階層となる機能処理ブロック1601は、ハードウェアによるシステム全体の制御回路を想定しているが、単にサブシステムが合体した構成でもよい。この場合、機能処理ブロック1601は省略可能である。機能処理ブロック1602、1603は、サブシステムを示している。ここで、機能処理ブロック1601上のサブシステムは、すべてプロセッサを含んだSOCを想定しているが、まったくプロセッサを含まなくとも、プロセッサを含むものと含まないものとの双方が混在していようとも、システム構築、シミュレーションによる検証ともに可能である。さらに、サブシステムがアナログ回路であってもモデル上何ら問題は生じず、単にアナログ−ディジタルレベルコンバータブロックモデルを、アナログ−ディジタル界面に挿入することのみで表現、実行可能となる。これは、発明モデルの抽象度(あるいは計算粒度)に制限がないことを証明しており、異なる抽象度のモデルを混在させて性能や面積などのコストを見積もることが可能であることを意味する。
【0064】
また、図17は、システム内システムに適用した場合の動作仕様の記述例である。動作記述部1701は、最上位階層を示している。動作記述部1702は、サブシステムの初期化処理を記述しており、動作記述部1703は、サブシステムの有効化処理を記述している。
【0065】
なお、本発明は以上の適用例にのみ限定されるものではなく、例えば、第1の適用例と第4の適用例の組み合わせ、第3の適用例と第4の適用例の組み合わせというような種々の変形が考えられる。
【0066】
以上の説明のように、本発明は、現在考慮されるあらゆるシステム構成に対応することが可能である。例えば、プロセッサ上のハードウェアシステムが、今後本格的な一般化が期待されるハードウェア部追加による拡張命令セットの使用が可能なプロセッサシステムのシステムモデルを意味するなど、現在一般化していない構成の検討および性能見積もりが可能となる。さらに、動作記述は一般的なプログラミング言語全般で行なうことができるため、特別なシミュレーション環境を必要としない。このように、一般的なプログラミング言語全般でのモデル構築が可能であることから、一旦構築したモデルあるいはシステムの再利用が容易にできる。
【0067】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、システム設計支援装置が有すべき機能の処理内容を記述したプログラムが提供される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
【0068】
また、プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムを、自己の記憶装置に格納する。そして、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【0069】
【発明の効果】
以上説明したように本発明のシステム設計支援方法では、従来のモデリング手法に加え、システムの状態に着目し、定常応答処理と事象駆動処理の択一モデル構成に拡張した機能処理ブロックモデルを用いており、ハードウェアおよびソフトウェアの双方に適用することができる。このため、システム設計の際に必須となるパーティショニング検討時に、ハードウェアとソフトウェアの分担を自在に切替えながら検討できることとなり、システムの性能見積もりを容易にすることができる。また、詳細設計においては、機能処理ブロックモデルの抽象度を詳細化するのみでよく、ハードウェア、ソフトウェアのどちらに割り当てられても、終始一貫したモデルを使用することができる。
【0070】
また、本発明のシステム設計支援装置では、従来のモデリング手法に加え、システムの状態に着目し、定常応答処理と事象駆動処理の択一モデル構成に拡張した機能処理ブロックモデルに従って、処理機能の動作を記述した動作仕様を入力し、パーティショニングの設定に応じて機能処理ブロックの評価を行なう。このとき、パーティショニングにおいて、ハードウェアとソフトウェアの分担を自在に切替え、評価を行なうことができるため、システムの性能見積もりを容易にすることができる。また、次段の詳細設計では、同一の機能処理ブロックモデルを用いて、モデルの抽象度を詳細化する動作記述を入力・編集することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に適用される発明の概念図である。
【図2】本発明の実施の形態である機能処理ブロックモデルの概念図である。
【図3】システム設計支援装置のハードウェア構成を示す図である。
【図4】システム設計支援装置の機能を示すブロック図である。
【図5】本発明の実施の形態である機能処理ブロックモデルの表記例である。
【図6】ソフトウェアが割り当てられた機能処理ブロックの表記例である。
【図7】ハードウェアが割り当てられた機能処理ブロックの表記例である。
【図8】本発明の実施の形態である定常応答処理の動作記述例である。
【図9】本発明の実施の形態である事象駆動処理の動作記述例である。
【図10】本発明の実施の形態であるシミュレーション工程を示すフローチャートの例である。
【図11】一般的な1プロセッサシステムLSIに適用した場合のシステム構成図の例である。
【図12】プロセッサを含まないLSIに適用した場合のシステム構成図の例である。
【図13】マルチプロセッサシステムに適用した場合のシステム構成図の例である。
【図14】マルチタスクシステムに適用した場合のシステム構成図の例である。
【図15】マルチタスクシステムに適用した場合の動作仕様の記述例である。
【図16】システム内システムに適用した場合のシステム構成図の例である。
【図17】システム内システムに適用した場合の動作仕様の記述例である。
【図18】システム設計の処理手順のフローチャートである。
【図19】データフローおよびコントロールフローによるモデル記述の一例である。
【符号の説明】
110・・・モニタ、120・・・キーボード、130・・・設計情報データベース、151・・・定常応答処理動作仕様エディタ部、152・・・事象駆動処理動作仕様エディタ部、153・・・パーティショニング部、154・・・機能処理ブロック評価部、210・・・定常応答処理、220・・・事象駆動処理、230・・・境界[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a system design support method and a system design support apparatus, and more particularly, to a system design support method for dividing a processing function of a system into functional processing blocks, and sharing the functional processing blocks between hardware and software to design a system. The present invention relates to a system design support device.
[0002]
[Prior art]
2. Description of the Related Art In recent years, a processor, a memory, an original processor, which has an instruction set and performs execution in a semiconductor chip or semiconductor package called SOC (System on a Chip), SIP (System in a Package), SOP (System on a Package), etc. There is an increasing demand for developing a complex arithmetic processing system comprising a digital circuit such as a co-processor and a digital peripheral circuit having an instruction set or controlled by a processor, and possibly an analog circuit such as a modulation circuit and an amplification circuit.
[0003]
In the development of such a semiconductor device, construction of a hardware-software cooperative design environment is an important issue in order to realize a function to be realized as an optimal combination of hardware and software in a short time. The processing procedure of the system design will be described. FIG. 18 is a flowchart of the processing procedure of the system design.
[0004]
In the system design, first, the specifications of the processing operation of the entire system are determined (step S01). Next, the operation specifications of the entire system determined in step S01 are divided into function processing blocks (step S02), and operation specifications of processing are determined for each function processing block (step S03), and the function processing blocks are modeled. (Step S04). Subsequently, partitioning for dividing each functional processing block into hardware such as an ASIC or software executed by a processor or the like is performed (step S05). Next, an estimate of the cost, such as the performance and area, of the entire partitioned system is calculated and verified (step S06), and as a result of the estimation, it is determined whether or not the constraints given by the system designer are satisfied (step S06). Step S07). If not, the process returns to step S05 to repeat the processing from partitioning. In general, it is rare that a single partitioning satisfies the constraints. Normally, the allocation of hardware and software is repeatedly changed, and partitioning that satisfies the constraints is estimated while estimating the performance and area of the entire system. decide. Subsequently, detailed design of hardware and software is started based on the determined partitioning (step S08).
[0005]
The process of determining partitioning is very important in the development of semiconductor devices. In partitioning, digital circuits such as processors, memories, co-processors, and digital peripheral circuits or analog circuits such as modulation circuits and amplifier circuits are used. It is necessary to estimate the performance, area, and other costs of the entire system including all the circuits, and determine the sharing of hardware and software that satisfies the constraints imposed by the system designer. If the accuracy of the model of the functional processing block used for partitioning is low and cannot be estimated accurately, the constraints may not be satisfied in the detailed design of hardware and software. As a result, in order to satisfy the constraints required by the system designer, it is necessary to start over from the initial system examination or to relax the constraints themselves, which may lead to a prolonged design or deterioration of product performance.
[0006]
As described above, accurate estimation must be performed in order to improve design efficiency and product performance, and a model of the functional processing block used for partitioning has a certain degree of accuracy. There must be. For example, at the stage of studying the initial system, accuracy must be at least at the processing sequence level. At the stage of studying the late system where the semiconductor process to be used and the processor to be used have been determined, the hardware and software and the interface between them have to be considered. Digital circuits must have cycle accuracy, and digital-analog mix circuits must have further signal level accuracy. For this reason, various techniques have been proposed for this modeling technique.
[0007]
For example, as a hardware block modeling method, Japanese Patent Application Laid-Open Nos. 11-3367 and 2000-113026 disclose a method of performing function synthesis using an extended library.
[0008]
In addition, as an example using a system-level description language, Japanese Patent Application Laid-Open No. 2000-57199 or Daniel D. Gajski et al., "SpecC Specification Language and Methodology", CQ Publishing Company, ISBN4-7898-3353-4, describe the modeling method in detail. In modeling using such a system level description language, a model is constructed using a data flow (DFG: Data Flow Graph), a control flow (FSM: Fine State Machine), or a combination thereof. FIG. 19 is an example of a model description using a data flow and a control flow. (1) is an example of a description in a data flow, and (2) is an example of a description in a control flow. (1) In the data flow, the operation process is shown by a data flow diagram. In the (2) control flow, the operation process is represented by a finite state machine that transitions states according to events.
[0009]
Similarly, as a model of the hardware-software co-design method, Felice Balarin et al., "Hardware-Software Co-design of embedded Systems, The POLIS Approach", Kluwer Academic0-36- There is a Codesign FSM (Cooperative Design Finite State Machine) model.
[0010]
[Problems to be solved by the invention]
However, the conventional system design method using the modeling technique has a problem that the model used at the time of system design cannot be used consistently.
[0011]
In general, the determination of the assignment of hardware and software in the partitioning stage is repeatedly changed according to the restrictions. For example, a function can be created with either hardware or software, but if hardware is advantageous in terms of speeding up, and software is advantageous in terms of high degree of freedom for design changes, etc. In some cases, there may be a difference between the stage of the initial system study where the semiconductor technology to be used such as the semiconductor process and the processor to be used is not determined, and the stage of the late system study where these are determined. For this reason, it is desirable that the functional processing block model can support both hardware and software. Considering the design efficiency, it is desirable that the model of the functional processing block used for partitioning can be used in the detailed design of hardware and software at the next stage.
[0012]
However, a conventional hardware block modeling method for performing function synthesis using an extended library is for the purpose of hardware function synthesis, and is not for modeling the entire system including software. For this reason, it is not possible to cope with the dynamic processing sequence, and it is not possible to change the allocation for software allocation.
[0013]
Further, a modeling technique for constructing a model using a system-level description language supports a dynamic processing sequence, that is, a parallel operation of functional processing blocks, using a special language and a simulation environment. However, when the detailed design of hardware or software is performed after the operation is divided, a step of rewriting the model is required, and there is a problem that the model used at the time of system design cannot be used consistently. For example, in the case of a hardware block, a model described in a system description language must be rewritten in HDL (Hardware Description Language).
[0014]
Further, the arithmetic processing in the current SOC is very sophisticated and complicated. Even for the processing sequence required in the design system study stage, it is extremely rare that the target arithmetic processing is performed only by a static sequence, static scheduling, or the like. For example, the vast majority of computations, such as video, images, and audio, which are widely referred to as information processing, are achieved by dynamic sequences, dynamic scheduling, etc., and the processing sequences must be accurately estimated and linked to the next system design. Is needed.
[0015]
The present invention has been made in view of such a point, and it is possible to freely switch the allocation of hardware and software, and to use a system design that can consistently use a model used at the time of system design. It is an object to provide a support method and a system design support device.
[0016]
[Means for Solving the Problems]
In the present invention, in order to solve the above problem, a computer is used to divide a processing function of a system into functional processing blocks, and to assign the functional processing blocks to hardware and software to design the system. The method according to
[0017]
In the system design support method of such a procedure, an operation specification that describes the operations of the steady-state response processing and the event-driven processing based on a functional processing block model composed of the steady-state response processing and the event-driven processing using a computer. Enter and edit. Next, the assignment of the hardware and software of the function processing blocks set based on the created operation specifications is input. Next, the operation specifications of the functional processing blocks assigned to hardware and software are evaluated.
[0018]
In order to solve the above-mentioned problem, a system design support apparatus which divides a processing function of a system into function processing blocks, and supports the design of the system by sharing the function processing blocks with hardware and software. The steady-state response processing and the event processing are performed based on a functional processing block model including a steady-state response processing determined by a state or the internal state and an input value at that time, and an event drive processing driven in response to a predetermined event. An operation specification editing unit for inputting and editing an operation specification describing an operation of the elephant driving process; a design information recording unit for recording the operation specification created by the operation specification editing unit; Sharing means for sharing the function processing block into hardware and software; and hardware and software. Shared by said functional processing system design support apparatus for a function processing block evaluation means for evaluation of the operation specifications of the block, characterized by comprising, are provided.
[0019]
In the system design support apparatus having such a configuration, the operation specification editing means performs the operation describing the operation of the steady-state response processing and the event-driven processing based on the functional processing block model composed of the steady-state response processing and the event-driven processing. Enter specifications and support editing work. Further, the created operation specifications are recorded in the design information recording means. The sharing means supports setting for sharing the function processing blocks created based on the operation specifications to hardware and software. The functional processing block evaluation means evaluates a functional processing block in which the assignment of hardware and software is set.
[0020]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
First, the concept of the invention applied to the embodiment will be described. FIG. 1 is a conceptual diagram of the invention applied to the embodiment of the present invention. In the system design support method of the present invention, a computer is used to support system design executed in the following procedure.
[0021]
In the system design using the system design support method according to the present invention, after the operation specifications of the entire system are determined, attention is paid to the state of the system in addition to the conventional modeling method as a function processing block model divided for each function processing. Then, a model structure is used in which the stationary response process and the event driven process are selected and executed. The steady-state response process is an operation determined by an internal state or an internal state and an input value at that time, and can be described in the form of a finite state machine. In the event driving process, when a predetermined event occurs, the event driving process is driven and operated according to the event.
[0022]
Here, a computer for supporting system design includes a
[0023]
Using such a computer-based system design support apparatus, a system is designed based on the functional processing block model described above. Hereinafter, the procedure of the system design after the specification of the entire system is determined and the operation specifications of the entire system are divided into functional processing blocks will be described. This corresponds to the steps after step S04 of the system design procedure shown in FIG.
[0024]
First, a processing operation executed in a predetermined functional processing block is divided into a steady response processing and an event driving processing (step S11).
Next, an operation specification describing the operation of the divided steady-state response process is input to the computer, and editing is performed (step S12). In the example of FIG. 1, the computer processes the operation description input from the
[0025]
Next, the operation specifications for the divided event drive processing are input to the computer, and editing is performed (step S13). The process of editing the operation description is performed in the same manner as in step S12, and is recorded in the
[0026]
The operation specifications of the function processing block are determined by the above procedure, and are stored in the
[0027]
Next, a partitioning setting for allocating the functional processing block to hardware or software is input (step S14). In the example of FIG. 1, the input partitioning settings are recorded in the
[0028]
Next, the operation specification of the functional processing block to which the hardware or the software is allocated by the partitioning is evaluated (Step S15). In the evaluation, necessary information is obtained from the
[0029]
As a result of the evaluation, when the allocation of hardware and software is changed to satisfy the constraint, the processing from the partitioning setting in step S14 is repeated. Here, the functional processing block model of the present invention is a model focusing on the system state, and thus can be applied to both software and hardware. That is, the assignment of software and hardware can be freely switched.
[0030]
As described above, a system can be constructed without discrimination between software and hardware, and partitioning can be considered while freely switching the assignment, thereby facilitating estimation of system performance.
[0031]
Here, a functional processing block model used in the present invention will be described. FIG. 2 is a conceptual diagram of a functional processing block model according to an embodiment of the present invention.
The functional processing block model used in the embodiment of the present invention focuses on the state of the system in addition to the conventional modeling method. That is, in the model according to the present invention, the steady-state response process 210 executed in the steady state and the event drive process 220 driven when an event occurs are clearly separated by the boundary 230. Here, the boundary 230 indicates a virtual boundary separating the steady response processing 210 and the event driving processing 220, and does not indicate a special operation. Here, it is illustrated to show that the steady response process 210 and the event drive process 220 are clearly separated.
[0032]
Here, the stationary response process 210 can be described by a combination of a data flow and a control flow in a conventional modeling method. The event driven process 220 is described by a data flow and a control flow, but is preferably described only by a data flow.
[0033]
In this functional processing block model, the stationary response processing 210 and the event driving processing 220 are selected as alternatives, and operate in parallel at the same time.
By the way, a system design support device constituted by a computer has a data processing function for supporting system design. FIG. 3 is a diagram illustrating a hardware configuration of the system design support apparatus. The whole system design support apparatus 100 is controlled by a CPU (Central Processing Unit) 101. To the
[0034]
With the above hardware configuration, the processing functions of the present embodiment can be realized.
Next, a system design support function in such a system design support apparatus 100 will be described. FIG. 4 is a block diagram illustrating functions of the system design support apparatus. The same components as those in FIG. 1 are denoted by the same reference numerals, and description thereof is omitted.
[0035]
The system design support apparatus according to the present invention includes a stationary response processing operation
[0036]
The
[0037]
The steady response processing operation
[0038]
The
[0039]
The function processing
[0040]
Hereinafter, a system design support method using such a system design support apparatus will be described with a specific example.
First, a description will be given of a notation that virtually embodies a functional processing block model used in the description. FIG. 5 is a notation example of a functional processing block model according to the embodiment of the present invention. This diagram is a notation for convenience of the invention model, and is a diagram for making the model structure of the invention easy to understand.
[0041]
The function processing block 201 illustrated in FIG. 5 indicates that the block includes a steady
[0042]
Further, the frame indicated by the gradation 240 indicates that either software or hardware is selected as a result of the partitioning. Here, when the inside of the frame of the gradation 240 is not painted, it is assumed that software is assigned. On the other hand, when the inside of the frame of the gradation 240 is painted with a predetermined color, it is assumed that hardware is assigned. The notation by the frame indicated by the gradation 240 is valid only when the inside of the frame of the function processing block 201 is painted, that is, when the partitioning is completed.
[0043]
Next, examples of notation of functional processing blocks when software is allocated by partitioning and when hardware is allocated will be described.
[0044]
First, a case where software is assigned will be described. FIG. 6 is a notation example of a function processing block to which software is assigned. The same components as those in FIG. 5 are denoted by the same reference numerals, and description thereof will be omitted. The function processing block 202 includes a steady
[0045]
Next, a case where hardware is allocated will be described. FIG. 7 is a notation example of a function processing block to which hardware is assigned. The same components as those in FIG. 5 are denoted by the same reference numerals, and description thereof will be omitted. The function processing block 203 includes a steady
[0046]
As described above, the functional processing block model obtained by dividing the functional processing from the system specifications includes a stationary response processing (represented by a combination of a data flow and a control flow) and an event-driven processing (preferably represented only by a data flow). ) To operate simultaneously and in parallel in all simulation steps. Switching between the steady-state response process and the event-driven process is mostly transmitted by an internal variable of the block, or transmitted by an event inside the block or by writing to a block internal variable that the block discloses to the outside. Performed by an external event of the block.
[0047]
Next, a description example of the operation specification of the function processing block will be described. First, the operation description of the steady-state response process and subsequently the event-driven process will be described.
FIG. 8 is an operation description example of the steady-state response processing according to the embodiment of the present invention. Here, it is described in a programming language, and the steady-state
[0048]
FIG. 9 is an operation description example of the event drive processing according to the embodiment of the present invention. The drive response processing part can be described by a data flow or a control flow, but is preferably described only by a data flow. In the example of FIG. 9, the operation is divided into
[0049]
In constructing a system using the functional processing block model of the present invention, the so-called scope of variables used in the model description must be clarified. This model consists of a steady-state response processor and an event-driven processor, and all variables used in the model description are required to close the scope in this model. That is, preferably, all variables used in the model description are unique variable names, and it is desirable to completely block the influence of other blocks by specifying the scope of the programming language used. The related processing between the steady-state response processing unit and the event drive processing unit of the model of the present invention is performed by using a variable whose scope is closed. In the example of FIG. 8 and FIG. 9, this is performed by the state variable of block 0 (BLOCK0_STATE). In other words, communication between the block described by the model and its external block is performed by giving an event (event) from the calling side (so-called master side) to the event drive processing unit of the called (so-called slave side) block model. It is.
[0050]
Here, it is obvious that the steady-state response processing unit shown in FIG. 8 functions as a main routine in software allocation and functions as a sequential circuit in hardware allocation. In addition, it is obvious that the event drive processing unit shown in FIG. 9 functions as a combinational logic circuit when assigned by software and becomes an interrupt processing unit when assigned by software. When the event-driven process includes a description in the control flow, a sequential logic circuit is included. In the example of FIG. 9, all of the event driven processing units (sub-processing blocks 901 and 902) are activated when
[0051]
As described above, according to the functional processing block model of the present invention, it is not only easy to replace hardware and software, but also to determine software or hardware form for each actual implementation before determining partitioning at the time of system design. It can be easily predicted.
[0052]
As described above, according to the present invention, hardware and software can be represented by the same functional processing block model, so that it is possible to perform system design while exchanging hardware or software sharing. Furthermore, after the system architecture is determined after estimating the performance, area, etc., regardless of whether the functional processing blocks are assigned to hardware or software, only the level of abstraction of the model is refined. Does not require any rewriting of the model and allows the use of a consistent model structure from start to finish. Further, the model description indicating the intention of the system designer can be completely retained at any level of abstraction.
[0053]
Next, a simulation process for performing a function evaluation will be described. FIG. 10 is an example of a flowchart showing a simulation process according to the embodiment of the present invention. In the simulation process shown in FIG. 10, the function processing block in which the operation specification is described is assigned to a task (
[0054]
As described above, since all the function processing blocks can be operated at the same time, it is possible to reproduce the actual operation, and as a result, the verification can be easily performed.
[0055]
In the example of FIG. 10, the
[0056]
As described above, it is possible to accurately simulate the dynamic processing sequence, and thus it is possible to accurately estimate costs such as performance and area. In addition, it can contribute to an improvement in the defect detection rate during system verification.
[0057]
Hereinafter, as a specific example to which the present invention is applied, a case where the present invention is applied to a general one-processor system LSI, an LSI not including a processor, a multiprocessor system, a multitask system, and a system in the system will be sequentially described with reference to the drawings. I do. The drawings used in the following description use the notation examples of the function processing block models used in FIGS. 5, 6, and 7.
[0058]
First, the case of a general one-processor system LSI will be described. FIG. 11 is an example of a system configuration diagram when applied to a general one-processor system LSI. In the example of FIG. 11, the function processing blocks 1101, 1102, 1103, 1104, 1105, 1106, 1107, and 1108 that execute predetermined processing functions are connected to each other, and software is assigned to the
[0059]
Second, a case of an LSI (so-called ASIC) not including a processor will be described. FIG. 12 is an example of a system configuration diagram when applied to an LSI that does not include a processor. The example of FIG. 12 is a system configuration in which
[0060]
Third, a case of a multiprocessor system (so-called parallel computing) will be described. FIG. 13 is an example of a system configuration diagram when applied to a multiprocessor system. The example in FIG. 13 is a system configuration in which
[0061]
Fourth, a case of a multitask system will be described. FIG. 14 is an example of a system configuration diagram when applied to a multitask system. The multitask system in the example of FIG. 14 has a hierarchical structure, and software is assigned to all the function processing blocks 1401, 1402, 1403, and 1404. The
[0062]
FIG. 15 is a description example of an operation specification when applied to a multitask system. The operation specification is for the
[0063]
As described above, the operation of a system having a hierarchical structure can be similarly described, and the robustness of the model structure with respect to the hierarchical structure is high.
Fifth, a case of a system in a system (so-called SIP, SOP) will be described. FIG. 16 is an example of a system configuration diagram when applied to a system in the system. The system in the system in the example of FIG. 16 has a hierarchical structure, in which hardware is allocated to the function processing blocks 1601, 1602, and 1603, and software is allocated to the function processing blocks 1604, 1605, 1607, and 1608. I have. Although the
[0064]
FIG. 17 is a description example of operation specifications when applied to a system in a system. The
[0065]
Note that the present invention is not limited to the above-described application examples, but includes, for example, a combination of the first application example and the fourth application example, and a combination of the third application example and the fourth application example. Various modifications are possible.
[0066]
As described above, the present invention can support any system configuration currently considered. For example, a hardware system on a processor means a system model of a processor system that can use an extended instruction set by adding a hardware part, which is expected to be fully generalized in the future. Examination and performance estimation are possible. Further, since the operation description can be performed in general programming languages in general, a special simulation environment is not required. As described above, since models can be constructed in general programming languages in general, the models or systems once constructed can be easily reused.
[0067]
Note that the above processing functions can be realized by a computer. In this case, a program is provided which describes the processing contents of the functions that the system design support apparatus should have. The program describing the processing content can be recorded on a computer-readable recording medium.
[0068]
Also, the computer that executes the program stores, for example, the program recorded on a portable recording medium in its own storage device. Then, it reads the program from its own storage device and executes processing according to the program. The computer can also read the program directly from the portable recording medium and execute processing according to the program.
[0069]
【The invention's effect】
As described above, in the system design support method of the present invention, in addition to the conventional modeling method, attention is paid to the state of the system, and the function processing block model extended to the alternative model configuration of the steady response processing and the event driven processing is used. And can be applied to both hardware and software. For this reason, when examining partitioning, which is essential when designing the system, it is possible to study while freely switching the assignment of hardware and software, and it is possible to easily estimate the performance of the system. Further, in the detailed design, it is only necessary to refine the degree of abstraction of the functional processing block model, and a consistent model can be used regardless of whether it is assigned to hardware or software.
[0070]
In addition, the system design support apparatus of the present invention focuses on the state of the system in addition to the conventional modeling method, and operates the processing functions in accordance with a function processing block model expanded to an alternative model configuration of steady-state response processing and event-driven processing. Is input, and the function processing block is evaluated according to the partitioning setting. At this time, in partitioning, the assignment of hardware and software can be freely switched and evaluated, so that the performance estimation of the system can be easily performed. Further, in the next detailed design, it is possible to input and edit an operation description for refining the abstraction of the model by using the same functional processing block model.
[Brief description of the drawings]
FIG. 1 is a conceptual diagram of the invention applied to an embodiment of the present invention.
FIG. 2 is a conceptual diagram of a functional processing block model according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating a hardware configuration of a system design support apparatus.
FIG. 4 is a block diagram illustrating functions of a system design support apparatus.
FIG. 5 is a notation example of a functional processing block model according to an embodiment of the present invention.
FIG. 6 is a notation example of a function processing block to which software is assigned.
FIG. 7 is a notation example of a function processing block to which hardware is assigned;
FIG. 8 is an operation description example of a steady-state response process according to the embodiment of the present invention.
FIG. 9 is an operation description example of an event driving process according to an embodiment of the present invention.
FIG. 10 is an example of a flowchart showing a simulation process according to the embodiment of the present invention.
FIG. 11 is an example of a system configuration diagram when applied to a general one-processor system LSI.
FIG. 12 is an example of a system configuration diagram when applied to an LSI that does not include a processor.
FIG. 13 is an example of a system configuration diagram when applied to a multiprocessor system.
FIG. 14 is an example of a system configuration diagram when applied to a multitask system.
FIG. 15 is a description example of an operation specification when applied to a multitask system.
FIG. 16 is an example of a system configuration diagram when applied to a system in the system.
FIG. 17 is a description example of an operation specification when applied to a system in a system.
FIG. 18 is a flowchart of a processing procedure of a system design.
FIG. 19 is an example of a model description using a data flow and a control flow.
[Explanation of symbols]
110 ... monitor, 120 ... keyboard, 130 ... design information database, 151 ... steady response processing operation specification editor, 152 ... event driven processing operation specification editor, 153 ... partitioning Section, 154: functional processing block evaluation section, 210: steady-state response processing, 220: event driving processing, 230: boundary
Claims (5)
内部状態あるいは前記内部状態とその時点での入力値とによって定まる定常応答処理と、所定のイベントに応じて駆動される事象駆動処理とから成る機能処理ブロックモデルに基づいて、前記定常応答処理および前記事象駆動処理の動作を記述した動作仕様を入力・編集するステップと、
作成された前記動作仕様に基づいて前記機能処理ブロックがハードウェアとソフトウェアに分担されるステップと、
ハードウェアとソフトウェアに分担された前記機能処理ブロックの動作仕様についての評価を行なうステップと、
を有することを特徴とするシステム設計支援方法。Using a computer, a system design support method for dividing the processing functions of the system into function processing blocks and sharing the function processing blocks between hardware and software to design the system,
Based on a functional processing block model consisting of an internal state or a steady-state response process determined by the internal state and an input value at that time, and an event-driven process driven in response to a predetermined event, the steady-state response process and the previous Inputting and editing an operation specification describing the operation of the event-driven process;
The function processing block is divided into hardware and software based on the created operation specification, and
Evaluating an operation specification of the functional processing block shared by hardware and software;
A system design support method comprising:
内部状態あるいは前記内部状態とその時点での入力値とによって定まる定常応答処理と、所定のイベントに応じて駆動される事象駆動処理とから成る機能処理ブロックモデルに基づいて、前記定常応答処理および前記事象駆動処理の動作を記述した動作仕様の入力と編集を行なう動作仕様編集手段と、
前記動作仕様編集手段により作成された前記動作仕様を記録する設計情報記録手段と、
前記動作仕様が作成された前記機能処理ブロックをハードウェアとソフトウェアに分担する分担手段と、
ハードウェアとソフトウェアに分担された前記機能処理ブロックの動作仕様についての評価を行なう機能処理ブロック評価手段と、
を具備することを特徴とするシステム設計支援装置。In a system design support apparatus that divides a processing function of a system into function processing blocks and supports the design of the system performed by dividing the function processing blocks into hardware and software,
Based on a functional processing block model consisting of an internal state or a steady-state response process determined by the internal state and an input value at that time, and an event-driven process driven in response to a predetermined event, the steady-state response process and the previous Operation specification editing means for inputting and editing an operation specification describing the operation of the event-driven process;
Design information recording means for recording the operation specifications created by the operation specification editing means,
Sharing means for sharing the function processing block in which the operation specifications are created with hardware and software,
Function processing block evaluation means for evaluating an operation specification of the function processing block shared by hardware and software,
A system design support device comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002249910A JP2004086786A (en) | 2002-08-29 | 2002-08-29 | System design support method and system design support apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002249910A JP2004086786A (en) | 2002-08-29 | 2002-08-29 | System design support method and system design support apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004086786A true JP2004086786A (en) | 2004-03-18 |
Family
ID=32056869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002249910A Pending JP2004086786A (en) | 2002-08-29 | 2002-08-29 | System design support method and system design support apparatus |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004086786A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007188186A (en) * | 2006-01-11 | 2007-07-26 | Sony Corp | Event direction detector and method therefor |
JP2011175339A (en) * | 2010-02-23 | 2011-09-08 | Nec Corp | Migration method |
US10303832B2 (en) | 2015-09-18 | 2019-05-28 | Mitsubishi Electric Corporation | Architecture generating device |
-
2002
- 2002-08-29 JP JP2002249910A patent/JP2004086786A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007188186A (en) * | 2006-01-11 | 2007-07-26 | Sony Corp | Event direction detector and method therefor |
US8281316B2 (en) | 2006-01-11 | 2012-10-02 | Sony Corporation | Event direction detector and method thereof |
JP2011175339A (en) * | 2010-02-23 | 2011-09-08 | Nec Corp | Migration method |
US10303832B2 (en) | 2015-09-18 | 2019-05-28 | Mitsubishi Electric Corporation | Architecture generating device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4994393B2 (en) | System and method for generating multiple models at different levels of abstraction from a single master model | |
JP2003529848A (en) | Automatic design of digital signal processing integrated circuits | |
JP2005293163A (en) | Power consumption calculation method and apparatus | |
JP3173729B2 (en) | Logic simulation method and system | |
JPH10171848A (en) | Method for designing architecture system | |
KR20140070493A (en) | System and method for efficient resource management of a signal flow programmed digital signal processor code | |
Moussa et al. | Exploring SW performance using SoC transaction-level modeling | |
US20070271080A1 (en) | Model generation method for software/hardware collaboration design | |
US8700380B2 (en) | Method for generating performance evaluation model | |
US20080300806A1 (en) | Power consumption calculating method | |
JP2004086786A (en) | System design support method and system design support apparatus | |
US6539537B1 (en) | System synthesizer | |
Hu et al. | A performance prototyping approach to designing concurrent software architectures | |
JPH1031693A (en) | Synthesizing method for exclusive application subsystem | |
JP5664430B2 (en) | Test apparatus, verification model development method and program | |
JP2011238137A (en) | Performance estimation device | |
JP2004318654A (en) | Performance evaluation device, performance evaluation method and program | |
JP2007018313A (en) | Circuit design program, circuit design device and circuit design method | |
Mehta et al. | ESL (Electronic System Level) Verification Methodology | |
JP2006011840A (en) | Integrated system | |
Bergamaschi | Behavioral synthesis: An overview | |
JP2011145880A (en) | Generation method for test task used in logic verification of semiconductor integrated circuit | |
WO2000068782A1 (en) | Method for developing semiconductor integrated circuit | |
JPH1185832A (en) | Circuit conversion method, circuit design supporting device and record medium | |
JP2005182359A (en) | Method for designing data processor and recording medium |