(57)【要約】  本発明はハードウェア定義方法に関する。この方法においては、パラメータ化可能で実行可能なエレメントのライブラリを準備し、パラメータを選択し、選択されたパラメータを用いてエレメントを作成し、作成を簡略化することが提案される。
2009524134.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア定義方法において
パラメータ化可能で実行可能なエレメントのライブラリを準備し、
パラメータを選択し、
選択されたパラメータを用いてエレメントを作成し、
前記作成を簡略化することを特徴とする、ハードウェア定義方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は請求項の上位概念において権利を主張している事項に関し、したがって有利にはリコンフィギュラブルなアーキテクチャまたは有利には部分的にリコンフィギュラブルなアーキテクチャならびにセルエレメントフィールドのプログラミング方法に関する。そのようなフィールドのエレメントは異なる複数の機能を実施することができ、殊に汎用プロセッサのように複数の機能を実施することができる。
【０００２】
本明細書においてリコンフィギュラブルなアーキテクチャとは広義の意味で、データを処理、記憶および／または転送するエレメントがネットワーク化されたものの内の少なくとも１つもしくはエレメント自体を変更できるアーキテクチャであると解される；有利なヴァリエーションにおいては、その都度の意味的な関係から何も明記されていない限り、毎回それを参照せずともリコンフィギュラブルなアーキテクチャとは動的にリコンフィギュラブルなアーキテクチャであると解される。動的とは、有効期間中に完全なリコンフィギュレーションおよび／または部分的なリコンフィギュレーションを実現する速度でリコンフィギュレーションできることを意味している；すなわちリコンフィギュレーションは１つのフィールドの全てのセルエレメント、コネクションエレメントなどに対して、フィールドの部分グループに対してのみ、および／または、フィールドの単一のエレメントに対して行うことができる。リコンフィギュレーションを例えば、必要に応じて別個に構成および／またはプレロードされた中央インスタンスによって、データを別のセルまたはセルエレメントフィールドの外のセルへと転送および／または出力する前、またはその際に続けて別のデータ処理またはさらなるデータ処理が必要であることを実行されるデータ処理によって経過中に確認する、エレメント自体内の隣接するセルおよび／または１つのセルによって指示することができる（本出願人による先行の特許文献を参照されたい。開示を目的として、それらの全体の範囲を本願の参考文献とする）。データ経路においてデータの流れに関して上流側にあるエレメントのリコンフィギュレーションを指示することもできる。リコンフィギュレーションを外部から、すなわちフィールド外から、および／または、内部から強制するおよび／または要求することができる。リコンフィギュレーション情報を別個のリコンフィギュレーション線路、（データ）バスおよび／またはセルからセルへの直接的なコネクションを介して伝送することができる。
【０００３】
フィールドの拡張された部分にわたり延びる比較的長い領域および／またはリコンフィギュレーションインスタンスおよび／または外部ユニット、例えばデータメモリ、データソースおよび／またはデータ受信器のスイッチオンないし起動によって複数のセルを相互的に接続する代わりに、および／または、複数のセルを相互的に接続することに付加的に、セルからセルへ直接的にデータを伝送することができる。この種のデータ受信器ないしデータソースは例えばディスプレイ、データインタフェース、外部（ホスト）プロセッサ、コプロセッサ、マイクロコントローラおよび／またはチップに集積されたシーケンサユニットなどでよい。
【０００４】
リコンフィギュレーション情報をデータと共に、例えば比較的長いデータパケットのデータワード内に挿入して伝送することができる。いずれにせよセルエレメント間のデータ交換は有利には同期的に行うことができる。セルからセルへのコンフィギュレーションデータの伝送を、コンフィギュレーション可能なセルエレメントをコンフィギュレーションするための本来のコンフィギュレーションワードの伝送によって、および／または、殊にトリガベクトルの形でのトリガの伝送によって行うことができる。このトリガによりトリガベクトル目標受信器セルエレメントに関してさらに提供すべきコンフィギュレーションおよび／または既に提供されたコンフィギュレーションの中からコンフィギュレーションが選択される。
【０００５】
目下行われている処理および／または後に行われる処理に関する少なくとも１つのコンフィギュレーション、有利には複数のコンフィギュレーションがセルエレメント内またはセルエレメントのもとに記憶される場合には有利であるが、これは本願発明にとって必ずしも必要なことではない。本出願人による先行の特許文献からそれ自体公知であるようなコンフィギュレーションメモリを各セル内および／またはセルのグループに対して設けることができる。
【０００６】
コンフィギュレーションデータのためであれ、および／または、処理すべきデータのためであれ、本発明のようなプロセッサフィールドを用いて、また本発明のようなプロセッサフィールドのために構成することができる階層構造について言及する。複数の異なるコンフィギュレーション、殊に事前に記憶されているコンフィギュレーションの中からコンフィギュレーションＩＤにしたがい選択を行うために、データストリーム内にトリガベクトルを挿入できることを言及しておく。例えば本出願人によるＰＣＴ／ＥＰ０２／０２４０２（ＰＡＣＴ２５／ＰＣＴＥ）において提案されているように、複数のコンフィギュレーションをコンフィギュレーション可能な１つのセルエレメントにおいて時間的に交差して処理できる場合（これは可能であると見なされる）、有利にはセルエレメントがデータ伝送時に所定の処理すべきタスクについてのデータパケットの属性に関連する情報も一緒に送信することができる。データと共に伝送されるこの識別情報に関してはＰＣＴ／ＥＰ０２／０２４０３（ＰＡＣＴ１８／ＰＣＴ）ならびにＰＣＴ／ＥＰ０２／１０５７２（ＰＡＣＴ３１／ＰＣＴｏｅ）を参照されたい。殊に前者についてはＡＰＩＤについての実施形態、後者についてはＣＯＮＦＩＧＩＤについての実施形態を参照されたい。セルエレメントに関係すること、つまりそれ自体考えられることは、特別なプログラムがコンパイルされるべき目下考察しているリコンフィギュレーション可能なアーキテクチャが（完全に）均質のフィールドであるということであり、このフィールドにおいては例えば本出願人による公知のＸＰＰにおけるように、殊にセグメント化されたバスを備えた複数のセルがそれらの間に設けられている。セルは部分的に拡張された機能範囲を有するＡＬＵ（ＥＡＬＵ）でよいが、これは必ずしも必要ではない（ＰＣＴ／ＤＥ９７／０２９４９（ＰＡＣＴＯ２／ＰＣＴ）を参照されたい）。またＡＬＵが両側において入力バスないし出力バスと接続されている（多段式の）レジスタユニットを設けることができる（例えばＰＣＴ／ＥＰ０１／１１２９９（ＰＡＣＴ２２ａ／ＰＣＴ）におけるＦＲＥＧ、ＢＲＥＧ、また本出願人の別の特許文献における相応の構成を参照されたい）。さらにはこれに関してはＡＬＵ自体の手前にある入力／出力レジスタについて言及する。これは別の表記で本出願人による他の刊行物においても見出すことができる。
【０００７】
有利にはセルエレメントの通信は本出願人が既にＸＰＰアーキテクチャに関連させて記述したようなプロトコルに従う。殊に、ＰＣＴ／ＤＥ０３／００４８９（ＰＡＣＴ１６／ＰＣＴＤ）に記載されているようなＲＤＹ／ＡＣＫプロトコル、ＲＤＹ／ＡＢＬＥプロトコル、またこの刊行物においてさらに記載されているＣＲＥＤＩＴプロトコルなどのようなプロトコル、例えば拒絶（Ｒｅｊｅｃｔ）の可能性を有するプロトコルについて言及しておく。本出願人が先行の特許明細書において、場合によっては受信されるがもはや必要とされないデータパケットを拒絶できることを既に指示しているが、これもついても同様に言及しておく。ここでは単に例として、例えばハイパースレッディング、プロセッサ結合などと関連した他の目的のため、例えばリコンフィギュラブルなアーキテクチャに関する使用目的に関して同様に包括的に関連するＰＣＴ／ＥＰ２００４／００３６０３（ＰＡＣＴ５０／ＰＣＴＥ）についても言及しておく。それらは開示を目的としてその内容全体を本願の参考文献とする。
【０００８】
セルエレメントを以下のものとして形成することができる、および／または、セルエレメントは以下のものを含むことができる：ＡＬＵ−ＰＡＥ、ＥＡＬＵ−ＰＡＥ、ＲＡＭ−ＰＡＥ、ＲＡＭ＋ＡＬＵ−ＰＡＥ、機能多重化（funktionsfaltende）ＰＡＥ（ＤＥ１０  ２００５  ００５  ７６６．７、ＤＥ１０  ２００５  ０１０  ８４６．６、ＤＥ１０  ２００５  ０１４  ８６０．３、ＤＥ１０  ２００５  ０２３  ７８５．１、ＥＰ０５  ００５  ８３２．０、ＥＰ０５  ０１９  ２９６．２、ＥＰ０５  ０２０  ２９７．７、ＥＰ０５  ０２０  ７７２．９、（ＰＡＣＴ６２ｆｆ）を参照されたい）、グラフ多重化（graph-faltend）ＰＡＥ、命令線路を介して接続されているシーケンサ構造ならびに、例えばＡＬＵ、リングメモリのようなメモリなど、殊に複数のポインタを備えたその種のもののようなコンフィギュレート可能または調整可能なユニットに加え、その機能が固定的に一度だけ規定された部分、例えば有利には殊に高速なコンフィギュレーション方法を殆ど使用せずに、また有利には使用せずにリコンフィギュレーション可能なＦＰＧＡのようなグループを規定しているＦＰＧＡのような論理回路、および／または、例えばＲＳ２３２、ＬＡＮ、ＶＧＡ、ＸＶＧＡ、ＤＶＩ、ＵＳＢ、Ｓ／ＰＤＩＦ、Ｆｉｒｅｗｉｒｅ、ＲＡＭＢＵＳなどのような所定のＩ／Ｏプロトコルのために使用することができるＡＳＩＣのような機能が固定的な論理回路も有することができるＰＡＥ。
【０００９】
さらには、セルエレメントに属することができるＡＳＩＣのような論理回路を用いて固定の機能、例えばＡＳＩＣのようなプログラミング可能なＤＣＴアルゴリズム、ＦＩＲフィルタまたはＩＩＲフィルタ、ＶＩＴＥＲＢＩアルゴリズムなどを使用することができ、このことは例えばＨＤＴＶ、カメラ、基地局、移動電話、無線受信器（ソフトウェア的に定義されたラジオ）、スマートアンテナ、ＣＯＤＥＣおよび／またはそのための部品用の汎用プロセッサ、汎用コプロセッサ、マイクロコントローラ、シーケンサ、画像加工部および／または画像処理部における種々の用途にとって重要である。
【００１０】
この種の構造および構造の作動方法を使用できるようにするためには相応のハードウェアを構想しなければならず、またこのハードウェア上で実行されるデータ処理プロセスを規定しなければならない。
【００１１】
従来のアーキテクチャ、プロトコルなどを有するハードウェアを構想し、そのためにプログラムを記述することは既に問題なく可能であることは経験上分かっている。アーキテクチャのためのプログラムに関係することは、殊に言語ＮＭＬならびにそのために存在する資料、マニュアルまた一般的な説明に指示される；プログラミング言語自体は公知であり、必要に応じて特別なアーキテクチャにも適用できることを言及しておく。単なる例に過ぎないが考えられる関連するプログラミング高級言語としてＢＡＳＩＣ、ＬＩＳＰ、ＣＯＢＯＬ、ＰＬ−Ｍ、ＡＤＡ、ＡＬＧＯＬ、ＦＯＲＴＲＡＮ、ＢＡＳＨ、ＴＣＬが挙げられるが、しかしながらまたＪＡＶＡ、Ｃ＋＋、ＰＡＳＣＡＬ、ＯＢＥＲＯＮ、ＥＩＦＦＥＬ、ＰＥＲＬ、Ａ、Ｂ、ＸＭＬ、ＵＭＬのような種々の方言におけるＣも挙げられる。
【００１２】
それにもかかわらず、冒頭で述べた構造およびアーキテクチャを構想する際、および／または、その使用可能性に関して少なくとも部分的に改善が実現されることが望ましいであろう。
【００１３】
設計フローに関する従来技術の方法が図１に示されている。図１は、上記の記述の意味におけるリコンフィギュラブルなアーキテクチャの公知の作成およびプログラミング方法を示す。図面の右側には、殊にＡＬＵ−ＰＡＥ定義、ＲＡＭ−ＰＡＥ定義などに関連する比較的大きいチップのためのモジュールを含むライブラリが設けられている。これらの種々の定義はＸＰＰジェネレータにおいて必要とされるように、また所定のように組み合わされ、続けてＸＰＰジェネレータから得られる出力に関する合成を行い、その合成結果に基づいて合成されたハードウェアに関するマスクセットが形成され、それによりチップを製造することができる。
【００１４】
図面の左側には、ＮＭＬのような言語での複数のプログラムのためのライブラリ（ソフトウェアパーツ）が設けられており、これらの特別な言語は前述のように本出願人による他の刊行物から公知である。続いて、この種のライブラリソフトウェア部分を使用してプログラムが記述されるが、ライブラリに含まれていないソフトウェアパーツも勿論付加的に使用することができる、および／または、専ら使用することができる。続いてプログラムがコンパイルされる。ここでコンパイルには配置および配線も必要に応じて含まれるべきである。このためにコンパイラは実際の目標ハードウェア構想に関連する情報を必要とする；コンパイラはその種の情報も有する。コンパイラによって生成された１つまたは複数のコンフィギュレーションがランタイムコンフィギュレーションとしてハードウェアにおいて実行される。
【００１５】
ハードウェアを構想する際にいわゆるボトムアップアプローチを行うことも既に提案されている（ＷＯ２００４／１１４１６６を参照されたい）。この刊行物においては、メッセージパケットに基づき動作するためにそれぞれ構造化されている複数のハードウェアオブジェクトの記述ライブラリを有する集積回路開発システムが提案されている。各オブジェクトは比較的似ている電気的な負荷特性を有するべきである。また集積回路開発システムはさらにモデラを有し、このモデラはライブラリを参照し、記述のうちの１つをインスタンス化する命令を受け取るため、また生成された２つまたはそれ以上のインスタンスを相互に結合するコマンドを受け取るために構造化されるべきである。インスタンス化されたハードウェアオブジェクトのこの公知の方法による手間のかかるプログラミングでは、それ自体がインスタンス化されたハードウェアオブジェクトの抽象化であるべきソフトウェアオブジェクトのコレクション、リストアップされたハードウェアオブジェクトを結合するための規則のリストおよびリスト化されたハードウェアオブジェクトにロードされるべき指示ファイルが受け入れられるべきである。各ソフトウェアオブジェクトはソフトウェアオブジェクトにおいて使用されるハードウェアオブジェクトのリストを有するべきである。物理的にインスタンス化されたハードウェアオブジェクトのコレクションの記述が受け入れられるべきである。ハードウェアオブジェクトのリストからなる物理的にインスタンス化された各ハードウェアオブジェクトに識別子が割り当てられるべきであり、また指示ファイル内のシンボリックな情報を置換するために、物理的にインスタンス化されたハードウェアオブジェクトのコレクションに関する初期化ファイルが識別子を使用して生成されるべきである。前述のＷＯ２００４／１１４１６６による技術は殊に、実際にハードウェアとソフトウェアが同形（Isomorphismus）とされ、排他的には主張されないということを必ずしも仮定できず、またさらにはシステムに応じて構成された用途では不要な余剰のハードウェアをシリコンチップ上に設けなければならないことが多いので不利である。それと同時に、ＷＯ２００４／１１４１６６による公知の方法では予め規定された変更不能なハードウェアモジュールから構成されているハードウェアオブジェクトの最適な実行速度を実現することは保証されていない。
【００１６】
さらに、参照したＷＯ２００４／１１４１６６による従来技術ではハードウェアエンジニアが依然としてハードウェアを構想しなければならない。専用用途のためのチップの構成を専用用途のプログラマに完全にまたは少なくとも大部分任せることは不可能である。
【００１７】
本発明の課題は、産業上の用途のための新規な方法を提供することである。
【００１８】
以下では図面を参照しながら本発明を単に例示的に説明する。図面において、
図１は従来技術による構成を示す；
図２は、ハードウェアを作成および／またはプログラミングするための本発明による改善された方法を示す。
【００１９】
以下において詳細に説明する図２は、図１にも示した従来技術から公知であるような設計フローの本質的な部分を示すが、この設計フローは本発明によるやり方で補間および拡張ないし変更されている。以下の説明から明らかになるように、次の事項が非常に重要である。
【００２０】
先ず高級言語プログラムが提供され、この高級言語プログラムにおいては差し当たり必ずしも実際のハードウェア特性を関連付ける必要はない。このプログラムを従来の高級言語、例えばＣ＋＋、ＪＡＶＡ、ＭＡＴＬＡＢなどで記述することができる。すなわちプログラミングにおいては抽象化されて各ハードウェアによって処理され、したがってここでは完全なハードウェア抽象化言語、少なくとも部分的なハードウェア抽象化言語が有利には使用されるが、これは必ずしも必要ではない。このハードウェア抽象化プログラムないしこれらのハードウェア抽象化プログラムは有利には、個々のオブジェクトについて複数のヴァリエーションを有することができるほぼ最大限に自由なハイパーセット、すなわち考えられるハードウェアオブジェクトのスーパーセットに関連付けられ、それ自体公知のように翻訳される。前述のヴァリエーションは例えば有利には、パラメータによって決定できるやり方で１つまたは複数の特性を異ならせることができる。ハードウェア抽象化高級言語プログラムが考えられるハードウェア構造などのほぼ最大限に自由なハイパーセットに関連付けられ翻訳され、このために変換コンパイラが使用される場合には、これらのハイパーセットに関してパラメータ化された複数のＰＡＥなどに基づき、ソフトウェアライブラリに格納されている適切なモジュールを使用することができる。ライブラリ内のモジュールをハイパーセットのパラメータ化されたエレメント、またはさらにパラメータ化可能なエレメントに関して決定することができ、また前述したように変換コンパイラによって行われる記述の翻訳として、機械的なコーディングによって、また必要に応じて所望のように完全におよび／または部分的に手動的なコーディングによって形成することができる。機械的および／または手動的な翻訳の際にモジュールを使用することは必ずしも必要ではないということを言及しておく。
【００２１】
パラメータ化をインタラクティブにプログラマによって、殊に配置ツールおよび配線ツールとのインタラクションによって行うことができるが、パラメータ化はそのようなツールによって必要に応じて完全に自動的に提案され、また必要に応じて確認のみが行われ、および／または、確認なしで規定される。択一的に、必要に応じてインタラクティブでもよい、および／または、配置ツールおよび配線ツールの制御および調整下での発見的な方法も考えられる。発見的な方法においては、プログラマ定義環境およびハードウェア定義環境において配置ツールおよび配線ルールまたは他のツールを用いてインタラクティブなやり方を実施することができ、この種の繰り返しは手動、半自動、および／または、択一的に殊に有利には全自動で行うことができることを言及しておく。
【００２２】
ヒューリスティクスにより目標量を設定することができ、この目標量は反復により、例えばテストにより達成されるべきものである。開示を目的として「焼きなまし法（simulated annealing）」を明示的に言及しておく。
【００２３】
焼きなまし法の他にも遺伝的アルゴリズム（genetic algorithm）のような発展的な方法も勿論問題なく適用することができる。
【００２４】
その他の点に関して、本明細書において「ほぼ最大限に自由」とはハイパーセットについて一般的に使用可能なオブジェクトに関する制限の数が可能な限り少ない、すなわち最大限に多くの自由度が残されたままであることを意味している。しかしながら可能な限り多くの自由度が要求されるにもかかわらず所定の要因によって、例えば目標の半導体におけるモジュールの構築可能性によってこれらの制限は必要であることも考えられる；したがって「ほぼ」最大限に自由であるとしか表記しない。その他の点に関しては、特定のケースにおいてほぼ最大限に自由なハイパーセットは単に、しかしながら十分且つ多くのパラメータでパラメータ化可能なＰＡＥを有していれば良く、これらのパラメータからパラメータ化により相互に異なる多数のＰＡＥを導出できることを言及しておく。
高級言語プログラムに由来するハイパーセットを使用し、したがって従来技術に対し新規性がありまた発明性のある本発明によるやり方で生成されたこのプログラムに基づきさらなる改善を達成することができる。先ず、後にプログラムを実行するハードウェアにおいて、リコンフィギュラブルなフィールドで処理すべき他のほぼ全てのタスクに対してもプログラミング可能ないしコンフィギュレーション可能に使用することができる、一般的な目的のために設けられたエレメント、ハイパーセットから選択されたエレメント、またパラメータ化などによって完全にハードウェア構造において規定されたエレメントによって処理されるようにするためではなく、単独および／または一緒に、専用化によって特定され最適化された、もしくは最適化可能なハードウェア装置においてインプリメントされるようにするために複数のプログラム部分から所定のプログラム部分を選択することができる（図面において順番に右に向かう）。これに関して図２においてはプログラム部分ｆ（３）、ｆ（ｎ）、ｆ（ｎ−２）が選択されている。典型的にその種のプログラム部分は、ハイパーセットにおいて記述された、またはハイパーセットを用いて記述可能な、殊にパラメータ化により完全に記述可能なエレメント、例えばＡＬＵ−ＰＡＥ、グラフ多重化ＰＡＥ、機能ＰＡＥ、ＭＡＣ−ＰＡＥ、ＲＡＭ−ＰＡＥ、ＲＯＰ−ＰＡＥおよび／または入力・出力ＰＡＥの少なくとも部分的にコンフィギュレーション可能なセットからなる、ＸＰＰフィールドなどのための複数のコンフィギュレーションまたはコンフィギュレーション部分または単一のコンフィギュレーションでよい。インプリメントすべきモジュールの種類の選択を種々のやり方で行うことができる；ここでは単なる例として以下の可能性を挙げるが、本発明の実際に有利な実施形態においてはそれらの可能性のうちの１つのみが専ら使用されるのではなく、それらの可能性のうちの複数または全てを同時的または連続的なインプリメントのためにプログラム部分のハードウェアモジュールとして設けることが可能であり、また有利であることは明らかである：
−プログラム部分の手動の選択。このことは殊にプログラムコード内に適切なテキスト部分を挿入することによって、例えば制御記号を挿入することによって行うことができる；
−プログラムコード全体において殊に頻繁に現われる、および／または、実施されなければならないプログラム部分、もしくは製造すべきハードウェアにおいて相互に依存せずに実施されるべき複数のプログラムコードにおいて実施されると思われるプログラム部分の選択、すなわち実行時間および／または実行頻度に応じた選択；
−他のエレメントに比べて他の場合には単に弱いクロック周波数で実行可能であるか、より高いクロック周波数で実行可能であることを識別できるモジュール、すなわち性能にとって重要であることが明らかなプログラム部分；総じて所定のプログラム部分を所定のハードウェアの一部において実施できるようにするためにこの種のプログラム部分の選択は好適となる；
−選択されなければ製造すべきハードウェアにおける殊に大きな損失出力を生じさせる可能性があるパラメータ部分の選択；
−ハードウェアチップの殊に大きな面積を必要とすることになる可能性があるプログラム部分；
−殊にプログラムコードに基づいた（単独でも可能である）パラメータ化を実現する発見的な方法にしたがった選択。
−プロファイリングまたは同等の技術によるプログラム部分の選択；専用ハードウェアモジュールが別個に提供される部分、例えば上述のパラメータに関して該当する実施可能性、使用可能性などをソースコード分析に基づいて識別することができる。択一的および／または付加的に、必要に応じてプログラムの実行中にプロファイリングを行うことも可能である。例えば、どのプログラム部分、サブプログラム部分、コンフィギュレーション、コンフィギュレーション部分などが殊に頻繁に実行されるか、性能にとって重要であるか、面積に関して重要であるか、多数および／または長時間のメモリアクセスが必要であるか、種々のコンフィギュレーションにおいて殊に頻繁に使用されるかなどを分析することができる。その種のプロファイリングの利点は、複数のプログラムを呼び出す典型的な用途に関して、例えばサーバ、ラップトップまたはワークステーションにおける汎用プロセッサとしてのプロセッサの用途、一人の使用者または典型的な使用者に対して最適化されているプロセッサ、コプロセッサを規定できることにある。確かにこの種のプロファイリングはシミュレータにおいても実施することができるが、トップダウンアプローチの本発明による技術の特別な利点は、差し当たり既に高性能で、したがってリアルタイム条件が設定されたチップを使用できることであり、これがプロファイルを検出すべきユーザに妨害なく提供される。すなわち目標アーキテクチャを使用することにより、この目標アーキテクチャを性能損失なく、むしろクリティカルなパラメータに関した性能の改善のもとでどのように設計変更プロセスに可能な範囲で最善に使用できるかを識別することができる。所定のプログラム部分およびハードウェア部分の記述の定義の選択によって可変の回路を定義するために、ハードウェアモジュールの定義によって、後の所望のアーキテクチャに正確に対応する本明細書において記述する回路を除いた実際の目標アーキテクチャを基礎とするものもそれ自体で発明性があると見なされることを言及しておく；殊にこれに関して、および／または、その態様の一部に関して分割出願などの提出も準備されている。複数のプロファイルを中央ユニット、例えばプロセッサ製造メーカに伝送することによって、殊にインターネットを介して伝送することによって連続的な処理を改善できることを言及しておく。このことは例えば標準プログラムおよび他のプロセッサに対して使用することができる。
【００２５】
この関係においてその他の点については、プロファイリング毎に得られるデータに基づいて手動の選択が行えること、および／または、自動化された選択が行えることを言及しておく。
【００２６】
選択の際に専ら１つのパラメータだけを顧慮する必要はないことを言及しておく。むしろ、例えばファジーロジックの方法を使用することも考えられ、殊に適切な重み付けを用いて、および／または、非線形のやり方で上述の制御パラメータのうちの複数または全てを考慮することもできる。選択されたプログラム部分は差し当たり既知のハイパーセット内に存在するＰＡＥであり、これらのＰＡＥは前述のＰＡＥの他に、前述のＰＡＥの機能を組み合わせたものからなるＰＡＥ、すなわち、例えばパラメータ化可能なＡＬＵのセット、パラメータ化可能なビット幅、またパラメータ化可能な機能範囲を有するパラメータ化可能なまたはパラメータ化されたＰＡＥを有することができ、これらのＰＡＥには機能多重化エレメント、パラメータ化可能なエレメント、例えばビット幅に関してパラメータ化可能なエレメントおよび／または殊に１つまたは複数のＡＬＵからのポインタおよび／または命令制御線路を有するパラメータ化可能なメモリ領域、または、シーケンサないしマイクロプロセッサを実施するためのＰＡＥ内の他のデータ変更部分、入力・出力エレメントなどが属することができる。
【００２７】
さらにパラメータ化可能なハイパーＰＡＥの例は図面のうちの１つに示されている。そこでは種々のパラメータ化可能なユニット、例えばｍ個の入力側の備えたバス入力側が見て取れる。ここでｍはパラメータを表す。すなわちｍ個の異なるオペランドをＰＡＥに供給することができる。バスはそれぞれｋビット幅である。ここでｋはやはりパラメータを表す。またｎ個の異なるバスが設けられており、それらのバスのうちｍ個の異なる入力側がアクセスされる。バスの総数であるｎもパラメータを表す。ＰＡＥ内には例示的に種々のオペランド結合ユニットが示されており、図３の実施例においては組み合わされたネットワークを有する除算器、乗算器、ＡＬＵ段、ブールロジック、バレルシフト段（バレルシフタ）ならびに浮動小数点ユニットが示されている。前述のユニット自身もやはりパラメータ化可能であり、例えば８ビットレベル、１６ビットレベル、３２ビットレベルまたは６４ビットレベルまたは勿論その他のビットレベルでもよいオペランド幅に関してパラメータ化可能であることを言及しておく。さらには、例えばＡＬＵ、浮動小数点ユニットなどの機能範囲もパラメータを介して定義することができる。図面を明瞭にする理由から、所定のエレメント、省略されたエレメント、同じくハイパーＰＡＥにおいて設けることができるエレメント、例えばシーケンサユニット、機能多重ＰＡＥ（ＰＣＴ／ＥＰ０３／０９９５７を参照されたい）を設けてもよいことを言及しておく。殊にこの関係において、ＰＡＥのための種々の論理エレメント、例えばＦＰＧＡのような構造、ＳＩＭＤ−ＡＬＵなどが開示されている、本出願人の先行の特許文献を言及しておく。これらの特許文献の開示内容全体を本願の参考文献とする。
【００２８】
パラメータ化可能な機能範囲に関して、単なる例として浮動小数点ユニットはフローティングポイントユニットでよく、これはさらにパラメータ化可能な定義における以下の結合のうちの少なくとも１つ、有利には複数の結合を行うことができる：乗算、加算、減算、除算、浮動小数点結合、検査テーブル、必要に応じて例えばテイラー級数のための三角関数（正弦、余弦、正接）計算、逐次計算のような所定の関数のための補間可能性も用いる。所定の近似／補間のために特別なハードウェアを設けることができ、またさらに有利にはデータワード幅に関する浮動小数点ユニットの仮数および／または指数形式のパラメータ化も行うことができる。
【００２９】
その種のハイパーＰＡＥのためのパラメータ化可能なライブラリは例えば、いわゆるＩｆＤｅｆ構成が使用される構成を使用することができる。これは、相応の定義が例えばパラメータの設定、例えば機能範囲の設定によって行われている限り、（実際にチップ上に設けることができるハードウェア回路に）単なる翻訳の所定のプログラム部分を供する。このことは、ＰＡＥにおける種々のマルチプレクサ段、出力などのパラメータ化と同じように、異なる深さに設定することもできるコンフィギュレーションレジスタのようなハイパーＰＡＥの量およびエレメント、場合によってはＰＡＥにおいてインプリメント可能なプロトコル（ＲＤＹ／ＡＣＫ、クレジットプロトコル、ＲＤＹ／ＡＢＬＥを参照されたい）などに関しても可能であることを言及しておく。
【００３０】
電力消費、面積効率または実行性能のような予め選択されたクリティカルな判定基準のうちの幾つかの判定基準に関して所望の改善を達成するために、および／または、例えば性能の高さにとって決定的なプログラム部分において出力および／または面積が重要でない場合に、複数の領域のうちの少なくとも１つの領域における殊に大きな改善を場合によっては別の領域を改善しながら、もしくは別の領域を完全に無視しながら達成するために、有利な実施形態においては、有利には自動化された変換ステップ、および／または、部分的に自動化された変換ステップが実施される。これは図面においてＮＭＬ２Ｖと示されており、変換ステップを表す。この変換ステップにより選択されたプログラム部分について、必要に応じて選択理由を考慮して、ハードウェア言語記述が決定される。ハードウェアモジュールに関するプログラム部分が選択された状況を考慮して、ハイパーセットにおける１つまたは複数のエレメントに関して、同一の翻訳を発見することが可能である。すなわち、ＶＥＲＩＬＯＧのようなハードウェア記述コードへの変換の際にエラーが発生しないことが保証されており、このことは中間的に実行可能なシミュレーションステップによって確認することができ、これは望ましいことである。したがって、１つまたは複数の種々のコンフィギュレーションにおけるパラメータ化されたＰＡＥの相応の機能を有するハードウェア記述コード、例えばＶＥＲＩＬＯＧコードが差し当たり得られる。
【００３１】
ハードウェアモジュールをインプリメントするために使用されるプログラム部分を規定する際にハイパーＰＡＥを使用しても驚くべきことにハードウェアコードについてのコンバータにとって妨げとならないことが分かる。このことは、変換コンパイラのための本来のプログラムを決定する際に既に、パラメータ化可能な特性のうちの所定の特性、例えばＰＡＥのビット幅が確定されていなければならないが、他方では他の特性、例えば本来の機能範囲、すなわち例えばＡＬＵ−ＰＡＥ内に除算器段、乗算器段、加算器段および／または減算器段を設けるかはまだ確定しなくてよいということに理由がある。換言すれば、変換コンパイリングと同時にほぼ最大限に自由なハイパーセットがパラメータ化された、および／または、部分的にパラメータ化されたハイパー部分セットに縮小される。殊に低い自由度が設定されており、したがって修正の必要はない。例えばセルについてのバス幅を既に確定することができる；ＶＥＲＩＬＯＧコンバータなどに従うＮＭＬコンバータ、より一般的にはハードウェア言語記述作成コンバータには、既に確定されたパラメータ、例えば変換コンパイリングの際に確定されたパラメータが提供され、このことは例えばコメント行の形でのプログラム部分の相応の指示、および／または、本来のプログラム部分とは分けられた別個のデータを用いたプログラム部分の相応の指示によって行われることを言及しておく。したがって変換コンパイラはパラメータ化情報を形成するよう基礎となるハードウェアによって設計されている。従来のコンパイラとは異なり、ハードウェアを記述する、すなわち自由度を記述するコードも生成される。
【００３２】
ハードウェアモジュールを最適にインプリメントするべきプログラム部分はここでＰＡＥに関して確定されたパラメータを有しているだけでなく、それと同時に、ハードウェアモジュールへと変換されるべきプログラム部分内の所定のＰＡＥがどのコンフィギュレーションにおいて作動されるべきかが明らかである。このコンフィギュレーションにより、ＰＡＥの所定の部分は使用されないということが場合によっては直接的に分かる結果となる。これは例えば、確かに変換コンパイラには依然として他のプログラム部分のために浮動小数点ユニットを設けておく必要があるが、ハードウェアモジュールに変換すべき目下考察しているプログラム部分においては浮動小数点演算が必要ない場合である。ここでの考察のために（シーケンサのようなＰＡＥないしシーケンサのように動作するＰＡＥのために逐次的に処理すべき複数のコンフィギュレーションがＰＡＥ内に存在することができるということを言及しておく）確定しているコンフィギュレーションはしたがって、所定のユニットは必要とされず、また例えばオペランド結合段の後段に接続されており、どのオペランド結合ユニットがその１つまたは複数の出力を出力領域に供給するかを選択するマルチプレクサも不要または部分的に不要であることを明らかにできること示唆する。したがって通常の場合は、典型的なＰＡＥの複数のオペランド結合ユニットの後方に典型的に配置されているマルチプレクサを所定のハードウェアモジュールにおいて容易に簡略化することができる。ハイパーＰＡＥないしほぼ最大限に自由なハイパーＰＡＥのセットを使用してハードウェアモジュールを決定する際にマルチプレクサ段および／または完全なマルチプレクサユニットを除去してもそれ自体は発明と見なされる。実行すべきコンフィギュレーションにおける必要ないＰＡＥ内のエレメントの除去をＮＭＬ２Ｖコンバータによって、すなわち同型のハードウェア簡略化手段において行えること、および／または、必要ないものとして除去すべきハードウェアエレメントの選択を合成の過程においても行えることを言及しておく。その他の点においては、ハードウェアモジュールもしくはこのハードウェアモジュールに関する特定の部分においてコンフィギュレーションレジスタは必ずしも、より明瞭にするために例示的に示したような一定の値を維持する必要はないことを言及しておく。むしろ、ハードウェアモジュールに関して個々のエレメントの動作様式のウェーブ状の変更ないしリコンフィギュレーションおよび／または動作様式の制限された変更が例えばその上または下にあるデータ処理段に依存して必要である場合にはコンフィギュレーションレジスタ内に複数の考えられるコンフィギュレーションを格納することができる。このような事前に格納されたコンフィギュレーションのもとでの選択は本出願人による別の特許明細書に開示されており（殊に、しかしながら専らＰＣＴ／ＤＥ９８／００３３４（ＰＡＣＴ０８／ＰＣＴ）を参照されたい）、その開示内容全体を本願の参考文献とする。その他の点に関しては、トリガベクトルなどだけを伝送できるのではなく、必要に応じて、ハードウェアモジュール内および／または外部から相応に限定された機能範囲において、コンフィギュレーションデータとして作業指示（命令など）を理解できるデータ、および／または、殊にオペランド間でセットされている相応の指示を包含できるデータも直接的にユニットに伝送できることも言及しておく。その他の点に関して、定義されたハードウェアモジュール上では依然として自由に定義可能なコンフィギュレーションを処理可能であるようにハードウェアモジュールを定義することもでき、自由に定義可能なコンフィギュレーションは個々のエレメントにおいて低減された機能セットにアクセスする、および／または、そのように定義されたハードウェアモジュールの個々のエレメント間において、例えば多数のセルにわたり延びる包括的なバスコネクションの代わりに、直近の隣接セルとのコネクションにのみ関する制限されたコネクティビティを設けることができ、それにもかかわらず多次元のコネクティビティ、すなわち必要に応じて２次元を明らかに上回る次元のコネクティビティおよび／または環状コネクティビティ、また多次元の環状コネクティビティもインプリメントできることを言及しておく。
【００３３】
ＮＭＬＶ２コンバータのそのように有利には自動的に生成されるハードウェア記述コードが本発明の殊に有利なヴァリエーションにおいて最適化される。この最適化においては一方でパラメータ化されたＰＡＥにおけるそれぞれの機能に関して必要ないレジスタ、結合ユニットなどを取り除くことができるべきである；この関係において本出願人の先行の特許文献について言及しておく（ＰＣＴ／ＥＰ０３／０８０８０（ＰＡＣＴ３０／ＰＣＴＥ）およびＰＣＴ／ＥＰ０３／０８０８１（ＰＡＣＴ３３／ＰＣＴＥ）を参照されたい）。これらの特許文献においては、各ＡＳＩＣ構造のためのマスク構成を必要とすることなくＡＳＩＣ機能を備えたチップを問題なく構成できるようにするために、フィールドまたは単一のＰＡＥのコンフィギュレーションがヒューズ、すなわち溶断可能なエレメントなどを一度だけ使用することによって確定されることが提案されており、しかしながらこの公知のヴァリエーションにおいては必要のない機能エレメントがＡＬＵまたはＰＡＥの他のユニット内に残っている可能性がある。例えば、減算器、除算器、加算器および乗算器を包含するＡＬＵを備えたＰＡＥが加算器を使用するために固定的にコンフィギュレーションされた場合には、乗算器を形成するために使用されるシリコン面がそれにもかかわらず設けられなければならなかった。本明細書および本発明は殊に１つの態様によりこれを回避することを目標とし、このことは専用ハードウェア領域の大きさの低減、したがって必要に応じて実行速度にも寄与する。パラメータ化可能なハイパーＰＡＥおよび既に部分的にパラメータ化されたハイパーＰＡＥの相応の変更はリタイミング（Re-Timing）段において行われ、このリタイミング段において先ず不要なレジスタが除去される。レジスタの除去により先ずＰＡＥ定義の使用によって予めカプセル化された機能部分のカプセル化が解除される。しかしながらこのことは決してクリティカルではなく、それどころか逆に一連の適切でインテリジェントな構想においては非常に有利である。
【００３４】
これと共に本発明により提案される一連の構想は、従来技術において必要とされる煩雑なカプセル化の解除、例えば適切なプロトコル、例えばＲＤＹ／ＡＣＫプロトコルを介してのみ有意義に制御することができる入力・出力ＦＩＦＯおよび／またはレジスタによるカプセル化の解除を時代遅れのものにするインテリジェントな設計を内在的に含んでいる。このために例えば、先ず内部的なレジスタ、すなわち考察するセル間においてそれらの移行部に位置するレジスタが除去される。しかしながらレジスタの除去は全てのレジスタに対して隠れて行われるのではなく、むしろより正確には、除去することができるレジスタもしくはハードウェア部分内に残しておかなければならないレジスタの有利には容易に自動化された選択が行われる。ハードウェア部分内には差し当たり定数が残されるべきである。さらに、値をプレロードするためのレジスタ（ＰＲＥＬＯＡＤレジスタ）が除去されない場合には非常に有利である。別のレジスタは差し当たり所定の方法の実施においては必要とされない。
【００３５】
これは勿論装置全体のタイミング特性を変更する。ここで本発明によれば、それにもかかわらずレジスタを除去するが、考察するハードウェア部分を用いるデータ処理の正確な時間経過を保証するために合成ステップを実施することが提案される。したがって本発明によれば有利には合成ステップが実施される。このことは構成すべきハードウェアモジュールの入力／出力にも該当する。
【００３６】
適切なプロトコルによって、また適切なプロトコルに関して容易にバス固有のレジスタを使用でき、ＲＡＭ−ＰＡＥにおけるデータの供給／読み出しが可能であり、および／または、総じて必要とされる限りは、プレロードメモリにおけるデータの供給／読み出しを行うことができ、またはしかしながら、例えば十分に公知のＦＯＲＷＡＲＤ−ＢＡＣＫＷＡＲＤレジスタが他のＰＡＥによる利用のためにも提供されるべきでない限りは、ハードウェア部分の最後と最初に入力・出力レジスタを設けることも可能であることを示唆しておく。有利な実施形態においてはＲＡＭの一定の内容がＲＯＭによって実現される、もしくはその種のものにマッピングされる。
【００３７】
レジスタの除去はタイミング特性を変化させ、ここで考察する設けるべき回路の周波数特性を場合によっては著しく劣化させる可能性もある。これは適切な個所にレジスタを新たに使用することによって補償することができ、このレジスタは一定の規則にしたがい、例えば以前はより深いレジスタ段が設けられていた場所にそれよりも深くないレジスタ段を使用することによって配置されるか、しかしながらまたは、殊に有利には、周波数を高めるためにレジスタが必要とされる個所を識別するために、残存するハードウェア回路の信号伝播時間を考察することによって配置される。その種の方法自体は当業者であれば詳細な説明がなくとも実施することができる。
【００３８】
さらには、考察するソフトウェア部分は差し当たり平衡が維持されていると見なすことができる間は、通常の場合、ＰＡＥ内もしくはＰＡＥ間の種々のデータ処理機能領域間にレジスタ段を設けることなどによって平衡が維持される、または平衡の維持を行っても良いことに注意すべきである。レジスタを最初に除去することによって、所定の個所に一緒に接続しなければならないデータ処理経路の考えられる平衡維持または既に与えられている平衡維持が損なわれる。ここで後続のレジスタ挿入ステップにおいては、場合によっては要求される必要な周波数上昇のみが維持されるだけでなく、それと同時にデータ伝播時間の補償調整（平衡維持）も達成されるように既に再び設けられているレジスタを配置することが試みられる。すなわち、所定のデータ経路の平衡が相互に維持されていることが示唆されている、ハードウェアモジュールにすべきプログラム部分を必要に応じて備えたプログラム部分にのみ基づいたリタイミングによって、レジスタ挿入によるリタイミング手段における自動的な平衡維持が指示される。
【００３９】
リタイミングにおいては例えば別のことも考慮しなければならない：パラメータ化されている場合であっても、ハイパーＰＡＥは通常の場合、ハードウェアモジュールにおいて必要とされない機能を依然として有する。例えば、そもそも除算器が必要とされないプログラム部分に関してハードウェアモジュールが記述されることも考えられる。この場合、ＰＡＥ内に除算器段は不要である。除算は所定の遅延、すなわち構造群における伝播時間を必要とする。この伝播時間は加算段における遅延時間よりもはるかに長くなる。パラメータ化されたＰＡＥないしハイパーＰＡＥの最初に行われるデータ伝播時間補償により、除算段の伝播時間も考慮されていることになる。しかしながらハードウェアモジュールにおいては所定の個所に除算段はもはや必要とされない場合、このことは認識され、有利にはその種の必要とされないユニットをＰＡＥから除去することができる。これによりユニットを通過するデータの遅延が変化する。これに基づきハードウェアモジュールはリタイミングの際に適合されるべきである。しかしながら原則としてこのことは必ずしも必要でないことを言及しておく。複数のハイパーＰＡＥから構成されているハードウェアモジュールの個々の段の間において不要なレジスタ段が除去される場合には既に所期の利点が得られる；しかしながら有利なケースにおいては、前述の除算器段の除去のように、ハイパーＰＡＥからも不要な部分が除去され、このことは例えば合成の間に実施することができる。他の段、例えばメモリ段エレメント、乗算器、浮動小数点ユニットなども必要に応じて除去することができる。このこともまたリタイミングの際に考慮することができる。このために有利には合成が実施され、この合成により、必要な個所に自動的にレジスタを挿入するため、および／または、規則的なタイミング特性を保証するためにプログラマはどこにレジスタを挿入するべきかを指示するために、自動的にタイミング特性が分析される。
【００４０】
その他の点に関しては、前記において除算器段について言及したことを参照されたい。これに関して、またレジスタの除去可能性に関しては明示的に、しかしながら例示的に、プロトコルに関連するレジスタおよびデータ通信に関連するレジスタをモジュールまたはアレイ内に設けることができることを言及しておく；これらは差し当たり問題なく除去される。しかしながら除算では所定のレジスタが除去されるべきではない、および／または、レジスタを除去できないことが明らかである。ハードウェア内に設けることが可能な除算段が構成されるべき場合には除算を２つの方式に置換することができる。第１の可能性では、レジスタが必要とされない組み合わされたネットワークが設けられる。第２のヴァリエーションは、除算をマニュアルで計算するように値が反復的に何度も計算される逐次的な除算である。後者の場合には中間結果をレジスタに書き込む必要がある。このレジスタはアルゴリズム的に必要とされるので、リタイミングの際に除去されてはならない。除去しないことは例えば、変換コンパイラのコンパイルコードにおける本来的なプログラムのためには必要でないコメントでよい、ハイパーＰＡＥのハードウェア定義コードにおける指示によって取り決めることができる；択一的および／または付加的に、最初に除去し、後に再び挿入することができるヴァリエーションも考えられる。
【００４１】
したがって殊に有利なヴァリエーションにおいては、レジスタの除去の開始時にレジスタが自動的に除去されないようにするために、所定のレジスタがアルゴリズム的に必要であるか否かについてハイパーＰＡＥの特徴付けを行うことができる；択一的および／または付加的に、過剰なレジスタを除去する際に、データ上流側に位置する回路領域とのフィードバック部を備えたレジスタは除去されないという趣旨のもとで分析を行うことができる。この種のレジスタはすなわち自動的に、アルゴリズム的に重要なレジスタとなる。レジスタが対応付けられているアルゴリズムが実施されない場合には、アルゴリズム的に必要とされるレジスタであっても勿論除去できることを言及しておく；これは例えば、除算自体は構成すべきハードウェアモジュール内にインプリメントされていない場合に、ハイパーＰＡＥにおいて一般的に逐次的な除算が行われるケースである。その他の点に関しては、本出願により設けられた標準ＰＡＥにおけるフィードバックがバックワードレジスタによってインプリメントされていることを言及しておく。レジスタが実際に所定のプログラム部分において必要とされる限りは、このレジスタを除去しない、または検査なしで除去しない、および／または、完全には除去しないことは有利である。
【００４２】
リタイマにより必要に応じてレジスタが挿入される。原理的には、レジスタをハードウェアモジュール内の任意の個所において必要とされるように使用できることを言及しておく。殊に、専ら性能効率を考慮しなければならない場合には、ハードウェアモジュール内に設けられている（パラメータ化された）ハイパーＰＡＥ内のレジスタを使用することができる。しかしながら、除去すべきハードウェアモジュール内の複数のハイパーＰＡＥ間のインタフェースに、差し当たり除去されているレジスタないしレジスタの部分が再び挿入される場合にはレジスタ挿入の簡単な方法が得られることを言及しておく。その理由とは、その挿入個所において自動的に挿入を行えるようにハイパーＰＡＥの全体の出力定義全体が選択されていることにより、この個所においては最適な挿入を行うことができるからである。このことは相応の図面に示されている。図面においては、単に例示的にパイプライン状であり、単に例示的に分岐されていないハードウェアモジュールに関して、差し当たりレジスタがどのように除去されるかが示されている。それらのレジスタは「除去レジスタ」としてハッチングされて示されている。これらのレジスタはハードウェアモジュール記述のパラメータ化された形で使用されているハイパーＰＡＥでは入力／出力プロトコルレジスタ、すなわち例えばハイパーＰＡＥのＦＲＥＧ／ＢＲＥＧレジスタである。択一的に、ＦＲＥＧ／ＢＲＥＧレジスタを備えていないＰＡＥに、バスと接続されているＰＡＥにおけるオペランド結合のためのＡＬＵと論理エレメントの直接的な接続経路内にプロトコルレジスタとして設けられているレジスタのみを設けることも可能である。殊にＰＣＴ／ＤＥ９７／０２９４９（ＰＡＣＴ０２／ＰＣＴ）に開示されているＯＲＥＧおよびＲＲＥＧを参照されたい。ハッチングされて示されているレジスタの除去後に平衡の維持ないし所望の性能／面積効率／待ち時間を保証する新たに挿入されたレジスタは図面において点線で示されており、また「挿入レジスタ」もしくは、多段式のレジスタに関して「挿入ＦＩＦＯ」と表記されている。
【００４３】
予め定義されたハイパーＰＡＥ間へのレジスタ、ＦＩＦＯなどの図示されている挿入は構造的な設計を単純化するだけでなく、基礎となるエレメントの伝播時間特性などがレジスタ除去ステップないしリタイミングステップの際に十分に既知であると見なされることからハードウェア内に設けられている回路における遅延時間の検査および算出も容易にし、このことは場合によってはリタイミングタスクへの着手も容易にするということを再度言及しておく。さらに、以前に使用されていた基礎となる（パラメータ化された）ハイパーＰＡＥ間にレジスタを挿入することは殊に面積効率がよい。何故ならば、例えばハイパーＰＡＥにおける一般的なＡＬＵを使用する場合には、例えば殊に高い周波数を達成するためにその場所における挿入が容易に可能であるにもかかわらず複数のレジスタが必要とされるからである。さらにＡＬＵないしＰＡＥコア内の部分における有利な効果は殆ど生じない。
【００４４】
その他の点に関しては、ＸＰＰフィールドまたは他のリコンフィギュラブルなユニットフィールドに対して予定されている動作周波数とは異なる動作周波数で動作できるようにハードウェアモジュールを構成することは容易に可能であることを言及しておく。一方では周波数を低く選定する、例えば待ち時間だけ低減する、面積を縮小する、および／または、電力消費を低減することができる。例えば同様に設けることができるリコンフィギュラブルなプロセッサフィールドとは異なるトランジスタのゲート厚のようなハードウェア定義により電力消費を低減するために処理できることを完全性の理由から一緒に開示しておく。純粋に電流を低減することを考察する代わりに、所定のケースにおいてはハードウェアモジュールを所定の周波数に関して設計することも可能であり、このことはハードウェアモジュールを用いる殊に高いデータスループットが必要とされ、および／または、非常に多くの計算を要するタスクが処理されるべき場合には殊に有利である。
【００４５】
その他の点に関しては、使用すべき、もしくは新たに挿入された、または再び挿入されたレジスタ段またはＦＩＦＯ段は待ち時間に関して使用されるだけではなく、場合によってはレジスタを最初に除去することによって崩れたデータフロー経路の平衡を再び回復できることを言及しておく。差し当たりレジスタの除去後には平衡が維持されたデータ経路が自動的に存在しているが、場合によってはタイミング条件が遵守されないこともあることを言及しておく；付加的なレジスタを挿入することよって差し当たりタイミング特性が回復されるが、これによって個々のデータ経路間の平衡が崩れる可能性がある。しかしながらタイミング条件およびタイミング要求が回復された後にさらに平衡を維持するために、従来技術、殊に本出願人による平衡を維持するための技術を、殊に実行可能なコンフィギュレーションを算出するために例えばＮＭＬコンパイラ用のコンパイラ構造においても使用されるアルゴリズムを用いて容易に使用することができる。殊に特許文献ＰＣＴ／ＥＰ０２／１００６５（ＰＡＣＴ１１／ＰＣＴＥ）、ＰＣＴ／ＥＰ０２／０６８６５（ＰＡＣＴ２０／ＰＣＴＥ）、ＰＣＴ／ＥＰ０３／００６２４（ＰＡＣＴ２７／ＰＣＴＥ）、ＰＣＴ／ＥＰ２００４／００９６４０（ＰＡＣＴ４８／ＰＣＴＥ）を参照されたい。これらの特許文献には平衡を維持するための方法が開示されている。
【００４６】
リタイマからの出力はハイパーＰＡＥないしほぼ最大限に自由なハイパーセットのエレメントを使用することにより確実に実行できるハードウェアコードであり、このハードウェアコードはリタイミングによって周波数および／またはスループットが最適化されている。さらに自動的な面積最適化も行われる。ホストモジュールとしての新たなハードウェア領域のそのようにして得られた定義を［ＸＰＰ］ライブラリに加えることができる。そのようにして決定されたハードウェアモジュール機能をＸＰＰフィールド、またはより一般的にはリコンフィギュラブルおよび／または部分的にリコンフィギュラブルなエレメントのフィールドに集積するため、および／または、そのようなフィールドに接続するための複数の可能性が存在する。１つの可能性は例えば、中央機能としてＡＬＵまたは個々のシーケンサを有しているのではなく、ハードウェアモジュールの別個のハードウェア機能を有している完全なＰＡＥを設けることである。その種のＰＡＥにおいてＰＣＴ／ＥＰ０１／０８５３４（ＰＡＣＴ１４／ＰＣＴ）に提案されているように、フィールドの他のＰＡＥと同じような外に向かう幾何学また殊に端子幾何学が設けられる場合には殊に有利である。このことはフィールドの均一性が殆ど損なわれていないままであるという大きな利点を有する。択一的および／または付加的に、形状ファクタ（ＤＥ１０２  ３６  ２６９．６およびＤＥ１０２  ３８  １７２．０−５３（ＰＡＣＴ３６および３６Ｉ）を参照されたい）の相応の考慮を必要とせずに、別個のハードウェアモジュールが本来のフィールドの他にセットされることによって接続を達成することができる。一体的な製造を行うこと、および／または、部品を別個に製造し、続いてバスによって、ＲＡＭなどを介してリコンフィギュラブルなフィールドと通信させることも考えられる（ＳＯＣ技術などを参照されたい）。
【００４７】
接続の別の可能性は図面に示されている。
【００４８】
図５ａの左側にはＸＰＰフィールドまたはＦＰＧＡフィールドと本発明のハードウェアモジュールとの組合せが示されている。ハードウェアモジュールのフィールドへの接続は入力経路および／または出力経路内のＦＩＦＯメモリを介して行われ、有利にはＦＩＦＯを介して双方向で行われる。原則として、本発明のハードウェアモジュール間または各ハードウェアモジュール間にＦＩＦＯメモリを設けることによって、殊に処理速度に関して独立した構成および交番的なクロックなどを可能にする分離効果が得られる。
【００４９】
しかしながら、交換されるデータパケットに個々のワードそれぞれにおけるパケットヘッダまたは付加的な識別ビットの形の識別情報が付加される場合には殊に有利である。このようにして、ハードウェアモジュールおよび／またはＸＰＰモジュールないしＦＰＧＡモジュールを用いて、もしくは他のフィールドを用いて種々のタスクをマルチスレッド方式、ハイパースレッド方式、マルチタスク方式、タイムスロット方式または他の方式で実施し、ＦＩＦＯを介して生じる結合が比較的緩いにもかかわらず、交換されるデータパケットまたはデータワードが受信器において、すなわちハードウェアモジュールないしＸＰＰフィールドなどにおいて適切に処理されることも考えられる。
【００５０】
識別情報がハードウェアモジュールにおいて変更されないままである場合、および／または、処理結果を受信器、すなわち例えばＸＰＰフィールドに返送した後に所属のデータパケットが所定のやり方で処理されるように、例えばこの所属のデータパケットが適切なコンフィギュレーションを用いてさらに処理されることによって処理されるように変更される場合には既に有用であることを言及しておく。
【００５１】
しかしながら択一的および／または付加的に、例えば僅かにしか変更できないハードウェアモジュールにおいて、例えば逐次的なオペランドの加算または減算を実施するか否かなどを選択するために、純粋な識別情報の代わりに、および／または、識別情報に付加的に制御命令などを一緒に伝送することもできる。このようにして、自己修正されたコードにまで及ぶプログラミングの高いフレキシビリティを達成することができる。
【００５２】
図５ｂには、入力経路および／または出力経路内にハードウェアモジュールを接続するために、ＦＩＦＯとしてではなく、ＲＡＭメモリ、殊にそれどころかＲＡＭ−ＰＡＥとして構成されている複数の接続エレメントをどのように設けることができるかが示されている。これにより殊に、ハードウェアモジュールに関するフィールドからのデータの書き込みのため、またフィールドに関するハードウェアモジュールによる書き込みの際にも、すなわち一方ではデータをフィールドからハードウェアに伝送する場合、他方ではハードウェアモジュールからフィールドに結果を戻す場合にそれぞれ専用メモリ領域を設けることができる。これにより一方では種々のコンフィギュレーションを用いる処理が容易になり、他方では例えば専ら、また有利には第１のメモリ領域において処理される、すなわち読み出され書き込まれることによって、また第１のメモリ領域において十分頻繁にデータ処理が行われている場合、および／または、この第１のメモリ領域にデータは存在しない場合にのみ別のメモリ領域、したがって別のタスクが使用されることによって優先付けが実現される。
【００５３】
その他の点に関しては、ＸＰＰフィールドからのデータ入力およびＸＰＰフィールドへの結果伝送が問題となるところでは、ハードウェアモジュールがＸＰＰフィールドをフレキシブルなデータ処理エレメントとして使用できることによって逆の経過も考えられること、および／または、混合形態が可能であるところでは、すなわちデータが全体の処理に関してピンポンのように、またはあまり規則的でないやり方で往復するように移動されることを言及しておく。
【００５４】
図６ａは１つのヴァリエーションを示す。このヴァリエーションにおいてはやはりデータがＦＩＦＯメモリを介して交換され、また殊に少なくとも入力経路内にＦＩＦＯメモリが存在するか、有利には出力経路内にもＦＩＦＯメモリが存在する。これに付加的に、ここではトリガベクトルが伝送される。トリガベクトルの意味および用途に関してはＷＯ９８／３５２９９（ＰＡＣＴ０８／ＰＣＴ）を参照されたい。所定のデータ処理またはプロセスをトリガするために交換されるトリガ情報ないし状態情報および／またはプログラミング情報と識別情報との組合せについてもここで再度明示的に言及しておく。
【００５５】
図６ｂにはデータ交換の際に「タイムスタンプ」、すなわちデータパケットの優先順位ないし時間妥当性が一緒に伝送されることが示されている；図６ｂに示されているケースにおいてはリードライトメモリ（ＲＡＭ）にこのタイムスタンプが伝送される。一緒に伝送されるタイムスタンプを、後続のものとして処理が実行されるべきデータパケットを選択するために使用することができる。
【００５６】
このようにして、データ処理の殊に好適な制御が実現されることを言及しておく。データフローの処理の際にタイムスタンプがデータワードまたはデータパケットと共に送信される本来的な構成は既にＷＯ０２／０７１２４９に開示されている（ＰＡＣＴ１８／ＰＣＴＥ、Ｍｅｔｚｇｅｒプロトコル；ｂｕｔｃｈｅｒプロトコル）。特許文献ＷＯ０２／０７１２４９全体を参照により本願の参考文献としているが、タイムスタンプのデータパケットへの対応付けにより、後の任意の時点においてデータの順序を再構成する、および／または、再び確立すること、さらにはオペランドを必要とされるように相互に結合できるということを明示的に言及しておく。このことはオペランドを供給する分岐が待ち時間に関して平衡を維持している場合に殊に有利である。
【００５７】
図６ｂに関してはＷＯ０２／０７１２４９（ＰＡＣＴ１８／ＰＣＴＥ）を参照しており、他の図面に付いても同様に、図５ａに関してはＷＯ０２／０７１２４８（ＰＡＣＴ１５／ＰＣＴＥ）およびＷＯ０２／０７１１９６（ＰＡＣＴ２５／ＰＣＴＥ）を参照しており、図５ｂに関してはＷＯ０２／０７１１９６（ＰＡＣＴ２５／ＰＣＴＥ）およびＷＯ９８／２９９５２（ＰＡＣＴ０４／ＰＣＴ）を参照しており、ならびに図６ａに関してはＷＯ９８／３５２９９（ＰＡＣＴ０８／ＰＣＴ）およびＷＯ０２／０７１１９６（ＰＡＣＴ２５／ＰＣＴＥ）を参照していることを言及しておく。またこれらの文献の全範囲を参照により本願の参考文献とする。
【００５８】
その他の点に関して、本明細書において説明および開示した複数の結合方法は、例えばタイムスタンプなどを並行して一緒に伝送しながらＲＡＭ−ＰＡＥにＦＩＦＯを前置接続することによって組合せられることを言及しておく。
【００５９】
ハードウェアモジュールの物理的な接続可能性に関しては、これらのハードウェアモジュールがＸＰＰまたは他のプロセッサフィールドの内部バスシステムへの包含によって接続可能である、および／または、必要に応じて束ねられた外部の入力／出力線路を介して接続可能であるということを言及しておく。例えば超細粒度フィールドにおいてハードウェアモジュールの接続を維持するために個々の複数の入力線路／出力線路をバスに統合するための可能性を言及しておく。この関係においてＷＯ０２／２９６００（ＰＡＣＴ２２ａＩＩ／ＰＣＴＥ）ならびに優先権に関してこれと関連する並行する保護権を参照されたい。これらの開示内容全体を本願の参考文献とする。
【００６０】
図８には、ＸＰＰフィールドまたは他のフィールドにおける本発明のハードウェアモジュールまたはハードウェア部分の空間的な配置に関して、これらのハードウェアモジュールまたはハードウェア部分が列または行としてフィールの縁側に設けられることが示されている。勿論、必要に応じてその種のハードウェアモジュールまたはハードウェア部分によってフィールドを包囲することもできる、および／または、図８の左下に示されているように、個々のエレメントまたはフィールドグループをフィールドにわたり分散させることができる。択一的に、本発明によるハードウェアエレメントおよび／またはハードウェアエレメントのグループをＸＰＰフィールドまたは他のフィールドの隣に配置してもよい、もしくは、相応の製造プロセスによって、そのフィールドの上または下に配置してもよいことを言及しておく。共通して製造された単一のチップ上に集積することによる有用性は、別個のエレメントを別々に製造して接続することと同様の可能性を表す。本発明のハードウェアモジュールが中間に配置されている列を形成し、縁側の列、辺縁および／またはフィールド内に設けられているエレメントを表すことによりそれらのハードウェアモジュールが密にフィールドと結合されているヴァリエーションにおいては、その配置が内部バスを介して接続されており、他方フィールドの隣の配置においてはＩ／Ｏ端子を介する接続が好適であると解される。縁側の配置においては択一的にＩ／Ｏポートおよび／または内部バスを介する接続を行うことができる。必要に応じて、フィールドエレメント間に配置されているハードウェアエレメントを越えてバス線路または他の線路を延ばせることも言及しておく。フィールド内に配置されるハードウェアエレメントを別個の線路によって必要とされるように接続することもできる。その他の点に関しては列での配置が明らかに有利である。本発明のハードウェア部分を有するデータ処理ユニットが何のために使用されるべきかに依存して、列の縁側の配置または中間の配置が好適である。
【００６１】
有利なヴァリエーションにおいては、一方では滞ったデータ処理タスクを迅速且つ効率的に解消できるように、他方ではフィールド内またはフィールド上に使用する際に形状ファクタが考慮されるように、ハードウェアモジュールの数は選択される。
【００６２】
この関係においてその他の点に関しては、必要に応じて本発明のハードウェアモジュールはフィールドと密に接続されている場合であっても付加的に、メモリなどのような外部のエレメントと通信するための固有のＩ／Ｏ端子を有することができることを言及しておく。
【００６３】
その他の点に関して図９によれば、本発明のハードウェアモジュール相互間および／またはハードウェアモジュールとフィールドエレメント部分との間を接続することができる。フィールドエレメントは永続的に固定的なものであるが、択一的に有利には単に一時的に構成されているものである。階層的に整理されているバスシステムが接続可能および／または取り外し可能な包括的なバス線路を許容する場合、このことは殊に容易に行える。バス線路の接続ないし取り外しに関しては、その全体を本願の参考文献とするＷＯ９８／３５２９４（ＰＡＣＴ０７／ＰＣＴ）を参照されたい。
【００６４】
専用チップを製造するためのマスクを構成する前に必要に応じてエミュレーションを使用できることを言及しておく。ＦＰＧＡを備えたハードウェア部分がエミュレートされる。小さいＦＰＧＡフィールドを表すことができるＰＡＥが設けられているＸＰＰフィールドを構成することは本出願人により既に提案されていることを言及しておく。複数のその種のＦＰＧＡ−ＰＡＥを適切に接続／結線することによって、必要に応じてハードウェア構造をエミュレートすることができる。ＦＰＧＡ−ＰＡＥを備えている適切に設計されたＸＰＰテストチップによって、パーソナライズされた設計ないし顧客固有の設計の検証ないしエミュレーションをエミュレートすることができる。
【００６５】
前記においては、単に例示的に直線状に並べて配置されている、適切なやり方でパラメータ化され規定されるハイパーＰＡＥによってハードウェアモジュールを構成できることを記述したが、これは必ずしも必要ではない。プログラム部分における各オペランド結合に固有のＰＡＥを対応付けずに、線形の処理を行うことは有利である。むしろ殊に非常に複雑なプログラム部分の場合、ハードモジュールにおいて実行することができる複数の異なるコンフィギュレーションにプログラム部分が再び分解されることも考えられる。そのようなケースにおいては、１つの所定の部分はプログラム部分を２つのコンフィギュレーションに分解するために有利であることが確認される。このような部分をどのように配置することができるかに関する手法自体は公知である。殊にＰＣＴ／ＥＰ０２／１００６５（ＰＡＣＴ１１／ＰＣＴＥ）を参照されたい。その種の構成が所望される場合、典型的には、所望の箇所における機能範囲が異なるコンフィギュレーションによって実施されたオペランド結合、もしくは実施することができるオペランド結合の統合セットなどにそれぞれ対応するようにハードモジュールの機能範囲が選択される。必要に応じて、マルチコンフィギュレーションハードモジュール定義においては、ハードモジュール内に固定的に設けられている固定コンフィギュレーションを設けることができることを言及しておく（ＰＣＴ／ＥＰ０３／０８０８０（ＰＡＣＴ３０／ＰＣＴＥ）を参照されたい）。
【００６６】
さらには、有利には複数のコンフィギュレーションがハードモジュール上で逐次的に処理されるべき場合に、パラメータ化によってすなわちハイパーＰＡＥのパラメータの規定によって維持される個々のハードモジュール領域の機能範囲は、それぞれの計算ユニットが個別に見て依然として最小の機能範囲を有するように選択されることを言及しておく。このことは場合によっては、各コンフィギュレーションにおいてただ１回の乗算が必要である場合には常に同一のＰＡＥ内で乗算が実施され、また他のＰＡＥにおける乗算段の代わりに、場合によっては僅かな面積負荷でのデータフィードバックまたはデータ供給のために必要とされ、所定のコンフィギュレーションによって呼び出されるデータ線路が殊にここでもまた直近の隣接するものとのコネクションとして実施されるべき線路としてインプリメントされるように、分割されるコンフィギュレーションが実施されることによって行うことができる。
【図面の簡単な説明】
【００６７】
【図１】従来技術による構成を示す。
【図２】本発明によるハードウェアの作成およびプログラミング方法を示す。
【図３】パラメータ化可能なＰＡＥの実施例を示す。
【図４】レジスタの挿入および除去に関する実施例を示す。
【図５ａ】ハードウェアモジュールとフィールドの接続に関する実施例を示す。
【図５ｂ】ハードウェアモジュールとフィールドの接続に関する別の実施例を示す。
【図６ａ】ハードウェアモジュールとフィールドの接続に関する別の実施例を示す。
【図６ｂ】ハードウェアモジュールとフィールドの接続に関する別の実施例を示す。
【図７】ハードウェアモジュールとフィールドとの間の通信に関する実施例を示す。
【図８ａ】フィールドにおけるハードウェアモジュールの配置に関する実施例を示す。
【図８ｂ】フィールドにおけるハードウェアモジュールの配置に関する実施例を示す。
【図８ｃ】フィールドにおけるハードウェアモジュールの配置に関する実施例を示す。
【図８ｄ】フィールドにおけるハードウェアモジュールの配置に関する実施例を示す。
【図９】ハードウェアモジュールとフィールドの接続に関するさらに別の実施例を示す。
【図１】
2009524134.tif 000003
【図２】
2009524134.tif 000004
【図３】
2009524134.tif 000005
【図４】
2009524134.tif 000006
【図５ａ】
2009524134.tif 000007
【図５ｂ】
2009524134.tif 000008
【図６ａ】
2009524134.tif 000009
【図６ｂ】
2009524134.tif 000010
【図７】
2009524134.tif 000011
【図８ａ】
2009524134.tif 000012
【図８ｂ】
2009524134.tif 000013
【図８ｃ】
2009524134.tif 000014
【図８ｄ】
2009524134.tif 000015
【図９】
2009524134.tif 000016
【国際調査報告】
2009524134.tif 000017
2009524134.tif 000018
2009524134.tif 000019
2009524134.tif 000020
2009524134.tif 000021
2009524134.tif 000022
2009524134.tif 000023
2009524134.tif 000024
2009524134.tif 000025
2009524134.tif 000026