[go: up one dir, main page]

JP2004506261A - パイプラインctプロトコルおよびct通信 - Google Patents

パイプラインctプロトコルおよびct通信 Download PDF

Info

Publication number
JP2004506261A
JP2004506261A JP2002517618A JP2002517618A JP2004506261A JP 2004506261 A JP2004506261 A JP 2004506261A JP 2002517618 A JP2002517618 A JP 2002517618A JP 2002517618 A JP2002517618 A JP 2002517618A JP 2004506261 A JP2004506261 A JP 2004506261A
Authority
JP
Japan
Prior art keywords
pae
configuration
subconf
reconfiguration
filmo
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002517618A
Other languages
English (en)
Inventor
マルティン フォアバッハ
フォルカー バウムガルテ
ゲルト エーラース
フランク マイ
アルミン ニュッケル
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.)
PACT XPP Technologies AG
Original Assignee
PACT XPP Technologies AG
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=26006024&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2004506261(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from DE2000128397 external-priority patent/DE10028397A1/de
Application filed by PACT XPP Technologies AG filed Critical PACT XPP Technologies AG
Publication of JP2004506261A publication Critical patent/JP2004506261A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Logic Circuits (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)

Abstract

本発明は効率的なコンフィギュレーションおよびリコンフィギュレーションのための包括的な方法に関する。この場合、たとえばランタイムにおよびデータ処理中にも、機能や配線を変更可能なモジュールの集合体を1つまたは複数の互いに通信し合うコンフィギュレーションユニットを用いて効率的にコンフィギュレーションおよびリコンフィギュレーションする。その中心を占めるのは、複雑な技術的変換における正確な構成である。これには状態オートマトン、コンフィギュレーション構造、リコンフィギュレーション実行ならびにそのつど必要とされるプロトコルの記述が含まれる。重要な特徴は、互いにオーバラップもしている絶え間ないリコンフィギュレーションを、殊にデータ処理のブロックや誤機能が発生することなく行えることである。

Description

【0001】
本発明は、1つまたは複数のリコンフィギュラブルコンポーネントをそれぞれ1つまたは複数のコンフィギュレーションユニット(CT)により高い頻度で効率的にコンフィギュレーションおよびリコンフィギュレーションできるようにした方法に関する。この場合、複数のCTを制御するために効率的であり同期のとれた結合網をどのようにして構築できるかについて説明する。
【0002】
コンポーネントもしくはセルという概念には、古典的なFPGAセル、バスシステム、メモリ、さらにALUやプロセッサの計算機構などのようなペリフェラルが含まれる。これに関しては同じ出願人/被譲渡人の定義を参照されたい。殊に、どのような形式のコンフィギュラブル素子やリコンフィギュラブル素子でも、基本的に「コンポーネント」とする。並列コンピュータシステムについてコンポーネントとは、あらゆる機能(たとえば計算機能、記憶機能およびデータ伝送機能)のすべてのノードとすることができる。
【0003】
これから説明する方法はたとえば、1次元または多次元に配置されダイレクトにまたはバスシステムを介して相互接続された複数のコンポーネントを有する集積モジュールに適用することができる。ここでモジュールという概念として挙げられるのは、シストリックアレイ、ニューラルネットワーク、マルチプロセッサシステム、複数の計算機構とロジックセルを備えたプロセッサ、さらにはFPGA,DPGA,XPUTERなどの概念におけるモジュールなどである。
【0004】
以下の説明では、計算機構やバスシステムを任意にコンフィギュレーション可能なアーキテクチャをもつモジュールについて説明する。このアーキテクチャは DE 4416881 ならびに PACT02,PACT08,PACT10,PACT13にすでに開示されており、以下ではVPUと称する。このアーキテクチャは任意の算術、ロジック(メモリ)または通信(IO)用のセル(PAE)から成り、これらのセルを1次元または多次元のマトリックス(PA)となるよう配置することができ、その際、マトリックスは任意に構成された様々なセルを有することができ、ここではバスシステムもセルであるとする。このマトリックス全体またはその一部にコンフィギュレーションユニット(CT)が割り当てられており、このユニットはPAの結合網形成ならびにその機能に作用する。
【0005】
VPUの格別な特性は、デッドロックのない自動的なランタイム時の再コンフィギュレーションである。そのために必要とされるプロトコルならびに方法は PACT04,05,08,10,13によって知られており、これらを本出願の参考文献とする。これらの社内書類整理番号に対する刊行物番号は付録に示されている。
【0006】
1.PAEの基本状態とコンフィギュレーションのバスプロトコル
各PAEには、コンフィギュラビリティに作用する状態が割り当てられている。この状態がローカルにコーディングされるのか、あるいは1つのまたは複数のスイッチ機構たとえばCT自体によって管理されるのかは、ここではたいした問題ではない。PAEは少なくとも2つの状態を識別する:
「未コンフィギュレーション」 ”not configured”
この状態ではPAEは非アクティブであり、データおよび/またはトリガを処理しない。殊にいかなるデータおよび/またはトリガも受け入れず、また、データおよび/またはトリガの発生も行わない。この場合にはコンフィギュレーションに関連するデータおよび/またはトリガだけしか受け取れない/または処理できない。PAEは完全にニュートラルであり、コンフィギュレーション可能である。とはいえこの状態において、たとえばCTにより処理すべきデータおよび/またはトリガのためのレジスタを初期化できることを述べておく。
【0007】
「コンフィギュレーション済み」 ”configured”
この場合、PAEの機能と結合網がコンフィギュレーションされている。PAEはデータおよび/またはトリガを処理し、また、処理すべきデータおよび/またはトリガを生成する。
【0008】
これらの状態を、1つのPAEにおける独自の部分に互いにまったく無関係にいくつも含ませることもできる。
【0009】
以下の記載において、処理するためのデータおよび/またはトリガと、1つまたは複数のコンフィギュレーションのためのデータおよび/またはトリガとについてここで触れた区別が、前後関係から明らかであるかぎり、この区別を一貫して明示的に述べることはない。
【0010】
CTはコンフィギュレーションにあたり有効なコンフィギュレーションワード(KW)とともに、有効性を示す信号(RDY)を送信する。たとえば連続的な送信であったりKW内でのコーディングのときのように他のやり方で有効性が保証されているならば、これを省略することができる。さらに一般にはKW内において、コンフィギュレーションすべきPAEのアドレスがコーディングされる。
【0011】
PAEはあとで引用する出願に記載されている基準に従い、KWを受け入れてそのコンフィギュレーションを変更することができるか否か、あるいはデータ処理を新たなコンフィギュレーションによって中断させたり誤らせてははなないか否か、について判定する。いずれにせよ、この判定がまだCTにおいて行われていなければ、コンフィギュレーションが受け入れられるか否かの情報がそこへ伝送される。この場合、以下のプロトコルが考えられる:PAEがコンフィギュレーションを受け入れると、PAEは受領確認ACK(acknowledge)をCTへ送信する。コンフィギュレーションが拒否されると、PAEはREJ(reject)の送信によりそのことを知らせる。データ処理されたエレメント(PAE)内でそのエレメントは、データ処理が終了したので再コンフィギュレーションを行えるか否か、またはそれがまだデータを処理しているのか否か、について判定する。しかもコンフィギュレーションされていないPAEによって、いかなるデータも変造されない。
【0012】
2. デッドロックからの解放ならびにデータの正確さ
2.1 FILMO方式
さて、ここで重要なのは多数のコンフィギュレーションの効率的な管理である。これら多数のコンフィギュレーションはそれぞれ1つまたは複数のKWおよび場合によっては別の制御命令から成り、オーバラップしてPAにコンフィギュレーションすることができる。これはCTとたとえばコンフィギュレーションすべきセルとの間に大きな間隔の存在することが多いからであり、このことはコンフィギュレーションの伝送にあたり不利となるからである。同時にこのテクノロジーによって保証されるのは、リコンフィギュレーションによっていかなるデータまたは状態も変造できないからである。この目的でFILMO方式と呼ばれる以下の規則が定義される:
a)目下データを処理しているPAEは再コンフィギュレーションされない。再コンフィギュレーションは、データ処理が完全に終了したときかまたは他のデータ処理がもはや不要であることが保証されているときにはじめて行われるようにする(説明:目下データを処理しているPAEまたはまだ未着のデータを待っているPAEの再コンフィギュレーションによって、データの誤った計算やデータの損失が生じてしまう)。
【0013】
b)PAEのステータスはFILMOプロセス中、「コンフィギュレーション済み」から「未コンフィギュレーション」へ変えないようにする。次にこの方法に加えてPACT10によれば、例外を許可する特別に加えられた方法が記載されている(明示的/暗黙的ロック)。これには以下のような事情がある:SubConfを、所定の時点もしくは所定の目的で共通にセルアレイにコンフィギュレーションすべきコンフィギュレーションワードの集合とする場合、2つの異なるSubConf(A,D)が同じリソースたとえばPAE Xを分け合うことになる状況の発生する可能性がある。SubConf Aはたとえば時間的にSubConf Dの前にある。したがってSubConf AはSubConf Dの前にリソースを占有しなければならない。さて、ここでPAE XがSubConf Aのコンフィギュレーション時点ではまだ「コンフィギュレーション」されているが、SubConf Dのコンフィギュレーションの前にステータスを「未コンフィギュレーション」に変える場合、特別な措置をとらなければデッドロック状況の発生する可能性があり、つまりこのときSubConf AはPAE Xをもはやコンフィギュレーションできず、SubConf DはたとえばPAE xだけを占有するが、残りのリソースはすでにSubConf Aに占有されておりもはやコンフィギュレーションできない。この場合、SubConf AもSubConf Dも実行できない。そこでデッドロックが発生してしまう。
【0014】
c)SubConfは、後続のSubConfがコンフィギュレーションされる前に、それに属するすべてのPAEを首尾よくコンフィギュレーションまたはアロケートしたものとする。ただしこれが成り立つのは、両方のコンフィギュレーションが完全にまたは部分的に同じリソースを共有しているときだけである。この場合、リソースコンフリクトはなく、両方のSubConfを互いに無関係にコンフィギュレーションすることができる。SubConf PAEにおいてコンフィギュレーションが拒まれても(REJ)、後続のSubConfのコンフィギュレーションが実行される。PAEのステータスはFILMOプロセス中は変化しないので(セクションbによるロック)、先行のコンフィギュレーションにより必要とされたPAEは後続のコンフィギュレーションにおいてはコンフィギュレーションされないことが保証される。説明:コンフィギュレーションすべき後続のSubConfが先行してコンフィギュレーションすべきSubConfのPAEに割り当てを行ったならばデッドロックが発生してしまう。なぜならばSubConfをもはや完全にはコンフィギュレーションできないからである。
【0015】
d)1つのSubConf内において、所定のPAEを所定の順序でコンフィギュレーションしたり開始したりすることが必要とされる可能性がある。説明:PAEはたとえば、バスもやはりSubConf用にコンフィギュレーションされた後にはじめて、そのバスへの接続が許可される。未知のバスへの接続によって誤ったデータの処理が引き起こされてしまう。
【0016】
e)特定のアルゴリズムでは、SubConfのコンフィギュレーションの順序がCTに到来するトリガの順序ときちんと一致していなければならない場合もある。たとえばSubConf1のコンフィギュレーションをトリガするトリガがSubConf3のコンフィギュレーションをトリガするトリガよりも前に到来したならば、SubConf1が完全にコンフィギュレーションされてからSubConf3のコンフィギュレーションが許可される。トリガの順序を取り違えてしまうと、アルゴリズムによってはこのことでサブグラフ(SubConf、PACT13参照)の誤った順序が生じてしまう。
【0017】
上述の要求の多くまたはすべてを十分に満たす方法は、PACT05およびPACT10から既知である。
【0018】
しかしながらコンフィギュレーションの管理、そのタイミング、対応する構成要素たとえばコンフィギュレーションレジスタなどの配置や構成は既述の技術の基礎として示されたものであって、それゆえ実現可能な従来技術の改善についてさらに検討しなければならない。
【0019】
本発明の課題は、産業上の利用のための新たな構成を提供することにある。
【0020】
この課題は独立請求項に記載の構成により解決される。従属請求項には有利な実施形態が示されている。
【0021】
必要に応じて要求e)を保証する目的で、SubConfもしくはセルおよび/またはリコンフィギュレーションの可能性についての状態に関連する到来トリガが、たとえばCTに対応づけられた簡単なFIFOによって適正な順序で記憶されるように構成されている。各FIFOエントリには1クロックで到来するトリガが含まれており、たとえば1クロックで到来するすべてのトリガを記憶することができる。トリガが発生しなければFIFOエントリも発生しない。CTはFIFOを到来するトリガの順序で処理する。1つのエントリに複数のトリガが含まれているならばCTは選択的に、i)優先順位を付けてii)優先順位を付けずに、まずはじめにトリガを個別に処理してから、次のFIFOエントリを処理する。1つのトリガは一般にコンフィギュレーションごとに1回しかCTに送られないので、FIFOの最大深さをCTに結線されている全トリガラインの量に合わせてセットすれば通常は十分である。択一的な方法として、PACT18によるタイムスタンププロトコルを適用することもできる。
【0022】
PACT10により基礎を成す2つのFILMO方式が知られている:
分離されたFILMO:このFILMOは別個のメモリとして構成され、SubConfをキャッシュする通常のCTメモリとは分離されている。PAにコンフィギュレーションされなかったKWだけがFILMOにコピーされる。
【0023】
統合されたFILMO:FILMOはCTメモリに統合されている。コンフィギュレーションされなかったKWはフラグとポインタにより管理される。
【0024】
以下で説明する本発明による方法は、両方のFILMO方式にも適用できるし特定の1つの形式にも適用可能である。
【0025】
2.2 差分コンフィギュレーション
多くのアルゴリズムにおいて有用であるのは動作中、トリガまたは時間的整合によって表される特定の結果に基づき、PAEのコンフィギュレーションが完全に消去されることなく、コンフィギュレーションの変更を最小限だけに留めることである。たいていの事例ではこれはバスシステムの結線あるいは特定の定数に該当する。たとえば1つの定数だけしか変更されることにならないのであれば、該当するPAEのステータスを「未コンフィギュレーション」にすることなくKWをそのPAEに書き込めるようにするのが有用である。これによって伝送すべきコンフィギュレーションデータの量が低減され、それゆえ有利である。このことは「差分リコンフィギュレーション」というコンフィギュレーションモードによって達成できる。この場合、KWにはその書き込みのとき、符号化されたかたちでまたは明示的に情報DIFFERENTIALが含まれている。DIFFERENTIALによって、KWをコンフィギュレーション済みのPAEに送るべきであることが示される。差分コンフィギュレーションの受け入れならびに受領確認は、通常のコンフィギュレーションとは正反対である:コンフィギュレーションされたPAEはKWを受け入れてACKを送信する。コンフィギュレーションされていないPAEはKWの受け入れを拒否してREJを送信する。それというのもDIFFERENTIALのための前提条件はコンフィギュレーション済みのPAEだからである。
【0026】
差分リコンフィギュレーションを実施する様々な可能性がある。一方では、実際にたとえば1つのセル内で進行するデータ処理プロセスを考慮することなく差分リコンフィギュレーションが強制される。この場合にはデータ処理との精確な同期合わせを保証するのが望ましく、このことはプログラムの相応の設計や構成によって行うことができる。しかしプログラマからこの仕事の負担を減らすため、差分リコンフィギュレーションを他のイベントたとえば別のセルまたは局所的に再コンフィギュレーションすべきセルにおける特定の状態の存在に依存させることもできる。したがって殊に有利な変形実施形態は、コンフィギュレーションデータたとえば差分コンフィギュレーションデータをセル内においてまたはセルのところでたとえば専用レジスタに記憶し、特定の状態に依存してレジスタ内容を呼び出したりセルに読み込んだりすることである。これはたとえばマルチプレクサの切り替えなどによって行うことができる。
【0027】
また、以下で説明するウェーブ・リコンフィギュレーションの方法も適用することができる。場合によっては、差分コンフィギュレーションを事前に正常に実行されたコンフィギュレーションの首尾(ACK/REJ)に依存させるのも有用である。換言すれば、差分コンフィギュレーションは先行の差分でないコンフィギュレーションに対するACKの到来後にのみ実行される。
【0028】
差分コンフィギュレーションの同期合わせに関する格別有利な変形実施形態を一般に適用可能であり、しかもこれを種々の差分コンフィギュレーションを実際にどれだけ必要とするのかに依存して適用可能である。これは次のようにして実現される。すなわち差分コンフィギュレーションをローカルにまえもって記憶するのではなく、一番目のセルによって特定の状態たとえばデータ入力終了等が識別されたことに応じて、差分的に再コンフィギュレーションすべきセルを停止する信号が生成される。この種の信号をストップ信号とすることができる。差分的に再コンフィギュレーションすべきセルにおけるデータ処理の後またはそれと同時に、停止されたセルの差分再コンフィギュレーションを要求する信号がCTへ送信される。差分再コンフィギュレーションに対するこの要求信号は殊に、ストップ信号も発生するいずれのセルからも生成可能であり送信可能である。その後、CTは差分リコンフィギュレーションに必要とされるデータを停止されたセルへ送信し、そのようにして差分リコンフィギュレーションを生じさせる。差分リコンフィギュレーション後、ストップモードが中止される。これをたとえばCTによって指示することができる。なお、差分コンフィギュレーション方法においてキャッシュ技術を使用できることも付言しておく。
【0029】
3.トリガの役割
VPUモジュールにおいて、あとで例として挙げるような簡単な情報を伝送するために有利にはいわゆるトリガが使用される。トリガは任意の殊にコンフィギュレーション可能なバスシステム(ネットワーク)によって伝送される。トリガのソースとターゲットはプログラミング可能である。
【0030】
多数のトリガを1つのモジュール内で同時に伝送することができる。特別な実施形態において1つのソースから1つのターゲットへのダイレクトな伝送のほか、1つのソースから複数のターゲットへまたは複数のソースから1つのターゲットへの伝送も可能である。トリガは殊に、しかし排他的にではないが、
* 計算機構(ALU)のステータス情報たとえば
−桁上げ
−ゼロによる除算
−ゼロ
−負
−アンダーフロー/オーバーフロー
* 比較結果
* nビットの情報(ただしnは小さい数)
* 内部または外部で生成される割り込み要求
* ブロック命令およびイネーブル命令
* コンフィギュレーション要求
を伝送する。
【0031】
トリガは任意のセルにより生成され、個々のセルにおける任意の結果によりトリガされる。たとえば従来技術のようにALUまたはプロセッサのステータスレジスタおよび/またはフラグレジスタをトリガ発生のために利用することができる。CTによって、および/またはセルアレイまたはモジュールの外側に配置された外部ユニットによって、トリガを生成することもできる。トリガは任意のセルによって受け取られ、任意のやり方で評価される。たとえばCTによって、あるいはセルアレイまたはモジュールの外側に配置された外部ユニットによって、トリガを評価することもできる。トリガの基本的な使用範囲は、条件付き実行の同期合わせや制御および/またはたとえばシーケンサにより実現可能なアレイ内のシーケンス制御ならびにそれらの情報交換である。
【0032】
3.1 トリガのセマンティクス
トリガはたとえばPAE内における以下のアクションについて用いられる:
STEP:トリガ到来時のPAE内部における演算の実行。
【0033】
GO:トリガ到来時のPAE内部における演算の実行。この実行はSTOPにより停止される。
【0034】
STOP:GOによって始められた実行の停止;これについてはストップ信号に関する前述の記載も参照。
【0035】
LOCAL RESET:実行の停止ならびにステータス「割り当て済み」または「コンフィギュレーション済み」からステータス「未コンフィギュレーション」への移行。
【0036】
WAVE:演算の実行停止およびCTからロードすべきいわゆるウェーブ・リコンフィギュレーションのロード。ウェーブ・リコンフィギュレーションの場合、1つまたは複数のPAEを続いてデータパケットが終了してしまうまでリコンフィギュレーションが行われることになる。この場合に有利には、差分リコンフィギュレーションとして行うことも可能なリコンフィギュレーションの直後に別のデータパケットの処理を行うことができる。たとえば第1のフィルタ係数により第1の音声データパケットが処理されることになる。この第1の音声データパケット実行後、局所的なリコンフィギュレーションが行われることになり、その後、第2のフィルタ係数セットによって異なる音声データパケットが処理されることになる。この目的で新たなリコンフィギュレーションデータたとえば第2のフィルタ係数をセル内にまたはセルのところに格納することができ、第1のデータパケットの終了の識別に応じて再コンフィギュレーションを自動的に指示することができ、このためにたとえばCTまたは別の外部の制御ユニットの別の割り込み制御は必要とされない。第1のデータパケットの終了の識別もしくはリコンフィギュレーションを実行すべき時点の識別を、ウェーブ・リコンフィギュレーショントリガの発生により行うことができる。これはたとえばそのつどデータ終了を識別するセルにおいて発生させることができる。この場合、再コンフィギュレーションはセルごとにトリガによって、それらが最初のデータパケットの処理をそのつど完了させるとただちに実行され、これはサッカースタジアムを駆け抜けるLA OLAに匹敵する。この目的でただ1つのセルがトリガを発生させてたとえば第1のセルへ送信することができ、これによりその第1のセルに対し第1のパケットの終端が通過したことが指示される。ウェーブトリガ発生セルにより呼び出された再コンフィギュレーションすべきこの第1のセルは殊に、第1のパケットの最後のデータから導出されあとで処理する1つまたは複数のセルへ送信される結果と同時に、あとで処理するそのセルに対しウェーブトリガ信号を転送する。さらにこのウェーブトリガ信号をたとえば、目下第1のデータパケットの処理には取りかかっていないセルおよび/または最後のデータから導出された結果を受け取っていないセルへも送信もしくは転送することができる。ついでウェーブトリガ信号発生セルにより呼び出された再コンフィギュレーションすべき第1のセルが再コンフィギュレーションされ、第2のデータパケットにおけるデータの処理を始める。この期間中、後続のセルはまだ第1のデータパケットの処理を行っている。なお、ウェーブトリガ信号発生セルがただ1つのセルを呼び出すだけでなく、コンフィギュレーションすべき複数のセルを呼び出すこともできる。その結果、ウェーブコンフィギュレーションの雪崩状の伝播を生じさせることができる。ウェーブコンフィギュレーションが完全にコンフィギュレーションされてしまうと、データ処理がただちに続けられる。WAVEの場合、コンフィギュレーション完了後ただちにデータ処理を続行するのか、またはSTEPまたはGOの到来を待つのかを選択できる。
【0037】
SELECT:出力側への転送のため入力バスを選択する。例:バスAまたはBを出力側へ切り替える。SELECTによりマルチプレクサの位置つまりはバス選択が決められる。トリガはたとえばCT内の以下のアクションのために用いられる。
【0038】
CONFIG:コンフィギュレーションをCTによりPAへコンフィギュレーションする。
【0039】
PRELOAD:コンフィギュレーションをCTによりそれらのローカルメモリへプリロードする。これによりコンフィギュレーションをCONFIGが到来してからロードする必要がなくなる。予測可能なキャッシングの効果が生じる。
【0040】
CLEAR:コンフィギュレーションをCTによりそのメモリから消去する。この場合、到来するトリガは特定のコンフィギュレーションを参照する。これに対応する方法はあとで説明する。
【0041】
セマンティクスはネットワーク内で1つのトリガ信号に対応づけられるのではなく、むしろ1つのトリガは1つの状態だけしか表さない。この状態を受け取った個々のPAEによりどのように利用するのかは、受け取ったPAEにコンフィギュレーションされている。換言すれば、送信側のPAEは自身の状態だけをお送り、受信側のPAEはそれについて有効なセマンティクスを発生する。複数のPAEがトリガを受け取った場合、各PAEごとに異なるセマンティクスが用いられる可能性があり、つまり異なるリアクションを生じさせることができる。したがってたとえば第1のPAEを停止し、第2のPAEを再コンフィギュレーションすることができる。複数のPAEがトリガを送信した場合、そのトリガを発生したイベントが各PAEごとに異なっている可能性がある。
【0042】
ここで述べておくと、バスシステム等の場合もウェーブ・リコンフィギュレーションおよび/または部分的なリコンフィギュレーションを行うことができる。バスの部分的なリコンフィギュレーションは、たとえばセクションごとだけのリコンフィギュレーションにおいて行うことができる。
【0043】
3.2 システムステータスおよびプログラムポインタ
ここでシステムとは、インプリメントに応じて1つのモジュールまたは複数のモジュールから成る互いに結合されたグループである。1つのシステムにおいてモジュール相互間にわたって構成された複数のPAEから成るアレイを管理するために、PAE各々のステータスまたはプログラムポインタの情報を得るのは有用ではない。もっと詳しく理解できるよう複数の事例を区別する:
・プロセッサ特性のないコンポーネントとしてのPAE。この種のPAEは固有のプログラムポインタを必要としない。単一のPAEの状態はたいていは意味がない。なぜならば複数の特定のPAEだけが利用可能な状態をもつからである(PACT01参照:それによれば1つのPAEにより表されるはプログラムカウンタではなくデータカウンタ)。複数のPAEから成るグループの状態は、関連する個々のPAEの状態の結合により求められる。換言すれば、トリガのネットワーク内の情報によって状態が表される。
【0044】
・プロセッサとしてのPAE。これらのPAEは固有の内部のプログラムポインタとステータスを有する。有利には、他の複数のPAEまたは他の1つのPAEについて関連するPAEの情報だけがトリガによって交換される。
【0045】
複数のPAE間の相互作用によってたとえばCTにおいて評価可能な1つの共通のステータスが得られ、これによって新たなコンフィギュレーションをどのよにして行うべきかが決められる。その際、トリガ伝送に用いられるラインもしくはバスにおいて場合によってはコンフィギュレーション可能なネットワークが目下のところどのようにコンフィギュレーションされているのかを、必要に応じて考慮することができる。
【0046】
したがってPAE(PA)から成るアレイはグローバルな状態をもつ。基本的な情報は特定のトリガによってCTへ導かれ、CTはそれに基づきプログラムの実行をリコンフィギュレーションにより制御する。ここで殊に注目したいのは、このことでプログラムカウンタはもはや存在しないことである。
【0047】
4.(リ)コンフィギュレーション
VPUモジュールはイベントに基づきコンフィギュレーションまたは再コンフィギュレーションされる。これらのイベントは、CTへ伝送されるトリガ(CONFIG)によって表すことができる。到来するトリガは特定のPAEに対する特定のコンフィギュレーション(SubConf)を参照する。参照されたSubConfは1つまたは複数のPAEへ送信される。参照は従来技術によるルックアップシステムまたは他の任意のアドレス変換もしくはアドレス生成によって行われる。たとえば以下のようにして、到来するトリガの番号に基づき実行すべきコンフィギュレーション(SubConf)のアドレスを計算することができる。この場合、SubConfは固定長を有する:
オフセット+(トリガ番号 * SubConf長)
VPUコンポーネントには3つのコンフィギュレーションモードがある。
【0048】
a)グローバルコンフィギュレーション。VPU全体が再コンフィギュレーションされる。この場合、VPU全体がコンフィギュレーション可能な状態になけれならず、つまり未コンフィギュレーション状態でなければならない。
【0049】
b)ローカルコンフィギュレーション。VPUの一部分が再コンフィギュレーションされる。この場合、再コンフィギュレーションすべきVPUの局所的な部分がコンフィギュレーション可能な状態になければならず、つまり未コンフィギュレーション状態でなければならない。
【0050】
c)差分コンフィギュレーション。既存のコンフィギュレーションが変更される。この場合、再コンフィギュレーションすべきPAEがコンフィギュレーションされた状態でなければならず、つまりコンフィギュレーション済みでなければならない。
【0051】
1つのコンフィギュレーションは複数のコンフィギュレーションワード(KW)の集合から成る。各コンフィギュレーションはそれ自体を参照することができ、たとえば必要に応じて一義的なものとすることのできる参照番号(ID)によって行うことができる。
【0052】
以下では、IDにより表されるKWの集合をサブコンフィギュレーション(SubConf)と称することにする。1つのVPUにおいて、複数のそれぞれ異なるSubConfも同種のSubConfもコンフィギュレーションすることができ、これらは同時に異なるPAEにおいて進行する。
【0053】
PAEは1つまたは複数のコンフィギュレーションレジスタをもつことができ、その際、1つのコンフィギュレーションワード(KW)ごとに1つのコンフィギュレーションレジスタが書き込まれる。基本的に1つのKWにはコンフィギュレーションすべきPAEのアドレスが割り当てられる。同様に1つのKWには、コンフィギュレーションの形式を表す慣用の情報が割り当てられる。これらの情報は技術的にはフラグまたはコーディングによって実現できる。フラグについては以下で詳しく説明する。
【0054】
4.1 モジュールID
たいていの演算のためには、CTはコンフィギュレーションワードの割り当てとSubConfに対する該当するPAEを知っていれば十分である。ただしプロセッシングアレイにおける複雑な演算のためには、各PAEごとにそれに割り当てられたSubConfのIDを記憶するのが有用である。
【0055】
PA内に格納されているIDをCT内のIDと区別するため、以下ではモジュールIDと称する。モジュールIDを導入する理由は複数が、以下にそれらのうちのいくつかを挙げておく。
【0056】
・PAEは、やはり対応するSubConfに属する1つのバスにしか切り替えてはならない。PAEが誤った(未知の)バスに切り替えられると、それによって誤ったデータの処理が引き起こされてしまう。原則的にこの問題は、バスをPAEよりも前の時点でコンフィギュレーションすることによって解決することができ、その結果、1つのSubConf内でKWの固定的な順序が生じることになる。このことはモジュールIDの導入により回避することができ、それによればPAEが自身の記憶しているモジュールIDを自身に割り当てられているバスと比較し、そのモジュールIDがPAEと一致しているときにはじめてバスに切り替えられる。双方のモジュールIDが異なっているかぎり、バス接続は確立されない。これに対する代案としてバスシェアリング管理を実現することができる(PACT07参照)。
【0057】
・PAEを信号LocalResetによってステータス「未コンフィギュレーション」に移すことができる。Local Reset(ローカルリセット)はアレイ内のPAEからのものでありCTからのものではない。それゆえ「ローカル」なのである。このためすべてのPAEとSubConfとの間で信号をつなげなければならない。このやり方が問題となるのは、まだ完全にはコンフィギュレーションされていないSubConfを消去しようというときであり、したがってPAEがすべてはローカルリセットにつながれていないときである。モジュールIDによってCTはすべてのPAEに命令をブロードキャストすることができる。相応のモジュールIDをもつPAEはそのステータスを「未コンフィギュレーション」に変化させる。
【0058】
・多くの適用事例においてSubConfは所定の時点になってはじめてスタートを許可されるが、すでにまえもってコンフィギュレーション可能である。モジュールIDによりCTはすべてのPAEへ命令をブロードキャストすることができる。これに基づき相応のモジュールIDをもつPAEはデータ処理を開始する。
【0059】
基本的にモジュールIDをCT内に記憶されているIDと一致させることができる。
【0060】
モジュールIDは個々のPAE内のコンフィギュレーションレジスタに書き込まれる。IDはたいてい少なくとも10bitよりも大きいかなり広いビット幅をもっているので、そのように大きいレジスタを各PAEごとに用意するのは非効率的である。
【0061】
したがってここで提案されるのは、個々のSubConfのモジュールIDを僅かなビット幅をもちかつ一義的となるようIDから導出することである。1つのPA内のすべてのモジュールの量は比較的僅かであるため、モジュールIDは数bit(たとえば4〜5bit)の幅で十分である。モジュールIDとIDは全単射で互いに写像可能である。換言すれば、モジュールIDはコンフィギュレーションされたモジュールを一義的に1つのアレイ内で特定の時点に識別する。モジュールIDはSubConfのコンフィギュレーション前、SubConfが実行時点にPA内で一義的に識別可能であるよう設定される。SubConfは何度も同時にPAにコンフィギュレーション可能である(以下で説明するマクロを参照)。一義的な割り当てのため、コンフィギュレーションされた各SubConfについて一義的なモジュールIDが設定される。
【0062】
IDからモジュールIDへの変換は、ルックアップテーブルまたはリストによって実行可能である。これについては数多くの写像方法が知られているので、1つの可能性についてのみ詳しく説明することにする:
長さが2ModulID であるリストには目下アレイ内でコンフィギュレーションされるすべてのIDの集合が含まれており、リストエントリごとに1つのIDが割り当てられている。エントリ「0」は利用されないモジュールIDを表す。新たなIDがコンフィギュレーションされるとき、それを空きのリストエントリに割り当てなければならず、そのエントリのアドレスによって対応するモジュールIDが表される。IDはモジュールIDのアドレスのところでリストにエントリされる。IDを消去する場合、対応するリストエントリが再び「0」にセットされる。
【0063】
4.2 PAEのステータス
各KWには付加的なフラグが設けられており、これによってPAEのステータスがチェックされ制御される:
CHECK:コンフィギュレーションされていないPAEが割り当てられ、コンフィギュレーションされる。PAEのステータスが「未コンフィギュレーション」であるかぎり、PAEはKWによってコンフィギュレーションされる。この過程はACKによって確認応答される。PAEがステータス「コンフィギュレーション済み」または「割り当て済み」であれば、KWは受け入れられない。この場合、REJによって拒否の応答が出される。CHECKの到来後、PAEはステータス「割り当て済み」に移行する。その後のいかなるCHECKも拒否されるが、データ処理は始められない。
【0064】
DIFFERENTIAL:すでにコンフィギュレーションされたPAEのコンフィギュレーションレジスタが変更される。PAEのステータスが「コンフィギュレーション済み」または「割り当て済み」であるかぎり、PAEはKWによって変更される。この過程はACKによって確認応答される。PAEがステータス「未コンフィギュレーション」であればKWは受け入れられず、REJ(Reject)によって応答される。
【0065】
GO:データ処理が始められる。GOは単独であるいはCHECKまたはDIFFERENTIALといっしょに送信可能である。
【0066】
WAVE:コンフィギュレーションがデータ処理と結合される。トリガWAVEが到来するとただちに、フラグWAVEにより表されるコンフィギュレーションがPAEにロードされる。トリガWAVEの到来前にコンフィギュレーションされる場合、フラグWAVEにより表されるKWがトリガの到来まで記憶され、トリガによってはじめてアクティブになる。トリガWAVEがフラグWAVEを伴うKWの前に到来したならば、データ処理はKWの到来まで停止される。
【0067】
伝送されるKWごとに、少なくともCHECKあるいはDIFFERENTIALがセットされていなければならない。ただしCHECKとDIFFERENTIALは同時には許可されない。CHECKとGOもしくはDIFFERENTIALとGOは許可され、それによってデータ処理が開始される。
【0068】
付加的に、KWに割り当てられておらずCTにより明示的にセットされるフラグがインプリメントされる。
【0069】
LOCK:PAEはステータス「未コンフィギュレーション」に勝手に変わることはできない。そうであるとするならば、たとえばセルをさらにコンフィギュレーションしてデータ処理を行うことができてしまう一方、最初のコンフィギュレーションをFILMOメモリからセルへ書き込もうとする。その後、セルは別のFILMOプロセス中、その活動を終える。したがって基本的につまり別の措置をとることなく、FILMO内に記憶されており本来は最初のコンフィギュレーション後に実行許可される後続の第2のコンフィギュレーションが、そのセルを占有してしまう可能性がある。これによってデッドロック状況が発生してしまうおそれがある。このセルのコンフィギュレーション可能状態の変化を命令LOCKによって一時的に制限することで、このようなデッドロックを回避することができ、その際にセルは不所望な時点でコンフィギュレーション可能にならぬよう阻止される。再コンフィギュレーションに対するセルのこのようなロックを行うことができるのはたとえば、FILMOが実行されるときであり、しかも再コンフィギュレーションの目的で実際にアクセスされるセルを対象としているか否かにかかわらずそれが実行されるときである。択一的に、再コンフィギュレーションに対するセルのロックを次のようにして行うことができる。すなわち、たとえばFILMO内にあるセルの最初のコンフィギュレーションによるセルへの最初のアクセスが失敗したときなどに、特定のフェーズにわたり再コンフィギュレーションを禁止することによって行うことができる。このことによって第2のコンフィギュレーションによるコンフィギュレーション開始は、先行のコンフィギュレーションによってアクセスすべきセルにおいてのみ回避される。
【0070】
つまりFILMO方式によれば、特定の状態の間のみFILMOにおいて変化が許可される。ここで説明したようなロック(LOCK)によって、FILMO状態機械はステータス「未コンフィギュレーション」への移行を制御する。インプリメンテーションに応じて、PAEはそれらの目下のステータスを上位の制御ユニット(たとえば対応づけられたCT)へ伝達し、またはそれらをローカルで記憶する。
【0071】
移行テーブル
FILMOプロトコルを遵守するための状態機械の最も簡単な実現形態は、WAVEおよびCHECK/DIFFERNTIALを利用せずに可能である。この場合にはGOフラグだけがインプリメントされ、コンフィギュレーションはKWから成り、これらはGOとともに伝送される。ここで以下の状態をインプリメントすることができる:
未コンフィギュレーション not configured:PAEは完全にニュートラルに振る舞う、すなわちデータまたはトリガを受け入れず、いかなるデータまたはトリガも送信しない。コンフィギュレーションが待ち受けられている。場合によってはインプリメントされる差分コンフィギュレーションは拒否される。
【0072】
コンフィギュレーション済み configured:PAEはコンフィギュレーションされていてデータおよびトリガを処理する。他のコンフィギュレーションは拒否され、場合によってはインプリメントされる差分コンフィギュレーションは受け入れられる。
【0073】
ロック待ち wait for lock:PAEはリコンフィギュレーションのための要求を(たとえばLocal Resetにより、またはコンフィギュレーションレジスタにおけるビットのセットにより)受け取った。データ処理が停止され、PAEはステータスを「未コンフィギュレーション」に変えることができるよう、ロック解除を待ち望む。
【0074】
【表1】
Figure 2004506261
【0075】
既述の方法に従い完全なものにされた状態機械によって、複数のKWを必要とするPAEのコンフィギュレーションが可能となる。これがあてはまるのはたとえば、複数の定数を参照しそれらの定数を本来のコンフィギュレーションの後またはそれといっしょにPAEにも書き込むべきコンフィギュレーションを伝送しようというときである。このためにはさらに別の状態が必要とされる。
【0076】
割り当て済み allocated:PAEはCHECKにより検査され、コンフィギュレーションに対しスタンバイ状態にある。割り当て済み状態においてPAEはまだいかなるデータも処理しない。DIFFERENTIALにより表されたKWは受け入れられる。CHECKにより表されたKWは拒否される。
【0077】
次にこれに相応する移行テーブルを示す。WAVEはまだインプリメントされていない:
【0078】
【表2】
Figure 2004506261
【0079】
4.2.1 GOのインプリメンテーション
GOは、データ処理をただちにスタートさせるためPAEのコンフィギュレーションにおいてただちにKWによりセットされるかまたは、SubConf全体の完了後に個々のPAEへ送信される。
【0080】
フラグGOは様々なかたちでインプリメントできる:
a)レジスタ
各PAEは、処理をスタートさせるためにセットされるレジスタをもつ。技術的な実現は比較的簡単であるが、PAEごとにコンフィギュレーションサイクルが必要とされる。GOはフラグとして既述のようにKWといっしょに伝送される。EnhSubConfに属する種々のPACのPAEをコンフィギュレーションする順序が些細なことではない場合、この時間関係の遵守を保証するため別の方法が提案される。複数のPACの場合には定義に従いやはり複数のCTが存在するので、それらは互いに連絡を取り合い、各PACにおいて次にコンフィギュレーションされていなければならないすべてのPAEが、これまでにすでにそのGOを同じコンフィギュレーションから受け入れたか否かについて情報を交換する。
【0081】
時間関係を解消し許可されていないGOの送信を回避する可能性として挙げられるのはKWの並べ替えであり、それによれば適正な順序がそれらのコンフィギュレーションの順番を通してFILMOにより保証される。このときFILMOは場合によってはフラグにより各コンフィギュレーションごとに、目下のコンフィギュレーションのすべてのGOがこれまで受け入れられたか否かを感知する。これがあてはまらなければ、以降のGOはこのコンフィギュレーションにはもはや送られない。その際、新たなコンフィギュレーション各々における初期状態は、すべてのGOがこれまで受け入れられていたかのようになる。
【0082】
いくつかのPAEがコンフィギュレーションにあたりすでにもはやコンフィギュレーションされていない状態にある確率を高めるため、少なくとも部分的にシーケンシャルなコンフィギュレーションのKWを並べ替えて、該当するPAEのKWが時間的に遅れてコンフィギュレーションされるようにすることができる。また、必要であれば特定のPAEを早めにアクティブにすることができ、この場合、該当するコンフィギュレーションのKWを並び替えて、該当するPAEが時間的に早めにコンフィギュレーションされるようにすることができる。この方法は殊に、並べ替え後にも遵守しなければならない時間関係によりKWの順序がすでに完全に決められているときに利用できる。
【0083】
b)ラインを用いた配線
Local Reset信号の使用と同様、複数のPAEがいっしょにスタートさせるべきグループにまとめられる。このグループ内ですべてのPAEはGOの分配のため1本のラインと接続される。1つのグループをスタートさせようという場合、最初のPAEにGOがシグナリングされ、このことは信号の送信またはこの第1のPAEのレジスタ(aを参照)のセットにより実現される。このPAEから他のすべてのPAEへGOが転送される。スタートのためにはコンフィギュレーションサイクルが必要とされる。また、この転送にあたり比較的長い距離を橋渡しするためにレイテンシが必要とされる。
【0084】
c)ブロードキャスト
a)とb)の実施形態によれば比較的僅かなコストで高いパフォーマンス(1コンフィギュレーションサイクルのみ)が得られる。また、すべてのモジュールはモジュールIDを受け取り、これは一般にSubConfIDとは異なる。その際、モジュールIDのサイズをできるかぎり小さく抑えなければならず、できれば数bit(3〜5)の幅で十分であるようにしたい。モジュールIDの利用についてはあとで詳しく説明する。コンフィギュレーション中、各PAEに対応するモジュールIDが書き込まれる。その後、ブロードキャストによりGOが開始され、その際にモジュールIDはGO命令といっしょにアレイへ送られる。この命令はすべてのPAEによって受け取られるが、モジュールIDの適合したPAEによってのみ実行される。
【0085】
4.2.2 PAEステータスの記憶
PAEのステータスは、コンフィギュレーションまたはFILMOプロセスにおいては「コンフィギュレーション済み」から「未コンフィギュレーション」に変わってはならない。例:2つの異なるSubConf(A,D)が同じリソースたとえばPAE Xを分け合う。FILMOにおいてSubConf AはSubConf Dよりも時間的に前に位置する。したがってSubConf AはSubConf Dよりも前にリソースを占有しなければならない。PAE XはSubConf Aによるコンフィギュレーション時点に「コンフィギュレーション済み」になるが、SubConf Dによるコンフィギュレーションよりも前にステータスを「未コンフィギュレーション」に変える。その結果、デッドロックの状況が発生することになる。なぜならばこのときSubConf AはPAE Xをもはやコンフィギュレーションできないが、SubConf DはすでにSubConf Aにより占有されている残りのリソースをコンフィギュレーションできないからである。つまりSubConf AもSubConf Dも実行不可能である。この場合、既述のようにロックにより、PAEのステータスはFILMOプロセス中は許可なく変えられないようになる。その際、FILMO方式に関してステータス保護がどのように実行されるのかは重要ではないけれども、複数の可能性について述べておくことにする:
ロックの原理
最初のコンフィギュレーションの開始前FILMOの新たな実行ごとに、PAEのステータスが保護され、もしくはロックインされる。実行終了後、ステータスは再びロック解除される。したがって所定のステータス変化は実行ごとに1度しか許可されない。
【0086】
明示的ロック
ロック信号はFILMOプロセス開始以降、PAからの最初のREJ後にはじめてセットされる。これが可能であるのは、事前にすべてのPAEをコンフィギュレーションすることができたからであり、つまりそれらはすでにステータス「未コンフィギュレーション」にあったからである。REJを発生するPAEだけが以降のFILMOプロセス中、そのステータスを「コンフィギュレーション済み configured」から「未コンフィギュレーション not configyured」に変えることができる。この時点以降になってはじめてデッドロックの発生する可能性があり、つまりそれは第1のKWがREJを受け取り、時間的に遅れてコンフィギュレーションされるときである。しかしREJ後ただちにロックがセットされることにより、「コンフィギュレーション済み」から「未コンフィギュレーション」への移行が即座に阻止される。この方法の基本的な利点は、第1の実行フェーズ中はPAEはまだそのステータスを変えることができ、すなわちたとえばステータス「未コンフィギュレーション」への変化が許可されることである。つまり実行中、コンフィギュレーションの試行を失敗する前にPAEが「コンフィギュレーション済み」から「未コンフィギュレーション」に変われば、それを同じコンフィギュレーションフェーズにおいてコンフィギュレーションすることができる。
【0087】
暗黙的ロック
明示的ロックのさらに効率的な拡張はPAE内でのロックの暗黙的な処理である。一般には、コンフィギュレーションを拒否(REJ)したPAEについてのみステータス保護が該当する。したがってFILMOプロセス中、REJを発したPAE内においてのみステータスを保護すれば十分である。他のすべてのPAEはその影響を受けない。この場合、LOCKはもはや上位のインスタンス(CT)によって発せられない。むしろFILMOプロセス後、該当するPAE内のステータス保護が信号FREEによって再び解除される。FREEはFILMOプロセス後ただちにすべてのPAEへブロードキャストすることができ、パイプライン化しアレイを通して導くこともできる。
【0088】
暗黙的ロックのための拡張された移行テーブル:
PAEから発せられた拒否(REJ)は各PAE内でローカルに保護される(REJD=rejected)。「未コンフィギュレーション」に再び戻ったときにはじめて情報が消去される。
【0089】
【表3】
Figure 2004506261
【0090】
移行テーブルは一例であって、実際のインプリメンテーションは個々の構成に依存する。
【0091】
4.2.3 PAEのコンフィギュレーション
このセクションではコンフィギュレーションの流れをCTの視点からもう一度描いてみることにする。PAEの一部分もPAEとみなされる場合があり、これはそれらがまえもって記述されたステータスを互いに依存せず管理するときである。PAEが新たにコンフィギュレーションされるときには、第1のKWはPAEのステータスをチェックするためフラグCHECKをセットする必要がある。PAEに対するコンフィギュレーションは以下のように構成されている。すなわち1つのKWだけがコンフィギュレーションされる:
【0092】
【表4】
Figure 2004506261
【0093】
あるいは複数のKWがコンフィギュレーションされる。この場合、最初のKWにおいてCHECKがセットされ、以降のすべてのKWにおいてDIFFERENTIALがセットされる:
【0094】
【表5】
Figure 2004506261
【0095】
ただしXはセット済み、−は未セット、GOはそれぞれオプション * を表す。
【0096】
CHECKが拒否(REJ)されるならば、DIFFERENTIALフラグをもつ後続のKWはPAEへは送信されない。CHECK(ACK)の受け入れ後、ステータス「未コンフィギュレーション」へ戻るまで後続のすべてのCHECKが拒否され、PAEは受け入れられたSubConfのために割り当てられる。このSubConf内で次のKWはもっぱらDIFFERENTIALによってコンフィギュレーションされる。これが許可される理由は、そのSubConfがPAEに対するアクセス権をもつことがCHECKにより既知だからである。
【0097】
4.2.4 ステータス「未コンフィギュレーション not configured」へのリセット
特別に構成されたトリガ(LocalReset ローカルリセット)によって信号が伝播され、この信号により、受け取ったPAEにおいてステータス「コンフィギュレーション済み」から「未コンフィギュレーション」へのローカルなリセットがトリガされ、これは遅くともLOCKまたはFREEの受け取り後に行われる。このリセットを付加的に別のソースによってトリガすることができ、たとえばコンフィギュレーションレジスタによってトリガすることができる。LocalResetは信号を発生したソースからコンフィギュレーション可能な存在するすべてのバス接続を介して、すなわちすべてのトリガバスおよびすべてのデータバスを介して、それらのバスを介して接続された各PAEへ転送することができる。この場合、基本的にたとえばLocalResetを受信したPAEは各々、接続されているすべてのバスを介して信号を再び転送する。とはいえローカルなグループの限界を超えてLocalResetが転送されてしまうのを防ぐため、LocalResetを転送すべきか否かや接続されたどのバスを介してLocalResetを転送すべきかとは無関係に、各セルごとにコンフィギュレーション可能である。
【0098】
4.2.1 完全にはコンフィギュレーションされたなかったSubConfの消去
いくつかの事例において、SubConfのコンフィギュレーションが始められ、そのコンフィギュレーション中にSubConfが(もはや)不要であることあるいはすべては必要ないと判定される場合が起こるかもしれない。LocalResetは場合によっては、バスがまだ完全には構築されていなかったため、すべてのPAEのステータスを「未コンフィギュレーション」に変えることがある。本発明によればその解決のために2つの可能性が提案される。両方のやり方において、PAEがLocalResetを発生したならばそのPAEはトリガをCTへ送ることになる。それに基づきCTは以下のようにしてPAEに通知を行う:
4.2.4.2 モジュールIDを使用した場合
各PAE内でモジュールIDを記憶できるように構成されているならば、識別子をいっしょに送信するという簡単なブロードキャストによって各PAEに対しこの特定の識別子によって、ステータス「未コンフィギュレーション」へ移行するように要求することができる。
【0099】
4.2.4.3 GO信号を使用した場合
各PAEをどのようにコンフィギュレーションするかという順序で正確にGOラインが配線されていれば、すべてのPAEをステータス「未コンフィギュレーション」にセットするリセットラインをGOラインに割り当てることができる。
【0100】
4.2.4.4 コンフィギュレーションレジスタによる明示的リセット
各PAEにおいて1つのビットまたは1つのコードがコンフィギュレーションレジスタ内で定義され、CTによりこのビットまたはコードをセットすることで、PAEがステータス「未コンフィギュレーション」にリセットされる。
【0101】
4.3 PAE内でのデータの保持
本発明の対象となるモジュールにおいて格別有利であるのは、PAEのデータおよび状態をリコンフィギュレーションを越えて保持できるようにすることである。換言すれば、PAE内に記憶されているデータをリコンフィギュレーションにかかわらず得ることができる。このためKWにおける相応の情報により、リコンフィギュレーションによりリセットされるか否かが関連するレジスタごとに定義される。
【0102】
例:
1つのビットが1つのKW内でたとえば論理値0であれば、対応するデータレジスタまたはステータスレジスタにおける現在のレジスタ値が保持され、論理値1によりそのレジスタの値がリセットされる。相応のKWを以下のように構成しておくことができる:
【0103】
【表6】
Figure 2004506261
【0104】
これによりリコンフィギュレーションごとにデータ受け取りを選択可能である。
【0105】
4.4 PAEにおけるデータのセット
さらにリコンフィギュレーションにあたり、CTからPAEのレジスタへデータを書き込むことができる。この場合、関連するレジスタをKWによってアドレッシング可能である。1つの特別なビットによって、データが定数として処理されるのかまたはデータ語として処理されるのかが表される。
【0106】
・定数はそれが新たにセットされるまで存在し続ける。
【0107】
・データ語は厳密に決められた数の計算たとえば正確に1つの計算に対し有効である。データ語の処理後、CTからレジスタへ書き込まれるデータ語はもはや存在しない。
【0108】
5.拡張
KWとACK/REJ信号をレジスタについてもパイプライン化できるようバスプロトコルを拡張することができる。これはきわめて有利であり、それ自体でまたは他のものと組み合わせて特許性があるとみなされる。この場合、各クロックごとに1つのKWまたは複数のKWを送信することができる。その際、FILMO方式を守るようにする。基本原理によれば、時間的に遅れた確認応答があとからKWに割り当てられるよう、PAに書き込まれたKWへの割り当てが構築される。確認応答に依存するKWは、それらが確認応答到来後にはじめて処理されるよう並び替えられる。あとで説明する択一的な方法によってこの要求が満たされ、それらの方法は種々の利点を有する:
5.1 ルックアップテーブル(STATELUT)
各PAEはそのステータスを、CT内にローカルにインプリメントされているルックアップテーブル(STATELUT)へ送信する。CTはKWの発送にあたり、アドレッシングされたPAEのステータスをSTATELUTにおけるルックアップによりチェックする。確認応答(ACK/REJ)はSTATELUTにより生成される。以下、この方法の動作について詳述する:
CTにおいて、メモリまたはレジスタセット内で個々のPAEのステータスが管理される。各PAEごとに、PAEがどのモード(「コンフィギュレーション済み」、「未コンフィギュレーション」)にあるかを示すエントリが存在する。このエントリに基づきCTは、PAEを再コンフィギュレーションできるか否かについてチェックする。ステータスはCTにより内部的に、つまりPAEにおける問い合わせをせずにチェックされる。各PAEはそれらのステータスをインプリメンテーションに応じて自動的にあるいは要求後に、CTの内部STATELUTへ送信する。LOCKがセットされていればもしくはFREEがなければ、PAEのステータス変更はSTATELUTへ送信されず、あるいはSTATELUTから受け取られない。
【0109】
簡単なメカニズムによってPAEのステータスが監視され、これによりステータス制御の既述のメカニズムや公知の状態が実現される:
ステータス「コンフィギュレーション済み」のセット:
フラグCHECKの設けられたKWの書き込みにあたりアドレッシングされたPAEのチェックがSTATELUTにおいて行われる。
【0110】
・PAEが再コンフィギュレーション可能な状態であるかぎり、PAEはSTATELUTにおいて「割り当て済み」と記される。
【0111】
・PAEが開始される(GO)とただちに、PAEは「コンフィギュレーション済み」としてエントリされる。
【0112】
ステータス「コンフィギュレーション済み」から「未コンフィギュレーション」へのリセット
アプリケーションやインプリメンテーションに応じて複数の方法を使用することができる:
a)各PAEは、その状態を「コンフィギュレーション済み」から「未コンフィギュレーション」へ変えたとき、ステータス信号をテーブルへ送信する。このステータス信号をパイプライン化して送ることができる。
【0113】
b)ステータス信号(LocalReset)は、グループ全体に関する状態を「コンフィギュレーション済み」から「未コンフィギュレーション」に変えたことを示すPAEのグループに対して送信される。リストによってそのグループに属するすべてのPAEが選び出され、個々のPAE各々の状態がテーブルにおいて変更される。重要であるのは、1つのグループにおいてLocalResetによって遠ざけられた最後のPAEのステータス信号がCTへ送られることである。さもないとSTATELUTとPAEの実際の状態との間で矛盾が生じてしまうおそれがあり、これはSTATELUTによってあるPAEが「未コンフィギュレーション」と表されるが、実際にはそのPAEはステータス「コンフィギュレーション済み」にあることで生じる可能性がある。
【0114】
c)有利にはパイプライン化されたLOCK信号の到来後、LOCKの最後の到来以降に状態を変えた各PAEは、そのステータスをSTATELUTに送信する。しかしPAEはそのステータスをこの要求後のみ伝送しステータス変更はそのほかではLOCKされているので、この方法は逆のセマンティクス以外は同じママである。
【0115】
コンフィギュレーションにあたりPAEの状態をチェックするため、KWのターゲットPAEのアドレスを送信する際にSTATELUTが参照され、それに応じてACKまたはREJが生成される。KWがPAEへ送信されるのは、REJが発せられなかったときのみ、またはDIFFERENTIALフラグがセットされているときのみである。
【0116】
この方法によりKWの時間順序が保証される。有効なKWがPAEへ送信される。この場合の欠点は、STATELUTのインプリメントの手間、STATELUTへのPAEステータスの返送、ならびにそれに必要とされるバス帯域幅と伝播遅延時間である。
【0117】
5.2 KWの並び替え
以下の方法の適用に対し重要なことは、PAEに送信される各々最初のKW(KW1)に対しCHECKフラグを使用することである。
【0118】
SubConfは以下のように並び替えられる:
1.はじめに第1のPAEのKW1が書き込まれる。確認応答(ACK/REJ)が到来するまでの時間(DELAY)、複数のクロックのように厳密に多くのアイドルサイクル(NOP)が設けられる。
【0119】
2.その後、第2のPAEのKW1が書き込まれる。DELAY中に第1のPAEの残りのKWを書き込むことができる。場合によっては残されたクロックがアイドルサイクルによって埋められる。KW1からDELAY満了までのコンフィギュレーションロックをアトムと称する。
【0120】
3.各々以降のPAEにおいても同じようなプロセスを辿る。
【0121】
4.DELAYが存在している間に1つのPAEにおいてクロックよりも多くのKWが書き込まれる場合、残りの部分が後続のアトムに配分される。択一的にDELAYを能動的に延長することもでき、それによって同一アトム内でいっそう多くのKWを書き込むことができる。
【0122】
KW1に対するACKが到来すると、対応するPAEのための他のすべてのKWがコンフィギュレーションされる。PAEがREJによって確認応答するかぎり、そのPAEに該当する以降のKWはコンフィギュレーションされない。この方法によってコンフィギュレーションの順序の遵守が保証される。欠点は、最適化されたコンフィギュレーション速度を達成できないことである。順序を守るためにはアトムの待ち時間を場合によってはアイドルサイクル(NOP)で埋める必要があるので、利用可能な帯域幅およびSubConfのサイズはNOPによって増加する。さらにパラドックスによって、コンフィギュレーション速度の解消不可能な制約が引き起こされる。つまりコンフィギュレーションデータとコンフィギュレーションサイクルの量をできるかぎり僅かに抑えようとするには、コンフィギュレーションレジスタの個数をできるかぎり小さく抑えるべきである。周波数が高くなるとDELAYは必然的に大きくなるので、このことはDELAYをKWの充填により有効に利用するという要求とぶつかってしまう。したがってこの方法を有効に利用できるのは、コンフィギュレーションデータをシリアルに伝送する場合だけのように思われる。KWのシリアル化によりデータストリームは、待ち時間を満たすために十分な長さとなる。
【0123】
5.3 レイテンシを伴うACK/REJ確認応答の評価(CHECKACKREJ)
CHECK信号はKWとともに1つまたは複数のパイプライン段を介して、アドレッシングされたPAEへ送信される。アドレッシングされたPAEは確認応答(ACK/REJ)をやはりパイプライン化してCTへ送る。
【0124】
各クロックごとにKWが送信され、その確認応答(ACK/REJ)はnクロック遅れてからCTに到来し評価される。しかしこの期間中、n個の別のKWが送信される。その結果、2つの領分で問題が発生する:
・FILMOの制御
・KWの順序の遵守
5.3.1 FILMOの制御
FILMO内で、どのKWがPAEによって受け入れられたか(ACK)およびどれが拒否されたか(REJ)が記されなければならない。拒否されたKWは後になってからのFILMOプロセス中に送りなおされる。後になってからのこの実行にあたりコンフィギュレーション効率の点で有用であるのは、拒否されたKWだけを実行することである。既述の要求は以下のようにして実現可能である。すなわちFILMOに別のメモリ(RELJMP)が割り当てられ、このメモリはFILMOと同じ深さをもつ。第1のカウンタ(ADR_CNT)は、目下PAEアレイに書き込まれるKWのFILMO内におけるアドレスを指す。第2のカウンタ(ACK/REJ_CNT)は、目下アレイから確認応答(ACK/REJ)が戻されたKWのFILMO内におけるポジションを指す。また、レジスタ(LASTREJ)はACK/REJ_CNTの値を記憶し、この値はREJによりコンフィギュレーションの拒否された最後のKWのアドレスを指す。減算器はACK/REJ_CNTとLASTREJとの差を計算する。REJが到来すると、メモリRELJMPにおいてアドレスLASTREJをもつメモリロケーションにこの差が書き込まれる。
【0125】
したがってRELJMPは拒否されたKWとその後続のKWとの間の相対ジャンプ幅を有する。
【0126】
1.受け入れられた各KWにはRELJMPエントリ「0」(ゼロ)が割り当てられる。
【0127】
2.拒否された各KWにはRELJMPエントリ「>0」(ゼロよりも大きい)が割り当てられる。目下のアドレスとRELJMPエントリとの加算により、拒否された次のKWのFILMOにおけるアドレスが計算される。
【0128】
3.拒否された最後のKWにはRELJMPエントリ「0」(ゼロ)が割り当てられ、これによって終端が示される。
【0129】
SubConfの第1のアドレスのメモリロケーションにはFILMO内においてNOPが割り当てられる。対応づけられたRELJMPは、最初に処理すべきKWに対する相対ジャンプを有する。
【0130】
1.FILMOの最初の実行時、値は「1」である。
【0131】
2.次の実行時、この値は最初に処理すべきKWを指し、つまり「>0」(0よりも大きい)である。
【0132】
3.SubConfのすべてのKWがコンフィギュレーションされてしまったならば、値は「0」(ゼロ)であり、このことから状態機械はコンフィギュレーションの完全な処理を確認する。
【0133】
5.3.2 順序の遵守(バリア BARRIER)
5.3のところで説明した方法の場合には特定のコンフィギュレーション順序を保証するのは不可能である。この方法によれば、2.1のa)〜c)によるFILMO要求のみが保証される。
【0134】
特定のアプリケーションにおいては、1つのSubConf内でのコンフィギュレーション順序の遵守(2.1のe)や、個々のSubConf自体のコンフィギュレーション順序の遵守(2.1のd)が重要となる。順序の遵守は、SubConfを複数のブロックに分割することによって達成される。個々のブロックの間にトークン(BARRIER)が挿入され、これは先行のKWのいずれも拒否(REJ)されなかったときだけ飛び越えられる。コンフィギュレーションがBARRIERに遭遇し、事前にREJが発生していれば、BARRIERを飛び越えてはならない。ここで2種類のBARRIERを区別する:
a)ノンブロッキング NonBlocking:コンフィギュレーションは後続のSubConfから続けられる。
【0135】
b)ブロッキング Blocking:コンフィギュレーションは目下のSubConfの以降の実行から続けられる。BARRIERは、目下のSubConfが完全にコンフィギュレーションされてしまってからはじめて飛び越えられる。
【0136】
コンフィギュレーション速度の最適化に対する考慮:
一般に個々のKWのコンフィギュレーション順序の遵守は不要である。しかし個々のPAEのアクティベーション(GO)の順序はきちんと守らなければならない。GOフラグがセットされていないすべてのKWがBARRIERの前に移されるようKWを並べ替えることで、コンフィギュレーション速度を高めることができる。同様に、CHECKフラグのセットされたすべてのKWをBARRIERの前にずらす必要がある。PAEが1つのKWだけによりコンフィギュレーションされる場合、KWを2つの語に分割する必要があり、その際、CHECKフラグはBARRIERの前にセットされ、GOフラグはBARRIERの後にセットされる。
【0137】
BARRIERのところでは、すべてのCHECKがACKによって確認応答されたか否かは既知である。拒否(REJ)はセットされたCHECKフラグとともにしか現れないので、BARRIERの後ろにあるすべてのKWは基本的に適正な順序で実行される。BARRIERの後ろのKWは厳密にただ1回しか実行されず、個々のPAEのスタートは規定どおりに進行する。
【0138】
5.3.3
ガーベジコレクタ
5.3による方法について、ガーベジコレクタ(GC)の2つの異なるインプリメンテーションが提供される:
a)アルゴリズムまたは簡単な状態機械としてインプリメントされたGC。最初は2つのポインタがFILMOの開始アドレスを指している:第1のポインタ(読み出しポインタ ReadPointer)はGCにより読み出すべき目下のKWを指し、第2のポインタ(WritePointer)はKWを書き込むべきポジションを指す。読み出しポインタは線形にインクリメントされる。RELJMPが「0」ではないKW各々は書き込みポインタの指すアドレスに書き込まれる。RELJMPは「1」にセットされ、書き込みポインタはインクリメントされる。
【0139】
b)FILMOの読み出しポインタに書き込みポインタを加えることで、GCはFILMOと一体化される。書き込みポインタはFILMOプロセス開始にあたり最初のエントリを指す。PAEのコンフィギュレーションにあたりREJにより拒否された各KWは、書き込みポインタの指すメモリロケーションに書き込まれる。その後、書き込みポインタはインクリメントされる。この場合、FIFOに似た付加的なメモリ(たとえばシフトレジスタ)が必要とされ、これはKWに属するACK/REJが再びFILMOに現れるまで、PAEに送られたKWを適正な順序でバッファリングする。ACKが到来した場合、KWは無視される。(既述のように)REJが到来した場合、書き込みポインタが指すメモリロケーションにKWが書き込まれる。この場合、FILMOのメモリをマルチポートメモリとして構成するとよい。この方法の場合、FILMOプロセス終了ごとに新たなメモリ構築が行われ、その際、コンフィギュレーションされなかったKWが線形にメモリ始端におかれる。付加的なGCの実行は不要である。また、RELJMPのインプリメントおよびそれに付随するロジックも完全になくすことができる。
【0140】
5.4 レイテンシを伴うACK/REJ確認応答のプリフェッチ
次に5.3の発展形態について説明する。この方法の欠点は、パイプラインの3倍の長さに対応するかなり高いレイテンシタイムをもつことにある。
【0141】
そのつどコンフィギュレーションすべきPAEのアドレスおよび/またはフラグは、別個のバスシステムを介して本来のコンフィギュレーションの前に送信される。その際にタイミングは、PAEへのコンフィギュレーションワードの所望の本来の書き込み時点にそのACK/REJ情報が生じるように構成されている。ACKによって確認応答されていれば、KONFIGURATIONは実行される。拒否(REJ)の場合、KWはPAEへ送られない(ACK/REJ−PREFETCH)。FILMOプロトコルによって、殊にLOCKによって、ACK/REJ−PREFETCHとKONFIGURATIONとの間でPAEの許可されないステータス変更が生じないようになる。
【0142】
5.4.1 FILMOの構築
FILMOは以下のように機能する:KWは適正な順序で、(i)CTのメモリからまたは(ii)FILMOメモリから受け取られる。読み出されたKWのPAEアドレスは第1のバスシステムを介してパイプライン化されてPAEへ送られる。完全なKWは(たとえばシフトレジスタとしても構成可能な)FIFOに似たメモリに一定の遅延時間で書き込まれる。
【0143】
そのつどアドレッシングされたPAEは、そのステータスに依存してACKまたはREJの送信により確認応答する。FIFOの深さは、PAEへのPAEアドレスの送信とPAEの確認応答の到来との間で経過するクロックの個数に対応する。PAEへのアドレス送信からPAEの確認応答到来までのサイクルをプリフェッチ Prefetchと称する。
【0144】
FIFOに似たメモリ(これはここではFILMOと同じではない)における所定の遅延によって、PAEの確認応答はPAEに属するKWもFIFOの出力側に生じる時点に正確にCTに到来する。ACKが到来するとKWがPAEに送信され、確認応答はもはや待ち望まれない。PAEの状態はその間、許可されずに変更されることはなく、受け入れは保証される。REJが到来するとKWはPAEに送信されるのではなく、FILMOメモリに書き戻される。そのために付加的なポインタが設けられており、これはFILMOメモリの線形の読み出しを開始する際には第1のアドレスを指す。値が書き戻されるたびにポインタがインクリメントされる。これにより拒否されたKWは自動的に線形にパックされ、これは一体化されたガーベジコレクタの実行に対応する(5.3も参照)。このインプリメンテーションは殊に有利であり、それ自体保護能力があるとみなされる。
【0145】
5.4.2 レジスタパイプラインを介した送信および確認応答
ここで述べる方法は、通知の1つの送信側と複数の可能な受信側との間に種々の個数のレジスタが接続されているときに、送られた通知と受け取られた応答との間の画一的なクロック遅延を保証するために用いられる。これに関する一例は、受信側が送信側から様々な距離で隔たっている場合である。この場合、送られた通知は近くに位置する受信側の方がもっと遠くに位置する受信側よりも早く到達する可能性がある。すべての応答について同じ伝播遅延時間を得る目的で、受信側の応答はダイレクトに返送されるのではなく、送信側から最も遠い受信側までさらに返送される。その際、最初のメッセージと同時に送り出されたものも到着しているであろう時点に応答が到着するよう、その経路には正確に同じ個数のレジスタが設けられていなければならない。ここから返送は、応答がその受信側自体において発せられたのと同じようにして行われる。応答が実際に最も遠い受信側まで送られるのか否か、あるいは同じ時間特性をもつ別のレジスタチェーンへ送られるのかは、この場合には重要ではない。
【0146】
6. 階層型CTプロトコル
PACT10に記載されているように、VPUモジュールはスケーリング可能であり、それによれば複数のCTから成るツリーが構築され、その葉にはPAの最下位のCT(Low−Level−CT)が配置される。対応づけられたPAをもつCTをPACと称する。一般に、任意のデータまたは命令を各CT間で交換することができる。この目的で、さしあたり技術的に有用ないかなるプロトコルでも利用することができる。
【0147】
とはいえ通信(CT間通信)は、CTツリー(CTTREE)内における様々なLow−Level−CTにおいてSubConfのスタートを生じさせるので、デッドロックに陥らないようにするためにはFILMO方式の要求を保証すべきである。
【0148】
一般的には2つの事例を区別することができる:
1.Low−Level−CTの場合、もっぱらローカルにLow−Level−CTおよびそれに対応づけられたPAにおいて実行されるSubConfのスタートが要求される。この事例はCTTREE内でいつでも処理可能であり、他のLow−Level−CTとの特別な同期合わせを必要としない。
【0149】
2.Low−Level−CTの場合、複数のLow−Level−CTとそれに対応づけられたPAにおいて実行されるコンフィギュレーションのスタートが要求される。この事例では、関与するすべてのCTにおけるコンフィギュレーションの呼び出しがアトミックにつまり分離不可能に進行するよう留意する必要がある。最も簡単なやり方によれば、特定のSubConfの呼び出しおよびスタート中、他のものはスタートされないことを保証すれば十分である。この種のプロトコルはPACT10から公知であるが、さらに最適化されたプロトコルが望ましい。
【0150】
PACT10のプロトコルは、高い周波数においてパイプライン化された伝送が必要とされるときにはすぐに効率が悪くなる。その理由は、バス通信に大きいレイテンシが生じるからである。以下のセクションでは1つの方法について言及する。
【0151】
CT間通信の基本的な役割は、PACに波及するSubConf(Enhanced SubConfiguration=EnhSubConf)がデッドロックに陥らずに開始されるのを保証することである。EnhSubConfは、1つのPACにおいて局所的に実行されるだけでなく複数のPACに分散して実行されるSubConfである。EnhSubConfには、関与するLow−Level−CTを介してそれぞれ開始される複数のSubConfが含まれている。ここでPACとは、少なくとも1つのCTを備えたPAEのグループのことである。デッドロックに陥らないようにするためには以下の条件が必要である:
複数のEnhSubConfを複数の同一のPACにおいてデッドロックなく実行できるようにする目的で、たとえばCTTREE内で適切なメカニズムによりそれらの実行優先順位が決定される。この場合、異なる複数のEnhSubConfから複数の同じPACにおいて実行されるSubConfが始められるならば、個々のPACにおいてそれらのSubConfのスタートがEnhSubConfの優先順位に応じた時間順序で行われる。
【0152】
例:2つのEnhSubConfをスタートさせることにする。つまりPAC1,3,4,6におけるEnhSubConf−AとPAC3,4,5,6におけるEnhSubConf−Bをスタートさせることにする。この場合、PAC3,4,6において必ずEnhSubConf−AがもっぱらEnhSubConf−Bの前または後でコンフィギュレーションされるよう保証されなければならない。たとえばPAC3および4においてEnhSubConf−AをEnhSubConf−Bの前におよびPAC6においてEnhSubConf−AをEnhSubConf−Bの後にコンフィギュレーションしようとすると、デッドロックが生じてしまう。なぜならばEnhSubConf−AをPAC6において、EnhSubConf−BをPAC3および4において開始することができないからである。このような事例を以下では「クロス」または「クロスした」と称する。
【0153】
EnhSubConfがクロスするのを十分に回避しなければならない。2つのEnhSubConf間でアルゴリズム的な依存性を存在させようとする場合、つまりアルゴリズムに基づきあるEnhSubConfを他のもののあとに開始させる必要がある場合、これは通常はあるEnhSubConfにより他のものをスタートさせることによって解決される。
【0154】
本発明によるプロトコルに関する実施例:
CT間通信において2つのデータ形式を区別する:
a)コンフィギュレーション情報を含むSubConf
b)開始すべきIDから成るリストを含むIDチェーン IDChain、これにはIDにより参照されるSubConfをどのPACにおいて開始させるべきかに関する情報も付随する。IDチェーンにより、EnhSubConfは実行すべき個々のSubConfに変換される:IDEnhSubConf →IDチェーン{(PAC :IDSubConf1),(PAC :IDSubConf2),(PAC :IDSubConf3),...(PAC :IDSubConfn)}
CT間通信において以下の伝送モードを区別する:
REQUEST:EnhSubConfの開始はLow−Level−CTからその上位のCTに要求されるかまたは、上位のCTからさらにその上位のCTに要求される。これはIDチェーンに記憶されていたCTに到達するまで、あるいはIDチェーンが必ずメモリ内にもっているルートCTに到達するまで繰り返される。
【0155】
GRANT:上位のCTはそれよりも下に位置するCTにSubConfの開始を依頼する。この場合、IDチェーンに従い単一のSubConfまたは複数のSubConfを対象とする。
【0156】
GET:CTは対応するIDの送信によりその上位のCTにSubConfを要求する。上位のCTがSubConfを記憶(キャッシュ)していたならば、この上位のCTは下に位置するCTへそれを送り、さもなければこの上位のCTはさらに上位のCTにSubConfを要求し、それを得てから下に位置するCTへ送る。遅くともルートCTはSubConfを記憶している。
【0157】
DOWNLOAD:下に位置するCTへのSubConfのロード。
【0158】
REQUESTすなわちリクエストは、ルートCTつまりCTTREEの根(最上位CT)に達するまで、またはIDチェーンを記憶しているCTTREEのCTに達するまで、CTTREEを上に向かって進む。IDチェーンは、そのリスト内に含まれているすべてのCTを葉または枝として所有するCTによってのみ記憶することができる。ルートCTは自身のメモリ(CTR、PACT10参照)において原則的にIDチェーンへのアクセス権をもっている。その後、IDチェーン内にリストアップされているすべてのCTへ許可を表すGRANTが送られる。GRANTの送信はアトミックに行われ、つまり1つのCTのすべての分岐が同時にまたはシーケンシャルにGRANTすなわち許可を受け取るが、これは該当するCTと複数のPACにおける種々のEnhSubConfのSubConfの開始順序に作用を及ぼす他の何らかのCTとの間における別のアクティビティによる中断が生じることなく行われる。
【0159】
ここで重要であるのは、GRANTの到来するLow−Level−CTは中断されることなくただちに対応するSubConfをPAにコンフィギュレーションし、FILMOに書き込むかまたはコンフィギュレーション順序を示すリストに書き込むことであり、すなわちSubConfをいつFILMOに書き込まなければならないのかまたはPAにコンフィギュレーションしなければならないのかを示すリストに書き込むことである。この順序はデッドロック回避のために重要である。SubConfがまだLow−Level−CTに記憶されていないならば、Low−Level−CTはその上位のCTにGETすなわちゲットないしは取得を用いてSubConfを要求する必要がある。本発明による方法を満たす目的で、アルゴリズムにより許可されるかまたは要求されるかぎり、GETとSubConfの到来(DOWNLOAD)との間に、ローカルなSubConf(すなわちEnhSubConfにより呼び出されるのではなくローカルなPAだけに該当するSubConf)をコンフィギュレーションすることができ、あるいはFILMOにロードすることができる。遅れて到来するGRANTにより開始される別のEnhSubConfのSubConfは、もっぱらDOWNLOADの到来後およびコンフィギュレーション後、もしくはFILMOへのロード後に開始させることができる。
【0160】
SubConf構築の例は特許出願PACT5およびPACT10から公知である。本発明による方法の基本的な相違点は、IDチェーンによるSubConf呼び出しを別個に処理することである。この場合、IDチェーンは以下の特性をもつSubConfの特別な形態である:
パフォーマンスの理由で有用であるのは、個々のSubConfをCTTREE内に記憶しすること、いわばキャッシュすることである。この場合、必要に応じてSubConfを完全にロードしなおす必要はなく、対応するSubConfをキャッシュしたCTからダイレクトに下位のCTへSubConfが送られる。IDチェーンにおいて重要であるのは、1つの中央のCTからすべての下位のCTへ本発明によるプロトコルに従いロードされることである。この目的で最も効率的であるのは、CTTREEの最も下に位置しかつIDチェーン内で指定されているすべてのPACを葉として所有するCTがIDチェーンをキャッシュすることである。もっと下に位置するCTはキャッシュをしてはならない。その理由は、それらのCTはIDチェーンのすべてのPACに関してもはや中央には位置していないからである。また、もっと上に位置するCTであると、いっそう長い通信経路が必要となってしまうことから効率性が失われてしまう。要求されたEnhSubConfのために完全なIDチェーンを備えたCTにリクエスト REQUESTが達すると、そのCTはさらに下に位置する関与するCTへGRANTを発し、その際、IDチェーンからの情報は、個々の分岐で必要とされる少なくとも一部分がそれぞれ伝送されるように分割(スプリット)される。このスプリットにあたりクロスを避けるために、次のCT段もEnhSubConfの一部分のすべてのGRANTを発し、しかもそれが他のEnhSubConfのGRANTにより中断されることなく行われるようにする必要がある。これを実現する1つの可能性は、IDチェーンの該当部分をアトミックに伝送することである。なお、IDチェーンのキャッシングを制御するために有用であるのは伝送中、分割されたIDチェーンをたとえば「SPLIT」フラグなどによって表すことである。
【0161】
IDチェーンは、CTTREEの階層においてIDチェーン内で参照されるすべてのPACについてもはや中央には位置していないCTにロードされると、ただちに分割される。この場合、IDチェーンは階層内の単一のCTによってはもはや管理されずキャッシュされない。複数のCTによってそれぞれ、個々のCTの葉であるPACをそれぞれ含むIDチェーンの一部分が処理される。REQUESTは、該当するすべてのPACを管理するCTまで必ず転送しなければならない。つまりREQUESTをGRANTに変換可能であって階層的に最初であり(PACからみて)最も効率的でもあるCTは、分割されていない完全なIDチェーンを所有する葉から出発して昇順に第1のCTである。PACからIDへの割り当てをもつリストの管理について詳しい説明は不要である。このリストはCT内で実行されるプログラムによって処理してもよいし、あるいは下位のCTを制御するための一連のアセンブラ命令によって構成してもよい。完全なIDチェーンは以下のように構築される:
IDEnhSubConf →IDチェーン{SPLIT,(PAC :IDSubConf1),(PAC :IDSubConf2),(PAC :IDSubConf3),...(PAC:IDSubConfn)}
6.1 SubConfのプリキャッシュ
CTTREE内でSubConfは特定の条件に従いプリロードされ、つまり実際に必要とされるよりも前にキャッシュされる。この方法によってCTTREE内におけるパフォーマンスが格段によくなる。
【0162】
実施例:
多数のプリキャッシュ要求が提供されているが、最も頻度の高い2つは以下のとおりである:
a)Low−Level−CTにおいて処理される目下のSubConf内で、別のSubConfのためのロード要求がプログラミングされる。
【0163】
b)PA内のデータ処理中に、どのSubConfをプリロードすべきかが決定される。PAに割り当てられたCTは、CT内で適切にSubConfのIDに変換されるトリガによって、SubConfをプリロードするよう要求される。また、SubConfのIDをPA内で計算したり、あるいは事前にそこにおいてコンフィギュレーションしておくことも可能である。この場合、対応づけられたCTへの通知にはIDがそのまま含まれている。
【0164】
ロードすべきSubConfはキャッシュされるだけであり開始されない。開始は、事前のキャッシュなしでSubConfが開始されたであろう時点ではじめて行われる。相違点は、開始要求時点でSubConfがすでにLow−Level−CTまたは中位のCTに記憶されており、したがってただちにコンフィギュレーションされるかまたは非常に迅速にLow−Level−CTにロードされ、そのあとで開始されることである。CTTREE全体の時間のかかる実行は省かれる。
【0165】
SubConfを生成するコンパイラにより、どのSubConfをそのつど次のものとしてキャッシュすべきかを判定することができる。プログラム実行グラフにおいて、どのSubConfを次のものとして実行できるかが示されている。これらはそのつどキャッシュされる。プログラム実行によりランタイムに、キャッシュされたSubConfのいずれを実際にスタートさせるかが判定される。CTのメモリ内に他のSubConfのためのスペースを得る目的で、特定のSubConfをプリロード(プリキャッシュ precache)するメカニズムに応じて、キャッシュされたSubConfを取り除くメカニズムがインプリメントされる。プリロードと同様、特定のSubConfの消去は、プログラム実行グラフに基づきコンパイラにより予測可能である。CTのメモリを適切に管理する目的で付加的にCT内に、SubConf(たとえば最後にコンフィギュレーションされたSubConf、最初にコンフィギュレーションされたSubConf、最も稀にしかコンフィギュレーションされないSubConf、PACT10参照)を消去するための通常のメカニズムがインプリメントされている。ここで重要なのは、明示的にプリロードされたSubConfを消去可能なだけでなく、CTメモリ内のいかなるSubConfも消去できることである。ガーベジコレクタによって特定のSubConfがすでに除去されてしまっているならば、明示的な消去はその効力を失い、無視される。
【0166】
明示的な消去を、任意のSubConfによって開始させることのできる命令によって生じさせることができる。これにはツリー内の任意のCT、固有のCT、あるいはそれどころか同じSubConfの明示的な消去(すなわち命令の存在する固有のSubConfの消去、ただし適正な終了が保証されなければならない)も含まれている。明示的な消去の別の可能性は、所定の状態に基づきPA内でトリガを生成することであり、このトリガはCTへ転送され、明示的消去のための要求として評価される。
【0167】
6.2 各PAE間の依存性
1つのEnhSubConfに属する種々のPACのPAEがコンフィギュレーションされる順序が重要ではないならば、この時間的依存性の遵守を保証するために別の方法が提案される。複数のPACにおいて定義どおりにやはり複数のCTが存在しているならば、各PACにおいて次のものの前にコンフィギュレーションされていなければならないすべてのPAEがこれまですでにそのGOを同じコンフィギュレーションから受け取っているか否かについて情報を交換する目的で、それらは互いに了解し合っている。時間的依存性を解消し許可されないGOの送信を回避する1つの可能性は、各CT間でコンフィギュレーションのための排他的権限を交換し、適正な順序がそれらのコンフィギュレーションの順番とコンフィギュレーション権限の受け渡しによって保証されるようKWを並べ替えることである。依存性の強さによっては、両方のCTが割り当てられたそれらのPAを並行して同期ポイントまでコンフィギュレーションし、ついで互いに待ち、その後、次の同期ポイントまたは(存在しなければ)EnhSubConfの終了まで並行してさらにコンフィギュレーションするようにしても十分である。
【0168】
7.SubConfマクロ
できりかぎり多くのSubConfをキャッシュ可能であれば、SubConfのキャッシュは格別効率的である。殊に高級言語コンパイラを考慮すると、キャッシングの効率的な使用は有用である。その理由はコンパイラはアセンブラレベル(VPUテクノロジーではSubConfレベル)において、頻繁に反復されるルーチンを生成するからである。
【0169】
SubConfをできるかぎり頻繁に再利用するために、以下の特性をもつSubConfマクロ(SubConfM)を採用すべきである。すなわち、
・絶対的なPAEアドレスを指示しない。むしろSubConfは相対アドレスだけしか用いない事前にレイアウトされたマクロである。
【0170】
・アプリケーションに依存する定数はパラメータとして引き渡される。
【0171】
SubConfがPAにロードされる時点ではじめて、絶対アドレスが計算される。パラメータはその実際の値と置き換えられる。このためオリジナルのSubConfの変形されたコピーが次のように作成される。すなわち、(i)このコピーがCTのメモリに格納されるようにする(一体化されたFILMO)、または(ii)ただちにPAに書き込まれ、拒否されたKW(REJ)だけがFILMOに書き込まれるようにする(別個のFILMO)。(ii)の場合には殊に、パフォーマンスの理由からハードウェアによるアドレス加算器の構成が提供され、これはPA/FILMOに対するCTのインタフェースポートのところにじかに配置される。同様にパラメータ変換のハードウェアインプリメンテーションも考えられ、これはたとえばコンフィギュレーション前にロードされるルックアップテーブルにより実現される。
【0172】
8.キャッシュ統計の書き戻し
WO99/44120(PACT10)によればアプリケーションに依存するキャッシュ統計とキャッシュ制御が公知である。この方法によれば、付加的にデータに依存するキャッシュ特性の最適化が提供される。それというのもデータに依存するプログラム特性はそのままキャッシュ最適化に表れるからである。
【0173】
公知の方法の欠点は、キャッシュ特性がランタイム中にはじめて最適化されることである。アプリケーションの再スタートにあたり統計は失われてしまう。さらにクリティカルになるのは、SubConfがキャッシュから取り除かれたときにもその統計が失われてしまうことであり、同じアプリケーションの処理自体において新たに呼び出されたときにもはや利用できなくなることである。
【0174】
本発明によれば、アプリケーション終了時またはSubConfがキャッシュから取り除かれたとき、キャッシュ統計が該当するIDとともにまずはじめに既知のCT間通信を用いて、ルートCTが個々の統計を受け取るまで次のレベルのCTへ送られる。これはその統計を適切なメモリに記憶し、用途に応じて揮発性メモリまたは不揮発性メモリまたは大容量記憶装置に記憶する。このメモリへのアクセスは必要に応じてホストを介して行われる。その際にこの記憶は、SubConfを新たにロードすると統計もいっしょにロードできるよう、統計が個々のSubConfに対応づけられるようにして行われる。SubConfを新たにスタートすると、統計はいっしょにLow−Level−CTへロードされる。
【0175】
コンパイラは中立的な空の統計を構築するか、または適切な方法に従いさしあたり適切であると思われる統計をすでに生成しておく。ついでコンパイラによりまえもって与えられた統計は、既述の方法に従いランタイムに最適化されて格納され、アプリケーションにおける以降の呼び出しにおいて最適化されたかたちで提供される。
【0176】
SubConfが複数のアプリケーションによってまたは1つのアプリケーション内で種々のLow−Level−CTによって利用される(または種々のルーチンから呼び出される)ならば、キャッシュ統計の導入は有用ではない。なぜならばその場合には、それぞれ異なる呼び出し特性および実行特性によってそれぞれ異なる統計が呼び出されるからである。したがって用途に応じて、統計を用いないかまたはSubConfMを用いる。
【0177】
SubConfMを用いた場合、キャッシュ統計がパラメータとして受け渡されるように、パラメータの受け渡しが拡張される。SubConfMが終了すると、SubConfMを以前に呼び出したSubConf(ORIGIN)にキャッシュ統計が書き戻される。ついでパラメータがORIGINのキャッシュ統計とともにORIGIN終了時に既述の方法に従って記憶され、以降の呼び出しにおいて相応にロードされ、パラメータとして再びSubConfMに引き渡される。アプリケーションに関連するキャッシュ統計の導入ならびに記憶は基本的にマイクロプロセッサ、DSP、FPGAおよび類似のモジュールのためにも適している。
【0178】
9.コンフィギュレーションシステムの構築
PACT07には、アドレッシングされパイプライン化されるように構築されているデータバスシステムについて記載されている。このバスシステムは一般に、コンフィギュレーションデータの伝送のためにも適している。データおよびコンフィギュレーションを同じバスシステムを介して伝送する目的で、伝送されるデータの形式を示すステータス信号が採用される。この場合、バスシステムは、CTが事前にそのCTよってアドレッシングされたPAEのコンフィギュレーションレジスタおよびデータレジスタをオプションで読み戻すことができるように構成される。このバスシステムを介して、PACT07の意味でグローバルなデータもKWも伝送される。CTは適切なバスノードとして動作する。ステータス信号は伝送モードを表す。たとえば信号S0とS1を用いた以下の構成が可能である:
【0179】
【表7】
Figure 2004506261
【0180】
FILMOプロトコルに従いCTに拒否を通報するために、PACT07によるバスプロトコル(ACK)に信号REJが追加される。
【0181】
10.個々のレジスタの統合
コンフィギュレーションデータの論理的な分離のため、独立したコンフィギュレーションレジスタが用いられる。論理的な分離は差分コンフィギュレーションのために殊に必要とされる。それというのも論理的に分離されたコンフィギュレーションデータはたいてい、差分コンフィギュレーション実行時には既知でないからである。これにより個別の多量のコンフィギュレーションレジスタが生じるが、個々のレジスタには比較的僅かな情報しか含まれていない。以下の例では、3bitのコンフィギュレーション値KW−A,B,C,Dが互いに無関係に書き込まれるかまたは変更される可能性がある。
【0182】
【表8】
Figure 2004506261
【0183】
このようなレジスタセットは非効率的であり、その理由はCTバスの帯域幅の一部分しか使われないからである。
【0184】
この場合、コンフィギュレーションレジスタの構造を格段に最適化することができ、それによればそれぞれ1つのコンフィギュレーション値に、目下のコンフィギュレーション伝送において値を上書きすべきか否かを示す1つのイネーブルが対応づけられる。上述の例におけるコンフィギュレーション値KW−A,B,C,Dが1つのコンフィギュレーションレジスタにまとめられる。各値には1つのイネーブルが割り当てられる。たとえばEN−xが論理値「0」であると、KW−xは目下の伝送では変更されず、EN−xが論理値「1」であると、KW−xは目下の伝送により上書きされる。
【0185】
【表9】
Figure 2004506261
【0186】
11.ウェーブ・リコンフィギュレーション(WRC)
PACT13によってリコンフィギュレーション方法(ウェーブ・リコンフィギュレーション Wave−Reconfiguration=WRC)が公知であり、これによればリコンフィギュレーションはダイレクトに時間的にデータストリームに同期されている(PACT13の図24)。
【0187】
ウェーブ・リコンフィギュレーションの機能にとって重要であるのは、コンフィギュレーションされていないPAEはデータとトリガを受け取りもしないし送りもしないことである。つまり未コンフィギュレーションのPAEは完全に中立的に振る舞うことになる。これはVPUテクノロジーにおいてトリガバスおよびデータバスのためにハンドシェーク信号(RDY/ACK)を使用することにより達成できる(PACT02参照)。この場合、コンフィギュレーションされていないPAEは、
・RDYを発生せず、これによりデータまたはトリガは送信されない。
【0188】
・ACKを発生せず、これによりデータまたはトリガは受信されない。
【0189】
この機能はウェーブ・リコンフィギュレーションに役立つだけでなく、VPUテクノロジーのランタイムリコンフィギュレーションに対する実現可能な基礎を成すものでもある。
【0190】
次に、この方法の拡張について述べる:リコンフィギュレーションは実行中のデータ処理と同期合わせされる。PA内のデータ処理において判定可能であるのは、
i.リコンフィギュレーションにあたりどの次のSubConfが必要とされるか、
ii.どの時点でSubConfをアクティブにしなければならないか、つまりどのデータパケット(ChgPkt)とともにSubConfを結合しなければならないか、
ということである。どのコンフィギュレーションがロードされるかの判定は条件によって下され、トリガ(ウェーブ・コンフィギュレーション・プリロード WaveConfigurationPreload=WCP)によって表される。この場合、データパケットとSubConfのKWとの結合はデータバスプロトコル(RDY/ACK)とCTバス(CHECK,ACK/REJ)プロトコルによって保証される。付加的な信号(WaveConfigurationTrigger=WCT)によって、どのデータパケット(ChgPkt)において再コンフィギュレーションされるべきか、および場合によってはどの新たなコンフィギュレーションを実行もしくはロードすべきかが表される。WCTは簡単な付加的なラインまたはVPUテクノロジーのトリガシステムによって実現できる。複数のWCTを同時にPAにおいて使用することができ、その際、各信号によって他の再コンフィギュレーションを制御することができる。
【0191】
11.1 ウェーブ・リコンフィギュレーションの制御
アプリケーションに依存する2つのWRCを区別することができる。すなわち、
A1)1つのSubConf内におけるウェーブ・リコンフィギュレーション
A2)種々のSubConfにおけるウェーブ・リコンフィギュレーション
ハードウェア技術的には基礎を成す2つのインプリメンテーション形式を区別するのがよい:
I1)CTにおけるインプリメンテーションおよびそのつど要求後の実行。
【0192】
I2)PAEにおける付加的なコンフィギュレーションレジスタ(WRCReg)によるインプリメンテーション。WRCRegの実現可能な構成についてはあとで説明する。WRCは、
a)該当するSubConfの最初のコンフィギュレーションにあたりCTによってプリロードされる。
【0193】
b)あるいは1つのSubConf実行中、到来するWCPに依存してCTによりプリリードされる。
【0194】
データ処理中、それぞれ有効なWRCRegは1つまたは複数のWCTによって選択される。次に、FILMO方式に対するウェーブ・リコンフィギュレーションの作用について述べる:
11.1.1 A1によるWRCの実行
同一のSubConf(A1)内でリコンフィギュレーションはWRCによっていつでも可能である。次にSubConfは通常どおりコンフィギュレーションされ、このことでFILMO方式が保証される。ここで要求されるのは、WRCはプログラム実行中はもっぱら、すでにSubConfに割り当てられたリソースを用いることである。
【0195】
事例I1)
WRCは該当するPAEの差分コンフィギュレーションによって実行される。WCPはCTへ導かれる。WCPに依存して、コンフィギュレーションされるSubConf内のトークンにジャンプする:
【0196】
【外1】
Figure 2004506261
【0197】
CTとWCPとの間のインタフェース(TrgIO)は ”set TriggerPort” によってコンフィギュレーションされる。TrgIOはCTに対するPAEのようにFILMOプロトコルに従って振る舞い、つまりTrgIOは正確にCHECK,DIFFERENTIAL,GO プロトコルに対応し、各トリガに対し個別にまたはグループで共通に
特定のトリガが
すでにコンフィギュレーションされているか(REJ)
または
コンフィギュレーション準備状態にあるか(ACK)
に従い、
ACKまたはREJによって応答する。PACT10の図8をこのプロトコルについて相応に拡張することができる。WCTが到来すると個々のPAEは対応するコンフィギュレーションを開始する。
【0198】
事例I2)
すでに完全なSubConfが個々のPAEにロードされているため、WRCRegがすでにコンフィギュレーション中に書き込まれWCPが省略される、
または、
特定のWCPに依存してCTにより決められたWRCがWRC内で定義された種々のWRCRegにロードされる。これが殊に必要とされるのは、SubConfから出発して発生したWRTにより異なる複数のWRCに分岐するときであり、これは物理的なWRCRegとして設けられている。
【0199】
PAE内のトリガポート TriggerPortがコンフィギュレーションされ、到来する特定のWRTにより特定のWRCRegが選択される:
【0200】
【外2】
Figure 2004506261
【0201】
11.1.2 A2によるWRCの実行
事例I1)
CTによる種々のSubConf間のWRCの実行は、原則的にA1/I1に対応する。ここで重要なのは、トリガポートとCT内部の実行がFILMO方式に対応していることである。PAEによって拒否(REJ)されたKWはFILMOに書き込まれる。基礎的なことについてはPACT10によってすでに知られている。
【0202】
すべてのWCPはCTにより実行され、これによりデッドロックのない(リ)コンフィギュレーションが選択されるようになる。同様に、WCTにより表されているリコンフィギュレーションの時点がCTへ導かれ、そのCTによってアトミックに処理される。すなわちリコンフィギュレーションにより該当するすべてのPAEはWCTによるリコンフィギュレーション要求を時間的に同時に受け取るかまたは少なくとも、別のリコンフィギュレーション要求により中断されることなく受け取る。このことによってやはりデッドロックに陥らないことが保証される。他の実施形態については本明細書においてすでに説明している。
【0203】
事例I2)
すでに完全なSubConfが個々のPAEにロードされているので、WRCRegがすでにコンフィギュレーション中に書き込まれ、WCPが省略される、または、
特定のWCPに依存してCTにより決められたWRCはWRCに定義されている種々のWRCRegにロードされる。これが殊に必要とされるのは、SubConfから出発して該当するWRTにより異なる複数のWRCに分岐されるときであり、これは物理的なWRCRegとして設けられている。
【0204】
ここで避けなければならないのは、複数のWCTがそれぞれ異なる時点にそれぞれ異なるPAEに導かれることである。なぜならばこれによってデッドロックが生じてしまうからである。例:SubConf SAのWCT1はクロックt1においてPAE p1に達し、SubConf SBのWCT2はこの時点にPAE p2に達する。各PAEはこれに応じてコンフィギュレーションされる。時点t2においてWCT1はp2に達し、WCT2はp1に達する。ここでデッドロックが発生する。ここで言及しておくと、この例は原則的にA2−IIにも適用することができ、そのためそこではWCTはCTのトリガポートを介して導かれ、CTによって処理される。
【0205】
デッドロックは次のようにしても回避される。すなわち、種々のPAE(ソース)によって生成されたWCTが中央のインスタンス(ARB)により、ある時点で正確に1つのWCTが該当するPAEに送られるよう優先順位が付けられる。優先順位づけのために様々な方法を適用することができ、例としてそのうちのいくつかを挙げておく:
a)従来技術によるアービタの利用、たとえばPACT10によるラウンドロビンアービタが適している。この場合、WCT発生の正確な時間順序は一般に失われる。
【0206】
b)時間順序を遵守しようとするならば、たとえば以下の方法が提供される:
b1)FIFOはまずはじめ、到来するWCTをそれらの順序に従い記憶する。同時に到来するWCTはいっしょに記憶され、ある時点にWCTが現れなければエントリは発生しない。FIFOの後ろに接続されたアービタは、同時に複数のエントリが発生しているならばそれらのエントリのうちの1つを選び出す。
【0207】
b2)PACT18によれば、対応づけられた時間情報(タイムスタンプ)を用いてイベントを時間に従いソートすることができる。タイムスタンプの評価により、WCTの時間的に適正な順序を保証することができる。
【0208】
ARBから該当するPAEへWCTを適切に転送することにより、優先順位のつけられたWCTが適正な順序でPAEに到来することが保証される。順序を保証する最も簡単なやり方は、ARBから個々のPAEへ送出されるすべてのトリガが正確に同じ長さと同じ伝播時間をもつようにすることである。これは適切なプログラミングまたはルータにおける適切なレイアウトによって保証され、その際、ライン伝送が相応に保証されるようにし、レイテンシ補償のため適切な時点にレジスタが投入される。さらに適切な転送を保証するためにも、PACT18により公知の情報の時間的同期合わせ方法を用いることができる。
【0209】
WCPの明示的な優先順位づけは不要である。なぜならばCTへ導かれるWCPはFILMO方式によりCT内ですでに説明したようにきちんと処理されるからである。時間順序の遵守を場合によってはたとえばFILMO方式に従って行うこともできる(2.1eを参照)。
【0210】
11.1.3 すべての事例に対する注釈
ウェーブ・リコンフィギュレーションのために付加的なPAEのコンフィギュレーションレジスタはFILMO方式に従って動作し、すなわちレジスタは書き込まれた状態およびインプリメントされた実行をサポートし、それに従ってプロトコル(たとえばCHECK/ACKREJ)に応答する。
【0211】
11.2 リコンフィギュレーションプロトコルおよびWRCRegの構造
次に、3つの択一的なリコンフィギュレーションプロトコルとして、ウェーブ・リコンフィギュレーションの方法について詳しく説明する:
通常のCTプロトコル:CTはリコンフィギュレーション要求到来後にはじめて各PAEを個別にリコンフィギュレーションする。この場合、ChgPktの到達した各PAEのためのCTはリコンフィギュレーション要求を受け取る。この方法は効率が悪い。その理由は、パイプライン化されたバスシステムのためには殊に通信の手間が非常にかかるからである。
【0212】
同期合わせされたパイプライン:このプロトコルはすでにかなり効率的である。パイプライン化されたCTバスはバッファとして用いられ、これによればPAEに割り当てられたパイプラインレジスタはそのPAEのKWを、そのPAEがKWを受け入れることができるまで記憶する。これによりCTバスパイプライン(CBP)はたしかにブロックはされるけれども、ウェーブ・リコンフィギュレーションのKWによってそれを完全に満たすことができる。
【0213】
a)CBPがデータパイプラインと同じ方向に進むならば、PAEがKWを受け入れた後、すぐあとに続くPAEのKWがそのパイプラインレジスタに現れるまで、そのつどいくつかのクロックだけレイテンシが失われてしまう。
【0214】
b)CBPがデータパイプラインに逆行するならば、すでに特定のPAEのところに到来しているKWによってCBPを完全に満たすことができる。このようにすれば、時間的な遅れを伴わずにウェーブ・リコンフィギュレーションが実現される。
【0215】
同期合わせされたシャドウレジスタ(最も効率的なプロトコル):
CTはSubConf(i)の選択後ただちにChgPkt(ii)の到来前に新たなKWをすべてのPAEのシャドウレジスタに書き込む。シャドウレジスタは任意の形態でインプリメント可能である。たとえば以下の可能性が提供される:a)本来のコンフィギュレーションレジスタの前に接続されたレジスタ段、b)マルチプレクサを介して選択される並列なレジスタセット、c)本来のコンフィギュレーションレジスタの前におかれたFIFO段。ChgPkt(ii)がPAEに到来する時点にPAEはシャドウレジスタを対応するコンフィギュレーションレジスタにコピーする。このコピーは最適化された事例では、いかなる動作クロックも失われてしまわないように行われる。ChgPktが到来したにもかかわらずシャドウレジスタが書き込まれていなければ(つまり空であれば)、データ処理はシャドウレジスタにKWが到来するまで停止される。必要に応じて、ChgPktによるリコンフィギュレーション要求が1つのパイプライン内でPAEから次のPAEへ転送される。
【0216】
12.並列性 Parallelityの形式およびシーケンシャルな処理
十分に高いリコンフィギュレーションパフォーマンスによって、アレイにおけるシーケンシャルな計算モデルを描くことができ、その際、Low−Level−CTがほぼ慣用的なコードフェッチャを成すようにし、アレイはマイクロプログラミング可能なネットワーキングを用いたVLIW−ALUとして動作する。さらにアレイにおける並列性のすべての形式を計算エレメントから描くことができる:
パイプライン:パイプラインは直列接続されたPAEによって構築可能である。VPUによるプロトコルによってパイプラインの簡単な制御が可能となる。
【0217】
命令レベル 並列性:並列なデータ経路は並列接続されたPAEによって構築可能である。VPUによるプロトコルおよび殊にトリガ信号によって簡単な制御が可能となる。
【0218】
SMP,マルチタスクおよびマルチユーザ:コンフィギュレーション方法のデッドロックがないことにより、独立した複数のタスクを1つのPAにおいて自動的に並列に実行することができる。
【0219】
PAEが十分な個数あれば、慣用のマイクロプロセッサにおけるすべての基本部分もPAにコンフィギュレーションすることができる。この場合、タスクのシーケンシャルな処理をCTなしでも行うことができる。これはコンフィギュレーションされたプロセッサに部分的にたとえばALUにおいて他の機能を与えようとするとき、あるいはそれを完全に置き換えようとするときにはじめて、再びアクティブにする必要がある。
【0220】
13.実施例および図面
図1〜図3にはSubConfの構造が例示されている。CW−PAEはアドレスPAEをもつPAE内のKWの番号を表す(たとえば2−3はアドレス3をもつPAEのための2番目のKW)。さらにここにはフラグ(C=Check,D=Dfferential,G=GO)が示されており、セットされているフラグには「*」が付されている。
【0221】
図1にはSubConfの最も簡単な線形の構造が描かれており、これはたとえばPACT10により一般的なものである。PAEは第1のコンフィギュレーション中テストされ(C)、その後、さらにコンフィギュレーションされ(D)、最後に開始される(G)(アドレス0のPAEを参照)。テストおよび開始を同時に行うことも可能である(CG、アドレス1をもつPAEを参照、0101)。
【0222】
図2には、バリア(0201)が挿入されるように再ソートされたSubConfが描かれている。バリアの前にすべてのPAEがテストされなければならない。その後、バリアはすべてのACKまたはREJが到来するまで待機する。REJが現れなければバリアは飛び越えられ、差分コンフィギュレーションが実行されて、PAEが開始される。REJが現れるとバリアは飛び越えられず、その代わり、REJがもはや現れなくなるまでFILMOプロセスが実行され、その後、バリアが飛び越えられる。バリアの前に各PAEがテストされ、そのあとではじめてPAEを差分コンフィギュレーションしてスタートさせることができる。テストとスタートがもとから同一のサイクルにあったならば、そのときにはKWを分離する必要がある(0101→0202,0203)。
【0223】
図3の場合にはSubConfは次のように再ソートされる。すなわちこの場合、バリアが不要とされ、その代わりにチェックとACK/REJ到来との間にレイテンシが挿入される一方、他のチェックは実行されないよう、再ソートが行われる。この目的でKWはアトム(0301)にまとめられ、1つのアトムにおける最初のKWはチェックを実行し(0302)、その後、ブロックはレイテンシが満了するまで、差分KWもしくは場合によってはNOP(0303)によって満たされる。差分KWの個数はレイテンシに依存する。図示する際の都合上、ここでは一例として3クロックのレイテンシを選んだ。0304においてACK/REJが発生し、それに応じて、チェックを含めることのできる(必須ではない)次のKWによりコンフィギュレーションをさらに続けるのか、あるいはREJゆえに順序を維持するため中断するのかが判定される。
【0224】
ここで重要であるのは、PAE Xのコンフィギュレーションにおいてまずはじめにチェックが実行され、その後、ACK/REJの到来を待ち、この期間中、すでにチェックされたPAEをさらにコンフィギュレーションでき、あるいはNOPを挿入しなければならないことである。そのあとではじめてPAE Xをさらにコンフィギュレーションすることができる(0306)。0307において、NOPをチェック後に挿入しなければならない。なぜならば差分コンフィギュレーションを使えないからである。0308には複数のブロック(ここでは3)を越えてコンフィギュレーションを分割する様子が示されており、この場合、チェックは省かれる(0309)。
【0225】
図4には、PAEの状態を実現するために考えられる状態機械が示されている。基本状態はIDLE(0401)である。フラグCHECKのコンフィギュレーション(0405)により、状態機械は状態「割り当て済み」に移行する(0402)。フラグLASTのコンフィギュレーション(0409,0408)によってPAEが開始され、状態は「コンフィギュレーション済み」になる(0404)。LocalReset(0407)によりPAEは「未コンフィギュレーション」になる(0403)。この実施例では、PAEはそのステータスの問い合わせ後にはじめてLOCK/FREE(0406)によりIDLEに戻る。LocalResetおよびLASTもCTからブロードキャストにより送ることができる(モジュールID参照)。
【0226】
図5〜図9には、セクション5によるFILMO方式の考えられるインプリメンテーションが示されている。ここでは、PAに対するインタフェースとして用いられる重要なコンポーネントだけが描かれている。CTに対するインタフェースは示されていない。それらは従来の技術(PACT10)に従い十分にインプリメント可能であり、必要に応じてごく僅かな修正しか必要としない。
【0227】
図5には、5.1によるSTATELUTを使用した場合のPAに対するCTインタフェースの構造が示されている。RAMおよび一体化されたFILMO(0502)を備えたCT0501は抽象化されて描かれており、ここではこれ以上詳しくは説明しない。それというのもPACT10およびPACT05による機能は従来技術によって十分に知られているからである。CTはPAのステータス(0503)を信号LOCKのセット(0504)によって問い合わせ、それによれば各PAEはそのステータスを最後のLOCK以降に変えており、その変更をSTATELUT(0505)に転送する(0506)。この転送は、STATELUTが各PAEにそれらのステータスを割り当てることができるように行われる。従来技術によればこの目的で複数の方法を使用することができ、たとえば各PAEはそのアドレスをステータスとともにSTATELUTへ送ることができ、STATELUTは各PAEごとにそのアドレスのところにそのステータスを記憶する。
【0228】
CTはKW(0510)をまずはじめにレジスタ(0507)に書き込む。これと同時に、STATELUT(0505)において個々のKWに該当するPAEのアドレス(#)のところでルックアップが実行される。PAEのステータスが「未コンフィギュレーション」であればCTはACK(0509)を受け取り、そうでなければREJを受け取る。KWをPAに書き込むため簡単なプロトコルコンバータ(0508)によりACKはRDYに変換され、PAEへの書き込みを阻止するためREJはnotRDYに変換される。さらに付言しておくと、PAへのおよびPAの中へのLOCK,RDYおよびKWの転送はPAからのPAEのステータスの応答同様パイプライン化され、つまりレジスタを通って進む。
【0229】
図6には5.2による方法が一例として示されている。技術的な手間は比較的僅かである。FILMO(0602)の統合されたCT(0601)は、1つのアトムにおいてPA(0603)へ送信される1番目のKW(0604)に対してのみ確認応答(0605)(ACK/REJ)を待つよう変形されている。この確認応答は1つのアトムの最後のKWにおいて評価される。ACKであれば次のアトムによってコンフィギュレーションが続けられ、REJであればSubConfのコンフィギュレーションが中止される。
【0230】
図7には5.3によるFILMO(0701)の構造が示されている。このFILMOにはRELJMPメモリ(0702)が割り当てられており、RELJMP内のエントリは各々1つのFILMOエントリに割り当てられている。この場合、FILMOはPACT10による統合されたFILMOとして構成されているので、RELJMPはコンフィギュレーションすべきKWに対するチェーン形リストを成している。さらに殊にここで述べておくと、この事例ではFILMOにPACT10によるCT命令およびそれらのチェーンを含めることもできる。RELJMPにおけるチェーン形リストは以下のようにして生成される:読み取りポインタ(0703)は、目下コンフィギュレーションされるKWを指す。最後に拒否(REJ)されたKWのアドレスが0704内に格納される。目下コンフィギュレーションされるKW(0706)がPA(0707)によって受け入れられると(ACK,0708)、0702内で0703の指すアドレスのところに格納されている値が0703に加算される。これにより相対ジャンプが生じるようになる。これに対し目下コンフィギュレーションされるKWが拒否(REJ,0708)されるとまずはじめに、0703と0704との差が減算器(0705)により計算されてRELJMPに格納され、これは0704に格納されている最後に拒否されたKWのアドレスのところに記憶される。0704に0703の目下の値が記憶される。その後、0702において0703の指すアドレスに記憶されている値が0703に加算される。これにより相対ジャンプが生じるようになる。この制御は、既述のプロセスに従いインプリメントの行われる状態機械(0709)によって引き継がれる。0703か0704を選ぶことで、0709により演算に従いマルチプレクサ(0710)を介してRELJMPに対するアドレスが決定される。0701と0702を効率的に同時にそれぞれ異なるようにアドレッシングできるようにする目的で有用であるのは、別個にアドレッシング可能な2つの別個のメモリが得られるよう、インプリメントの際に0702を物理的に0701から分離することである。0711は相対アドレッシングの機能をもつ。RELJMP内の1つのエントリを指すアドレスがRELJMPの内容に加算され、次のエントリのアドレスが得られる。
【0231】
図8には、変形されたガーベジコレクタを用いた5.3による方法の実現可能なインプリメンテーションが示されている。FILMO(0801)内のエントリは線形に管理され、これによりRELJMPは不要となる。0801は別個のFILMOとしてインプリメントされている。PA(0802)に書き込まれるKW(0803)が読み出しポインタ(0804)によりアドレッシングされる。すべてのKWはそれらのコンフィギュレーションの順序でFIFOまたはFIFOに似たメモリ(0805)に書き込まれ、このメモリはたとえばシフトレジスタの形態をとることもできる。このメモリは、確認応答(RDY/ACK,0806)の到来までにPAへのKWの送信のクロックがどれくらい経過するのかにきちんと合わせた深さである。
【0232】
・REJが到来すると、このREJに対応づけられている拒否されたKW(これはこの時点ではFIFOの出口に存在する)が0801に書き込まれる。このためREJはFILMOのための書き込み信号として用いられる(REJ−>WR)。書き込みアドレスは書き込みポインタ(0807)によって生成され、これは書き込みアクセス後にインクリメントされる。
【0233】
・ACKが到来したときには何も起こらず、このACKに割り当てられたコンフィギュレーションされるKWは無視され、0807は変えられないまま維持される。これによりFILMO内の拒否されたKWから新たな線形のシーケンスが生じる。パフォーマンスの理由から、別個の書き込みポートと読み出しポートを備えたデュアルポート形RAMとして構成されたFILMOのインプリメンテーションが提案される。
【0234】
図9には5.4による方法のインプリメンテーションが示されている。この図からわかるようにこれは5.3による方法の変形実施形態である。読み出しポインタ(0909)により、PA(0901)に書き込むべきKW(0902)がFILMO(0910)においてアドレッシングされる。0902によりコンフィギュレーションすべきPAEのアドレスとフラグ(0902a)がまずはじめに部分的にPAに送られる。コンフィギュレーションすべきPAEのアドレスをもつKWがFIFOに似たメモリ(0903、0805に相応)に書き込まれる。0902aはパイプライン化されてPAへ伝送される。アドレッシングされたPAEにおいてアクセスが評価され、確認応答が行われる。確認応答(RDY/ACK)も同様にパイプライン化されて返送される(0904)。0903は、確認応答(RDY/ACK,0904)の到来までPAへの0902aの送信のクロックがどれくらい経過するのかに正確に合わせて遅れる。
【0235】
・ACKにより確認応答されたならば、この確認応答に対応づけられており903の出口に存在する完全なKW(0905)(アドレス+データ)が、パイプライン化されてPA(0906)に送られる。このための確認応答は待ち望まれない。なぜならばアドレッシングされたPAEがこのKWを受け入れるのはすでにわかっているからである。
【0236】
・REJであればKWはFILMO(0907)に書き戻される。この目的で、0807に対応するシフトレジスタ(0908)が用いられる。その際にポインタがインクリメントされる。
【0237】
この場合、0904は簡単なプロトコルコンバータ(0911)により、(i)ACKであればPAのための書き込み信号(RDY)に変換され、(ii)REJであればFILMOのための書き込み信号0901(WR)に変換される。FILMOにおける拒否されたKWから新たな線形のシーケンスが生じる。パフォーマンスの理由から、別個の書き込みポートと読み出しポートを備えたデュアルポート形RAMとして構成されたFILMOのインプリメンテーションが提案される。
【0238】
図10には、本発明によるCT間プロトコルの1つの実施例が示されている。ここにはCTの4つのレベルが描かれており、すなわちそれらはルートCT(1001)、2つの中間レベルのCT(1002a〜bおよび1003a〜d)、下位のCTである低レベルCT(1004〜h)ならびにそのFILMO(1005a〜h)である。1004eに割り当てられたPAにおいてトリガが生成され、これは1004eの内部ではローカルなSubConfには変換できず、EnhSubConfに割り当てられている。1004eは1003cにこのEnhSubConfのためのリクエストを送信する。1003cはIDチェーンをキャッシュしておらず、つまりEnhSubConfは1003cの葉ではない1004gにおいても部分的に実行される。したがって1003cはリクエストを1002bへ転送する。ハッチングが示すのは、1002bがIDチェーンをキャッシュしている可能性のあることであり、それというのも1004gは1002bの葉だからである。とはいえここでは1002bはIDチェーンをまだキャッシュしておらず、したがってこれを1001に要求する。1001はIDチェーンをCTR(PACT10参照)からロードし、それを1002bへ送信する。このプロセスを以下ではGRANTと称する。1002bはIDチェーンをキャッシュする。なぜならば関与するすべてのCTは1002bの葉だからである。その後、1002bはアトミックに、つまり他のGRANTによる中断なく、GRANTを1003cと1003dへ送る。その際にIDチェーンがスプリットされて2つの異なるCTへ送られ、それにより受け取り側のいずれもすべての葉の共通の管理者とはなり得ない。スプリットフラグがセットされ、受け取り側およびそれよりも低いレベルのすべてのCTはIDチェーンをもはやキャッシュすることはできない。1003cおよび1003dはやはりアトミックに例レベルCT1004fもしくは1004gへGRANTを送信する。低レベルCTは到来したGRANTを、コンフィギュレーションすべきSubConfの順序を表す相応のリスト内にそのまま格納する。このリストはたとえば別個に構成してもよいし、あるいは場合によってはFILMOへ拒否されたKWをエントリすることでコンフィギュレーションをダイレクトに実行することによって生じさせることもできる。低レベルCTについては2つの変形実施例が存在する:
・これらの低レベルCTは、IDチェーンによるIDに対応する開始すべきSubConfをすでにキャッシュしており、この場合にはコンフィギュレーションがただちに開始される。
【0239】
・あるいはこれらの低レベルCTは、IDチェーンによるIDに対応するSubConfをまだキャッシュしておらず、このときにはじめて上位のCTにそれを要求する必要がある。この要求(GET ゲット)については図11に描かれており、この場合も前提とするのは、いずれのCTも中間レベルからSubConfをキャッシュしていないことである。したがって個々のSubConfはCTRのルートCTからロードされて低レベルCTへ送られる(ダウンロード)。この流れは基本的にPACT10により知られており、これについては詳しく説明しないことにする。
【0240】
しかしここで重要であるのは、GRANTの到来後にそれが各々後続のGRANTの前に実行されることである。GRANT AがGRANT Bの前に到来したならば、GRANT AはGRANT Bの前にコンフィギュレーションされなければならない。このことは、GRANT AのSubConfを最初にロードしなければならないのに対し、GRANT BのSubConfは低レベルCTにキャッシュされていてただちにスタート可能であるときにもあてはまる。その際、到来したGRANTの順序を守らなければならない。そもないとEnhSubConfにおいてデッドロックの発生するおそれがある。
【0241】
既述の方法の1つの特別な実施形態によればCTTREEのCTは、上位に位置するCTを関与させることなくコンフィギュレーションをダイレクトにアクセスすることができる。これはCTTREEのCTが、任意の形態の揮発性または不揮発性のメモリまたは大容量記憶装置への接続を有することにより行われる。このメモリはたとえばSRAM,DRAM,ROM,フラッシュROM,CDROM,ハードディスクまたはサーバシステムとすることができ、このサーバシステムは場合によってはネットワーク(WAN,LAN,インターネット)によってつながれている。つまりここではっきり述べておくと、CTのダイレクトなアクセスをその上に位置するCTを迂回しながらコンフィギュレーションデータ用記憶装置に対して行うこともできるのである。このような事例の場合でも殊にEnhSubConfにおいて、上位に位置するCTを関与させながらCTTREE内部におけるコンフィギュレーションの同期合わせが行われる。
【0242】
図12には3つの例が示されている(図12a〜12c)。ここでは8個のCT(1201〜1208)から成るコンフィギュレーションスタックが描かれている。このコンフィギュレーションスタックは、コンフィギュレーションすべきSubConfのリストである。SubConfはそれらがリストにエントリされたのと同じ順序でコンフィギュレーションされる。PACT10の図26〜28に示されているように、1つのコンフィギュレーションスタックはたとえば個々のSubConfのチェーンによって形成される。別の可能性として挙げられるのは、図12のようにSubConfを指すIDの簡単なリストである。下方のエントリがまず最初にコンフィギュレーションされ、上方のエントリが最後にエントリされる。
【0243】
図12aには2つのEnhSubConf(1210,1211)が描かれており、これらは個々のCTのコンフィギュレーションスタック内に正しく位置している。EnhSubConfの個々のSubConfは適正な順序でデッドロックなくコンフィギュレーションされる。この場合、GRANTの順序が留意されている。
【0244】
図12bの例も適正なものである。ここには3つのEnhSubConfが描かれている(1220,1221,1222)。1220はすべてのCTに該当する大きいEnhSubConfである。1221はCT1202〜1206だけに該当し、さらにもう1つは1207と1208に該当する。すべてのSubConfはデッドロックなく適正な順序でコンフィギュレーションされる。1222のためのGRANTは1220のためのGRANTの前に完全に処理され、1220のためのGRANTは1221のGRANTの前に処理される。
【0245】
図12cの例は複数のデッドロックの状況を表している。1208において1230と1232のGRANTの順序が取り違えられてしまっている。その結果、1208に対応づけられたPAにおいて1230のためのリソースが占有され、かつ1208に対応づけられたPAにおいて1232のためのリソースが占有されることになる。これらのリソースはそれぞれ固定的に割り当てられている。これによりいかなるEnhSubConfも実行できずまたはコンフィギュレーション終了できないため、デッドロックが発生してしまう。同様にCT1204および1205においても1230と1231のGRANTが時間的に入れ違ってしまっている。同じ理由からこれによりやはりデッドロックが発生してしまう。
【0246】
図13aには、CT間通信のパフォーマンス最適化されたバージョンが描かれている。これによれば低レベルCTへダイレクトにダウンロードが実行され、つまり中間のレベルにおけるCTは最初はSubConfを受け取り記憶して転送する必要がない。そうではなくこれらのCTは「いっしょにリスニングする」だけであり(1301,1302,1303,LISTENER リスナ)、SubConfをキャッシュするだけである。図13bにはその構造が図示されている。通常はレジスタであるバイパス(1304,1305,1306)により、ダウンロードは中間レベルのCTの傍らを通り過ぎて実行される。
【0247】
図14には、SubConfマクロの簡単なコンフィギュレーションのためのCTとPAとの間の回路に関する実現可能な構造が示されている。KWはバス(1401)を介してCTから伝送される。KWはそのコンフィギュレーションデータ(1402)ならびにPAEアドレスX(1403)およびY(1404)に分解される(多次元のアドレッシングであればそれに応じて複数のアドレスに分解される)。1405はXオフセットをXアドレスに加算し、YオフセットをYアドレスに加算する。これらのオフセットをそれぞれ異ならせることができ、レジスタ(1407)に格納されている。パラメータ化可能なデータの一部分(1408)がアドレスとしてルックアップテーブル(1409)へ導かれ、このテーブルには実際の値が格納されている。これらの値はパラメータ不可能なデータ(1412)と結合される。マルチプレクサ(1413)を介して、ルックアップを実行すべきかあるいはルックアップせずデータをダイレクトに用いるべきかを選ぶことができる。この選択はビット(1411)により実行される。すべてのアドレスとデータが再び結合され、バス(1413)としてPAへ導かれる。インプリメンテーションに応じて、既述の回路の前または後にFILMOが接続される。つまり統合されたFILMOであれば前に接続され、別個のFILMOであれば後ろに接続される。CTはバス1415を介して、アドレスオフセットおよび1409におけるパラメータ変換をセットする。簡単にするため、1409をデュアルポート形RAMとして構成することができる。相応のKWの構造は以下の通りである:
【0248】
【表10】
Figure 2004506261
【0249】
MUX=1であれば1409においてルックアップが実行され、MUX=0であればデータがダイレクトに1414へ転送される。
【0250】
図15には1つのグラフの構成が図示されている。このグラフのそれぞれ次の可能なノード(1〜13)がプリロードされ(プリフェッチ prefetch)、それに応じて先行するノードおよび使用されないジャンプが消去される(デリート delete)。1つのループ内ではループのノードは消去されず(10,11,12)、対応するノードは終了後はじめて除去される。ノードがロードされるのは、それが事前にCTのメモリに存在しないときだけである。したがって(たとえば)11回などのように何度も処理されても、12回とか10回のように何度もロードが行われることにはならない。8および/または9がすでに除去されていたならば、「デリート8,9」は無視される。
【0251】
図16にはSubConf(1601)の多重のインスタンス化について示されている。様々なSubConf(1602,1603,1604)によって1601が呼び出される。1601のためのパラメータは、そのつど呼び出されたSubConfによってルックアップテーブル(1605)にプリロードされる(1610)。1605は1つしかインプリメントされていないが、図16ではいくつも示されており、これはそれぞれ異なる内容をシンボリックに表すためである。1601が呼び出される。KWは1605,1606,1607へ伝送される。これらのエレメントは以下のように動作する:ルックアップテーブルに基づき1605の相応の内容がKWと再び結合される(1606)。もとのKWを有効とするかルックアップテーブルを実行するのかを選択するマルチプレクサ1413(1607)を通った後、KWはPAへ送られる(1608)。
【0252】
図17にはウェーブ・リコンフィギュレーションの流れが図示されている。1回だけハッチングした平面はデータ処理を行うPAEを表しており、ここで1701は再コンフィギュレーション後のPAEを示し、1703は再コンフィギュレーション後のPAEを表している。2重にハッチングした平面(1702)は、目下再コンフィギュレーションされるPAEまたは再コンフィギュレーション待ちのPAEを表している。図17aには、簡単なシーケンシャルなアルゴリズムに対しウェーブ・再コンフィギュレーションの及ぼす作用が示されている。この場合、新たなタスクの割り当てられるPAEを正確に再コンフィギュレーションすることができる。各クロックごとにPAEは新たなタスクを受け取るので、これを効率的につまり同時に実行することができる。ここでは例として、1つのVPUにおけるすべてのPAEのマトリックスのうち1列のPAEが描かれている。この場合、クロックt後の各クロックにおける状態がそれぞれ1つのクロックだけ遅いかたちで示されている。
【0253】
図17bには、大きい部分の再コンフィギュレーションの時間的な作用が描かれている。ここでは例として、1つのVPUにおける一群のPAEが描かれている。この場合、クロックt後の各クロックにおける状態がそれぞれ複数のクロックから成る異なる遅れを伴って示されている。まずはじめはPAEの小さい部分だけが再コンフィギュレーションされるかまたは再コンフィギュレーション待ちである一方、これらの平面はすべてのPAEが再コンフィギュレーションされてしまうまで次第に大きくなる。面積が大きくなるということは、再コンフィギュレーションの時間的な遅れにより常に複数のPAEが再コンフィギュレーション待ちになる(1702)ことを意味する。これにより計算能力が失われてしまう。したがってここで提案されるのは、CT(殊にCTのメモリ)とPAEとの間にいっそう幅の広いバスシステムを投入することであり、これによって1つのクロック内で複数のPAEを同時に再コンフィギュレーションするために十分なラインが提供される。
【0254】
【表11】
Figure 2004506261
【0255】
図18には一例として、11.2による「同期合わせされたシャドウレジスタ」のようなリコンフィギュレーション方法のためのリコンフィギュレーションストラテジが示されている。ここにはそれぞれCT(1801)ならびに複数のPAEのうちの1つ(1804)が図示されており、PAE内部にはそれぞれコンフィギュレーションレジスタ(1802,1803)だけが描かれている。さらにこの図には、アクティブなコンフィギュレーションを選択するユニット(1805)も示されている。PAE内部のその他の機能ユニットは、見やすくするため描かなかった。CTはそれぞれn個のSubConf(1820)を有しており、事例−I1ではWCPが発生したときに1つのSubConfの対応するKWがそれぞれロードされ(1(n))、事例−I2では全体でn個のSubConfのうちm個のSubConfのKWがロードされる(m(n))。また、この図にはWCT(1806)とWCP(1807)の種々の接続やあとで説明するようなオプションのWCP(1808)も描かれている。
【0256】
A1−I1の場合、同じSubConf内において第1のトリガWCPにより次のコンフィギュレーションが選択され、これは同じリソースを利用するかまたはこのコンフィギュレーションのリソースは少なくともすでに事前に予約されており、場合によってはWCP以外の他のものを生成しないSubConfによって占有されている。CT(1801)によりコンフィギュレーションがロードされる。ここで示した例の場合にはコンフィギュレーションはダイレクトに実行されるのではなく、複数の択一的なレジスタのうちの1つ(1802)にロードされる。第2のトリガWCTにより、必要とされるリコンフィギュレーションの時点で正確に択一的なレジスタのうちの1つが、事前にWCPに基づきロードされたコンフィギュレーションが実行されるよう選び出される。
【0257】
基本的にWCPにより特定のコンフィギュレーションが決定されてプリロードされ、プリロードされたリコンフィギュレーションに対応する実際の機能変更の時点がWCTにより決定される。
【0258】
WCPもWCTもベクトルとすることができるので、WCP(v)により複数のコンフィギュレーションのうちの1つがプリロードされるようになり、その際、WCPのソースによりプリロードすべきコンフィギュレーションが指定される。相応にWCT(v)により、プリロードされた複数のコンフィギュレーションのうちの1つが選択される。この場合、v2により選択可能なコンフィギュレーションの量に対応する個数の1802が必要とされ、一般にこの個数は固定的にまえもって定められているので、v2は最大量に対応することになる。
【0259】
このことから出発してA1−I2には、複数の1802を備えたレジスタセット1803によるバージョンが描かれている。最適な事例では1803におけるレジスタの個数は、それぞれあとに続く可能なすべてのコンフィギュレーションをそのままプリロードできるような大きさであり、このことでWCPを省略することできるので、機能入れ替え時点ならびに入れ替えそのものがWCT(v)によって指定されるようになる。
【0260】
A2−I1に示されているWRCによれば、次のコンフィギュレーションが選択され、このコンフィギュレーションは同じリソースを使用しないかまたはこのコンフィギュレーションのリソースは事前に予約されておらず、あるいは場合によってはWCP(v)以外の他のものを生成するSubConfによって占有されている。コンフィギュレーションにおいてデッドロックが生じないことは、WCP(v)に対するFILMO同様のリアクションとコンフィギュレーションによって保証される。WCT(v)によるコンフィギュレーションのスタートはやはりCTにより、リコンフィギュレーション時点を表すトリガ(ReconfReq)の到来に対するFILMO同様のアトミックなリアクションによってアトミックに実行される。
【0261】
A2−I2の場合、後続のすべてのSubConfはSubConfの最初のロード時にすでにコンフィギュレーションレジスタ1803にプリロードされるかまたは、コンフィギュレーションレジスタの個数が十分でなければ必要に応じて、発生したWCP(v)を公知のように処理することでCTによりあとからロードされる。リコンフィギュレーション時点を決定し本来のリコンフィギュレーションをトリガするトリガ(ReconfReq,1809)はまずはじめ、適切な優先順位づけ手段(1810)により次のように時間的に分離されてWCT(v)としてPAEへ導かれる。すなわち、常に正確に1つのWCT(v)だけがある時点にあるPAEにおいてアクティブであるようにし、到来するWCT(v)の順序がすべての該当するPAEにおいて同じであるよう時間的に分離される。
【0262】
これらの実施例ではA2−I1およびA2−I2において付加的なトリガシステムが用いられる。WCTが1801により処理される場合でも1810により処理される場合でも、1804への転送までにかなりの遅延が生じる可能性がある。とはいえここで重要なのは、時点ChgPktが時間的に守られることである。その理由は、PAEはさもないと後続のデータを誤って処理してしまうことになるからである。したがって別のトリガ(1811,WCS=WaveConfigurationStop ウェーブコンフィギュレーションストップ)が用いられ、これは単にPAEのデータ処理をWCTの到来により新たなコンフィギュレーションがアクティブにされるまでストップさせる。WCSは通常、目下アクティブなSubConf内で生成される。多くの事例ではReconfReqとWCSを同一のものとすることができる。なぜならばReconfReqが目下アクティブなSubConf内で生成されるかぎり、それらの信号によってたいていはChgPktの到来も表されるからである。
【0263】
図19にはA1−I2とA2−I2のインプリメンテーションの変形実施形態が示されており、ここではKW管理のためレジスタセットの代わりにFIFOメモリ(1901)が用いられる。この場合、WCPによりSubConfの所定の順序が決められている。WCT(もしくはWCSこれは択一的に1902により表されている)によって、次のコンフィギュレーションだけをFIFOからロードすることができる。WCSの基本的な機能つまり実行中のデータ処理の停止は、図18で説明したものとまったく同じである。
【0264】
図20にはPAEの1つの行のセクションが描かれており、この目的は一例として11.2による「同期合わせされたパイプライン」と類似のリコンフィギュレーションを示すことである。CT(2001)はPAE(2005)の複数のインタフェースコンポーネント(2004)に対応づけられている。2004は2005に統合されており、見やすくするという目的のためだけにWAITとWCTが特別に描かれている。2004から2005へコンフィギュレーションデータを伝送するための信号は、抽象的に表す理由から描かれていない。
【0265】
CTはパイプライン化されたバスシステムにより2004と結ばれており、ここで2002はパイプライン段を成している。2002はコンフィギュレーションデータ(CW)用のレジスタ(2003b)と、デコーダおよびロジックの統合された別のレジスタ(2003a)とによって構成されている。2003aはCW内で伝送されるアドレスをデコーディングし、該当するローカルなPAEがアドレッシングされているならば信号RDYを2004へ送信し、ローカルなPAEがアドレッシングされていないならば信号RDYを次の段(2002)へ送信する。これに応じて2003aは、公知のプロトコルに従いRDY/ACKとして構成された確認応答(GNT)を2002または2004から受け取る。これによりパイプライン化されたバスが生じ、これはCWをCTからアドレッシングされたPAEへ伝送し、その応答確認をCTへ送り戻す。
【0266】
2004においてWCTがアクティブであれば、説明に従いWAVEで表されている到来しているCWが2004にコンフィギュレーションされ、GNTはACKによって確認応答される。WCTがアクティブではないがCWがコンフィギュレーションのために到来しているかぎり、GNTは確認応答されず、つまりパイプラインはコンフィギュレーション実行までブロックされる。アクティブなWCTにより表されるかたちで2005がウェーブ・リコンフィギュレーションを待ち望んでおり、かつWAVEで表されたCWが2004のところに存在していなければ、WAVEで表されたCWが2004にコンフィギュレーションされてしまうまでデータ処理を行わない待ち状態にPAE(2005)をおく目的で、2004はWAITによって応答確認する。WAVEとともに伝送されなかったCWはデータ処理中、REJによって拒否される。
【0267】
なお、ここで述べておくと、この図面はもっぱら基本原理を示すものであり、適用事例に依存する特別な形態によって最適化を実施することができる。たとえば2004におけるレジスタ段によって、WAVEで表されて到来したCWをWCTおよびそれに付随するリコンフィギュレーションが到着するまでバッファリングすることができ、CTから送られたCWがアドレッシングされた2004によってただちに取り込まれないときにパイプラインのブロックを阻止することができる。
【0268】
以下の説明のため、2010と2011はデータ処理の方向を表すものとする。
【0269】
データ処理が方向2010へ進むならば、以下のようにしてPAEの高速なウェーブコンフィギュレーションが可能である:CTはWAVEで表されたCWを、もっとも遠く離れたPAEのCWがまずはじめに送信されるようパイプラインへ送信する。CWをただちにコンフィギュレーションできないのであれば、最も遠いパイプライン段(2002)がブロックされる。その後、CTはCWをいまや最も遠くなったPAEへ送信し、これは最後にデータが最も近いPAEへ送信されるまで行われる。ChkPktがPAEを通過するとただちに、こんどは各クロックで新しいCWをコンフィギュレーションすることができる。この方法は、ChgPktがCWの伝送と同時にCTからPAEを進むときにも効率的である。なぜならばこの場合も、それぞれコンフィギュレーションに必要とされるCWは個々のPAEにおいて各クロックごとに生じる可能性があるからである。
【0270】
データ処理が逆方向(2011)に進む場合も、CTから最も離れたPAEからCTに最も近いPAEへ向かってパイプラインをコンフィギュレーションすることができる。ChgPktがCWのデータ伝送と同時に行われないかぎり、この方法は最適なまま維持される。なぜならばChgPktが発生したときにCWをパイプラインから2004へただちに伝送することができるからである。しかしChgPktがウェーブ・リコンフィギュレーションのCWと同時に現れると、待ちサイクルが発生する。たとえばクロックnでChgPktが発生したときにはPAE Bをコンフィギュレーションすべきである。CWが到来し、2004にコンフィギュレーションされる。クロックn+1のときChgPkt(つまりはWCT)がPAE Cに到来する。しかしPAE CのCWはこのクロックではせいぜいPAE Bの2002に伝送されるだけである。なぜならば先行のクロックにおいてPAE Bの2002はまだそのCWによって占有されていたからである。クロックn+2においてはじめてPAE CのCWがその2002に位置し、コンフィギュレーションすることができる。クロックn+1において1つの待ちサイクルが発生している。
【0271】
図21には、ウェーブ・リコンフィギュレーションのための最も一般的な同期合わせストラテジが示されている。最初のPAE 2101は、発生した状態に基づきリコンフィギュレーションの必要性を識別する。この識別は一般的な方法たとえばデータまたは状態の比較によって行うことができる。そしてこの識別により2101はトリガによって生じさせることのできる要求(2103)を、リコンフィギュレーションすべき1つまたは複数のPAE(2102)へ送信し、これはデータ処理を停止する。さらに2101は、2103と同じ信号とすることもできる信号(2105)をCT(2104)へ送信し、これをリコンフィギュレーションするよう要求する。2104は2102をリコンフィギュレーションし(2106)、リコンフィギュレーションすべきすべてのPAEのリコンフィギュレーション完了後、実行終了に関して場合によってはリコンフィギュレーションを用いて2101へ通知する(2107)。これに基づき2001は停止要求2103を撤回し、データ処理が続けられる。2108と2109はそれぞれデータおよびトリガの入出力側をシンボリックに表す。
【0272】
図22には、ルーティング措置によりWCTを時間的に適正に転送するようにした構成が描かれている。中央のインスタンス(2003)から種々のPAE(2201)のための複数のWCTが生成されるが、これらは時間的に相前後して調整されるようにすべきである。マトリックスにおいて2201がそれぞれ異なって隔てられていることから、それぞれ異なる伝播時間もしくはレイテンシが生じる。これはこの実施例では、コンパイラに割り当てられたルータによるパイプライン段(2202)の適切な投入により達成される(PACT13参照)。これにより生じたレイテンシには参照符号d1〜d5が付されている。このことからわかるように、データ流の方向(2204)において各段(列)に同じレイテンシが発生している。たとえば2205は不要である。なぜならば2203から2206の距離はごく僅かだからである。しかし2207と2208についてはレイテンシがいっそう長く存在するためそれぞれ2202を挿入しなければならないので、伝播時間補償のために2205が必要となる。
【0273】
図23にはウェーブ・リコンフィギュレーションの適用事例が示されている。ここではVPUテクノロジーの基本的な利点を示すことにする。つまりその利点とは、タスク解決のためPAEリソースまたはリコンフィギュレーション時間が選択的に利用されることであり、そのことからコストとパフォーマンスとの間でコンパイラまたはプログラマによって生じ得るインテリジェントなトレードオフがが生じる。この場合、複数のPAE(2304〜2308)から成るアレイ(2302)においてデータストリーム(2301)が計算されることになる。このアレイにCT(2303)が対応づけられており、これはそのリコンフィギュレーションを担当する。2304はリコンフィギュレーションを必要とするデータ処理の終了状態の識別を担当する。この識別はCTにシグナリングされる。2306は分岐の開始を表し、2309は分岐の終了を表す。この分岐は2307a,2307bもしくは2307abによりシンボリックに表されている。PAE2308は使われない。2309によって様々なトリガが表される。
【0274】
図23aにおいて2305により両方の分岐2307a,2307bのうちの一方が選択され、2306から到来するデータと同時にトリガによりアクティブにされる。
【0275】
図23bの場合、2307a,2307bから完全にはまえもってコンフィギュレーションされず、両方の可能な分岐はリコンフィギュレーションによりリソース2307abを分ける。さらに2305はデータ処理に必要な分岐を選択する。ここで情報は一方では2303へ導かれ、他方では2306へ導かれ、これによって図21に示されているように2307abのリコンフィギュレーションが完全に実行されるまでデータ処理が停止される。
【0276】
図24には、PAEをシーケンス制御する状態機械を4.2に従いインプリメントするための実現可能な択一的形態が描かれている。この場合、以下の状態がインプリメントされている:
未コンフィギュレーション Not Configured(2401)
割り当て済み Allocated(2401)
ロック待ち Wait for Lock(2403)
以下の信号により状態変化がトリガされる:
ロック/フリー LOCK/FREE(2404,2408)
チェック CHECK(2405,2407)
リコンフィギュレーション RECONFIG(2406,2409)
ゴー GO(2410,2411)
図25にはPACT13により公知の高級言語コンパイラの構造が示されており、これはたとえばやはり慣用のシーケンシャルな高級言語(C,Pascal,Java)をVPUシステムに変換する。シーケンシャルなコード(2511)はパラレルなコード(2508)から分離され、それにより2508はPAEのアレイにおいてダイレクトに処理される。2511について3つの実施形態が存在する:
1.PAEにおけるシーケンサ内(PACT13参照、2910)
2.VPUにコンフィギュレーションされるシーケンサを用いる。このためコンパイラはタスクに合わせて最適化されたシーケンサを生成する一方、アルゴリズムに固有のシーケンサコードをダイレクトに生成する(PACT13参照,2801)。
【0277】
3.慣用の外部のプロセッサ上(PACT13参照、3103)
4.CTを用いた高速なリコンフィギュレーションによる。これによれば1つのPAC内のPAEの個数とPACの個数との比が次のように選ばれる。すなわち1つまたは複数のPACを専用のシーケンサとして構成することができ、その操作コード(オペレーションコード)および命令実行は対応づけられたCTにより動作ステップごとにコンフィギュレーションされる。この場合、対応づけられたCTはシーケンサのステータスに反応し、それぞれ後続のプログラムシーケンスを決定する。ステータスの伝送はトリガシステムにより行われる。
【0278】
どの実施形態を選ぶかは、VPUとコンピュータシステムとアルゴリズムに依存する。
【0279】
基本原理はPACT13から公知であるが、ルータとプレーサ(2505)の拡張については本明細書に従ってはっきりと触れておくことにする。
【0280】
コード(2501)はまずはじめにプリプロセッサ(2502)において、データフローコード(2516)(これは個々のプログラミング言語の特別なバージョンでデータフローに最適化されて記述されている)と慣用のシーケンシャルなコードに分離される(2517)。2517はパラレル化可能なサブアルゴリズムについて調べられ(2503)、シーケンシャルなサブアルゴリズムが分離される(2518)。パラレル化可能なサブアルゴリズムはマクロとして暫定的に配置されルーティングされる。反復プロセスにおいてマクロはデータフローに最適化されたコード(2513)と一緒に配置されてルーティングされ、分割される(2505)。統計部(2506)によって個々のマクロならびにそれらの分割が効率について評価され、この場合、再コンフィギュレーション時間ならびに再コンフィギュレーションの煩雑さが効率の考慮に作用を及ぼす。非効率的ななマクロが除去され、シーケンシャルなコードとして分離される(2514)。残りのパラレルなコード(2515)は2516といっしょにコンパイルされてアセンブルされ(2507)、VPUオブジェクトコードが送出される(2508)。生成されたコードならびに個々のコード(2514により除去されたマクロも)に関する統計が出力され(2509)、これによりプログラマはプログラムの速度最適化に関する指示を受け取る。
【0281】
残りのシーケンシャルなコードの各マクロはその複雑さおよび要求について調べられる(2520)。VPUアーキテクチャやコンピュータシステムに依存するデータベース(2519)から、そのつど適切なシーケンサが選択され、VPUコード(2521)として出力される。コンパイラ(2521)はそれぞれ2520により選択されたシーケンサのために個々のマクロのアセンブラコードを生成し、それを出力する(2511)。2510と2520は互いに密に結合されている。場合によっては最小かつ最高速のアセンブラコードをもつ最も適切なシーケンサを見つけるため、処理が反復的に実行される。リンカ(2522)によりアセンブラコード(2508,2511,2521)が統合され、実行可能なオブジェクトコード(2523)が生成される。
【0282】
用語の定義
ACK/REJ:(リ)コンフィギュレーション試行に対するPAEの応答確認プロトコル。ACKによってコンフィギュレーションの受け入れが指示され、REJによってコンフィギュレーションの拒否が指示される。このプロトコルによれば、ACKまたはREJの到来が予期され、必要に応じてその到来まで待ちサイクルが挿入される。
【0283】
CT:コンフィギュレーション可能なエレメントをインタラクティブにコンフィギュレーションおよびリコンフィギュレーションするユニット。CTはSubConfをバッファリングおよび/またはキャッシュするためのメモリを有する。特別な実施形態ではルートCTではないCTもSubConf用のメモリとダイレクトに接続されており、このSubConfはこの事例では上位のCTからロードされない。
【0284】
CTTREE:CTの1次元または多次元のツリー。
【0285】
EnhSubConf:それぞれ異なるPAC上で実行されることになる複数のSubConfを有するコンフィギュレーション。
【0286】
コンフィギュレーション:実行可能な完全なアルゴリズム。
【0287】
コンフィギュレーション可能なエレメント:物理的に任意のエレメントであって、その厳密な機能はインプリメントされた可能性の中でコンフィギュレーションにより決定される。コンフィギュレーション可能なエレメントはたとえば論理的機能ユニット、算術的機能ユニット、記憶装置、周辺インタフェース、バスシステムとして構成することができる。ここでは殊に、FPGA(たとえばCLB)、DPGA、VPUならびに「リコンフィギュラブルコンピューティング」として知られるあらゆるエレメントなど公知のテクノロジーのエレメントが含められる。コンフィギュレーション可能なエレメントを、複数の様々な機能ユニットの結合体たとえば対応づけられたバスシステムの統合された算術ユニットの複雑な結合体とすることもできる。
【0288】
KW:コンフィギュレーションワード。コンフィギュレーション可能なエレメントにおけるコンフィギュレーションまたはコンフィギュレーションの一部分を決定する1つまたは複数のデータ。
【0289】
レイテンシ:データ伝送における遅延であって、これは一般に同期システムにおいてクロックベースで発生し、したがってクロックサイクルとして表される。
【0290】
PA:プロセッシングアレイ Processing Arrayであって、それぞれ異なるようにも構成された複数のPAEの配置。
【0291】
PAC:PAのコンフィギュレーションおよびリコンフィギュレーションのために割り当てられそのPAを担当するCT。
【0292】
PAE:プロセッシングアレイエレメント Processing Array Element、コンフィギュレーション可能なエレメント。
【0293】
ReconfReq:リコンフィギュレーションを要求する状態に基づくトリガにより生成されそのことを表す。
【0294】
リコンフィギュレーション:新たなコンフィギュレーションのロード。場合によってはデータ処理と同時にまたはオーバラップしてあるいはパラレルに、実行中のデータ処理を妨害または誤らせることなく行われる。
【0295】
ルートCT:CTTREEにおける最上位のCTであって、これは一般にしかし必ずしもそうではないがただ1つのCTとしてコンフィギュレーションメモリと接続されている。
【0296】
SubConf:複数のKWから成るコンフィギュレーションの一部分。
【0297】
WCT:リコンフィギュレーションを行うべき時点を表す。この場合、オプションとして付加的な情報の伝送により可能な複数のコンフィギュレーションのうちの1つを選択することができる。一般にWCTは、目下実行中でありリコンフィギュレーションのために終了させるべきデータ処理の終了と正確に同期して生じる。インプリメント上の理由からWCTがあとから伝送される場合には、データ処理の同期合わせのためWCSが用いられる。
【0298】
WCP:CTにおいて(リ)コンフィギュレーションのため1つまたは複数の択一的な次のコンフィギュレーションを要求する。
【0299】
WCS:WCT到来までデータ処理を停止する。これを用いなければならないのは、WCTがインプリメントに起因して必要とされるリコンフィギュレーションの時点を正確に指示するときではなく、終了させるべきコンフィギュレーションのデータ処理の本来の終了後にはじめて個々のPAEに到来したときだけである。
【0300】
セル:コンフィギュレーション可能なエレメント。
【0301】
参考文献:
PACT01 4416881
PACT02 19781412.3
PACT04 1965482.2−53
PACT05 19654593.5−53
PACT07 19880128.9
PACT08 19880129.7
PACT10 19980312.9&19980309.9
PACT13 PCT/DE00/01869
PACT18 10110530.4
【図面の簡単な説明】
【図1】
SubConfの構造を示す図である。
【図2】
SubConfの構造を示す図である。
【図3】
SubConfの構造を示す図である。
【図4】
PAEの状態を実現するために考えられる状態機械を示す図である。
【図5】
セクション5によるFILMO方式の考えられるインプリメンテーションを示す図である。
【図6】
セクション5によるFILMO方式の考えられるインプリメンテーションを示す図である。
【図7】
セクション5によるFILMO方式の考えられるインプリメンテーションを示す図である。
【図8】
セクション5によるFILMO方式の考えられるインプリメンテーションを示す図である。
【図9】
セクション5によるFILMO方式の考えられるインプリメンテーションを示す図である。
【図10】
本発明によるCT間プロトコルの1つの実施例を示す図である。
【図11】
要求(GET ゲット)について示す図である。
【図12】
EnhSubConfを示す図である。
【図13a】
CT間通信のパフォーマンス最適化されたバージョンを示す図である。
【図13b】
CT間通信のパフォーマンス最適化されたバージョンを示す図である。
【図14】
SubConfマクロの簡単なコンフィギュレーションのためのCTとPAとの間の回路に関する実現可能な構造を示す図である。
【図15】
グラフの構成を示す図である。
【図16】
SubConf(1601)の多重のインスタンス化について示す図である。
【図17】
ウェーブ・リコンフィギュレーションの流れを示す図である。
【図18】
「同期合わせされたシャドウレジスタ」のようなリコンフィギュレーション方法のためのリコンフィギュレーションストラテジを示す図である。
【図19】
A1−I2とA2−I2のインプリメンテーションの変形実施形態を示す図である。
【図20】
PAEの1つの行のセクションを示す図である。
【図21】
ウェーブ・リコンフィギュレーションのための最も一般的な同期合わせストラテジを示す図である。
【図22】
ルーティング措置によりWCTを時間的に適正に転送するようにした構成を示す図である。
【図23】
ウェーブ・リコンフィギュレーションの適用事例を示す図である。
【図24】
PAEをシーケンス制御する状態機械を4.2に従いインプリメントするための実現可能な択一的形態を示す図である。
【図25】
PACT13により公知の高級言語コンパイラの構造を示す図である。

Claims (3)

  1. 1次元または多次元のコンフィギュレーション可能なセル構造を備えたデータ処理装置の作動方法において、
    セルを新たにコンフィギュレーションすることを示すフラグをコンフィギュレーションデータとともに送信し、これに基づき前記セルは該セルが未コンフィギュレーション状態にあればコンフィギュレーションを受け入れ、さもなければコンフィギュレーションを拒否することを特徴とする、
    データ処理装置の作動方法。
  2. 1次元または多次元のコンフィギュレーション可能なセル構造を備えたデータ処理装置の作動方法において、
    セルを部分的にコンフィギュレーションすることを示すフラグをコンフィギュレーションデータとともに送信し、これに基づき前記セルは該セルがコンフィギュレーション済みの状態にあればコンフィギュレーションを受け入れ、さもなければコンフィギュレーションを拒否することを特徴とする、
    データ処理装置の作動方法。
  3. 1次元または多次元のコンフィギュレーション可能なセル構造を備えたデータ処理装置の作動方法において、
    セルを決められたフラグによりスタートさせることを特徴とする、データ処理装置の作動方法。
JP2002517618A 2000-06-13 2001-06-13 パイプラインctプロトコルおよびct通信 Pending JP2004506261A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE2000128397 DE10028397A1 (de) 2000-06-13 2000-06-13 Registrierverfahren
DE10110530 2001-03-05
PCT/EP2001/006703 WO2002013000A2 (de) 2000-06-13 2001-06-13 Pipeline ct-protokolle und -kommunikation

Publications (1)

Publication Number Publication Date
JP2004506261A true JP2004506261A (ja) 2004-02-26

Family

ID=26006024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002517618A Pending JP2004506261A (ja) 2000-06-13 2001-06-13 パイプラインctプロトコルおよびct通信

Country Status (6)

Country Link
US (3) US7003660B2 (ja)
EP (2) EP1342158B1 (ja)
JP (1) JP2004506261A (ja)
AT (1) ATE476700T1 (ja)
DE (1) DE50115584D1 (ja)
WO (1) WO2002013000A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008530642A (ja) * 2005-02-07 2008-08-07 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト 低レイテンシーの大量並列データ処理装置
TWI708488B (zh) * 2019-08-20 2020-10-21 智易科技股份有限公司 傳輸系統、傳送裝置及傳輸路徑分配方法

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) * 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
DE19651075A1 (de) * 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654593A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit
DE19654595A1 (de) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
DE19654846A1 (de) 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
EP1329816B1 (de) * 1996-12-27 2011-06-22 Richter, Thomas Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
DE19704728A1 (de) 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704742A1 (de) * 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US9092595B2 (en) 1997-10-08 2015-07-28 Pact Xpp Technologies Ag Multiprocessor having associated RAM units
DE19861088A1 (de) * 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
WO2000077652A2 (de) 1999-06-10 2000-12-21 Pact Informationstechnologie Gmbh Sequenz-partitionierung auf zellstrukturen
JP2004506261A (ja) 2000-06-13 2004-02-26 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト パイプラインctプロトコルおよびct通信
US7595659B2 (en) 2000-10-09 2009-09-29 Pact Xpp Technologies Ag Logic cell array and bus system
US20040015899A1 (en) * 2000-10-06 2004-01-22 Frank May Method for processing data
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US6990555B2 (en) 2001-01-09 2006-01-24 Pact Xpp Technologies Ag Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.)
US20090300262A1 (en) * 2001-03-05 2009-12-03 Martin Vorbach Methods and devices for treating and/or processing data
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7210129B2 (en) * 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
WO2005045692A2 (en) * 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US20090210653A1 (en) * 2001-03-05 2009-08-20 Pact Xpp Technologies Ag Method and device for treating and processing data
US7581076B2 (en) 2001-03-05 2009-08-25 Pact Xpp Technologies Ag Methods and devices for treating and/or processing data
US7844796B2 (en) * 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7624204B2 (en) * 2001-03-22 2009-11-24 Nvidia Corporation Input/output controller node in an adaptable computing environment
US7657877B2 (en) * 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
US7996827B2 (en) * 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) * 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US7594229B2 (en) * 2001-10-09 2009-09-22 Nvidia Corp. Predictive resource allocation in computing systems
US7644279B2 (en) * 2001-12-05 2010-01-05 Nvidia Corporation Consumer product distribution in the embedded system market
US7577822B2 (en) * 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
WO2003071418A2 (en) * 2002-01-18 2003-08-28 Pact Xpp Technologies Ag Method and device for partitioning large computer programs
DE10392560D2 (de) * 2002-01-19 2005-05-12 Pact Xpp Technologies Ag Reconfigurierbarer Prozessor
WO2003071432A2 (de) 2002-02-18 2003-08-28 Pact Xpp Technologies Ag Bussysteme und rekonfigurationsverfahren
WO2004088502A2 (de) * 2003-04-04 2004-10-14 Pact Xpp Technologies Ag Verfahren und vorrichtung für die datenverarbeitung
AU2003223892A1 (en) * 2002-03-21 2003-10-08 Pact Xpp Technologies Ag Method and device for data processing
US8914590B2 (en) * 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US7093255B1 (en) * 2002-05-31 2006-08-15 Quicksilver Technology, Inc. Method for estimating cost when placing operations within a modulo scheduler when scheduling for processors with a large number of function units or reconfigurable data paths
US7620678B1 (en) 2002-06-12 2009-11-17 Nvidia Corporation Method and system for reducing the time-to-market concerns for embedded system design
US7802108B1 (en) 2002-07-18 2010-09-21 Nvidia Corporation Secure storage of program code for an embedded system
US7657861B2 (en) * 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US20110238948A1 (en) * 2002-08-07 2011-09-29 Martin Vorbach Method and device for coupling a data processing unit and a data processing array
WO2004021176A2 (de) * 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US7394284B2 (en) 2002-09-06 2008-07-01 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7502915B2 (en) * 2002-09-30 2009-03-10 Nvidia Corporation System and method using embedded microprocessor as a node in an adaptable computing machine
US8949576B2 (en) * 2002-11-01 2015-02-03 Nvidia Corporation Arithmetic node including general digital signal processing functions for an adaptive computing machine
US7617100B1 (en) 2003-01-10 2009-11-10 Nvidia Corporation Method and system for providing an excitation-pattern based audio coding scheme
US8296764B2 (en) * 2003-08-14 2012-10-23 Nvidia Corporation Internal synchronization control for adaptive integrated circuitry
EP1669868A4 (en) * 2003-09-30 2009-03-25 Sanyo Electric Co PROCESSOR AND INTEGRATED CIRCUIT WITH CONVERTIBLE CIRCUIT AND PROCESSING PROCESS THEREFORE
US8130825B2 (en) * 2004-05-10 2012-03-06 Nvidia Corporation Processor for video data encoding/decoding
US8018463B2 (en) 2004-05-10 2011-09-13 Nvidia Corporation Processor for video data
TWI256013B (en) * 2004-10-12 2006-06-01 Uli Electronics Inc Sound-effect processing circuit
US7451297B2 (en) * 2005-06-01 2008-11-11 Microsoft Corporation Computing system and method that determines current configuration dependent on operand input from another configuration
US7793040B2 (en) * 2005-06-01 2010-09-07 Microsoft Corporation Content addressable memory architecture
US7707387B2 (en) 2005-06-01 2010-04-27 Microsoft Corporation Conditional execution via content addressable memory and parallel computing execution model
US7281942B2 (en) * 2005-11-18 2007-10-16 Ideal Industries, Inc. Releasable wire connector
WO2007082730A1 (de) 2006-01-18 2007-07-26 Pact Xpp Technologies Ag Hardwaredefinitionsverfahren
US7999820B1 (en) 2006-10-23 2011-08-16 Nvidia Corporation Methods and systems for reusing memory addresses in a graphics system
US20080111923A1 (en) * 2006-11-09 2008-05-15 Scheuermann W James Processor for video data
US8169789B1 (en) 2007-04-10 2012-05-01 Nvidia Corporation Graphics processing unit stiffening frame
US7987065B1 (en) 2007-04-17 2011-07-26 Nvidia Corporation Automatic quality testing of multimedia rendering by software drivers
US8572598B1 (en) 2007-04-18 2013-10-29 Nvidia Corporation Method and system for upgrading software in a computing device
US8726283B1 (en) 2007-06-04 2014-05-13 Nvidia Corporation Deadlock avoidance skid buffer
US7944453B1 (en) 2007-06-07 2011-05-17 Nvidia Corporation Extrapolation texture filtering for nonresident mipmaps
US7948500B2 (en) * 2007-06-07 2011-05-24 Nvidia Corporation Extrapolation of nonresident mipmap data using resident mipmap data
JPWO2010087098A1 (ja) * 2009-01-30 2012-07-26 日本電気株式会社 並列演算装置、情報処理システム、並列演算方法、および情報処理装置
US9325520B2 (en) * 2013-09-06 2016-04-26 Huawei Technologies Co., Ltd. System and method for an asynchronous processor with scheduled token passing
WO2016053980A1 (en) * 2014-09-29 2016-04-07 Akamai Technologies, Inc. Https request enrichment
US9846660B2 (en) 2014-11-12 2017-12-19 Xilinx, Inc. Heterogeneous multiprocessor platform targeting programmable integrated circuits
US9218443B1 (en) * 2014-11-12 2015-12-22 Xilinx, Inc. Heterogeneous multiprocessor program compilation targeting programmable integrated circuits
JP2016178229A (ja) 2015-03-20 2016-10-06 株式会社東芝 再構成可能な回路
CN106651748B (zh) 2015-10-30 2019-10-22 华为技术有限公司 一种图像处理方法与图像处理装置
US10630654B2 (en) * 2017-03-22 2020-04-21 Microsoft Technology Licensing, Llc Hardware-accelerated secure communication management
US10956241B1 (en) 2017-12-20 2021-03-23 Xilinx, Inc. Unified container for hardware and software binaries
DE102018109835A1 (de) * 2018-04-24 2019-10-24 Albert-Ludwigs-Universität Freiburg Verfahren und Vorrichtung zum Ermitteln einer Netzkonfiguration eines neuronalen Netzes
US12132699B2 (en) 2018-07-26 2024-10-29 Secturion Systems, Inc. In-line transmission control protocol processing engine using a systolic array
JP7159696B2 (ja) * 2018-08-28 2022-10-25 富士通株式会社 情報処理装置,並列計算機システムおよび制御方法
US11803507B2 (en) 2018-10-29 2023-10-31 Secturion Systems, Inc. Data stream protocol field decoding by a systolic array
GB2580165B (en) * 2018-12-21 2021-02-24 Graphcore Ltd Data exchange in a computer with predetermined delay
CN110058207B (zh) * 2019-04-19 2022-11-29 西安微电子技术研究所 一种用于雷达信号传输的多lane数据同步及重组系统与方法
CN111190830B (zh) * 2019-12-31 2023-05-16 东莞华贝电子科技有限公司 自动识别电脑端口状态并启动测试程序的方法及装置
CN119396786B (zh) * 2024-10-10 2025-05-13 中国科学院国家空间科学中心 一种跨apid混合依赖关系的科学卫星数据处理系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05346911A (ja) * 1991-10-30 1993-12-27 Kumamoto Techno Porisu Zaidan コンピュータ
JPH08330945A (ja) * 1995-06-05 1996-12-13 Internatl Business Mach Corp <Ibm> プログラム可能ゲート・アレイの動的再構成システム
WO1998029952A1 (de) * 1996-12-27 1998-07-09 Pact Informationstechnologie Gmbh VERFAHREN ZUM SELBSTÄNDIGEN DYNAMISCHEN UMLADEN VON DATENFLUSSPROZESSOREN (DFPs) SOWIE BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN (FPGAs, DPGAs, o.dgl.)
WO1998031102A1 (de) * 1996-12-20 1998-07-16 Pact Informationstechnologie Gmbh Umkonfigurierungs-verfahren für programmierbare bausteine zur laufzeit
WO1998035299A2 (de) * 1997-02-08 1998-08-13 Pact Informationstechnologie Gmbh Verfahren zur selbstsynchronisation von konfigurierbaren elementen eines programmierbaren bausteines
WO1999044147A2 (de) * 1998-02-25 1999-09-02 Pact Informationstechnologie Gmbh VERFAHREN ZUM HIERARCHISCHEN CACHEN VON KONFIGURATIONSDATEN VON DATENFLUSSPROZESSOREN UND BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALER PROGRAMMIERBARER ZELLSTRUKTUR (FPGAs, DPGAs, o.dgl.)
WO2000017771A2 (de) * 1998-09-23 2000-03-30 Infineon Technologies Ag Verfahren zum konfigurieren eines konfigurierbaren hardware-blocks
JP2000091435A (ja) * 1998-09-11 2000-03-31 Fuji Xerox Co Ltd 情報処理システム

Family Cites Families (662)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2067477A (en) 1931-03-20 1937-01-12 Allis Chalmers Mfg Co Gearing
GB971191A (en) 1962-05-28 1964-09-30 Wolf Electric Tools Ltd Improvements relating to electrically driven equipment
US3564506A (en) 1968-01-17 1971-02-16 Ibm Instruction retry byte counter
GB1253309A (en) 1969-11-21 1971-11-10 Marconi Co Ltd Improvements in or relating to data processing arrangements
US3753008A (en) 1970-06-20 1973-08-14 Honeywell Inf Systems Memory pre-driver circuit
DE2057312A1 (de) 1970-11-21 1972-05-25 Bhs Bayerische Berg Planetenradgetriebe mit Lastdruckausgleich
US5459846A (en) 1988-12-02 1995-10-17 Hyatt; Gilbert P. Computer architecture system having an imporved memory
US3754211A (en) 1971-12-30 1973-08-21 Ibm Fast error recovery communication controller
US3855577A (en) 1973-06-11 1974-12-17 Texas Instruments Inc Power saving circuit for calculator system
US3956589A (en) 1973-11-26 1976-05-11 Paradyne Corporation Data telecommunication system
US3970993A (en) 1974-01-02 1976-07-20 Hughes Aircraft Company Cooperative-word linear array parallel processor
GB1574058A (en) 1976-03-26 1980-09-03 Tokyo Shibaura Electric Co Power supply control in a memory system
US4233667A (en) 1978-10-23 1980-11-11 International Business Machines Corporation Demand powered programmable logic array
US4428048A (en) 1981-01-28 1984-01-24 Grumman Aerospace Corporation Multiprocessor with staggered processing
US4414547A (en) 1981-08-05 1983-11-08 General Instrument Corporation Storage logic array having two conductor data column
US4498134A (en) * 1982-01-26 1985-02-05 Hughes Aircraft Company Segregator functional plane for use in a modular array processor
US4489857A (en) 1982-03-22 1984-12-25 Bobrick Washroom Equipment, Inc. Liquid dispenser
US4590583A (en) 1982-07-16 1986-05-20 At&T Bell Laboratories Coin telephone measurement circuitry
US4498172A (en) 1982-07-26 1985-02-05 General Electric Company System for polynomial division self-testing of digital networks
US4667190A (en) 1982-07-30 1987-05-19 Honeywell Inc. Two axis fast access memory
JPS5936857A (ja) 1982-08-25 1984-02-29 Nec Corp プロセツサユニツト
US4663706A (en) 1982-10-28 1987-05-05 Tandem Computers Incorporated Multiprocessor multisystem communications network
US4594682A (en) 1982-12-22 1986-06-10 Ibm Corporation Vector processing
US4739474A (en) 1983-03-10 1988-04-19 Martin Marietta Corporation Geometric-arithmetic parallel processor
US4566102A (en) 1983-04-18 1986-01-21 International Business Machines Corporation Parallel-shift error reconfiguration
US5123109A (en) 1983-05-31 1992-06-16 Thinking Machines Corporation Parallel processor including a processor array with plural data transfer arrangements including (1) a global router and (2) a proximate-neighbor transfer system
US4571736A (en) 1983-10-31 1986-02-18 University Of Southwestern Louisiana Digital communication system employing differential coding and sample robbing
US4646300A (en) * 1983-11-14 1987-02-24 Tandem Computers Incorporated Communications method
USRE34363E (en) 1984-03-12 1993-08-31 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US4870302A (en) 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
JPS60198618A (ja) 1984-03-21 1985-10-08 Oki Electric Ind Co Ltd ダイナミツク論理回路
US4761755A (en) 1984-07-11 1988-08-02 Prime Computer, Inc. Data processing system and method having an improved arithmetic unit
US4682284A (en) 1984-12-06 1987-07-21 American Telephone & Telegraph Co., At&T Bell Lab. Queue administration method and apparatus
US4623997A (en) 1984-12-13 1986-11-18 United Technologies Corporation Coherent interface with wraparound receive and transmit memories
EP0190813B1 (en) 1985-01-29 1991-09-18 The Secretary of State for Defence in Her Britannic Majesty's Government of the United Kingdom of Great Britain and Processing cell for fault tolerant arrays
US4720778A (en) * 1985-01-31 1988-01-19 Hewlett Packard Company Software debugging analyzer
US5023775A (en) 1985-02-14 1991-06-11 Intel Corporation Software programmable logic array utilizing "and" and "or" gates
US5247689A (en) 1985-02-25 1993-09-21 Ewert Alfred P Parallel digital processor including lateral transfer buses with interrupt switches to form bus interconnection segments
US4706216A (en) 1985-02-27 1987-11-10 Xilinx, Inc. Configurable logic element
US5225719A (en) 1985-03-29 1993-07-06 Advanced Micro Devices, Inc. Family of multiple segmented programmable logic blocks interconnected by a high speed centralized switch matrix
US5015884A (en) 1985-03-29 1991-05-14 Advanced Micro Devices, Inc. Multiple array high performance programmable logic device family
US4972314A (en) 1985-05-20 1990-11-20 Hughes Aircraft Company Data flow signal processor method and apparatus
US4967340A (en) 1985-06-12 1990-10-30 E-Systems, Inc. Adaptive processing system having an array of individually configurable processing components
GB8517376D0 (en) 1985-07-09 1985-08-14 Jesshope C R Processor array
US4748580A (en) 1985-08-30 1988-05-31 Advanced Micro Devices, Inc. Multi-precision fixed/floating-point processor
US4720780A (en) 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
JPS62109451A (ja) 1985-11-04 1987-05-20 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション データ伝送ネットワークの通信パス確立・不可用性データ収集方法
US5070475A (en) 1985-11-14 1991-12-03 Data General Corporation Floating point unit interface
US4852048A (en) 1985-12-12 1989-07-25 Itt Corporation Single instruction multiple data (SIMD) cellular array processing apparatus employing a common bus where a first number of bits manifest a first bus portion and a second number of bits manifest a second bus portion
US4733393A (en) 1985-12-12 1988-03-22 Itt Corporation Test method and apparatus for cellular array processor chip
US4882687A (en) 1986-03-31 1989-11-21 Schlumberger Technology Corporation Pixel processor
US5021947A (en) 1986-03-31 1991-06-04 Hughes Aircraft Company Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing
US5034914A (en) 1986-05-15 1991-07-23 Aquidneck Systems International, Inc. Optical disk data storage method and apparatus with buffered interface
GB8612396D0 (en) 1986-05-21 1986-06-25 Hewlett Packard Ltd Chain-configured interface bus system
US4760525A (en) 1986-06-10 1988-07-26 The United States Of America As Represented By The Secretary Of The Air Force Complex arithmetic vector processor for performing control function, scalar operation, and set-up of vector signal processing instruction
US4791603A (en) 1986-07-18 1988-12-13 Honeywell Inc. Dynamically reconfigurable array logic
US4910665A (en) 1986-09-02 1990-03-20 General Electric Company Distributed processing system including reconfigurable elements
US4860201A (en) 1986-09-02 1989-08-22 The Trustees Of Columbia University In The City Of New York Binary tree parallel processor
US5367208A (en) 1986-09-19 1994-11-22 Actel Corporation Reconfigurable programmable interconnect architecture
US4884231A (en) 1986-09-26 1989-11-28 Performance Semiconductor Corporation Microprocessor system with extended arithmetic logic unit
GB2211638A (en) * 1987-10-27 1989-07-05 Ibm Simd array processor
FR2606184B1 (fr) 1986-10-31 1991-11-29 Thomson Csf Dispositif de calcul reconfigurable
US4918440A (en) 1986-11-07 1990-04-17 Furtek Frederick C Programmable logic cell and array
US4811214A (en) 1986-11-14 1989-03-07 Princeton University Multinode reconfigurable pipeline computer
US5226122A (en) 1987-08-21 1993-07-06 Compaq Computer Corp. Programmable logic system for filtering commands to a microprocessor
CA1299757C (en) 1987-08-28 1992-04-28 Brent Cameron Beardsley Device initiated partial system quiescing
US5119290A (en) 1987-10-02 1992-06-02 Sun Microsystems, Inc. Alias address support
CA1286421C (en) 1987-10-14 1991-07-16 Martin Claude Lefebvre Message fifo buffer controller
US5115510A (en) 1987-10-20 1992-05-19 Sharp Kabushiki Kaisha Multistage data flow processor with instruction packet, fetch, storage transmission and address generation controlled by destination information
US5081575A (en) 1987-11-06 1992-01-14 Oryx Corporation Highly parallel computer architecture employing crossbar switch with selectable pipeline delay
US5031179A (en) 1987-11-10 1991-07-09 Canon Kabushiki Kaisha Data communication apparatus
US5113498A (en) 1987-11-10 1992-05-12 Echelon Corporation Input/output section for an intelligent cell which provides sensing, bidirectional communications and control
US4918690A (en) 1987-11-10 1990-04-17 Echelon Systems Corp. Network and intelligent cell for providing sensing, bidirectional communications and control
NL8800053A (nl) 1988-01-11 1989-08-01 Philips Nv Videoprocessorsysteem, alsmede afbeeldingssysteem en beeldopslagsysteem, voorzien van een dergelijk videoprocessorsysteem.
USRE34444E (en) 1988-01-13 1993-11-16 Xilinx, Inc. Programmable logic device
NL8800071A (nl) 1988-01-13 1989-08-01 Philips Nv Dataprocessorsysteem en videoprocessorsysteem, voorzien van een dergelijk dataprocessorsysteem.
DE68917326T2 (de) 1988-01-20 1995-03-02 Advanced Micro Devices Inc Organisation eines integrierten Cachespeichers zur flexiblen Anwendung zur Unterstützung von Multiprozessor-Operationen.
US5303172A (en) 1988-02-16 1994-04-12 Array Microsystems Pipelined combination and vector signal processor
US4959781A (en) 1988-05-16 1990-09-25 Stardent Computer, Inc. System for assigning interrupts to least busy processor that already loaded same class of interrupt routines
JPH06101043B2 (ja) 1988-06-30 1994-12-12 三菱電機株式会社 マイクロコンピュータ
US4939641A (en) 1988-06-30 1990-07-03 Wang Laboratories, Inc. Multi-processor system with cache memories
US5287511A (en) * 1988-07-11 1994-02-15 Star Semiconductor Corporation Architectures and methods for dividing processing tasks into tasks for a programmable real time signal processor and tasks for a decision making microprocessor interfacing therewith
JPH03500461A (ja) 1988-07-22 1991-01-31 アメリカ合衆国 データ駆動式計算用のデータ流れ装置
US5010401A (en) 1988-08-11 1991-04-23 Mitsubishi Denki Kabushiki Kaisha Picture coding and decoding apparatus using vector quantization
US4901268A (en) 1988-08-19 1990-02-13 General Electric Company Multiple function data processor
US5204935A (en) 1988-08-19 1993-04-20 Fuji Xerox Co., Ltd. Programmable fuzzy logic circuits
US5353432A (en) 1988-09-09 1994-10-04 Compaq Computer Corporation Interactive method for configuration of computer system and circuit boards with user specification of system resources and computer resolution of resource conflicts
DE58906434D1 (de) 1988-09-22 1994-01-27 Siemens Ag Schaltungsanordnung für Fernmeldevermittlungsanlagen, insbesondere PCM-Zeitmultiplex-Fernsprechvermittlungsanlagen mit Zentralkoppelfeld und angeschlossenen Teilkoppelfeldern.
JP3060018B2 (ja) 1988-10-05 2000-07-04 クイックターン デザイン システムズ インコーポレイテッド 複数の電気的に再構成可能なゲートアレイを用いて論理構成を構築する方法
JP2930341B2 (ja) 1988-10-07 1999-08-03 マーチン・マリエッタ・コーポレーション データ並列処理装置
US5014193A (en) 1988-10-14 1991-05-07 Compaq Computer Corporation Dynamically configurable portable computer system
DE3835601A1 (de) 1988-10-19 1990-05-03 Messerschmitt Boelkow Blohm Digitalrechner mit einer multiprozessor-anordnung
US5136717A (en) 1988-11-23 1992-08-04 Flavors Technology Inc. Realtime systolic, multiple-instruction, single-data parallel computer system
US5041924A (en) 1988-11-30 1991-08-20 Quantum Corporation Removable and transportable hard disk subsystem
US5081375A (en) 1989-01-19 1992-01-14 National Semiconductor Corp. Method for operating a multiple page programmable logic device
US5245616A (en) 1989-02-24 1993-09-14 Rosemount Inc. Technique for acknowledging packets
GB8906145D0 (en) 1989-03-17 1989-05-04 Algotronix Ltd Configurable cellular array
US5203005A (en) 1989-05-02 1993-04-13 Horst Robert W Cell structure for linear array wafer scale integration architecture with capability to open boundary i/o bus without neighbor acknowledgement
US5237686A (en) 1989-05-10 1993-08-17 Mitsubishi Denki Kabushiki Kaisha Multiprocessor type time varying image encoding system and image processor with memory bus control table for arbitration priority
US5109503A (en) 1989-05-22 1992-04-28 Ge Fanuc Automation North America, Inc. Apparatus with reconfigurable counter includes memory for storing plurality of counter configuration files which respectively define plurality of predetermined counters
JP2584673B2 (ja) 1989-06-09 1997-02-26 株式会社日立製作所 テストデータ変更回路を有する論理回路テスト装置
CA2021192A1 (en) 1989-07-28 1991-01-29 Malcolm A. Mumme Simplified synchronous mesh processor
US5343406A (en) 1989-07-28 1994-08-30 Xilinx, Inc. Distributed memory architecture for a configurable logic array and method for using distributed memory
US5212652A (en) 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
US5233539A (en) 1989-08-15 1993-08-03 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure, input/output structure and configurable logic block
US5489857A (en) 1992-08-03 1996-02-06 Advanced Micro Devices, Inc. Flexible synchronous/asynchronous cell structure for a high density programmable logic device
US5128559A (en) 1989-09-29 1992-07-07 Sgs-Thomson Microelectronics, Inc. Logic block for programmable logic devices
JP2968289B2 (ja) 1989-11-08 1999-10-25 株式会社リコー 中央演算処理装置
GB8925721D0 (en) 1989-11-14 1990-01-04 Amt Holdings Processor array system
GB8925723D0 (en) * 1989-11-14 1990-01-04 Amt Holdings Processor array system
US5522083A (en) 1989-11-17 1996-05-28 Texas Instruments Incorporated Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors
US5212777A (en) 1989-11-17 1993-05-18 Texas Instruments Incorporated Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation
DE58908974D1 (de) 1989-11-21 1995-03-16 Itt Ind Gmbh Deutsche Datengesteuerter Arrayprozessor.
US5099447A (en) * 1990-01-22 1992-03-24 Alliant Computer Systems Corporation Blocked matrix multiplication for computers with hierarchical memory
WO1991011765A1 (en) 1990-01-29 1991-08-08 Teraplex, Inc. Architecture for minimal instruction set computing system
US5125801A (en) 1990-02-02 1992-06-30 Isco, Inc. Pumping system
US5036493A (en) 1990-03-15 1991-07-30 Digital Equipment Corporation System and method for reducing power usage by multiple memory modules
US5142469A (en) 1990-03-29 1992-08-25 Ge Fanuc Automation North America, Inc. Method for converting a programmable logic controller hardware configuration and corresponding control program for use on a first programmable logic controller to use on a second programmable logic controller
US5555201A (en) 1990-04-06 1996-09-10 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including interactive system for hierarchical display of control and dataflow information
EP0463721A3 (en) 1990-04-30 1993-06-16 Gennum Corporation Digital signal processing device
US5355508A (en) 1990-05-07 1994-10-11 Mitsubishi Denki Kabushiki Kaisha Parallel data processing system combining a SIMD unit with a MIMD unit and sharing a common bus, memory, and system controller
JP2526709B2 (ja) * 1990-05-08 1996-08-21 三菱電機株式会社 プログラマブルコントロ―ラおよびプログラマブルコントロ―ラのsfcプログラム実行方法
US5198705A (en) 1990-05-11 1993-03-30 Actel Corporation Logic module with configurable combinational and sequential blocks
US5483620A (en) 1990-05-22 1996-01-09 International Business Machines Corp. Learning machine synapse processor system apparatus
US5193202A (en) 1990-05-29 1993-03-09 Wavetracer, Inc. Processor array with relocated operand physical address generator capable of data transfer to distant physical processor for each virtual processor while simulating dimensionally larger array processor
US5111079A (en) 1990-06-29 1992-05-05 Sgs-Thomson Microelectronics, Inc. Power reduction circuit for programmable logic device
CA2045773A1 (en) 1990-06-29 1991-12-30 Compaq Computer Corporation Byte-compare operation for high-performance processor
SE9002558D0 (sv) 1990-08-02 1990-08-02 Carlstedt Elektronik Ab Processor
DE4129614C2 (de) 1990-09-07 2002-03-21 Hitachi Ltd System und Verfahren zur Datenverarbeitung
US5274593A (en) 1990-09-28 1993-12-28 Intergraph Corporation High speed redundant rows and columns for semiconductor memories
US5076482A (en) 1990-10-05 1991-12-31 The Fletcher Terry Company Pneumatic point driver
US5144166A (en) 1990-11-02 1992-09-01 Concurrent Logic, Inc. Programmable logic cell and array
EP0485690B1 (en) 1990-11-13 1999-05-26 International Business Machines Corporation Parallel associative processor system
US5625836A (en) 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
US5794059A (en) 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
US5734921A (en) 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
US5588152A (en) 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
US5752067A (en) 1990-11-13 1998-05-12 International Business Machines Corporation Fully scalable parallel processing system having asynchronous SIMD processing
US5590345A (en) 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5765011A (en) 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
US5617577A (en) 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
CA2051222C (en) 1990-11-30 1998-05-05 Pradeep S. Sindhu Consistent packet switched memory bus for shared memory multiprocessors
US5613128A (en) 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
US5276836A (en) * 1991-01-10 1994-01-04 Hitachi, Ltd. Data processing device with common memory connecting mechanism
US5301284A (en) 1991-01-16 1994-04-05 Walker-Estes Corporation Mixed-resolution, N-dimensional object space method and apparatus
US5301344A (en) 1991-01-29 1994-04-05 Analogic Corporation Multibus sequential processor to perform in parallel a plurality of reconfigurable logic operations on a plurality of data sets
JP2867717B2 (ja) 1991-02-01 1999-03-10 日本電気株式会社 マイクロコンピュータ
US5212716A (en) 1991-02-05 1993-05-18 International Business Machines Corporation Data edge phase sorting circuits
US5218302A (en) 1991-02-06 1993-06-08 Sun Electric Corporation Interface for coupling an analyzer to a distributorless ignition system
EP0499695B1 (de) 1991-02-22 1996-05-01 Siemens Aktiengesellschaft Speicherprogrammierbare Steuerung
JPH04290155A (ja) 1991-03-19 1992-10-14 Fujitsu Ltd 並列データ処理方式
JPH04293151A (ja) 1991-03-20 1992-10-16 Fujitsu Ltd 並列データ処理方式
US5617547A (en) 1991-03-29 1997-04-01 International Business Machines Corporation Switch network extension of bus architecture
WO1992018935A1 (fr) 1991-04-09 1992-10-29 Fujitsu Limited Dispositif et procede de traitement de donnees
JPH04328657A (ja) 1991-04-30 1992-11-17 Toshiba Corp キャッシュメモリ
US5446904A (en) 1991-05-17 1995-08-29 Zenith Data Systems Corporation Suspend/resume capability for a protected mode microprocessor
AU2158692A (en) 1991-05-24 1993-01-08 British Technology Group Usa, Inc. Optimizing compiler for computers
US5659797A (en) 1991-06-24 1997-08-19 U.S. Philips Corporation Sparc RISC based computer system including a single chip processor with memory management and DMA units coupled to a DRAM interface
JP3259969B2 (ja) 1991-07-09 2002-02-25 株式会社東芝 キャッシュメモリ制御装置
US5347639A (en) 1991-07-15 1994-09-13 International Business Machines Corporation Self-parallelizing computer system and method
US5338984A (en) 1991-08-29 1994-08-16 National Semiconductor Corp. Local and express diagonal busses in a configurable logic array
US5581731A (en) 1991-08-30 1996-12-03 King; Edward C. Method and apparatus for managing video data for faster access by selectively caching video data
US5260610A (en) 1991-09-03 1993-11-09 Altera Corporation Programmable logic element interconnections for programmable logic array integrated circuits
US5633830A (en) 1995-11-08 1997-05-27 Altera Corporation Random access memory block circuitry for programmable logic array integrated circuit devices
US5550782A (en) 1991-09-03 1996-08-27 Altera Corporation Programmable logic array integrated circuits
FR2681791B1 (fr) 1991-09-27 1994-05-06 Salomon Sa Dispositif d'amortissement des vibrations pour club de golf.
CA2073516A1 (en) 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
AU2939892A (en) 1991-12-06 1993-06-28 Richard S. Norman Massively-parallel direct output processor array
US5208491A (en) 1992-01-07 1993-05-04 Washington Research Foundation Field programmable gate array
FR2686175B1 (fr) 1992-01-14 1996-12-20 Andre Thepaut Systeme de traitement de donnees multiprocesseur.
US5412795A (en) 1992-02-25 1995-05-02 Micral, Inc. State machine having a variable timing mechanism for varying the duration of logical output states of the state machine based on variation in the clock frequency
JP2791243B2 (ja) 1992-03-13 1998-08-27 株式会社東芝 階層間同期化システムおよびこれを用いた大規模集積回路
US5452401A (en) 1992-03-31 1995-09-19 Seiko Epson Corporation Selective power-down for high performance CPU/system
JP2647327B2 (ja) 1992-04-06 1997-08-27 インターナショナル・ビジネス・マシーンズ・コーポレイション 大規模並列コンピューティング・システム装置
US5493663A (en) 1992-04-22 1996-02-20 International Business Machines Corporation Method and apparatus for predetermining pages for swapping from physical memory in accordance with the number of accesses
JP2572522B2 (ja) 1992-05-12 1997-01-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピューティング装置
US5611049A (en) 1992-06-03 1997-03-11 Pitts; William M. System for accessing distributed data cache channel at each network node to pass requests and data
JP3737104B2 (ja) 1992-06-04 2006-01-18 ジリンクス,インコーポレーテッド プログラム可能な集積回路デバイスにユーザ回路を配置するタイミング駆動式の方法
DE4221278C2 (de) 1992-06-29 1996-02-29 Martin Vorbach Busgekoppeltes Mehrrechnersystem
US5475803A (en) 1992-07-10 1995-12-12 Lsi Logic Corporation Method for 2-D affine transformation of images
JP3032382B2 (ja) 1992-07-13 2000-04-17 シャープ株式会社 デジタル信号のサンプリング周波数変換装置
US5365125A (en) 1992-07-23 1994-11-15 Xilinx, Inc. Logic cell for field programmable gate array having optional internal feedback and optional cascade
US5386154A (en) 1992-07-23 1995-01-31 Xilinx, Inc. Compact logic cell for field programmable gate array chip
US5590348A (en) 1992-07-28 1996-12-31 International Business Machines Corporation Status predictor for combined shifter-rotate/merge unit
US5802290A (en) 1992-07-29 1998-09-01 Virtual Computer Corporation Computer network of distributed virtual computers which are EAC reconfigurable in response to instruction to be executed
US5581778A (en) 1992-08-05 1996-12-03 David Sarnoff Researach Center Advanced massively parallel computer using a field of the instruction to selectively enable the profiling counter to increase its value in response to the system clock
EP0920005B1 (en) 1992-09-03 2003-04-16 Sony Corporation Data recording apparatus and methods
US5572710A (en) 1992-09-11 1996-11-05 Kabushiki Kaisha Toshiba High speed logic simulation system using time division emulation suitable for large scale logic circuits
US5425036A (en) 1992-09-18 1995-06-13 Quickturn Design Systems, Inc. Method and apparatus for debugging reconfigurable emulation systems
JPH06180653A (ja) 1992-10-02 1994-06-28 Hudson Soft Co Ltd 割り込み処理方法および装置
US5329179A (en) 1992-10-05 1994-07-12 Lattice Semiconductor Corporation Arrangement for parallel programming of in-system programmable IC logical devices
GB9223226D0 (en) 1992-11-05 1992-12-16 Algotronix Ltd Improved configurable cellular array (cal ii)
US5857109A (en) * 1992-11-05 1999-01-05 Giga Operations Corporation Programmable logic device for real time video processing
US5497498A (en) 1992-11-05 1996-03-05 Giga Operations Corporation Video processing module using a second programmable logic device which reconfigures a first programmable logic device for data transformation
US5392437A (en) * 1992-11-06 1995-02-21 Intel Corporation Method and apparatus for independently stopping and restarting functional units
US5361373A (en) * 1992-12-11 1994-11-01 Gilson Kent L Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
US5311079A (en) 1992-12-17 1994-05-10 Ditlow Gary S Low power, high performance PLA
US5428526A (en) 1993-02-03 1995-06-27 Flood; Mark A. Programmable controller with time periodic communication
US5386518A (en) * 1993-02-12 1995-01-31 Hughes Aircraft Company Reconfigurable computer interface and method
GB9303084D0 (en) 1993-02-16 1993-03-31 Inmos Ltd Programmable logic circuit
JPH06276086A (ja) 1993-03-18 1994-09-30 Fuji Xerox Co Ltd フィールドプログラマブルゲートアレイ
US5548773A (en) 1993-03-30 1996-08-20 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Digital parallel processor array for optimum path planning
US5596742A (en) 1993-04-02 1997-01-21 Massachusetts Institute Of Technology Virtual interconnections for reconfigurable logic systems
US5418953A (en) 1993-04-12 1995-05-23 Loral/Rohm Mil-Spec Corp. Method for automated deployment of a software program onto a multi-processor architecture
US5473266A (en) 1993-04-19 1995-12-05 Altera Corporation Programmable logic device having fast programmable logic array blocks and a central global interconnect array
WO1994025917A1 (en) * 1993-04-26 1994-11-10 Comdisco Systems, Inc. Method for scheduling synchronous data flow graphs
DE4416881C2 (de) 1993-05-13 1998-03-19 Pact Inf Tech Gmbh Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
US5435000A (en) 1993-05-19 1995-07-18 Bull Hn Information Systems Inc. Central processing unit using dual basic processing units and combined result bus
US5349193A (en) 1993-05-20 1994-09-20 Princeton Gamma Tech, Inc. Highly sensitive nuclear spectrometer apparatus and method
IT1260848B (it) 1993-06-11 1996-04-23 Finmeccanica Spa Sistema a multiprocessore
CA2165200A1 (en) 1993-06-18 1995-01-05 Ambikaipakan Balasubramaniam Neuropeptide y antagonists and agonists
US5444394A (en) 1993-07-08 1995-08-22 Altera Corporation PLD with selective inputs from local and global conductors
JPH0736858A (ja) 1993-07-21 1995-02-07 Hitachi Ltd 信号処理プロセッサ
US5581734A (en) 1993-08-02 1996-12-03 International Business Machines Corporation Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity
CA2129882A1 (en) 1993-08-12 1995-02-13 Soheil Shams Dynamically reconfigurable interprocessor communication network for simd multiprocessors and apparatus implementing same
US5457644A (en) 1993-08-20 1995-10-10 Actel Corporation Field programmable digital signal processing array integrated circuit
US5440538A (en) 1993-09-23 1995-08-08 Massachusetts Institute Of Technology Communication system with redundant links and data bit time multiplexing
GB2282244B (en) 1993-09-23 1998-01-14 Advanced Risc Mach Ltd Integrated circuit
US5502838A (en) 1994-04-28 1996-03-26 Consilium Overseas Limited Temperature management for integrated circuits
US6219688B1 (en) 1993-11-30 2001-04-17 Texas Instruments Incorporated Method, apparatus and system for sum of plural absolute differences
US5455525A (en) 1993-12-06 1995-10-03 Intelligent Logic Systems, Inc. Hierarchically-structured programmable logic array and system for interconnecting logic elements in the logic array
US6064819A (en) 1993-12-08 2000-05-16 Imec Control flow and memory management optimization
US5535406A (en) 1993-12-29 1996-07-09 Kolchinsky; Alexander Virtual processor module including a reconfigurable programmable matrix
US5680583A (en) 1994-02-16 1997-10-21 Arkos Design, Inc. Method and apparatus for a trace buffer in an emulation system
EP1191457A2 (en) 1994-03-22 2002-03-27 Hyperchip Inc. Monolithic systems with dynamically focused input/output
US6408402B1 (en) 1994-03-22 2002-06-18 Hyperchip Inc. Efficient direct replacement cell fault tolerant architecture
US5561738A (en) 1994-03-25 1996-10-01 Motorola, Inc. Data processor for executing a fuzzy logic operation and method therefor
US5574927A (en) 1994-03-25 1996-11-12 International Meta Systems, Inc. RISC architecture computer configured for emulation of the instruction set of a target computer
US5761484A (en) 1994-04-01 1998-06-02 Massachusetts Institute Of Technology Virtual interconnections for reconfigurable logic systems
US5781756A (en) 1994-04-01 1998-07-14 Xilinx, Inc. Programmable logic device with partially configurable memory cells and a method for configuration
US5504439A (en) 1994-04-01 1996-04-02 Xilinx, Inc. I/O interface cell for use with optional pad
US5430687A (en) 1994-04-01 1995-07-04 Xilinx, Inc. Programmable logic device including a parallel input device for loading memory cells
US5896551A (en) 1994-04-15 1999-04-20 Micron Technology, Inc. Initializing and reprogramming circuitry for state independent memory array burst operations control
US5426378A (en) 1994-04-20 1995-06-20 Xilinx, Inc. Programmable logic device which stores more than one configuration and means for switching configurations
US5677909A (en) 1994-05-11 1997-10-14 Spectrix Corporation Apparatus for exchanging data between a central station and a plurality of wireless remote stations on a time divided commnication channel
JP2671804B2 (ja) 1994-05-27 1997-11-05 日本電気株式会社 階層型資源管理方法
US5532693A (en) 1994-06-13 1996-07-02 Advanced Hardware Architectures Adaptive data compression system with systolic string matching logic
EP0690378A1 (en) 1994-06-30 1996-01-03 Tandem Computers Incorporated Tool and method for diagnosing and correcting errors in a computer programm
JP3308770B2 (ja) 1994-07-22 2002-07-29 三菱電機株式会社 情報処理装置および情報処理装置における計算方法
US5600845A (en) * 1994-07-27 1997-02-04 Metalithic Systems Incorporated Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
JP3365581B2 (ja) 1994-07-29 2003-01-14 富士通株式会社 自己修復機能付き情報処理装置
US5963154A (en) 1994-07-29 1999-10-05 Discovision Associates Technique for decoding variable and fixed length codes
US5574930A (en) 1994-08-12 1996-11-12 University Of Hawaii Computer system and method using functional memory
US5513366A (en) 1994-09-28 1996-04-30 International Business Machines Corporation Method and system for dynamically reconfiguring a register file in a vector processor
US5619720A (en) 1994-10-04 1997-04-08 Analog Devices, Inc. Digital signal processor having link ports for point-to-point communication
US5450022A (en) 1994-10-07 1995-09-12 Xilinx Inc. Structure and method for configuration of a field programmable gate array
EP0707269A1 (en) 1994-10-11 1996-04-17 International Business Machines Corporation Cache coherence network for a multiprocessor data processing system
US5530946A (en) 1994-10-28 1996-06-25 Dell Usa, L.P. Processor failure detection and recovery circuit in a dual processor computer system and method of operation thereof
US5815726A (en) 1994-11-04 1998-09-29 Altera Corporation Coarse-grained look-up table architecture
JPH08137824A (ja) 1994-11-15 1996-05-31 Mitsubishi Semiconductor Software Kk セルフテスト機能内蔵シングルチップマイコン
US6154826A (en) 1994-11-16 2000-11-28 University Of Virginia Patent Foundation Method and device for maximizing memory system bandwidth by accessing data in a dynamically determined order
US5584013A (en) 1994-12-09 1996-12-10 International Business Machines Corporation Hierarchical cache arrangement wherein the replacement of an LRU entry in a second level cache is prevented when the cache entry is the only inclusive entry in the first level cache
EP0721157A1 (en) 1994-12-12 1996-07-10 Advanced Micro Devices, Inc. Microprocessor with selectable clock frequency
US5537580A (en) 1994-12-21 1996-07-16 Vlsi Technology, Inc. Integrated circuit fabrication using state machine extraction from behavioral hardware description language
US5603005A (en) * 1994-12-27 1997-02-11 Unisys Corporation Cache coherency scheme for XBAR storage structure with delayed invalidates until associated write request is executed
JP3598139B2 (ja) 1994-12-28 2004-12-08 株式会社日立製作所 データ処理装置
US5682491A (en) 1994-12-29 1997-10-28 International Business Machines Corporation Selective processing and routing of results among processors controlled by decoding instructions using mask value derived from instruction tag and processor identifier
US6128720A (en) 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
US5778237A (en) 1995-01-10 1998-07-07 Hitachi, Ltd. Data processor and single-chip microcomputer with changing clock frequency and operating voltage
US5696791A (en) 1995-01-17 1997-12-09 Vtech Industries, Inc. Apparatus and method for decoding a sequence of digitally encoded data
US5532957A (en) 1995-01-31 1996-07-02 Texas Instruments Incorporated Field reconfigurable logic/memory array
US5493239A (en) 1995-01-31 1996-02-20 Motorola, Inc. Circuit and method of configuring a field programmable gate array
US6052773A (en) 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
US5659785A (en) 1995-02-10 1997-08-19 International Business Machines Corporation Array processor communication architecture with broadcast processor instructions
US5742180A (en) 1995-02-10 1998-04-21 Massachusetts Institute Of Technology Dynamically programmable gate array with multiple contexts
US5537057A (en) 1995-02-14 1996-07-16 Altera Corporation Programmable logic array device with grouped logic regions and three types of conductors
WO1996025701A1 (en) 1995-02-14 1996-08-22 Vlsi Technology, Inc. Method and apparatus for reducing power consumption in digital electronic circuits
EP0727750B1 (en) * 1995-02-17 2004-05-12 Kabushiki Kaisha Toshiba Continuous data server apparatus and data transfer scheme enabling multiple simultaneous data accesses
US5892961A (en) 1995-02-17 1999-04-06 Xilinx, Inc. Field programmable gate array having programming instructions in the configuration bitstream
US5675743A (en) 1995-02-22 1997-10-07 Callisto Media Systems Inc. Multi-media server
US5570040A (en) 1995-03-22 1996-10-29 Altera Corporation Programmable logic array integrated circuit incorporating a first-in first-out memory
US5757207A (en) 1995-03-22 1998-05-26 Altera Corporation Programmable logic array integrated circuit incorporating a first-in first-out memory
US5748979A (en) 1995-04-05 1998-05-05 Xilinx Inc Reprogrammable instruction set accelerator using a plurality of programmable execution units and an instruction page table
US5752035A (en) 1995-04-05 1998-05-12 Xilinx, Inc. Method for compiling and executing programs for reprogrammable instruction set accelerator
JP3313007B2 (ja) * 1995-04-14 2002-08-12 三菱電機株式会社 マイクロコンピュータ
US6077315A (en) 1995-04-17 2000-06-20 Ricoh Company Ltd. Compiling system and method for partially reconfigurable computing
US5794062A (en) 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US5933642A (en) 1995-04-17 1999-08-03 Ricoh Corporation Compiling system and method for reconfigurable computing
JP3948494B2 (ja) * 1995-04-28 2007-07-25 ザイリンクス,インコーポレイテッド プログラム可能論理装置によってアクセス可能な分散レジスタを有するマイクロプロセサ
GB9508931D0 (en) * 1995-05-02 1995-06-21 Xilinx Inc Programmable switch for FPGA input/output signals
US5600597A (en) * 1995-05-02 1997-02-04 Xilinx, Inc. Register protection structure for FPGA
US5701091A (en) 1995-05-02 1997-12-23 Xilinx, Inc. Routing resources for hierarchical FPGA
US5541530A (en) 1995-05-17 1996-07-30 Altera Corporation Programmable logic array integrated circuits with blocks of logic regions grouped into super-blocks
US5649179A (en) 1995-05-19 1997-07-15 Motorola, Inc. Dynamic instruction allocation for a SIMD processor
US5821774A (en) 1995-05-26 1998-10-13 Xilinx, Inc. Structure and method for arithmetic function implementation in an EPLD having high speed product term allocation structure
JPH08328684A (ja) * 1995-05-30 1996-12-13 Toshiba Corp コンピュータシステム
JPH08328941A (ja) 1995-05-31 1996-12-13 Nec Corp メモリアクセス制御回路
JP3677315B2 (ja) * 1995-06-01 2005-07-27 シャープ株式会社 データ駆動型情報処理装置
US5671432A (en) 1995-06-02 1997-09-23 International Business Machines Corporation Programmable array I/O-routing resource
US5652529A (en) 1995-06-02 1997-07-29 International Business Machines Corporation Programmable array clock/reset resource
US5815715A (en) 1995-06-05 1998-09-29 Motorola, Inc. Method for designing a product having hardware and software components and product therefor
ZA965340B (en) 1995-06-30 1997-01-27 Interdigital Tech Corp Code division multiple access (cdma) communication system
US5889982A (en) 1995-07-01 1999-03-30 Intel Corporation Method and apparatus for generating event handler vectors based on both operating mode and event type
US5559450A (en) 1995-07-27 1996-09-24 Lucent Technologies Inc. Field programmable gate array with multi-port RAM
US5978583A (en) 1995-08-07 1999-11-02 International Business Machines Corp. Method for resource control in parallel environments using program organization and run-time support
US5649176A (en) 1995-08-10 1997-07-15 Virtual Machine Works, Inc. Transition analysis and circuit resynthesis method and device for digital circuit modeling
US5996083A (en) 1995-08-11 1999-11-30 Hewlett-Packard Company Microprocessor having software controllable power consumption
GB2304438A (en) 1995-08-17 1997-03-19 Kenneth Austin Re-configurable application specific device
US5583450A (en) 1995-08-18 1996-12-10 Xilinx, Inc. Sequencer for a time multiplexed programmable logic device
US5646545A (en) 1995-08-18 1997-07-08 Xilinx, Inc. Time multiplexed programmable logic device
US5778439A (en) 1995-08-18 1998-07-07 Xilinx, Inc. Programmable logic device with hierarchical confiquration and state storage
US5784313A (en) 1995-08-18 1998-07-21 Xilinx, Inc. Programmable logic device including configuration data or user data memory slices
US5737565A (en) 1995-08-24 1998-04-07 International Business Machines Corporation System and method for diallocating stream from a stream buffer
US5737516A (en) 1995-08-30 1998-04-07 Motorola, Inc. Data processing system for performing a debug function and method therefor
US5734869A (en) * 1995-09-06 1998-03-31 Chen; Duan-Ping High speed logic circuit simulator
US6430309B1 (en) * 1995-09-15 2002-08-06 Monogen, Inc. Specimen preview and inspection system
US5745734A (en) 1995-09-29 1998-04-28 International Business Machines Corporation Method and system for programming a gate array using a compressed configuration bit stream
US5652894A (en) 1995-09-29 1997-07-29 Intel Corporation Method and apparatus for providing power saving modes to a pipelined processor
US5754827A (en) 1995-10-13 1998-05-19 Mentor Graphics Corporation Method and apparatus for performing fully visible tracing of an emulation
US5815004A (en) 1995-10-16 1998-09-29 Xilinx, Inc. Multi-buffered configurable logic block output lines in a field programmable gate array
US5642058A (en) 1995-10-16 1997-06-24 Xilinx , Inc. Periphery input/output interconnect structure
US5608342A (en) * 1995-10-23 1997-03-04 Xilinx, Inc. Hierarchical programming of electrically configurable integrated circuits
US5675262A (en) 1995-10-26 1997-10-07 Xilinx, Inc. Fast carry-out scheme in a field programmable gate array
US5656950A (en) 1995-10-26 1997-08-12 Xilinx, Inc. Interconnect lines including tri-directional buffer circuits
JP3679844B2 (ja) * 1995-11-09 2005-08-03 ファナック株式会社 シーケンス・プログラムの実行装置
US5943242A (en) 1995-11-17 1999-08-24 Pact Gmbh Dynamically reconfigurable data processing system
US5732209A (en) 1995-11-29 1998-03-24 Exponential Technology, Inc. Self-testing multi-processor die with internal compare points
US5773994A (en) 1995-12-15 1998-06-30 Cypress Semiconductor Corp. Method and apparatus for implementing an internal tri-state bus within a programmable logic circuit
JPH09231788A (ja) * 1995-12-19 1997-09-05 Fujitsu Ltd シフトレジスタ及びプログラマブル論理回路並びにプログラマブル論理回路システム
CA2166369C (en) 1995-12-29 2004-10-19 Robert J. Blainey Method and system for determining inter-compilation unit alias information
US5804986A (en) 1995-12-29 1998-09-08 Cypress Semiconductor Corp. Memory in a programmable logic device
WO2002071249A2 (de) 2001-03-05 2002-09-12 Pact Informationstechnologie Gmbh Verfahren und vorrichtungen zur datenbe- und/oder verarbeitung
WO2003025781A2 (de) 2001-09-19 2003-03-27 Pact Xpp Technologies Ag Verfahren zur konfiguration der verbindung zwischen datenverarbeitungszellen
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US6317819B1 (en) 1996-01-11 2001-11-13 Steven G. Morton Digital signal processor containing scalar processor and a plurality of vector processors operating from a single instruction
JP3247043B2 (ja) 1996-01-12 2002-01-15 株式会社日立製作所 内部信号で障害検出を行う情報処理システムおよび論理lsi
US5760602A (en) 1996-01-17 1998-06-02 Hewlett-Packard Company Time multiplexing a plurality of configuration settings of a programmable switch element in a FPGA
JP2795244B2 (ja) 1996-01-17 1998-09-10 日本電気株式会社 プログラムデバッグシステム
US5854918A (en) 1996-01-24 1998-12-29 Ricoh Company Ltd. Apparatus and method for self-timed algorithmic execution
US5898602A (en) 1996-01-25 1999-04-27 Xilinx, Inc. Carry chain circuit with flexible carry function for implementing arithmetic and logical functions
US5635851A (en) 1996-02-02 1997-06-03 Xilinx, Inc. Read and writable data bus particularly for programmable logic devices
US5936424A (en) 1996-02-02 1999-08-10 Xilinx, Inc. High speed bus with tree structure for selecting bus driver
US5727229A (en) 1996-02-05 1998-03-10 Motorola, Inc. Method and apparatus for moving data in a parallel processor
US5754459A (en) 1996-02-08 1998-05-19 Xilinx, Inc. Multiplier circuit design for a programmable logic device
KR0165515B1 (ko) 1996-02-17 1999-01-15 김광호 그래픽 데이터의 선입선출기 및 선입선출 방법
GB9604496D0 (en) 1996-03-01 1996-05-01 Xilinx Inc Embedded memory for field programmable gate array
US6020758A (en) * 1996-03-11 2000-02-01 Altera Corporation Partially reconfigurable programmable logic device
US5841973A (en) 1996-03-13 1998-11-24 Cray Research, Inc. Messaging in distributed memory multiprocessing system having shell circuitry for atomic control of message storage queue's tail pointer structure in local memory
US6279077B1 (en) 1996-03-22 2001-08-21 Texas Instruments Incorporated Bus interface buffer control in a microprocessor
US6311265B1 (en) 1996-03-25 2001-10-30 Torrent Systems, Inc. Apparatuses and methods for programming parallel computers
US6154049A (en) 1998-03-27 2000-11-28 Xilinx, Inc. Multiplier fabric for use in field programmable gate arrays
US5956518A (en) 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
US5687325A (en) 1996-04-19 1997-11-11 Chang; Web Application specific field programmable gate array
US6173434B1 (en) * 1996-04-22 2001-01-09 Brigham Young University Dynamically-configurable digital processor using method for relocating logic array modules
US5960200A (en) 1996-05-03 1999-09-28 I-Cube System to transition an enterprise to a distributed infrastructure
US5894565A (en) 1996-05-20 1999-04-13 Atmel Corporation Field programmable gate array with distributed RAM and increased cell utilization
US5784636A (en) 1996-05-28 1998-07-21 National Semiconductor Corporation Reconfigurable computer architecture for use in signal processing applications
US5892370A (en) 1996-06-21 1999-04-06 Quicklogic Corporation Clock network for field programmable gate array
US5887165A (en) * 1996-06-21 1999-03-23 Mirage Technologies, Inc. Dynamically reconfigurable hardware system for real-time control of processes
US6785826B1 (en) 1996-07-17 2004-08-31 International Business Machines Corporation Self power audit and control circuitry for microprocessor functional units
US6023742A (en) 1996-07-18 2000-02-08 University Of Washington Reconfigurable computing architecture for providing pipelined data paths
US6023564A (en) 1996-07-19 2000-02-08 Xilinx, Inc. Data processing system using a flash reconfigurable logic device as a dynamic execution unit for a sequence of instructions
US5774704A (en) 1996-07-29 1998-06-30 Silicon Graphics, Inc. Apparatus and method for dynamic central processing unit clock adjustment
KR100280285B1 (ko) 1996-08-19 2001-02-01 윤종용 멀티미디어 신호에 적합한 멀티미디어 프로세서
US5838165A (en) * 1996-08-21 1998-11-17 Chatter; Mukesh High performance self modifying on-the-fly alterable logic FPGA, architecture and method
US5970243A (en) * 1996-08-27 1999-10-19 Steeplechase Software, Inc. Online programming changes for industrial logic controllers
US5933023A (en) 1996-09-03 1999-08-03 Xilinx, Inc. FPGA architecture having RAM blocks with programmable word length and width and dedicated address and data lines
US6624658B2 (en) 1999-02-04 2003-09-23 Advantage Logic, Inc. Method and apparatus for universal program controlled bus architecture
US5859544A (en) 1996-09-05 1999-01-12 Altera Corporation Dynamic configurable elements for programmable logic devices
US6049866A (en) 1996-09-06 2000-04-11 Silicon Graphics, Inc. Method and system for an efficient user mode cache manipulation using a simulated instruction
JP3934710B2 (ja) 1996-09-13 2007-06-20 株式会社ルネサステクノロジ マイクロプロセッサ
US5828858A (en) 1996-09-16 1998-10-27 Virginia Tech Intellectual Properties, Inc. Worm-hole run-time reconfigurable processor field programmable gate array (FPGA)
US6178494B1 (en) * 1996-09-23 2001-01-23 Virtual Computer Corporation Modular, hybrid processor and method for producing a modular, hybrid processor
US5694602A (en) 1996-10-01 1997-12-02 The United States Of America As Represented By The Secretary Of The Air Force Weighted system and method for spatial allocation of a parallel load
SG125044A1 (en) 1996-10-14 2006-09-29 Mitsubishi Gas Chemical Co Oxygen absorption composition
US5901279A (en) 1996-10-18 1999-05-04 Hughes Electronics Corporation Connection of spares between multiple programmable devices
US5832288A (en) 1996-10-18 1998-11-03 Samsung Electronics Co., Ltd. Element-select mechanism for a vector processor
US5892962A (en) 1996-11-12 1999-04-06 Lucent Technologies Inc. FPGA-based processor
US5844422A (en) 1996-11-13 1998-12-01 Xilinx, Inc. State saving and restoration in reprogrammable FPGAs
US5895487A (en) 1996-11-13 1999-04-20 International Business Machines Corporation Integrated processing and L2 DRAM cache
US5860119A (en) 1996-11-25 1999-01-12 Vlsi Technology, Inc. Data-packet fifo buffer system with end-of-packet flags
US6005410A (en) 1996-12-05 1999-12-21 International Business Machines Corporation Interconnect structure between heterogeneous core regions in a programmable array
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
US5913925A (en) 1996-12-16 1999-06-22 International Business Machines Corporation Method and system for constructing a program including out-of-order threads and processor and method for executing threads out-of-order
US6338106B1 (en) 1996-12-20 2002-01-08 Pact Gmbh I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
EP1329816B1 (de) 1996-12-27 2011-06-22 Richter, Thomas Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
US6427156B1 (en) 1997-01-21 2002-07-30 Xilinx, Inc. Configurable logic block with AND gate for efficient multiplication in FPGAS
EP0858167A1 (en) 1997-01-29 1998-08-12 Hewlett-Packard Company Field programmable processor device
EP0858168A1 (en) 1997-01-29 1998-08-12 Hewlett-Packard Company Field programmable processor array
DE19704044A1 (de) 1997-02-04 1998-08-13 Pact Inf Tech Gmbh Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine
US5865239A (en) 1997-02-05 1999-02-02 Micropump, Inc. Method for making herringbone gears
US6055619A (en) 1997-02-07 2000-04-25 Cirrus Logic, Inc. Circuits, system, and methods for processing multiple data streams
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704742A1 (de) 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
US6150837A (en) * 1997-02-28 2000-11-21 Actel Corporation Enhanced field programmable gate array
US5927423A (en) 1997-03-05 1999-07-27 Massachusetts Institute Of Technology Reconfigurable footprint mechanism for omnidirectional vehicles
US5884075A (en) 1997-03-10 1999-03-16 Compaq Computer Corporation Conflict resolution using self-contained virtual devices
US5857097A (en) * 1997-03-10 1999-01-05 Digital Equipment Corporation Method for identifying reasons for dynamic stall cycles during the execution of a program
US6125408A (en) 1997-03-10 2000-09-26 Compaq Computer Corporation Resource type prioritization in generating a device configuration
US5859565A (en) * 1997-03-10 1999-01-12 Reiffin; Martin Cathode-follower high-fidelity power amplifier
GB2323188B (en) 1997-03-14 2002-02-06 Nokia Mobile Phones Ltd Enabling and disabling clocking signals to elements
US6085317A (en) 1997-08-15 2000-07-04 Altera Corporation Reconfigurable computer architecture using programmable logic devices
US6349379B2 (en) 1997-04-30 2002-02-19 Canon Kabushiki Kaisha System for executing instructions having flag for indicating direct or indirect specification of a length of operand data
AUPO647997A0 (en) 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Memory controller architecture
US6389379B1 (en) 1997-05-02 2002-05-14 Axis Systems, Inc. Converification system and method
US6321366B1 (en) 1997-05-02 2001-11-20 Axis Systems, Inc. Timing-insensitive glitch-free logic system and method
US6035371A (en) 1997-05-28 2000-03-07 3Com Corporation Method and apparatus for addressing a static random access memory device based on signals for addressing a dynamic memory access device
US6421817B1 (en) 1997-05-29 2002-07-16 Xilinx, Inc. System and method of computation in a programmable logic device using virtual instructions
US6047115A (en) 1997-05-29 2000-04-04 Xilinx, Inc. Method for configuring FPGA memory planes for virtual hardware computation
US6339840B1 (en) 1997-06-02 2002-01-15 Iowa State University Research Foundation, Inc. Apparatus and method for parallelizing legacy computer code
US6011407A (en) * 1997-06-13 2000-01-04 Xilinx, Inc. Field programmable gate array with dedicated computer bus interface and method for configuring both
US5996048A (en) * 1997-06-20 1999-11-30 Sun Microsystems, Inc. Inclusion vector architecture for a level two cache
US6058266A (en) 1997-06-24 2000-05-02 International Business Machines Corporation Method of, system for, and computer program product for performing weighted loop fusion by an optimizing compiler
US6240502B1 (en) * 1997-06-25 2001-05-29 Sun Microsystems, Inc. Apparatus for dynamically reconfiguring a processor
US5838988A (en) 1997-06-25 1998-11-17 Sun Microsystems, Inc. Computer product for precise architectural update in an out-of-order processor
US5966534A (en) 1997-06-27 1999-10-12 Cooke; Laurence H. Method for compiling high level programming languages into an integrated processor with reconfigurable logic
US5970254A (en) 1997-06-27 1999-10-19 Cooke; Laurence H. Integrated processor and programmable data path chip for reconfigurable computing
US6072348A (en) 1997-07-09 2000-06-06 Xilinx, Inc. Programmable power reduction in a clock-distribution circuit
US6437441B1 (en) 1997-07-10 2002-08-20 Kawasaki Microelectronics, Inc. Wiring structure of a semiconductor integrated circuit and a method of forming the wiring structure
US6020760A (en) * 1997-07-16 2000-02-01 Altera Corporation I/O buffer circuit with pin multiplexing
US6282701B1 (en) 1997-07-31 2001-08-28 Mutek Solutions, Ltd. System and method for monitoring and analyzing the execution of computer programs
US6170051B1 (en) * 1997-08-01 2001-01-02 Micron Technology, Inc. Apparatus and method for program level parallelism in a VLIW processor
US6026478A (en) 1997-08-01 2000-02-15 Micron Technology, Inc. Split embedded DRAM processor
US6078736A (en) 1997-08-28 2000-06-20 Xilinx, Inc. Method of designing FPGAs for dynamically reconfigurable computing
US6038656A (en) 1997-09-12 2000-03-14 California Institute Of Technology Pipelined completion for asynchronous communication
JP3612186B2 (ja) 1997-09-19 2005-01-19 株式会社ルネサステクノロジ データ処理装置
US6539415B1 (en) 1997-09-24 2003-03-25 Sony Corporation Method and apparatus for the allocation of audio/video tasks in a network system
WO2003036507A2 (de) 2001-09-19 2003-05-01 Pact Xpp Technologies Ag Rekonfigurierbare elemente
US5966143A (en) 1997-10-14 1999-10-12 Motorola, Inc. Data allocation into multiple memories for concurrent access
SG82587A1 (en) 1997-10-21 2001-08-21 Sony Corp Recording apparatus, recording method, playback apparatus, playback method, recording/playback apparatus, recording/playback method, presentation medium and recording medium
US6212544B1 (en) 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
JP4128251B2 (ja) 1997-10-23 2008-07-30 富士通株式会社 配線密度予測方法およびセル配置装置
US6076157A (en) 1997-10-23 2000-06-13 International Business Machines Corporation Method and apparatus to force a thread switch in a multithreaded processor
US6247147B1 (en) 1997-10-27 2001-06-12 Altera Corporation Enhanced embedded logic analyzer
US6108760A (en) 1997-10-31 2000-08-22 Silicon Spice Method and apparatus for position independent reconfiguration in a network of multiple context processing elements
US5915123A (en) 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
US6122719A (en) 1997-10-31 2000-09-19 Silicon Spice Method and apparatus for retiming in a network of multiple context processing elements
US6127908A (en) 1997-11-17 2000-10-03 Massachusetts Institute Of Technology Microelectro-mechanical system actuator device and reconfigurable circuits utilizing same
JPH11147335A (ja) * 1997-11-18 1999-06-02 Fuji Xerox Co Ltd 描画処理装置
JP4197755B2 (ja) * 1997-11-19 2008-12-17 富士通株式会社 信号伝送システム、該信号伝送システムのレシーバ回路、および、該信号伝送システムが適用される半導体記憶装置
US6212650B1 (en) 1997-11-24 2001-04-03 Xilinx, Inc. Interactive dubug tool for programmable circuits
US6075935A (en) 1997-12-01 2000-06-13 Improv Systems, Inc. Method of generating application specific integrated circuits using a programmable hardware architecture
US6091263A (en) * 1997-12-12 2000-07-18 Xilinx, Inc. Rapidly reconfigurable FPGA having a multiple region architecture with reconfiguration caches useable as data RAM
DE69841256D1 (de) 1997-12-17 2009-12-10 Panasonic Corp Befehlsmaskierung um Befehlsströme einem Prozessor zuzuleiten
US6567834B1 (en) 1997-12-17 2003-05-20 Elixent Limited Implementation of multipliers in programmable arrays
DE69827589T2 (de) 1997-12-17 2005-11-03 Elixent Ltd. Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen
DE69737750T2 (de) 1997-12-17 2008-03-06 Hewlett-Packard Development Co., L.P., Houston Erst- und Zweitprozessoren verwendetes Verfahren
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6172520B1 (en) 1997-12-30 2001-01-09 Xilinx, Inc. FPGA system with user-programmable configuration ports and method for reconfiguring the FPGA
US6049222A (en) 1997-12-30 2000-04-11 Xilinx, Inc Configuring an FPGA using embedded memory
US6260114B1 (en) * 1997-12-30 2001-07-10 Mcmz Technology Innovations, Llc Computer cache memory windowing
US6105106A (en) * 1997-12-31 2000-08-15 Micron Technology, Inc. Computer system, memory device and shift register including a balanced switching circuit with series connected transfer gates which are selectively clocked for fast switching times
US6301706B1 (en) 1997-12-31 2001-10-09 Elbrus International Limited Compiler method and apparatus for elimination of redundant speculative computations from innermost loops
US6216223B1 (en) 1998-01-12 2001-04-10 Billions Of Operations Per Second, Inc. Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor
US6034538A (en) 1998-01-21 2000-03-07 Lucent Technologies Inc. Virtual logic system for reconfigurable hardware
US6230307B1 (en) 1998-01-26 2001-05-08 Xilinx, Inc. System and method for programming the hardware of field programmable gate arrays (FPGAs) and related reconfiguration resources as if they were software by creating hardware objects
US6389579B1 (en) 1998-01-26 2002-05-14 Chameleon Systems Reconfigurable logic for table lookup
DE19803593A1 (de) 1998-01-30 1999-08-12 Daimler Chrysler Ag Schaltvorrichtung für ein Zahnräderwechselgetriebe
DE69919059T2 (de) 1998-02-04 2005-01-27 Texas Instruments Inc., Dallas Datenverarbeitungssytem mit einem digitalen Signalprozessor und einem Koprozessor und Datenverarbeitungsverfahren
US6094726A (en) 1998-02-05 2000-07-25 George S. Sheng Digital signal processor using a reconfigurable array of macrocells
US7152027B2 (en) 1998-02-17 2006-12-19 National Instruments Corporation Reconfigurable test system
US6086628A (en) 1998-02-17 2000-07-11 Lucent Technologies Inc. Power-related hardware-software co-synthesis of heterogeneous distributed embedded systems
US6198304B1 (en) 1998-02-23 2001-03-06 Xilinx, Inc. Programmable logic device
US6096091A (en) 1998-02-24 2000-08-01 Advanced Micro Devices, Inc. Dynamically reconfigurable logic networks interconnected by fall-through FIFOs for flexible pipeline processing in a system-on-a-chip
US6088800A (en) 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
US6298043B1 (en) 1998-03-28 2001-10-02 Nortel Networks Limited Communication system architecture and a connection verification mechanism therefor
US6374286B1 (en) 1998-04-06 2002-04-16 Rockwell Collins, Inc. Real time processor capable of concurrently running multiple independent JAVA machines
US6456628B1 (en) 1998-04-17 2002-09-24 Intelect Communications, Inc. DSP intercommunication network
US6084429A (en) 1998-04-24 2000-07-04 Xilinx, Inc. PLD having a window pane architecture with segmented and staggered interconnect wiring between logic block arrays
US6421808B1 (en) 1998-04-24 2002-07-16 Cadance Design Systems, Inc. Hardware design language for the design of integrated circuits
US6173419B1 (en) * 1998-05-14 2001-01-09 Advanced Technology Materials, Inc. Field programmable gate array (FPGA) emulator for debugging software
US6052524A (en) 1998-05-14 2000-04-18 Software Development Systems, Inc. System and method for simulation of integrated hardware and software components
US6449283B1 (en) 1998-05-15 2002-09-10 Polytechnic University Methods and apparatus for providing a fast ring reservation arbitration
US5999990A (en) 1998-05-18 1999-12-07 Motorola, Inc. Communicator having reconfigurable resources
US6298396B1 (en) 1998-06-01 2001-10-02 Advanced Micro Devices, Inc. System for loading a current buffer desciptor register with a value different from current value to cause a previously read buffer descriptor to be read again
US6092174A (en) 1998-06-01 2000-07-18 Context, Inc. Dynamically reconfigurable distributed integrated circuit processor and method
JP3123977B2 (ja) * 1998-06-04 2001-01-15 日本電気株式会社 プログラマブル機能ブロック
US6282627B1 (en) 1998-06-29 2001-08-28 Chameleon Systems, Inc. Integrated processor and programmable data path chip for reconfigurable computing
US6202182B1 (en) 1998-06-30 2001-03-13 Lucent Technologies Inc. Method and apparatus for testing field programmable gate arrays
DE69803373T2 (de) 1998-07-06 2002-08-14 Hewlett-Packard Co.(A Delaware Corporation), Palo Alto Verdrahtung von Zellen in logischen Feldern
WO2001006371A1 (en) 1998-07-21 2001-01-25 Seagate Technology Llc Improved memory system apparatus and method
US6421809B1 (en) 1998-07-24 2002-07-16 Interuniversitaire Micro-Elektronica Centrum (Imec Vzw) Method for determining a storage bandwidth optimized memory organization of an essentially digital device
US6137307A (en) * 1998-08-04 2000-10-24 Xilinx, Inc. Structure and method for loading wide frames of data from a narrow input bus
DE19835189C2 (de) 1998-08-04 2001-02-08 Unicor Rohrsysteme Gmbh Vorrichtung zur kontinuierlichen Herstellung von nahtlosen Kunststoffrohren
US6289369B1 (en) 1998-08-25 2001-09-11 International Business Machines Corporation Affinity, locality, and load balancing in scheduling user program-level threads for execution by a computer system
US20020152060A1 (en) 1998-08-31 2002-10-17 Tseng Ping-Sheng Inter-chip communication system
JP2000076066A (ja) 1998-09-02 2000-03-14 Fujitsu Ltd 信号処理回路
US7100026B2 (en) 2001-05-30 2006-08-29 The Massachusetts Institute Of Technology System and method for performing efficient conditional vector operations for data parallel architectures involving both input and conditional vector values
US6205458B1 (en) 1998-09-21 2001-03-20 Rn2R, L.L.C. Adder and multiplier circuits employing logic gates having discrete, weighted inputs and methods of performing combinatorial operations therewith
JP3551353B2 (ja) * 1998-10-02 2004-08-04 株式会社日立製作所 データ再配置方法
US6215326B1 (en) 1998-11-18 2001-04-10 Altera Corporation Programmable logic device architecture with super-regions having logic regions and a memory region
EP1138001B1 (en) 1998-11-20 2003-08-27 Altera Corporation Reconfigurable programmable logic device computer system
US6977649B1 (en) 1998-11-23 2005-12-20 3Dlabs, Inc. Ltd 3D graphics rendering with selective read suspend
US6249756B1 (en) 1998-12-07 2001-06-19 Compaq Computer Corp. Hybrid flow control
US6292916B1 (en) 1998-12-10 2001-09-18 Lucent Technologies Inc. Parallel backtracing for satisfiability on reconfigurable hardware
AU1843300A (en) 1998-12-11 2000-06-26 Microsoft Corporation Accelerating a distributed component architecture over a network using a modified rpc communication
JP2000181566A (ja) 1998-12-14 2000-06-30 Mitsubishi Electric Corp マルチクロック並列処理装置
US6044030A (en) 1998-12-21 2000-03-28 Philips Electronics North America Corporation FIFO unit with single pointer
US6694434B1 (en) 1998-12-23 2004-02-17 Entrust Technologies Limited Method and apparatus for controlling program execution and program distribution
US6434695B1 (en) 1998-12-23 2002-08-13 Apple Computer, Inc. Computer operating system using compressed ROM image in RAM
US6757847B1 (en) 1998-12-29 2004-06-29 International Business Machines Corporation Synchronization for system analysis
US6496902B1 (en) 1998-12-31 2002-12-17 Cray Inc. Vector and scalar data cache for a vector multiprocessor
JP3585800B2 (ja) 1999-01-13 2004-11-04 株式会社東芝 情報処理装置
US6324673B1 (en) 1999-01-14 2001-11-27 Princeton University Method and apparatus for edge-endpoint-based VLSI design rule checking
US6539438B1 (en) 1999-01-15 2003-03-25 Quickflex Inc. Reconfigurable computing system and method and apparatus employing same
US6490695B1 (en) 1999-01-22 2002-12-03 Sun Microsystems, Inc. Platform independent memory image analysis architecture for debugging a computer program
US6321298B1 (en) 1999-01-25 2001-11-20 International Business Machines Corporation Full cache coherency across multiple raid controllers
KR100731371B1 (ko) 1999-02-15 2007-06-21 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 구성가능 기능 유닛을 포함하는 프로세서를 사용해서 컴퓨터 프로그램을 실행하는 방법, 프로세서 및 컴퓨터 판독가능 기록 매체
DE10028397A1 (de) 2000-06-13 2001-12-20 Pact Inf Tech Gmbh Registrierverfahren
US6243808B1 (en) 1999-03-08 2001-06-05 Chameleon Systems, Inc. Digital data bit order conversion using universal switch matrix comprising rows of bit swapping selector groups
US6446242B1 (en) 1999-04-02 2002-09-03 Actel Corporation Method and apparatus for storing a validation number in a field-programmable gate array
US6191614B1 (en) 1999-04-05 2001-02-20 Xilinx, Inc. FPGA configuration circuit including bus-based CRC register
US6512804B1 (en) * 1999-04-07 2003-01-28 Applied Micro Circuits Corporation Apparatus and method for multiple serial data synchronization using channel-lock FIFO buffers optimized for jitter
GB9909196D0 (en) 1999-04-21 1999-06-16 Texas Instruments Ltd Transfer controller with hub and ports architecture
US6286134B1 (en) 1999-04-23 2001-09-04 Sun Microsystems, Inc. Instruction selection in a multi-platform environment
JP2000311156A (ja) 1999-04-27 2000-11-07 Mitsubishi Electric Corp 再構成可能並列計算機
US6381624B1 (en) 1999-04-29 2002-04-30 Hewlett-Packard Company Faster multiply/accumulator
US6298472B1 (en) 1999-05-07 2001-10-02 Chameleon Systems, Inc. Behavioral silicon construct architecture and mapping
US6748440B1 (en) 1999-05-12 2004-06-08 Microsoft Corporation Flow of streaming data through multiple processing modules
US7007096B1 (en) * 1999-05-12 2006-02-28 Microsoft Corporation Efficient splitting and mixing of streaming-data frames for processing through multiple processing modules
US6211697B1 (en) * 1999-05-25 2001-04-03 Actel Integrated circuit that includes a field-programmable gate array and a hard gate array having the same underlying structure
DE19926538A1 (de) 1999-06-10 2000-12-14 Pact Inf Tech Gmbh Hardware und Betriebsverfahren
WO2000077652A2 (de) 1999-06-10 2000-12-21 Pact Informationstechnologie Gmbh Sequenz-partitionierung auf zellstrukturen
EP1061439A1 (en) 1999-06-15 2000-12-20 Hewlett-Packard Company Memory and instructions in computer architecture containing processor and coprocessor
US6757892B1 (en) 1999-06-24 2004-06-29 Sarnoff Corporation Method for determining an optimal partitioning of data among several memories
US6347346B1 (en) 1999-06-30 2002-02-12 Chameleon Systems, Inc. Local memory unit system with global access for use on reconfigurable chips
JP3420121B2 (ja) 1999-06-30 2003-06-23 Necエレクトロニクス株式会社 不揮発性半導体記憶装置
GB2352548B (en) * 1999-07-26 2001-06-06 Sun Microsystems Inc Method and apparatus for executing standard functions in a computer system
US6745317B1 (en) 1999-07-30 2004-06-01 Broadcom Corporation Three level direct communication connections between neighboring multiple context processing elements
US6370596B1 (en) 1999-08-03 2002-04-09 Chameleon Systems, Inc. Logic flag registers for monitoring processing system events
US6341318B1 (en) 1999-08-10 2002-01-22 Chameleon Systems, Inc. DMA data streaming
US6204687B1 (en) * 1999-08-13 2001-03-20 Xilinx, Inc. Method and structure for configuring FPGAS
US6438747B1 (en) 1999-08-20 2002-08-20 Hewlett-Packard Company Programmatic iteration scheduling for parallel processors
US6507947B1 (en) * 1999-08-20 2003-01-14 Hewlett-Packard Company Programmatic synthesis of processor element arrays
US6606704B1 (en) 1999-08-31 2003-08-12 Intel Corporation Parallel multithreaded processor with plural microengines executing multiple threads each microengine having loadable microcode
US6349346B1 (en) 1999-09-23 2002-02-19 Chameleon Systems, Inc. Control fabric unit including associated configuration memory and PSOP state machine adapted to provide configuration address to reconfigurable functional unit
US6311200B1 (en) 1999-09-23 2001-10-30 Chameleon Systems, Inc. Reconfigurable program sum of products generator
US6288566B1 (en) 1999-09-23 2001-09-11 Chameleon Systems, Inc. Configuration state memory for functional blocks on a reconfigurable chip
US6631487B1 (en) 1999-09-27 2003-10-07 Lattice Semiconductor Corp. On-line testing of field programmable gate array resources
US6425103B1 (en) * 1999-09-29 2002-07-23 Lsi Logic Corporation Programmable moving inversion sequencer for memory bist address generation
DE19946752A1 (de) * 1999-09-29 2001-04-12 Infineon Technologies Ag Rekonfigurierbares Gate-Array
US6412043B1 (en) 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6598128B1 (en) 1999-10-01 2003-07-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6665758B1 (en) 1999-10-04 2003-12-16 Ncr Corporation Software sanity monitor
US6434642B1 (en) 1999-10-07 2002-08-13 Xilinx, Inc. FIFO memory system and method with improved determination of full and empty conditions and amount of data stored
JP2001167066A (ja) 1999-12-08 2001-06-22 Nec Corp プロセッサ間通信方法及びマルチプロセッサシステム
US6625654B1 (en) * 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6633181B1 (en) 1999-12-30 2003-10-14 Stretch, Inc. Multi-scale programmable array
EP1115204B1 (en) 2000-01-07 2009-04-22 Nippon Telegraph and Telephone Corporation Function reconfigurable semiconductor device and integrated circuit configuring the semiconductor device
JP2001202236A (ja) 2000-01-20 2001-07-27 Fuji Xerox Co Ltd プログラマブル論理回路装置によるデータ処理方法、プログラマブル論理回路装置、情報処理システム、プログラマブル論理回路装置への回路再構成方法
US20020031166A1 (en) 2000-01-28 2002-03-14 Ravi Subramanian Wireless spread spectrum communication platform using dynamically reconfigurable logic
US6496971B1 (en) * 2000-02-07 2002-12-17 Xilinx, Inc. Supporting multiple FPGA configuration modes using dedicated on-chip processor
US6487709B1 (en) 2000-02-09 2002-11-26 Xilinx, Inc. Run-time routing for programmable logic devices
US6519674B1 (en) 2000-02-18 2003-02-11 Chameleon Systems, Inc. Configuration bits layout
JP2001236221A (ja) 2000-02-21 2001-08-31 Keisuke Shindo マルチスレッドを利用するパイプライン並列プロセッサ
WO2001063434A1 (en) 2000-02-24 2001-08-30 Bops, Incorporated Methods and apparatus for dual-use coprocessing/debug interface
JP3674515B2 (ja) 2000-02-25 2005-07-20 日本電気株式会社 アレイ型プロセッサ
US6434672B1 (en) * 2000-02-29 2002-08-13 Hewlett-Packard Company Methods and apparatus for improving system performance with a shared cache memory
US6539477B1 (en) 2000-03-03 2003-03-25 Chameleon Systems, Inc. System and method for control synthesis using a reachable states look-up table
KR100841411B1 (ko) 2000-03-14 2008-06-25 소니 가부시끼 가이샤 전송장치, 수신장치, 전송방법, 수신방법과 기록매체
US6657457B1 (en) 2000-03-15 2003-12-02 Intel Corporation Data transfer on reconfigurable chip
US6871341B1 (en) 2000-03-24 2005-03-22 Intel Corporation Adaptive scheduling of function cells in dynamic reconfigurable logic
US6665865B1 (en) 2000-04-27 2003-12-16 Microsoft Corporation Equivalence class based synchronization optimization
US6624819B1 (en) 2000-05-01 2003-09-23 Broadcom Corporation Method and system for providing a flexible and efficient processor for use in a graphics processing system
US6845445B2 (en) 2000-05-12 2005-01-18 Pts Corporation Methods and apparatus for power control in a scalable array of processor elements
US6362650B1 (en) 2000-05-18 2002-03-26 Xilinx, Inc. Method and apparatus for incorporating a multiplier into an FPGA
US6373779B1 (en) 2000-05-19 2002-04-16 Xilinx, Inc. Block RAM having multiple configurable write modes for use in a field programmable gate array
US6725334B2 (en) 2000-06-09 2004-04-20 Hewlett-Packard Development Company, L.P. Method and system for exclusive two-level caching in a chip-multiprocessor
US7340596B1 (en) 2000-06-12 2008-03-04 Altera Corporation Embedded processor with watchdog timer for programmable logic
JP2004506261A (ja) 2000-06-13 2004-02-26 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト パイプラインctプロトコルおよびct通信
US6285624B1 (en) 2000-07-08 2001-09-04 Han-Ping Chen Multilevel memory access method
DE10129237A1 (de) 2000-10-09 2002-04-18 Pact Inf Tech Gmbh Verfahren zur Bearbeitung von Daten
DE10036627A1 (de) 2000-07-24 2002-02-14 Pact Inf Tech Gmbh Integrierter Schaltkreis
JP2002041489A (ja) 2000-07-25 2002-02-08 Mitsubishi Electric Corp 同期信号生成回路、それを用いたプロセッサシステムおよび同期信号生成方法
US7164422B1 (en) * 2000-07-28 2007-01-16 Ab Initio Software Corporation Parameterized graphs with conditional components
US6538468B1 (en) 2000-07-31 2003-03-25 Cypress Semiconductor Corporation Method and apparatus for multiple boot-up functionalities for a programmable logic device (PLD)
US6542844B1 (en) 2000-08-02 2003-04-01 International Business Machines Corporation Method and apparatus for tracing hardware states using dynamically reconfigurable test circuits
AU2001281164A1 (en) 2000-08-07 2002-02-18 Altera Corporation Inter-device communication interface
US6754805B1 (en) * 2000-08-07 2004-06-22 Transwitch Corporation Method and apparatus for configurable multi-cell digital signal processing employing global parallel configuration
DE60041444D1 (de) 2000-08-21 2009-03-12 Texas Instruments Inc Mikroprozessor
US7249351B1 (en) 2000-08-30 2007-07-24 Broadcom Corporation System and method for preparing software for execution in a dynamically configurable hardware environment
US6889800B2 (en) 2000-09-04 2005-05-10 Continental Teves Ag & Co. Ohg Operating device for an electromechanically actuated disk brake
US6829697B1 (en) 2000-09-06 2004-12-07 International Business Machines Corporation Multiple logical interfaces to a shared coprocessor resource
US7346644B1 (en) 2000-09-18 2008-03-18 Altera Corporation Devices and methods with programmable logic and digital signal processing regions
US6538470B1 (en) 2000-09-18 2003-03-25 Altera Corporation Devices and methods with programmable logic and digital signal processing regions
US6518787B1 (en) * 2000-09-21 2003-02-11 Triscend Corporation Input/output architecture for efficient configuration of programmable input/output cells
US20040015899A1 (en) 2000-10-06 2004-01-22 Frank May Method for processing data
US7595659B2 (en) 2000-10-09 2009-09-29 Pact Xpp Technologies Ag Logic cell array and bus system
US6525678B1 (en) * 2000-10-06 2003-02-25 Altera Corporation Configuring a programmable logic device
US20020045952A1 (en) 2000-10-12 2002-04-18 Blemel Kenneth G. High performance hybrid micro-computer
JP2002123563A (ja) 2000-10-13 2002-04-26 Nec Corp コンパイル方法および合成装置ならびに記録媒体
US6398383B1 (en) 2000-10-30 2002-06-04 Yu-Hwei Huang Flashlight carriable on one's person
JP3636986B2 (ja) 2000-12-06 2005-04-06 松下電器産業株式会社 半導体集積回路
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
KR20030007434A (ko) 2000-12-20 2003-01-23 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 구성가능한 기능 유닛을 구비한 데이터 프로세싱 디바이스
US6483343B1 (en) 2000-12-29 2002-11-19 Quicklogic Corporation Configurable computational unit embedded in a programmable device
US6426649B1 (en) 2000-12-29 2002-07-30 Quicklogic Corporation Architecture for field programmable gate array
US6392912B1 (en) 2001-01-10 2002-05-21 Chameleon Systems, Inc. Loading data plane on reconfigurable chip
US7020673B2 (en) 2001-01-19 2006-03-28 Sony Corporation Reconfigurable arithmetic device and arithmetic system including that arithmetic device and address generation device and interleave device applicable to arithmetic system
US20020099759A1 (en) 2001-01-24 2002-07-25 Gootherts Paul David Load balancer with starvation avoidance
US6847370B2 (en) * 2001-02-20 2005-01-25 3D Labs, Inc., Ltd. Planar byte memory organization with linear access
US7210129B2 (en) 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
AU2002254921A1 (en) 2001-03-05 2002-09-19 Pact Informationstechnologie Gmbh Methods and devices for treating and processing data
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US20020143505A1 (en) 2001-04-02 2002-10-03 Doron Drusinsky Implementing a finite state machine using concurrent finite state machines with delayed communications and no shared control signals
US6792588B2 (en) 2001-04-02 2004-09-14 Intel Corporation Faster scalable floorplan which enables easier data control flow
US6836849B2 (en) 2001-04-05 2004-12-28 International Business Machines Corporation Method and apparatus for controlling power and performance in a multiprocessing system according to customer level operational requirements
WO2002082267A1 (en) 2001-04-06 2002-10-17 Wind River Systems, Inc. Fpga coprocessing system
US6836842B1 (en) 2001-04-24 2004-12-28 Xilinx, Inc. Method of partial reconfiguration of a PLD in which only updated portions of configuration data are selected for reconfiguring the PLD
US6999984B2 (en) 2001-05-02 2006-02-14 Intel Corporation Modification to reconfigurable functional unit in a reconfigurable chip to perform linear feedback shift register function
US6802026B1 (en) 2001-05-15 2004-10-05 Xilinx, Inc. Parameterizable and reconfigurable debugger core generators
US6976239B1 (en) 2001-06-12 2005-12-13 Altera Corporation Methods and apparatus for implementing parameterizable processors and peripherals
US7657877B2 (en) * 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
JP3580785B2 (ja) * 2001-06-29 2004-10-27 株式会社半導体理工学研究センター ルックアップテーブル、ルックアップテーブルを備えるプログラマブル論理回路装置、および、ルックアップテーブルの構成方法
US7043416B1 (en) 2001-07-27 2006-05-09 Lsi Logic Corporation System and method for state restoration in a diagnostic module for a high-speed microprocessor
US7383421B2 (en) 2002-12-05 2008-06-03 Brightscale, Inc. Cellular engine for a data processing system
CA2458199A1 (en) 2001-08-16 2003-02-27 Pact Xpp Technologies Ag Method for the translation of programs for reconfigurable architectures
US7036114B2 (en) 2001-08-17 2006-04-25 Sun Microsystems, Inc. Method and apparatus for cycle-based computation
US6874108B1 (en) 2001-08-27 2005-03-29 Agere Systems Inc. Fault tolerant operation of reconfigurable devices utilizing an adjustable system clock
US6868476B2 (en) 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7216204B2 (en) 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US6918012B2 (en) 2001-08-28 2005-07-12 Hewlett-Packard Development Company, L.P. Streamlined cache coherency protocol system and method for a multiple processor single chip device
ATE363098T1 (de) 2001-09-03 2007-06-15 Pact Xpp Technologies Ag Verfahren zum debuggen rekonfigurierbarer architekturen
US20030056091A1 (en) 2001-09-14 2003-03-20 Greenberg Craig B. Method of scheduling in a reconfigurable hardware architecture with multiple hardware configurations
US7472230B2 (en) 2001-09-14 2008-12-30 Hewlett-Packard Development Company, L.P. Preemptive write back controller
US20030055861A1 (en) 2001-09-18 2003-03-20 Lai Gary N. Multipler unit in reconfigurable chip
US20030052711A1 (en) 2001-09-19 2003-03-20 Taylor Bradley L. Despreader/correlator unit for use in reconfigurable chip
US6854073B2 (en) 2001-09-25 2005-02-08 International Business Machines Corporation Debugger program time monitor
US6625631B2 (en) 2001-09-28 2003-09-23 Intel Corporation Component reduction in montgomery multiplier processing element
US6798239B2 (en) 2001-09-28 2004-09-28 Xilinx, Inc. Programmable gate array having interconnecting logic to support embedded fixed logic circuitry
US7000161B1 (en) * 2001-10-15 2006-02-14 Altera Corporation Reconfigurable programmable logic system with configuration recovery mode
US20060264508A1 (en) 2001-10-16 2006-11-23 Stone Richard A Modulation of ocular growth and myopia by gaba drugs
US6566907B1 (en) * 2001-11-08 2003-05-20 Xilinx, Inc. Unclocked digital sequencer circuit with flexibly ordered output signal edges
AU2002357739A1 (en) 2001-11-16 2003-06-10 Morpho Technologies Viterbi convolutional coding method and apparatus
US6886092B1 (en) 2001-11-19 2005-04-26 Xilinx, Inc. Custom code processing in PGA by providing instructions from fixed logic processor portion to programmable dedicated processor portion
US6668237B1 (en) 2002-01-17 2003-12-23 Xilinx, Inc. Run-time reconfigurable testing of programmable logic devices
US20030154349A1 (en) 2002-01-24 2003-08-14 Berg Stefan G. Program-directed cache prefetching for media processors
US6476634B1 (en) 2002-02-01 2002-11-05 Xilinx, Inc. ALU implementation in single PLD logic cell
DE20221985U1 (de) 2002-02-01 2010-03-04 Tridonicatco Gmbh & Co. Kg Elektronisches Vorschaltgerät für Gasentladungslampe
US6732354B2 (en) 2002-04-23 2004-05-04 Quicksilver Technology, Inc. Method, system and software for programming reconfigurable hardware
US6961924B2 (en) 2002-05-21 2005-11-01 International Business Machines Corporation Displaying variable usage while debugging
US20030226056A1 (en) 2002-05-28 2003-12-04 Michael Yip Method and system for a process manager
WO2005010632A2 (en) 2003-06-17 2005-02-03 Pact Xpp Technologies Ag Data processing device and method
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US6976131B2 (en) * 2002-08-23 2005-12-13 Intel Corporation Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system
US6908227B2 (en) 2002-08-23 2005-06-21 Intel Corporation Apparatus for thermal management of multiple core microprocessors
US7394284B2 (en) * 2002-09-06 2008-07-01 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US6957306B2 (en) 2002-09-09 2005-10-18 Broadcom Corporation System and method for controlling prefetching
US6803787B1 (en) 2002-09-25 2004-10-12 Lattice Semiconductor Corp. State machine in a programmable logic device
US6802206B2 (en) 2002-10-11 2004-10-12 American Axle & Manufacturing, Inc. Torsional actuation NVH test method
US7571303B2 (en) 2002-10-16 2009-08-04 Akya (Holdings) Limited Reconfigurable integrated circuit
US7155708B2 (en) 2002-10-31 2006-12-26 Src Computers, Inc. Debugging and performance profiling using control-dataflow graph representations with reconfigurable hardware emulation
US7299458B2 (en) 2002-10-31 2007-11-20 Src Computers, Inc. System and method for converting control flow graph representations to control-dataflow graph representations
US7873811B1 (en) 2003-03-10 2011-01-18 The United States Of America As Represented By The United States Department Of Energy Polymorphous computing fabric
US7383539B2 (en) * 2003-09-18 2008-06-03 International Business Machines Corporation Managing breakpoints in a multi-threaded environment
US7412581B2 (en) 2003-10-28 2008-08-12 Renesas Technology America, Inc. Processor for virtual machines and method therefor
US7472155B2 (en) 2003-12-29 2008-12-30 Xilinx, Inc. Programmable logic device with cascading DSP slices
US7567997B2 (en) 2003-12-29 2009-07-28 Xilinx, Inc. Applications of cascading DSP slices
US8495122B2 (en) 2003-12-29 2013-07-23 Xilinx, Inc. Programmable device with dynamic DSP architecture
US7870182B2 (en) 2003-12-29 2011-01-11 Xilinx Inc. Digital signal processing circuit having an adder circuit with carry-outs
US7840627B2 (en) 2003-12-29 2010-11-23 Xilinx, Inc. Digital signal processing circuit having input register blocks
US7038952B1 (en) 2004-05-04 2006-05-02 Xilinx, Inc. Block RAM with embedded FIFO buffer
US7299339B2 (en) 2004-08-30 2007-11-20 The Boeing Company Super-reconfigurable fabric architecture (SURFA): a multi-FPGA parallel processing architecture for COTS hybrid computing framework
JP2008537268A (ja) 2005-04-22 2008-09-11 アルトリックス ロジック,インク. 可変精度相互接続を具えたデータ処理エレメントの配列
US7455450B2 (en) 2005-10-07 2008-11-25 Advanced Micro Devices, Inc. Method and apparatus for temperature sensing in integrated circuits
US7759968B1 (en) 2006-09-27 2010-07-20 Xilinx, Inc. Method of and system for verifying configuration data
US7971051B2 (en) 2007-09-27 2011-06-28 Fujitsu Limited FPGA configuration protection and control using hardware watchdog timer
US20090193384A1 (en) 2008-01-25 2009-07-30 Mihai Sima Shift-enabled reconfigurable device
JP2010277303A (ja) 2009-05-28 2010-12-09 Renesas Electronics Corp 半導体装置及び異常検出方法
US8305835B2 (en) 2010-12-14 2012-11-06 Advanced Micro Devices, Inc. Memory elements having configurable access duty cycles and related operating methods

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05346911A (ja) * 1991-10-30 1993-12-27 Kumamoto Techno Porisu Zaidan コンピュータ
JPH08330945A (ja) * 1995-06-05 1996-12-13 Internatl Business Mach Corp <Ibm> プログラム可能ゲート・アレイの動的再構成システム
WO1998031102A1 (de) * 1996-12-20 1998-07-16 Pact Informationstechnologie Gmbh Umkonfigurierungs-verfahren für programmierbare bausteine zur laufzeit
WO1998029952A1 (de) * 1996-12-27 1998-07-09 Pact Informationstechnologie Gmbh VERFAHREN ZUM SELBSTÄNDIGEN DYNAMISCHEN UMLADEN VON DATENFLUSSPROZESSOREN (DFPs) SOWIE BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN (FPGAs, DPGAs, o.dgl.)
WO1998035299A2 (de) * 1997-02-08 1998-08-13 Pact Informationstechnologie Gmbh Verfahren zur selbstsynchronisation von konfigurierbaren elementen eines programmierbaren bausteines
WO1999044147A2 (de) * 1998-02-25 1999-09-02 Pact Informationstechnologie Gmbh VERFAHREN ZUM HIERARCHISCHEN CACHEN VON KONFIGURATIONSDATEN VON DATENFLUSSPROZESSOREN UND BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALER PROGRAMMIERBARER ZELLSTRUKTUR (FPGAs, DPGAs, o.dgl.)
JP2000091435A (ja) * 1998-09-11 2000-03-31 Fuji Xerox Co Ltd 情報処理システム
WO2000017771A2 (de) * 1998-09-23 2000-03-30 Infineon Technologies Ag Verfahren zum konfigurieren eines konfigurierbaren hardware-blocks

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008530642A (ja) * 2005-02-07 2008-08-07 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト 低レイテンシーの大量並列データ処理装置
TWI708488B (zh) * 2019-08-20 2020-10-21 智易科技股份有限公司 傳輸系統、傳送裝置及傳輸路徑分配方法

Also Published As

Publication number Publication date
EP2226732A2 (de) 2010-09-08
WO2002013000A8 (de) 2002-07-25
US20040025005A1 (en) 2004-02-05
EP1342158A2 (de) 2003-09-10
US8301872B2 (en) 2012-10-30
DE50115584D1 (de) 2010-09-16
US20050223212A1 (en) 2005-10-06
US20120311301A1 (en) 2012-12-06
EP2226732A3 (de) 2016-04-06
US7003660B2 (en) 2006-02-21
ATE476700T1 (de) 2010-08-15
US8468329B2 (en) 2013-06-18
WO2002013000A3 (de) 2003-06-26
EP1342158B1 (de) 2010-08-04
WO2002013000A2 (de) 2002-02-14

Similar Documents

Publication Publication Date Title
JP2004506261A (ja) パイプラインctプロトコルおよびct通信
US9934010B1 (en) Programming in a multiprocessor environment
US11687327B2 (en) Control and reconfiguration of data flow graphs on heterogeneous computing platform
KR102782658B1 (ko) 이종 처리 시스템을 위한 데이터 흐름 그래프 프로그래밍 환경
US8046563B1 (en) Virtual architectures in a parallel processing environment
US7877401B1 (en) Pattern matching
EP2839372B1 (en) Parallel hardware hypervisor for virtualizing application-specific supercomputers
US10002096B1 (en) Flow control in a parallel processing environment
Taylor et al. Scalar operand networks
US7805577B1 (en) Managing memory access in a parallel processing environment
US20030182376A1 (en) Distributed processing multi-processor computer
US20150033000A1 (en) Parallel Processing Array of Arithmetic Unit having a Barrier Instruction
US7185150B1 (en) Architectures for self-contained, mobile, memory programming
JP2009512089A (ja) データフローマシンにおけるデッドロックを回避するための方法
US7793074B1 (en) Directing data in a parallel processing environment
Bal et al. Performance of a high-level parallel language on a high-speed network
Ladan-Mozes et al. A consistency architecture for hierarchical shared caches
Islam et al. LegUp-NoC: High-level synthesis of loops with indirect addressing
Ax et al. System-level analysis of network interfaces for hierarchical mpsocs
Chandio et al. Exploring the Design Space for Message-Driven Systems for Dynamic Graph Processing using CCA
Heinlein Optimized multiprocessor communication and synchronization using a programmable protocol engine
US12204489B2 (en) Partitioning dataflow operations for a reconfigurable computing system through recursive candidate generation
Genius et al. Mapping a telecommunication application on a multiprocessor system-on-chip
Yin et al. In-network memory access ordering for heterogeneous multicore systems
Oortwijn et al. Distributed symbolic reachability analysis

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110727

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111222