(57)【要約】本発明は、アプリケーションの通信タイプを基に通信サポートを合成する方法とその装置に関するものである。集積回路設計方法において、アプリケーション・スケジュールがアプリケーションにために準備される。アプリケーション・スケジュールは、特定のタスクを実行する複数のユニットと、その特定タスク間の１つまたは複数の通信リンクとを記述している。アプリケーション・スケジュールを受信後、通信タイプは、アプリケーション・スケジュール内の通信リンクの各々に対して、非同期通信または同期通信を決定される。次に、非同期通信の各々に対し、各非同期通信を、データを転送するのに割り込みとバスを使用するセミ同期通信に変換できるかどうか決定する。通信サポートは、セミ同期通信に対し、割り込みとバスを使用して同期通信として合成される。さらに、通信サポートを、セミ同期通信でないと決定されている非同期通信に対し合成できる。
2004500636.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションの通信タイプを基に通信サポートを合成する方法であって、
アプリケーションのためのアプリケーション・スケジュールを準備するステップであって、前記アプリケーション・スケジュールは、特定のタスクを実行する複数のユニットと前記特定のタスク間に１つまたは複数の通信リンクとを有する、ステップと、
前記アプリケーション・スケジュール内の前記通信リンクの各々に対し、非同期通信または同期通信の通信タイプを決定するステップと、
前記非同期通信の各々に対し、各非同期通信が、割込みとバスとを使用してデータを転送するセミ同期通信に変換できるかどうかを決定するステップと、
前記セミ同期通信に対する通信サポートを、前記割込みと前記バスとを使用して同期通信として合成するステップと、
を含む方法。
【請求項２】
通信メモリを使用して、セミ同期通信でない前記非同期通信を合成するステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記非同期通信の各々が送信ユニットから受信ユニットに向けて発生し、前記送信ユニットが通信データを生成するための第１タスクを実行し、前記受信ユニットが第２タスクを実行するための前記通信データを受信する、請求項１に記載の方法。
【請求項４】
前記セミ同期通信の各々に対し、前記バスを使用して前記送信ユニットと受信ユニットを接続し、前記送信ユニットから受信ユニットに通信データを同期的に転送する、請求項３に記載の方法。
【請求項５】
前記受信ユニットが通信データを格納する内部メモリを含み、
前記送信ユニットが前記バスを通して前記受信ユニットへの割込みをアサートし、前記通信データを前記内部メモリに格納するために前記受信ユニットに送信する、請求項４に記載の方法。
【請求項６】
前記送信ユニットが通信データを格納する内部メモリを含み、
前記受信ユニットが前記送信ユニットへの割込みをアサートして、前記受信ユニットが前記第２タスクの実行準備のできたときに、前記送信ユニットの内部メモリからの前記通信データを転送する、請求項４に記載の方法。
【請求項７】
前記割込みが、前記アプリケーション・スケジュール内を伝播する時間遅延Δに関連付けられている、請求項４に記載の方法。
【請求項８】
アプリケーションの通信タイプを基に通信サポートを合成する方法であって、
アプリケーションのためのアプリケーション・スケジュールを準備するステップであって、前記アプリケーション・スケジュールは、特定のタスクを実行する複数のユニットと前記特定のタスク間に１つまたは複数の通信経路を有する、ステップと、
前記アプリケーション・スケジュール内の前記通信経路の各々に対し、非同期通信または同期通信の通信タイプを決定するステップと、
前記非同期通信の各々に対し、各非同期通信が、割込みとバスとを使用してデータを転送するセミ同期通信に変換できるかどうかを決定するステップと、
前記セミ同期通信に対する第１ハードウェア・サポートを、前記割込みとバスとを使用して、同期通信として合成するステップと、
通信メモリを使用して、セミ同期通信でない前記非同期通信に対する第２ハードウェアを合成するステップと、
を含む方法。
【請求項９】
前記非同期通信の各々が送信ユニットから受信ユニットに向けて発生し、前記送信ユニットが通信データを生成するための第１タスクを実行し、前記受信ユニットが第２タスクを実行するための前記通信データを受信する、請求項８に記載の方法。
【請求項１０】
前記セミ同期通信の各々に対し、前記バスを使用して前記送信ユニットと受信ユニットを接続し、前記送信ユニットから受信ユニットに通信データを同期的に転送する、請求項９に記載の方法。
【請求項１１】
前記受信ユニットが通信データを格納する内部メモリを含み、
前記送信ユニットが前記バスを通して前記受信ユニットへの割込みをアサートし、前記通信データを前記内部メモリに格納するために前記受信ユニットに送信する、請求項１０に記載の方法。
【請求項１２】
前記送信ユニットが通信データを格納する内部メモリを含み、
前記受信ユニットが前記送信ユニットへの割込みをアサートして、前記受信ユニットが前記第２タスクの実行準備のできたときに、前記送信ユニットの内部メモリからの前記通信データを転送する、請求項１０に記載の方法。
【請求項１３】
前記割込みが、前記アプリケーション・スケジュール内を伝播する時間遅延Δに関連付けられている、請求項１０に記載の方法。
【請求項１４】
アプリケーションの通信タイプを基に通信サポートを合成する集積回路設計ツールであって、
アプリケーションのためのアプリケーション・スケジュールを準備する手段であって、特定のタスクを実行する複数のユニットと前記特定のタスク間に１つまたは複数の通信経路とを有する手段と、
前記アプリケーション・スケジュール内の前記通信経路の各々に対し、非同期通信または同期通信の通信タイプを決定する手段と、
前記非同期通信の各々に対し、各非同期通信が、割込みとバスとを使用してデータを転送するセミ同期通信に変換できるかどうかを決定する手段と、
前記セミ同期通信に対する第１ハードウェア・サポートを、前記割込みと前記バスとを使用して同期通信として合成する手段と、
通信メモリを使用して、セミ同期通信でない前記非同期通信に対する第２ハードウェア・サポートを合成する手段と、
を備えている集積回路設計ツール。
【請求項１５】
前記非同期通信の各々が送信ユニットから受信ユニットに向けて発生し、前記送信ユニットが通信データを生成するための第１タスクを実行し、前記受信ユニットが第２タスクを実行するための前記通信データを受信する、請求項１４に記載の集積回路設計ツール。
【請求項１６】
前記セミ同期通信の各々に対し、前記バスを使用して前記送信ユニットと受信ユニットを接続し、前記送信ユニットから受信ユニットに通信データを同期的に転送する、請求項１５に記載の集積回路設計ツール。
【請求項１７】
前記受信ユニットが通信データを格納する内部メモリを含み、
前記送信ユニットがバスを通して前記受信ユニットへの割込みをアサートすることにより、前記通信データを前記受信ユニットに送信して、そのデータを受信装置の内部メモリに格納する、請求項１６に記載の集積回路設計ツール。
【請求項１８】
前記送信ユニットが通信データを格納する内部メモリを含み、
前記受信ユニットが前記送信ユニットへの割込みをアサートして、前記受信ユニットが前記第２タスクの実行準備のできたときに、前記送信ユニットの内部メモリからの前記通信データを転送する、請求項１６に記載の集積回路設計ツール。
【請求項１９】
前記割込みが、前記アプリケーション・スケジュール内を伝播する時間遅延Δに関連付けられている、請求項１６に記載の集積回路設計ツール。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は一般に、集積回路設計の分野に関する。詳細には、本発明は、非同期通信を同期化して集積回路を自動設計することに関する。
【０００２】
（関連技術の説明）
最新の電子デバイスは一般に、特定の性能要求を満たすように設計された１つまたは複数の集積回路（ＩＣ）チップを含んでいる。集積回路が複雑になるのに伴い、ロジック設計者が、複雑な機能ブロックを集積回路設計に迅速に実現化する能力を持つことが一層望ましくなっている。さらに、アプリケーションが一層複雑になり一層複雑な処理を要求するのに伴ない、設計者は、増加する多数の可能な解を迅速に分析することを要求される。カスタムまたはセミカスタムＩＣの容易なロジック設計を可能にして、性能制約または回路要求条件を満たし、回路製造を支援するために、設計と製造のための自動化システムが開発されてきた。例えば、コンピュータ支援設計（ＣＡＤ）を利用する自動化設計システムは、非常に複雑なＩＣ設計にルーティンで使用されており、またＩＣは組み込み型システム（ｅｍｂｅｄｄｅｄ ｓｙｓｔｅｍ）のように短い寿命を持つ。
【０００３】
ＣＡＤシステムの１つのタイプは、「ロジック合成システム」として知られている。ロジック合成システムでは、入力、出力、および高度な設計明細が、ハードウェア記述言語（ＨＤＬ）を使用してコンピュータに入力される。次に、合成ソフトウェアを使用して、コンピュータは、ＨＤＬで記述された機能を実行するロジック設計を生成する。
【０００４】
一般に、組み込み型システムのような短寿命システムは、１つまたは複数のマルチプロセッサを含むことが多い。このマルチプロセッサは、時間制約を満たすために、アプリケーションのタスクを並列に並べるようになっている。したがって、このようなシステムでは、いくつかのプロセッサを、同期転送のためのデータ・バス、または非同期転送のための通信メモリ（例えば、ＦＩＦＯ，デュアル・ポート等）のような通信インタフェースによって１つまたは複数のＩＣに接続できる。しかし、従来の方法は一般に、特定のアプリケーションに対しインタフェースを最適化する代わりに、一般的方法でこのようなシステムの通信インタフェースを設計していた。
【０００５】
例として、図１Ａは設計ユニットの代表的ライブラリ１００を表すブロック図である。図に示されるように、ライブラリ１００はプロセッサＰ１およびＰ２、ならびにハードウェアＨＷ１およびＨＷ２のような設計ユニットを含む。ライブラリ１００内の設計ユニットの各々は、割り当てられたタスクを実行できる。例えば、プロセッサＰ１を使用してタスクＴ１、Ｔ２、Ｔ３、Ｔ４を実行でき、一方プロセッサＰ２はタスクＴ１３を実行できる。同様に、ハードウェアＨＷ１はタスクＴ５、Ｔ６、Ｔ７、Ｔ８を実行でき、一方ハードウェアＨＷ２を使用してタスクＴ９、Ｔ１０、Ｔ１１、Ｔ１２を実行できる。一般にタスクＴ１〜Ｔ１３は、機能としてライブラリ内に備えられている。
【０００６】
図１Ｂは、ライブラリ１００からの機能と設計ユニットを使用するアプリケーション１２０のモデル化を示す。このアプリケーションのモデル化では、タスクはノードで表されており、各ノードは矢印で示されるエッジを通して相互に接続されている。エッジは通信リンクを表し、一方タスクは機能を表す。アプリケーション１２０はタスク・ノードと通信リンクによりモデル化されている。特にプロセッサＰ１はタスクＴ１、Ｔ２、Ｔ３、Ｔ４を割り当てられており、それらは通信エッジＥ１、Ｅ２、Ｅ３、Ｅ４のそれぞれを介して、ハードウェアＨＷ１のタスクＴ５、Ｔ６、Ｔ７、Ｔ８のそれぞれのノードにリンクされている。ハードウェアＨＷ２はタスクＴ９、Ｔ１０、Ｔ１１、Ｔ１２を割り当てられており、それらは通信エッジＥ５、Ｅ６、Ｅ７、Ｅ８のそれぞれを介して、タスクＴ５、Ｔ６、Ｔ７、Ｔ８のそれぞれのノードにリンクされている。プロセッサＰ２のタスクＴ１３は、通信エッジＥ９、Ｅ１０、Ｅ１１、Ｅ１２を介して、タスクＴ９、Ｔ１０、Ｔ１１、Ｔ１２のノードにリンクされている。
【０００７】
図１Ｃは、図１Ｂでモデル化されているアプリケーション１２０のスケジューリングを表す概略図である。このスケジュール図では、設計ユニットの割り当てられたタスクは時間の関数としてスケジュール化される。特に設計ユニットの各々のタスクは特定の時間期間を割り当てられ、順序付けてスケジュール化される。例えば、プロセッサＰ１のタスクはＴ１、Ｔ２、Ｔ３、Ｔ４の順番にスケジュール化される。またハードウェアＨＷ１のタスクはＴ５、Ｔ６、Ｔ７、Ｔ８の順番にスケジュール化される。同様に、ハードウェアＨＷ２のタスクはＴ９、Ｔ１０、Ｔ１１、Ｔ１２の順番にスケジュール化される。
【０００８】
この構成では、アプリケーション１２０のタスク・ノードを接続する通信エッジは、同期または非同期通信のどちらかでスケジュール化される。送信ユニット（即ち、トランスミッタ）と受信ユニット（即ち、レシーバ）間の同期または非同期通信の決定は、トランスミッタによるタスクの完了時のレシーバユニットの使用可能性により決定される。トランスミッタによるタスクの完了時点でレシーバがタスクを実行していない場合は、通信は同期通信となる。例えば通信１５２、１６０、１６２、１６４、１６６、１６８、１７６は同期通信であり、一方通信１５６、１５８、１７０、１７２、１７４は非同期通信である。
【０００９】
同期または非同期通信のどちらかのような通信の特性決定はアプリケーションの合成に影響を与える。一般に同期通信は、２つまたはそれ以上の設計ユニット間の通信データ用のバスを使用して、合成され、実現される。これに対して、非同期通信は一般に、同期化のためにデータを格納するＦＩＦＯ（先入れ先出し）バッファ、デュアル・ポートまたはこれらに類するものを使用して、合成され、実現される。
【００１０】
図１Ｃのアプリケーションのスケジュールを使用して、図１Ｄに示されるようなアプリケーション１２０のシステム１８０のアーキテクチャを合成できる。システム１８０はプロセッサＰ１、Ｐ２、ハードウェアＨＷ１、ＨＷ２を含む。さらに、このシステムはペアのＦＩＦＯ（ＦＩＦＯ１とＦＩＦＯ２）を含む。ＦＩＦＯ１はプロセッＰ１とハードウェア１間にあり、非同期通信を可能にする。同様に、ＦＩＦＯ２はＨＷ２とプロセッサＰ２間の非同期通信を可能にする。
【００１１】
しかし不都合なことは、通常、特にＦＩＦＯおよび一般に通信メモリは、バスに比べて実装するための大きい領域をＩＣチップ内に必要とすることである。これは、ＦＩＦＯまたは通信メモリを有するシステムは、バスを有するシステムに比べ実装コストが高いことを意味する。さらに、組み込み型システムの短寿命のために、従来技術では一般に、コストとチップ面積（ｄｉｅ ａｒｅａ）を減少させるために、非同期通信を十分に最適化していない。
【００１２】
したがって、必要とされることは、従来技術に必要な付帯コストとチップ面積を必要とせずに、効率的に非同期通信を実現する方法と装置である。
【００１３】
（発明の概要）
一般には、本発明は、アプリケーションの通信タイプを基に通信サポートを合成する方法と装置を提供することにより、これらの要求を満たす。本発明は、例えばプロセス、装置、システム、デバイス、または方法を含む各種の方法で実現できることは明らかである。本発明の幾つかの実施形態を以下に述べる。
【００１４】
本発明は、アプリケーションの通信タイプを基に通信サポートを合成する方法を提供する。この方法では、アプリケーション・スケジュールがアプリケーションのために用意される。アプリケーション・スケジュールは、複数のユニットを記述して、特定のタスクとその特定タスク間の１つまたは複数の通信リンクを実行する。アプリケーション・スケジュールを受信後、通信タイプはアプリケーション・スケジュールの通信リンクの各々に対し、非同期通信または同期通信を決定する。次に、非同期通信の各々に対し、各非同期通信を、割り込みとバスを使用してデータを転送するセミ同期通信に変換可能かどうかが決定される。通信サポートを合成することにより、割込みとバスを使用して、同期通信と同様のセミ同期通信を実行する。さらに、通信サポートを合成することにより、セミ同期通信でないと決定されている非同期通信を実現できる。
【００１５】
別の実施形態では、本発明は、アプリケーションの通信タイプを基にして通信サポートのための集積回路設計ツールを提供する。集積回路設計ツールは、（ａ）アプリケーションのためのアプリケーション・スケジュールを提供する手段であって、そのアプリケーション・スケジュールが複数のユニットを持つことにより、特定のタスクと特定タスク間の１つまたは複数の通信経路を実行する、手段と、（ｂ）アプリケーション・スケジュール内の通信経路の各々に対する通信タイプを、非同期または同期通信として決定する手段と、（ｃ）非同期通信の各々に対し、各非同期通信を、割り込みとバスを使用してデータを転送するセミ同期通信に変換可能かどうかを決定する手段と、（ｄ）割り込みとバスを使用して、同期通信と同様のセミ同期通信に対する第１ハードウェア・サポートを合成する手段と、（ｅ）通信メモリを使用して、セミ同期通信でない非同期通信に対し第２ハードウェア・サポートを合成する手段とを含む。
【００１６】
本発明の方法と装置は、アプリケーション機能の目的を保持すると同時に通信に使用されるハードウェアのサイズを減少する。特に、セミ同期通信に変換可能な非同期通信を識別することにより、同期バスと割り込みメカニズムを使用する代わりに、従来のＦＩＦＯを使用できる。ＩＣチップ内にバスを実装することにより、表面面積の実質的節約が可能になり、それに伴いコストを低減させる。本発明の他の態様と利点は、添付図面と関連させて、本発明の原理を例で示している以下の詳細な説明で明らかになるであろう。
【００１７】
（好ましい実施形態の詳細な説明）
本発明の以下の詳細な説明では、アプリケーションの通信タイプを基に通信サポートを合成する方法と装置、各種の特定の詳細を述べることにより、本発明の全体の理解を可能にする。しかし、当業者には、これら特定の詳細の幾つかまたはすべてが無くても本発明を実現できることは明らかである。他の場合には、本発明を不必要に混乱させないために、既知の回路、システム、およびプロセス動作を詳細に述べていない。
【００１８】
本発明は、同期方法によりユニット間のデータ転送を実行する。２つのユニット間の同期転送に対しては、通信サポートはバスであり、このバスはＦＩＦＯまたは他のすべての格納システムより狭い面積を占める。通信のこの同期化を実行するために、移動可能なタスクを使用して、送信ユニットと受信ユニット間の送信と受信を合成する。次に、ユニット間の通信に必要なデータ格納要求を考慮して、割り込み駆動メカニズムを使用して、送信ユニットと受信ユニット間のデータを転送する。したがって、非同期通信は同期転送にできる。
【００１９】
本発明の方法と装置は、アプリケーション機能の目的を保持すると同時に通信に使用されるハードウェアのサイズを減少する。さらに本発明は、面積の最適化がされた通信サポートのベンチの定義を可能にする。さらに、本発明は、この回路上で実行されるアプリケーションに基づいて、「事前定義システム」と呼ばれる既存のマルチプロセッサ回路上の通信サポートのオーバヘッドを予測できる。
【００２０】
図２は、本発明の１つの実施形態による集積回路製造システム２００のブロック図を示す。システム２００はプロセッサ（例えば、ＣＰＵ）２０２、Ｉ／Ｏポート２０４、キーボード２０６、モニタ２０８、ＲＯＭ２１０、ＲＡＭ２１２、ディスク・ドライブ・ユニット２１４、マスク・ジェネレータ２１６、およびＩＣ製造装置２１８を含む。プロセッサ２０２は、Ｉ／Ｏポート２０４とキーボード２０６のようなユーザ入力デバイスに接続されている。ＨＤＬは受信でき、Ｉ／Ｏポート２０４、ユーザ入力デバイス２０６またはディスク・ドライブ２１４のような別の入力チャネルを通してシステム２００内に入力できる。集積回路製造システムは、集積回路製造ツールを呼ばれることが多く、例えば、本明細書に参照して組み込まれる、Ｄｏｃｋｓｅｒその他による米国特許第５，９６３，４５４号の名称「集積回路設計における複雑な機能ブロックを効率的に実現する方法と装置」に記載されている。
【００２１】
システム２００は、ＲＯＭ２１０、ＲＡＭ２１２、ディスク・ドライブ２１４などの各種タイプのディジタル記憶機能を備えるのが望ましい。ディスク・ドライブ２１４を使用して、Ｉ／Ｏポート２０４またはユーザ入力デバイス２０６から受取ったＨＤＬを格納でき、またシステム内にＨＤＬを入力できる。またディスク・ドライブ２１４は、システム２００とそのプロセッサ２０２で実行するプロセスにより作成されたマスク生成データを格納する。ディスク・ドライブ２１４を、磁気テープまたはフロッピ・ディスクなどの他の永久記憶装置に置き換え、またはそれで補強してもよい。アプリケーション・モデル、設計制約、事前設計システム、設計ユニットと機能のライブラリ、アプリケーション・スケジュール、および通信リストなどの入力を、例えばＩ／Ｏポート２０４またはユーザ入力デバイス２０６のどちらを通して入力するか、もしくはそれらをシステム２００上で直接合成できる。
【００２２】
入力を基に、システム２００はハードウェア設計を合成し、マスク生成データを作成する。このマスク生成データはディジタル記憶、例えばディスク・ドライブ２１４に格納してもよい。マスク・ジェネレータ２１６は、プロセッサ２０２からマスク生成データを受取る。代替方法では、（図示なし）マスク・ジェネレータ２１６はディスク・ドライブ２１４のようなディジタル記憶からマスク生成データを直接受取ってもよい。マスク・ジェネレータ２１６はシステム２００の一部であってもよく、また分離したデバイスであってもよい。マスク・ジェネレータ２１６は、マスク生成データを使用してフォトリソグラフィ・マスクを生成する。これらのマスクは集積回路製造装置２１８で使用され、ウェハ上に集積回路のコンポーネントを形成する。またマスクは、集積回路上のコンポーネントを生成し、またコンポーネント間の接続を形成するのに十分である。集積回路製造装置２１８は、半導体製造の当業者には既知の、エッチング装置、化学気相蒸着（ＣＶＤ：ｃｈｅｍｉｃａｌ ｖａｐｏｒ ｄｅｐｏｓｉｔｉｏｎ）装置、リソグラフィ装置等の半導体製造装置を含む。
【００２３】
システム２００による処理の最終結果物は、パッケージされた集積回路２２０である。パッケージＩＣ２２０はマスク・ジェネレータ２１６で生成されたマスクを使用して形成されるダイ２２４を含む。半導体ダイ２２４は一般に、ディジタル集積回路と、この回路を幾つかのリード２２６に接続するＩ／Ｏパッド２２２とを含む。Ｉ／Ｏパッド２２２は、ボンディング・ワイヤのような任意の従来の方法でリード２２６に接続できる。
【００２４】
図３は、本発明の１つの実施形態による集積回路設計を開発する方法のフローチャートを示す。この方法では、ハードウェア通信ユニットは、通信の多重ステップ特性化プロセスに割り当てられる。この方法は処理３０２で開始され、ここではアプリケーション・スケジュールと通信リストが入力として準備される。１つの実施形態では、アプリケーション・スケジューリングは、すべてのタスクの既知の開始日時と終了日時を持つマルチプロセッサ・システムのために提供される。例えば、１つのモデルでは、すべてのデータ転送が送信タスクの終了時と受信タスクの開始時で実行される。通信リストはスケジューリングにもとづくユニット間のすべての通信の情報を含む。
【００２５】
次に処理３０４では、ユニット間の通信は、タスクの移動度などの方法を使用して、同期または非同期のどちらかに決定される。例えば、タスク１は同期モードまたは非同期モードのどちらかでタスク２と通信する。送信と受信の時間的な移動度の重なりがある場合は、転送は同期モードで実行できる。重なりがない場合は、転送は同期モードでは実行できず、代わりに、ＦＩＦＯのような通信メモリを使用して非同期通信で実行される。タスクの移動度による同期または非同期通信の決定は、図４Ａ〜４Ｃで詳細に述べる。
【００２６】
１つの実施形態によれば、通信リスト内の通信のセットは、２つのサブセット、即ち同期通信のサブセットと非同期通信のサブセットに分割される。処理３０４と３０６において同期と決定された通信に対しては、処理３１８に進行し、そこで同期転送に対するサポートが合成される。一方、処理３０４と３０６において非同期と決定された通信に対しては、処理３０８に進行し、そこで非同期通信で１つまたは複数のシーク動作が実行される。このシーク動作は、レシーバとトランスミッタの格納アルゴリズムを利用して、非同期通信をセミ同期に潜在的に変換できるかどうかを決定するために用いられる。
【００２７】
潜在的にセミ同期通信でないこれらの非同期通信は、真の非同期通信である。この場合は、処理３１０を経て処理３１２に進行し、そこで非同期通信に対し非同期サポートが合成される。この処理では、非同期通信に対するメモリ要求条件が最小化されるように、ハードウェア要求条件を決定する。これは、残っている同期通信について重み付き相互一致アルゴリズム（ｗｅｉｇｈｔｅｄ ｂｉｐａｒｔｉｔｅ ｍａｔｃｈｉｎｇ ａｌｇｏｒｉｔｈｍ）を適用して得られ、このアルゴリズムは当技術分野では既知である。事前定義済みシステムに合成を適用する場合、このレベルが、事前定義済みシステムで利用できる通信ハードウェア情報（例えば、バス、デュアル・ポート等）を利用する。
【００２８】
非同期サポートの合成後、セミ同期と同期通信に対して資源を割当てできる。潜在的にセミ同期であると決定されているこれらの非同期通信に対して、そのセミ同期通信のデータを格納すべき場所を決定することにより、潜在的なセミ同期通信が真のセミ同期であるかどうかが決定される。好ましくは、通信データの割当て処理は、スケジューリングに従ってユニット内の空きメモリの利用可能性を考慮に入れる。１つの実施形態では、この割当てはコストγを使用して実行される。例えば、多くの場合ユニットはメモリを含み、通信データの割当ては受信側（例えば、レシーバ）、送信側（例えば、トランスミッタ）、または前の処理３１２で検出された通信メモリ上で可能である。記憶容量に対し不十分な空間を生じることなく、これらの配置のどれかが可能である場合、最低の追加コストを持つ配置が拡張される。
【００２９】
潜在的セミ同期通信が非同期に留まる場合、サポートの新しい合成を処理３１６で実行して、非同期通信に対する最低数のサポート・ハードウェアを得る。例として、通信メモリを使用する場合、転送は非同期である（即ち、真のセミ同期ではない）。この場合、処理３１６での新しい割当てにより、非同期転送に対し必要に応じてサポートを合成して、非同期サポートを生成する。例えば、通信メモリを追加して、新しい通信ハードウェアを構成できる。
【００３０】
真のセミ同期通信に対しては、セミ同期通信はレシーバまたはトランスミッタとして定義される。この特性決定の結果として、これらの転送動作に関連する時間が判明する。この時、通信ハードウェアは、同期転送と同時に、同期とセミ同期タイプに対し最適化できる。なぜならそれらは両方共、同一タイプのハードウェア（例えば、バス）を使用するからである。以下に詳細を述べるように、処理３１８では最適化が実行され、同期転送に対するサポートが合成される。そして、この設計方法は処理３２０で終了する。
【００３１】
図４Ａ〜４Ｃは、同期通信と非同期通信を決定するためのタスク移動度を示す詳細なタイミング図を示す。これらの図では、ｔｅは通信を送信する時間を示し、ｔｒは通信を受信する時間を示す。さらに、ｕ１はトランスミッタを、ｕ２はレシーバを表す。トランスミッタｕ１とレシーバｕ２の間において、可能な限り速い（ＡＳＡＰ）スケジューリングから、可能な限り遅い（ＡＬＡＰ）スケジューリングまでの時間の移動度が得られる。しかし、通信ユニットが割込みメカニズムを処理する場合（一般のソフトウェア・コンポーネントの場合）は、移動度の重なりがない場合でも同期転送を実行できる。この方法で同期化された通信は、「セミ同期」と呼ばれる。
【００３２】
開始時間Ｔｂｅｇｉｎ＿ＡＳＡＰ＿Ｔ１を基準として、アプリケーションの最大時間によりタスクＴ１とＴ２を移動できる。例えば、タスクＴ１とＴ２は３．５の実行時間を持ち、一方通信時間は０．５である。この場合、アプリケーションの最大時間が１２の場合は、タスクＴ１は時間０（Ｔｂｅｇｉｎ）と時間３．５（Ｔｅｎｄ）の間に実行できる。通信は、時間３．５（Ｔｂｅｇｉｎ）〜４（Ｔｅｎｄ）間にユニットｕ１とｕ２間で実行できる。タスクＴ２は時間４（Ｔｂｅｇｉｎ）〜７（Ｔｅｎｄ）の間に実行できる。時間制約の１２は守られる。Ｔｂｅｇｉｎ＿ＡＳＡＰ＿Ｔ１は時間０になるように決定される。
【００３３】
代替方法では、タスクＴ２は、アプリケーションの１２Ｔｍａｘ時間と、Ｔ２のＴｅｎｄ時間とで、決定してもよい。タスクＴ２のＴｂｅｇｉｎは時間８．５である。ユニットｕ１とｕ２間の通信は、時間８（Ｔｂｅｇｉｎ）と時間８．５（Ｔｅｎｄ）の間で実行できる。タスクＴ１は、時間５（Ｔｂｅｇｉｎ）〜時間８（Ｔｅｎｄ）の間で実行できる。また時間制約の１２は守られる。時間Ｔｂｅｇｉｎ＿ＡＬＡＰ＿Ｔ１は時間５である。このように、タスクの開始時間Ｔｂｅｇｉｎは、Ｔｂｅｇｉｎ＿ＡＳＡＰからＴｂｅｇｉｎ＿ＡＬＡＰまで移動できる。ここでは、このプロセスは「タスクの移動度」と称する。
【００３４】
タスクの移動度を利用して、通信は同期または非同期のどちらかに決定される。例えば、２つのタスク間の通信は、タスクＴ１とＴ２間の通信においてＴｂｅｇｉｎ＿ＡＳＡＰ＿Ｔ２がＴｂｅｇｉｎ＿ＡＳＡＰ＿Ｔ１より大きいときは、非同期通信に決定される。その他の場合は、通信は同期通信である。タスクの移動度は当技術分野では既知であり、以下の添付資料で詳細に述べられる。
【００３５】
好ましい実施形態によれば、本発明では、通信ユニットに対し割込み処理機能を提供することにより、図３の処理３０４で区分される非同期転送を同期通信と同様に実行する。例として、図５Ａはトランスミッタｕ１のＴ１からレシーバｕ２のタスクＴ４への非同期通信を示す概略図である。非同期通信は長いタスクＴ３により生じる時間Ｔａｓｙｎにより示される。タスクＴ１とＴ４間の非同期通信は、従来の通信合成システムではＦＩＦＯを必要としていた。
【００３６】
非同期通信の同期化は、レシーバｕ２またはトランスミッタｕ１のどちらかに通信データを格納することにより、実行される。本発明のレシーバ格納方法では、トランスミッタがデータを送信すると、関係タスクの終了時点で割込みをアサートにする。レシーバは実行中のタスク（例えば、Ｔ３）を中断し、トランスミッタがレシーバにデータを同期モードで送信可能にする。レシーバはデータを内部メモリに格納し、受信されたデータを必要とするタスクが実行準備されるまで保持する。
【００３７】
図５Ｂは、本発明の１つの実施形態による、レシーバｕ２にデータを格納して、タスクＴ４への非同期通信タスクＴ１を同期化する概略図を示す。図のように、トランスミッタｕ１はタスクＴ１とＴ２を実行し、同時にレシーバｕ２はタスクＴ３とＴ４を実行する。逆に、図５Ｂは、レシーバｕ２への割込み５０４をアサートするトランスミッタｕ１を示す。割込みは、トランスミッタｕ１からレシーバｕ２へのデータの転送を、ＦＩＦＯの代わりにバスにより同期モードで実行可能にする。レシーバｕ２はデータを格納し、後にタスクＴ４が実行できる時まで保持する。
【００３８】
代替の実施形態では、レシーバに代わって、トランスミッタが非同期通信を同期化するためのデータを格納してもよい。特に、データを送信するとき、トランスミッタは内部メモリに通信データを格納する。レシーバがデータを必要とするとき、レシーバはトランスミッタへの割込みをアサートにして、トランスミッタで実行中のタスクを中断し、格納したデータをレシーバに送信する。
【００３９】
図５Ｃは、本発明の１つの実施形態による、トランスミッタｕ１にデータを格納することによりタスクＴ４への非同期通信タスクＴ１を同期化する概略図である。この図では、トランスミッタｕ１は、タスクＴ１の完了時に内部メモリにデータを格納し、タクスＴ２を開始する。レシーバｕ２がタスクＴ４の実行準備を完了していると、レシーバはトランスミッタｕ１への割込み５０６をアサートにする。これに応答して、トランスミッタｕ１はタスクＴ２を中断し、格納したデータを、ＦＩＦＯの代わりにバスを介して同期モードでレシーバｕ２に送信する。
【００４０】
このように、レシーバとトランスミッタ格納方法は、非同期転送を用いる非同期通信を同期転送を用いる非同期通信に変換する。これらの変換された通信は、ここでは「セミ同期通信」と称する。変換は、トランスミッタまたはレシーバのメモリ容量が十分あり特定の通信の稼動期間中にデータを格納できる場合に限り実行できる。このような場合は、割込みによりスケジューリングを変更する必要がある。
【００４１】
一般に、割込みの発生により処理時間が増加する。この時間増加（ここではデルタ（Δ）で表す）は、割込みルーティン実行時間に比例する。さらに、データ転送の時点が初期スケジュールと異なる。図５Ｃを参照すると、この時間差は送信タスク後だけでなく受信タスク前にも存在する可能性がある。時間増加Δは全体スケジュールを変更する結果をもたらし、そのために時間制約をそのまま遵守する必要がある。例えば、通信データを格納することに加えて割込みの使用により、割込みに関連するタスクは時間的に移動する可能性がある。割込みによる移動によって影響を受けるタスクは、格納データのサイズと寿命（例えば、持続時間）と共に格納される。これにより、重点を通信タイプの可能な変換のコストγ（通信時間、シリコン処理等）に割当てることができる。Δの伝播は割込みされるタスク、他のタスク、同期通信、および非同期通信に、以下のような影響を与える。
【００４２】
割込みされるタスク：Ｔｅｎｄ＝Ｔｅｎｄ＋Δ
他のタスク：Ｔｂｅｇｉｎ＝Ｔｂｅｇｉｎ＋Δ；Ｔｅｎｄ＝Ｔｅｎｄ＋Δ
同期通信：Ｔｂｅｇｉｎ＝Ｔｂｅｇｉｎ＋Δ；Ｔｅｎｄ＝Ｔｅｎｄ＋Δ
非同期通信：
Δがエッジの末端により伝播される場合：Ｔｅｎｄ＝Ｔｅｎｄ＋Δ
Δがエッジの起点により伝播される場合：Ｔｂｅｇｉｎ＝Ｔｂｅｇｉｎ＋Δ
スケジュール化されたアプリケーションはデータのフロー・グラフで表すことができ、グラフではタスクとエッジが図１Ｂと同様にタスク間の通信を表す。好ましい実施形態によれば、本発明はアプリケーション・スケジュール上のΔの伝播の方法を提供し、それにより時間遅れΔにより影響を受けるタスクの決定を可能にする。伝播の１つの方法はレシーバ内にデータを格納することで可能になり、別の方法はトランスミッタ内にデータを格納することで可能になる。これらの方法のどちらにおいても、レシーバとトランスミッタ・ユニットが割込みシステムおよび／または非同期通信のデータを格納するための十分な空間を持たない場合、通信転送は、レシーバ格納通信またはトランスミッタ格納通信を用いる同期モードでは不可能である。１つの実施形態では、伝播方法は最初にレシーバ格納により進行し、通信が非同期に留まる場合は、トランスミッタ格納通信が実行される。
【００４３】
図６Ａはレシーバ格納方法６００のフローチャートを示しており、本発明の１つの実施形態による伝播遅延を決定する。すべての非同期通信に対し、レシーバ格納方法６００はレシーバが処理６０２で割込み可能かどうかを決定する。レシーバが割込み不可能である場合、通信はレシーバ格納方法により同期化できず、図６Ｂの処理６５２に進行する。一方、レシーバが割込み可能である場合、処理６０４に進行し、割込みがレシーバに到達する時タスクが実行中であるかどうかを決定する。
【００４４】
タスクが実行中である場合、さらに処理６０６で、実行中のタスクが割込み可能かどうかを決定する。タスクが割込み可能と決定されると、処理６１０に進行し、レシーバが十分なメモリ空間を持ち通信の継続時間中その通信データを格納できるかどうかを評価する。レシーバが十分なメモリ空間を持つ場合、処理６１４において通信は潜在的セミ同期と分類され、処理６１８で割込みに関連する遅延が伝播される。これに対し、通信が非同期と決定されると、図６Ｂの処理６５２に進行する。
【００４５】
しかし処理６０４では、割込みがレシーバの到達する時タスクが実行中でないと決定される場合、ＴｉｎｔｅｒｒｕｐｔとＴｉｔｅｒｒｕｐｔ＋Ｔｅｍｉｓｓｉｏｎの間の時間区間でタスクが実行されるかどうかさらに決定される。好ましくは、時間区間はＴｉｎｔｅｒｒｕｐｔより長く、Ｔｉｔｅｒｒｕｐｔ＋Ｔｅｍｉｓｓｉｏｎより短い。この条件を満たす場合、この方法は処理６１２に進行し、そこでレシーバが十分なメモリ空間を持ち通信の継続時間中その通信データを格納できるかどうか決定される。レシーバが十分なメモリ空間を持つ場合、処理６１６において通信は潜在的セミ同期と分類される。しかし、処理６２０に示すように、遅延Δが伝播されない。一方、処理６０８で、タスクが実行中である場合、このタスク全体を、割込みを受けることなく遅延Δにより遅延できる。この場合は、処理６１０に進行する。次に、処理６２２でこの方法は終了する。
【００４６】
タスクＴ２は、特定条件下でタスクＴ１に直接時間依存していると言われる。例えば、タスクＴ１とＴ２が同一ユニットで実行され、またタスクＴ１の実行終了後直ぐにタスクＴ２の実行が開始される場合、直接時間依存性が存在する。さらに、タスクＴ１とＴ２が２つの異なるユニット上で実行され、タスクＴ２がタスクＴ１から同期データを受取るとき、この条件が存在できる。
【００４７】
レシーバ格納方法の実行では、遅延Δは、割込みされたタスク後レシーバタスクまで、時間αでレシーバ上の全タスクＴｉと通信上を通過する。さらに、好ましくはタスク当り最大でも１つの遅れを持つタスクＴｉに直接時間依存しているタスクに、遅延Δを循環的に伝播できる。
【００４８】
図６Ｂは、本発明の１つの実施形態による、伝播遅延を決定するトランスミッタ格納方法６５０のフローチャートを示す。図のように、トランスミッタ格納方法６５０の処理は、図６Ａのレシーバ格納方法６００と同様に進行する。しかしトランスミッタ格納方法６５０では、処理は、レシーバとは対照的なトランスミッタを基準に実行される。
【００４９】
トランスミッタ格納方法が実行されるとき、レシーバタスクの開始からスケジュールの終了まで、遅延＋Δは時間間隔βでレシーバユニット上のすべてのタスクＴｊと通信上を通過する。さらに、割込みの時間が時間間隔χで受信されるまで、トランスミッタタスクの終了の間、時間遅延−Δはトランスミッタユニット上のすべてのタスクＴｋと通信上を通過する。さらに、遅延＋Δは、好ましくは最大でもタスク当り１つの遅延を持つタスクＴｊに直接時間依存しているタスクに循環的に伝播される。同様に、遅延−Δは、好ましくは最大でもタスク当り１つの遅延を持つタスクＴｋに直接時間依存しているタスクに循環的に伝播される。
【００５０】
このように定義されたセミ同期通信と、決定されたこれら転送状態に関連する時間とを用いて、バスのようなサポートの同一タイプを使用することにより、同一タイプ通信ハードウェアを同時に同期およびセミ同期タイプに対し最適化できる。事前定義済みシステムまたは所定の非同期通信の存在により、サポート・ハードウェアが通信のメモリである場合は、通信は同期に分類できる。この場合、データ送信のモデルは異なる。例えば、図７Ａと７Ｂは２つの同期通信モデルを示す。特に図７Ａは、同期化時間ｔｓｙｎを持つトランスミッタｕ１とレシーバｕ２間の同期通信を示し、一方図７Ｂは、送出時間ｔｅと送信時間ｔｒを持つトランスミッタｕ１とレシーバｕ２間のデータ送信を示す。
【００５１】
１つの実施形態によれば、同期送信モデルを、既存のハードウェア（事前定義済みシステム）に従って適合させ、非同期通信ハードウェアの決定の段階で場合により付加する。通信メモリをユニットに接続して同期転送する場合は、簡易バスの場合に採用される図７Ａのモデルに代わりに、図７Ｂに示す同期化モデルが使用される。次に、既存の探索重み付き相互一致アルゴリズムを使用して、全転送をサポートするバス数を最小化できる。図８Ａはバスを経由するデータ送信を表すモデルを示す。ｔｓｙｎはデータをトランスミッタｕ１からレシーバｕ２に送信する時間である。図８Ｂは通信メモリ（例えば、ＦＩＦＯ、デュアル・ポート等）を経由するデータ送信を表すモデルを示す。送出時間ｔｅはトランスミッタｕ１からＦＩＦＯにデータを送信する時間であり、送信時間ｔｒはＦＩＦＯからレシーバｕ２にデータを送信する時間である。２つの状態の終了時点で、ユニット間の通信ハードウェアおよび必要なプロトコル（同期／セミ同期／非同期）が生成される。
【００５２】
例として、図９Ａは、図１Ｂでモデル化されたアプリケーション１２０のスケジューリングを示す概略図である。図１Ｃと同様に、スケジュール図は設計ユニットの割当てられるタスクを、時間の関数としてスケジュール化する。この構成では、タスクの移動度を使用してタスクＴ３を遅れてスケジュール化し、タスクＴ２とＴ６間の通信が同期モードになるようにする。同様にタスクＴ４を遅れてスケジュール化し、タスクＴ３とＴ７間の通信が同期モードになるようにする。
【００５３】
図９Ｂは、図９Ａで変更されたものと同様の、アプリケーション１２０に対するシステム９５０のハードウェア・アーキテクチャを示す。システム９５０は、プロセッサＰ１とＨＷ１の間にＦＩＦＯの代わりにバス９５２を含む。しかし、システム９５０はさらにＦＩＦＯを含む。このように、システム９５０は図１Ｃのシステムに比べ少ないチップ表面しか必要としないが、ＦＩＦＯ９５４はバスより大きい表面面積をさらに必要とする。
【００５４】
図１０Ａは、本発明の１つの実施形態による、割込みメカニズムを使用するアプリケーション１２０のスケジューリングを示す概略図である。図のように、プロセッサＰ２は割込みメカニズムを備えており、タスクＴ９とＴ１３間、タスクＴ１０とＴ１３間、タスクＴ１１とＴ１３間、およびタスクＴ１２とＴ１３間でデータを格納するのに十分な割込みとメモリ空間を生成する。この構成では、タスク９とＴ１３間、タスクＴ１０とＴ１３間、タスクＴ１１とＴ１３間、およびタスクＴ１２とＴ１３間の非同期通信は、格納レシーバ方法を使用してセミ同期に変換される。プロセッサＰ２は通信データを格納して、タスクＴ１３が実行準備されるまでそのデータを保持する。レシーバ格納方法を使用する際に注意すべきことは、タスクｉからタスクｊまでのコスト、γｉ／ｊが以下のようなることである。
【００５５】
γ９／１３＝γ１１／１３＝γ１０／１３＝γ１２／１３＝０
図１０Ｂは、図１０Ａで変更されたのと同様な、アプリケーション１２０に対するシステム１０５０のハードウェア・アーキテクチャを示す。システム１０５０は、ＦＩＦＯを持たない２つのバス１０５２と１０５４を含む。このようにシステム９５０は、図１Ｃと９Ｂのシステムに比べて非常に小さいチップ表面しか必要としない。
【００５６】
このように、本発明はタスクと割込み駆動のメカニズムの移動度を使用することにより、データ格納必要条件を緩和する。ユニット間のデータ転送を可能な限り多く同期方法で実行して、所定の時間制約内の表面領域を最適化する。さらに、事前定義済みシステムの定義を、再使用ハードウェアで考慮できる。また本発明の方法と装置は、ユニットの空きメモリ容量（例えば、タスクの局所変数に関する空間）を考慮することにより、転送されるデータの格納を最適化する。この方法を用いて、マルチプロセッサ・システムにおける通信に関係する余分なメモリを削除できる。
【００５７】
例えば、デュアル・ポートＲＡＭで接続される２つのコアとコアによる１Ｋ　ＲＡＭを持つ、ＢＩＰ３７　２−プロセッサを基本にするシステムを、デュアルＲＡＭを所定のアプリケーションから削除できるかどうかを決定して最適化できる。例えば、マルチチャネル・オーディオ圧縮アプリケーションでは、非同期通信に必要なメモリのサイズは１Ｋである。ＢｉＰ３７７１上のこの１Ｋはチップ領域の１５％である。本発明は、ローカル・プロセッサのメモリに必要とされるデータを直接格納することにより、このようなメモリを削除することができる。
【００５８】
本発明を幾つかの好ましい実施形態について説明してきが、各種の代替形態、変更、および均等物が存在する。これらも本発明の範囲に含まれるものとする。本発明の方法、デバイスおよびシステムを実現する代替方法も存在することは明らかである。したがって本発明では、特許請求範囲は、本発明の精神と範囲に含まれるこのような代替形態、変更、および均等物をすべて包含すると解釈するものとする。
【００５９】
（添付資料）
転送のタイプは、Ａ　Ｃｏｄｅｓｉｇｎ　Ｅｘｐｅｒｉｍｅｎｔ　ｉｎ　Ａｃｏｕｓｔｉｃ　Ｅｃｈｏ　Ｃａｎｃｅｌｌａｔｉｏｎ：　Ｍ．Ｉｓｒａｅｌ　Ｌ．ＦｒｅｕｎｄらによるＧＭＤＦα、ＡＣＭ　Ｔｒａｎｓａｃｔｉｏｎｓ　ｏｎ　Ｄｅｓｉｇｎ　Ａｕｔｏｍａｔｉｏｎ　ｏｆ　Ｅｌｅｃｔｒｏｎｉｃｓ　Ｓｙｓｔｅｍｓ，Ｖｏｌ．２，　Ｎｏ．４，１９９７年１０月、ｐ．３６５−３８３に記載されている、タスク・アルゴリズムの移動度で決定できる。この内容は本明細書に参照として組み込まれている。分割後、機能ユニット（ＦＵ）上のタスクのスケジュールが準備される。この目的は、処理を局所的に再スケジューリングして、同期通信の使用を最大にすることである。しかし、局所的な再スケジューリングを用いても、常時同期通信だけを使用するのは不可能である。このような場合、非同期通信が必要になり、両方の転送タイプを使用して、最終アーキテクチャによりアプリケーションのすべての通信を実行する。アルゴリズムは２つの機能を基本にしている。即ち、ノード＿特性決定とエッジ＿特性決定である。各のノードＶｉに対し、ノード＿特性決定は、ＡＳＡＰ開始時間ｔｓ（ＡＳＡＰ）ｉとＡＬＡＰ終了時間ｔｅ（ＡＬＡＰ）ｉ間の間隔として定義される移動度間隔ΔＭ＿Ｖｉを計算する。
【００６０】
ΔＭ＿Ｖｉ＝［ｔｓ（ＡＳＡＰ）ｉ、ｔｅ（ＡＬＡＰ）ｉ］
以下のアルゴリズムを使用して転送タイプを決定できる。
【００６１】
すべての通信エッジが実行を分類されない限り
リストＬ中の各可能な同期通信エッジが実行することに対し
予備的に、分類されていない次のエッジｅｉｊをスケジュールする；
他の通信エッジ上のその解の影響を分析する
非同期通信エッジが明らかでない場合は
最終的にエッジｅｉｊをスケジュールする
同期転送を用いてエッジｅｉｊを分類する；
リストＬを再整理する；
ｉｆを終了；
ｆｏｒを終了；
最終的に、最低コスト機能ξｉｊを持つエッジｅｉｊをスケジュールする
同期転送を用いてエッジｅｉｊを分類する；
リストＬから非同期通信エッジを削除する；
リストＬを再整理する；
ｗｈｉｌｅを終了；
間隔移動度の計算はタイミング制約を考慮する。エッジ＿特性決定は、通信エッジｅｉｊ（異なるユニットに割当てされたエッジ−接続ノード）とその移動度値Ｍｅｉｊは移動度間隔ΔＭｅｉｊを計算する。移動度間隔は、２つのノードＶｉとＶｊ間の通信が発生可能な全時点を表す。
【００６２】
ΔＭｅｉｊ＝［ｔｓ（ＡＳＡＰ）ｊ，ｔｅ（ＡＬＡＰ）ｉ］
値ｔｓ（ＡＳＡＰ）ｊはデータを受取るノードのＡＳＡＰ開始時間を表し、値ｔｅ（ＡＬＡＰ）ｉはデータを送るノードのＡＬＰＡ終了時間を表す。移動度値Ｍｅｉｊは以下で定義される。
【００６３】
Ｍｅｉｊ＝ｔｅ（ＡＬＡＰ）ｉ−ｔｓ（ＡＳＡＰ）ｊ
ｔｓ（ＡＳＡＰ）ｊ＞ｔｅ（ＡＬＡＰ）ｉの場合は、Ｍｅｉｊは負になり、送信側と受信側間に時間重なりがないために、通信は非同期である。そうでない場合は、通信は潜在的同期と考えられる。
【００６４】
エッジ＿特性決定機能は潜在的同期通信を持つエッジに対しコスト値ξｅｉｊを提供する、この値はエッジを通り転送されるデータ量の比率（通信量）を表す。
【００６５】
Ｖｅｉ，ｊとその移動度値は以下のようになる。
【００６６】
ξｅｉｊ＝Ｖｅｉ，ｊＭｅｉ，ｊ
最大コスト値を持つエッジが最初に考慮される、この理由はこれらエッジに関連する通信が同期である場合、ハードウェアの最小化が予測されるからである。
【００６７】
このアルゴリズムは以下のようになる（図８）。最初に、ノードとエッジが特性決定される。転送タイプ（同期または非同期）がこのエッジに割当てられるとき、エッジｅｉ，ｊは分類される。非同期通信（ｔｓ（ＡＳＡＰ）ｊ＞ｔｅ（ＡＬＡＰ）ｉ、即ち、Ｍｅｉ，ｊ＜０）を持つエッジは分類され、残りに対しては考慮されない。潜在的同期エッジの整理されたリストＬは、ξｅｉｊに従って生成される。Ｌの最初の分類されないエッジｅｉｊに対応するノードＶｉとＶｊは、予備的にスケジュール化される（局所的再スケジューリング）。他の通信エッジへのスケジュールの影響は、ノードとエッジを再度特性決定して分析される。どれかの通信エッジｅｋ，ｌ（ｋ≠ｉおよびｌ≠ｊ）が非同期になる場合は、ｅｉ，ｊは最終的にスケジュール化され、同期転送を用いて分類される。その他の場合は、Ｌからの別の分類されないエッジｅｉ，ｊが考慮される。このプロセスは、他のエッジに影響を与えないすべての通信エッジが分類されるまで繰り返される。
【００６８】
このステップ後、Ｌ内の残りの潜在的同期エッジは少なくとも１つの非同期通信を含む。
【００６９】
ξｉ，ｊ＝（Σ非同期エッジのデータ）／（Σ同期エッジのデータ）をｅｉ，ｊに関連するコスト関数とする、このｅｉ，ｊは、非同期になるＬのエッジに関連するデータの全容量と、同期に留まるＬのエッジに関連するデータの全容量との比として定義される。目的がＦＩＦＯに割り当てられる領域を最小化することであるため、ξｉ，ｊ最小を持つエッジｅｉ，ｊは同期転送を用いて分類される。
【図面の簡単な説明】
本発明は、添付図面による以下の詳細な説明で容易に理解されるであろう。図面では同一参照符号は同一構成エレメントを指す。
【図１Ａ】
設計ユニットの代表的ライブラリを示すブロック図である。
【図１Ｂ】
ライブラリからの機能と設計ユニットを使用するアプリケーションのモデル化を示す。
【図１Ｃ】
図１Ｂでモデル化されたアプリケーションのスケジューリングを示す概略図である。
【図１Ｄ】
図１Ｂのアプリケーション・モデルに対するシステムのアーキテクチャを示す。
【図２】
本発明の１つの実施形態による集積回路製造システムのブロック図を示す。
【図３】
本発明の１つの実施形態による集積回路設計を実行する方法のフローチャートを示す。
【図４Ａ】
同期または非同期通信を決定するためのタスクの移動度を示す詳細なタイミング図である。
【図４Ｂ】
同期または非同期通信を決定するためのタスクの移動度を示す詳細なタイミング図である。
【図４Ｃ】
同期または非同期通信を決定するためのタスクの移動度を示す詳細なタイミング図である。
【図５Ａ】
トランスミッタｕ１のタスクＴ１からレシーバｕ２のタスクＴ４への非同期通信を示す概略図である。
【図５Ｂ】
本発明の１つの実施形態による、レシーバｕ２内にデータを格納して、タスクＴ４のために、非同期タスクＴ１を同期化する概略図を示す。
【図５Ｃ】
本発明の１つの実施形態による、トランスミッタｕ１内にデータを格納して、タスクＴ４のために、非同期タスクＴ１を同期化する概略図を示す。
【図６Ａ】
本発明の１つの実施形態による、伝播遅延を決定するための方法を格納するレシーバのフローチャートを示す。
【図６Ｂ】
本発明の１つの実施形態による、伝播遅延を決定するための方法を格納するトランスミッタのフローチャートを示す。
【図７Ａ】
同期化時間ｔｓｙｎのトランスミッタｕ１とレシーバｕ２間の同期通信を示す。
【図７Ｂ】
送出時間ｔｅと送信時間ｔｒのトランスミッタｕ１とレシーバｕ２間のデータ送信を示す。
【図８Ａ】
バスを介するデータ送信を表すモデルを示す。
【図８Ｂ】
通信メモリを介するデータ送信を表すモデルを示す。
【図９Ａ】
図１Ｂでモデル化されたアプリケーションのスケジューリングを示す概略図である。
【図９Ｂ】
図９Ａで変形されたのと同様のアプリケーションに対するシステムのハードウェア・アーキテクチャを示す。
【図１０Ａ】
本発明の１つの実施形態による、割り込みメカニズムを使用するアプリケーションのスケジューリングを示す概略図である。
【図１０Ｂ】
図１０Ａで変形されたのと同様のアプリケーション１２０に対するシステムのハードウェア・アーキテクチャを示す。
【図１Ａ】
2004500636.tif 000003
【図１Ｃ】
2004500636.tif 000004
【図１Ｄ】
2004500636.tif 000005
【図２】
2004500636.tif 000006
【図３】
2004500636.tif 000007
【図４Ａ】
2004500636.tif 000008
【図４Ｂ】
2004500636.tif 000009
【図４Ｃ】
2004500636.tif 000010
【図６Ａ】
2004500636.tif 000011
【図６Ｂ】
2004500636.tif 000012
【図８Ａ】
2004500636.tif 000013
【図９Ａ】
2004500636.tif 000014
【図９Ｂ】
2004500636.tif 000015
【図１０Ａ】
2004500636.tif 000016
【図１０Ｂ】
2004500636.tif 000017
【国際公開パンフレット】
2004500636.tif 000018
2004500636.tif 000019
2004500636.tif 000020
2004500636.tif 000021
2004500636.tif 000022
2004500636.tif 000023
2004500636.tif 000024
2004500636.tif 000025
2004500636.tif 000026
2004500636.tif 000027
2004500636.tif 000028
2004500636.tif 000029
2004500636.tif 000030
2004500636.tif 000031
2004500636.tif 000032
2004500636.tif 000033
2004500636.tif 000034
2004500636.tif 000035
2004500636.tif 000036
2004500636.tif 000037
2004500636.tif 000038
2004500636.tif 000039
2004500636.tif 000040
2004500636.tif 000041
2004500636.tif 000042
2004500636.tif 000043
2004500636.tif 000044
2004500636.tif 000045
2004500636.tif 000046
2004500636.tif 000047
2004500636.tif 000048
2004500636.tif 000049
2004500636.tif 000050
2004500636.tif 000051
2004500636.tif 000052
2004500636.tif 000053
2004500636.tif 000054
2004500636.tif 000055
2004500636.tif 000056
2004500636.tif 000057
2004500636.tif 000058
【国際公開パンフレット（コレクトバージョン）】
2004500636.tif 000059
2004500636.tif 000060
【国際調査報告】
2004500636.tif 000061
2004500636.tif 000062
2004500636.tif 000063