JPH11282888A - システム仕様記述に基づいて設計されるシステムでのデータ通信方法、割込コントローラ合成方法及びインターフェイス回路合成方法 - Google Patents
システム仕様記述に基づいて設計されるシステムでのデータ通信方法、割込コントローラ合成方法及びインターフェイス回路合成方法Info
- Publication number
- JPH11282888A JPH11282888A JP10079278A JP7927898A JPH11282888A JP H11282888 A JPH11282888 A JP H11282888A JP 10079278 A JP10079278 A JP 10079278A JP 7927898 A JP7927898 A JP 7927898A JP H11282888 A JPH11282888 A JP H11282888A
- Authority
- JP
- Japan
- Prior art keywords
- data
- hardware
- software
- processes
- communication
- 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
Abstract
(57)【要約】
【課題】ソフトウエア部分とハードウエア部分に無関係
プロセス間の通信方式を統一することで、シミュレーシ
ョンと評価を行うときの処理の複雑さを解消し、処理時
間を短縮する。 【解決手段】実行単位のプロセスの集まりとして書かれ
たシステム仕様記述に基づいて、全プロセスをハードウ
エアとソフトウエアに分割して設計されるシステムにお
いて、任意のプロセス間での通信が下記のように行われ
る。(1)プロセスAは、通信データを特定メモリに書
き込み、続いて制御フラグデータを通信レジスタに書き
込む。(2)プロセスBは、CPUからの割り込みによ
り制御端子を通じて通信レジスタを監視し、制御フラグ
データの書き込みイベントを検知すると、特定メモリの
通信データを確認しまたは該特定メモリに通信データを
書き込み、続いて制御フラグデータを制御線に書き込
む。(3)プロセスAは、上記制御フラグデータを監視
し、制御フラグデータの書き込みイベントを検知する
と、データ通信が終了したことを検知する。
プロセス間の通信方式を統一することで、シミュレーシ
ョンと評価を行うときの処理の複雑さを解消し、処理時
間を短縮する。 【解決手段】実行単位のプロセスの集まりとして書かれ
たシステム仕様記述に基づいて、全プロセスをハードウ
エアとソフトウエアに分割して設計されるシステムにお
いて、任意のプロセス間での通信が下記のように行われ
る。(1)プロセスAは、通信データを特定メモリに書
き込み、続いて制御フラグデータを通信レジスタに書き
込む。(2)プロセスBは、CPUからの割り込みによ
り制御端子を通じて通信レジスタを監視し、制御フラグ
データの書き込みイベントを検知すると、特定メモリの
通信データを確認しまたは該特定メモリに通信データを
書き込み、続いて制御フラグデータを制御線に書き込
む。(3)プロセスAは、上記制御フラグデータを監視
し、制御フラグデータの書き込みイベントを検知する
と、データ通信が終了したことを検知する。
Description
【0001】
【発明の属する技術分野】本発明は、ハードウエアとソ
フトウエアの混在するシステムの設計支援方法に関し、
特に、システム仕様記述に基づいて設計されるシステム
でのデータ通信方法、割込コントローラ合成方法及びイ
ンターフェイス回路合成方法に関する。
フトウエアの混在するシステムの設計支援方法に関し、
特に、システム仕様記述に基づいて設計されるシステム
でのデータ通信方法、割込コントローラ合成方法及びイ
ンターフェイス回路合成方法に関する。
【0002】
【従来の技術】今日、ASICの高集積化は数千万トラ
ンジスタの1チップ化を可能にしており、CPU、ファ
ームウエア、ドライバなどに加えて、通信回路、入出力
バス・インターフェイス回路などの周辺回路なども全て
一つのASIC上に納まることを可能にしている。
ンジスタの1チップ化を可能にしており、CPU、ファ
ームウエア、ドライバなどに加えて、通信回路、入出力
バス・インターフェイス回路などの周辺回路なども全て
一つのASIC上に納まることを可能にしている。
【0003】このようなASICは、いわゆるシステム
ASICと称される。
ASICと称される。
【0004】ところでシステムASICには、プロセッ
サとペリフェラルとメモリが実装され、プロセッサとメ
モリを利用して従来のソフトウエアが実装される形にな
る。ここで一つの機能をハードウエアで実現するかソフ
トウエアで実現するかにおいて、速度とチップ面積のト
レードオフが内在している。つまり、ハードウエアはソ
フトウエアに対して相対的に速度を上げるがチップ面積
も押し上げる。また、ソフトウエアはその反対の特性を
持つ。
サとペリフェラルとメモリが実装され、プロセッサとメ
モリを利用して従来のソフトウエアが実装される形にな
る。ここで一つの機能をハードウエアで実現するかソフ
トウエアで実現するかにおいて、速度とチップ面積のト
レードオフが内在している。つまり、ハードウエアはソ
フトウエアに対して相対的に速度を上げるがチップ面積
も押し上げる。また、ソフトウエアはその反対の特性を
持つ。
【0005】設計に際して、重要なことは、そのトレー
ドオフの関係を考慮し、与えられたチップ面積上で最大
の速度を上げ得る双方の混在化、すなわち、ハードウエ
アとソフトウエアの分割点の最適化を図ることである。
最適化を求めるには、分割点を確定する前に両者の候補
に対してシミュレーションを行って、その結果を評価す
ることが必要になる。
ドオフの関係を考慮し、与えられたチップ面積上で最大
の速度を上げ得る双方の混在化、すなわち、ハードウエ
アとソフトウエアの分割点の最適化を図ることである。
最適化を求めるには、分割点を確定する前に両者の候補
に対してシミュレーションを行って、その結果を評価す
ることが必要になる。
【0006】シミュレーションの結果が良くなければ、
あるハードウエアプロセスをソフトウエアプロセスに
(またはその逆に)置換して再度の評価を繰り返す。通
常は、このシミュレーションとプロセス交換を繰り返し
ながら、最適なシステム設計を行う。
あるハードウエアプロセスをソフトウエアプロセスに
(またはその逆に)置換して再度の評価を繰り返す。通
常は、このシミュレーションとプロセス交換を繰り返し
ながら、最適なシステム設計を行う。
【0007】
【発明が解決しようとする課題】しかし、一般に、ハー
ドウエアとソフトウエア間のデータ通信と、ソフトウエ
アとソフトウエア間(すなわち、プロセスやタスク間)
のデータ通信は、その手法が異なっているのが通常であ
る。図11に示すように、ソフトウエアとソフトウエア
間では、OSを介したり、共有メモリを用いて通信を行
うが、ハードウエアとソフトウエア間では、割込レジス
タやI/Oポートのハードウエア回路を介して通信を行
う。このため、ソフトウエアまたはハードウエアなどの
プロセスの実装種別を明示的に示したシステム記述で
は、あるプロセスの実装をハードウエアからソフトウエ
アに変換するときに割込レジスタやI/Oポートが不要
となり、反対に、あるソフトウエアからハードウエアに
変換するときには新たに割込レジスタやI/Oポートを
合成することが必要になってくるなど、シミュレーショ
ンと評価を行う行程中でプロセスの変換を行うときに、
多くの処理時間が必要となる問題があった。
ドウエアとソフトウエア間のデータ通信と、ソフトウエ
アとソフトウエア間(すなわち、プロセスやタスク間)
のデータ通信は、その手法が異なっているのが通常であ
る。図11に示すように、ソフトウエアとソフトウエア
間では、OSを介したり、共有メモリを用いて通信を行
うが、ハードウエアとソフトウエア間では、割込レジス
タやI/Oポートのハードウエア回路を介して通信を行
う。このため、ソフトウエアまたはハードウエアなどの
プロセスの実装種別を明示的に示したシステム記述で
は、あるプロセスの実装をハードウエアからソフトウエ
アに変換するときに割込レジスタやI/Oポートが不要
となり、反対に、あるソフトウエアからハードウエアに
変換するときには新たに割込レジスタやI/Oポートを
合成することが必要になってくるなど、シミュレーショ
ンと評価を行う行程中でプロセスの変換を行うときに、
多くの処理時間が必要となる問題があった。
【0008】本発明の目的は、実行単位のプロセスの集
まりで記述したシステム仕様記述から自動的にソフトウ
エア部分とハードウエア部分を決めて設計するシステム
において、ソフトウエアで実装されるかハードウエアで
実装されるかに依存しないプロセス間の通信方法を統一
することで、シミュレーションと評価を行うときの処理
の複雑さを解消し、処理時間を短縮するデータ通信方法
を提供することにある。
まりで記述したシステム仕様記述から自動的にソフトウ
エア部分とハードウエア部分を決めて設計するシステム
において、ソフトウエアで実装されるかハードウエアで
実装されるかに依存しないプロセス間の通信方法を統一
することで、シミュレーションと評価を行うときの処理
の複雑さを解消し、処理時間を短縮するデータ通信方法
を提供することにある。
【0009】本発明の他の目的は、実行単位のプロセス
の集まりで記述したシステム仕様記述から自動的にソフ
トウエア部分とハードウエア部分を決めて設計するシス
テムにおいて、割込コントローラの合成が簡単となる方
法を提供することにある。
の集まりで記述したシステム仕様記述から自動的にソフ
トウエア部分とハードウエア部分を決めて設計するシス
テムにおいて、割込コントローラの合成が簡単となる方
法を提供することにある。
【0010】本発明のさらに他の目的は、、実行単位の
プロセスの集まりで記述したシステム仕様記述から自動
的にソフトウエア部分とハードウエア部分を決めて設計
するシステムにおいて、インターフェイス回路の合成が
簡単となるインターフェイス回路合成方法を提供するこ
とにある。
プロセスの集まりで記述したシステム仕様記述から自動
的にソフトウエア部分とハードウエア部分を決めて設計
するシステムにおいて、インターフェイス回路の合成が
簡単となるインターフェイス回路合成方法を提供するこ
とにある。
【0011】
【課題を解決するための手段】本出願の請求項1に係る
発明は、システムの仕様を実行単位のプロセスの集まり
で記述したシステム仕様記述を作成し、このシステム仕
様記述に基づいて、全プロセスをハードウエアとソフト
ウエアに分割して設計されるシステムにおいて、任意の
プロセス間での通信が下記のように行われることを特徴
とする。
発明は、システムの仕様を実行単位のプロセスの集まり
で記述したシステム仕様記述を作成し、このシステム仕
様記述に基づいて、全プロセスをハードウエアとソフト
ウエアに分割して設計されるシステムにおいて、任意の
プロセス間での通信が下記のように行われることを特徴
とする。
【0012】(1)一方のハードウエアプロセス又はソ
フトウエアプロセスは、通信データをデータ端子を通じ
て第1の記憶オブジェクトに書き込む。この場合、一方
のハードウエアプロセスまたはソフトウエアプロセスが
データ転送を要求する場合には予め取り決められた要求
コードを通信データとして第1の記憶オブジェクトに書
き込んでも良いし、またはこの書き込み手順自体を省略
してもよい。
フトウエアプロセスは、通信データをデータ端子を通じ
て第1の記憶オブジェクトに書き込む。この場合、一方
のハードウエアプロセスまたはソフトウエアプロセスが
データ転送を要求する場合には予め取り決められた要求
コードを通信データとして第1の記憶オブジェクトに書
き込んでも良いし、またはこの書き込み手順自体を省略
してもよい。
【0013】(2)一方のハードウエアプロセスまたは
ソフトウエアプロセスは、続いて制御フラグデータを制
御端子を通じて第2の記憶オブジェクトに書き込み、こ
れにより通信データが転送されたことまたは通信データ
の転送要求を他方のハードウエアプロセスまたはソフト
ウエアプロセスに対して通知する。
ソフトウエアプロセスは、続いて制御フラグデータを制
御端子を通じて第2の記憶オブジェクトに書き込み、こ
れにより通信データが転送されたことまたは通信データ
の転送要求を他方のハードウエアプロセスまたはソフト
ウエアプロセスに対して通知する。
【0014】(3)他方のハードウエアプロセスまたは
ソフトウエアプロセスは、制御端子を通じて第2の記憶
オブジェクトを監視し、制御フラグデータの書き込みイ
ベントを検知する。
ソフトウエアプロセスは、制御端子を通じて第2の記憶
オブジェクトを監視し、制御フラグデータの書き込みイ
ベントを検知する。
【0015】(4)他方のハードウエアプロセスまたは
ソフトウエアプロセスは、制御フラグデータの書き込み
イベントにより、データ端子を通じて第1の記憶オブジ
ェクトの通信データを確認しまたは該記憶オブジェクト
に通信データを書き込み、続いて制御フラグデータを制
御端子を通じて第3の記憶オブジェクトに書き込み、こ
れにより一方のハードウエアプロセスまたはソフトウエ
アプロセスに対して通信データの転送が終了したことを
通知する。
ソフトウエアプロセスは、制御フラグデータの書き込み
イベントにより、データ端子を通じて第1の記憶オブジ
ェクトの通信データを確認しまたは該記憶オブジェクト
に通信データを書き込み、続いて制御フラグデータを制
御端子を通じて第3の記憶オブジェクトに書き込み、こ
れにより一方のハードウエアプロセスまたはソフトウエ
アプロセスに対して通信データの転送が終了したことを
通知する。
【0016】(5)一方のハードウエアプロセスまたは
ソフトウエアプロセスは、制御端子を通じて第3の記憶
オブジェクトを監視し、制御フラグデータの書き込みイ
ベントを検知する。
ソフトウエアプロセスは、制御端子を通じて第3の記憶
オブジェクトを監視し、制御フラグデータの書き込みイ
ベントを検知する。
【0017】(6)一方のハードウエアプロセスまたは
ソフトウエアプロセスは、制御フラグデータの書き込み
イベントにより、データ通信が終了したことを検知す
る。
ソフトウエアプロセスは、制御フラグデータの書き込み
イベントにより、データ通信が終了したことを検知す
る。
【0018】本発明では、システム仕様を、実行単位の
プロセスの集合として記述することを出発点とする。実
行単位のプロセスの集合として記述されるため、各プロ
セスはハードウエアでもソフトウエアでも実現可能であ
る。
プロセスの集合として記述することを出発点とする。実
行単位のプロセスの集合として記述されるため、各プロ
セスはハードウエアでもソフトウエアでも実現可能であ
る。
【0019】次に、システム仕様記述から、ハードウエ
ア部分とソフトウエア部分の実現候補を自動的に決めて
分割する。プロセスには種々の理由からハードウエアで
実現する方が望ましいものとソフトウエアで実現する方
が望ましいものが存在するから、これを自動判断し、且
つそれに基づきハードウエア部分とソフトウエア部分と
を仮に決め、残りの部分については、ランダムに決める
ことが出来る。例えば、繰り返し処理の多いプロセスは
ハードウエアで構成した方が処理速度を上げる上で有利
であり、処理に優先順位のつくプロセスはソフトウエア
で構成した方が処理しやすいので、これらの処理内容を
評価しながら、各プロセスをハードウエアとソフトウエ
アに仮に分割してそれぞれを仮の候補とすることが出来
る。
ア部分とソフトウエア部分の実現候補を自動的に決めて
分割する。プロセスには種々の理由からハードウエアで
実現する方が望ましいものとソフトウエアで実現する方
が望ましいものが存在するから、これを自動判断し、且
つそれに基づきハードウエア部分とソフトウエア部分と
を仮に決め、残りの部分については、ランダムに決める
ことが出来る。例えば、繰り返し処理の多いプロセスは
ハードウエアで構成した方が処理速度を上げる上で有利
であり、処理に優先順位のつくプロセスはソフトウエア
で構成した方が処理しやすいので、これらの処理内容を
評価しながら、各プロセスをハードウエアとソフトウエ
アに仮に分割してそれぞれを仮の候補とすることが出来
る。
【0020】次に、これらの候補に対してシミュレーシ
ョンを行う。
ョンを行う。
【0021】シミュレーションを行って各プロセスの評
価を行う。評価は、例えば、そのプロセスがハードウエ
アプロセスであって、繰り返し処理回数の少なさが全ハ
ードウエアプロセスの繰り返し処理回数の少なさの順位
の上位に位置するものであるなら、そのハードウエアプ
ロセスをソフトウエアプロセスに変換する。また、その
プロセスがソフトウエアプロセスであって、繰り返し処
理回数の多さが全ソフトウエアプロセスの繰り返し処理
回数の多さの順位の上位に位置するものであるなら、そ
のソフトウエアプロセスをハードウエアプロセスに変換
する。
価を行う。評価は、例えば、そのプロセスがハードウエ
アプロセスであって、繰り返し処理回数の少なさが全ハ
ードウエアプロセスの繰り返し処理回数の少なさの順位
の上位に位置するものであるなら、そのハードウエアプ
ロセスをソフトウエアプロセスに変換する。また、その
プロセスがソフトウエアプロセスであって、繰り返し処
理回数の多さが全ソフトウエアプロセスの繰り返し処理
回数の多さの順位の上位に位置するものであるなら、そ
のソフトウエアプロセスをハードウエアプロセスに変換
する。
【0022】以上の評価に基づくプロセスの変換におい
て、本発明では、プロセス間の通信方式をプロセスの種
類に無関係に統一させている。このため、プロセスの種
類の変換に伴い、通信方式の変換に伴う回路合成、削除
や通信プログラムステップの追加、削除などの複雑な処
理が不要である。すなわち、本発明では、 (1)一方のハードウエアプロセス又はソフトウエアプ
ロセスは、通信データをデータ端子を通じて第1の記憶
オブジェクトに書き込む。この場合、一方のハードウエ
アプロセスまたはソフトウエアプロセスがデータ転送を
要求する場合には予め取り決められた要求コードを通信
データとして第1の記憶オブジェクトに書き込んでも良
いし、またはこの書き込み手順自体を省略してもよい。
て、本発明では、プロセス間の通信方式をプロセスの種
類に無関係に統一させている。このため、プロセスの種
類の変換に伴い、通信方式の変換に伴う回路合成、削除
や通信プログラムステップの追加、削除などの複雑な処
理が不要である。すなわち、本発明では、 (1)一方のハードウエアプロセス又はソフトウエアプ
ロセスは、通信データをデータ端子を通じて第1の記憶
オブジェクトに書き込む。この場合、一方のハードウエ
アプロセスまたはソフトウエアプロセスがデータ転送を
要求する場合には予め取り決められた要求コードを通信
データとして第1の記憶オブジェクトに書き込んでも良
いし、またはこの書き込み手順自体を省略してもよい。
【0023】(2)一方のハードウエアプロセスまたは
ソフトウエアプロセスは、続いて制御フラグデータを制
御端子を通じて第2の記憶オブジェクトに書き込み、こ
れにより通信データが転送されたことまたは通信データ
の転送要求を他方のハードウエアプロセスまたはソフト
ウエアプロセスに対して通知する。
ソフトウエアプロセスは、続いて制御フラグデータを制
御端子を通じて第2の記憶オブジェクトに書き込み、こ
れにより通信データが転送されたことまたは通信データ
の転送要求を他方のハードウエアプロセスまたはソフト
ウエアプロセスに対して通知する。
【0024】(3)他方のハードウエアプロセスまたは
ソフトウエアプロセスは、制御端子を通じて第2の記憶
オブジェクトを監視し、制御フラグデータの書き込みイ
ベントを検知する。
ソフトウエアプロセスは、制御端子を通じて第2の記憶
オブジェクトを監視し、制御フラグデータの書き込みイ
ベントを検知する。
【0025】(4)他方のハードウエアプロセスまたは
ソフトウエアプロセスは、制御フラグデータの書き込み
イベントにより、データ端子を通じて第1の記憶オブジ
ェクトの通信データを確認しまたは該記憶オブジェクト
に通信データを書き込み、続いて制御フラグデータを制
御端子を通じて第3の記憶オブジェクトに書き込み、こ
れにより一方のハードウエアプロセスまたはソフトウエ
アプロセスに対して通信データの転送が終了したことを
通知する。
ソフトウエアプロセスは、制御フラグデータの書き込み
イベントにより、データ端子を通じて第1の記憶オブジ
ェクトの通信データを確認しまたは該記憶オブジェクト
に通信データを書き込み、続いて制御フラグデータを制
御端子を通じて第3の記憶オブジェクトに書き込み、こ
れにより一方のハードウエアプロセスまたはソフトウエ
アプロセスに対して通信データの転送が終了したことを
通知する。
【0026】(5)一方のハードウエアプロセスまたは
ソフトウエアプロセスは、制御端子を通じて第3の記憶
オブジェクトを監視し、制御フラグデータの書き込みイ
ベントを検知する。
ソフトウエアプロセスは、制御端子を通じて第3の記憶
オブジェクトを監視し、制御フラグデータの書き込みイ
ベントを検知する。
【0027】(6)一方のハードウエアプロセスまたは
ソフトウエアプロセスは、制御フラグデータの書き込み
イベントにより、データ通信が終了したことを検知す
る。
ソフトウエアプロセスは、制御フラグデータの書き込み
イベントにより、データ通信が終了したことを検知す
る。
【0028】以上のようなデータ通信方法を採用するた
め、プロセスの実装種別とは無関係に、同じ通信プロト
コルとなる。より具体的には以下のようになる。
め、プロセスの実装種別とは無関係に、同じ通信プロト
コルとなる。より具体的には以下のようになる。
【0029】(1)(2)(4)における記憶オブジェ
クトへの書き込みは(それぞれ、順に第1、第2、第3
の記憶オブジェクトへの書き込み)、書き込むプロセス
がソフトウエアプロセスである場合、特定アドレスへの
データ転送命令の実行である。書き込むプロセスがハー
ドウエアプロセスである場合、物理的に配線されたレジ
スタへの書き込みになる。
クトへの書き込みは(それぞれ、順に第1、第2、第3
の記憶オブジェクトへの書き込み)、書き込むプロセス
がソフトウエアプロセスである場合、特定アドレスへの
データ転送命令の実行である。書き込むプロセスがハー
ドウエアプロセスである場合、物理的に配線されたレジ
スタへの書き込みになる。
【0030】(3)(5)(6)における書き込みイベ
ントの検知は、書き込まれるプロセスがソフトウエアプ
ロセスである場合、割込コントローラ→CPUの割込管
理機能→割込ハンドラによる要求の特定という一連のシ
ーケンスによって行われる。書き込まれるプロセスがハ
ードウエアプロセスである場合、特定のレジスタを監視
するステートマシンとして機能する回路によって行われ
る。
ントの検知は、書き込まれるプロセスがソフトウエアプ
ロセスである場合、割込コントローラ→CPUの割込管
理機能→割込ハンドラによる要求の特定という一連のシ
ーケンスによって行われる。書き込まれるプロセスがハ
ードウエアプロセスである場合、特定のレジスタを監視
するステートマシンとして機能する回路によって行われ
る。
【0031】図1にその構成図を示す。同図は、ソフト
ウエアプロセスAからソフトウエアプロセスBにデータ
を送るときのデータ通信方法を示している。ソフトウエ
アプロセスAは、ハードウエアプロセスへのデータ通信
と同じ方法で、特定メモリにデータを書き込んだ後に、
通信レジスタにフラグを立てる。この通信レジスタはフ
ラグが立てられるとCPUに対して割込を発生させるよ
うに合成される。ソフトウエアプロセスBは従来のよう
に、ハードウエアプロセスからデータを受け取る仕組み
を持っている。すなわち図11の右側に示されるよう
に、割込の発生が通知されたら、特定メモリからデータ
を読み込むという手順が組み込まれている。このような
仕組みにより、ハードウエアプロセスとソフトウエアプ
ロセス間、ハードウエアプロセスとハードウエアプロセ
ス間、及びソフトウエアプロセスとソフトウエアプロセ
ス間のデータ通信方法は同じ方法に統一されることにな
り、シミュレーション後の評価によって、プロセスの種
類を変換するときの合成処理が非常に簡単となる。
ウエアプロセスAからソフトウエアプロセスBにデータ
を送るときのデータ通信方法を示している。ソフトウエ
アプロセスAは、ハードウエアプロセスへのデータ通信
と同じ方法で、特定メモリにデータを書き込んだ後に、
通信レジスタにフラグを立てる。この通信レジスタはフ
ラグが立てられるとCPUに対して割込を発生させるよ
うに合成される。ソフトウエアプロセスBは従来のよう
に、ハードウエアプロセスからデータを受け取る仕組み
を持っている。すなわち図11の右側に示されるよう
に、割込の発生が通知されたら、特定メモリからデータ
を読み込むという手順が組み込まれている。このような
仕組みにより、ハードウエアプロセスとソフトウエアプ
ロセス間、ハードウエアプロセスとハードウエアプロセ
ス間、及びソフトウエアプロセスとソフトウエアプロセ
ス間のデータ通信方法は同じ方法に統一されることにな
り、シミュレーション後の評価によって、プロセスの種
類を変換するときの合成処理が非常に簡単となる。
【0032】本出願の請求項2に係る発明は、システム
の仕様を実行単位のプロセスの集まりで記述したシステ
ム仕様記述を作成し、このシステム仕様記述に基づい
て、全プロセスをハードウエアとソフトウエアに分割し
て設計されるシステムにおいて、システム仕様記述内に
は入出力用制御線の数と信号方向とを表す周辺回路記述
が含まれており、この周辺回路記述に基づいて、各周辺
回路からCPUに対する割込を制御する割込コントロー
ラを合成することを特徴とする。
の仕様を実行単位のプロセスの集まりで記述したシステ
ム仕様記述を作成し、このシステム仕様記述に基づい
て、全プロセスをハードウエアとソフトウエアに分割し
て設計されるシステムにおいて、システム仕様記述内に
は入出力用制御線の数と信号方向とを表す周辺回路記述
が含まれており、この周辺回路記述に基づいて、各周辺
回路からCPUに対する割込を制御する割込コントロー
ラを合成することを特徴とする。
【0033】本発明では、全ての周辺回路からの制御信
号はCPUへの割込とする。これにより、システム仕様
記述に入力用制御線の数と信号方向とを表す周辺回路記
述が含まれることで、その情報から割込処理のための割
込コントローラを自動的に合成することが出来る。
号はCPUへの割込とする。これにより、システム仕様
記述に入力用制御線の数と信号方向とを表す周辺回路記
述が含まれることで、その情報から割込処理のための割
込コントローラを自動的に合成することが出来る。
【0034】本出願の請求項3に係る発明は、システム
の仕様を実行単位のプロセスの集まりで記述したシステ
ム仕様記述を作成し、このシステム仕様記述に基づい
て、全プロセスをハードウエアとソフトウエアに分割し
て設計されるシステムにおいて、システム仕様記述内に
は入出力用データ線の数と信号方向とを表す周辺回路記
述が含まれており、この周辺回路記述に基づいて、各周
辺回路からCPUバスへのインターフェイス回路を合成
することを特徴とする。
の仕様を実行単位のプロセスの集まりで記述したシステ
ム仕様記述を作成し、このシステム仕様記述に基づい
て、全プロセスをハードウエアとソフトウエアに分割し
て設計されるシステムにおいて、システム仕様記述内に
は入出力用データ線の数と信号方向とを表す周辺回路記
述が含まれており、この周辺回路記述に基づいて、各周
辺回路からCPUバスへのインターフェイス回路を合成
することを特徴とする。
【0035】本発明では、全ての周辺回路とCPUとの
データのやりとりはデータ線により行う。これにより、
システム仕様記述に入出力用データ線の数と信号方向と
を表す周辺回路記述を含ませることで、その情報から周
辺回路の数やインターフェイスの種類に関係なくインタ
ーフェイス回路を合成することが出来る。
データのやりとりはデータ線により行う。これにより、
システム仕様記述に入出力用データ線の数と信号方向と
を表す周辺回路記述を含ませることで、その情報から周
辺回路の数やインターフェイスの種類に関係なくインタ
ーフェイス回路を合成することが出来る。
【0036】
【発明の実施の形態】図2は、本発明の実施形態であ
る、ハードウエアとソフトウエアの混在するシステムの
設計支援装置の構成図である。
る、ハードウエアとソフトウエアの混在するシステムの
設計支援装置の構成図である。
【0037】この支援装置は、システム仕様記述1で書
かれたプロセスに基づいて協調合成システム2におい
て、ハードウエア部分とソフトウエア部分とに分割し、
ハードウエア部分については動作合成システム3、論理
合成システム4でHDL言語に変換しつつハードウエア
ロジック回路を自動作成する。また、ソフトウエア合成
システム5は、ソフトウエア部分からオブジェクトプロ
グラムコードを自動作成する。スタティックタイミング
検証システム6は、このプログラムコードやハードウエ
アロジック回路の静的動作(スタティック動作)の検証
を行い。合成結果表示システムは、上記一連の手順に伴
う結果を適宜表示する。
かれたプロセスに基づいて協調合成システム2におい
て、ハードウエア部分とソフトウエア部分とに分割し、
ハードウエア部分については動作合成システム3、論理
合成システム4でHDL言語に変換しつつハードウエア
ロジック回路を自動作成する。また、ソフトウエア合成
システム5は、ソフトウエア部分からオブジェクトプロ
グラムコードを自動作成する。スタティックタイミング
検証システム6は、このプログラムコードやハードウエ
アロジック回路の静的動作(スタティック動作)の検証
を行い。合成結果表示システムは、上記一連の手順に伴
う結果を適宜表示する。
【0038】システム仕様記述のプロセスの1例を図3
に示す。
に示す。
【0039】ここでは、プロセス名を「sample」として
いる。
いる。
【0040】第2行は、整数(int )入力データ端子と
して、iData を定義する。第3行は、整数出力端子とし
て、oDATA を定義し且つ初期値が0であることを示す。
第4行、第5行は、制御入力端子Strtと制御出力端子ac
kStrt を定義し、制御出力端子ackStrt の初期値がFALS
E であることを示す。第6行以下はプロセス実行部分で
ある。要約すれば、制御入力端子StrtがTRUEのときに、
制御出力端子ackStrtをTRUEにセットし、変数counter
のインクリメント値が入力データ端子iData の値よりも
大きければ変数counter をリセットし、大きくなければ
出力データ端子0Data の値を、iData 値にcounter 値を
加えた値とする。
して、iData を定義する。第3行は、整数出力端子とし
て、oDATA を定義し且つ初期値が0であることを示す。
第4行、第5行は、制御入力端子Strtと制御出力端子ac
kStrt を定義し、制御出力端子ackStrt の初期値がFALS
E であることを示す。第6行以下はプロセス実行部分で
ある。要約すれば、制御入力端子StrtがTRUEのときに、
制御出力端子ackStrtをTRUEにセットし、変数counter
のインクリメント値が入力データ端子iData の値よりも
大きければ変数counter をリセットし、大きくなければ
出力データ端子0Data の値を、iData 値にcounter 値を
加えた値とする。
【0041】このようなプロセスは、基本的にソフトウ
エアでもハードウエアでも実現が可能である。
エアでもハードウエアでも実現が可能である。
【0042】図2の協調合成システム2は、上記プロセ
スを読み込んで、全プロセスをハードウエア部分(ハー
ドウエア実現候補)とソフトウエア部分(ソフトウエア
実現候補)とに初期分割し、これをシミュレーションし
て相互の各プロセス部分のソフトウエア化またはハード
ウエア化が適正か否かを評価し、評価結果にしたがっ
て、一部の入れ替えを行い、さらに、必要に応じてその
入れ替えた結果で再度シミュレーションを行う動作を繰
り返す。
スを読み込んで、全プロセスをハードウエア部分(ハー
ドウエア実現候補)とソフトウエア部分(ソフトウエア
実現候補)とに初期分割し、これをシミュレーションし
て相互の各プロセス部分のソフトウエア化またはハード
ウエア化が適正か否かを評価し、評価結果にしたがっ
て、一部の入れ替えを行い、さらに、必要に応じてその
入れ替えた結果で再度シミュレーションを行う動作を繰
り返す。
【0043】システム仕様記述1に書かれる各プロセス
は、本実施形態では初期分割しやすいように、ソフトウ
エア部分の候補となるプロセスに処理の優先度を表す情
報がつけ加えられる。図4にその状態を示す。なお、ソ
フトウエアのプロセス群は1つのCPUで処理が実行さ
れる限り、各プロセス間で通信をするときに処理の優先
度が必要となることがある。優先度を表す情報はこのた
めのものである。ハードウエアのプロセス群はCPUに
より処理されるものではないから、通常は処理に優先度
を必要としない。もちろん、この情報が付加されていて
もこれをハードウエア部分で構成することは可能であ
る。
は、本実施形態では初期分割しやすいように、ソフトウ
エア部分の候補となるプロセスに処理の優先度を表す情
報がつけ加えられる。図4にその状態を示す。なお、ソ
フトウエアのプロセス群は1つのCPUで処理が実行さ
れる限り、各プロセス間で通信をするときに処理の優先
度が必要となることがある。優先度を表す情報はこのた
めのものである。ハードウエアのプロセス群はCPUに
より処理されるものではないから、通常は処理に優先度
を必要としない。もちろん、この情報が付加されていて
もこれをハードウエア部分で構成することは可能であ
る。
【0044】図4において、PROCA 0 、PROCB 1 は、前
者のプロセス優先度が「0」、後者のそれが「1」であ
ることを示している。優先順位は前者の方が一つ高い。
者のプロセス優先度が「0」、後者のそれが「1」であ
ることを示している。優先順位は前者の方が一つ高い。
【0045】協調合成システム2は、上記の優先度を表
す情報が付加されているプロセスを仮のソフトウエア実
現候補とする。また、その他のプロセスを仮のハードウ
エア実現候補とする。初期分割はこのようにして行われ
る。図5に初期分割した状態を示している。P1〜P3
は優先度を表す情報を持つプロセスであるため、ソフト
ウエア実現候補とされる。P4〜P7は優先度を表す情
報を持たないプロセスであるため、ハードウエア実現候
補とされる。
す情報が付加されているプロセスを仮のソフトウエア実
現候補とする。また、その他のプロセスを仮のハードウ
エア実現候補とする。初期分割はこのようにして行われ
る。図5に初期分割した状態を示している。P1〜P3
は優先度を表す情報を持つプロセスであるため、ソフト
ウエア実現候補とされる。P4〜P7は優先度を表す情
報を持たないプロセスであるため、ハードウエア実現候
補とされる。
【0046】なお、この段階で、図5のように分類され
た仮のソフトウエア実現候補と仮のハードウエア実現候
補に対して、面積(ソフトウエア部分についてはプログ
ラムステップ数)と、実行時間が初期見積もりデータと
して保存される。これらの値は、図2のソフトウエア合
成システム5と動作合成システム3により求められる。
すなわち、プログラムステップ数及び面積は、ソフトウ
エア部分のプログラムステップ数及びハードウエア部分
のHDL言語から分析した回路により、また、実行時間
は、予め設定されているクロック時間と上記プログラム
ステップ数及び回路の遅延時間とにより求められる。
た仮のソフトウエア実現候補と仮のハードウエア実現候
補に対して、面積(ソフトウエア部分についてはプログ
ラムステップ数)と、実行時間が初期見積もりデータと
して保存される。これらの値は、図2のソフトウエア合
成システム5と動作合成システム3により求められる。
すなわち、プログラムステップ数及び面積は、ソフトウ
エア部分のプログラムステップ数及びハードウエア部分
のHDL言語から分析した回路により、また、実行時間
は、予め設定されているクロック時間と上記プログラム
ステップ数及び回路の遅延時間とにより求められる。
【0047】続いて、シミュレータにより、上記の仮の
ソフトウエアプロセスとハードウエアプロセスの実現候
補に対するシミュレーションを行い、それぞれの実行時
間の見積データをプロセス毎(または、プロセス内の実
行ブロック毎)に獲得して、上記初期見積データを参照
しながら評価する。評価は、ハードウエア、ソフトウエ
アの各プロセス(又はプロセス内の実行ブロック)の実
行時間、置き換えた場合の面積の増大率または減少率
(ハードウエアからソフトウエアへの変換では面積は減
少するが、ソフトウエアからハードウエアへの変換では
面積が増大する)、置き換えた場合の実行時間の増大率
または減少率(ハードウエアからソフトウエアへの変換
では実行時間(速度)は遅くなるが、ソフトウエアから
ハードウエアへの変換では実行時間(速度)は早くな
る)などを比較しながら、各プロセス(又はプロセス内
の実行ブロック)をソフトウエアで構成した方が良いの
かハードウエアで構成した方がよいのかを適当な指標
(しきい値)により行う。評価の結果、ハードウエアか
らソフトウエアへ、またはソフトウエアからハードウエ
アへ変換した方が良いとの判断になれば、合成しなおし
て、再びシミュレーションを行う。
ソフトウエアプロセスとハードウエアプロセスの実現候
補に対するシミュレーションを行い、それぞれの実行時
間の見積データをプロセス毎(または、プロセス内の実
行ブロック毎)に獲得して、上記初期見積データを参照
しながら評価する。評価は、ハードウエア、ソフトウエ
アの各プロセス(又はプロセス内の実行ブロック)の実
行時間、置き換えた場合の面積の増大率または減少率
(ハードウエアからソフトウエアへの変換では面積は減
少するが、ソフトウエアからハードウエアへの変換では
面積が増大する)、置き換えた場合の実行時間の増大率
または減少率(ハードウエアからソフトウエアへの変換
では実行時間(速度)は遅くなるが、ソフトウエアから
ハードウエアへの変換では実行時間(速度)は早くな
る)などを比較しながら、各プロセス(又はプロセス内
の実行ブロック)をソフトウエアで構成した方が良いの
かハードウエアで構成した方がよいのかを適当な指標
(しきい値)により行う。評価の結果、ハードウエアか
らソフトウエアへ、またはソフトウエアからハードウエ
アへ変換した方が良いとの判断になれば、合成しなおし
て、再びシミュレーションを行う。
【0048】本実施形態では、システムが実行されると
きには(シミュレーション時の実行においても)、各プ
ロセス間のデータ通信は次のようにして行われる。
きには(シミュレーション時の実行においても)、各プ
ロセス間のデータ通信は次のようにして行われる。
【0049】図6は、2つのプロセス間でのデータ通信
方法を示している。
方法を示している。
【0050】プロセスAとプロセスBはハードウエアで
もソフトウエアでも良い。
もソフトウエアでも良い。
【0051】今、プロセスAからプロセスBにデータを
送る場合を考える。まず、プロセスAは特定メモリにデ
ータを書き込んでから、出力用制御線10に信号をセッ
トする。通信レジスタはプロセス毎に合成されるもので
あって、上記信号を受けるとフラグが立ち、別途合成さ
れている割込コントローラIRCを介してCPUに割込
をかける。なお、IRCは、CPUに割込入力線を介し
て接続されている。CPUは、割込の入力を検出すると
割込に対する処理モードに入り、それまでの処理を中断
して、その割込に対する割込処理ルーチンを起動する
(この場合、割込処理ルーチンはプロセスBの一部とし
て定義されている)。プロセスBの割込処理ルーチン
は、特定メモリからデータを読み出し、制御線でプロセ
スAに終了を通知する。
送る場合を考える。まず、プロセスAは特定メモリにデ
ータを書き込んでから、出力用制御線10に信号をセッ
トする。通信レジスタはプロセス毎に合成されるもので
あって、上記信号を受けるとフラグが立ち、別途合成さ
れている割込コントローラIRCを介してCPUに割込
をかける。なお、IRCは、CPUに割込入力線を介し
て接続されている。CPUは、割込の入力を検出すると
割込に対する処理モードに入り、それまでの処理を中断
して、その割込に対する割込処理ルーチンを起動する
(この場合、割込処理ルーチンはプロセスBの一部とし
て定義されている)。プロセスBの割込処理ルーチン
は、特定メモリからデータを読み出し、制御線でプロセ
スAに終了を通知する。
【0052】図6において、特定メモリは本発明の第1
の記憶オブジェクトに基づいて、通信レジスタは第2の
記憶オブジェクトに基づいて、制御線は第3の記憶オブ
ジェクトに基づいて実現される。
の記憶オブジェクトに基づいて、通信レジスタは第2の
記憶オブジェクトに基づいて、制御線は第3の記憶オブ
ジェクトに基づいて実現される。
【0053】また、プロセスAからプロセスBのデータ
を読み出す場合は、プロセスAから出力用制御線10に
信号をセットした後、プロセスBから制御線上の終了を
待つ。プロセスBは、CPUから割込を受けると特定メ
モリにデータを書き込みプロセスAに対して終了を制御
線により通知する。このとき、プロセスAは、特定メモ
リからデータを読み出す。
を読み出す場合は、プロセスAから出力用制御線10に
信号をセットした後、プロセスBから制御線上の終了を
待つ。プロセスBは、CPUから割込を受けると特定メ
モリにデータを書き込みプロセスAに対して終了を制御
線により通知する。このとき、プロセスAは、特定メモ
リからデータを読み出す。
【0054】上記のように、プロセスがソフトウエアで
あろうとハードウエアであろうと、プロセス間のデータ
通信を割込により行うようにすることで、プロセスの通
信部構造が同じものとなり、ハードウエア又はソフトウ
エアに変換するときに複雑な合成処理を不要とする。
あろうとハードウエアであろうと、プロセス間のデータ
通信を割込により行うようにすることで、プロセスの通
信部構造が同じものとなり、ハードウエア又はソフトウ
エアに変換するときに複雑な合成処理を不要とする。
【0055】すなわち、プロセス間通信において、ソフ
トウエアプロセスとソフトウエアプロセス間で、通常の
ソフトウエア間通信のようにOSや共通メモリを介して
データ通信を行うようにしておくと、これをハードウエ
アに変換したとき、通常のハードウエアーソフトウエア
通信のように割込データ通信構造とするための割込回路
の合成やそのためのステップを組み込むことが必要にな
り、また、ハードウエアプロセスをソフトウエアプロセ
スに変換してソフトウエアーソフトウエア通信を行うよ
うにする場合、既に合成されている割込回路を取り除く
とともに、ソフトウエア通信のためのステップを作成す
ることが必要となってくる。これに対し、本実施形態で
は、プロセスの種類に関係なく、プロセス間通信を通常
のハードウエアーソフトウエア通信にように割込データ
通信構造としているため、プロセスを他の種類に変換し
ても合成処理が複雑になることがない。
トウエアプロセスとソフトウエアプロセス間で、通常の
ソフトウエア間通信のようにOSや共通メモリを介して
データ通信を行うようにしておくと、これをハードウエ
アに変換したとき、通常のハードウエアーソフトウエア
通信のように割込データ通信構造とするための割込回路
の合成やそのためのステップを組み込むことが必要にな
り、また、ハードウエアプロセスをソフトウエアプロセ
スに変換してソフトウエアーソフトウエア通信を行うよ
うにする場合、既に合成されている割込回路を取り除く
とともに、ソフトウエア通信のためのステップを作成す
ることが必要となってくる。これに対し、本実施形態で
は、プロセスの種類に関係なく、プロセス間通信を通常
のハードウエアーソフトウエア通信にように割込データ
通信構造としているため、プロセスを他の種類に変換し
ても合成処理が複雑になることがない。
【0056】図7は、図6のデータ通信部を含むシステ
ム仕様記述の例を示している。
ム仕様記述の例を示している。
【0057】プロセスAはset という出力線とiData お
よびack という入力線を持ち、プロセスBはset という
入力線およびoData とack という出力線を持つ。
よびack という入力線を持ち、プロセスBはset という
入力線およびoData とack という出力線を持つ。
【0058】module AllProcess においてプロセス間の
接続関係が定義され、プロセスAのset はプロセスBの
set に接続されている。つまり、プロセスAにおいてse
t への書き込みがあると、プロセスBに対する割込が発
生することを意味する。この例では、プロセスAからプ
ロセスBに対してデータの転送要求を出し、プロセスA
が転送されてきたデータを取得する。
接続関係が定義され、プロセスAのset はプロセスBの
set に接続されている。つまり、プロセスAにおいてse
t への書き込みがあると、プロセスBに対する割込が発
生することを意味する。この例では、プロセスAからプ
ロセスBに対してデータの転送要求を出し、プロセスA
が転送されてきたデータを取得する。
【0059】以下、番号中に記述内容を説明する。
【0060】1. プロセスAで、set にTRUEを書き込
む。set 制御線はプロセスBの(したがってCPUの)
割込線に接続されており(module AllProcess のb.set
<- a.set( <- は左向きの矢印))、プロセスBの割込
intbが起動される。ここで、setは第2の記憶オブジェ
クトに、TRUEは制御フラグデータに対応している。プロ
セスBは、set を監視していて、制御フラグデータであ
るTRUEの書き込みイベントを検知してプロセスAからの
データ転送要求を知ることになる。
む。set 制御線はプロセスBの(したがってCPUの)
割込線に接続されており(module AllProcess のb.set
<- a.set( <- は左向きの矢印))、プロセスBの割込
intbが起動される。ここで、setは第2の記憶オブジェ
クトに、TRUEは制御フラグデータに対応している。プロ
セスBは、set を監視していて、制御フラグデータであ
るTRUEの書き込みイベントを検知してプロセスAからの
データ転送要求を知ることになる。
【0061】2. プロセスBでは、割込時の処理(ここ
ではデータ線への書き込み:oData=10)を行い、プロセ
スAへの制御線ack にTRUEを返し、set がFALSE になる
のを待つ(module AllProcess のa.ack<- b.ack より、
プロセスBのack 制御線はプロセスAのack 制御線に接
続されている。)。ここで、oData は第1の記憶オブジ
ェクトに、ack が第3の記憶オブジェクトに、TRUEが制
御フラグデータに対応している。プロセスBは、第1の
記憶オブジェクトに対応しているoData に通信データを
書き込み、続いてTRUEを第3の記憶オブジェクトに対応
しているack に書き込み、プロセスAに対して通信デー
タの転送が終了したことを通知することになる。3. プ
ロセスAでは、ack が返されたのでnextの処理に移る
(ans=iData)。set をFALSE にし、ack がFALSE にな
るのを待つ。ここでは、ans=iData の処理により、転送
されたデータを取得する。
ではデータ線への書き込み:oData=10)を行い、プロセ
スAへの制御線ack にTRUEを返し、set がFALSE になる
のを待つ(module AllProcess のa.ack<- b.ack より、
プロセスBのack 制御線はプロセスAのack 制御線に接
続されている。)。ここで、oData は第1の記憶オブジ
ェクトに、ack が第3の記憶オブジェクトに、TRUEが制
御フラグデータに対応している。プロセスBは、第1の
記憶オブジェクトに対応しているoData に通信データを
書き込み、続いてTRUEを第3の記憶オブジェクトに対応
しているack に書き込み、プロセスAに対して通信デー
タの転送が終了したことを通知することになる。3. プ
ロセスAでは、ack が返されたのでnextの処理に移る
(ans=iData)。set をFALSE にし、ack がFALSE にな
るのを待つ。ここでは、ans=iData の処理により、転送
されたデータを取得する。
【0062】4. プロセスBでは、ack をFALSE にす
る。
る。
【0063】以下、1〜4を繰り返す。
【0064】なお、図6との対比では、プロセスAのse
t が図6の通信レジスタに対応する。また、プロセスB
のack が図6のプロセスBからの制御線に出される制御
フラグデータに、oData が特定メモリに対応する。プロ
セスAはoData にセットされたデータをiData を介して
読み出す。
t が図6の通信レジスタに対応する。また、プロセスB
のack が図6のプロセスBからの制御線に出される制御
フラグデータに、oData が特定メモリに対応する。プロ
セスAはoData にセットされたデータをiData を介して
読み出す。
【0065】図7は、プロセスAからプロセスBに対し
てデータ転送を要求する例であるが、この場合、最初に
プロセスAにおいてoData に予め取り決められた要求コ
ードを通信データとして書き込むようにしてもよい。ま
た、プロセスAからデータを転送してプロセスBがこれ
を取得する場合は、例えば、次のような手順となる。 ・プロセスAにおいて定義されたoData に通信データを
書き込む。
てデータ転送を要求する例であるが、この場合、最初に
プロセスAにおいてoData に予め取り決められた要求コ
ードを通信データとして書き込むようにしてもよい。ま
た、プロセスAからデータを転送してプロセスBがこれ
を取得する場合は、例えば、次のような手順となる。 ・プロセスAにおいて定義されたoData に通信データを
書き込む。
【0066】・プロセスAにおいてTRUEをset に書き込
む。
む。
【0067】・プロセスBは、set の状態を制御線を介
して監視しており、TRUEの書き込みイベントを検知す
る。
して監視しており、TRUEの書き込みイベントを検知す
る。
【0068】・プロセスBは、これによりoData に通信
データが転送されたことを確認する。プロセスB自信が
このデータを取得する場合は、oData に書き込まれた通
信データを通信線で接続されたiData に読み込む。
データが転送されたことを確認する。プロセスB自信が
このデータを取得する場合は、oData に書き込まれた通
信データを通信線で接続されたiData に読み込む。
【0069】・プロセスBは、ack にTRUEを書き込み、
通信データの転送が終了したことを通知する。
通信データの転送が終了したことを通知する。
【0070】・プロセスAは、ack がTRUEになったこと
を確認してデータ通信が終了したことを検知する。
を確認してデータ通信が終了したことを検知する。
【0071】このように、プロセス間の通信を、図6に
示す構造により行うことで、例えば、図7のプロセスA
またはBをハードウエアで構成してもソフトウエアで構
成しても通信部分の構成は全く同じものとなる。したが
って、プロセスの種類の変換時において特別の処理を行
う必要がない。
示す構造により行うことで、例えば、図7のプロセスA
またはBをハードウエアで構成してもソフトウエアで構
成しても通信部分の構成は全く同じものとなる。したが
って、プロセスの種類の変換時において特別の処理を行
う必要がない。
【0072】次に、割込コントローラIRCの自動合成
方法について説明する。
方法について説明する。
【0073】図6に示すように、IRCは出力側がCP
Uの割込入力線に接続されるもので、複数の通信用レジ
スタからの信号を受ける周知の構造のものである。本実
施形態では、このIRCがシステム仕様記述から自動的
に作成される。すなわち、周辺回路毎の入出力制御線の
数および方向がシステム仕様記述からわかるため、この
情報に基づいてIRCを自動的に作成することが出来
る。
Uの割込入力線に接続されるもので、複数の通信用レジ
スタからの信号を受ける周知の構造のものである。本実
施形態では、このIRCがシステム仕様記述から自動的
に作成される。すなわち、周辺回路毎の入出力制御線の
数および方向がシステム仕様記述からわかるため、この
情報に基づいてIRCを自動的に作成することが出来
る。
【0074】図8は、IRCの合成方法を示している。
【0075】同図に示すように、周辺回路P1について
は入力制御線LINE1 と出力制御線LINE2が接続されるこ
とが分かり、周辺回路P2については入力制御線につい
ては入力制御線LINE3 が接続されることがわかる。ま
た、各制御線LINE1 〜3 は1ビット制御線であることも
わかる。これらの情報より、周辺回路P1、P2からの
2本の入力制御線と周辺回路P2への1本の出力制御線
を持つIRCを簡単に合成出来る。なお、全ての周辺回
路からの制御信号はCPUへの割込とする。また、LINE
2 のように周辺回路への出力制御線は、CPUからのメ
モリマップドI/O書き込みの制御線とされる。
は入力制御線LINE1 と出力制御線LINE2が接続されるこ
とが分かり、周辺回路P2については入力制御線につい
ては入力制御線LINE3 が接続されることがわかる。ま
た、各制御線LINE1 〜3 は1ビット制御線であることも
わかる。これらの情報より、周辺回路P1、P2からの
2本の入力制御線と周辺回路P2への1本の出力制御線
を持つIRCを簡単に合成出来る。なお、全ての周辺回
路からの制御信号はCPUへの割込とする。また、LINE
2 のように周辺回路への出力制御線は、CPUからのメ
モリマップドI/O書き込みの制御線とされる。
【0076】次に、インターフェイス回路の自動合成方
法について説明する。
法について説明する。
【0077】図9は、インターフェイス回路の自動合成
方法を示している。
方法を示している。
【0078】同図に示すように、システム仕様記述か
ら、3つの入出力データ領域が必要であることが自動的
に判断出来る。つまり、8ビット幅のLINE1 〜3 のデー
タ線があり、周辺回路P1は入力としてLINE1 を使用
し、周辺回路P2は出力としてLINE2 、入力としてLINE
3 を使用することがわかる。そこで、3つの領域をレジ
スタとして生成し、それぞれ適当なアドレスを割り付け
る。図では、A000番地、A001番地、A002番地に割り当て
られている。インターフェイス回路を合成するとき、そ
れぞれのレジスタの実体と、そのレジスタに対する入出
力の制御を行う回路を合成する。これにより、図示の例
では、アドレスバスに0xA000,0xA001,0xA002の値が流れ
たときだけ反応し、データバスとの間でデータの入出力
が行われるインターフェイス回路が実現する。図10
は、自動合成されたインターフェイス回路の合成位置を
示している。
ら、3つの入出力データ領域が必要であることが自動的
に判断出来る。つまり、8ビット幅のLINE1 〜3 のデー
タ線があり、周辺回路P1は入力としてLINE1 を使用
し、周辺回路P2は出力としてLINE2 、入力としてLINE
3 を使用することがわかる。そこで、3つの領域をレジ
スタとして生成し、それぞれ適当なアドレスを割り付け
る。図では、A000番地、A001番地、A002番地に割り当て
られている。インターフェイス回路を合成するとき、そ
れぞれのレジスタの実体と、そのレジスタに対する入出
力の制御を行う回路を合成する。これにより、図示の例
では、アドレスバスに0xA000,0xA001,0xA002の値が流れ
たときだけ反応し、データバスとの間でデータの入出力
が行われるインターフェイス回路が実現する。図10
は、自動合成されたインターフェイス回路の合成位置を
示している。
【0079】このように、システム仕様記述に入出力用
データ線の数と信号方向を含ませておくことにより、簡
単且つ自動的にインターフェイス回路を合成することが
出来る。
データ線の数と信号方向を含ませておくことにより、簡
単且つ自動的にインターフェイス回路を合成することが
出来る。
【0080】
【発明の効果】請求項1にかかる発明によれば、実行単
位のプロセスの集まりで記述したシステム仕様記述に基
づいて設計されるシステム設計において、ハードウエア
プロセスとソフトウエアプロセス間、ハードウエアプロ
セスとハードウエアプロセス間、及びソフトウエアプロ
セスとソフトウエアプロセス間のデータ通信方法は同じ
方法に統一されるために、シミュレーション後の評価に
よって、プロセスの種類を変換するときの合成処理が非
常に簡単となる。また、システムの完成後も、データ通
信がOSや共通メモリを介在することがなく、全て割込
処理により行われるため、処理速度が向上する利点があ
る。
位のプロセスの集まりで記述したシステム仕様記述に基
づいて設計されるシステム設計において、ハードウエア
プロセスとソフトウエアプロセス間、ハードウエアプロ
セスとハードウエアプロセス間、及びソフトウエアプロ
セスとソフトウエアプロセス間のデータ通信方法は同じ
方法に統一されるために、シミュレーション後の評価に
よって、プロセスの種類を変換するときの合成処理が非
常に簡単となる。また、システムの完成後も、データ通
信がOSや共通メモリを介在することがなく、全て割込
処理により行われるため、処理速度が向上する利点があ
る。
【0081】請求項2及び請求項3にかかる発明では、
IRC、インターフェイス回路が自動的に合成されるた
め、システム設計時の負担が非常に軽くなるという利点
がある。
IRC、インターフェイス回路が自動的に合成されるた
め、システム設計時の負担が非常に軽くなるという利点
がある。
【図1】本発明のデータ通信方法の概要を説明する図。
【図2】本発明の実施形態である、ハードウエアとソフ
トウエアの混在するシステムの設計支援装置の構成図。
トウエアの混在するシステムの設計支援装置の構成図。
【図3】プロセスの集まりで書かれるシステム仕様記述
の一例を示す図。
の一例を示す図。
【図4】システム仕様記述におけるプロセスの優先度指
定を示す図。
定を示す図。
【図5】プロセスの初期分割例を示す図。
【図6】2つのプロセス間でのデータ通信方法を説明す
る図。
る図。
【図7】システム仕様記述の一例を示す図。
【図8】IRCの合成について説明する図。
【図9】インターフェイス回路の合成について説明する
図。
図。
【図10】インターフェイス回路と他の回路との関係を
示す図。
示す図。
【図11】通常のプロセス間データ通信方法について説
明する図。
明する図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 新明 正信 京都府京都市下京区木津屋橋通西洞院東入 る東塩小路町606番地 オムロンソフトウ ェア株式会社内 (72)発明者 古渡 俊明 東京都台東区上野3丁目3番8号 株式会 社アイ・ケイ・テクノロジー内
Claims (3)
- 【請求項1】システムの仕様を実行単位のプロセスの集
まりで記述したシステム仕様記述を作成し、このシステ
ム仕様記述に基づいて、全プロセスをハードウエアとソ
フトウエアに分割して設計されるシステムにおいて、任
意のプロセス間での通信が下記のように行われることを
特徴とする、システム仕様記述に基づいて設計されるシ
ステムでのデータ通信方法。 (1)一方のハードウエアプロセス又はソフトウエアプ
ロセスは、通信データをデータ端子を通じて第1の記憶
オブジェクトに書き込む。この場合、一方のハードウエ
アプロセスまたはソフトウエアプロセスがデータ転送を
要求する場合には予め取り決められた要求コードを通信
データとして第1の記憶オブジェクトに書き込んでも良
いし、またはこの書き込み手順自体を省略してもよい。 (2)一方のハードウエアプロセスまたはソフトウエア
プロセスは、続いて制御フラグデータを制御端子を通じ
て第2の記憶オブジェクトに書き込み、これにより通信
データが転送されたことまたは通信データの転送要求を
他方のハードウエアプロセスまたはソフトウエアプロセ
スに対して通知する。 (3)他方のハードウエアプロセスまたはソフトウエア
プロセスは、制御端子を通じて第2の記憶オブジェクト
を監視し、制御フラグデータの書き込みイベントを検知
する。 (4)他方のハードウエアプロセスまたはソフトウエア
プロセスは、制御フラグデータの書き込みイベントによ
り、データ端子を通じて第1の記憶オブジェクトの通信
データを確認しまたは該記憶オブジェクトに通信データ
を書き込み、続いて制御フラグデータを制御端子を通じ
て第3の記憶オブジェクトに書き込み、これにより一方
のハードウエアプロセスまたはソフトウエアプロセスに
対して通信データの転送が終了したことを通知する。 (5)一方のハードウエアプロセスまたはソフトウエア
プロセスは、制御端子を通じて第3の記憶オブジェクト
を監視し、制御フラグデータの書き込みイベントを検知
する。 (6)一方のハードウエアプロセスまたはソフトウエア
プロセスは、制御フラグデータの書き込みイベントによ
り、データ通信が終了したことを検知する。 - 【請求項2】システムの仕様を実行単位のプロセスの集
まりで記述したシステム仕様記述を作成し、このシステ
ム仕様記述に基づいて、全プロセスをハードウエアとソ
フトウエアに分割して設計されるシステムにおいて、シ
ステム仕様記述内には入力用制御線の数と信号方向とを
表す周辺回路記述が含まれており、この周辺回路記述に
基づいて、各周辺回路からCPUに対する割込を制御す
る割込コントローラを合成することを特徴とする、シス
テム仕様記述に基づいて設計されるシステムでの割込コ
ントローラ合成方法。 - 【請求項3】システムの仕様を実行単位のプロセスの集
まりで記述したシステム仕様記述を作成し、このシステ
ム仕様記述に基づいて、全プロセスをハードウエアとソ
フトウエアに分割して設計されるシステムにおいて、シ
ステム仕様記述内には入出力用データ線の数と信号方向
とを表す周辺回路記述が含まれており、この周辺回路記
述に基づいて、各周辺回路からCPUバスへのインター
フェイス回路を合成することを特徴とする、システム仕
様記述に基づいて設計されるシステムでのインターフェ
イス回路合成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10079278A JPH11282888A (ja) | 1998-03-26 | 1998-03-26 | システム仕様記述に基づいて設計されるシステムでのデータ通信方法、割込コントローラ合成方法及びインターフェイス回路合成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10079278A JPH11282888A (ja) | 1998-03-26 | 1998-03-26 | システム仕様記述に基づいて設計されるシステムでのデータ通信方法、割込コントローラ合成方法及びインターフェイス回路合成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH11282888A true JPH11282888A (ja) | 1999-10-15 |
Family
ID=13685410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10079278A Pending JPH11282888A (ja) | 1998-03-26 | 1998-03-26 | システム仕様記述に基づいて設計されるシステムでのデータ通信方法、割込コントローラ合成方法及びインターフェイス回路合成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH11282888A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6976439B2 (en) * | 2002-03-12 | 2005-12-20 | Sanyo Industries Co., Ltd. | Incinerator |
KR100552668B1 (ko) * | 2001-12-24 | 2006-02-20 | 한국전자통신연구원 | 하드웨어-소프트웨어 인터페이스 합성방법 |
JP2007188186A (ja) * | 2006-01-11 | 2007-07-26 | Sony Corp | イベント方向検出装置およびその方法 |
-
1998
- 1998-03-26 JP JP10079278A patent/JPH11282888A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100552668B1 (ko) * | 2001-12-24 | 2006-02-20 | 한국전자통신연구원 | 하드웨어-소프트웨어 인터페이스 합성방법 |
US6976439B2 (en) * | 2002-03-12 | 2005-12-20 | Sanyo Industries Co., Ltd. | Incinerator |
JP2007188186A (ja) * | 2006-01-11 | 2007-07-26 | Sony Corp | イベント方向検出装置およびその方法 |
US8281316B2 (en) | 2006-01-11 | 2012-10-02 | Sony Corporation | Event direction detector and method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002073527A (ja) | Dmaコントローラ | |
US6272583B1 (en) | Microprocessor having built-in DRAM and internal data transfer paths wider and faster than independent external transfer paths | |
US7054979B2 (en) | Method and apparatus for routing configuration accesses from a primary port to a plurality of secondary ports | |
JPH11272603A (ja) | バスブリッジ装置及びトランザクションフォワード方法 | |
JP2019219803A (ja) | 制御装置、画像形成装置、制御方法及び制御プログラム | |
JP2006268753A (ja) | Dma回路及びコンピュータシステム | |
US5627968A (en) | Data transfer apparatus which allows data to be transferred between data devices without accessing a shared memory | |
US7783804B2 (en) | Bus relay device and bus control system including plurality of bus masters, bus slave, interconnect section, and bridge section | |
JPH11282888A (ja) | システム仕様記述に基づいて設計されるシステムでのデータ通信方法、割込コントローラ合成方法及びインターフェイス回路合成方法 | |
US7254667B2 (en) | Data transfer between an external data source and a memory associated with a data processor | |
JP5359603B2 (ja) | 集積回路システム、データ書き込み方法、データ読み出し方法 | |
JP4257358B2 (ja) | バス制御方法および装置 | |
JP2005258509A (ja) | ストレージ装置 | |
US7702838B2 (en) | Method and apparatus for configuration space extension bus | |
JP2006285872A (ja) | マルチcpuシステム | |
JPS63123130A (ja) | パイプライン制御方式 | |
US20100153610A1 (en) | Bus arbiter and bus system | |
US7111301B1 (en) | Request and completion queue load balancing | |
JP2006065457A (ja) | インタフェース回路生成装置およびインタフェース回路 | |
KR930004903B1 (ko) | 데이타 버스를 이용한 프로세서간 병렬 데이타 통신시스팀 및 통신방법 | |
JP3752478B2 (ja) | 情報処理装置 | |
JP2912090B2 (ja) | タイムスロットインタチェンジ回路 | |
JPH0561812A (ja) | 情報処理システム | |
JP2007328647A (ja) | Cpu間のデータ転送方式 | |
JP2017004337A (ja) | マルチ・プログラマブルデバイス・システムとその制御方法 |