JP2000250868A - 動的データフローブデザイン生成方法 - Google Patents

動的データフローブデザイン生成方法

Info

Publication number
JP2000250868A
JP2000250868A JP2000060455A JP2000060455A JP2000250868A JP 2000250868 A JP2000250868 A JP 2000250868A JP 2000060455 A JP2000060455 A JP 2000060455A JP 2000060455 A JP2000060455 A JP 2000060455A JP 2000250868 A JP2000250868 A JP 2000250868A
Authority
JP
Japan
Prior art keywords
buffer
static
data flow
scalable
flow signal
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.)
Withdrawn
Application number
JP2000060455A
Other languages
English (en)
Inventor
Gerd Spalink
シュパリンク ゲルト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Deutschland GmbH
Original Assignee
Sony International Europe GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony International Europe GmbH filed Critical Sony International Europe GmbH
Publication of JP2000250868A publication Critical patent/JP2000250868A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

(57)【要約】 【課題】 静的又はスケーラブルな静的データフローサ
ブデザインによって動作するマルチプロセッサシステ
ム、マルチタスクシステム又はマルチスレッドシステム
における動的データフローデザインを生成する。 【解決手段】 データ要素からなり、第1のデータレー
トを有する第1の静的又はスケーラブルな静的データフ
ロー信号を第1のプロセッサ、タスク又はスレッドに割
り当て、データ要素からなり、第1のデータレート以下
の第2のデータレートを有する第2の静的又はスケーラ
ブルな静的データフロー信号を第2のプロセッサ、タス
ク又はスレッドに割り当てる。そして、第1のプロセッ
サ、タスク又はスレッドと第2のプロセッサ、タスク又
はスレッドとを、第1のデータレートと第2のデータレ
ートを適合させる相互処理ユニットを介してリンクさせ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、静的又はスケーラ
ブルな静的データフロー信号(static or scalable sta
tic data flow signal)で動作するマルチプロセッサシ
ステム(multiprocessor system)、マルチタスクシス
テム(mulutitask system)又はマルチスレッドシステ
ム(multithread system)の動的データフローデザイン
(dynamic data flow design)を生成する動的データフ
ローブデザイン生成方法に関する。特に、本発明は、統
合化された開発環境に関し、開発者が電気回路の機能モ
ジュール(functional module)を高い抽象化レベル(h
igh abstraction level)で設計できるとともに、抽象
化レベルが低下し始めたときに、これらのモジュールの
機能を検証できるようにするものである。
【0002】
【従来の技術】そのような統合開発環境を構築するため
に、例えばシノプシス社(SYNOPSYS)から入手可能なシ
ステムレベル設計(COSSAP)ツールを、シミュレ
ーションのベースとして使うことができる。このCOS
SAPツールは、設計の全工程において、検証結果を得
るための他のツール及びハードウェアによって完全なも
のとされる。他のツールとしては、例えば、ハードウェ
アで実現するときはチップ合成(chip synthesis)ツー
ル及びチップレイアウト(chip layout)ツールがあ
り、又はソフトウェアで実現するときは信号プロセッサ
コンパイラ(signalgenerator compiler)がある。ハー
ドウェアで実現されるツールは、例えば、ターゲットシ
ステム(target system)をシミュレートするための信
号発生器(signal generator)と、ターゲットシステム
の出力を検証するためのデータロガー(data logger)
と、ターゲットシステム自身又はターゲットシステムの
エミュレータ(emulator)とから構成される。
【0003】シミュレーションのベースは、完全なデジ
タルシグナルプロセッシング(digital signal process
ing:DSP)設計ツールの一式であり、このツール
は、DSPの様々な用途におけるアルゴリズム、アーキ
テクチャ及びインプリメンテーションを生成し、調査
し、試験するために、DSPシステムの設計者によって
用いられる。COSSAPシミュレーションのベース
は、ブロックダイアグラム(block diagram)に基づい
ている。信号線は、ブロックダイアグラムを構成するブ
ロック間を接続するために用いられる。それらのブロッ
クは、ライブラリからの基本的なブロック、又は他のブ
ロックダイアグラムを用いて生成された階層的なブロッ
ク(hierarchical blocks)である。階層的なブロック
を用いることによって、開発者は、必要に応じて、抽象
化レベルを選択することができる。したがって、そのよ
うな設計環境では、チップに集積化される単一のハード
ウェアブロックの動作及び他のブロックとの相互接続
を、実際にチップを生産する前に、容易に試験すること
ができ、このシミュレーションベースは、ハードウェア
指向回路シミュレーションベース(hardware oriented
circuit simulation base)である。したがって、その
ようなシミュレーションベースは、ハードウェアに直接
反映し、ハードウェアの解(solution)に直接類似して
いる。
【0004】上述したように、シミュレーションベース
は、デジタルシグナルプロセッシングシステムを記述し
たブロックダイアグラムを用いる。ブロックダイアグラ
ムにおいて、デジタルシグナルプロセッシングシステム
の動作は、ブロックによって表され、ブロック間のデー
タ要素のフローは、矢印によって表される。現代のシミ
ュレータは、完全な動的データフローアプローチ(full
dynamic data flow approach)に基づいている。これ
は、デジタルシグナルプロセッシングシステムの信号処
理動作を実行するために必要とされる全てのデータ要素
が、それらの入力端子で利用できるようになると直ち
に、ブロックが活性化(activate)されることを意味す
る。一方、ハードウェアで実現するためのチップ合成ツ
ール(chipsynthesis tool)及びチップレイアウトツー
ル(chip layout tool)、並びにソフトウェアで実現す
るためのシグナルプロセッサコンパイラ(signal proce
ssor compiler)は、スケーラブルな静的データフロー
ブロック(scalable staticdata flow block)しか取り
扱うことができない。したがって、動的なデータフロー
アプローチの利点は、ハードウェア又はソフトウェアで
の実現において見いだされるものではなく、データフロ
ーパラメータ(data flow parameter)、すなわち全て
のブロックの出力要素の数に対する入力要素の数が既知
であるときは、非常に有効なコード又はハードウェアレ
イアウトのみを生成することができることである。
【0005】そのような固定データフローパラメータを
有するスケーラブルな静的データフローブロックB1を
図10に示す。このブロックB1は、3つの入力要素か
らなる入力信号S1が供給され、常に、7つの出力要素
からなる出力信号S2を生成する。ソフトウェアの実行
によるコード生成では、信号の値は、コンパイル時又は
初期化段階で割り当てられた固定サイズであって、例え
ばポインタ動作によって管理されるバッファに記憶され
る。この種類のコードは、 例えばCOSSAP DS
Pコードジェネレータ(COSSAP DSP generator)によっ
て効率的に生成される。
【0006】上述したように、この方法によって動的デ
ータフローブロック用のコードを生成することができな
いということは、重大な欠点である。
【0007】
【発明が解決しようとする課題】本発明は、上述した従
来の実情に鑑みてなされたものであり、本発明の目的
は、高いレベルのシミュレーションから、シグナルプロ
セッサターゲットにおいてソフトウェアとして実行され
るインプリメンテーション又はハードウェアインプリメ
ンテーションまでの設計フローを、改善し、また、動的
データフローブロックを、そのようなマルチプロセッサ
システム、マルチタスクシステム又はマルチスレッドシ
ステムにおいて、処理することができるようにすること
である。
【0008】
【課題を解決するための手段】本発明に係る動的データ
フローブデザイン生成方法は、静的又はスケーラブルな
静的データフローサブデザインによって動作するマルチ
プロセッサシステム、マルチタスクシステム又はマルチ
スレッドシステムにおける動的データフローデザインを
生成する方法において、データ要素からなり、第1のデ
ータレートを有する第1の静的又はスケーラブルな静的
データフロー信号を、第1のプロセッサ、タスク又はス
レッドに割り当てるステップと、データ要素からなり、
第1のデータレート以下の第2のデータレートを有する
第2の静的又はスケーラブルな静的データフロー信号
を、第2のプロセッサ、タスク又はスレッドに割り当て
るステップと、第1のプロセッサ、タスク又はスレッド
と第2のプロセッサ、タスク又はスレッドとを、第1の
データレートと第2のデータレートを適合させる相互処
理ユニットを介して、リンクさせるステップとを有す
る。
【0009】
【発明の実施の形態】以下、本発明に係る動的データフ
ローブデザイン生成方法について、図面を参照しながら
説明する。
【0010】図1は、本発明を適用した動的データフロ
ーブロック(dynamic data flow block)を介して、2
つの静的データフロードメイン(static data flow dom
ain)を接続した構成を示すブロック図である。図1に
示すように、動的データフローブロックB2には2つの
静的データフロードメインD1,D2が接続されてい
る。これらのドメインD1,D2は、スケーラブルな静
的データフロー(scalablestatic data flow)だけを有
する任意の数のブロックから構成されている。本発明で
は、これらのドメインD1,D2が動的データフローブ
ロックB2を介して接続されることによって、ドメイン
D1,D2を表す各プロセッサ(processor)、タスク
(task)又はスレッド(thread)は、有効な静的なスケ
ーラブルなデータフローコード(static scalable data
flow code)を実行することができ、全て設計を動的デ
ータフロー型(dynamic data flow type)で行うことが
できる。
【0011】動的データフローブロックB2は、第1の
ドメインD1から信号S3が供給されるデータ入力端子
と、第1のドメインD1から信号S4が供給されるイネ
ーブル入力端子と、第2のドメインD2に信号S5を出
力する出力端子を備え、この動的データフローブロック
B2の振る舞いは、信号S3のデータレートと信号S4
データレートが同じであるということを前提条件とし
て、定義される。動的データフローブロックB2は、イ
ネーブル入力端子における要素(element)の値が0で
あるかを判定する。該当するときは、データ入力端子の
対応する要素が破棄(discard)される。一方、イネー
ブル入力端子における要素の値が0でないときは、デー
タ入力端子の対応する要素は、出力信号S5を生成する
ために動的データフローブロックB2の出力に伝達(pr
opagate)される。
【0012】したがって、データ出力端子で一定(give
n)の数の値を生成するためにデータ入力端子で必要と
される要素数は、イネーブル入力端子に供給される要素
の値に依存する。
【0013】なお、イネーブル入力端子における要素の
値が0とき、データ入力端子の対応する要素を破棄する
ようにしているが、0ではなく他の所定の値としてもよ
い。この場合、イネーブル入力端子の要素の値が所定値
かを判定し、所定の値のときに、データ入力端子の対応
する要素が破棄され、所定の値でないときに、データ入
力端子の対応する要素が動的データフローブロックB2
の出力に伝達されるようにする。
【0014】図1に示す具体例では、動的データフロー
ブロックB2から出力される信号S5は、所定の時間内
に3つの要素を含んでいる。データ入力信号S3は、こ
の所定の時間内に3+x個の要素を含んでいる。そし
て、データ入力信号S3とイネーブル入力信号S4が同
じデータレートを有するので、イネーブル入力信号S4
も、所定の時間内に3+x個の要素を含む。
【0015】したがって、本発明を適用したこの具体例
の動的データフローは、動的データフローブロックB2
の出力信号S5を、所定の時間内に固定された数、例え
ば3個の要素が供給される第2のドメインD2に割り当
てるとともに、出力端子の所定時間内における要素の数
よりも大きな任意の数、例えば3+x個の要素を含んで
いる動的データフローブロックB2の入力信号S3,S
4を、第1のドメインD1に割り当てることによって、
実現される。ここで、xは、任意の数であり、また、一
定である必要はない。このデザイン(design)も、ま
た、第1のドメインD1を表す第1のプロセッサ、タス
ク又はスレッドが第1のデータレートを有し、入力信号
S3,S4を動的データフローブロックB2に出力する
とともに、第2のドメインD2を表す第2のプロセッ
サ、タスク又はスレッドが、動的データフローブロック
B2からの第1のデータレート以下の第2のデータレー
トの出力信号S5が供給される構成によって、特定され
る。
【0016】表1は、動的データフローの要素の具体的
な値を示す表である。例えばx=2のときは、信号要素
は5個となり、所定の期間内に、5個の要素が、動的デ
ータフローブロックB2に入力され、動的データフロー
ブロックB2から3つの要素が出力される。
【0017】
【表1】
【0018】上述したように、現代のシミュレータ(si
mulator)、例えばCOSSAPシミュレータは、異な
るプロセッサ、タスク又はスレッドに動的データフロー
型のブロックの入力及び出力信号を割り当てることな
く、直接的な方法で、動的データフローをシミュレート
することができる。一方、本発明では、動的データフロ
ーブロックの入力及び出力信号は、異なるドメインに割
り当てられ、非常に有効なコード又はハードウェアが、
利用可能なチップ合成ツール(chip synthesis tool)
及びチップレイアウトツール(chip layout tool)、又
はコードジェネレータ(code generator)を有するシミ
ュレーションに用いられるブロックダイアグラムに基づ
いて、自動的に生成される。
【0019】図2は、COSSAPシミュレータに用い
ることができ、非常に有効なコード又はハードウェアを
生成することができる本発明を適用した動的データフロ
ーブロックダイアグラムを示す図である。図2も、ま
た、図1の動的データフローブロックB2を示してい
る。動的データフローブロックB2へのデータ入力信号
S3及びイネーブル入力信号S4は、第1のドメインD
1を表すソースブロック(source block)B3によって
生成され、動的データフローブロックB2の出力信号S
5は、第2のドメインD2を表すシンクブロック(sink
block)B4に供給される。
【0020】COSSAPシミュレータでは、ブロック
を分割してその一部を、異なるプロセッサ、タスク又は
スレッドに割り当てることはできないので、シンクブロ
ックB4が第2のプロセッサP2に割り当てられるのと
同様に、ソースブロックB3だけが第1のプロセッサP
1及び動的データフローブロックB2に割り当てられ
る。これらのプロセッサP1,P2に対するマルチDS
Pコードジェネレータ(multi-DSP code generator)
は、2つの独立した静的データフローコード又はチップ
合成(chip synthesis)ツールを生成することができ、
チップレイアウトツールは、独立したハードウェアイン
プリメンテーション(hardware implementation)を生
成することができる。また、ソースブロックB3から出
力されるデータ入力信号S3及びイネーブル入力信号S
4は、完全に動的データフローデザインが生成されるよ
うに、第1のプロセッサP1の領域と第2のプロセッサ
P2の領域間の「境界(border)」を横切らなければな
らない。
【0021】プロセッサP1,P2間の境界を横切るこ
のパスは、両方のプロセッサの異なるデータレートを適
合させる相互処理ユニット(inter processing unit)
を介して実行され、したがって、相互処理ユニットは、
動的データフローブロックB2の機能を、上述したよう
に、実行する。
【0022】図3は、図2に示す動的データフローブロ
ックダイアグラムを、例えばマルチDSPコードジェネ
レータとしたときの構成を示すブロック図である。図3
に示すように、動的データフローブロックB2は、デー
タ入力端子から入力される全ての要素をデータ出力端子
からそのまま出力するとともに、イネーブル入力端子か
ら入力される全ての要素を破棄する「ダミーブロック
(dummy block)」であり、動的データフローブロック
B2の全て機能性は、ブロックB5〜B8及びL1で実
行される。シミュレーティングツールは、ブロックの全
ての入出力信号及びプロセッサの境界を通過する全ての
信号を適切に定義することが必要であり、図3において
は、動的データフローブロックB2は示しているだけで
ある。
【0023】図3に示すように、ソースブロックB3に
よって生成される信号S3は、プロセッサ間通信(Inte
r Processor Communication:以下、IPCという。)
外部ブロックB5に供給され、ソースブロックB3によ
って生成される信号S4も、またIPC外部ブロックB
7に供給される。IPC外部ブロックB5とIPCブロ
ック外部ブロックB7の両方は、第1のプロセッサP1
に割り当てられる。一方、ブロックB6内のIPCは、
信号S3aを生成し、ブロックB8内のIPCは、信号
S4aを生成する。ブロックB6内のIPCとブロック
B8内のIPCの両方は、第2のプロセッサP2に割り
当てられる。形態上の観点からは、ブロックB6のIP
Cによって生成される信号S3aは、IPC外部ブロッ
クB5に供給される信号S3に対応し、ブロックB8の
IPCによって生成される信号S4aは、IPC外部ブ
ロックB7に供給される信号S4に対応している。これ
らの信号S3,S4は、IPCライブラリ(library)
L1を介してプロセッサの境界を横切る。信号S3aと
信号S4aはそれぞれ、動的データフローブロックB2
のデータ入力信号とイネーブル入力信号として用いら
れ、動的データフローブロックB2は、出力信号S5を
生成してシンクブロックB4に供給する。上述したよう
に、実際的な観点からは、動的データフローブロックB
2は、シミュレータがそれ自身を参照するので、もはや
動的データフロー型ではないが、全てのデータ要素をそ
の出力にコピーするとともに、そのイネーブル入力信号
を無視する。このように、動的データフローブロックB
2は、実際には静的データフローブロックであり、コー
ドジェネレータ、又はチップ合成ツール及びチップレイ
アウトツールは、特別な処理なしで、コード又はハード
ウェアにそれを挿入することができる。動的データフロ
ーの機能(capability)は、ライブラリL1に移動さ
れ、このライブラリL1を呼び出す(call)全てのブロ
ックB5〜B8が、マルチDSPコードジェネレータ、
チップ合成ツール又はチップレイアウトツールによって
自動的に挿入され、信号は、ここでプロセッサの境界を
横切る。これらのIPCブロックB5〜B8は、通常の
信号シンク又は信号ソースのように見え、すなわちIP
C外部ブロックB5,B7は、信号シンクであり、ブロ
ックB6,B8内のIPCは、信号ソースである。これ
は、IPCドライバ機構によってなされ、通常の方法で
信号に割り当てられるアーキテクチャファイル及び属性
(attribute)によって、制御される。
【0024】本発明では、IPCライブラリL1は、I
PC外部ブロックからイネーブル信号とデータ信号を一
つずつ受信する機能、全ての信号を別々のバッファに記
憶する機能、データとイネーブルを正しく対応させる機
能、データを検索(retrieve)する機能、及びダミー値
(dummy value)を取り除く又はスタッフィング値(stu
ffing value)を挿入する機能を有し、ブロック内の対
応するIPCの1つは、適切な出力信号を生成し、ブロ
ック内の他のIPCは、破棄される出力信号を生成す
る。
【0025】このIPCライブラリL1は、第1のプロ
セッサP1と第2のプロセッサP2は、すなわち第1の
タスク又はスレッドと第2のタスク又はスレッドとの異
なる又は同じデータレートを適合させる。IPCライブ
ラリL1は、第1の静的データフロードメインD1、す
なわち第1のプロセッサP1、第1のタスク又は第1の
スレッドと、第2の静的データフロードメインD2、す
なわち第2のプロセッサP2、第2のタスク又は第2の
スレッドとの両方によってアクセスされる。アクセス制
御は、例えば、オペレーティングシステムにインターフ
ェースするセマフォ(semaphore)技術によって実現さ
れる。基本的に、セマフォは、リソースのアクセスを制
御するカウンタ(counter)である。プロセッサ、タス
ク又はスレッドがセマフォを要求すると、以下の2つの
結果が得られる。カウンタが0でないときは、それが減
算(decrement)されて、スレッドは直ちに継続(conti
nue)し、又は、他のスレッドがこのセマフォを解放(r
elease)するまで、スレッドは阻止(block)される。
【0026】さらに、IPCライブラリL1は、マルチ
スレッドオペレーティングシステムにおいて、以下の機
能を備えている。IPCライブラリL1内のバッファが
一杯のときに、ブロック送信スレッドコマンド(block
sending thread command)を出力し、IPCライブラリ
L1内のバッファが空であるときに、ブロック受信スレ
ッドコマンド(block receiving thread command)を出
力する。
【0027】図4は、本発明を適用した他の動的データ
フローブロックを示す図である。図4に示す動的データ
フローブロックB9は、上述した動的に値を取り去る
(remove)動的データフローブロックB2と対比して、
動的に値を挿入する。すなわち、動的データフローブロ
ックB9は、データ出力信号S6を出力するデータ出力
端子と、イネーブル信号S7が入力されるイネーブル入
力端子と、データ入力信号S8か入力される入力端子と
を備え、データ出力信号S6とイネーブル信号S7は同
じデータレートを有し、データ入力信号S8は、これら
以下のデータレートを有する。動的データフローブロッ
クB9の振る舞いは、以下のようになっている。イネー
ブル入力端子で受信されるイネーブル信号S7の要素の
値が0のとき、ダーミ要素がデータ出力端子から出力さ
れ、これがデータ出力信号S6となる。イネーブル入力
端子で受信されるイネーブル信号S7の要素の値が0で
ないとき、データ入力信号S8の次の要素が、データ出
力信号S6として伝達される。
【0028】なお、イネーブル信号S7の要素の値が0
でないとき、データ入力信号S8の次の要素がデータ出
力信号S6として伝達されるようにしているが、例え
ば、0ではなく他の所定の値としてもよい。この場合、
イネーブル信号S7の要素の値が所定の値のときに、デ
ータ入力信号S8の次の要素がデータ出力信号S6とし
て伝達され、イネーブル信号S7の要素の値が所定の値
でないときに、ダーミ要素がデータ出力端子から出力さ
れる。
【0029】表2は、動的データフローの要素の具体的
な値を示す表である。この表2において、ダミー要素に
対する‐1の値は、任意に選ばれ、機能に対しては有効
(significance)でない。これらの要素は、静的データ
フローの要件を満たす必要があるだけである。
【0030】
【表2】
【0031】以下、IPCライブラリ内におけるタスク
の詳細な説明を理解しやすいように、一度には1つのタ
スクしか実行(run)することができない単一のプロセ
ッサシステム上で、セマフォによって制御されるタスク
スケジューリングの具体例について、図5を参照しなが
ら説明する。図5の右側は、タスクのとり得る状態を示
している。ハイレベル(high level)の実線は、タスク
が実行(run)されている状態を示し、ローレベル(low
revel)の実線は、タスクが実行待ち(readyto run)
の状態を示し、点線は、タスクが阻止(block)されて
いる状態を示している。
【0032】図5の左側は、2つの異なるタスク、すな
わちバッファに書き込むタスク1とバッファから読み出
すタスク2の状態を示すとともに、バッファに対応した
2つのセマフォの値、すなわちバッファが空ではないセ
マフォ(buffer not empty semaphore:以下、空でない
バッファセマフォという。)と、バッファが一杯でない
セマフォ(buffer not full semaphore:以下、一杯で
ないバッファセマフォという。)と示している。図5に
示すように、初期段階においては、タスク1は実行状態
であり、タスク2は阻止状態であり、空でないバッファ
セマフォの値は0であり、一杯でないバッファセマフォ
の値は1である。空でないバッファセマフォの値が0で
ある間は、タスク2は阻止され、一杯でないバッファセ
マフォの値が1である間は、タスク1は実行することが
できる。タスク1によってバッファに何かが書き込まれ
ると、空でないバッファセマフォは、0から1にセット
される。したがって、タスク2は、もはや阻止されず、
実行待ち状態になり、一方、タスク1は、実行中である
ので、一杯でないバッファセマフォの値がバッファが一
杯であることを示す0に変更されるまでは書込を続け
る。そして、一杯でないバッファセマフォの値が0にな
ると、タスク1は、阻止され、どんな要素もバッファに
書き込まれることはない。したがって、タスク2は、そ
の状態を実行待ちから実行状態に変更することができ、
バッファから要素が読み出され、その後、バッファが一
杯になることはないので、一杯でないバッファセマフォ
は、再び1にセットされる。そして、タスク1は、その
状態を阻止状態から実行待ち状態に変更する。
【0033】以上の説明からも明らかなように、動的デ
ータフローブロックB2,B9、又は第1のドメインD
1、すなわち第1のプロセッサP1、第1のタスク又は
第1のスレッドから、第2のドメインD2、すなわち第
2のプロセッサP2、第2のタスク又は第2のスレッド
への静的データフローを単に保証するブロック等の異な
る種類のブロックを実現するIPCライブラリL1につ
いては、幾つかの種類がある。以下、3種類のIPCラ
イブラリの機能について、図6〜図8を参照しながら説
明する。図6〜図8は、各IPCライブラリにおける書
込及び読出動作のフローチャートである。
【0034】DSPコードジェネレータ、又はチップ合
成ツール及びチップレイアウトツールは、読出及び書込
機能呼出(call)をそれぞれのIPCライブラリに発
し、各IPCライブラリは、要素数を、読出又は書込機
能、及び要素番号をパラメータとする識別子に渡す。上
述した異なる機能名は、3つの種類のIPCライブラリ
に対して用いられる。静的データフローでは、読出ブロ
ックは書込ブロックと同じ回数呼び出されることが、静
的又は動的データフローの読出/書込における同一信号
の呼出では、常に要素数を有することが保証されてい
る。
【0035】図6は、イネーブル信号がデータ信号とし
て同じ向きを有するとき、すなわち図3に示すIPCラ
イブラリL1におけるデータ及びイネーブル要素の書込
並びにデータ要素の読出を説明するためのフローチャー
トであり、それは、図1,2に示す動的データフローブ
ロックB2を実行するために用いられる。図6におい
て、左側のフローチャートは、データ要素をデータバッ
ファに書き込む方法を示し、中央左側のフローチャート
は、イネーブル要素をイネーブルバッファに書き込む方
法を定義し、中央右側のフローチャートは、データバッ
ファからのデータ要素を読み出す方法を定義し、右側の
レジェンド(legend)は、バッファアクセスを制御する
ために必要とされる異なるセマフォのシンボル(symbo
l)を示している。
【0036】書込及び読出機能は、独立して動作してい
る異なるドメイン、すなわち異なるプロセッサ、タスク
又はスレッドからそれぞれ呼び出される。したがって、
1つのドメインがバッファを操作している間は、他の全
てのドメインは、阻止されなければならない。この処理
は、書込を行うドメイン又は読出を行うドメインが、デ
ータバッファとイネーブルバッファの両方をアクセスす
ることができることを示す有効なバッファアクセスセマ
フォ(buffer access semaphore)によって、行われ
る。
【0037】また、一杯でないデータバッファセマフォ
(data buffer not full semaphore)は、データバッフ
ァが一杯のときに、データバッファにデータ要素を書き
込むドメインを阻止することを示し、一杯でないイネー
ブルバッファセマフォ(enable buffer not full semap
hore)は、イネーブルバッファが一杯のときに、イネー
ブルバッファにイネーブル要素を書き込むドメインを阻
止することを示し、空でないバッファセマフォ(buffer
not empty semaphore)は、両方のバッファが空でな
く、一方のバッファが空のときに、読出ドメインを阻止
することを示す。
【0038】ステップS1において、データバッファに
データ要素を書き込むために、データ要素が利用できる
かが調べられる。データ要素が利用できるときは、ステ
ップS2において、一杯でないデータバッファセマフォ
を要求することにより、データバッファ内に空間(spac
e)が確保(wait)される。データバッファが一杯でな
い、すなわち一杯でないデータバッファセマフォが受信
されないときは、データバッファにデータ要素を書き込
みたいプロセスは、データバッファセマフォセマフォが
供給されるまで阻止される。一杯でないデータバッファ
セマフォが供給されると、ステップS3において、デー
タバッファ及びイネーブルバッファは、バッファアクセ
スセマフォを要求することにより、両バッファがデータ
要素を書き込むルーチン(routine)によってだけ変更
されるようにロック(lock)される。バッファアクセス
セマフォ受信の後、ステップS4において、データバッ
ファが一杯でなく、データ要素が利用可能かが調べられ
る。そして、該当する間、ステップS5において、デー
タ要素がデータバッファに書き込まれる。ステップS4
においてデータバッファが一杯、又はもはやデータ要素
が利用できないかのいずれかのときは、ステップS6に
おいて、データ要素及びイネーブル要素がそれぞれのバ
ッファにあるかが調べられる。両方のバッファに要素が
あるときは、ステップS7において、空でないバッファ
セマフォがセットされる。ステップS6において、デー
タバッファ又はイネーブルバッファのどちらかが要素を
含まず、又はステップS7において空でないバッファセ
マフォがセットされているときは、ステップS8におい
て、データバッファが一杯か否かが調べられる。データ
バッファが一杯でないときは、ステップS9において、
一杯でないデータバッファセマフォは、解放される。ス
テップS8においてデータバッファが一杯であったと
き、又はステップS9において一杯でないデータバッフ
ァセマフォが解放された後、ステップS10において、
両方のバッファ、すなわちデータバッファ及びイネーブ
ルバッファは、バッファアクセスセマフォを解放するこ
とによって、アンロック(unlock)される。そして、ス
テップS1の状態、すなわちデータ要素が利用可能な状
態おける動作(operation)は、対応するドメインがデ
ータ要素を書き込むのを停止するまで、ステップS2〜
S10において繰り返される。
【0039】ステップS11において、イネーブルバッ
ファにイネーブル要素を書き込むために、イネーブル要
素が利用できるかが調べられる。イネーブル要素が利用
できるときは、ステップS12において、一杯でないイ
ネーブルバッファセマフォを要求することにより、イネ
ーブルバッファ内に空間が確保される。イネーブルバッ
ファが一杯でない、すなわち一杯でないイネーブルバッ
ファセマフォが受信されないときは、イネーブルバッフ
ァにイネーブル要素を書き込みたいプロセスは、一杯で
ないイネーブルバッファセマフォが供給されるまで阻止
される。一杯でないイネーブルバッファセマフォが供給
されると、ステップS13において、データバッファ及
びイネーブルバッファは、バッファアクセスセマフォを
要求することにより、両バッファがイネーブル要素を書
き込むルーチンによってだけ変更されるようにロックさ
れる。バッファアクセスセマフォの受信の後、ステップ
S14において、イネーブルバッファが一杯でなく、イ
ネーブル要素が利用可能かが調べられる。そして、該当
する間、ステップS15において、イネーブル要素がイ
ネーブルバッファに書き込まれる。ステップS14にお
いてイネーブルバッファが一杯、又はもうイネーブル要
素が利用できないかのいずれかのときは、ステップS1
6において、データ要素及びイネーブル要素がそれぞれ
のバッファにあるかが調べられる。両方のバッファに要
素があるときは、ステップS17において、空でないバ
ッファセマフォがセットされる。ステップS16におい
てデータバッファ又はイネーブルバッファのどちらかが
要素を含まず、又はステップS17において空でないバ
ッファセマフォがセットされているときは、ステップS
18において、イネーブルバッファが一杯か否かが調べ
られる。イネーブルバッファが一杯でないときは、ステ
ップS19において、一杯でないイネーブルバッファセ
マフォは、解放される。ステップS18においてイネー
ブルバッファが一杯であったとき、又はステップS19
において一杯でないイネーブルバッファセマフォが解放
された後、ステップS20において、両方のバッファ、
すなわちデータバッファ及びイネーブルバッファは、バ
ッファアクセスセマフォを解放することによって、アン
ロックされる。そして、ステップS11の状態、すなわ
ちイネーブル要素が利用可能な状態における動作は、対
応するドメインがデータ要素を書き込むのを停止するま
で、ステップS12〜S20において繰り返される。
【0040】ステップS21において、データバッファ
からデータ要素を読み出すために、データ要素が読出ド
メインによって要求されているかが調べられる。ステッ
プS21でデータ要素が要求されているときは、次のス
テップS22が実行され、IPCライブラリは、空でな
いバッファセマフォを要求し、空でないバッファセマフ
ォが供給されるまで待機することにより、データバッフ
ァに要素がない限り、そのデータバッファからの要素の
読出を阻止する。空でないバッファセマフォが受信され
た後、ステップS23において、データバッファ及びイ
ネーブルバッファアールは、バッファアクセスセマフォ
を要求することによって、ロックされる。ステップS2
4において、データバッファが空でないか、イネーブル
バッファは空でないか、及びデータ要素は要求されてい
るかが調べられ、該当するときは、ステップS25にお
いて、次のイネーブル要素が0に等しいか否かが調べら
れる。ステップS25においてイネーブル要素が0に等
しいときは、次のデータ要素は、ステップS26におい
てスキップされ、ステップS25においてイネーブル要
素が0に等しくないときは、ステップS27において、
次のデータ要素が読み出される。ステップS26又はス
テップS27が実行された後、動作は、再びステップS
24に戻り、データバッファが空になる、イネーブルバ
ッファが空になる、又はステップS24においてデータ
要素が要求されなくなるまで繰り返される。この場合、
ステップS28において一杯でないデータバッファセマ
フォ及び一杯でないイネーブルバッファセマフォをセッ
ト(set)することにより、データバッファ及びイネー
ブルバッファ内に空間があることが示される(flagge
d)。その後、ステップS29において、データバッフ
ァが空か否かが調べられる。データバッファが空でない
ときは、ステップS30において、空でないバッファセ
マフォが解放される。ステップS30においてデータバ
ッファが空となり、又は空でないバッファセマフォが解
放された後、ステップS31において、両方のバッファ
はアンロックされ、動作は再びステップS21に戻り、
データ要素の要求がなくなるまで続く。
【0041】図7に、データ要素をデータバッファに書
き込む方法、イネーブル要素をイネーブルバッファに書
き込む方法、及びデータ要素をデータバッファから読み
出す方法を示す図であり、これらの方法は、図4に示す
動的データフローブロックB9をIPCライブラリ内に
実現している。
【0042】図7は、図6と同様に、左側のフローチャ
ートは、データ要素をデータバッファに書き込む方法を
示し、中央左側のフローチャートは、イネーブル要素を
イネーブルバッファに書き込む方法を定義し、中央右側
のフローチャートは、データバッファからのデータ要素
を読み出す方法を定義し、右側のレジェンドは、バッフ
ァアクセスを制御するために必要とされる異なるセマフ
ォのシンボルを示している。
【0043】ドメインのブロッキングは、図6に示す具
体例と同じように、セマフォによってなされる。
【0044】データ要素をデータバッファに書き込むル
ーチンは、図6に示す具体例と同様なので、その説明は
省略する。
【0045】イネーブル要素をイネーブルバッファに書
き込むルーチンは、図6に示す具体例に類似しているの
で、同一部分についてはその説明は省略し、異なる部分
のみにつて説明する。ここで、異なる部分には*を付け
ている。すなわち、図6に示す具体例のステップS16
の代わりに、図7に示す具体例では、ステップS16*
が実行される。したがって、この実施例では、ステップ
S14において、イネーブルバッファが一杯か、又は更
なるイネーブル要素が利用できないとき、ステップS1
*において、イネーブル要素がイネーブルバッファに
あるか、及び第1のイネーブル要素は0に等しいか又は
データバッファが空でないかが調べられる。そして、該
当するときは、ステップS17において、空でないバッ
ファセマフォがセットされる。一方、該当しないとき
は、又はステップS17において空でないバッファセマ
フォがセットされた後は、ステップS18において、イ
ネーブルバッファが一杯か否かが調べられる。そして、
ルーチンは、図6に示す具体例と同様に進む。
【0046】ステップS32において、データバッファ
からデータ要素を読み出すために、データ要素が読出ド
メインによって要求されているかが調べられる。ステッ
プS32においてデータ要素が要求されているときは、
次のステップS33が実行され、IPCライブラリは、
空でないバッファセマフォを要求し、空でないバッファ
セマフォが供給されるまで待機することにより、データ
バッファに要素がない限り、そのデータバッファからの
要素の読出を阻止する。空でないバッファセマフォが受
信された後、ステップS34において、データバッファ
及びイネーブルバッファアールは、バッファアクセスセ
マフォを要求することによって、ロックされる。次のス
テップS35において、イネーブルバッファが空でない
か、第1のイネーブル要素が0に等しいか又はデータバ
ッファは空でないか、及びデータ要素が要求されている
かが調べられる。該当するときは、ステップS36にお
いて、次のイネーブル要素が0に等しいか否かが調べら
れる。ステップS36においてイネーブル要素が0に等
しいときは、スタフィング(stuffing)値が、ステップ
S26においてデータ要素を要求しているドメインに出
力され、ステップS36においてイネーブル要素が0に
等しくないときは、次のデータ要素が、ステップS38
においてデータ要素を要求しているドメインに出力され
る。ステップS37又はステップS38が実行された
後、動作は、再びステップS35に戻り、上述した条件
が満足しないようになるまで、繰り返される。この場
合、ステップS39において一杯でないイネーブルバッ
ファセマフォをセットすることにより、イネーブルバッ
ファ内に空間があることが示される。それ後、ステップ
S40において、データバッファが一杯か否かが調べら
れる。データバッファが一杯でないときは、ステップS
41において、一杯でないデータバッファセマフォがセ
ットされる。データバッファが一杯でないとき、又はス
テップS41において一杯でないバッファセマフォがセ
ットされた後、ステップS42において、イネーブルバ
ッファが空であるか、第1のイネーブル要素が0に等し
くないか、又は空でないバッファセマフォが解放されて
いるかが調べられる。したがって、空でないバッファセ
マフォは、新たな読出動作が可能なときのみ、解放され
る。上述の条件が満足されるとき、又はステップS43
において空でないバッファセマフォが解放された後は、
ステップS44において、両方のバッファはロックさ
れ、動作は再びステップS32に戻り、データ要素の要
求がなくなるまで続く。
【0047】図8は、潜在的にデータの並列処理がで
き、より速い処理速度を有する独立したドメインのブロ
ックダイアグラムの境界(partition)を調整するIP
Cライブラリの機能を示す図である。このIPCライブ
ラリは、イネーブル信号が全くないときに用いられる。
【0048】図8は、同様に、左側のフローチャート
は、データ要素をデータバッファに書き込む方法を示
し、中央のフローチャートは、データバッファからデー
タ要素を読み出す方法を定義し、右側のレジェンドは、
バッファアクセスを制御するために必要とされる異なる
セマフォのシンボルを示している。
【0049】ドメインのブロッキングは、図6に示す具
体例と同じように、セマフォによってなされるが、一杯
でないイネーブルバッファセマフォは必要とされず、し
たがって、バッファアクセスセマフォ及び空でないバッ
ファセマフォが、データバッファを考慮して、セット又
は解放されるのみである。
【0050】データ要素をデータバッファに書き込むル
ーチンは、図6及び図7に示す具体例と類似しているの
で、同一部分については説明を省略する。上述したセマ
フォを考慮した差異は別として、唯一の差異は、ステッ
プS6がなく、ステップ7が、データバッファが一杯
に、又はステップS4において更なるデータ要素が利用
できなくなった後に、直接毎回実行されることである。
【0051】データバッファからのデータ要素を読み出
すルーチンは、図6に示す具体例と類似しているので、
同一部分については説明を省略する。上述したセマフォ
を考慮した差異は別として、差異は、ステップS24,
S27の代わりに、ステップS24*,S27*が実行さ
れ、ステップS25,S26がないということである。
ステップS24*において、イネーブルバッファが空で
ないか、及びデータ要素が要求されているかが調べられ
る。該当するときは、ステップS27において、常に、
次のデータ要素が、データ要素を要求しているドメイン
に出力される。その後、動作は、ステップS24*に戻
り、上述した条件が満たせなくなるまで繰り返される。
この場合、動作は、図6の具体例のステップS28と同
じようになされ、一杯でないイネーブルバッファをセッ
トすることによって、イネーブルバッファ内に空間があ
ることが示され、次のステップが実行される。
【0052】以上の説明からも明らかなように、図6〜
8に示すルーチンは、ハードウェア又は無限ループにお
いて実行されるソフトウェアによって実現することがで
き、例えば図3に示す全てのブロックは、順に起動/呼
び出される図6〜8に示すルーチンのいずれか1つをそ
れぞれ実行するので、異なるドメインの異なるデータレ
ートを適合させる全て考えは、機能(work)する。
【0053】例えば書込ルーチンにおいて、各要素が利
用可能かを調べる外側のホワイルループ(while loop)
S1、S11は、ライブラリに渡された全ての要素がそ
れぞれの信号に関連したバッファに書き込まれたとき
に、終了する。上述したように、それぞれのバッファに
対する一杯でないバッファセマフォが得られた後、各バ
ッファは、他のドメイン、すなわちプロセッサ、タスク
又はスレッドから、バッファポインタ又はコンテンツが
変更されるのを防ぐために、ロックされる。内側のホワ
イルループS4(S14)において、各バッファは一杯
でないか、及び各要素は利用可能かが調べられ、各要素
は、各バッファが一杯になるか又は全ての要素が書き込
まれるまで、それぞれのバッファに書き込まれる。要素
の書込後、バッファ内に要素があることが示され、バッ
ファはアンロックされる。
【0054】また、読出ルーチンにおいて、データ要素
が要求されているかを調べる外側のホワイルループS2
1、S32は、両方のバッファにおいて十分な要素が一
時的に利用できないので、ドメインが要求された数の要
素を受信したか、またプロセスが何時阻止されたかを確
実にする。内側のホワイルループS24,S35,S2
*において、それぞれのデータ要素又はスタフィング
値は、各ループの条件がもはや満足されなくなるまで、
要求しているドメインに出力され、又は出力されない。
読出の後、バッファ内に空間があることが示され、バッ
ファはアンロックされる。
【0055】図9は、本発明を適用した動的データフロ
ーデザインが用いられる応用例を示し、この応用例は、
可変レートクロック再生(variable rate clock recove
ry)回路を実現するために用いられる。可変レートクロ
ック再生回路は、正確なクロック周波数で信号が生成さ
れて送信されたが、受信側で、この周波数を正確に利用
できらないときに、必要とされる。
【0056】図9に示す本発明を適用したブロックダイ
アグラムは、クロック再生を完全にデジタル的に行うた
めに用いられる。図9に示すデザインは、デジタル変調
された信号のクロックを再生するための位相ロックルー
プ(phase locked loop:PLL)である。機能は、タ
イミング補間回路B11によって完全にデジタル的に実
現されるので、外部に電圧制御発振器(voltage contro
lled oscillator:VCO)を必要としない。
【0057】このタイミング補間回路B11は、水晶発
振器のフリーランニングによって定まるサンプリングレ
ートを有するA/D変換器から供給されるサンプルを表
す入力信号S8を受信する。上述したように、このサン
プリングレートは、送信側のサンプリングレートに対し
て正確でなく、したがって、送信側のサンプリングレー
トよりも高く設定されている。タイミング補間回路B1
1では、A/D変換器のサンプリングレートと送信側で
生成される信号のクロック周波数とのおおよその比率
(approximate)がわかっている。タイミング補間回路
B11は、この比率に基づいて、サンプリングの瞬時値
を補間し、補間されたサンプルと静的データフローの制
約を満たすために挿入されるダミー値からなる信号S3
を算出する。また、タイミング補間回路B11は、信号
S3のどの要素が補間されたサンプルであり、ダミー値
であることを示すイネーブル信号S4を生成する。この
具体例では、信号S3,S4は、それぞれn(3+x)個
の要素からなり、データ入力信号、イネーブル信号とし
て動的データフローブロックB2に供給される。動的デ
ータフローブロックB2は、この具体例ではn3個の要
素からなり、信号が送信されたときに用いられたレート
でサンプリングされた信号を表す信号S5を出力する。
この信号は、図2及び図6で説明したようにして生成さ
れる。
【0058】タイミング補間回路B11では、A/D変
換器のサンプリングレートと送信側で生成された信号の
クロック周波数の正確な比率がわからないので、タイミ
ング補間回路B11は、クロック再生ブロックB12で
算出された信号S11をフィードバックループを介して
フィードバックされることによって、制御される。すな
わち、クロック再生ブロックB12は、位相誤差検波器
(phase error detector)、積分器(integrator)及び
ループフィルタ(loop filter)からなり、出力信号S
5が供給され、サンプリングが早すぎるか遅すぎるかを
決定し、累積された位相誤差をタイミング補間回路B1
1に供給する。これによって、位相誤差をなくすことが
できる。クロック再生ブロックB12の出力信号S11
は、遅延ブロックB13に供給され、遅延ブロックB1
3は、その出力信号S9を、図4及び図7に従って動作
する動的データフローブロックB12に供給する。動的
データフローブロックB9に対するイネーブル信号S7
は、タイミング補間回路B11の出力信号S10が遅延
ブロックB10によって遅れた信号である。位相ロック
ループが、データフローと同じ高いレート、すなわちn
(3+x)個の要素からなる信号S3,S4の変数nが1
に等しいレートで動作するときは、タイミング補間回路
B11の出力信号S10は、出力信号S4に対応してい
る。又は。出力信号S10は、出力信号S4のn個毎の
要素に対応している。
【0059】動的データフローブロックB9の出力信号
S6は、位相誤差をなくすために、制御信号としてタイ
ミング補間回路B11に供給される。
【0060】遅延ブロックB10,B13は、データフ
ローを開始するために必要とされる。基本的には、ルー
プは、遅延ブロックから適当な値(suitable value)を
それぞれ有するデータ要素を初期値、例えば遅延ブロッ
クB10からの1及び遅延ブロックB13からの0を初
期値として、開始する。初期化の後、各遅延ブロックB
10,b13は、入力端子からの要素を出力端子にコピ
ーするだけである。タイミング補間回路B11は、信号
S10を生成することによって、信号S6中のスタフィ
ング値が正しい位置あることを確実にする。実現及び演
算速度に従い、動的データフローブロックB9に供給さ
れる信号S7を生成するために、サンプルの所定数によ
って、信号S10を遅らせさせることが必要とされる。
【0061】したがって、図9に示す可変レートクロッ
ク再生回路は、異なるクロックレートで動作する2つの
ドメイン、すなわちA/D変換器のクロック周波数又は
データレートで動作するタイミング補間回路B11及び
遅延ブロックB10と、伝送されてきた信号が生成され
たクロック周波数で動作するクロック再生ブロックB1
2及び遅延ブロックB13とを有する。両方のドメイ
ン、すなわちプロセッサ、タスク又はスレッドは、クロ
ック再生における位相誤差をなくすためのフェーズロッ
クループを実現した動的データフローブロックB2,B
9を介して接続されている。
【0062】なお、本発明は、上述した実施例に限定さ
れるものではなく、例えば、コード又はハードウェアを
能率的に生成するために動的データフローを必要とする
他の応用にも、適用することができる。
【0063】
【発明の効果】本発明に係る動的データフローブデザイ
ン生成方法では、データ要素からなり、第1のデータレ
ートを有する第1の静的又はスケーラブルな静的データ
フロー信号を第1のプロセッサ、タスク又はスレッドに
割り当て、データ要素からなり、第1のデータレート以
下の第2のデータレートを有する第2の静的又はスケー
ラブルな静的データフロー信号を第2のプロセッサ、タ
スク又はスレッドに割り当てる。そして、第1のプロセ
ッサ、タスク又はスレッドと第2のプロセッサ、タスク
又はスレッドとを、第1のデータレートと第2のデータ
レートを適合させる相互処理ユニットを介してリンクさ
せる。これにより、静的又はスケーラブルな静的データ
フローサブデザインによって動作するマルチプロセッサ
システム、マルチタスクシステム又はマルチスレッドシ
ステムにおける動的データフローデザインを生成する。
【図面の簡単な説明】
【図1】本発明を適用した動的データフローブロックを
介して、2つの静的データフロードメインを接続した構
成を示すブロック図である。
【図2】図1に示す動的データフローブロックを含む、
マルチDSPシミュレータを考慮した、動的データフロ
ーブロックダイアグラムを示す図である。
【図3】図2に示す動的データフローブロックダイアグ
ラムを、例えばマルチDSPコードジェネレータとした
ときの構成を示すブロック図である。
【図4】本発明を適用した他の動的データフローブロッ
クを示す図である。
【図5】セマフォによるタスクスケジューリングの具体
例を示すタイムチャートである。
【図6】図1又は図2に示す2つのドメインを接続した
動的データフローブロックの書込及び読出動作を説明す
るためのフローチャートである。
【図7】2つのドメインを接続するための図4に示す動
的データフローブロックの書込及び読出動作を説明する
ためのフローチャートである。
【図8】2つのドメインを接続する他の動的データフロ
ーブロックの書込及び読出動作を説明するためのフロー
チャートである。
【図9】クロック再生回路を実現するための本発明を適
用した動的データフローデザインの具体例を示すブロッ
ク図である。
【図10】スケーラブルな静的データフローブロックを
示す図である。
【符号の説明】
D1,D2 ドメイン、B2 動的データフローブロッ
フロントページの続き (72)発明者 ゲルト シュパリンク ドイツ連邦共和国 ディー−70736 フェ ルバッハシュトゥットゥガルター シュト ラーゼ 106 ソニー インターナショナ ル (ヨーロッパ) ゲゼルシャフト ミ ット ベシュレンクテル ハフツングシュ トゥットゥガルト テクノロジーセンター 内

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 静的又はスケーラブルな静的データフロ
    ーサブデザインによって動作するマルチプロセッサシス
    テム、マルチタスクシステム又はマルチスレッドシステ
    ムにおける動的データフローデザインを生成する方法に
    おいて、 データ要素からなり、第1のデータレートを有する第1
    の静的又はスケーラブルな静的データフロー信号を、第
    1のプロセッサ、タスク又はスレッドに割り当てるステ
    ップと、 データ要素からなり、上記第1のデータレート以下の第
    2のデータレートを有する第2の静的又はスケーラブル
    な静的データフロー信号を、第2のプロセッサ、タスク
    又はスレッドに割り当てるステップと、 上記第1のプロセッサ、タスク又はスレッドと上記第2
    のプロセッサ、タスク又はスレッドとを、上記第1のデ
    ータレートと上記第2のデータレートを適合させる相互
    処理ユニットを介して、リンクさせるステップとを有す
    る動的データフローブデザイン生成方法。
  2. 【請求項2】 上記第1のプロセッサ、タスク若しくは
    スレッド、又は上記第2のプロセッサ、タスク若しくは
    スレッドは、上記相互処理ユニットを同時にアクセスす
    ることができることを特徴とする請求項1記載の動的デ
    ータフローブロックデザイン生成方法。
  3. 【請求項3】 上記相互処理ユニットのアクセス制御
    は、セマフォ技術によって実現されることを特徴とする
    請求項1又は2記載の動的データフローブロックデザイ
    ン生成方法。
  4. 【請求項4】 上記第1のデータレートを有する第3の
    静的又はスケーラブルな静的データフロー信号を上記第
    1のプロセッサ、タスク又はスレッドに割り当てるステ
    ップと、 上記相互処理ユニットが、上記第1のプロセッサ、タス
    ク又はスレッドから上記第1の静的又はスケーラブルな
    静的データフロー信号と、上記第3の静的又はスケーラ
    ブルな静的データフロー信号が供給され、上記第2のプ
    ロセッサ、タスク又はスレッドが上記第2の静的又はス
    ケーラブルな静的データフロー信号を受け取ることを許
    可するステップとを有し、 上記第3の静的又はスケーラブルな静的データフロー信
    号は、イネーブル要素からなるイネーブル信号であり、
    上記第2の静的又はスケーラブルな静的データフロー信
    号を形成する第1の静的又はスケーラブルな静的データ
    フロー信号のデータ要素を定義することを特徴とする請
    求項1乃至3のいずれか1項記載の動的データフローブ
    デザイン生成方法。
  5. 【請求項5】 上記第3の静的又はスケーラブルな静的
    データフロー信号は、上記第2の静的又はスケーラブル
    な静的データフロー信号のデータ要素を形成する第1の
    静的又はスケーラブルな静的データフロー信号の各デー
    タ要素の所定のイネーブル値を含み、上記相互処理ユニ
    ットは、 上記第1の静的又はスケーラブルな静的データフロー信
    号の全てのデータ要素を第1のバッファに記憶するステ
    ップと、 上記第3の静的又はスケーラブルな静的データフロー信
    号の全てのイネーブル要素と、他の全てのデータ要素の
    任意の値とを、第2のバッファに記憶するステップと、 上記第2のプロセッサ、タスク又はスレッドのみが、上
    記第2のバッファ内のイネーブル値に対応する第1のバ
    ッファ内のデータ要素をアクセスすることを許可するス
    テップとを有することを特徴とする請求項4記載の動的
    データフローブロックデザイン生成方法。
  6. 【請求項6】 上記相互処理ユニットは、上記第1の静
    的又はスケーラブルな静的データフロー信号を上記第1
    のバッファに書き込む際に、上記第1の静的又はスケー
    ラブルな静的データフロー信号からデータ要素が利用で
    きる間は、 第1の一杯でないバッファセマフォを要求することによ
    って、上記第1のバッファ内の空間を待つステップと、 バッファアクセスセマフォの要求に対する上記一杯でな
    いバッファセマフォを受信した後、上記第1及び第2の
    バッファをロックするステップと、 上記第1のバッファが一杯でなく、上記各データ要素が
    利用できる間、上記第1の静的又はスケーラブルな静的
    データフロー信号からのデータ要素を上記第1のバッフ
    ァに入れるステップと、 上記第1の静的又はスケーラブルな静的データフロー信
    号からのデータ要素、及び上記第3の静的又はスケーラ
    ブルな静的データフロー信号からのデータ要素が各バッ
    ファ内にあるとき、上記第2のバッファが一杯になり、
    又は上記第3の静的又はスケーラブルな静的データフロ
    ー信号からのイネーブル要素が利用できないようになっ
    た後、空でないバッファセマフォをセットするステップ
    と、 上記第1のバッファが一杯でないときに、上記第1の空
    でないバッファセマフォを解放するステップと、 上記バッファアクセスセマフォを解放することによっ
    て、上記第1及び第2のバッファをアンロックするステ
    ップとを有することを特徴とする請求項5記載の動的デ
    ータフローブロックデザイン生成方法。
  7. 【請求項7】 上記相互処理ユニットは、上記第3の静
    的又はスケーラブルな静的データフロー信号を上記第2
    のバッファに書き込む際に、上記第3の静的又はスケー
    ラブルな静的データフロー信号からイネーブル要素が利
    用できる間は、 第2の一杯でないバッファセマフォを要求することによ
    って、上記第2のバッファ内の空間を待つステップと、 上記バッファアクセスセマフォの要求に対する一杯でな
    いバッファセマフォを受信した後、上記第1及び第2の
    バッファをロックするステップと、 上記第2のバッファが一杯でなく、上記各イネーブル要
    素が利用できる間、上記第3の静的な又はスケーラブル
    な静的データフロー信号からのイネーブル要素を上記第
    2のバッファに入れるステップと、 上記第1の静的又はスケーラブルな静的データフロー信
    号からのデータ要素、及び上記第3の静的又はスケーラ
    ブルな静的データフロー信号からのイネーブル要素が各
    バッファ内にあるとき、上記第2のバッファが一杯にな
    り、又は上記第3の静的又はスケーラブルな静的データ
    フロー信号からのイネーブル要素が利用できないように
    なった後、上記空でないバッファセマフォをセットする
    ステップと、 上記第2のバッファが一杯でないときに、上記第2の空
    でないバッファセマフォを解放するステップと、 上記バッファアクセスセマフォを解放することによっ
    て、上記第1及び第2のバッファをアンロックするステ
    ップとを有することを特徴とする請求項5又は6記載の
    動的データフローブロックデザイン生成方法。
  8. 【請求項8】 上記相互処理ユニットは、上記第1のバ
    ッファから第2の静的又はスケーラブルな静的データフ
    ロー信号を読み出す際に、データ要素が第2の静的又は
    スケーラブルな静的データフロー信号として要求されて
    いる間は、 空でないバッファセマフォを要求することによって、上
    記第1及び第2のバッファ内の要素を待つステップと、 バッファアクセスセマフォの要求に対する上記空でない
    バッファセマフォを受信した後、上記第1及び第2のバ
    ッファをロックするステップと、 上記第1及び第2のバッファが空でなく、データ要素が
    第2の静的又はスケーラブルな静的データフロー信号と
    して要求されている間は、上記第2のバッファからの対
    応するイネーブル要素がイネーブル値に等しいときは、
    上記第1のバッファから1つのデータ要素と、上記第2
    のバッファから1つのイネーブル要素を得るとともに、
    上記第1のバッファからのデータ要素を出力し、上記第
    2のバッファからの対応するイネーブル要素がイネーブ
    ル値に等しくないときは、上記第1のバッファから1つ
    のデータ要素と、上記第2のバッファから1つのイネー
    ブル要素を得るとともに、上記第1のバッファからのデ
    ータ要素を破棄するステップと、 第1の一杯でないバッファセマフォ及び第2の一杯でな
    いバッファセマフォをセットすることによって、上記第
    1のバッファ及び第2のバッファ内に空間があること示
    すステップと、 上記第2のバッファが空でないときは、上記空でないバ
    ッファセマフォを解放するステップと、 上記バッファアクセスセマフォを解放することによっ
    て、第1及び第2のバッファをアンロックするステップ
    とを有することを特徴とする請求項5乃至7のいずれか
    1項記載の動的データフローブロックデザイン生成方
    法。
  9. 【請求項9】 上記第1のデータレートを有する第3の
    静的又はスケーラブルな静的データフロー信号を上記第
    1のプロセッサ、タスク又はスレッドに割り当てるステ
    ップと、 上記相互処理ユニットが、上記第2のプロセッサ、タス
    ク又はスレッドから上記第2の静的又はスケーラブルな
    静的データフロー信号と、上記第1のプロセッサ、タス
    ク又はスレッドから上記第3の静的又はスケーラブルな
    静的データフロー信号が供給され、上記第1の静的又は
    スケーラブルな静的データフロー信号を上記第1のプロ
    セッサ、タスク又はスレッドに供給するステップとを有
    し、 上記第3の静的又はスケーラブルな静的データフロー信
    号は、イネーブル要素からなるイネーブル信号であり、
    上記第1の静的又はスケーラブルな静的データフロー信
    号がいつ出力されるかを定義することを特徴とする請求
    項1乃至3のいずれか1項記載の動的データフローブデ
    ザイン生成方法。
  10. 【請求項10】 上記相互処理ユニットは、 上記第2の静的又はスケーラブルな静的データフロー信
    号の全てのデータ要素を第1のバッファに記憶するステ
    ップと、 上記第2の静的又はスケーラブルな静的データフロー信
    号のデータ要素から生じる上記第1の静的又はスケーラ
    ブルな静的データフロー信号の各データ要素に対する所
    定のイネーブル値がそれぞれ含まれる上記第3の静的又
    はスケーラブルな静的データフロー信号の全てのイネー
    ブル要素と、他のデータ要素の他の任意の値を第2のバ
    ッファに記憶するステップと、 上記第3の静的又はスケーラブルな静的データフロー信
    号から、イネーブル値と異なる値を有するイネーブル要
    素が供給されたとき、ダミーデータ要素を、上記第1の
    静的又はスケーラブルな静的データフロー信号のデータ
    要素として出力するステップと、 上記第3の静的又はスケーラブルな静的データフロー信
    号から、イネーブル値を有するイネーブル要素が供給さ
    れたとき、上記第2の静的又はスケーラブルな静的デー
    タフロー信号の次のデータ要素を、上記第1の静的又は
    スケーラブルな静的データフロー信号のデータ要素とし
    て伝達するステップとを有することを特徴とする請求項
    9記載の動的データフローブロックデザイン生成方法。
  11. 【請求項11】 上記相互処理ユニットは、上記第2の
    静的又はスケーラブルな静的データフロー信号を上記第
    1のバッファに書き込む際に、上記第2の静的又はスケ
    ーラブルな静的データフロー信号からデータ要素が利用
    できる間は、 第1の一杯でないバッファセマフォを要求することによ
    って、上記第1のバッファ内の空間を待つステップと、 バッファアクセスセマフォの要求に対する上記第1の一
    杯でないバッファセマフォを受信した後、上記第1及び
    第2のバッファをロックするステップと、 上記第1のバッファが一杯でなく、上記データ要素が利
    用できる間、上記第2の静的又はスケーラブルな静的デ
    ータフロー信号からのデータ要素を上記第1のバッファ
    に入れるステップと、 上記第1の静的又はスケーラブルな静的データフロー信
    号からのデータ要素、及び上記第3の静的又はスケーラ
    ブルな静的データフロー信号からのデータ要素が各バッ
    ファ内にあるとき、上記第2のバッファが一杯になり、
    又は上記第3の静的又はスケーラブルな静的データフロ
    ー信号からのイネーブル要素が利用できないようになっ
    た後、空でないバッファセマフォをセットするステップ
    と、 上記第1のバッファが一杯でないときに、上記第1の空
    でないバッファセマフォを解放するステップと、 上記バッファアクセスセマフォを解放することによっ
    て、上記第1及び第2のバッファをアンロックするステ
    ップとを有することを特徴とする請求項10記載の動的
    データフローブロックデザイン生成方法。
  12. 【請求項12】 上記相互処理ユニットは、上記第3の
    静的又はスケーラブルな静的データフロー信号を上記第
    2のバッファに書き込む際に、上記第3の静的又はスケ
    ーラブルな静的データフロー信号からイネーブル要素が
    利用できる間は、 第2の一杯でないバッファセマフォを要求することによ
    って、上記第2のバッファ内の空間を待つステップと、 上記バッファアクセスセマフォの要求に対する上記第2
    の一杯でないバッファセマフォを受信した後、上記第1
    及び第2のバッファをロックするステップと、 上記第2のバッファが一杯でなく、上記イネーブル要素
    が利用できる間、上記第3の静的な又はスケーラブルな
    静的データフロー信号からのイネーブル要素を上記第2
    のバッファに入れるステップと、 上記第2のバッファが空でなく及び上記第3の静的又は
    スケーラブルな静的データフロー信号からのイネーブル
    要素がイネーブル値を含まず、又は上記第2のバッファ
    が空でなく及び上記第1のバッファが空でないとき、上
    記第2のバッファが一杯でなく、又は上記第3の静的又
    はスケーラブルな静的データフロー信号からのイネーブ
    ル要素が利用できないようになった後、空でないバッフ
    ァセマフォをセットするステップと、 上記第2のバッファが一杯でないときに、上記第2の空
    でないバッファセマフォを解放するステップと、 上記バッファアクセスセマフォを解放することによっ
    て、上記第1及び第2のバッファをアンロックするステ
    ップとを有することを特徴とする請求項10又は11記
    載の動的データフローブロックデザイン生成方法。
  13. 【請求項13】 上記相互処理ユニットは、上記第1の
    バッファから第1の静的又はスケーラブルな静的データ
    フロー信号を読み出す際に、データ要素が第1の静的又
    はスケーラブルな静的データフロー信号として要求され
    ている間は、 空でないバッファセマフォを要求することによって、上
    記第1及び第2のバッファ内の要素を待つステップと、 バッファアクセスセマフォの要求に対する上記空でない
    バッファセマフォを受信した後、上記第1及び第2のバ
    ッファをロックするステップと、 上記第2のバッファが空でなく、上記第2のバッファの
    第1のイネーブル要素がイネーブル値に等しくなく、及
    びデータ要素が第1の静的又はスケーラブルな静的デー
    タフロー信号として要求されている間は、又は上記第2
    のバッファが空でなく、第1のバッファが空でなく、及
    びデータ要素が第1の静的又はスケーラブルな静的デー
    タフロー信号として要求されている間は、上記第2のバ
    ッファからの対応するイネーブル要素が上記イネーブル
    値に等しいときは、上記第2のバッファから1つのデー
    タ要素を得て、スタフィング値を出力し、上記第2のバ
    ッファからの対応するイネーブル要素が上記イネーブル
    値に等しくないときは、上記第2のバッファから1つの
    データ要素を得て、上記第1のバッファからの1つのデ
    ータ要素を出力するステップと、 第2の一杯でないバッファセマフォをセットすることに
    よって、上記第2のバッファ内に空間があること示すス
    テップと、 上記第2のバッファが空であり、又は上記第2のバッフ
    ァの第1のイネーブル要素がイネーブル値に等しく及び
    第1のバッファが空のときは、空でないバッファセマフ
    ォを解放するステップと、 上記バッファアクセスセマフォを解放することによっ
    て、上記第1及び第2のバッファをアンロックするステ
    ップとを有することを特徴とする請求項10乃至12の
    いずれか1項記載の動的データフローブロックデザイン
    生成方法。
  14. 【請求項14】 上記相互処理ユニットは、第3の静的
    又はスケーラブルな静的データフロー信号がないとき、
    又は第3の静的又はスケーラブルな静的データフロー信
    号のイネーブル要素が唯1つのイネーブル値を有すると
    きに、上記第1の静的又はスケーラブルな静的データフ
    ロー信号を上記第1のバッファに書き込む際に、データ
    要素が上記第1の静的又はスケーラブルな静的データフ
    ロー信号から利用可能な間は、 空でないバッファセマフォを要求することによって、上
    記第1のバッファ内の空間を待つステップと、 上記バッファアクセスセマフォの要求に対する上記空で
    ないバッファセマフォを受信した後、上記第1のバッフ
    ァをロックするステップと、 上記第1のバッファが空でなく、上記データ要素が利用
    可能な間は、上記第1の静的又はスケーラブルな静的デ
    ータフロー信号からのデータ要素を上記第1のバッファ
    に書き込むステップと、 上記第1のバッファが一杯であり、又は上記第1の静的
    又はスケーラブルな静的データフロー信号からのデータ
    要素が利用できないときに、空でないバッファセマフォ
    をセットするステップと、 上記第1のバッファが一杯でないとき、一杯でないバッ
    ファセマフォを解放するステップと、 上記バッファアクセスセマフォを解放することによっ
    て、上記第1のバッファをアンロックするステップとを
    有することを特徴とする請求項4又は9記載の動的デー
    タフローブロックデザイン生成方法。
  15. 【請求項15】 上記相互処理ユニットは、第3の静的
    又はスケーラブルな静的データフロー信号がないとき、
    又は第3の静的又はスケーラブルな静的データフロー信
    号のイネーブル要素が唯1つのイネーブル値を有すると
    きに、上記第1のバッファから第2の静的又はスケーラ
    ブルな静的データフロー信号を読み出す際に、データ要
    素が第2の静的又はスケーラブルな静的データフロー信
    号として要求されている間は、 空でないバッファセマフォを要求することによって、上
    記第1のバッファ内の要素を待つステップと、 バッファアクセスセマフォの要求に対する上記空でない
    バッファセマフォを受信した後、上記第1のバッファを
    ロックするステップと、 上記バッファが空でなく、上記データ要素が要求されて
    いる間は、上記第1のバッファからデータ要素を得るス
    テップと、 上記第1のバッファが空でなく、又は上記第1のバッフ
    ァからデータ要素が要求されなくなった後、一杯でない
    バッファセマフォをセットすることによって、上記第1
    のバッファ内に空間があること示すステップと、 上記第1のバッファが空でないとき、上記空でないバッ
    ファセマフォを解放するステップと、 上記バッファアクセスセマフォを解放することによっ
    て、上記第1のバッファをアンロックするステップとを
    有することを特徴とする請求項4,9又は14記載の動
    的データフローブロックデザイン生成方法。
  16. 【請求項16】 上記マルチプロセッサシステム、マル
    チタスクシステム又はマルチスレッドシステムは、CO
    SSAPシステムであることを特徴とする請求項1乃至
    15にいずれか1項記載の動的データフローブロックデ
    ザイン生成方法。
  17. 【請求項17】 マルチデジタルシグナルプロセッサの
    コードを生成するコードジェネレータにおいて用いられ
    ることを特徴とする請求項1乃至16のいずれか1項記
    載の動的データフローブデザイン生成方法。
  18. 【請求項18】 上記コードジェネレータは、COSS
    APコードジェネレータであることを特徴とする請求項
    17記載の動的データフローブデザイン生成方法。
  19. 【請求項19】 請求項3,5及び6乃至16のいずれ
    か1項記載の相互処理ユニット。
JP2000060455A 1999-03-01 2000-03-01 動的データフローブデザイン生成方法 Withdrawn JP2000250868A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP99103883.7 1999-03-01
EP99103883A EP1033654A1 (en) 1999-03-01 1999-03-01 Buffered communication between entities operating at different data rates

Publications (1)

Publication Number Publication Date
JP2000250868A true JP2000250868A (ja) 2000-09-14

Family

ID=8237659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000060455A Withdrawn JP2000250868A (ja) 1999-03-01 2000-03-01 動的データフローブデザイン生成方法

Country Status (2)

Country Link
EP (1) EP1033654A1 (ja)
JP (1) JP2000250868A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454753B2 (en) 2001-06-27 2008-11-18 International Business Machines Corporation Semaphore management subsystem for use with multi-thread processor systems
US7089555B2 (en) 2001-06-27 2006-08-08 International Business Machines Corporation Ordered semaphore management subsystem
US7406690B2 (en) 2001-09-26 2008-07-29 International Business Machines Corporation Flow lookahead in an ordered semaphore management subsystem
US7143414B2 (en) 2001-09-26 2006-11-28 International Business Machines Corporation Method and apparatus for locking multiple semaphores
US20040260890A1 (en) * 2001-11-13 2004-12-23 Jan Hoogerbrugge P-and v-semaphore operation
JP4515701B2 (ja) * 2002-12-13 2010-08-04 株式会社デンソー 車両用制御プログラム、及び、車両用制御装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4285038A (en) * 1976-10-15 1981-08-18 Tokyo Shibaura Electric Co., Ltd. Information transfer control system
US4928222A (en) * 1988-10-31 1990-05-22 International Business Machines Corporation Enhanced semaphore architecture
US5444860A (en) * 1992-02-14 1995-08-22 Unisys Corporation Translator system for message transfers between digital units operating on different message protocols and different clock rates
US5434975A (en) * 1992-09-24 1995-07-18 At&T Corp. System for interconnecting a synchronous path having semaphores and an asynchronous path having message queuing for interprocess communications

Also Published As

Publication number Publication date
EP1033654A1 (en) 2000-09-06

Similar Documents

Publication Publication Date Title
JP4575528B2 (ja) 標準クロック・メカニズムを用いて、多重データ・ストリームの処理の同期と異なる処理速度のマッチングを行う方法
US5870588A (en) Design environment and a design method for hardware/software co-design
JP3929554B2 (ja) ファイル・オブジェクトの生成をバリデーションし、ファイル・オブジェクトへのメッセージをルーチングする方法
Chang et al. Heterogeneous simulation—mixing discrete-event models with dataflow
EP0772140B1 (en) A design environment and a design method for hardware/software co-design
Chou et al. ipChinook: An integrated IP-based design framework for distributed embedded systems
JPH10283195A (ja) カーネル・モードにおけるソフトウェア・ドライバを相互接続する方法,コンピュータ・プログラム・プロダクト、システムおよび記録媒体
JP3899104B2 (ja) システム開発方法及びデータ処理システム
JP2002140379A (ja) 高位合成方法および高位合成装置
JP2000250868A (ja) 動的データフローブデザイン生成方法
Shin et al. Interface synthesis from protocol specification
EP1065611A2 (en) A design environment for hardware/software co-design
US6327631B1 (en) Signal processing apparatus
Coelho Jr et al. Dynamic scheduling and synchronization synthesis of concurrent digital systems under system-level constraints
Duke et al. PREMO: A Framework for Multimedia Middleware: specification, rationale, and java binding
Gutberlet et al. Timing preserving interface transformations for the synthesis of behavioral VHDL.
Ku et al. Synthesis of asics with hercules and hebe
Mullanix et al. Reference frameworks for eXpressDSP software: RF5, an extensive, high-density system
Naef Hard Real-Time and Synchronous Programming with SDL.
Iwai Writing an ALSA Driver
Patel HEMLOCK: HEterogeneous ModeL Of Computation Kernel for SystemC
Lawrence CSP extended: imperative state and true concurrency
Dannenberg Aura as a platform for distributed sensing and control
Park et al. Integration of collaborative analyses for development of embedded control software
Duke et al. PREMO: A Framework for Multimedia Middleware A Java description of the ISO/IEC Standard

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20070501