JP2003505753A - セル構造におけるシーケンス分割方法 - Google Patents

セル構造におけるシーケンス分割方法

Info

Publication number
JP2003505753A
JP2003505753A JP2001503066A JP2001503066A JP2003505753A JP 2003505753 A JP2003505753 A JP 2003505753A JP 2001503066 A JP2001503066 A JP 2001503066A JP 2001503066 A JP2001503066 A JP 2001503066A JP 2003505753 A JP2003505753 A JP 2003505753A
Authority
JP
Japan
Prior art keywords
dimensional
cell structure
memory
component
sequencer
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
JP2001503066A
Other languages
English (en)
Inventor
フォーバッハ マーティン
ニュッケル アルミン
Original Assignee
ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング
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
Priority claimed from DE19926538A external-priority patent/DE19926538A1/de
Application filed by ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング filed Critical ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング
Publication of JP2003505753A publication Critical patent/JP2003505753A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions

Abstract

(57)【要約】 本発明は、互いに交番的な配置を行うことのできるセル構造に関する。これによれば、その際にどのようにしていずれのユニットでそのために1つのシーケンスを分割すべきであるのかが示されている。

Description

【発明の詳細な説明】
【0001】 本発明は、プログラミング可能でありたとえば稼働中に再プログラミング可能
な算術および/または論理コンポーネント(VPU)に関する。このコンポーネ
ントは多数の算術および/または論理ユニットを備えており、それらの結線も同
様にプログラミング可能であり稼働中に再プログラミング可能である。この種の
論理的なコンポーネントはFPGAという上位概念で様々な会社によって供給さ
れている。さらに、自動的なデータ同期が行われ算術データ処理の改善された特
別な算術コンポーネントを開示する複数の特許が公開されている。
【0002】 既述のコンポーネントはすべて、論理および/または算術ユニットによる2次
元またはそれ以上の次元のアレイ(PAE)を有しており、それらはバスシステ
ムを介して互いに結線可能である。本発明によるコンポーネントについて特徴的
であるのは、それらが以下に挙げるユニットを有しているかまたは、本発明を適
用するためにそれらのユニットがプログラミングされたりあるいは(外部から)
追加されたりすることである: 1.コンフィグレーションデータをロードするための少なくとも1つのユニット
(CT) 2.PAE 3.1つまたは複数の記憶装置および/または周辺機器に対する少なくとも1つ
のインタフェース(IOAG) 本発明の課題は、既述のコンポーネントを慣用の高級言語で効率的にプログラ
ミングできるようにし、その際に複数のユニットにより生じる既述のコンポーネ
ントの並列性の利点を広範囲にわたり自動的に完全かつ効率的に利用できるよう
にしたプログラミング方法を提供することにある。
【0003】 従来の技術 上述の形式のコンポーネントはたいてい、慣用のデータフロー言語を用いてプ
ログラミングされる。この場合、基礎を成す2つの問題が発生する: 1.データフロー言語のプログラミングはプログラマにとって慣れが必要であり
、非常に逐次的なタスクはやたらと仰々しい記述によってしか書き表せない。
【0004】 2.大きいアプリケーションや逐次的な記述は、既存の翻訳プログラム(Synthe
se-Tool)を用いても、制約されたかたちでしか所望のターゲットテクノロジー
に変換もしくはマッピング(合成)できない。
【0005】 通例、アプリケーションは複数のサブアプリケーションに分割され、その後、
それらのサブアプリケーションは個別にターゲットテクノロジーに合わせて合成
される(図1)。ついで個々のバイナリコードがそれぞれ1つのコンポーネント
にロードされる。本発明の基本的な前提は DE 44 16 881 に記載されている方法
である。この方法によれば、分割された複数のサブアプリケーションを1つのコ
ンポーネント内部で利用できるようになり、その際、時間的な関係が分析され、
制御信号によって逐次的にそのつど必要とされるサブアプリケーションが上位の
ロードユニットにおいて要求され、それに基づきそのユニットによってコンポー
ネントにロードされる。
【0006】 既存の合成ツールは、制約されたかたちでしかコンポーネントのプログラムル
ープにマッピングできない(図2 0201)。
【0007】 この場合、FOR ループ(0202)はプリミティブループとして、そのループ
が完全にターゲットコンポーネントのリソースに展開されることにより、依然と
して頻繁にサポートされる。
【0008】 WHILE ループ(0203)は FOR ループとは異なり一定の中断値をもたない
。むしろループ中断がいつ行われるのかという条件によって評価される。したが
って一般的には、いつループが中断するのかは(条件が一定でなければ)合成時
点では既知ではない。このようなダイナミックな特性ゆえに、合成ツールはこの
ループを固定的にハードウェアにマッピングないしは変換することはできず、つ
まりターゲットコンポーネントに移すことはできない。
【0009】 再帰は、再帰ループが合成時点で既知ではなくつまりは一定でなければ、従来
技術の合成ツールによっても基本的にハードウェアに変換できない。再帰の場合
、各々新たな再帰レベルごとに新たなリソースが割り当てられる。ということは
、各再帰レベルごとに新たなハードウェアを利用できるようにしなければならな
いが、このことはダイナミックなかたちでは不可能である。
【0010】 たとえ簡単な基本構造であっても、ターゲットコンポーネントが十分に大きい
ときにしか、つまり十分なリソースを用意できるときにしか、変換を行うことは
できない。簡単な時間的関係(0301)は現在の合成ツールによっても複数の
サブアプリケーションに分割されず、それゆえ全体としてしかターゲットコンポ
ーネントに移すことができない。
【0011】 条件付きの実行(0302)や条件(0303)によるループも同様に、ター
ゲットコンポーネント上に十分なリソースがあるときにしかマッピング不可能つ
まりは変換不可能である。
【0012】 本発明による方法 DE 44 16 881 に記載されている方法によれば、起こり得る条件をランタイム
に既述のコンポーネントのハードウェア内部で検出することができ、ハードウェ
アの機能が発生した条件に応じて修正されるかたちでそれに対してダイナミック
に反応することができ、このことは実質的に新たな構造のコンフィグレーション
により行われる。
【0013】 本発明による方法の基本的なステップは、グラフ(アプリケーション)を時間
的に依存しないつまり時間的に非依存性のサブグラフ(サブアプリケーション)
に分割することである。
【0014】 ここで「時間的な非依存性」という用語を以下のように定義する。すなわち、
2つのサブアプリケーション間で伝送されるデータは、どのような形態のもので
あれ記憶装置によって(つまり簡単なレジスタによっても)分離される、という
ことを表す。これは殊にある1つのグラフのうち、制限されたできるかぎり最小
量の信号による明確なインタフェースが両方のサブグラフ間に存在するようなロ
ケーションにおいて可能となる。さらにグラフにおいて以下の特徴を有する特別
なロケーションが適している: 1.ノード間に僅かな信号または変数しか存在しない。
【0015】 2.信号または変数によって僅かなデータしか伝送されない。
【0016】 3.フィードバックが存在せず、つまり信号または変数が他に対し逆方向に進ま
ない。
【0017】 このような時間的非依存性は、大きいグラフにおいて明確に定義されたできる
かぎり簡単なインタフェースをデータの記憶のためバッファメモリに所期のよう
に挿入することによって、生じさせることができる(図4のS を参照)。
【0018】 ループは他のアルゴリズムに対し強い時間的非依存性をもつことが多い。それ
というのも、ループというものは長い時間にわたりループ内の特定量のローカル
変数に携わり、ループに入ったときとループから出るときにしかオペランドやリ
ザルトすなわち演算数や結果の転送を必要としないからである。
【0019】 時間的非依存性により達成されるのは、サブアプリケーションの完全な実行後
、何らかの別の依存性あるいは影響が発生することなく後続のサブアプリケーシ
ョンをロードできることである。データを既述の記憶装置に記憶する際にステー
タス信号(トリガ、PACT08参照)を生成することができ、これは上位のロ
ードユニットに対し次のサブアプリケーションを再ロードするよう促す。記憶装
置として簡単なレジスタを使う場合、レジスタが記述されたときには常にトリガ
を生成することができる。また、たとえばFIFO方式に従い動作する記憶装置
を使う場合、トリガの発生は複数の条件に左右される。以下の条件によりたとえ
ば個々にあるいは組み合わせによりトリガを発生させることができる: −リザルト(結果)メモリが満杯 −オペランド(演算数)メモリが空 −新しいオペランドなし −たとえば *比較器(等しい、大きいなど) *計数器(オーバーフロー) *加算器(オーバーフロー) などによりサブアプリケーション内部で任意の条件が発生 以下では部分アプリケーションのことを、古典的なプログラミングの視点から
の理解を深める目的でモジュールとも称する。同じ理由で信号のことを以下では
変数とも称する。その際、これらの変数はある点については慣用の変数と区別さ
れる。つまり各変数に1つのステータス信号(Ready)が割り当てられ、これは
その変数が有効値をもっているか否かを表す。ある信号が有効な(計算された)
値をもっているならば、ステータス信号は Ready となる。ある信号が有効な値
をもっていなければ(計算がまだ完了していなければ)、ステータス信号は Not
_Ready となる。この方式については、特許出願 P196 51 075. 9 に詳しく説明
されている。
【0020】 要約すると、トリガには以下の機能を割り当てることができる: 1.個々のPAEのステータスとしてデータ処理の制御 2.PAEの再コンフィグレーション(サブアプリケーションの時間順序)の制
御 殊にループ(WHILE)と再帰の中止基準ならびにサブアプリケーションの条件
付きジャンプが実現される。
【0021】 事例1の場合にはPAE間のトリガが交換され、事例2の場合にはトリガがP
AEからCTへ送られる。本発明にとって重要であるのは、事例1と事例2の間
の移行は基本的に、PAEのマトリックスにおいて目下実行中のサブアプリケー
ションの個数に依存することである。換言すれば、トリガはPAEにおいて目下
実行されるサブアプリケーションへ送られる。サブアプリケーションがコンフィ
グレーションされていなければ、トリガはCTへ送られる。その際に重要である
のは、それらのサブアプリケーションもコンフィグレーションされているならば
、対応するトリガは相応のPAEにダイレクトに送られることである。
【0022】 これによって、PAEのサイズが大きくなったとき、ないしはPAEから成る
複数のマトリックスのカスケーディングにあたり、計算能力の自動的なスケーリ
ングが行われるようになる。再コンフィグレーションの時間はもはや必要となら
ず、この場合にはトリガはすでにコンフィグレーション済みのPAEへダイレク
トに送られる。
【0023】 ウェーブ再コンフィグレーション wave-reconfiguration 適切なハードウェアアーキテクチャ(図10/11参照)により、複数のモジ
ュールをオーバラップさせることができる。つまり複数のモジュールが同時に複
数のPAEにおいて事前にプレコンフィグレーションされ、最初の時間しかかけ
ずに各コンフィグレーション間で切り替えを行うことができるので、PAEごと
に一群のコンフィグレーションのうち必ずきちんと1つのコンフィグレーション
がアクティブ状態にされるようになる。
【0024】 ここで重要であるのは、その際にモジュールAとBがプレコンフィグレーショ
ンされている一群のPAEにおいて、そのような一群のうちの一部分を部分Aに
より、また、一群のうちその他の部分を同時に部分Bによりアクティブ状態にす
ることができることである。ここで両方の部分の分離は、AとBの切替状態が現
れるPAEにより正確に与えられる。つまり、特定の時点から出発して、この時
点Aよりも前に実行のためにアクティブにされたすべてのPAEにおいてBがア
クティブにされ、他のすべてのPAEではその時点以降は常にAがアクティブに
される。そして時間がたつにつれ、いっそう多くのPAEにおいてBがアクティ
ブされていく。
【0025】 切り替えは特定のデータまたはそれらのデータの計算により得られた状態に基
づき、あるいはたとえば外部からまたはCTにより生成された他の任意のイベン
トに基づき行われる。このことで、データパケットの処理直後に他のコンフィグ
レーションへ切り替えることができるようになる。これと同時にあるいは択一的
に信号(RECONFIG-TRIGGER)をCTへ送ることができ、それにより新たなコンフ
ィグレーションの事前のプレロードがCTによって行われる。その際にプレロー
ドを、目下のデータ処理に依存するまたは依存しない他のPAEによって行うこ
とができる。アクティブなコンフィグレーションと、再コンフィグレーションの
ために提供されるコンフィグレーションとの分離(図10/11参照)により、
目下はたらいている(アクティブな)PAEたとえば RECONFIG-TRIGGER を発し
たPAEに、新たなコンフィグレーションをロードすることができる。これによ
りデータ処理とオーバラップしたコンフィグレーションが可能となる。
【0026】 図13には、ウェーブ再コンフィグレーション wave-reconfiguration (WRC)
の基本原理が描かれている。この場合、あるPAE列(PAE1〜9)から出発
し、それらを通ってデータがパイプラインと類似したかたちで進む。ここではっ
きりと述べておくと、WRCはパイプラインに限定されるものではなく、PAE
のネットワーク化やグルーピングはどのような任意の形態をとることができる。
とはいえここでは簡単な実例をいっそうわかりやすく示すため、このような表し
方を選択した。
【0027】 図13aにおいてデータパケットはPAEに入って進む。PAEは4つの可能
なコンフィグレーション(A,F,H,C)を有しており、これらは適切なハー
ドウェア(図10/11参照)によって選択することができる。コンフィグレー
ションFは、PAE1において目下のデータパケットのためにアクティブ状態に
されている(ハッチングされて描かれている)。次のタイミングないしはサイク
ルでデータパケットはPAE2に進み、新たなデータパケットがPAE1に現れ
る。PAE2においてもFはアクティブ状態である。このデータパケットといっ
しょになってPAE1においてイベント(↑1)が現れる。このイベントは、P
AEにおける外部からの任意のイベント(たとえばステータスフラグまたはトリ
ガ)の到来により発生するかまたは、PAE内部において実行された計算により
生成される。
【0028】 図13cでは、PAE1においてイベント(↑1)に基づきコンフィグレーシ
ョンHがアクティブ状態にされ、これと同時に新たなイベント(↑2)が現れ、
これは次のサイクル(図13d)でコンフィグレーションAのアクティブ化を引
き起こす。
【0029】 図13eではPAE1において(↑3)が到来し、これによってGによるFの
上書きが引き起こされる(図13f)。さらに(↑4)の到来によりGがアクテ
ィブ状態にされる(図13g)。(↑5)によりCの代わりにKのロードが引き
起こされ(図13h,i)、(↑6)によりHの代わりにFがロードされ開始さ
れる(図13j)。
【0030】 図13g*)〜図13j*)によって、ウェーブ再コンフィグレーションの実行に
あたりすべてのPAEが同じパターンに従い動作しなくてもよいことが示されて
いる。あるPAEをウェーブ再コンフィグレーションによってどのようにコンフ
ィグレーションするのかということは、基本的にその固有のコンフィグレーショ
ンに左右される。ここでは、PAE4〜PAE6が他のPAEとは異なるイベン
トに対して応答するようコンフィグレーションされていることを示すことにする
。たとえば図13g*)によれば、イベント↑2に基づきAではなくHがアクティ
ブ状態にされる(図13g参照)。同じことは13h*)についてもあてはまる。
イベント↑3に基づき図13i*)ではGがロードされるのではなくコンフィグレ
ーションFがそのまま存在し続け、Aがアクティブ状態に維持され続ける。また
、図13j*)ではPAE7のところで、イベント↑3が再びGのロードによりト
リガされることが示されている。さらにPAE4においてイベント↑4により、
コンフィグレーションGの代わりにFのアクティブかが引き起こされる(図13
j参照)。
【0031】 図13によれば再コンフィグレーションのウェーブすなわち波が、2次元また
はそれ以上の次元で構成可能な一群のPAEによるイベントに基づき移動してい
く。この場合、1回行われた再コンフィグレーションが全体のフローによって通
り過ぎるようにすることは必ずしも必要とはされない。たとえばイベント(↑2
)に基づきAをアクティブにする再コンフィグレーションを局所的にPAE1〜
PAE3およびPAE7においてのみ行うことができる一方、他のすべてのPA
Eにおいて引き続きコンフィグレーションHをアクティブにしたままにする。換
言すれば、 a)イベントが局所的にのみ発生し、それゆえ結果として局所的にのみアクティ
ブ状態変更が発生するよう構成することができる。
【0032】 b)グローバルなイベントは場合によっては多くのPAEに対し作用を及ぼさず
、これは実行されるアルゴリズムに左右される。
【0033】 (↑2)後に引き続きHがアクティブ状態に保持されるPAEの場合には当然
ながら、イベント(↑3)の到来はまったく別の作用をもっており、たとえば(
i)Gのロードの代わりにCがアクティブにされたり、(ii)他方(↑3)は
それらのPAEに対しまったく作用をもたない可能性もある。
【0034】 プロセッサモデル 以下の図面に示されているグラフはグラフノードとして常にモジュールを有し
ており、ここでは複数のモジュールを1つのターゲットコンポーネントにマッピ
ングできることを前提とする。つまりすべてのモジュールが時間的に互いに依存
していないにもかかわらず、それらのモジュールにおいてのみ再コンフィグレー
ションが実行され、および/またはデータメモリが挿入され、それらは垂直方向
の線とΔtでマークされている。このポイントを再コンフィグレーション時点と
称する。再コンフィグレーション時点は、特定のデータまたはそれら特定のデー
タの処理により生じた状態に依存している。
【0035】 このことは要約すると以下のことを意味する: 1.大きいモジュールを適切な個所で分割することができ、時間的に互いに依存
し合わない小さいモジュールに分解することができ、それらはPAEから成るア
レイに適したものである。
【0036】 2.いっしょになって1つのターゲットコンポーネントにマッピングすることの
できる複数の小さいモジュールにおいては、時間的な非依存性が放棄される。こ
れによりコンフィグレーションステップが節約され、データ処理が加速される。
【0037】 3.再コンフィグレーション時点は、ターゲットコンポーネントのリソースに従
い位置決めされる。これにより、グラフ長の任意のスケーリングが得られる。
【0038】 4.複数のモジュールをオーバラップさせてコンフィグレーションすることがで
きる。
【0039】 5.モジュールの再コンフィグレーションは、データ自体によってまたはデータ
処理結果によって制御される。
【0040】 6.モジュールにより生成されたデータは記憶され、時間的に相前後するモジュ
ールがメモリからデータを読み出し、さらに結果をメモリに記憶するかまたは最
終結果を周辺機器へ送出する。
【0041】 プロセッサモデルのステータス情報 1つのグラフ内の状態を決定するため、個々のセル(PAE)のステータスレ
ジスタがデータバス(0801)に加えて設けられた任意にルーティングおよび
セグメント化可能なステータスバスが、すべての計算機構に提供される(図8b
)。つまり、セル(PAE X)は他のセル(PAE Y)のステータス情報を評
価することができ、それに従ってデータを処理する。既存の並列コンピュータシ
ステムとの違いを明確にする目的で、図8aには従来技術が示されている。そこ
にはマイクロプロセッサシステムが示されており、それらのプロセッサは1つの
共通のデータバス(0803)を介して互いに接続されている。データおよびス
テータスを同期して交換するための明示的なバスシステムは存在しない。換言す
れば、ステータス信号(0802)のネットワークは、単一の慣用のプロセッサ
(またはSMPコンピュータにおける複数のプロセッサ)の任意に所期のように
分配されたステータスレジスタを成している。各々個々のALU(もしくは各々
個々のプロセッサの)ステータスおよび殊にステータスの各々個々の情報は、情
報を必要としているそれぞれ1つまたは複数のALU(プロセッサ)に提供され
る。その際、各ALU(プロセッサ)間で情報を交換するために、(信号伝播時
間は別として)付加的なプログラム実行時間または通信実行時間は生じない。
【0042】 最後に触れておくと、タスクに応じてデータフローグラフもコントロールグラ
フも既述の方法に従い処理することができる。
【0043】 バーチャルマシンモデル Virtual Machine Model VPUコンポーネントによるデータ処理の基礎は、先行のセクションに従い主
としてデータフロー指向である。しかしながら逐次的プログラムを規定どおりの
性能で処理するためには、逐次的なデータ処理モデルを提供できなければならな
い。その際、個々のPAEにおけるシーケンサでは不十分である。とはいえVP
Uのアーキテクチャによって基本的に、個々のPAEからの任意の複合的なシー
ケンサの構造が可能となる。つまり: 1.アルゴリズムの要求に正確に対応する複合的なシーケンサをコンフィグレー
ションすることができる。
【0044】 2.データフローを対応するコンフィグレーションによって、正確にいえばアル
ゴリズムの計算ステップによって表現することができる。
【0045】 これによりバーチャルマシンを、殊にアルゴリズムの逐次的な要求にも対応す
るVPU上にインプリメントすることができる。
【0046】 VPUアーキテクチャの主要な利点は、データフロー部分が抽出され「最適な
」データフローにより表現されるよう、アルゴリズムをコンパイラによって分解
できることである。そしてこのことは整合されたデータフローがコンフィグレー
ションされ、アルゴリズムの逐次的な部分が「最適な」シーケンサによって表現
されることによって行われ、その際、整合されたシーケンサがコンフィグレーシ
ョンされる。この場合に同時に複数のシーケンサと複数のデータフローを1つの
VPU上に取り込むことができ、これはもっぱら利用可能なリソースに左右され
る。
【0047】 多数のPAEにより、稼働中にVPU内部で非常に多くの局所的な状態が発生
する。タスク交換やサブプログラム呼び出し(インタラプト)に際しては、これ
らの状態を記憶しなければならない(標準プロセッサのPUSH/POP参照)
。しかしこのことは多数の状態ゆえに有用なかたちでは実現できない。
【0048】 これらの状態を取り扱い可能な量に低減するために、2種類の状態を区別する
必要がある: 1.マシンモデルの状態情報(MACHINE-STATE) これらの状態情報は特定のモジュールの処理内でしか有効ではなく、また、局
所的にその特定のモジュールにおけるシーケンサやデータフローユニットにおい
てしか利用されない。つまりこれらの MACHINE-STATE により表される状態は、
従来技術によればプロセッサにおいてハードウェア内に隠されて実行され、命令
や処理ステップ内で暗黙的であり、命令実行後には後続の命令のための別の情報
を含んでいないものである。この種の情報は保護される必要がない。そのための
条件は、目下アクティブであるすべてのモジュールが完全に実行された後でしか
インタラプトが行われないことである。インタラプトが実行待ちであれば、新た
なモジュールはロードされず、まだアクティブなものだけが処理される。同様に
、アルゴリズムが許可するかぎり、アクティブなモジュールに対し新たなオペラ
ンドはもはや供給されない。これにより1つのモジュールはアトミックな中止で
きない単位となり、これは従来技術による1つのインストラクションと同等のも
のである。
【0049】 2.データ処理の状態(DATA-STATE) データに関連づけられた状態は、従来技術によるプロセッサモデルによればイ
ンタラプト発生時に保護され、メモリに書き込まれなければならない。これは非
所定の必要とされるレジスタやフラグであり、あるいは(VPUテクノロジーの
用語によれば)トリガである。
【0050】 DATA-STATE においてアルゴリズムに応じて取り扱いをいっそう簡単にするこ
とができる。以下、基礎とする2つのストラテジについて詳しく説明する: 1.付加情報の付随 この場合、後の時点で必要とされるすべての関連する付加情報が、パイプライ
ンにおいてしばしば標準的に実装されているように、モジュールからまずはじめ
に伝送される。ついでこれらの付加情報はデータといっしょに暗黙的にメモリに
格納され、その結果、データ呼び出し時に同時に状態も得られるようになる。こ
れにより、殊に PUSH や POP を用いた状態情報の明示的な取り扱いが省略され
、このことはアルゴリズムに応じて処理が著しく加速される一方、プログラミン
グも簡単になる。また、付加情報を選択的に個々のデータパケットとともに記憶
することもできるし、あるいはインタラプトの場合にのみ記憶して特別にマーク
することもできる。
【0051】 2.再エントリアドレス Reentry Address の保護 メモリに格納されている大きいデータ量の処理にあたり有用となり得るのは、
目下処理されているデータパケットにおけるオペランドの少なくとも1つをデー
タパケットといっしょにPAEに導くことである。この場合、アドレスが修正さ
れるのではなく、データパケットをRAMに記憶する際、直前に処理されたオペ
ランドに対するポインタとして提供される。このポインタを選択的に個々のデー
タパケットともに記憶することもできるし、あるいはインタラプトの場合にのみ
記憶して特別にマークすることもできる。殊に、オペランドに対するすべてのポ
インタを1つのアドレス(または1つのアドレスグループ)により計算できるよ
うにすれば、1つのアドレス(または1つのアドレスグループ)だけを保護する
点で有用である。
【0052】 "ULIW"-"UCISC" モデル このモデル(従来技術によるプロセッサと非常によく似たモデル)を理解する
ためには、VPUの見方を拡張する必要がある。この場合、バーチャルマシンモ
デルが基礎として用いられる。PAE(PA)から成るアレイは、それらのアー
キテクチャについてコンフィグレーション可能な計算ユニットとみなされる。ま
た、CTは操作コード Opcode のためのロードユニットを成す。IOAGはバス
インタフェースおよび/またはレジスタセットを引き受ける。
【0053】 このような装置によって2つの基本的な機能が実現され、それらは稼働中混ぜ
合わせて利用可能である: 1.複数のPAEから成るグループ(これは1つのPAEであってもよい)が複
合的な命令または命令シーケンスを実行するためにコンフィグレーションされ、
その後、その命令に関連するデータ(これは単一のデータ語であってもよい)が
処理される。ついで次の命令を実行するため、そのグループが再コンフィグレー
ションされる。その際、グループのサイズや配置を変更することができる。すで
に言及した分割技術に従い、コンパイラはできるかぎり最適なグループを作り出
す役割を担う。CTによりグループは命令としてコンポーネントに「ロード」さ
れ、それにより周知のVLIWによる方法と同等であるのは、著しく多くの計算
機構が管理されかつ各計算機構間のネットワーク構造はやはり命令語によって覆
うことができることだけである(Ultra Large Instruction Word = "ULIW")。
このようにして非常に高度な命令レベル並列性 Instruction Level Parallelism
(ILP) を達成できる(図27も参照)。この場合、1つの命令語は1つのモジ
ュールに対応する。また、データの依存性が許可されかつコンポーネントにおい
て十分なリソースが空いてるならば、複数のモジュールを同時に処理することが
できる。VLIW命令のように通例、命令語の実行後ただちに次の命令語がロー
ドされる。その際、時間的な最適化のために実行中にすでに次の命令語をプレロ
ードすることができる(図10参照)。複数の可能な次の命令語がある場合に複
数の命令語をプレロードすることができ、実行前にたとえばトリガ信号により適
正な命令語が選び出される(図4a B1/B2,図15 ID C/ID K,図
36 A/B/Cを参照)。
【0054】 2.複数のPAEから成るグループ(これは1つのPAEであってもよい)が、
頻繁に使われる命令シーケンスを実行するためにコンフィグレーションされる。
データ(これは単一のデータ語であってもよい)は必要なときにグループへ供給
され、グループによって受け取られる。これらのグループは再コンフィグレーシ
ョンせずに複数のサイクルないしはクロックにわたり存在し続ける。このような
装置構成は従来技術によるプロセッサにおける特別な計算機構(たとえばMMX
)と比較し得るものであって、これは特別なタスクのために設けられていて必要
なときに用いられる。このようなアプローチによりCISC方式に従い特別な命
令を生成することができ、これにより得られる利点によれば、それらの命令を適
用事例固有に作り出すことができるようになる(Ultra-CISC = "UCISC")。
【0055】 RDY/ACK プロトコルの拡張(PACT02 参照) PACT02 には RDY/ACK プロトコルが記載されており、これには典型的なデータ
フローアプリケーションに関して DE 44 16 881 の同期に従う基本的な要求が述
べられている。このプロトコルの欠点は、データが送信され受信が確認されるこ
としかできないことである。データが要求され送信が確認されるような逆の事例
(以下では REQ/ACK と称する)はたしかに電気的には同じ2線式のプロトコル
によって解決することができるけれど、セマンティクス的には捉えられない。こ
のことがあてはまるのは殊に、REQ/ACK と RDY/ACK が混ぜ合わせられて稼働さ
れるときである。したがってプロトコルの明確な区別が導入される: RDY: データは送信側において受信側のために準備される。
【0056】 REQ: データは受信側により送信側に対して要求される。
【0057】 ACK: 行われた受信または送信に対する共通の承認 (基本的に RDY に対する ACK と REQ に対する ACK も区別できるが、プロトコ
ルにおいて ACK のセマンティクスは通例は暗黙的である。) メモリモデル VPUにメモリを(1つまたは複数)統合することができ、それらをPAEの
ように呼び出すことができる。以下では、同時に外部周辺機器および/または外
部記憶装置に対するインタフェースも成すメモリモデルについて記述する: PAEと類似のバス機能を備えたVPU内部メモリは種々のメモリモードで動
作することができる: 1.標準メモリ(ランダムアクセス) 2.キャッシュ(標準メモリの拡張として) 3.ルックアップテーブル 4.FIFO 5.LIFO(スタック) このメモリには制御可能なインタフェースが割り当てられており、これはメモ
リ領域に対し選択的にワードまたはブロックごとに書き込みまたは読み出しを行
う。これにより以下の利用形態が得られる: 1.データ流の分離(FIFO) 2.外部記憶装置の選択された器億九領域に対する高速アクセス、これはキャッ
シュと類似の機能を成す(標準メモリ、ルックアップテーブル) 3.可変の深さをもつスタック(LIFO) その際にインタフェースを利用できるが必ずしもそうしなければならないわけ
ではなく、それはデータがたとえばもっぱら局所的にVPUにおいて用いられ、
内部メモリのメモリスペースが十分なときである。
【0058】 スタックモデル REQ/ACK プロトコルおよびLIFOモードでの内部メモリの利用により、簡単
なスタックプロセッサを構築することができる。この場合、一時的なデータがP
AEからスタックに書き込まれ、必要に応じてスタックからロードされる。この
ために必要とされるコンパイラ技術はよく知られている。内部メモリと外部記憶
装置とのデータ交換により達成される可変のスタックの深さにより、スタックを
任意のサイズにすることができる。
【0059】 累算器モデル 各PAEは、累算器方式による計算ユニットとして動作することができる。PA
CT02 から知られているように、出力レジスタをPAEの入力側にフィードバッ
クすることができる。これにより従来技術による累算器が形成される。図11に
よるシーケンサと関連して、簡単な累算器プロセッサを構築することができる。
【0060】 メモリアーキテクチャ メモリは2つのインタフェースをもっている。第1のインタフェースはメモリ
をアレイと接続し、第2のインタフェースはメモリをIOユニットと接続する。
アクセス時間を改善するため、メモリを Dual-Ported-RAM として構成するよう
にし、これにより書き込みアクセスと読み出しアクセスを互いに無関係に行うこ
とができる。
【0061】 第1のインタフェースは通常のPAEインタフェース(PAEI)であり、こ
れによりアレイのバスシステムに対するアクセスが保証され、かつ同期合わせと
トリガ処理が確保される。この場合、トリガを用いることができ、メモリの種々
の状態を指示したりメモリにおけるアクションを強制することができる。たとえ
ば、 1.Empty/Full: FIFOとして使用したとき、FIFO状態「満杯」、「ほぼ
満杯」、「空」、「ほぼ空」を指示 2.Stack overrun/underrun: スタックとして使用したとき、スタックのオーバ
ーランとアンダーランをシグナリング 3.Cache hit/miss: キャッシュモードにおいて、キャッシュ内でアドレスが見
つかったか否かを指示 4.Cache flush; トリガにより外部のRAMへのキャッシュの書き込みを強制
PAEインタフェースにはコンフィグレーション可能な状態機械が対応づけられ
ており、これは種々の動作形式を制御する。さらにこの状態機械には、FIFO
モードとLIFOモードでアドレスを生成するためカウンタが対応づけられてい
る。その際、アドレスはマルチプレクサを介してメモリへ供給され、これによっ
てアレイ内で生成された付加的なアドレスをメモリへ供給できるようになる。
【0062】 第2のインタフェースはIOユニット(IOI)の接続のために用いられる。
IOユニットは、外部インタフェースを備えたコンフィグレーション可能なコン
トローラとして構成されている。このコントローラはデータをワードごとまたは
ブロックごとに、メモリへ書き込みもしくはメモリから読み出す。データはIO
ユニットと交換される。さらにコントローラは、付加的なTAGメモリを用いて
様々なキャッシュ機能をサポートする。
【0063】 IOIとPAEIは、これら両方のインタフェースの衝突が生じないよう互い
に同期合わせられている。この同期合わせは動作形式に応じてそれぞれ異なり、
たとえば標準メモリまたはスタックモードでは常にIOIまたはPAEIだけが
メモリ全体にアクセスできるのに対し、FIFOモードでは同期合わせはライン
ごとであり、すなわちIOIがラインxをアクセスしている間、PAEIはその
つどラインxとは異なるラインを同時にアクセスできる。
【0064】 IOユニットは周辺機器の要求に応じて構成され、たとえば、 1.SDRAMコントローラ 2.RDRAMコントローラ 3.DSPバスコントローラ 4.PCIコントローラ 5.シリアルコントローラ(たとえば NGIO) 6.特別な目的のためのコントローラ( SCSI, Ehternet, USB 等) として構成される。
【0065】 VPUは、任意のIOユニットを備えた任意のメモリ素子を有することができ
る。その際、様々なIOユニットを1つのVPUにインプリメントすることがで
きる。
【0066】 動作形態: 1.標準メモリ 1.1 intern/local PAEIを介してデータとアドレスがメモリと交換される。アドレッシング可
能なメモリサイズはメモリの大きさによって制約される。
【0067】 1.2 extern/memory mapped window PAEIを介してデータとアドレスがメモリと交換される。IOIのコントロ
ーラにおいて外部記憶装置のベースアドレスが与えられる。このコントローラは
ブロックごとにデータを外部記憶装置のアドレスから読み出し、それをメモリに
書き込む。その際、内部アドレスと外部アドレスはそのつどインクリメント(ま
たはデクリメント)され、これは内部メモリ全体が読み出されるまでまたはまえ
もって設定された限界に達するまで行われる。アレイはローカルデータによって
動作し、これはそのデータがコントローラによって再び外部記憶装置に書き込ま
れるまで行われる。書き込みは既述の読み出し過程と同じように進行する。
【0068】 コントローラによる読み出しと書き込みは a)トリガによって開始させることができる、または b)ローカルには記憶されていないアドレスへのアレイのアクセスによって開始
させることができる。アレイがこのようなアドレスへアクセスしたならば、まず
はじめに内部メモリは外部記憶装置へ書き込まれ、その後、メモリブロックが所
望のアドレス分だけあとからロードされる。このような動作は殊に、レジスタプ
ロセッサのためにレジスタセットをインプリメントする場合に重要となる。この
場合、タスク交換またはコンテキスト切り替えのためにトリガによりレジスタセ
ットの Push/Pop を外部記憶装置により実現することができる。
【0069】 1.3 extern/lookup table ルックアップテーブル機能は1.2の簡略化形態である。ここではデータは1
回または複数回、CT呼び出しまたはトリガにより外部のRAMから内部へ読み
込まれる。そしてアレイはデータを内部メモリから読み出すが、データを内部メ
モリには書き込まない。外部記憶装置のベースアドレスはコントローラにおいて
CTまたはアレイにより記憶されており、これはランタイムに変更することがで
きる。また、外部記憶装置からのロードはCTまたはアレイからのトリガにより
引き起こされ、これも同様にランタイムに行うことができる。
【0070】 1.4 extern/cached このモードの場合、アレイは選択的にメモリをアクセスする。メモリは従来技
術による外部記憶装置用のキャッシュメモリのように動作する。アレイからのト
リガによりまたはCTによりキャッシュを空にする(つまりキャッシュを外部記
憶装置に完全に書き込む)ことができる。
【0071】 2.FIFO FIFOモードは通常、データ流が外部からVPUへ導かれるときに利用され
る。この場合、FIFOは外部データの処理とVPU内部のデータ処理との分離
として用いられ、これによれば外部からFIFOへ書き込まれてVPUから読み
出され、または正確にその逆が行われる。FIFOの状態はアレイへのおよび必
要に応じて外部へのトリガによってシグナリングされる。FIFOは従来技術に
従い様々な書き込みポインタおよび読み出しポインタによってインプリメントさ
れる。
【0072】 3.Stack/intern アドレスレジスタにより内部スタックが構築される。アレイによりメモリが書
き込みアクセスされるたびにレジスタがモードに従い a)インクリメント b)デクリメント される。アレイからの読み出しアクセスにあたりレジスタは逆に a)デクリメント b)インクリメント される。レジスタは各アクセスごとに必要なアクセスを提供する。スタックはメ
モリのサイズにより制限されている。エラー(オーバーラン/アンダーラン)は
トリガにより指示される。
【0073】 4.Stack/extern 内部メモリがスタック構築には小さすぎるならば、それを外部記憶装置に移す
ことができる。この目的でコントローラ内に外部スタックアドレス用のアドレス
カウンタが設けられている。内部スタックのエントリが所定の量を超えると、ブ
ロックごとに複数のエントリが外部スタックに書き込まれる。スタックは終わり
の方からつまり最も古いエントリから外部へ書き込まれ、その際、最も新しい一
群のエントリは外部へは書き込まれず、内部に保持され続ける。外部のアドレス
カウンタ(ERC)はラインごとに修正される。
【0074】 内部スタックにスペースが作られた後、保持されているスタック内容をスタッ
クの最初に向かって移動する必要があり、内部のスタックアドレスが相応に整合
される。
【0075】 いっそう効率的な変形形態は、スタックをリングメモリとして構成することで
ある(PACT04 参照)。内部アドレスカウンタはスタックエントリの追加または
除去により修正される。内部アドレスカウンタ(IAC)がメモリの上限を超え
るとただちに、このカウンタは最も小さいアドレスを指すようになる。また、I
ACが最も小さいアドレスよりも小さくなると、これは最も大きいアドレスを指
すようになる。また、付加的なカウンタ(FC)がメモリの充填状態を指示し、
つまりワードが書き込まれるたびにカウンタはインクリメントされ、読み出され
るたびにデクリメントされる。メモリがいつ空であるのかまたはいっぱいである
のかを、FCに基づき識別することができる。このような技術はFIFOにより
知られている。したがってブロックが外部記憶装置に書き込まれると、スタック
を更新するためFCの整合が行われる。外部アドレスカウンタ(EAC)は内部
メモリ内に存在する最も古いエントリを常に指し、つまりはIACとは逆のスタ
ックの終わりにある。EACが修正されるのは、 a)データが外部スタックに書き込まれたときであり、そのときにはIACの方
向に進む。
【0076】 b)データが外部スタックから読み込まれたときであり、そのときにはIACか
ら離れていく。
【0077】 FCの監視により、IACとEACの衝突が確実に避けられる。ERCは外部
のスタックオペレーション(構築または解体)に従い修正される。
【0078】 MMU 外部の記憶装置インタフェースにはMMUを対応づけることができ、これは2
つの機能を果たす: 1.最新のオペレーシングシステムをサポートするため内部アドレスから外部ア
ドレスへの換算 2.外部アドレスへのアクセスの監視、たとえば外部スタックがオーバーランま
たはアンダーランしたとき、エラー信号をトリガとして生成 コンパイラ 本発明によるVPUテクノロジーのプログラミング原理が基礎とするのは、逐
次的なノードを分離し、できるかぎり多くの互いに依存しないサブアルゴリズム
に分解することであり、一方でデータフローコードのサブアルゴリズムはVPU
にダイレクトにマッピングされる。
【0079】 VPUノードと標準ノードとの間の分離 従来技術による言語においては、考え得られるすべてのコンパイラ(Pascal,
Java, Fortran 等)の代表として C++ が引き続き使用されることになるだろう
けれども、特別な拡張(VC= Vpu C)を定義することができ、これにはVPU
テクノロジーに殊に良好にマッピング可能な言語構造と型が含まれている。プロ
グラマはVCを、他の構造や型を用いないプロシージャや関数の内部で使用すれ
ばよい。それらのプロシージャや関数はVPUにダイレクトにマッピング可能で
あり、殊に効率的に実行される。コンパイラはプリプロセッサのところでVCを
抽出し、それをVCバックエンドプロセッシング(VC-Backend-Processing, VCB
P)へダイレクトに転送する。
【0080】 並列処理化可能なコンパイラノードの抽出 次のステップでコンパイラは残りの C++ コードを分析し、良好に並列処理化
可能でありシーケンサを使用せずにVPUテクノロジーにマッピング可能な部分
(MC= mappable C)を抽出する。各々個々のMCは1つのバーチャルアレイ
に配置されルーティングされる。その後、所要スペースならびに予期されるパフ
ォーマンスが分析される。この目的でVCBPが呼び出され、いずれにせよマッ
ピングされるVCといっしょに個々のMCが分割される。最大の性能増加を達成
するVPUインプリメンテーションをもつMCが受け入れられ、残りは C++ と
して次のコンパイラ段へ渡される。
【0081】 最適化を行うシーケンサ ジェネレータ このコンパイラ段はVPUシステムのアーキテクチャに応じて様々なかたちで
インプリメント可能である。
【0082】 1.シーケンサおよび外部プロセッサのないVPU 残っている C++ のコードはすべて外部のプロセッサのためにコンパイルされ
る。
【0083】 2.シーケンサをもつVPUのみ 2.1 PAEにおけるシーケンサ 残っている C++ のコードはすべてPAEのシーケンサのためにコンパイルさ
れる。
【0084】 2.2 アレイにおけるコンフィグレーション可能なシーケンサ 残っている C++ のコードは依存しない各モジュールのために分析される。そ
のつど最も適したシーケンサバリエーションがデータベースから選び出され、V
Cコード(SVC)として格納される。このステップはたいてい反復的であり、
つまりあるシーケンサバリエーションが選び出されてコードがコンパイルされ分
析されて、他のシーケンサバリエーションのコンパイル済みコードと比較される
。最後に C++ コードのオブジェクトコード(SVCO)が選択されたSVCの
ために生成される。
【0085】 2.3 2.1も2.2も適用される 動作形態は2.2に対応する。PAEにおけるシーケンサのためにデータベー
ス内に特別なスタティックなシーケンサモデルが存在する。
【0086】 3. シーケンサおよび外部のプロセッサを備えたVPU この動作形態も2.2に対応する。外部のプロセッサのためにデータベース内
に特別なスタティックなシーケンサモデルが存在する。
【0087】 リンカ リンカによって個々のモジュール(VC,MC,SVC,SVCO)が結合さ
れて実行可能なプログラムが形成される。このため個々のモジュールを配置しル
ーティングし時間的な分割を確定する目的で、リンカはVCBPを使用する。リ
ンカはまた、個々のモジュール間に通信構造も付け加え、場合によってはレジス
タとメモリを挿入する。個々のモジュールのコントロール構造や依存性の分析に
基づき、再コンフィグレーションの場合にアレイとシーケンサの内部状態を記憶
するための構造が付加される。
【0088】 プロセッサのモデルについての注釈 使用されるマシンモデルをVPU内部で任意に組み合わせることができる。ま
た、アルゴリズム内部においても、どのようなモデルが最適であるかに応じて各
モデルの間で交換を行うことができる。
【0089】 オペランドが読み出され結果の書き込まれる別のメモリをレジスタプロセッサ
に付け加えれば、ロード/ストアプロセッサを構築することができる。この場合
、異なる複数のメモリを割り当てることができ、それによれば個々のオペランド
と結果が別個に処理される。そしてこれらのメモリはいわばロード/ストアユニ
ットとして動作するようになり、外部記憶装置のための一種のキャッシュを成す
ようになる。アドレスはデータ処理とは別個のPAEにより計算される。
【0090】 ポインタレコーディング C/C++ のような高級言語は頻繁にポインタを使用し、これはパイプラインによ
って非常に取り扱いにくくなる可能性がある。ポインタの指すデータ構造の使用
直前になってからようやくそのポインタが計算されると、パイプラインを十分高
速に満たすことができないことが多く、その処理は特にVPUにおいては非効率
的になる。VPUのプログラミングにあたりできるかぎりポインタを使用しない
ことはたしかに有用であるけれども、それは不可能であることが多い。解決策は
、ポインタアドレスがその使用よりもできるかぎり手前で計算されるよう、コン
パイラによりポインタ構造をソートしなおすことである。これと同時に、ポイン
タとそのポインタの指すデータとの直接的な依存性ができるかぎり少なくなるよ
うにすべきである。
【0091】 (P196 51 075.9 および P196 54 846.2 に対する)PAEの拡張 P196 51 075.9 と P196 54 846.2 により、セル(PAE)のコンフィグレー
ション特性に関する従来技術が規定されている。この場合、2つの特性について
触れておく: 1.P196 51 075.9 によれば1つのPAE(0903)に1つのコンフィグレー
ションレジスタセット(0904)が割り当てられ、これには1つのコンフィグ
レーションが含まれている(図9a)。
【0092】 2.P196 54 846.2 によればPAEグループ(0902)はデータの記憶または
読み出しのためにメモリにアクセスすることができる(図9b)。
【0093】 課題は、 a)PAEの再コンフィグレーションを加速し、かつ時間的に上位のロードユニ
ットとは分離した方法を提供する b)これと同時にこの方法を、複数のコンフィグレーションについて連続して配
置できるよう構成する c)1つのPAEにおいて同時に複数のコンフィグレーションを保持すること、
この場合、それらのコンフィグレーションのうち常に1つがアクティブであり、
種々のコンフィグレーション間で迅速に交換可能であるようにする ことである。
【0094】 コンフィグレーションレジスタの分離 コンフィグレーションレジスタは上位のロードユニット(CT)から分離され
(図10)、これによれば複数のコンフィグレーションレジスタから成るセット
(1001)が用いられる。これら複数のコンフィグレーションレジスタのうち
常に正確に1つのコンフィグレーションレジスタにより、選択的にPAEの機能
が決定される。アクティブなレジスタの選択はマルチプレクサ(1002)によ
って実行される。コンフィグレーションレジスタの各々にCTは任意に書き込み
を行うことができ、これはそのレジスタによってもPAEの目下のコンフィグレ
ーションが決められていないかぎり、つまりアクティブでないかぎり可能である
。アクティブなレジスタへの書き込みは原則的には可能であり、そのためにPACT
10 に記載された方法が提供されている。1002によりどのコンフィグレーシ
ョンレジスタを選択するのかは、種々のソースによって決めることができる: 1.任意のステータス信号または任意のステータス信号のグループ、これはバス
システム(0802)を介して1002へ供給される(図10a)。この場合、
ステータス信号は任意のPAEにより生成されるかまたは、コンポーネントの外
部端子により提供される(図8)。
【0095】 2.PAEのステータス信号、これは1001/1002によりコンフィグレー
ションされ、選択のために用いられる(図10b)。
【0096】 3.上位のCTにより生成される信号が選択に用いられる(図10c)。
【0097】 この場合、到来する信号(1003)を特定の期間にわたりレジスタによって
記憶し、択一的および選択的に呼び出すことができる。
【0098】 複数のレジスタを使用することによりCTが時間的に分離される。つまりCT
は、直接的な時間的依存性が存在しなくても複数のコンフィグレーションを事前
に「プレロード」することができる。選択された/アクティブにされたレジスタ
が1001内にまだロードされていないときだけ、CTがレジスタにロードされ
てしまうまでPAEのコンフィグレーションを待つ。レジスタが有効な情報をも
っているか否かを判定する目的で、たとえば "Valid-Bit" (1004)をレジ
スタごとに挿入することができ、これはCTによりセットされる。選択されたレ
ジスタにおいて0906がセットされていなければ、できるかぎり迅速なレジス
タのコンフィグレーションがCTに対し信号によって要求される。
【0099】 図10に示されている方法は簡単にシーケンサに拡張することができる(図1
1)。この目的で、マルチプレクサ(1002)の選択信号を制御するため命令
デコーダ(1101)を備えたシーケンサが用いられる。この場合、シーケンサ
は目下選択されているコンフィグレーション(1102)と付加的なステータス
情報(1103/1104)に依存して、次に選択すべきコンフィグレーション
を決定する。ステータス情報は a)1001/1002によりコンフィグレーションされるステータス信号のス
テータス(図1a) b)0802を介して供給される任意のステータス信号(図11b) c)上記のa)とb)の組み合わせ とすることができる。
【0100】 1001はメモリとしても構成することができ、この場合、1002の変わり
に1101により命令がアドレッシングされる。その際にアドレッシングは、命
令自体とステータスレジスタとに依存する。この点ではこの構造は「フォン・ノ
イマン」マシンに対応するが相違点として以下の点が挙げられる。
【0101】 a)汎用的な可用性があることつまりシーケンサを使用しないこと(図10参照
) b)ステータス信号をシーケンサに割り当てられた計算機構(PAE)により生
成する必要がなく、任意の他の計算機構によって可能なこと(図11b参照)。
【0102】 重要であるのは、ジャンプというシーケンサたとえば条件付きジャンプも10
01内で実行できることである。
【0103】 VPU内でシーケンサを構築するための別の付加的または択一的な方法(図1
2)は、1つのPAEまたはPAEのグループのためにコンフィグレーション情
報を記憶するために内部データメモリ(1201,0901)を使用することで
ある。この場合、メモリのデータ出力はコンフィグレーション入力側または1つ
または複数のPAEのデータ入力側へ供給される(1202)。1201用のア
ドレス(1203)は、同じPAEまたは他の複数の任意のPAEによって生成
することができる。
【0104】 この方法によればシーケンサは固定的にインプリメントされず、1つのPAE
またはPAEのグループによってシミュレートされる。この内部メモリは外部記
憶装置からプログラムをあとからロードすることができる(本発明によるメモリ
システム参照)。
【0105】 ローカルデータ(たとえば反復的な計算のためのデータやシーケンサのレジス
タとしてのデータなど)を記憶するため、PAEには付加的なレジスタセットが
設けられ、このレジスタセットにおける個々のレジスタはコンフィグレーション
により決定され、ALUへ導かれるかまたはALUにより書き込まれる。あるい
はこれは、インプリメントされたシーケンサの命令セットにより自由に利用する
ことができる(レジスタモード)。同様にレジスタの1つを累算器(累算器モー
ド)として用いることができる。PAEが完全に等価のマシンとして用いられる
ならば、レジスタのうちの1つを外部データアドレス用のアドレスカウンタとし
て用いるのが有用である。
【0106】 PAEの外部で(たとえば本発明によるメモリにおいて)スタックと累算器を
管理するために、既述の RDY/ACK REQ/ACK 同期モデルが用いられる。
【0107】 従来技術によるPAEはビットごとの演算の処理に適しているわけではなく、
統合されたALUビット演算は特別にサポートされておらず、もしくは狭く(1
ビット幅、2ビット幅、4ビット幅で)設計されている。コンフィグレーション
可能な論理演算を実行するFPGAコア(LC)によってALUコアを置き換え
ることにより、個々のビットまたは信号の処理を効率的に保証することができる
。この場合、LCはその機能や内部のネットワークについて任意にコンフィグレ
ーション可能である。その際に従来技術に従いLCを使用することができる。特
定の演算のために有用であるのは、LCに対し内部邸にメモリを割り当てること
である。FCとアレイのバスシステムとのインタフェースコンポーネントはFC
に合わせて少しだけ整合されるけれども、基本的にはそのままである。とはいえ
有用であるのは、FCの時間特性をフレキシブルに構成するためにインタフェー
スコンポーネント内のレジスタを遮断可能に構成することである。
【0108】 図面 図4aには、本発明による方法のいくつかの基本特性が描かれている。これに
よればタイプAのモジュールが1つのグループにまとめられ、その終わりにはB
1またはB2への条件付きジャンプが設けられている。その位置(0401)に
は再コンフィグレーションポイントが挿入されており、その理由は条件付きジャ
ンプの分岐をそれぞれ1つのグループとみなすのが有用だからである(事例1)
。これに対し、Bの2つの分岐(B1,B2)が付加的にAと合わせてターゲッ
トコンポーネントに整合されるならば(事例2)、0402のところにだけ再コ
ンフィグレーションポイントを挿入するのが有用である。その理由は、そのよう
にすることでコンフィグレーションの個数が抑えられるからであり、処理速度が
高められるからである。両方の分岐(B1,B2)は、0402においてCに向
かってジャンプする。
【0109】 図4bには、ターゲットコンポーネントにおけるセルのコンフィグレーション
が描かれている。この場合、個々のグラフノードの機能がターゲットコンポーネ
ントのセルにマッピングないしは変換される。それぞれ1つの行は1つのコンフ
ィグレーションを表す。行の変わり目における破線の矢印は再コンフィグレーシ
ョンを表している。S はデータを記憶するセルであり、これは任意の形態の
ものである(レジスタ、メモリ等)。ここでSIはデータを受け取るメモリで
あり、SOはデータを出力するメモリである。メモリS は同じnについて
はそれぞれ同じものであり、IとOはデータ転送方向を表す。
【0110】 ここには条件付きジャンプの2つの事例(事例1、事例2)が描かれている。 図4のモデルはデータフローモデルに対応するが、再コンフィグレーションポ
イントの実質的な拡張およびそれによって達成可能なグラフの分割を伴い、その
際、各分割部分の間を伝送されるデータが一時記憶される。
【0111】 図5aのモデルにおいて任意のグラフ集合および空間配置(0501)から選
択的に、グラフBの集合から成るグラフB が呼び出される。Bの実行後、デ
ータは0501に戻る。0501において十分に大きいシーケンサ(A)がイン
プリメントされれば、このモデルによって典型的なプロセッサに非常に類似した
方式をインプリメントすることができる。この場合、 1.データはシーケンサAに到達し、これはそれらのデータを命令としてデコー
ディングし、「フォン・ノイマン」方式に従いそれに対して応答する。
【0112】 2.データはシーケンサAに到達し、これはデータとしてみなされ、固定的にコ
ンフィグレーションされた計算機構Cへ計算のために転送される。
【0113】 グラフBによれば選択可能なかたちで、特定の機能のための1つの特別な計算
機構および/または特別な操作コードが提供され、これは択一的にCの加速に用
いられる。たとえばB1を行列乗算を計算するために最適化されたアルゴリズム
とすることができ、他方、B2はFIRフィルタ、B3はパターン認識を成す。
0501によりデコーディングされた操作コードに従い、適切なもしくは対応す
るグラフBが呼び出される。
【0114】 図5bには個々のセルへのマッピングの様子が描かれており、この場合、05
02にはパイプライン状の計算機構キャラクタがシンボリックに示されている。
【0115】 図4の再コンフィグレーションポイントには有利にはデータバッファリングの
ための比較的大きいメモリが挿入されるのに対し、図5の再コンフィグレーショ
ンポイントではデータの簡単な同期合わせで十分である。その理由は、データ流
は有利には全体としてグラフBを通り抜けるからであり、グラフBはこれ以上分
割されないからである。このためデータのバッファリングは余計なものとなる。
【0116】 図6には様々なループが描かれている。ループは基本的に3つの種類で取り扱
うことができる。
【0117】 1.ハードウェアアプローチ:ループは完全に展開されてターゲットハードウェ
アにマッピングされる(0601a/b)。すでに説明したように、これは僅か
なループ形式のときにだけ可能である。
【0118】 2.データフローアプローチ:データフロー内部でループは複数のセルを超えて
構築される(0602a/b)。ループの終わりはループの最初にフィードバッ
クされる。
【0119】 3.シーケンサアプローチ:最小の命令セットをもつシーケンサがループを実行
する(0603a/b)。この場合、ターゲットコンポーネントのセルは、それ
らが対応するシーケンサを含むように構成されている(図11a/b参照)。
【0120】 ループの適切な分解によりそれらの実行を必要に応じて最適化することができ
る: 1.従来技術による最適化手法を利用してループ本体つまり繰り返し実行される
部分を、特定の演算がループから取り除かれループの前または後ろにおかれるよ
う、最適化されることが多い(0604a/b)。これによりシーケンス処理す
る命令の量が著しく低減される。取り除かれた演算はループ実行前または実行後
に1度だけしか実行されない。
【0121】 2.別の最適化の可能性は、ループをそれよりも小さいまたは短い複数のループ
に分けることである。これによればこのような分割は、複数の並列的なループま
たは逐次的なループ(0605a/b)が生じるように行われる。
【0122】 図7には再帰のインプリメントについて示されている。これによれば同じリソ
ース(0701)がセルの形態で各再帰レベル(1〜3)のために利用される。
各再帰レベル(1〜3)の結果は構築(0711:)にあたりスタック方式に従
い構成されたメモリ(0702)に書き込まれる。レベルの分解(0712)と
同時にスタックが分解される。
【0123】 図14にはバーチャルマシンモデルが描かれている。外部の記憶装置から、デ
ータ(1401)およびそれらのデータに属する状態(1402)がVPUに読
み込まれる。VPUにより生成されたアドレス1404によって1402/14
02が選択される。VPU内部において、PAEは種々のグループにまとめられ
ている(1405,1406,1407)。各グループはデータ処理を行う部分
(1408)を有しており、これはローカルな暗黙的状態(1409)をもち、
周囲のグループに対し影響を及ぼさない。したがってその状態はグループの外に
転送されない。しかしながらこれは外部の状態に依存する可能性がある。さらに
別の部分(1410)によって、周囲のグループに対し影響を及ぼす状態が生成
される。
【0124】 結果として生じたデータと状態は別のメモリ(1411,1412)に格納さ
れる。これと同時に、オペランドのアドレス(1404)がポインタとして格納
される(1413)。時間的に同期を合わせるために、レジスタ(1414)を
介して1404を導くことができる。
【0125】 わかりやすくするため、図14には1つの簡単なモデルが描かれている。ネッ
トワーク化ならびにグルーピングは、このモデルの場合よりもかなり複雑になる
可能性がある。同様に、状態やデータも継承として別のモジュールに伝送するこ
とができる。その際、データを別のモジュールに状態として伝送することができ
る。特定のモジュールのデータも状態も複数の異なるモジュールによって受け取
ることができる。1つのグループ内に1408,1409,1410を設けるこ
とができる。アルゴリズムに依存して個々の部分を省略することも可能である(
たとえば1410と1409を設け1410は設けない)。
【0126】 図15には、処理グラフからどのようにしてサブアプリケーションを抽出する
のかが描かれている。この場合、グラフは、長いグラフが有用に分解されてサブ
アプリケーション(H,A,C,K)に変換されるように分解される。ジャンプ
後、新たなサブグラフが形成され(C、K)、その際、ジャンプのたびに別個の
サブグラフが形成される。各サブグラフはULIWモデルにおいてCT(PACT10
参照)とは別個にロード可能である。ここで重要であるのは、サブグラフは PA
CT10 におけるメカニズムにより管理できることである。これにはたとえばイン
テリジェントなコンフィグレーション、サブアプリケーションの実行/スタート
および消去が属する。
【0127】 サブアプリケーションKが実行される間、1503はサブアプリケーションA
のロードまたはコンフィグレーションを行う。これにより a)サブアプリケーションAは、PAEが複数のコンフィグレーションレジスタ
を有しているときには、サブアプリケーションKの実行終了時にすでに完全にP
AEにコンフィグレーションされている。
【0128】 b)サブアプリケーションAは、PAEがただ1つのコンフィグレーションレジ
スタしか有していないときには、サブアプリケーションKの実行終了時にすでに
CTにロードされている。
【0129】 1504はサブアプリケーションKの実行をスタートさせる。つまりランタイ
ムに、必要とされる次のプログラム部分が目下のプログラム部分の処理中、無関
係にロードされる。これにより、通常のキャッシュメカニズムよりも非常に効率
的にプログラムコードとの関係を得ることができる。サブアプリケーションAで
はさらに別の特殊性がある。この場合、基本的に考えられるのは比較における両
方の可能な分岐(C、K)をまえもってコンフィグレーションすることである。
使用可能なコンフィグレーションレジスタの個数がそのために十分ではないとし
たら、分岐のうちいっそう確かな方がコンフィグレーションされる(1506)
。しかもこれによりコンフィグレーション時間が節約される。コンフィグレーシ
ョンされない方の分岐の実行時、(コンフィグレーションはまだコンフィグレー
ションレジスタにロードされていないので)その分岐がコンフィグレーションさ
れるまでプログラミングの実行が中断される。
【0130】 コンフィグレーションされていないサブアプリケーションの実行も基本的に可
能であり、これは既述のように実行前にロードする必要がある。
【0131】 FETCH 命令をトリガにより固有のIDを用いて発生させることができる。これ
によりサブアプリケーションをアレイの状態に依存して事前にプレロードするこ
とができる。
【0132】 ULIWモデルがVLIWモデルと基本的に異なる点は、 1.データのルーティングがいっしょに含まれていること 2.いっそう大きい命令誤が形成されること である。
【0133】 コンパイラの分割の既述の方法を同様に、RISC/CISC方式による今日
の標準プロセッサにも適用することができる。この場合、PACT10 によるユニッ
ト(CT)を命令キャッシュの制御のために使用すれば、それを格段に最適化し
加速することができる。この目的で、「通常の」プログラムがそれ相応にサブア
プリケーションに分割される。PACT10 によれば、可能な後続のサブアプリケー
ションへの参照が導入される(1501,1502)。これによりCTはサブア
プリケーションを、それが必要とされる前にすでにキャッシュにプレロードする
ことができる。ジャンプに際してはジャンプ先のサブアプリケーションだけが実
行され、その他はあとで新たなアプリケーションによって上書きされる。インテ
リジェントなプレロードのほかにこの方法のさらに別の利点は、サブアプリケー
ションのサイズがロード時にすでに既知なことである。これによりCTによるメ
モリへのアクセスに際して最適なバーストを実行することができ、このことによ
りメモリアクセスがさらに著しく加速される。
【0134】 図16にはスタックプロセッサの構造が示されている。LIFOとしてコンフ
ィグレーションされたメモリ(1602)へ書き込んだりそこから読み出す目的
で、PAEアレイ(1601)によりプロトコルが生成される。この場合、書き
込みのためにはRDY/ACK プロトコルが、読み出しのためには REQ/ACK プロトコ
ルが用いられる。ネットワーク化ならびに動作モードはCT(1603)により
コンフィグレーションされる。その際に1602はその内容を外部記憶装置(1
604)に格納することができる。
【0135】 一連のPAEはこの実施例ではレジスタプロセッサとして動作する(図17)
。各PAEは計算機構(1701)と累算器(1702)から成り、累算器に対
し1701から結果がフィードバックされる81703)。このようにしてこの
実施例によれば各PAEは累算器プロセッサとして動作する。PAE(1705
)は、標準メモリとしてコンフィグレーションされたRAM(1704)におけ
る読み書きを行う。別のPAE(1706)はレジスタアドレスを発生する。し
ばしば有効であるのは、データを読み出すために別個のPAEを使用することで
ある。このようにした場合には1705は書き込みだけを行い、PAE1707
は読み出しだけを行う。その際、読み出しアドレス生成用に別のPAE(170
8、破線で下方に示す)が導入される。別個のPAEをアドレス生成用に用いる
ことは必ずしも必要ではない。しばしばレジスタは暗黙的であり、その場合、定
数としてコンフィグレーションすることができ、データ処理を行うPAEから送
信することができる。
【0136】 実例としてレジスタプロセッサのために累算器プロセッサが使用される。また
、レジスタプロセッサを構築するために累算器の設けられていないPAEを用い
ることができる。図17に示されているアーキテクチャは、レジスタを制御する
ためにもロード/ストアユニットを制御するためにも用いることができる。ロー
ド/ストアユニットとして使用した場合にほぼ必須であるのは外部のRAM(1
709)を後置接続することであり、そのようにすると1704は1709のう
ち一時的なセクションだけをいわばキャッシュとして動作させる。1704をレ
ジスタバンクとして使用した場合も、外部記憶装置を後置接続するのが部分的に
有用である。これにより従来技術による PUSH/POP オペレーションを実行するこ
とができ、これによればレジスタ内容がメモリに書き込まれたりあるいはそこか
ら読み出されたりする。
【0137】 図18には実例として複合的なマシンが描かれている。これによればPAEア
レイ(1801)は一方ではRAM(1803)の後置接続されたロード/スト
アユニット(1802)を制御し、これと同時にRAM(1805)の後置接続
されたレジスタバンク(1804)を有する。1802と1804はそれぞれ1
つのPAEまたは任意のPAEグループによって制御することができる。このユ
ニットはCT(1806)によりVPU方式に従い制御される。ここで重要であ
るのは、ロード/ストアユニット(1802)とレジスタバンク(1804)な
らびにそれらの制御について嫉視津的な相違点はないことである。
【0138】 図19,図20,図21には本発明による内部メモリが示されており、これは
同時に外部記憶装置および/または周辺機器との通信ユニットも成す。個々の図
面には同じメモリの様々な動作形態について描かれている。この場合、動作形態
ならびに個々の詳細設定がコンフィグレーションされる。
【0139】 図19aには「レジスタ/キャッシュ」モードにおける本発明によるメモリが
示されている。本発明によるメモリ(1901)には、通常はそれよりもかなり
大きくて遅い外部記憶装置(1902)のデータワードが格納されている。この
場合、1901,1902およびバス(1903)を介して接続されたPAE(
図示せず)の間のデータ交換は以下のようにして行われ、その際に2つの動作形
態が区別される: A)PAEからメインメモリ1902に読み込まれるまたは送信されるデータは
、1901においてキャッシュ方式によりバッファリングされる。この場合、ど
のような周知のキャッシュ方式も使用することができる。
【0140】 B)ロード/ストアユニットによりデータが1902と1901の間で所定のア
ドレスに伝送される。その際にこの所定のアドレスは1902においても190
1においても設定され、ここで1902と1901について慣用のようにそれぞ
れ異なるアドレスが用いられる。この場合、個々のアドレスは定数によりまたは
PAEにおける計算により生成することができる。この動作形態の場合、メモリ
1901はレジスタバンクとして動作する。
【0141】 1901と1902との間のアドレスの割り当てはここでは任意のものとする
ことができ、両方の動作形態における個々のアルゴリズムにのみ依存する。
【0142】 19bには相応のマシンがブロック図として描かれている。1901と190
2との間のバスには制御ユニット(1904)が対応づけられており、これは動
作形態に応じて(従来技術による)ロード/ストアユニットとしてまたは(従来
技術による)キャッシュコントローラとして動作する。このユニットには必要に
応じてアドレス変換およびアドレスチェックを行うメモリ管理ユニット(MMU
)(1905)が対応づけられる。1904も1905もPAEにより制御する
ことができる。したがってたとえばMMUがプログラミングされ、ロード/スト
アユニットのアドレスがセットされ、またはキャッシュフラッシュがトリガされ
る。
【0143】 図20にはFIFOモードのメモリ(2001)の使用について示されており
、これによれば周知のFIFO方式に従いデータ流が分離される。典型的な組み
込み用途は書き込みインタフェース(2001a)または読み出しインタフェー
ス(2001b)である。これによれば内部バスシステム(2002)に接続さ
れているPAEと周辺バス(2003)との間でデータが時間的に分離される。
FIFOを制御するためにユニット(2004)が設けられており、これは20
03と2002のバスオペレーションに依存してFIFOの書き込みポインタと
読み出しポインタを制御する。
【0144】 図21には、スタックモードにおける本発明によるメモリの動作原理が描かれ
ている。1つのスタックは(従来技術によれば)1つのスタックメモリであり、
その最上部/最下部のエレメントが目下アクティブなものである。データは常に
上方/下方に付け加えられ、同様にデータは上方/下方で取り除かれる。つまり
最後に書き込まれデータが最初に読み出されるデータでもある(Last In First
Out)。スタックが上方に増えるのか下方に増えるのかは重要ではなく、実装に
左右される。以下の実施例では、上方に増えていくスタックについて考察する。
【0145】 この場合、目下のデータは内部メモリ2101に保持されており、最も新しい
エントリ(2107)は2101の一番上にある。すべてのエントリは外部記憶
装置2102に格納されている。スタックがさらに増大すると、内部メモリ21
01内のスペースがもはや不十分になる。2101における(任意に選択可能な
)アドレスによりまたはエントリカウンタにおける(任意に選択可能な)値によ
り表すことのできる所定のデータ量に到達すると、2010の一部分がブロック
として2102におけるスタックの最新の終端(2103)に書き込まれる。こ
の部分は最も古くつまりは最も最新性の乏しいデータ(2104)である。その
後、2101における残りのデータがシフトされて、2102へコピーされたデ
ータが2101において残りのデータ(2105)により上書きされ、このよう
にして新たなスタックエントリのために十分に広いメモリ(2106)が生じる
ようになる。
【0146】 スタックが減少すると、(任意に選択可能な)所定のポイントから2101内
のデータがシフトされて、最も古い最も最新性の乏しいデータのあとに空きメモ
リが生じるようになる。空きになったメモリにおいてメモリブロックが2102
からコピーされ、これは次に2102内で消去される。換言すれば2101と2
102は単一のスタックを成し、この場合、目下の新しいエントリは2101内
に位置し比較的古い最新性の乏しいエントリは2102内に格納される。この手
法はいわばスタックのためのキャッシュを成す。データブロックは有利にはブロ
ックオペレーションごとに伝送されるので、2101と2102との間のデータ
転送を最新のメモリ(SDRAM,RAMBUS等)の高速なバースト動作モー
ドで実行することができる。
【0147】 ここでもう一度触れておくと、図21の実施例ではスタックは上方へ向かって
増えていく。(しばしば適用される方法であるように)スタックが下方へ向かっ
て増えいくようにするならば、上方/下方という位置やメモリ内でデータが移動
する方向は正反対になる。
【0148】 有用には内部スタック2101は一種のリングメモリとして構成される。リン
グの一方の終端におけるデータはPAEと2101との間で伝送され、リングの
他方の端部においては2101と2102との間で伝送される。これにより得ら
れる利点は、2101における内部アドレスに影響を及ぼすことなく2101と
2102との間で簡単にデータをシフトできることである。また、下方と上方の
データの位置ポインタとレベルカウンタだけをそのつど整合すればよい。210
1と2102との間のデータ伝送は、周知のリングメモリフラグ「ほとんどいっ
ぱい(almost full)/いっぱい(full)」および「ほとんど空(almost empty
)/空(empty)」によってトリガすることができる。
【0149】 図21bには、必要とされるハードウェアがブロック回路図として描かれてい
る。内部スタック2101にはポインタとカウンタを管理するためのユニット(
2110)が対応づけられている。2101と2102との間のバス(2114
)には、データ転送を制御するためのユニット(2111)が挿入されている。
このユニットには、相応のチェックシステムやアドレス変換を行う従来技術によ
るMMU(2112)を割り当てることができる。PAEと2101との間の接
続はバスシステム2113を介して実現される。
【0150】 図22にはグラフの再ソートに関する実例が示されている。左側の欄(22.
.a)には最適化されていない命令の配置が示されている。この場合、ポインタ
A(2207a)とB(2211a)がロードされる。そのつどすでに1クロッ
ク遅れてポインタの値が必要とされる(2208a,2212a)。この関係は
効率的に実行するには短すぎる。なぜならばメモリからのロードのためには特定
の時間(2220a,2221a)が必要とされるからである。命令(22..
b)の再ソートにより期間が最大まで拡大される(2220b、2221b)。
2210と2208においてポインタAの値が必要とされるにもかかわらず、2
208は2210の後ろにソートされる。なぜならばそれによりBの計算にいっ
そう多くの時間が得られるからである。この場合、メモリアクセスのためにいっ
そう多くの時間を獲得する目的で、ポインタとは無関係の計算(2203,22
04,2206)をたとえば2211と2212との間に挿入することができる
。この場合、コンパイラまたはアセンブラは、アクセス時間を表すシステムパラ
メータに基づき相応の最適化を行うことができる。
【0151】 図23には図4〜7の特別な事例が示されている。よくあるアルゴリズムは、
ループ内でもデータフロー部分と逐次的部分とによって構成されている。この種
の構造は、既述の方法に従い PACT07 に記載されたバスシステムを使用して効率
的に構築することができる。この目的で バスシステムの RDY/ACK プロトコルが
さしあたり本発明による REQ/ACK プロトコルによって拡張される。このように
することで所期のように個々のPAEのレジスタ内容を、1つまたは複数の別の
PAEからまたはCTから呼び出すことができる。この場合、ループ(2305
)が少なくとも2つのグラフに分解され、すなわちデータフロー部分を成す第1
のグラフ(2301)と逐次的部分をマッピングする第2のグラフ(2302)
とに分解される。
【0152】 条件付きジャンプによってこれら両方のグラフの選択が行われる。特別なこと
は、2302は2301の内部状態について実行のために知っている必要があり
逆に2301は2302の状態について知っていなければならない。これは、状
態が正確に一度だけつまり実行されるデータフローグラフ(2301)における
PAEのレジスタに格納されるようようにして実現される。
【0153】 2302においてジャンプが行われると、シーケンサは必要に応じて個々のレ
ジスタの状態を PACT07 によるバスシステムを介して読み出す(2303)。シ
ーケンサは自身のオペレーションを実行し、変更されたすべての状態を(やはり
PACT07 によるバスシステムを介してレジスタに書き戻す(2304)。最後に
述べておくと、言及したグラフは必ずしも狭いループ(2305)でなくてもよ
い。この方法は一般にいかなるサブアルゴリズムにも適用することができ、これ
は1つのプログラムシーケンス内で何度も実行され(reentrant 再入可能)、選
択的に逐次的または並列に(データフロー的に)処理され、その際、逐次的部分
と並列部分との間で状態を転送する必要がある。
【0154】 ウェーブコンフィグレーションにより再コンフィグレーションの速度殊に簡単
な逐次的なオペレーションにおいて著しい利点が得られる。この処理手法の基本
的な特殊性とは、シーケンサを外部のマイクロプロセッサとしても構成できるこ
とである。つまりプロセッサはデータチャネルを介してアレイと接続されており
、ローカルな一時的なデータをバスシステムを介してアレイと交換する。PAE
から成るアレイには変換できないアルゴリズムの逐次的な部分全体はプロセッサ
上で展開される。この場合、3つのバスシステムを区別する必要がある。
【0155】 1.VPUとプロセッサとの間で処理を行うデータの交換をコントロールするデ
ータバス。
【0156】 2.VPUのレジスタに対するアクセスを可能にし、そのようにして2302と
2301との間のデータ交換(2302,2304)を保証するレジスタバス。
【0157】 3.VPUのアレイをコンフィグレーションするコンフィグレーションデータバ
ス。
【0158】 図24には効果が時間的に描かれている。一重のハッチングが施された面はデ
ータを処理するPAEを成しており、この場合、2401は再コンフィグレーシ
ョン後のPAEを表し、2403は再コンフィグレーション前のPAEを表す。
二重にハッチングされた面(2402)は、目下再コンフィグレーションされて
いるPAEまたは再コンフィグレーションを待っているPAEを表している。図
24aには、簡単な逐次的なアルゴリズムに対するウェーブ再コンフィグレーシ
ョンの作用が示されている。この場合、精確にPAEを再コンフィグレーション
することができ、それらに対し新たなタスクが割り当てられる。各クロックごと
に1つのPAEは新たなタスクを受け取るので、これは効率的につまり同時に実
行することができる。実例として描かれているのは、1つのVPUにおけるすべ
てのPAEのマトリックスから成る一連のPAEである。ここにはクロックt後
の複数のサイクルにおける状態が、それぞれ1つのクロック分遅延されて示され
ている。
【0159】 図24bには、大きい部分の再コンフィグレーションの時間的な作用が描かれ
ている。たとえばここには、1つのVPUの一群のPAEが描かれている。この
場合、クロックt後の複数のタイミングにおける状態がそれぞれ複数のクロック
による種々の遅延を伴って描かれている。まずはじめにPAEの小さい部分だけ
が再コンフィグレーションされるかまたは再コンフィグレーションを待っている
間、すべてのPAEが再コンフィグレーションされるまで、それらの面は時間が
経つにつれ大きくなる。面が大きくなっていくとは、再コンフィグレーションの
時間的な遅延によりどんどん多くのPAEが再コンフィグレーションを待つよう
になる(2402)、ということを意味する。これにより計算能力が失われてし
まう。したがって、CT(殊にCTのメモリ)とPAEとの間にいっそう広いバ
スシステムを使用することが提案され、そのようなバスによれば1つのクロック
内で複数のPAEを同時に再コンフィグレーションするのに十分なラインが提供
される。
【0160】 図25にはVPUテクノロジーのスケーリング性が描かれている。スケーリン
グ性は実質的に1つのグラフの引き延ばしにより引き起こされ、これは時間的な
順序により個々のサブアプリケーションが分離されることなく行われる。実例と
して図4のアルゴリズムが選択される。図25aの場合、個々のサブグラフは時
間的に相前後してVPUに伝送され、その際にB またはB がロードされる
。図25bの場合にはすべてのサブグラフが一群のVPUに伝送され、バスシス
テムによって互いに接続される。これにより再コンフィグレーションの悪影響を
伴わずに大きいデータ量を効率よく処理することができる。
【0161】 図26には、PAEの(再)コンフィグレーション時間を加速するための回路
が示されている。同時にこの回路は、逐次的なアルゴリズムの処理に使用するこ
とができる。PAEのアレイ(2605)は複数の部分(2603)に分割され
ている。各部分には(再)コンフィグレーションのための固有のユニット(26
02)が割り当てられている。それらのユニットの上位に従来技術(PACT10)に
よるCT(2601)が位置しており、これ自体はさらに別のCTまたはメモリ
に接続されている(2604)。CTはアルゴリズムをコンフィグレーションユ
ニット(2602)にロードする。2602は自主的にコンフィグレーションデ
ータをそれらに割り当てられたPAEにロードする。
【0162】 図27にはコンフィグレーションユニットの構造が描かれている。このユニッ
トのコアはシーケンサ(2701)であり、これは一連の命令を制御する。
【0163】 基本的な命令は以下の通りである; wait <trg#> アレイから次のコンフィグレーションをロードすべきことを表す所定のトリガ
が到来するのを待つ。
【0164】 lookup <trg#> 到来したトリガにより呼び出されるサブプログラムのアドレスを戻す。
【0165】 jmp <adr> アドレスへのジャンプ。
【0166】 call <adr> アドレスへのジャンプ。戻りアドレスはスタックに格納される。
【0167】 jmp <cond> <adr> アドレスへの条件付きジャンプ call <cond> <adr> アドレスへの条件付きジャンプ。戻りアドレスはスタックに格納される。
【0168】 ret スタックに格納された戻りアドレスへの戻りジャンプ。
【0169】 mov <target> <source> データ語をソースからターゲットへ伝送。ソースとターゲットはそれぞれメモ
リ内にあるものとすることもできるしあるいは周辺機器アドレスとしてもよい。
【0170】 基本的にこれらの命令は PACT10 つまりCTの説明により公知である。260
2のインプリメントにおける相違点は、データ管理のために非常に簡単な命令だ
けしか用いられず、マイクロコントローラ全体は用いられないことである。
【0171】 命令セットの重要な拡張は、PAEのコンフィグレーションのための "pabm"
命令である。この場合、2つの命令(pabmr, pabmm)を利用することができ、こ
れらは以下のように構成されている。
【0172】
【表1】
【0173】 これらの命令は、PAEアドレスとPAEデータの割り当てられたブロックを
メモリからPAEアレイへコピーする。<count>により、コピーすべきデータ
ブロックがどの程度の大きさであるのかが表される。データブロックは操作コー
ドにじかに添えられている(a)かまたは、第1のメモリアドレス<memref>の
内容により参照される(b)。
【0174】 paa_adr-pa_dta の行はPAEのためのコンフィグレーションを表して
いる。ここで pa_adr はアドレスであり、pa_dta はPAEのコンフィグ
レーションワードである。
【0175】 PACT10 により RDY/ACK-REJ プロトコルは公知である。PAEによりコンフィ
グレーションデータが受け入れられると、PAEは ACK により送信データを受
領確認する。これに対しPAEが再コンフィグレーション可能な状態にはなく、
PAEがコンフィグレーションデータを受け入れることができなければ、PAE
は REJ を送り戻す。これによりサブアルゴリズムのコンフィグレーションは失
敗に終わる。
【0176】 REJ により却下された pa_adr_pa_dta の行のロケーションが格納され
る。それらの命令はあとの時点で再度呼び出される(PACT10, FILMO 参照)。命
令が完全に処理されたならば、つまり REJ が発生しなかったのであれば、その
命令によってさらにコンフィグレーションが実行されるのではなく、コンフィグ
レーションがただちに終わらされる。REJ が発生したならば、命令は却下された
pa_adr_pa_dta の行のロケーションへダイレクトにジャンプする。命令
に応じて、そのロケーションはそれぞれ異なるように格納される: pabmr:アドレスは<regno>と呼ばれるレジスタに格納される。
【0177】 pabmm:アドレスはじかに命令中でメモリロケーション<offset>に格納される
【0178】 これらの命令はDMA構造により従来技術に従いメモリ/IO転送としてイン
プリメント可能である。DMAは詳しく扱った ACK/REJ を監視するためのロジ
ックによって拡張される。開始アドレスは<rengo>もしくは<offset>により
決定される。データブロックの最終アドレスは、命令のアドレス+その操作コー
ド長−1+ pa_adr_pa_dta 行の個数によって計算される。ここで有用で
あるのは、PACT10 に記載されている回路もを上述の命令によって拡張すること
である。
【0179】 図27にはユニット2602の構造が示されている。このユニットはレジスタ
セット2701から成り、これにはスタックオペレーションのための簡単なAL
Uが割り当てられている(2702)。この構造にはアドレスレジスタとスタッ
クポイントが含まれている。オプションとして完全なALUを用いることができ
る。最初の幅をもつバスシステム(2703)によりレジスタとALUが接続さ
れている。その際にこの幅は、簡単なコントロールフロー命令もしくは簡単なA
LUオペレーションを有効に表すことができるように選定されている。付加的に
、事前に記述される PABM 命令ならびにPPACT10 による命令がサポートされる。
レジスタとALUはシーケンサ2706により制御され、これは命令の実行によ
り完全なマイクロコントローラを成す。
【0180】 2703にはユニット2704が接続されており、これは割り当てられたPA
Eのトリガを受け取って受領確認し、場合によってはそこからトリガをPAEへ
送信する。この場合、到来するトリガによりシーケンサ2706においてインタ
ラプトがトリガされるかまたは WAIT 命令により問い合わせが行われる。オプシ
ョンとして2703にはデータをPAEへ送信できるようにする目的で、割り当
てられたPAEのデータバスに対するインタフェース(2705)が接続されて
いる。たとえば、PAEにインプリメントされているシーケンサのアセンブラコ
ードが2705を介して送信される。このインタフェースには必要であれば、種
々のバス幅を整合するためのコンバータが設けられている。ユニット2701〜
2706はマルチプレクサ/デマルチプレクサ(2707)を介して倍数の幅を
もつバスシステム(2708)と接続されており、これはメモリ(2709)へ
導かれている。2707はアドレス/スタックレジスタの下位アドレスによって
選択制御され、高位アドレスはそのままRAM(2711)へ導かれる。バスシ
ステム2708はインタフェース(2709)へ導かれ、これは PA 命令により
制御され、PAEのコンフィグレーションバスへ導かれる。2708は、270
9を介してクロック単位でできるかぎり多くのコンフィグレーションビットをP
AEに送信できるようにする目的で、意図的に広い幅に設計されている。さらに
別のインタフェース(2710)によりバスと上位のCTとが接続されており、
これはコンフィグレーションデータや制御データを2602と交換する。インタ
フェース2710と2709は PACT10, PACT?? において何度も説明されている
。ここで重要であるのは、2706は短縮されタスクに合わせて最適化された最
小命令セットを制御することであり、これは殊に PA 命令、ジャンプ、インタラ
プトならびにルックアップ命令に合わせて最適化されている。さらに最適化され
た幅の広いバスシステム2708が設けられており、これは2707を介して幅
の狭いバスシステムに移行され、ユニットの再コンフィグレーション速度にとっ
てきわめて重要なものとなる。
【0181】 図27aは図27の特別な実施形態である。インタフェース2705は、PA
Eアレイ中でコンフィグレーションされたシーケンサへアセンブラコードを伝送
するために用いられる。シーケンサの処理能力は実質的に、インタフェース27
05ならびにそのメモリアクセスの速度に左右される。図27aによれば270
5は、ダイレクトなメモリアクセスを行うDMA機能部(2720)に置き換
えられている。2720 は固有のメモリアクセスを実行し、バス幅の相応の
整合部(2721)を備えた固有のバスシステム(2722)を有している
。この場合、バスは幅の広い命令シーケンス(ULIW)をロードするために比
較的幅広くすることができ、その結果、極端な事例としては2721 が完全
に省略されるようになる。ここでは速度をさらに向上させるために、メモリ27
11を物理的に2711aと2711b とに分離した。2711aと271
1b についてのアドレス空間は直線的なままであるけれども、2701と2
702と2706から両方のメモリブロックに互いに無関係に同時にアクセスす
ることができる。その際、2720 は2711b にだけしかアクセスでき
ない。2720,2721 および2711b は何重にも(n)インプリ
メントすることができ、それにより複数のシーケンサを同時に管理することがで
きる。この目的で2711b をもう一度、物理的に依存しない複数のメモリ
領域に分割することができる。図38aには、2720 のためのインプリメ
ントの実例が示されている。
【0182】 図28には複合的なプログラムの構造が描かれている。これらのプログラムの
ベースモジュールは複合コンフィグレーション(2801)であり、これには1
つまたは複数のPAEのコンフィグレーションならびにそれに属するバスやトリ
ガのコンフィグレーションが含まれている。2801は操作コード(2802)
により表され、これは付加的なパラメータ(2803)を有することができる。
これらのパラメータには一定のデータ値や可変の初期値を含ませることもできる
し、あるいは特別なコンフィグレーションを含ませてもよい。この場合、機能に
応じて1つまたは複数のパラメータが存在したり、あるいはパラメータが存在し
なかったりもする。複数の操作コードは複合コンフィグレーションから成る1つ
の共通のセットにアクセスし、それにより操作コードグループ(2805)を形
成する。1つのグループにおける様々な操作コードは、複合コンフィグレーショ
ンの特別な実施形態によって区別される。この目的で細分化部(2807)が用
いられ、これは付加的なコンフィグレーションワードを有するかまたは2801
に到来するコンフィグレーションワードを上書きする。
【0183】 複合コンフィグレーションは細分化部が必要とされないかぎりは操作コードか
らじかに呼び出される(2806)。1つのプログラム(2804)は操作コー
ドのシーケンスと個々のパラメータとから成る。複合機能を一度アレイにロード
することができ、その後、種々のパラメータまたは細分化によって新たにコンフ
ィグレーションしなおすことができる。この場合、コンフィグレーションにおい
て変化する部分だけが再コンフィグレーションされる。種々の操作コードグルー
プは種々の複合コンフィグレーションをアクセスする(2805a〜2805n
)。様々な平面(複合コンフィグレーション、細分化、操作コード、プログラム
)はCTの様々な平面において処理される(PACT10 におけるCTハイアラーキ
参照)。種々の平面は2810に描かれており、この場合、1は最も低い平面で
ありNは最も高い平面を表す。CTは任意の深さのハイアラーキとして構成でき
る(PACT10 参照)。
【0184】 2801では2種類のコードが区別される: 1.アルゴリズムをPAEからアレイへマッピングするコンフィグレーションワ
ード。その際、このアルゴリズムをシーケンサとして構成することもできる。コ
ンフィグレーションはインタフェース2709を介して行われる。コンフィグレ
ーションワードはハードウェアによって定義される。
【0185】 2.シーケンサまたはアルゴリズムの可能な形態に依存するアルゴリズム固有の
コード。これらのコードはプログラマまたはコンパイラにより定義され、アルゴ
リズムを制御するために用いられる。たとえばZ80がシーケンサとしてPAE
にコンフィグレーションされているならば、それらのコードはZ80マイクロプ
ロセッサの操作コードを表す。アルゴリズム固有のコードは2705を介してア
レイからPAEへ送信される。
【0186】 図29にはPAEの可能な基本構造が描かれている。2901もしくは290
2は、データの入力レジスタもしくは出力レジスタを成している。これらのレジ
スタにはアレイのデータバス(2920,2921)が割り当てられている(PA
CT02参照)。PACT08 によるトリガラインは2903によりトリガバス(292
2)から取り出され、2904によってトリガバス(2923)につながれる。
2901と202との間には任意の形態のALU(2905)が接続されている
。データバス(2906,2907)とALUにはレジスタ(2915)が割り
当てられており、その中には局所データが格納される。データバスおよびトリガ
バスの RDY/ACK 同期信号は状態機械(またはシーケンサ)(2910)に供給
されるか(2908)、もしくはユニットにより生成される(2909)。
【0187】 インタフェースユニット(2911)を介してCTはバスシステム(2912
)により選択的に複数のコンフィグレーションレジスタ(2913)をアクセス
する。2910はマルチプレクサ(2914)を介してそれぞれ特定のコンフィ
グレーションを選択するかまたは、複数のコンフィグレーションワードを連続さ
せ、それらのコンフィグレーションワードがシーケンサに対する命令を成す。V
PUテクノロジーは主としてパイプライン処理を行うので、グループ2901と
2903またはグループ2902と2904に、あるいは両方のグループに付加
的にFIFOを設けると有利である。これによって、パイプラインが簡単な遅延
により(たとえば同期において)停滞してしまうのを避けることができる。
【0188】 2920はオプションとしてのバスの入口であり、これを介してCTのメモリ
(図27,2720参照)または慣用のメモリをコンフィグレーションレジスタ
の個所でシーケンサ2910に接続することができる。このようにして大きい逐
次的なプログラムをPAEにおいて実行することができる。マルチプレクサ29
14は、それが内部メモリだけを接続するよう結線される。その際、アドレスは
、 a)CTメモリに対しては図38における回路により生成される。
【0189】 b)内部メモリに対してはじかに2910により生成される。
【0190】 図30には、CTまたは他の付加接続されたマイクロプロセッサがデータレジ
スタへのアクセスをできるようにする目的でPAEを実現可能に拡張する様子が
示されている。アドレス空間およびバスユニットのインタフェース(かつての2
911,3003)は、付加的なデータバス(3001)によって拡張される。
個々のレジスタにはマルチプレクサ(3002)が前置接続されており、これに
よって3003はバス3001を介してデータをレジスタに書き込むことができ
る。レジスタの出力側は3001を介して3003にフィードバックされる。3
003はデータをCT2912へ伝送する。データをCTへ伝送する(3003
a)代わりに、付加的なインタフェース(3004)によってCTとは無関係な
バス(3005)へデータを伝送することができる。
【0191】 図31には、PAEのアレイ(3101)と上位のマイクロコントローラとの
結合の様子が示されている。3101には本発明のメモリによるすべてのIOチ
ャネルが含まれている。このアーキテクチャは図23に従い動作する。図31a
の2912は、図30によるコンフィグレーションデータとレジスタデータのた
めのバスを使用することができる。このデータバスは別個に3104により表さ
れている。3102はCTを表しており、これは図31a中ではマイクロプロセ
ッサも成している。
【0192】 すべてのバスシステムに対し互いに無関係に、プロセッサに対する以下の接続
モデルが設けられており、それらのモデルはプログラミングモデルに従い価格と
性能の吟味によって選択される: 1.レジスタモデル Register-Model レジスタモデルの場合、個々のバスはレジスタを介して呼び出され、このレジ
スタはプロセッサのレジスタセット内にダイレクトに統合されていて、レジスタ
またはレジスタグループとしてアセンブラからコールされる。データ交換のため
にいくつかの僅かなレジスタで十分であれば、このモデルは最も効率的である。
【0193】 2.IOモデル IO-Model 個々のバスはプロセッサのIO領域に位置する。これは少なくとも最も簡単化
かつコスト的に有利な変形形態である。
【0194】 3.共有メモリモデル Shared-Memory-Model プロセッサと個々のバスはデータメモリ内の1つのメモリ領域を分け合う。デ
ータ量が多いときに性能のよい1つの解決策である。
【0195】 4.共有メモリDMAモデル Shared-Memory-DMA-Model 上述のモデルのようにプロセッサとバスは同じメモリを分け合う。さらに速度
を高めるため高速なDMAが存在し(図38参照)、これはバストメモリとの間
のデータ交換を担う。
【0196】 伝送速度を高めるため、個々のメモリを他のメモリから物理的に分離できるよ
うにすべきであり(複数のメモリバンク)、これによってプロセッサとVPUは
独立してそのメモリにアクセスできるようになる。
【0197】 図31bの場合、CT(3102)はアレイのコンフィグレーションを担う一
方、専用のプロセッサ(3103)は3006を介して図23によるプログラミ
ングモデルを保証し、これによればそのプロセッサは3006を介してレジスタ
データをアレイと交換し、3104を介して慣用のデータを交換する。図31c
/dは図31a/bに対応するが、データ交換のために個々のプロセッサと31
01との間で共有メモリ(3105)が選ばれた。
【0198】 図32に示されている回路によれば、本発明による複数のメモリ素子が1つの
メモリまたは1つのメモリグループに対し共通にアクセスできるようになり、そ
の際、グループの個々のメモリ各々を個別に一義的にアドレッシングすることが
できる。この目的で個々のメモリ素子(3201)は1つのバスシステムに接続
され、そこにおいて各メモリ素子3201は1つの固有のバスを有している。こ
のバスは双方向に構成することもできるし、または2つの一方向バスによって実
現してもよい。メモリごとに1つのアドレス/データマルチプレクサが存在して
おり、これはバスをメモリに接続する。この目的で各バスに到来するアドレスが
デコーディングされ(3207)、その後、単位時間あたりそれぞれ1つのバス
がアービタ(3208)によって選択される(3204)。相応のデータとアド
レスは個々のメモリバス(3205a)へ伝送され、その際、状態機械(320
6)は必要とされるプロトコルを発生する。読み出し要求にあたりデータがメモ
リから到来すると、個々の状態機械はデータを呼び出したメモリのアドレスをバ
スへ供給する。関与するすべてのバスのアドレスはバスシステム3202のバス
ごとにマルチプレクサユニットにより評価され、対応するバスへ伝送される。こ
の評価は出力データの評価に従って行われ、つまり入力バス(3205b)ごと
にデコーダ(3209)は信号をアービタ(3210)に導き、アービタはデー
タマルチプレクサを制御する。これにより単位時間あたりに種々の入力バスがバ
スシステム3202へ導かれる。
【0199】 図33によれば、トリガ信号および RDY/ACK信号をいっそうフレキシブルで簡
単に評価するために固定的な状態機械/固定的なシーケンサ2910が任意にプ
ログラミング可能なもの(3301)に置き換えられる。3301の機能全体は
、CTによるアルゴリズム実行前にコンフィグレーションレジスタ2913によ
って決定される。3301のロードは、2911に対し3301の管理という点
で拡張されたCTインタフェース(3302)により制御される。3301の利
点は、固定的にインプリメントされた2910よりも非常にフレキシブルに種々
のトリガ信号および RDY/ACK 信号を扱えることである。欠点は、3301のサ
イズが影響をもたらすことである。
【0200】 是認できるサイズにおいて最も高いフレキシビリティを生じさせる妥協は、ト
リガと RDY/ACK 信号を3301によるユニットにより評価し、PAEによる固
定的なシーケンス全体を2910による固定的にインプリメントされたユニット
により制御することである。
【0201】 図34には論理的な機能を処理するための本発明によるPAEが描かれている
。このユニットのコアは、個々の信号(3401)を結合するためのあとで詳し
く説明するユニットである。残りのレジスタ2901,2902,2903,2
904を介してバス信号が3401と接続される。この目的でレジスタはフィー
ドモードの点で拡張され、これは個々の信号をそれらをクロック同期で格納する
ことなく(レジスタ)バスと3401との間で選択的に交換する。マルチプレク
サ(3402)とコンフィグレーションレジスタ(3403)は3401の種々
のコンフィグレーションに整合される。同様にCTインタフェースm(3404
)が相応に構成されている。
【0202】 図35には3401の実現可能な実施形態が示されている。グローバルなデー
タバスによりロジックセル3501と3502がレジスタ2901,2902,
2903,2904と接続される。マルチプレクサ、ゲート、転送ゲートまたは
簡単なトランジスタとして構成することのできるバススイッチにより、3504
はロジックセルと接続される。ロジックセルは完全に一体的に構成することもで
きるし、あるいは種々の機能部を有することもできる(3501,3502)。
3503はRAMメモリを成している。
【0203】 ロジックセルの可能な形態は以下の通りである: −ルックアップテーブル −ロジック −マルチプレクサ −レジスタ これらの機能の選択やネットワーク化はSRAMセルによりフレキシブルにプ
ログラミング可能に行うことができるし、あるいは変更されないROMまたはセ
ミスタティックなフラッシュROMメモリによって行ってもよい。
【0204】 うまく並列化できない逐次的なアルゴリズムを加速するため、慣用のプロセッ
サにおいて投機的実行を行うことはすでに従来技術である。図36にはVPUの
ための並列的な変形形態が描かれている。オペランド(3601)は同時に複数
の可能なサブアルゴリズム経路(3602a,3602b,3602c)へ導か
れる。その際、これらのサブアルゴリズムはそれぞれ異なる所要面積や所要時間
をもつ可能性がある。それぞれサブアルゴリズムに応じてデータが本発明に従い
格納されてから(3612a,3612b,3612c)、それらは再コンフィ
グレーション後に次のサブアルゴリズムにより処理される(3603)。個々の
サブアルゴリズムの再コンフィグレーション時点は互いに依存せず、また、サブ
アルゴリズム(3603,3614)自体の個数も互いに依存しない。どの経路
を選択すべきであるのかを決定可能であればただちに、それらの経路はバスまた
はマルチプレクサを介していっしょに案内される(3605)。所定の条件によ
り生成されるトリガ信号(PACT08 参照)(3606)により、どの経路が選択
されて次のアルゴリズムへ転送されるのかが決まる。
【0205】 図37には高級言語コンパイラの構造が示されており、これは慣用の逐次的な
高級言語(C, Pascal, Java)をVPUシステムに変換する。逐次的なコード(
3711)は並列的なコード(3708)から分離され、これにより3708は
PAEのアレイ内でダイレクトに処理される。
【0206】 3711のために3つの実施形態がある: 1.PAE(2910)のシーケンサ内部 2.VPUにコンフィグレーションされるシーケンサを用いる。このためにコン
パイラはタスクに最適なシーケンサを生成するとともに、アルゴリズム固有のシ
ーケンサコード(2801参照)をダイレクトに生成する。
【0207】 3.慣用の外部のプロセッサ(3103)上。
【0208】 どの実施形態を選択するのかはVPUのアーキテクチャ、コンピュータシステム
およびアルゴリズムに依存する。
【0209】 コード(3701)はまずはじめにプリプロセッサ(3702)においてデー
タフローコード(3716)(個々のプログラミング言語の特別バージョンで書
かれたもの)と慣用の逐次的コード(3717)とに分離される。3717は並
列化可能なサブアルゴリズムについて調べられ(3703)、逐次的なサブアル
ゴリズムは分離除去される(3718)。並列化可能なサブアルゴリズムはマク
ロとして暫定的に配置されてルーティングされる。反復的なプロセスにおいて、
そのマクロはデータフロー最適化されたコード(3713)といっしょに配置さ
れルーティングされ分割される(3705)。スタティスティック(3706)
は個々のマクロならびにその分割を効率の点で評価し、その際に再コンフィグレ
ーション時間や再コンフィグレーションのコストが効率の考察に取り込まれる。
非効率的なマクロは取り除かれ、逐次的なコードとして分離除去される(371
4)。残った並列的なコード(3715)は3716といっしょにコンパイルさ
れアセンブルされて(3707)、VPUオブジェクトコードが出力される(3
708)。生成されたコードや個々のコード(および3714により取り除かれ
たマクロ)の効率に関するスタティスティックが出力され(3709)、それに
よりプログラマはプログラムの速度最適化に関する基本的な指示を受け取る。
【0210】 残された逐次的なコードの各マクロはその複合性や要求について調べられる(
3720)。VPUアーキテクチャやコンピュータシステムに依存するデータベ
ースから(3719)それぞれ適切なシーケンサが選択され、VPUコード(3
721)として出力される。コンパイラ(3721)は、そのつどシーケンサ3
720により選択されたシーケンサのための個々のマクロのアセンブラコードを
生成し、それを送出する(3711)。3710と3720は互いに密に結合さ
れている。必要に応じてこの処理は、最小かつ最高速のアセンブラコードをもつ
最も適切なシーケンサを見つける目的で反復的に実行される。リンカ(3722
)はアセンブラコード(3708,3711,3721)をまとめ、実行可能な
オブジェクトコード(3723)を生成する。
【0211】 図38には2720の内部構造が示されている。回路のコアはロード可能なア
ップダウンカウンタ(3801)であり、これはその初期値を図27の回路によ
りバス3803(2703に対応)から相応にセットされたマルチプレクサ38
02を介して受け取る。カウンタは割り当てられたシーケンサのためのプログラ
ムカウンタ(PC)として用いられ、初期値は実行すべきプログラムの最初のア
ドレスである。3801の値は加算器(3805)と3802を介してカウンタ
にフィードバックされる。バス3804を介してシーケンサから3805にオフ
セットが供給され、これはPCから差し引かれるかまたは加算される。このよう
にして相対的なジャンプを効率的にインプリメントすることができる。PCはバ
ス3811を介してPAEアレイに導かれ、call オペレーションのためにスタ
ックに格納することができる。ret オペレーションのためにPCは3804と3
802を介してスタックから3801へ導かれる。マルチプレクサ3806を介
してPCまたはPAEアレイから導かれるスタックポインタ(3807)は加算
器(3808)へ導かれる。この場合、オフセットが値から減算されるかまたは
それに加算され、これはレジスタ3809に格納され、3803に書き込まれる
。3808によりメモリ2711内のプログラムのシフトが可能となる。そして
これにより、メモリを整理するためのガーベジコレクタ機能が可能となる(PACT
10 参照)。ガーベジコレクタにより発生するアドレスシフトは、3809にお
けるオフセットの整合により補償される。
【0212】 図38aには図38の変形実施例が示されており、この場合もスタックポイン
タ(3820)が統合されている。3804を介して、相対ジャンプのためのオ
フセットだけが3805へ導かれる(3804a)。スタックポインタは380
1に従いアップダウンカウンタであり、その初期値はスタックの先頭を表し、3
803を介してロードされる。PCはダイレクトにデータバスを介してメモリへ
導かれ、これにより call オペレーションにあたりマルチプレクサを介してスタ
ックに書き込むことができる。ret オペレーション実行のため、メモリのデータ
バスは3821および3802を介して3801にフィードバックされる。
【0213】 図39にはメモリの動作が描かれている。メモリ(3901)はマルチプレク
サ(3902)を介してアドレッシングされる。スタンダードモード、ルックア
ップモードならびにレジスタモードにおいてアドレスがアレイ(3903)から
ダイレクトに3901に導かれる。スタックモードとFIFOモードではアップ
ダウンカウンタ(3904)においてアドレスが生成される。この場合、IO側
のアドレスは別のアップダウンカウンタ(3905)によって供給される。外部
のRAM(またはIO)のためのアドレスはさらに別のアップダウンカウンタ(
3906)により生成され、ベースアドレスはレジスタ(3907)からロード
される。レジスタはCTまたは外部のホストプロセッサによりセットされる。こ
の制御全体を状態機械(3908)が担う。メモリの状態(満杯、空、半分など
)を3908はアップダウンカウンタ(3909)から取り出し、このアップダ
ウンカウンタはメモリ内にあるワードの個数を計数する。メモリがブロックごと
に変えられる(スタックを外部のスタックに書き込むかまたは外部のスタックか
ら読み出す)場合、ブロックのサイズは定数として加算器/減算器(3910)
へ与えられ、これに対し3909から計数状態がフィードバックされている。そ
の結果は3909へロードされる。これによって計数状態を迅速にブロックごと
に変更に整合させることができる(当然ながらブロックオペレーションにおいて
書き込まれたまたは読み出された各ワードによってもカウンタを修正することが
できる)。キャッシュオペレーションのために従来技術によるキャッシュコント
ローラ(3911)を使用することができ、これにはタグ(Tag)メモリ(39
12)が対応づけられている。動作形式に従い3911または3906からの値
がマルチプレクサ(3913)を介してアドレスとして外部へ導かれる(391
4)。バス3915を介してデータが外部へ導かれ、バス3916を介してデー
タがアレイと交換される。
【0214】 サブアルゴリズムを明らかにするためのプログラミングの実例 あるモジュールをたとえば以下のように宣言することができる: module example1 input (var1, var2 : ty; var3 : ty) . output (res1, res2 : ty) . begin . . . register <regname1> (res1) . register <regname2> (res2) . terminate@ (res1 & res2; 1) . end. module によりあるモジュールの開始が表される。
【0215】 input/output により ty の型をもつ入出力変数が定義される。
【0216】 begin . . . end によりモジュールのボディが表される。
【0217】 register <regname1/2> により結果が出力に渡される。ここで結果は <regna
me1/2> により指定されたレジスタにバッファリングされる。その際、<regnam
e1/2> は特定のレジスタへのグローバルな参照である。
【0218】 出力への別の引き渡しモードとしてたとえば以下のメモリ形式を使用できる: fifo <fifoname> この場合、データはFIFO方式で動作するメモリへ渡さ
れる。ここで <fifoname> は、FIFOモードで動作する特定のメモリへのグ
ローバルな参照である。その際、terminate@ はパラメータもしくは信号 "fifof
ull" の点で拡張され、これはメモリが満杯であることを指示する。
【0219】 stack <stackname> この場合、データはスタック方式で動作するメモリへ渡
される。ここで <stackname> はスタックモードで動作する特定のメモリへの
グローバルな参照である。
【0220】 terminate@ により、本発明による方法に従ったプログラミングが慣用の逐次
的なプログラミングと区別される。この命令によりモジュールの中断基準が定義
される。結果変数 res1 および res2 は terminate@ によってその実際の値で評
価されるのではなく、その代わりに変数の有効性(つまりそれらのステータス信
号)だけがチェックされる。この目的で両方の信号 res1 および res2 がブール
代数により互いに結合され、たとえばAND演算、OR演算またはXOR演算に
より結合される。両方の変数が有効であるならば、モジュールは値1で終了する
。このことは、値1をもつ信号が上位のロードユニットに転送され、それに基づ
きその上位のロードユニットが後続のモジュールをロードすることを意味する。
【0221】 module example2 input (var1, var2 : ty; var3 : ty) . output (res1: ty) . begin register <regname1> (var1, var2) . . . . fifo <fifoname1> (res1, 256) . terminate@ (fifofull (<fifoname1>) ; 1). end. register はこの実例では入力データによって定義される。ここで <regname
> は example1 と同じである。これにより、example1 における出力データを受
け取るレジスタは exmaple2 のための入力データを供給するようになる。
【0222】 fifo により、出力データ res1 のための深さ256をもつFIFOメモリが
定義される。FIFOメモリの満杯フラグ(fifofull)が、terminated@ におい
て中断基準として利用される。
【0223】 module main input (in1, in2 : ty; in3 : ty) . output (out1 : ty) . begin define <regname1> : register (234) . define <regname2> : register (26) . define <fifoname1> : fifo(256, 4) . // FIFO 深さ256 . . . (var12, var72) = call example1 (in1, in2, in3) . . . . (out1) = call example2 (var12, var72, var243) . . . . signal (out1) . terminate@ (example2) . end. define によりデータのためのインタフェースが定義される(レジスタ、メモ
リ等)。定義にあたり必要とされるリソースならびにインタフェースの名称が記
される。リソースはそのつど1回しか利用できないので、それらを一義的に記さ
れなければならない。したがって定義はグローバルであり、つまりその名称はプ
ログラム全体に対し有効となる。
【0224】 call によりモジュールがサブプログラムとして呼び出される。
【0225】 signal により、バッファリングが用いられることなく出力信号として1つの
信号が定義される。
【0226】 terminate@ (example2)により、サブプログラム example2 が終了するとただ
ちにモジュール main が終わらされる。
【0227】 グローバルな宣言 "define . . ." により基本的に、そのようにして定義され
た入出力信号をモジュールのインタフェース宣言にもはや取り込む必要がなくな
る。
【図面の簡単な説明】
【図1】 従来技術を示す図である。
【図2】 従来技術を示す図である。
【図3】 従来技術を示す図である。
【図4】 本発明による方法の基本特性を示す図である。
【図5】 任意のグラフ集合および空間配置から選択的にグラフBの集合から成るグラフ
を呼び出すモデルを示す図である。
【図6】 種々のループを示す図である。
【図7】 再帰のインプリメントについて示す図である。
【図8】 従来技術を示す図である。
【図9】 従来技術を示す図である。
【図10】 コンフィグレーションレジスタセットを示す図である。
【図11】 図10の方法をシーケンサに拡張した図である。
【図12】 VPU内でシーケンサを構築するための方法を示す図である。
【図13】 ウェーブ再コンフィグレーションの基本原理を示す図である。
【図14】 バーチャルマシンモデルを示す図である。
【図15】 処理グラフからサブアプリケーションを抽出する様子を示す図である。
【図16】 スタックプロセッサの構造を示す図である。
【図17】 レジスタプロセッサの構造を示す図である。
【図18】 複合的なマシンを示す図である。
【図19】 本発明による内部メモリを示す図である。
【図20】 本発明による内部メモリを示す図である。
【図21】 本発明による内部メモリを示す図である。
【図22】 グラフの再ソートの実例を示す図である。
【図23】 図4〜図7の特別な事例を示す図である。
【図24】 効果を時間的に描いた図である。
【図25】 VPUテクノロジーのスケーリング性を示す図である。
【図26】 PAEのコンフィグレーション時間を加速するための回路を示す図である。
【図27】 コンフィグレーションユニットの構造を示す図である。
【図28】 複合的なプログラムの構造を示す図である。
【図29】 PAEの基本構造を示す図である。
【図30】 PAEの拡張例を示す図である。
【図31】 PAEのアレイと上位のマイクロコントローラとの結合の様子を示す図である
【図32】 本発明による複数のメモリ素子を1つのメモリまたは1つのメモリグループに
対し共通にアクセスできるようにする回路を示す図である。
【図33】 固定的な状態機械/固定的なシーケンサ2910を任意にプログラミング可能
なものに置き換える様子を示す図である。
【図34】 論理的な機能を処理するための本発明によるPAEを示す図である。
【図35】 3401の実現可能な実施形態を示す図である。
【図36】 VPUのための並列的な変形形態を示す図である。
【図37】 高級言語コンパイラの構造を示す図である。
【図38】 2720の内部構造を示す図である。
【図39】 メモリの動作を示す図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成13年9月13日(2001.9.13)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】請求項1
【補正方法】変更
【補正の内容】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】請求項2
【補正方法】変更
【補正の内容】
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】請求項3
【補正方法】変更
【補正の内容】
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】請求項4
【補正方法】変更
【補正の内容】
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】請求項5
【補正方法】変更
【補正の内容】
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】請求項6
【補正方法】変更
【補正の内容】
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】請求項7
【補正方法】変更
【補正の内容】
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】請求項8
【補正方法】変更
【補正の内容】
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】請求項9
【補正方法】変更
【補正の内容】
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】請求項10
【補正方法】変更
【補正の内容】
【手続補正11】
【補正対象書類名】明細書
【補正対象項目名】請求項11
【補正方法】変更
【補正の内容】
【手続補正12】
【補正対象書類名】明細書
【補正対象項目名】請求項12
【補正方法】変更
【補正の内容】
【手続補正13】
【補正対象書類名】明細書
【補正対象項目名】請求項13
【補正方法】変更
【補正の内容】
【手続補正14】
【補正対象書類名】明細書
【補正対象項目名】請求項14
【補正方法】変更
【補正の内容】
【手続補正15】
【補正対象書類名】明細書
【補正対象項目名】請求項15
【補正方法】変更
【補正の内容】
【手続補正16】
【補正対象書類名】明細書
【補正対象項目名】請求項16
【補正方法】変更
【補正の内容】
【請求項16】 1つの命令における複数の経路を分解して各経路により1
つのサブグラフを生じさせ、前記命令の評価(IF, CASE)に従い前記複数の経路
のうち常に必ず1つを実行する、請求項1から15のいずれか1項記載の方法。
【手続補正書】
【提出日】平成13年12月19日(2001.12.19)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項36】 シーケンサのために残りのサブグラフをそれらの個々の構
成に従いコンフィグレーションする、請求項30から34のいずれか1項記載の
方法。
【請求項37】 シーケンサのために残りのサブグラフをそれらの個々の構
成に従い再コンフィグレーションする、請求項30から36のいずれか1項記載
の方法。
【請求項38】 シーケンサのためにCISCモデルに対応する標準計算機
構をコンフィグレーションする、請求項30から34のいずれか1項記載の方法
【請求項39】 コンパイラにより標準計算機構を制御する命令を生成し、
それにより複数のサブグラフを1つの標準計算機構に変換する、請求項30から
34または38のいずれか1項記載の方法。
【請求項40】 コンパイラにより前記標準計算機構の外部ネットワーク化
のための命令を生成し、それにより複数のサブグラフを1つの標準計算機構に変
換する、請求項30から34または請求項38または39のいずれか1項記載の
方法。
【請求項41】 コンパイラにより標準計算機能の内部ネットワーク化のた
めの命令を生成し、それにより複数のサブグラフを1つの計算機構に変換する、
請求項30から34または請求項38または39のいずれか1項記載の方法。
【請求項42】 命令を周期的にプログラムカウンタにより決定してロード
する、請求項30から34または請求項38から41のいずれか1項記載の方法
【請求項43】 シーケンサはそのオペランドをスタックにおいて管理しス
タックプロセッサとして動作する、請求項30から34のいずれか1項記載の方
法。
【請求項44】 シーケンサはそのオペランドを累算器において管理し累算
器プロセッサとして動作する、請求項30から34のいずれか1項記載の方法。
【請求項45】 シーケンサはそのオペランドをレジスタにおいて管理しレ
ジスタプロセッサとして動作する、請求項30から34のいずれか1項記載の方
法。
【請求項46】 シーケンサはそのオペランドをメモリにおいて管理しロー
ド/ストアプロセッサとして動作する、請求項30から34のいずれか1項記載
の方法。
【請求項47】 シーケンサはプログラムの実行に適した種々の方法を同時
にインプリメントする、請求項30から34または請求項43から46のいずれ
か1項記載の方法。
【請求項48】 それぞれ異なるように形成された複数のシーケンサを同時
にセル構造にコンフィグレーションする、請求項30から34または請求項43 から47のいずれか1項記載の方法。
【請求項49】 1次元または多次元のセル構造をもつコンポーネントのプ
ログラミング方法において、 プログラム中に現れるポインタをソートして、できるかぎり大きい時間的非依
存性をそれらのポインタにもたせ、ポインタに依存しないできるかぎり多くの命
令を2つのポインタの間に配置することを特徴とする方法。
【請求項50】 1次元または多次元のセル構造をもつコンポーネントのプ
ログラミング方法において、 プログラム中に現れるポインタをソートして、それらのポインタにより参照さ
れるデータをポインタ計算後できるかぎりあとで使わせることを特徴とする方法
【請求項51】 1次元または多次元のセル構造をもつコンポーネントのプ
ログラミング方法において、 ジャンプおよび比較にあたりすべての可能なサブグラフを、ジャンプまたは比
較により選ばれたサブグラフがどれであるのかが既知となるまで、同時にセル構
造にコンフィグレーションし計算することを特徴とする方法。
【請求項52】 選択されていないすべてのサブグラフのデータおよび状態
を無視し、選択されているサブグラフのデータおよび状態だけを引き続き処理す
る、請求項51記載の方法。
【請求項53】 1次元または多次元のセル構造をもつコンポーネントのプ
ログラミング方法において、 セル構造に1つまたは複数のメモリを割り当てることを特徴とする方法。
【請求項54】 前記メモリをランダムに任意にアドレッシングする(Rand
om Access)、請求項53記載の方法。
【請求項55】 前記メモリをルックアップテーブルとして使用する、請求
53記載の方法。
【請求項56】 データ流を分離するための前記メモリをFIFOとして使
用する、請求項53記載の方法。
【請求項57】 前記メモリをシーケンサのためのスタックとして使用する
、請求項53記載の方法。
【請求項58】 前記メモリをシーケンサのためのレジスタバンクとして使
用する、請求項53記載の方法。
【請求項59】 前記メモリは外部記憶装置の1つのセクションを成してい
る、請求項53から55または請求項57または58のいずれか1項記載の方法
【請求項60】 前記メモリは外部記憶装置のためのキャッシュとして動作
する、請求項53または54記載の方法。
【請求項61】 前記メモリにセル構造から外部記憶装置への信号を書き込
む、請求項53記載の方法。
【請求項62】 前記メモリに上位のロードユニットから外部記憶装置への
信号を書き込む、請求項53記載の方法。
【請求項63】 セル構造からの上位のロードユニットの信号を前記メモリ
から読み出す、請求項53記載の方法。
【請求項64】 外部記憶装置からの上位のロードユニットの信号を前記メ
モリから読み出す、請求項53記載の方法。
【請求項65】 外部記憶装置における前記ベースアドレスをセル構造によ
り任意にセットする、請求項53または請求項61から64のいずれか1項記載
の方法。
【請求項66】 外部記憶装置における前記ベースアドレスを上位のロード
ユニットにより任意にセットする、請求項53または請求項61から64のいず
れか1項記載の方法。
【請求項67】 外部記憶装置におけるベースアドレスを外部のユニットに
より任意にセットする、請求項53または請求項61から64のいずれか1項記
載の方法。
【請求項68】 外部記憶装置へのレジスタバンクの書き込みおよび外部記
憶装置からのレジスタバンクの読み出しにより、あるサブグラフから別のサブグ
ラフへの切り替え(Push/Pop によるコンテキストスイッチ)を実行する、請求
53、58または請求項61から67のいずれか1項記載の方法。
【請求項69】 前記スタックはメモリよりも大きく、該スタックの一部分
を外部記憶装置におく、請求項53または57記載の方法。
【請求項70】 1次元または多次元のセル構造のプログラミング方法にお
いて、 上位のロードユニットをハイアラーキ構造とすることを特徴とする方法。
【請求項71】 各ハイアラーキレベルにおいてコンフィグレーションプロ
グラムのそれぞれ異なる部分を格納しおよび/または処理する、請求項70記載
の方法。
【請求項72】 1次元または多次元のセル構造をもつコンポーネントのプ
ログラミング方法において、 上位のロードユニットはコンフィグレーションデータの高速な伝送のため幅の
広いメモリを有することを特徴とする方法。
【請求項73】 1次元または多次元のセル構造をもつコンポーネントのプ
ログラミング方法において、 メモリの幅を上位のロードユニットのシーケンサのためにマルチプレクサを介
して低減することを特徴とする方法。
【請求項74】 1次元または多次元のセル構造をもつコンポーネントのプ
ログラミング方法において、 上位のロードユニットはコンフィグレーションをブロックごとに伝送する命令
を有することを特徴とする方法。
【請求項75】 DMA方式に従いコンフィグレーションデータをブロック
ごとに伝送する命令をインプリメントする、請求項74記載の方法。
【請求項76】 コンフィグレーションデータのためのメモリに他のメモリ
とは無関係に同時にアクセスする、請求項74記載の方法。
【請求項77】 コンフィグレーションデータをブロックごとに伝送するた
めに複数のユニットを設ける、請求項74記載の方法。
【請求項78】 個々のユニットのコンフィグレーションデータのための複
数のメモリを互いに無関係に同時にアクセスする、請求項74または77記載の
方法。
【請求項79】 コンフィグレーション不可能なセルのコンフィグレーショ
ン時に命令を中止する、請求項74記載の方法。
【請求項80】 前記命令はコンフィグレーション不可能なセルのコンフィ
グレーションデータのアドレスを記憶する、請求項74または79記載の方法。
【請求項81】 前記命令は新たな実行にあたりコンフィグレーションされ
ていないセルのコンフィグレーションデータの個所で引き続き動作する、請求項 74、79または80 記載の方法。
【請求項82】 セルをコンフィグレーションできなかったときに前記命令
を再度実行する、請求項74、79から81のいずれか1項記載の方法。
【請求項83】 1次元または多次元のセル構造をもつコンポーネントのプ
ログラミング方法において、 上位のロードユニットはコンフィグレーションをその内部のメモリにロードし
てからそれを呼び出すことを特徴とする方法。
【請求項84】 前記ロードを命令により実行する、請求項83記載の方法
【請求項85】 前記ロードをステータス信号によりトリガする、請求項 記載の方法。
【請求項86】 1次元または多次元のセル構造をもつコンポーネントのプ
ログラミング方法において、 複数のコンフィグレーションをグループにまとめることを特徴とする方法。
【請求項87】 あるグループをその呼び出しにより変化させてパーソナル
化する、請求項86記載の方法。
【請求項88】 グループならびにそのパーソナル化をいっそう低いハイア
ラーキにおける上位のロードユニットに格納する、請求項86または87記載の
方法。
【請求項89】 グループの呼び出しをいっそう高いハイアラーキにおける
上位のロードユニットに格納する、請求項86から88のいずれか1項記載の方
法。
【請求項90】 複数の前記の呼び出しによってプログラムを構成する、請
求項86から89のいずれか1項記載の方法。
【請求項92】 1次元または多次元のセル構造をもつコンポーネントのプ
ログラミング方法において、 シーケンサの命令シーケンスを内部および/または外部の記憶装置に格納する
ことを特徴とする方法。
【請求項93】 1次元または多次元のセル構造をもつコンポーネントのプ
ログラミング方法において、 シーケンサの内部状態とデータ処理の状態とを区別することを特徴とする方法
【請求項94】 データ処理の状態をセル構造のデータといっしょに供給す
る、請求項93記載の方法。
【請求項95】 データ処理の状態をデータといっしょに保護する、請求項 93 または94記載の方法。
【請求項96】 データ処理の状態を記憶されているデータワードといっし
ょに保護する、請求項91から93のいずれか1項記載の方法。
【請求項97】 データ処理の状態を最後に格納されたデータワードいっし
ょに再コンフィグレーション前に保護する、請求項93から95のいずれか1項
記載の方法。
【請求項98】 1次元または多次元のセル構造をもつコンポーネントのプ
ログラミング方法において、 最後に処理されたオペランドのアドレスを再コンフィグレーション前に保護す
ることを特徴とする方法。
【請求項99】 最後のオペランドのデータ処理の状態を再コンフィグレー
ション前に保護する、請求項98記載の方法。
【請求項100】 シーケンサの内部状態は保護しない、請求項93記載の
方法。
【請求項101】 1次元または多次元のセル構造をもつコンポーネント用
のプログラムのコンパイル方法において、 4種類のコードを区別し、該コードは、 a)並列的なコード b)効率的に並列化可能なコード c)効率的に並列化できないコード d)逐次的なコード であることを特徴とする方法。
【請求項102】 並列的なコードを抽出する、請求項101記載の方法。
【請求項103】 抽出されたコードを配置してルーティングする、請求項 101 または102記載の方法。
【請求項104】 分割を反復的に配置しルーティングして実行する、請求
101から103のいずれか1項記載の方法。
【請求項105】 並列化可能なコードを抽出する、請求項101記載の方
法。
【請求項106】 抽出されたコードを配置してルーティングする、請求項 101 または105記載の方法。
【請求項107】 分割を反復的に配置しルーティングする、請求項101 または105から106 のいずれか1項記載の方法。
【請求項108】 各コードを効率の点で分析し、効率的に動作しないコー
ドを分離する、請求項101または請求項105から107のいずれか1項記載
の方法。
【請求項109】 どのコードが効率的でありどのコードが効率的でないか
の総計を作成し、いっそう効率的なプログラミングについての適切な指示をプロ
グラマに与える、請求項101または請求項105から108のいずれか1項記
載の方法。
【請求項110】 分離された逐次的なコードを分析し、個々のコードごと
に適切なシーケンサを選択し、ここで、 a)可能な一群のシーケンサをデータベースにまえもって設定し、 b)必要であれば1つのシーケンサ(プロセッサ)だけを提供する、 請求項101または108記載の方法。
【請求項111】 前記コードを選択された適切なシーケンサのためにコン
パイルする、請求項110記載の方法。
【請求項112】 シーケンサの選択およびコンパイルを反復的に実行し、
各コンパイルをその効率について分析し、コンパイルされたコードが最も効率的
であるシーケンサを選択する、請求項110または111記載の方法。
【請求項113】 コンパイルされたコードおよび分割されたコードをリン
カによってまとめ、必要とされる通信構造を挿入する、請求項101から113 のいずれか1項記載の方法。
【請求項114】 リンカは必要とするメモリを挿入する、請求項113
載の方法。
【請求項115】 リンカはセル構造の内部状態を保護する構造を挿入する
、請求項113または114記載の方法。
【請求項116】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 1つまたは複数のメモリをセル構造にダイレクトに接続することを特徴とする
方法。
【請求項117】 前記メモリにワードごとにアドレッシング可能にアクセ
スする、請求項116記載の方法。
【請求項118】 前記メモリはルックアップテーブルとして動作する、請
求項116記載の方法。
【請求項119】 前記メモリはシーケンサのためのスタックとして動作す
る、請求項116記載の方法。
【請求項120】 前記メモリはシーケンサのためのレジスタセットとして
動作する、請求項116記載の方法。
【請求項121】 前記メモリに周辺機器または外部記憶装置に対するイン
タフェースを割り当てるかまたは集積する、請求項116から120のいずれか
1項記載の方法。
【請求項122】 メモリはFIFO方式に従い動作し、それによりデータ
流をセル構造において外部データ流から分離する、請求項116または121
載の方法。
【請求項123】 前記メモリはセル構造と外部記憶装置との間のキャッシ
ュとして動作する、請求項116または121記載の方法。
【請求項124】 前記メモリはセルアレイ中にインプリメントされたシー
ケンサのためのコードを格納する、請求項116から123のいずれか1項記載
の方法。
【請求項125】 複数のメモリが1つの共通の周辺バスにアクセスする、
請求項116記載の方法。
【請求項126】 共通のバスごとに常に必ず1つのメモリをアービタが選
択し、該メモリをマルチプレクサを介してバスにつなげる、請求項116または 124 記載の方法。
【請求項127】 ステータス信号によってメモリの内容を外部記憶装置に
書き込ませる、請求項116記載の方法。
【請求項128】 ステータス信号によってメモリの内容を外部記憶装置か
ら読み出させる、請求項116記載の方法。
【請求項129】 外部記憶装置のベースアドレスをレジスタに格納する、
請求項116、127または128記載の方法。
【請求項130】 レジスタをセル構造によりセットする、請求項116
たは127から129のいずれか1項記載の方法。
【請求項131】 レジスタを上位のロードユニットによりセットする、請
求項116または127から129のいずれか1項記載の方法。
【請求項132】 レジスタを周辺機器によりセットする、請求項116
たは請求項127から129のいずれか1項記載の方法。
【請求項133】 スタックは可変のサイズをもち、外部記憶装置をスタッ
ク拡大のために使用する、請求項119記載の方法。
【請求項134】 スタックオーバーフローの前にスタックの最も古い部分
を外部記憶装置のスタックに書き込む、請求項119または133記載の方法。
【請求項135】 スタックアンダーフローの前に外部記憶装置におけるス
タックからスタックの最も新しい部分を読み出す、請求項119または133
載の方法。
【請求項136】 前記メモリはステータス信号によりそのステータス情報
を送出する、請求項116記載の方法。
【請求項137】 前記メモリにキャッシュ機能のためのTAGメモリを割
り当てる、請求項116または123記載の方法。
【請求項138】 周辺機器に対するインタフェースをセル構造に対するイ
ンタフェースと同期させる、請求項116または121記載の方法。
【請求項139】 周辺機器に対するインタフェースにアドレス監視ユニッ
トを割り当てる、請求項116または121記載の方法。
【請求項140】 周辺機器に対するインタフェースにアドレス変換ユニッ
トを割り当てる、請求項116または121記載の方法。
【請求項141】 メモリをリングメモリとして構成する、請求項116
載の方法。
【請求項142】 セル構造および周辺機器はそれぞれ1つの位置ポインタ
を有する、請求項116、121または141記載の方法。
【請求項143】 レジスタはメモリにおける一群のエントリを表す、請求
116または141記載の方法。
【請求項144】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 セルのステータスを他の任意のセルに転送することを特徴とする方法。
【請求項145】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 セルが複数のコンフィグレーションレジスタを有することを特徴とする方法。
【請求項146】 コンフィグレーションレジスタのうちの正確に1つをラ
ンタイムに選択する、請求項145記載の方法。
【請求項147】 セル構造内部のステータス信号により前記選択を行う、
請求項145または146記載の方法。
【請求項148】 セルのステータス信号により前記選択を行う、請求項 45 または146記載の方法。
【請求項149】 上位のユニットからの信号により前記選択を行う、請求
145または146記載の方法。
【請求項150】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 シーケンサがセルに統合されていることを特徴とする方法。
【請求項151】 セルにインプリメントされたシーケンサがコンフィグレ
ーションレジスタを選択する、請求項145または150記載の方法。
【請求項152】 シーケンサがコンフィグレーションワードを命令として
評価する、請求項145または150記載の方法。
【請求項153】 シーケンサがセル構造のステータス信号に応答する、請
求項150記載の方法。
【請求項154】 シーケンサがセルのステータス信号に応答する、請求項 150 記載の方法。
【請求項155】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 セルを累算器プロセッサとして動作させることを特徴とする方法。
【請求項156】 累算器をセルに統合する、請求項155記載の方法。
【請求項157】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 セルをレジスタプロセッサとして動作させることを特徴とする方法。
【請求項158】 レジスタセットをセルに統合する、請求項う157記載
の方法。
【請求項159】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 セルをスタックプロセッサとして動作させることを特徴とする方法。
【請求項160】 スタックをセル構造に割り当てられたメモリに統合する
、請求項159記載の方法。
【請求項161】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 複数のセルから成るグループにより累算器プロセッサを形成することを特徴と
する方法。
【請求項162】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 複数のセルから成るグループによりスタックプロセッサ形成することを特徴と
する方法。
【請求項163】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 複数のセルから成るグループによりレジスタプロセッサを形成することを特徴
とする方法。
【請求項164】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 複数のセルから成るグループによりロード/ストアプロセッサを形成すること
を特徴とする方法。
【請求項165】 前記グループに対しセル構造に割り当てられたメモリを
対応づける、請求項161から164のいずれか1項記載の方法。
【請求項166】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 上位のロードユニットからセルのデータレジスタにアクセスすることを特徴と
する方法。
【請求項167】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 上位のプロセッサからセルのデータレジスタにアクセスすることを特徴とする
方法。
【請求項168】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 プロセッサとして構成された他の1つのセルからセルのデータレジスタにアク
セスすることを特徴とする方法。
【請求項169】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 プロセッサとして構成された他の複数のセルからセルのデータレジスタにアク
セスすることを特徴とする方法。
【請求項170】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 レジスタセットを1つのセルにインプリメントすることを特徴とする方法。
【請求項171】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 セルの入力レジスタにFIFOを設けることを特徴とする方法。
【請求項172】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 セルの出力レジスタにFIFOを設けることを特徴とする方法。
【請求項173】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 セルをセル構造に割り当てられたメモリと結合して、セルにインプリメントさ
れたシーケンサのためのコードを結合されたメモリからロードすることを特徴と
する方法。
【請求項175】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 セルの状態機械をプログラミングすることを特徴とする方法。
【請求項177】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 セルの状態機械をプログラミング可能なロジックとして構成することを特徴と
する方法。
【請求項179】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 セル構造におけるシーケンサによりアクセスするためのコードのアドレスを生
成するためのユニットを上位のロードユニットに設けることを特徴とする方法。
【請求項180】 1次元または多次元のセル構造をもつコンポーネントの
作動方法において、 セル構造におけるシーケンサによりアクセスするためのスタックのアドレスを
生成するためのユニットを上位のロードユニットに設けることを特徴とする方法
【請求項181】 アドレスの変換を行い、メモリ中のエントリをオフセッ
ト分だけずらす、請求項179または180記載の方法。
───────────────────────────────────────────────────── フロントページの続き (31)優先権主張番号 100 18 119.8 (32)優先日 平成12年4月12日(2000.4.12) (33)優先権主張国 ドイツ(DE) (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,MZ,SD,SL,SZ,TZ,UG ,ZW),EA(AM,AZ,BY,KG,KZ,MD, RU,TJ,TM),AE,AG,AL,AM,AT, AU,AZ,BA,BB,BG,BR,BY,CA,C H,CN,CR,CU,CZ,DE,DK,DM,DZ ,EE,ES,FI,GB,GD,GE,GH,GM, HR,HU,ID,IL,IN,IS,JP,KE,K G,KP,KR,KZ,LC,LK,LR,LS,LT ,LU,LV,MA,MD,MG,MK,MN,MW, MX,MZ,NO,NZ,PL,PT,RO,RU,S D,SE,SG,SI,SK,SL,TJ,TM,TR ,TT,TZ,UA,UG,US,UZ,VN,YU, ZA,ZW (72)発明者 アルミン ニュッケル ドイツ連邦共和国 ノイポッツ ドロッセ ルヴェーク 4 Fターム(参考) 5B076 EB01

Claims (178)

    【特許請求の範囲】
  1. 【請求項1】 1次元または多次元のセル構造をもつコンポーネントのプロ
    グラミング方法において、 プログラムのデータフローグラフとコントロールフローグラフを抽出すること
    を特徴とする方法。
  2. 【請求項2】 前記グラフを複数のサブグラフに分解し、各サブグラフ間の
    コネクションをできるかぎり僅かにする、請求項1記載の方法。
  3. 【請求項3】 前記グラフを複数のサブグラフに分解し、各サブグラフ間で
    できるかぎり僅かなデータしか伝送させない、請求項1記載の方法。
  4. 【請求項4】 前記サブグラフを複数のサブグラフに分解し、各サブグラフ
    間でできるかぎりフィードバックを生じさせない、請求項1記載の方法。
  5. 【請求項5】 前記サブグラフを複数のサブグラフに分解し、各サブグラフ
    をそれぞれできるかぎり精確にコンポーネントのリソースに整合させる、請求項
    1記載の方法。
  6. 【請求項6】 各サブグラフ間にデータと状態を保護するためのメモリ素子
    を挿入する、請求項1記載の方法。
  7. 【請求項7】 1つのサブグラフ内で各ノード間のステータス信号を伝送し
    、該ステータス信号により個々のノードの状態を他のノード各々に提供する、請
    求項1記載の方法。
  8. 【請求項8】 一群のステータス信号をセルのコンフィグレーションを制御
    する上位のユニットに供給し、再コンフィグレーションをトリガさせる、請求項
    1または7記載の方法。
  9. 【請求項9】 一群のステータス信号をコンフィグレーションを制御する上
    位のユニットに供給し、セル構造にロードされないサブグラフに状態を伝達する
    、請求項1または7記載の方法。
  10. 【請求項10】 各サブグラフを複数のコンポーネントに分配する、請求項
    1記載の方法。
  11. 【請求項11】 1つの命令における複数の経路を分割して各経路により1
    つのサブグラフを生じさせ、前記命令の評価(IF, CASE)に従い前記複数の経路
    のうち常に必ず1つの経路を実行する、請求項1記載の方法。
  12. 【請求項12】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 信号が有効であるか否か(RDY)を表す状態を各データ信号に割り当てること
    を特徴とする方法。
  13. 【請求項13】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 信号が有効であるか否か(RDY)を表す状態を各ステータス信号に割り当てる
    ことを特徴とする方法。
  14. 【請求項14】 受信側は有効な信号を受領確認する(ACK)、請求項12
    または13記載の方法。
  15. 【請求項15】 受信側は信号を要求していることを指示する(REQ)、請
    求項12または13記載の方法。
  16. 【請求項16】 送信側は要求されている信号を送ることを指示する、請求
    項15記載の方法。
  17. 【請求項17】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 セル構造の第1の部分はサブグラフを計算し、該サブグラフの計算を段階的に
    終了させ、1つまたは複数のセルが計算を終了するとただちに、そのセルをセル
    構造の第2の部分として再コンフィグレーションして、第3の部分が新たにコン
    フィグレーションされたセルと同時に新たなサブグラフを計算する(Wave-Recon
    fig)ことを特徴とする方法。
  18. 【請求項18】 1つのセルの複数のコンフィグレーションレジスタは種々
    のサブグラフの種々のコンフィグレーションを同時に記憶する、請求項17記載
    の方法。
  19. 【請求項19】 複数のコンフィグレーションのうち正確に1つのコンフィ
    グレーションをアクティブにする、請求項17または18記載の方法。
  20. 【請求項20】 コンフィグレーションされていないコンフィグレーション
    レジスタを特別にマーキングする、請求項17または18記載の方法。
  21. 【請求項21】 個々のコンフィグレーションをセル構造により生成された
    ステータス信号により選択する、請求項17記載の方法。
  22. 【請求項22】 個々のコンフィグレーションを上位のロードユニットから
    生成されたステータス信号により選択する、請求項17記載の方法。
  23. 【請求項23】 個々のコンフィグレーションを外部で生成されたステータ
    ス信号により選択する、請求項17記載の方法。
  24. 【請求項24】 各セルは個別にそれらのコンフィグレーションに応じてス
    テータス信号を評価し、対応するコンフィグレーションをアクティブにする、請
    求項17または21から23のいずれか1項記載の方法。
  25. 【請求項25】 コンフィグレーションされていないコンフィグレーション
    レジスタをアクティブにするときに上位のロードユニットにおいてコンフィグレ
    ーションを要求し、コンフィグレーションが完全にロードされるまでサブグラフ
    の処理を停止させる、請求項17または請求項20から24のいずれか1項記載
    の方法。
  26. 【請求項26】 コンフィグレーションのロードをセル構造から発せられた
    ステータス信号によりトリガする、請求項17記載の方法。
  27. 【請求項27】 コンフィグレーションのロードを上位のロードユニットに
    よりトリガする、請求項17記載の方法。
  28. 【請求項28】 コンフィグレーションのロードを外部で発せられたステー
    タス信号によりトリガする、請求項17記載の方法。
  29. 【請求項29】 各セルは個別にそれらのコンフィグレーションに応じてス
    テータス信号を評価し、対応するコンフィグレーションのロードを行わせる、請
    求項17または請求項26から28のいずれか1項記載の方法。
  30. 【請求項30】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 1次元または多次元のセル構造をもつコンポーネントのプログラミング方法に
    おいて、 セルにシーケンサを統合し、該シーケンサはコンフィグレーションレジスタを
    アドレッシングし、該コンフィグレーションレジスタに格納されたプログラムを
    実行することを特徴とする方法。
  31. 【請求項31】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 セルにシーケンサを統合し、該シーケンサはセル構造に割り当てられた複数の
    メモリのうちの1つをアドレッシングして該メモリに格納されているプログラム
    を実行することを特徴とする方法。
  32. 【請求項32】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 複数のセルをいっしょに接続することにより1つのシーケンサを形成し、該シ
    ーケンサを実行されるプログラムに従い形成することを特徴とする方法。
  33. 【請求項33】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 逐次的なサブグラフを実行するため外部のプロセッサをコンポーネントに結合
    することを特徴とする方法。
  34. 【請求項34】 逐次的なサブグラフを実行するプロセッサとして上位のロ
    ードユニットを付加的に使用する、請求項33記載の方法。
  35. 【請求項35】 前記シーケンサは個々のセルのデータレジスタにアクセス
    する、請求項30から34のいずれか1項記載の方法。 【請求項35】 シーケンサのために残りのサブグラフをそれらの個々の構
    成に従いコンフィグレーションする、請求項30から34のいずれか1項記載の
    方法。
  36. 【請求項36】 シーケンサのために残りのサブグラフをそれらの個々の構
    成に従い再コンフィグレーションする、請求項30から35のいずれか1項記載
    の方法。
  37. 【請求項37】 シーケンサのためにCISCモデルに対応する標準計算機
    構をコンフィグレーションする、請求項30から34のいずれか1項記載の方法
  38. 【請求項38】 コンパイラにより標準計算機構を制御する命令を生成し、
    それにより複数のサブグラフを1つの標準計算機構に変換する、請求項30から
    34または37のいずれか1項記載の方法。
  39. 【請求項39】 コンパイラにより前記標準計算機構の外部ネットワーク化
    のための命令を生成し、それにより複数のサブグラフを1つの標準計算機構に変
    換する、請求項30から34または請求項37または38のいずれか1項記載の
    方法。
  40. 【請求項40】 コンパイラにより標準計算機能の内部ネットワーク化のた
    めの命令を生成し、それにより複数のサブグラフを1つの計算機構に変換する、
    請求項30から34または請求項37または38のいずれか1項記載の方法。
  41. 【請求項41】 命令を周期的にプログラムカウンタにより決定してロード
    する、請求項30から34または請求項37から40のいずれか1項記載の方法
  42. 【請求項42】 シーケンサはそのオペランドをスタックにおいて管理しス
    タックプロセッサとして動作する、請求項30から34のいずれか1項記載の方
    法。
  43. 【請求項43】 シーケンサはそのオペランドを累算器において管理し累算
    器プロセッサとして動作する、請求項30から34のいずれか1項記載の方法。
  44. 【請求項44】 シーケンサはそのオペランドをレジスタにおいて管理しレ
    ジスタプロセッサとして動作する、請求項30から34のいずれか1項記載の方
    法。
  45. 【請求項45】 シーケンサはそのオペランドをメモリにおいて管理しロー
    ド/ストアプロセッサとして動作する、請求項30から34のいずれか1項記載
    の方法。
  46. 【請求項46】 シーケンサはプログラムの実行に適した種々の方法を同時
    にインプリメントする、請求項30から34または請求項42から45のいずれ
    か1項記載の方法。
  47. 【請求項47】 それぞれ異なるように形成された複数のシーケンサを同時
    にセル構造にコンフィグレーションする、請求項30から34または請求項42
    から46のいずれか1項記載の方法。
  48. 【請求項48】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 プログラム中に現れるポインタをソートして、できるかぎり大きい時間的非依
    存性をそれらのポインタにもたせ、ポインタに依存しないできるかぎり多くの命
    令を2つのポインタの間に配置することを特徴とする方法。
  49. 【請求項49】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 プログラム中に現れるポインタをソートして、それらのポインタにより参照さ
    れるデータをポインタ計算後できるかぎりあとで使わせることを特徴とする方法
  50. 【請求項50】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 ジャンプおよび比較にあたりすべての可能なサブグラフを、ジャンプまたは比
    較により選ばれたサブグラフがどれであるのかが既知となるまで、同時にセル構
    造にコンフィグレーションし計算することを特徴とする方法。
  51. 【請求項51】 選択されていないすべてのサブグラフのデータおよび状態
    を無視し、選択されているサブグラフのデータおよび状態だけを引き続き処理す
    る、請求項50記載の方法。
  52. 【請求項52】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 セル構造に1つまたは複数のメモリを割り当てることを特徴とする方法。
  53. 【請求項53】 前記メモリをランダムに任意にアドレッシングする(Rand
    om Access)、請求項52記載の方法。
  54. 【請求項54】 前記メモリをルックアップテーブルとして使用する、請求
    項52記載の方法。
  55. 【請求項55】 データ流を分離するための前記メモリをFIFOとして使
    用する、請求項52記載の方法。
  56. 【請求項56】 前記メモリをシーケンサのためのスタックとして使用する
    、請求項52記載の方法。
  57. 【請求項57】 前記メモリをシーケンサのためのレジスタバンクとして使
    用する、請求項52記載の方法。
  58. 【請求項58】 前記メモリは外部記憶装置の1つのセクションを成してい
    る、請求項52から54または請求項56から57のいずれか1項記載の方法。
  59. 【請求項59】 前記メモリは外部記憶装置のためのキャッシュとして動作
    する、請求項52または53記載の方法。
  60. 【請求項60】 前記メモリにセル構造から外部記憶装置への信号を書き込
    む、請求項52記載の方法。
  61. 【請求項61】 前記メモリに上位のロードユニットから外部記憶装置への
    信号を書き込む、請求項52記載の方法。
  62. 【請求項62】 セル構造からの上位のロードユニットの信号を前記メモリ
    から読み出す、請求項52記載の方法。
  63. 【請求項63】 外部記憶装置からの上位のロードユニットの信号を前記メ
    モリから読み出す、請求項52記載の方法。
  64. 【請求項64】 外部記憶装置における前記ベースアドレスをセル構造によ
    り任意にセットする、請求項52または請求項60から63のいずれか1項記載
    の方法。
  65. 【請求項65】 外部記憶装置における前記ベースアドレスを上位のロード
    ユニットにより任意にセットする、請求項52または請求項60から63のいず
    れか1項記載の方法。
  66. 【請求項66】 外部記憶装置におけるベースアドレスを外部のユニットに
    より任意にセットする、請求項52または請求項60から63のいずれか1項記
    載の方法。 【請求項66】 外部記憶装置へのレジスタバンクの書き込みおよび外部記
    憶装置からのレジスタバンクの読み出しにより、あるサブグラフから別のサブグ
    ラフへの切り替え(Push/Pop によるコンテキストスイッチ)を実行する、請求
    項52,57または請求項60から66のいずれか1項記載の方法。
  67. 【請求項67】 前記スタックはメモリよりも大きく、該スタックの一部分
    を外部記憶装置におく、請求項52または56記載の方法。
  68. 【請求項68】 1次元または多次元のセル構造のプログラミング方法にお
    いて、 上位のロードユニットをハイアラーキ構造とすることを特徴とする方法。
  69. 【請求項69】 各ハイアラーキレベルにおいてコンフィグレーションプロ
    グラムのそれぞれ異なる部分を格納しおよび/または処理する、請求項68記載
    の方法。
  70. 【請求項70】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 上位のロードユニットはコンフィグレーションデータの高速な伝送のため幅の
    広いメモリを有することを特徴とする方法。
  71. 【請求項71】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 メモリの幅を上位のロードユニットのシーケンサのためにマルチプレクサを介
    して低減することを特徴とする方法。
  72. 【請求項72】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 上位のロードユニットはコンフィグレーションをブロックごとに伝送する命令
    を有することを特徴とする方法。
  73. 【請求項73】 DMA方式に従いコンフィグレーションデータをブロック
    ごとに伝送する命令をインプリメントする、請求項72記載の方法。
  74. 【請求項74】 コンフィグレーションデータのためのメモリに他のメモリ
    とは無関係に同時にアクセスする、請求項72記載の方法。
  75. 【請求項75】 コンフィグレーションデータをブロックごとに伝送するた
    めに複数のユニットを設ける、請求項72記載の方法。
  76. 【請求項76】 個々のユニットのコンフィグレーションデータのための複
    数のメモリを互いに無関係に同時にアクセスする、請求項72または75記載の
    方法。
  77. 【請求項77】 コンフィグレーション不可能なセルのコンフィグレーショ
    ン時に命令を中止する、請求項72記載の方法。
  78. 【請求項78】 前記命令はコンフィグレーション不可能なセルのコンフィ
    グレーションデータのアドレスを記憶する、請求項72または77記載の方法。
  79. 【請求項79】 前記命令は新たな実行にあたりコンフィグレーションされ
    ていないセルのコンフィグレーションデータの個所で引き続き動作する、請求項
    72、77または78記載の方法。
  80. 【請求項80】 セルをコンフィグレーションできなかったときに前記命令
    を再度実行する、請求項72、77から79のいずれか1項記載の方法。
  81. 【請求項81】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 上位のロードユニットはコンフィグレーションをその内部のメモリにロードし
    てからそれを呼び出すことを特徴とする方法。
  82. 【請求項82】 前記ロードを命令により実行する、請求項81記載の方法
  83. 【請求項83】 前記ロードをステータス信号によりトリガする、請求項8
    1記載の方法。
  84. 【請求項84】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 複数のコンフィグレーションをグループにまとめることを特徴とする方法。
  85. 【請求項85】 あるグループをその呼び出しにより変化させてパーソナル
    化する、請求項84記載の方法。
  86. 【請求項86】 グループならびにそのパーソナル化をいっそう低いハイア
    ラーキにおける上位のロードユニットに格納する、請求項84または85記載の
    方法。
  87. 【請求項87】 グループの呼び出しをいっそう高いハイアラーキにおける
    上位のロードユニットに格納する、請求項84から86のいずれか1項記載の方
    法。
  88. 【請求項88】 複数の前記の呼び出しによってプログラムを構成する、請
    求項84から87のいずれか1項記載の方法。
  89. 【請求項89】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 シーケンサのコンフィグレーションおよび命令シーケンスを上位のロードユニ
    ットに格納することを特徴とする方法。
  90. 【請求項90】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 シーケンサの命令シーケンスを内部および/または外部の記憶装置に格納する
    ことを特徴とする方法。
  91. 【請求項91】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 シーケンサの内部状態とデータ処理の状態とを区別することを特徴とする方法
  92. 【請求項92】 データ処理の状態をセル構造のデータといっしょに供給す
    る、請求項91記載の方法。
  93. 【請求項93】 データ処理の状態をデータといっしょに保護する、請求項
    91または92記載の方法。
  94. 【請求項94】 データ処理の状態を記憶されているデータワードといっし
    ょに保護する、請求項91から93のいずれか1項記載の方法。
  95. 【請求項95】 データ処理の状態を最後に格納されたデータワードいっし
    ょに再コンフィグレーション前に保護する、請求項91から93のいずれか1項
    記載の方法。
  96. 【請求項96】 1次元または多次元のセル構造をもつコンポーネントのプ
    ログラミング方法において、 最後に処理されたオペランドのアドレスを再コンフィグレーション前に保護す
    ることを特徴とする方法。
  97. 【請求項97】 最後のオペランドのデータ処理の状態を再コンフィグレー
    ション前に保護する、請求項96記載の方法。
  98. 【請求項98】 シーケンサの内部状態は保護しない、請求項91記載の方
    法。
  99. 【請求項99】 1次元または多次元のセル構造をもつコンポーネント用の
    プログラムのコンパイル方法において、 4種類のコードを区別し、該コードは、 a)並列的なコード b)効率的に並列化可能なコード c)効率的に並列化できないコード d)逐次的なコード であることを特徴とする方法。
  100. 【請求項100】 並列的なコードを抽出する、請求項99記載の方法。
  101. 【請求項101】 抽出されたコードを配置してルーティングする、請求項
    99または100記載の方法。
  102. 【請求項102】 分割を反復的に配置しルーティングして実行する、請求
    項99から101のいずれか1項記載の方法。
  103. 【請求項103】 並列化可能なコードを抽出する、請求項99記載の方法
  104. 【請求項104】 抽出されたコードを配置してルーティングする、請求項
    99または103記載の方法。
  105. 【請求項105】 分割を反復的に配置しルーティングする、請求項99、
    103または104のいずれか1項記載の方法。
  106. 【請求項106】 各コードを効率の点で分析し、効率的に動作しないコー
    ドを分離する、請求項99または請求項103から105のいずれか1項記載の
    方法。
  107. 【請求項107】 どのコードが効率的でありどのコードが効率的でないか
    の総計を作成し、いっそう効率的なプログラミングについての適切な指示をプロ
    グラマに与える、請求項99または請求項103から106のいずれか1項記載
    の方法。
  108. 【請求項108】 分離された逐次的なコードを分析し、個々のコードごと
    に適切なシーケンサを選択し、ここで、 a)可能な一群のシーケンサをデータベースにまえもって設定し、 b)必要であれば1つのシーケンサ(プロセッサ)だけを提供する、 請求項99または106記載の方法。
  109. 【請求項109】 前記コードを選択された適切なシーケンサのためにコン
    パイルする、請求項108記載の方法。
  110. 【請求項110】 シーケンサの選択およびコンパイルを反復的に実行し、
    各コンパイルをその効率について分析し、コンパイルされたコードが最も効率的
    であるシーケンサを選択する、請求項108または109記載の方法。
  111. 【請求項111】 コンパイルされたコードおよび分割されたコードをリン
    カによってまとめ、必要とされる通信構造を挿入する、請求項99から111の
    いずれか1項記載の方法。
  112. 【請求項112】 リンカは必要とするメモリを挿入する、請求項111記
    載の方法。
  113. 【請求項113】 リンカはセル構造の内部状態を保護する構造を挿入する
    、請求項111または112記載の方法。
  114. 【請求項114】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 1つまたは複数のメモリをセル構造にダイレクトに接続することを特徴とする
    方法。
  115. 【請求項115】 前記メモリにワードごとにアドレッシング可能にアクセ
    スする、請求項114記載の方法。
  116. 【請求項116】 前記メモリはルックアップテーブルとして動作する、請
    求項114記載の方法。
  117. 【請求項117】 前記メモリはシーケンサのためのスタックとして動作す
    る、請求項114記載の方法。
  118. 【請求項118】 前記メモリはシーケンサのためのレジスタセットとして
    動作する、請求項114記載の方法。
  119. 【請求項119】 前記メモリに周辺機器または外部記憶装置に対するイン
    タフェースを割り当てるかまたは集積する、請求項114から118のいずれか
    1項記載の方法。
  120. 【請求項120】 メモリはFIFO方式に従い動作し、それによりデータ
    流をセル構造において外部データ流から分離する、請求項114または119記
    載の方法。
  121. 【請求項121】 前記メモリはセル構造と外部記憶装置との間のキャッシ
    ュとして動作する、請求項114または119記載の方法。
  122. 【請求項122】 前記メモリはセルアレイ中にインプリメントされたシー
    ケンサのためのコードを格納する、請求項114から121のいずれか1項記載
    の方法。 【請求項122】 複数のメモリが1つの共通の周辺バスにアクセスする、
    請求項114記載の方法。
  123. 【請求項123】 共通のバスごとに常に必ず1つのメモリをアービタが選
    択し、該メモリをマルチプレクサを介してバスにつなげる、請求項114または
    122記載の方法。
  124. 【請求項124】 ステータス信号によってメモリの内容を外部記憶装置に
    書き込ませる、請求項114記載の方法。
  125. 【請求項125】 ステータス信号によってメモリの内容を外部記憶装置か
    ら読み出させる、請求項114記載の方法。
  126. 【請求項126】 外部記憶装置のベースアドレスをレジスタに格納する、
    請求項114、請求項124または125のいずれか1項記載の方法。
  127. 【請求項127】 レジスタをセル構造によりセットする、請求項114ま
    たは124から126のいずれか1項記載の方法。
  128. 【請求項128】 レジスタを上位のロードユニットによりセットする、請
    求項114または124から126のいずれか1項記載の方法。
  129. 【請求項129】 レジスタを周辺機器によりセットする、請求項114ま
    たは請求項124から126のいずれか1項記載の方法。
  130. 【請求項130】 スタックは可変のサイズをもち、外部記憶装置をスタッ
    ク拡大のために使用する、請求項117記載の方法。
  131. 【請求項131】 スタックオーバーフローの前にスタックの最も古い部分
    を外部記憶装置のスタックに書き込む、請求項117または130記載の方法。
  132. 【請求項132】 スタックアンダーフローの前に外部記憶装置におけるス
    タックからスタックの最も新しい部分を読み出す、請求項117または130記
    載の方法。
  133. 【請求項133】 前記メモリはステータス信号によりそのステータス情報
    を送出する、請求項114記載の方法。
  134. 【請求項134】 前記メモリにキャッシュ機能のためのTAGメモリを割
    り当てる、請求項114または121記載の方法。
  135. 【請求項135】 周辺機器に対するインタフェースをセル構造に対するイ
    ンタフェースと同期させる、請求項114または119記載の方法。
  136. 【請求項136】 周辺機器に対するインタフェースにアドレス監視ユニッ
    トを割り当てる、請求項114または119記載の方法。
  137. 【請求項137】 周辺機器に対するインタフェースにアドレス変換ユニッ
    トを割り当てる、請求項114または119記載の方法。
  138. 【請求項138】 メモリをリングメモリとして構成する、請求項114記
    載の方法。
  139. 【請求項139】 セル構造および周辺機器はそれぞれ1つの位置ポインタ
    を有する、請求項114,119または138記載の方法。
  140. 【請求項140】 レジスタはメモリにおける一群のエントリを表す、請求
    項114または138記載の方法。
  141. 【請求項141】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 セルのステータスを他の任意のセルに転送することを特徴とする方法。
  142. 【請求項142】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 セルが複数のコンフィグレーションレジスタを有することを特徴とする方法。
  143. 【請求項143】 コンフィグレーションレジスタのうちの正確に1つをラ
    ンタイムに選択する、請求項142記載の方法。
  144. 【請求項144】 セル構造内部のステータス信号により前記選択を行う、
    請求項142または143記載の方法。
  145. 【請求項145】 セルのステータス信号により前記選択を行う、請求項1
    42または143記載の方法。
  146. 【請求項146】 上位のユニットからの信号により前記選択を行う、請求
    項142または143記載の方法。
  147. 【請求項147】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 シーケンサがセルに統合されていることを特徴とする方法。
  148. 【請求項148】 セルにインプリメントされたシーケンサがコンフィグレ
    ーションレジスタを選択する、請求項142または147記載の方法。
  149. 【請求項149】 シーケンサがコンフィグレーションワードを命令として
    評価する、請求項142または147記載の方法。
  150. 【請求項150】 シーケンサがセル構造のステータス信号に応答する、請
    求項147記載の方法。
  151. 【請求項151】 シーケンサがセルのステータス信号に応答する、請求項
    147記載の方法。
  152. 【請求項152】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 セルを累算器プロセッサとして動作させることを特徴とする方法。
  153. 【請求項153】 累算器をセルに統合する、請求項152記載の方法。
  154. 【請求項154】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 セルをレジスタプロセッサとして動作させることを特徴とする方法。
  155. 【請求項155】 レジスタセットをセルに統合する、請求項154記載の
    方法。
  156. 【請求項156】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 セルをスタックプロセッサとして動作させることを特徴とする方法。
  157. 【請求項157】 スタックをセル構造に割り当てられたメモリに統合する
    、請求項156記載の方法。
  158. 【請求項158】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 複数のセルから成るグループにより累算器プロセッサを形成することを特徴と
    する方法。
  159. 【請求項159】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 複数のセルから成るグループによりスタックプロセッサ形成することを特徴と
    する方法。
  160. 【請求項160】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 複数のセルから成るグループによりレジスタプロセッサを形成することを特徴
    とする方法。
  161. 【請求項161】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 複数のセルから成るグループによりロード/ストアプロセッサを形成すること
    を特徴とする方法。
  162. 【請求項162】 前記グループに対しセル構造に割り当てられたメモリを
    対応づける、請求項158から161のいずれか1項記載の方法。
  163. 【請求項163】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 上位のロードユニットからセルのデータレジスタにアクセスすることを特徴と
    する方法。
  164. 【請求項164】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 上位のプロセッサからセルのデータレジスタにアクセスすることを特徴とする
    方法。
  165. 【請求項165】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 プロセッサとして構成された他の1つのセルからセルのデータレジスタにアク
    セスすることを特徴とする方法。
  166. 【請求項166】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 プロセッサとして構成された他の複数のセルからセルのデータレジスタにアク
    セスすることを特徴とする方法。
  167. 【請求項167】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 レジスタセットを1つのセルにインプリメントすることを特徴とする方法。
  168. 【請求項168】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 セルの入力レジスタにFIFOを設けることを特徴とする方法。
  169. 【請求項169】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 セルの出力レジスタにFIFOを設けることを特徴とする方法。
  170. 【請求項170】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 セルをセル構造に割り当てられたメモリと結合して、セルにインプリメントさ
    れたシーケンサのためのコードを結合されたメモリからロードすることを特徴と
    する方法。
  171. 【請求項171】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 セルを上位のロードユニットのメモリと結合して、セルにインプリメントされ
    たシーケンサのためのコードを上位のロードユニットのメモリからロードするこ
    とを特徴とする方法。
  172. 【請求項172】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 セルの状態機械をプログラミングすることを特徴とする方法。
  173. 【請求項173】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 セルの状態機械を部分的にプログラミングすることを特徴とする方法。
  174. 【請求項174】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 セルの状態機械をプログラミング可能なロジックとして構成することを特徴と
    する方法。
  175. 【請求項175】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 セルの状態機械および計算機構をプログラミング可能なロジックとして構成す
    ることを特徴とする方法。
  176. 【請求項176】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 セル構造におけるシーケンサによりアクセスするためのコードのアドレスを生
    成するためのユニットを上位のロードユニットに設けることを特徴とする方法。
  177. 【請求項177】 1次元または多次元のセル構造をもつコンポーネントの
    作動方法において、 セル構造におけるシーケンサによりアクセスするためのスタックのアドレスを
    生成するためのユニットを上位のロードユニットに設けることを特徴とする方法
  178. 【請求項178】 アドレスの変換を行い、メモリ中のエントリをオフセッ
    ト分だけずらす、請求項176または177記載の方法。
JP2001503066A 1999-06-10 2000-06-13 セル構造におけるシーケンス分割方法 Pending JP2003505753A (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
DE19926538A DE19926538A1 (de) 1999-06-10 1999-06-10 Hardware und Betriebsverfahren
DE19926538.0 1999-06-10
DE10000423 2000-01-09
DE10000423.7 2000-01-09
DE10018119 2000-04-12
DE10018119.8 2000-04-12
PCT/DE2000/001869 WO2000077652A2 (de) 1999-06-10 2000-06-13 Sequenz-partitionierung auf zellstrukturen

Publications (1)

Publication Number Publication Date
JP2003505753A true JP2003505753A (ja) 2003-02-12

Family

ID=27213558

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001503066A Pending JP2003505753A (ja) 1999-06-10 2000-06-13 セル構造におけるシーケンス分割方法

Country Status (7)

Country Link
US (7) US8230411B1 (ja)
EP (1) EP1228440B1 (ja)
JP (1) JP2003505753A (ja)
CN (1) CN1378665A (ja)
AU (1) AU5805300A (ja)
DE (1) DE10081643D2 (ja)
WO (1) WO2000077652A2 (ja)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002071196A2 (de) 2001-03-05 2002-09-12 Pact Informationstechnologie Gmbh Verfahren und vorrichtung zu datenbe- und/oder verarbeitung
EP1466264B1 (de) 1995-12-29 2011-09-14 Richter, Thomas Verfahren zur konfiguration der verbindung zwischen datenverarbeitungszellen
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
WO2003036507A2 (de) * 2001-09-19 2003-05-01 Pact Xpp Technologies Ag Rekonfigurierbare elemente
WO2000077652A2 (de) * 1999-06-10 2000-12-21 Pact Informationstechnologie Gmbh Sequenz-partitionierung auf zellstrukturen
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
JP2009043276A (ja) * 2001-03-05 2009-02-26 Pact Xpp Technologies Ag Fifo記憶方法
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
JP2004533691A (ja) * 2001-06-20 2004-11-04 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データを処理するための方法
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
ATE538439T1 (de) 2002-02-18 2012-01-15 Richter Thomas Bussysteme und rekonfigurationsverfahren
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
EP1537486A1 (de) * 2002-09-06 2005-06-08 PACT XPP Technologies AG Rekonfigurierbare sequenzerstruktur
EP1573573A2 (en) * 2002-12-12 2005-09-14 Koninklijke Philips Electronics N.V. Dataflow-synchronized embedded field programmable processor array
WO2010043401A2 (en) 2008-10-15 2010-04-22 Martin Vorbach Data processing device
US8347055B2 (en) * 2009-06-30 2013-01-01 Incard S.A. Method to defrag a memory of an IC card
EP2519876A1 (en) 2009-12-28 2012-11-07 Hyperion Core, Inc. Optimisation of loops and data flow sections
CN101963943B (zh) * 2010-06-30 2015-04-29 上海华岭集成电路技术股份有限公司 寻找fpga配置文件与clb块配置资源的映射方法
CN101907999B (zh) * 2010-07-19 2013-06-26 中国科学技术大学 超长指令字程序的二进制翻译方法
CN102360306A (zh) * 2011-10-19 2012-02-22 上海交通大学 高级语言代码中循环数据流图提取优化信息处理方法
CN102508689A (zh) * 2011-11-08 2012-06-20 上海交通大学 高级语言程序数据流图提取中依赖关系保持数据处理系统
US9489184B2 (en) * 2011-12-30 2016-11-08 Oracle International Corporation Adaptive selection of programming language versions for compilation of software programs
CN103631316B (zh) * 2012-08-21 2020-06-26 是德科技股份有限公司 用于输出复杂触发信号的多级触发系统
WO2014209260A1 (en) * 2013-06-24 2014-12-31 Hewlett-Packard Development Company, L.P. Processing a data flow graph of a hybrid flow
US9483282B1 (en) * 2014-05-30 2016-11-01 Altera Corporation Methods and systems for run-time hardware configuration change management
US9348595B1 (en) 2014-12-22 2016-05-24 Centipede Semi Ltd. Run-time code parallelization with continuous monitoring of repetitive instruction sequences
US9208066B1 (en) * 2015-03-04 2015-12-08 Centipede Semi Ltd. Run-time code parallelization with approximate monitoring of instruction sequences
US10296350B2 (en) 2015-03-31 2019-05-21 Centipede Semi Ltd. Parallelized execution of instruction sequences
US10296346B2 (en) 2015-03-31 2019-05-21 Centipede Semi Ltd. Parallelized execution of instruction sequences based on pre-monitoring
US9715390B2 (en) 2015-04-19 2017-07-25 Centipede Semi Ltd. Run-time parallelization of code execution based on an approximate register-access specification
US9503094B1 (en) 2015-10-05 2016-11-22 Altera Corporation Programmable logic device virtualization
US10127503B2 (en) * 2015-10-21 2018-11-13 International Business Machines Corporation Generating multidimensional combination data
CN106709860B (zh) * 2016-12-12 2020-04-07 中国航空工业集团公司西安航空计算技术研究所 一种gpu统一染色处理阵列的调试结构
DE102017200457A1 (de) * 2017-01-12 2018-07-12 Robert Bosch Gmbh Hardwarekonfigurierbare Logikeinheit und Mikrocontroller mit einer derartigen hardwarekonfigurierbaren Logikeinheit
WO2018217467A1 (en) 2017-05-26 2018-11-29 Flex Logix Technologies, Inc. Fpga having a virtual array of logic tiles, and method of configuring and operating same
CN110603733B (zh) 2017-06-13 2023-05-05 弗莱克斯-罗技克斯技术公司 集成电路的逻辑瓦片的时钟分配和生成体系架构及其操作方法
US10348308B2 (en) 2017-07-01 2019-07-09 Flex Logix Technologies, Inc. Clock architecture, including clock mesh fabric, for FPGA, and method of operating same
US10423416B2 (en) * 2017-12-07 2019-09-24 International Business Machines Corporation Automatic creation of macro-services
US10686447B1 (en) 2018-04-12 2020-06-16 Flex Logix Technologies, Inc. Modular field programmable gate array, and method of configuring and operating same
CN111971663A (zh) 2018-04-16 2020-11-20 埃米尔·巴登霍斯特 处理器和操作处理器的方法
US10705967B2 (en) 2018-10-15 2020-07-07 Intel Corporation Programmable interface to in-memory cache processor
US10831507B2 (en) 2018-11-21 2020-11-10 SambaNova Systems, Inc. Configuration load of a reconfigurable data processor
US11188497B2 (en) 2018-11-21 2021-11-30 SambaNova Systems, Inc. Configuration unload of a reconfigurable data processor
US10698853B1 (en) 2019-01-03 2020-06-30 SambaNova Systems, Inc. Virtualization of a reconfigurable data processor
US10768899B2 (en) 2019-01-29 2020-09-08 SambaNova Systems, Inc. Matrix normal/transpose read and a reconfigurable data processor including same
US11386038B2 (en) 2019-05-09 2022-07-12 SambaNova Systems, Inc. Control flow barrier and reconfigurable data processor
US11055141B2 (en) 2019-07-08 2021-07-06 SambaNova Systems, Inc. Quiesce reconfigurable data processor
TWI708488B (zh) * 2019-08-20 2020-10-21 智易科技股份有限公司 傳輸系統、傳送裝置及傳輸路徑分配方法
US11809908B2 (en) 2020-07-07 2023-11-07 SambaNova Systems, Inc. Runtime virtualization of reconfigurable data flow resources
US11782729B2 (en) 2020-08-18 2023-10-10 SambaNova Systems, Inc. Runtime patching of configuration files
CN112199320B (zh) * 2020-09-28 2023-06-02 西南电子技术研究所(中国电子科技集团公司第十研究所) 多通道可重构信号处理装置
CN112698954B (zh) * 2021-01-14 2022-05-10 上海交通大学 一种基于子图解耦的粗粒度可重构阵列调度方法
US11327771B1 (en) 2021-07-16 2022-05-10 SambaNova Systems, Inc. Defect repair circuits for a reconfigurable data processor
US11556494B1 (en) 2021-07-16 2023-01-17 SambaNova Systems, Inc. Defect repair for a reconfigurable data processor for homogeneous subarrays
US11409540B1 (en) 2021-07-16 2022-08-09 SambaNova Systems, Inc. Routing circuits for defect repair for a reconfigurable data processor
US11599358B1 (en) * 2021-08-12 2023-03-07 Tenstorrent Inc. Pre-staged instruction registers for variable length instruction set machine
US11487694B1 (en) 2021-12-17 2022-11-01 SambaNova Systems, Inc. Hot-plug events in a pool of reconfigurable data flow resources
US20230297818A1 (en) * 2022-03-15 2023-09-21 Rebellions Inc. Neural processing device and method for controlling the same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04175974A (ja) * 1990-11-09 1992-06-23 Hitachi Ltd コプロセッサ論理回路自動生成方法
JPH10256383A (ja) * 1997-03-12 1998-09-25 Toshiba Corp 半導体装置及びその回路構成方法
WO1999000731A1 (en) * 1997-06-27 1999-01-07 Chameleon Systems, Inc. Method for compiling high level programming languages
JPH11120210A (ja) * 1997-10-21 1999-04-30 Toshiba Corp 再構成可能な回路の設計装置、及び再構成可能な回路装置

Family Cites Families (780)

* 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
US3473160A (en) 1966-10-10 1969-10-14 Stanford Research Inst Electronically controlled microelectronic cellular logic array
US3531662A (en) 1967-04-10 1970-09-29 Sperry Rand Corp Batch fabrication arrangement for integrated circuits
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
US4020469A (en) 1975-04-09 1977-04-26 Frank Manning Programmable arrays
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
US4412303A (en) 1979-11-26 1983-10-25 Burroughs Corporation Array processor architecture
CA1174370A (en) 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
US4428048A (en) * 1981-01-28 1984-01-24 Grumman Aerospace Corporation Multiprocessor with staggered processing
US4442508A (en) 1981-08-05 1984-04-10 General Instrument Corporation Storage cells for use in two conductor data column storage logic arrays
US4498134A (en) 1982-01-26 1985-02-05 Hughes Aircraft Company Segregator functional plane for use in a modular array processor
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 プロセツサユニツト
US4539637A (en) 1982-08-26 1985-09-03 At&T Bell Laboratories Method and apparatus for handling interprocessor calls in a multiprocessor system
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
US4577293A (en) 1984-06-01 1986-03-18 International Business Machines Corporation Distributed, on-chip cache
US4761755A (en) 1984-07-11 1988-08-02 Prime Computer, Inc. Data processing system and method having an improved arithmetic unit
US4642487A (en) 1984-09-26 1987-02-10 Xilinx, Inc. Special interconnect for configurable logic array
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
DE3513980A1 (de) * 1985-04-18 1986-10-30 Bayer Ag, 5090 Leverkusen Matrixwerkstoffe, verfahren zu ihrer herstellung und ihre verwendung zur herstellung von verbundwerkstoffen
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
US4722084A (en) 1985-10-02 1988-01-26 Itt Corporation Array reconfiguration apparatus and methods particularly adapted for use with very large scale integrated circuits
DE3687400T2 (de) 1985-11-04 1993-07-15 Ibm Digitale nachrichtenuebertragungsnetzwerke und aufbau von uebertragungswegen in diesen netzwerken.
US5070475A (en) 1985-11-14 1991-12-03 Data General Corporation Floating point unit interface
US4700187A (en) 1985-12-02 1987-10-13 Concurrent Logic, Inc. Programmable, asynchronous logic cell and array
US4733393A (en) * 1985-12-12 1988-03-22 Itt Corporation Test method and apparatus for cellular array processor chip
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
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
US4724307A (en) 1986-04-29 1988-02-09 Gtech Corporation Marked card reader
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
US4768196A (en) 1986-10-28 1988-08-30 Silc Technologies, Inc. Programmable logic array
JP2900359B2 (ja) 1986-10-30 1999-06-02 株式会社日立製作所 マルチプロセッサシステム
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
US4786904A (en) 1986-12-15 1988-11-22 Zoran Corporation Electronically programmable gate array having programmable interconnect lines
US4837735A (en) 1987-06-09 1989-06-06 Martin Marietta Energy Systems, Inc. Parallel machine architecture for production rule systems
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
US4862407A (en) 1987-10-05 1989-08-29 Motorola, Inc. Digital signal processing apparatus
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
US5113498A (en) 1987-11-10 1992-05-12 Echelon Corporation Input/output section for an intelligent cell which provides sensing, bidirectional communications and control
US5031179A (en) 1987-11-10 1991-07-09 Canon Kabushiki Kaisha Data communication apparatus
US4918690A (en) 1987-11-10 1990-04-17 Echelon Systems Corp. Network and intelligent cell for providing sensing, bidirectional communications and control
US5276826A (en) * 1988-01-04 1994-01-04 Hewlett-Packard Company Apparatus for transforming addresses to provide pseudo-random access to memory modules
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.
US5197016A (en) 1988-01-13 1993-03-23 International Chip Corporation Integrated silicon-software compiler
ATE109910T1 (de) 1988-01-20 1994-08-15 Advanced Micro Devices Inc Organisation eines integrierten cachespeichers zur flexiblen anwendung zur unterstützung von multiprozessor-operationen.
US5261113A (en) 1988-01-25 1993-11-09 Digital Equipment Corporation Apparatus and method for single operand register array for vector and scalar data processing operations
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
JP2741867B2 (ja) 1988-05-27 1998-04-22 株式会社日立製作所 情報処理システムおよびプロセツサ
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
WO1990001192A1 (en) 1988-07-22 1990-02-08 United States Department Of Energy Data flow machine for data driven computing
US5010401A (en) 1988-08-11 1991-04-23 Mitsubishi Denki Kabushiki Kaisha Picture coding and decoding apparatus using vector quantization
US5204935A (en) 1988-08-19 1993-04-20 Fuji Xerox Co., Ltd. Programmable fuzzy logic circuits
US4901268A (en) 1988-08-19 1990-02-13 General Electric Company Multiple function data processor
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.
ATE265712T1 (de) 1988-10-05 2004-05-15 Quickturn Design Systems Inc Verfahren zur verwendung einer elektronisch wiederkonfigurierbaren gatterfeld-logik und dadurch hergestelltes gerät
US5452231A (en) 1988-10-05 1995-09-19 Quickturn Design Systems, Inc. Hierarchically connected reconfigurable logic assembly
EP0390907B1 (en) 1988-10-07 1996-07-03 Martin Marietta Corporation Parallel data processor
US5014193A (en) 1988-10-14 1991-05-07 Compaq Computer Corporation Dynamically configurable portable computer system
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
US5489857A (en) 1992-08-03 1996-02-06 Advanced Micro Devices, Inc. Flexible synchronous/asynchronous cell structure for a high density programmable logic device
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
US5212652A (en) 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
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 株式会社リコー 中央演算処理装置
GB8925723D0 (en) 1989-11-14 1990-01-04 Amt Holdings Processor array system
GB8925721D0 (en) 1989-11-14 1990-01-04 Amt Holdings Processor array system
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
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
EP0428770B1 (de) 1989-11-21 1995-02-01 Deutsche ITT Industries GmbH 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
JPH03254497A (ja) 1990-03-05 1991-11-13 Mitsubishi Electric Corp マイクロコンピュータ
JP3118266B2 (ja) 1990-03-06 2000-12-18 ゼロックス コーポレイション 同期セグメントバスとバス通信方法
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
IL96808A (en) 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
EP0463721A3 (en) 1990-04-30 1993-06-16 Gennum Corporation Digital signal processing device
WO1991017507A1 (en) 1990-05-07 1991-11-14 Mitsubishi Denki Kabushiki Kaisha Parallel data processing system
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
CA2045773A1 (en) 1990-06-29 1991-12-30 Compaq Computer Corporation Byte-compare operation for high-performance processor
US5111079A (en) 1990-06-29 1992-05-05 Sgs-Thomson Microelectronics, Inc. Power reduction circuit for programmable logic device
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
US5301340A (en) 1990-10-31 1994-04-05 International Business Machines Corporation IC chips including ALUs and identical register files whereby a number of ALUs directly and concurrently write results to every register file per cycle
US5144166A (en) 1990-11-02 1992-09-01 Concurrent Logic, Inc. Programmable logic cell and array
US5245227A (en) 1990-11-02 1993-09-14 Atmel Corporation Versatile programmable logic cell for use in configurable logic arrays
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
US5625836A (en) 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
DE69131272T2 (de) 1990-11-13 1999-12-09 Ibm Paralleles Assoziativprozessor-System
US5617577A (en) 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
US5708836A (en) 1990-11-13 1998-01-13 International Business Machines Corporation SIMD/MIMD inter-processor communication
US5588152A (en) 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
US5734921A (en) 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
US5794059A (en) 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
US5590345A (en) 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
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
IE920032A1 (en) * 1991-01-11 1992-07-15 Marconi Gec Ltd Parallel processing apparatus
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
EP0642094B1 (de) 1991-02-22 1998-09-02 Siemens Aktiengesellschaft Programmierverfahren für einen Logikbaustein
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
EP0539595A4 (en) 1991-04-09 1994-07-20 Fujitsu Ltd Data processor and data processing method
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
CA2109799A1 (en) 1991-05-24 1992-12-10 Daniel Mark Nosenchuck 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
US5327570A (en) 1991-07-22 1994-07-05 International Business Machines Corporation Multiprocessor system having local write cache within each data processor node
US5298805A (en) 1991-08-29 1994-03-29 National Semiconductor Corporation Versatile and efficient cell-to-local bus interface in a configurable logic array
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
US5550782A (en) 1991-09-03 1996-08-27 Altera Corporation Programmable logic array integrated circuits
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
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
WO1993011503A1 (en) 1991-12-06 1993-06-10 Norman Richard S 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
WO1993024895A2 (en) 1992-06-04 1993-12-09 Xilinx, Inc. Timing driven method for laying out a user's circuit onto a programmable integrated circuit device
DE4221278C2 (de) 1992-06-29 1996-02-29 Martin Vorbach Busgekoppeltes Mehrrechnersystem
US5828907A (en) 1992-06-30 1998-10-27 Discovision Associates Token-based adaptive video processing arrangement
ATE184728T1 (de) 1992-07-02 1999-10-15 Atmel Corp Unterbrechungsfreies, wahlfreies zugriffspeichersystem.
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 シャープ株式会社 デジタル信号のサンプリング周波数変換装置
US5386154A (en) 1992-07-23 1995-01-31 Xilinx, Inc. Compact logic cell for field programmable gate array chip
US5365125A (en) 1992-07-23 1994-11-15 Xilinx, Inc. Logic cell for field programmable gate array having optional internal feedback and optional cascade
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
ATE194247T1 (de) 1992-09-03 2000-07-15 Sony Corp Datenaufzeichnungsgerät und -verfahren
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 割り込み処理方法および装置
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
US5357152A (en) 1992-11-10 1994-10-18 Infinite Technology Corporation Logic system of logic networks with programmable selected functions and programmable operational controls
US5394030A (en) 1992-11-10 1995-02-28 Infinite Technology Corporation Programmable logic device
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
JP2977688B2 (ja) 1992-12-18 1999-11-15 富士通株式会社 マルチプロセッシング装置、方法、及びこれらに使用するプロセッサ
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
AU6774894A (en) * 1993-04-26 1994-11-21 Comdisco Systems, Inc. Method for scheduling synchronous data flow graphs
US5339840A (en) * 1993-04-26 1994-08-23 Sunbelt Precision Products Inc. Adjustable comb
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
EP0701713B1 (en) 1993-05-28 2001-07-18 The Regents Of The University Of California Field programmable logic device with dynamic interconnections to a dynamic logic core
IT1260848B (it) 1993-06-11 1996-04-23 Finmeccanica Spa Sistema a multiprocessore
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
US5509129A (en) * 1993-11-30 1996-04-16 Guttag; Karl M. Long instruction word controlling plural independent processor operations
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
JPH07234842A (ja) 1994-02-22 1995-09-05 Fujitsu Ltd 並列データ処理システム
WO1995025306A2 (en) 1994-03-14 1995-09-21 Stanford University Distributed shared-cache for multi-processors
JP3993634B2 (ja) 1994-03-22 2007-10-17 ハイパーチップ インコーポレイテッド システムオペレータとの直接通信のための手段を有する完全集積システムをサポートする効率的なダイレクトセル交換フォールトトレラントアーキテクチャ
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
US5781756A (en) 1994-04-01 1998-07-14 Xilinx, Inc. Programmable logic device with partially configurable memory cells and a method for configuration
US5761484A (en) 1994-04-01 1998-06-02 Massachusetts Institute Of Technology Virtual interconnections for reconfigurable logic systems
US5430687A (en) 1994-04-01 1995-07-04 Xilinx, Inc. Programmable logic device including a parallel input device for loading memory cells
US5504439A (en) 1994-04-01 1996-04-02 Xilinx, Inc. I/O interface cell for use with optional pad
US5896551A (en) 1994-04-15 1999-04-20 Micron Technology, Inc. Initializing and reprogramming circuitry for state independent memory array burst operations control
WO1995028671A1 (en) 1994-04-18 1995-10-26 Green Logic Inc. An improved system logic controller for digital computers
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
US5706478A (en) * 1994-05-23 1998-01-06 Cirrus Logic, Inc. Display list processor for operating in processor and coprocessor modes
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 富士通株式会社 自己修復機能付き情報処理装置
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
US5808487A (en) 1994-11-30 1998-09-15 Hitachi Micro Systems, Inc. Multi-directional small signal transceiver/repeater
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 株式会社日立製作所 データ処理装置
US6128720A (en) 1994-12-29 2000-10-03 International Business Machines Corporation Distributed processing array with component processors performing customized interpretation of instructions
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
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
US5493239A (en) 1995-01-31 1996-02-20 Motorola, Inc. Circuit and method of configuring a field programmable gate array
US5532957A (en) 1995-01-31 1996-07-02 Texas Instruments Incorporated Field reconfigurable logic/memory array
US5742180A (en) 1995-02-10 1998-04-21 Massachusetts Institute Of Technology Dynamically programmable gate array with multiple contexts
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
WO1996025701A1 (en) 1995-02-14 1996-08-22 Vlsi Technology, Inc. Method and apparatus for reducing power consumption in digital electronic circuits
US5537057A (en) 1995-02-14 1996-07-16 Altera Corporation Programmable logic array device with grouped logic regions and three types of conductors
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
US5757207A (en) 1995-03-22 1998-05-26 Altera Corporation Programmable logic array integrated circuit incorporating a first-in first-out memory
US5570040A (en) 1995-03-22 1996-10-29 Altera Corporation Programmable logic array integrated circuit incorporating a first-in first-out memory
US5752035A (en) 1995-04-05 1998-05-12 Xilinx, Inc. Method for compiling and executing programs for reprogrammable instruction set accelerator
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
US5651137A (en) 1995-04-12 1997-07-22 Intel Corporation Scalable cache attributes for an input/output bus
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
US6594752B1 (en) * 1995-04-17 2003-07-15 Ricoh Company, Ltd. Meta-address architecture for parallel, dynamically reconfigurable computing
US5933642A (en) 1995-04-17 1999-08-03 Ricoh Corporation Compiling system and method for 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
JP3329986B2 (ja) 1995-04-28 2002-09-30 富士通株式会社 マルチプロセッサシステム
EP0823091A1 (en) 1995-04-28 1998-02-11 Xilinx, Inc. Microprocessor with distributed registers accessible by programmable logic device
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
US5721921A (en) 1995-05-25 1998-02-24 Cray Research, Inc. Barrier and eureka synchronization architecture for multiprocessors
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
JPH08328941A (ja) 1995-05-31 1996-12-13 Nec Corp メモリアクセス制御回路
JP3677315B2 (ja) 1995-06-01 2005-07-27 シャープ株式会社 データ駆動型情報処理装置
US5652529A (en) 1995-06-02 1997-07-29 International Business Machines Corporation Programmable array clock/reset resource
US5631578A (en) 1995-06-02 1997-05-20 International Business Machines Corporation Programmable array interconnect network
US5646546A (en) 1995-06-02 1997-07-08 International Business Machines Corporation Programmable logic cell having configurable gates and multiplexers
US5671432A (en) 1995-06-02 1997-09-23 International Business Machines Corporation Programmable array I/O-routing resource
US5646544A (en) 1995-06-05 1997-07-08 International Business Machines Corporation System and method for dynamically reconfiguring a programmable gate array
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
US5784313A (en) 1995-08-18 1998-07-21 Xilinx, Inc. Programmable logic device including configuration data or user data memory slices
US5600263A (en) * 1995-08-18 1997-02-04 Xilinx, Inc. Configuration modes 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
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
US5603047A (en) * 1995-10-06 1997-02-11 Lsi Logic Corporation Superscalar microprocessor architecture
JPH09106389A (ja) * 1995-10-12 1997-04-22 Sony Corp 信号処理装置
US5754827A (en) 1995-10-13 1998-05-19 Mentor Graphics Corporation Method and apparatus for performing fully visible tracing of an emulation
US5642058A (en) 1995-10-16 1997-06-24 Xilinx , Inc. Periphery input/output interconnect structure
US5815004A (en) 1995-10-16 1998-09-29 Xilinx, Inc. Multi-buffered configurable logic block output lines in a field programmable gate array
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
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
US5812844A (en) 1995-12-07 1998-09-22 Microsoft Corporation Method and system for scheduling the execution of threads using optional time-specific scheduling constraints
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 シフトレジスタ及びプログラマブル論理回路並びにプログラマブル論理回路システム
US5914906A (en) * 1995-12-20 1999-06-22 International Business Machines Corporation Field programmable memory array
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
US5715476A (en) 1995-12-29 1998-02-03 Intel Corporation Method and apparatus for controlling linear and toggle mode burst access sequences using toggle mode increment logic
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
US6049859A (en) 1996-01-15 2000-04-11 Siemens Aktiengesellschaft Image-processing processor
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 日本電気株式会社 プログラムデバッグシステム
US6247036B1 (en) 1996-01-22 2001-06-12 Infinite Technology Corp. Processor with reconfigurable arithmetic data path
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
US5787007A (en) * 1996-01-30 1998-07-28 Xilinx, Inc. Structure and method for loading RAM data within a programmable logic device
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 김광호 그래픽 데이터의 선입선출기 및 선입선출 방법
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
JP2000513523A (ja) 1996-06-21 2000-10-10 オーガニック システムズ インコーポレイテッド プロセスの即時制御を行う動的に再構成可能なハードウェアシステム
US5892370A (en) 1996-06-21 1999-04-06 Quicklogic Corporation Clock network for field programmable gate array
US5893165A (en) 1996-07-01 1999-04-06 Sun Microsystems, Inc. System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO
US6785826B1 (en) 1996-07-17 2004-08-31 International Business Machines Corporation Self power audit and control circuitry for microprocessor functional units
US6526461B1 (en) 1996-07-18 2003-02-25 Altera Corporation Interconnect chip for programmable logic devices
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
US6058465A (en) 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
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
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)
US6209020B1 (en) 1996-09-20 2001-03-27 Nortel Networks Limited Distributed pipeline memory architecture for a computer system with even and odd pids
US6178494B1 (en) 1996-09-23 2001-01-23 Virtual Computer Corporation Modular, hybrid processor and method for producing a modular, hybrid processor
US5805477A (en) 1996-09-26 1998-09-08 Hewlett-Packard Company Arithmetic cell for field programmable devices
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
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
DE19654593A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit
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
JP3961028B2 (ja) 1996-12-27 2007-08-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データフロープロセッサ(dfp)の自動的なダイナミックアンロード方法並びに2次元または3次元のプログラミング可能なセルストラクチャを有するモジュール(fpga,dpga等)
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.)
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
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
JP3730740B2 (ja) 1997-02-24 2006-01-05 株式会社日立製作所 並列ジョブ多重スケジューリング方法
US6150837A (en) 1997-02-28 2000-11-21 Actel Corporation Enhanced field programmable gate array
WO1998038958A1 (en) 1997-03-05 1998-09-11 Massachusetts Institute Of Technology A reconfigurable footprint mechanism for omnidirectional vehicles
US5884075A (en) 1997-03-10 1999-03-16 Compaq Computer Corporation Conflict resolution using self-contained virtual devices
US6125408A (en) 1997-03-10 2000-09-26 Compaq Computer Corporation Resource type prioritization in generating a device configuration
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
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
US6272257B1 (en) 1997-04-30 2001-08-07 Canon Kabushiki Kaisha Decoder of variable length codes
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
US6230278B1 (en) * 1997-05-02 2001-05-08 Texas Instruments Incorporated Microprocessor with functional units that can be selectively coupled
US6134516A (en) * 1997-05-02 2000-10-17 Axis Systems, Inc. Simulation server 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
US6385672B1 (en) 1997-05-30 2002-05-07 3Com Corporation System to optimize packet buffer utilization via selectively partitioned transmit and receive buffer portions
US6339840B1 (en) 1997-06-02 2002-01-15 Iowa State University Research Foundation, Inc. Apparatus and method for parallelizing legacy computer code
US6895452B1 (en) 1997-06-04 2005-05-17 Marger Johnson & Mccollom, P.C. Tightly coupled and scalable memory and execution unit architecture
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
US5838988A (en) 1997-06-25 1998-11-17 Sun Microsystems, Inc. Computer product for precise architectural update in an out-of-order processor
US6240502B1 (en) 1997-06-25 2001-05-29 Sun Microsystems, Inc. Apparatus for dynamically reconfiguring a processor
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
US6226714B1 (en) 1997-07-15 2001-05-01 International Business Machines Corporation Method for invalidating cache lines on a sharing list
US6020760A (en) 1997-07-16 2000-02-01 Altera Corporation I/O buffer circuit with pin multiplexing
EP0892352B1 (en) 1997-07-18 2005-04-13 Bull S.A. Computer system with a bus having a segmented structure
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
JP3636871B2 (ja) 1997-09-16 2005-04-06 株式会社日立製作所 並列プロセッサシステム
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
US6148407A (en) 1997-09-30 2000-11-14 Intel Corporation Method and apparatus for producing computer platform fingerprints
US5966143A (en) 1997-10-14 1999-10-12 Motorola, Inc. Data allocation into multiple memories for concurrent access
US6034542A (en) * 1997-10-14 2000-03-07 Xilinx, Inc. Bus structure for modularized chip with FPGA modules
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
US6209065B1 (en) 1997-10-24 2001-03-27 Compaq Computer Corporation Mechanism for optimizing generation of commit-signals in a distributed shared-memory system
US6108737A (en) 1997-10-24 2000-08-22 Compaq Computer Corporation Method and apparatus for reducing latency of inter-reference ordering in a multiprocessor system
US6247147B1 (en) 1997-10-27 2001-06-12 Altera Corporation Enhanced embedded logic analyzer
US6122719A (en) 1997-10-31 2000-09-19 Silicon Spice Method and apparatus for retiming in a network of multiple context processing elements
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
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
US5966048A (en) * 1997-11-25 1999-10-12 Hughes Electronics Corporation Low IMD amplification method and apparatus
US6237059B1 (en) 1997-11-26 2001-05-22 Compaq Computer Corporation Method for estimating statistics of properties of memory system interactions among contexts in a computer system
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
US6260114B1 (en) 1997-12-30 2001-07-10 Mcmz Technology Innovations, Llc Computer cache memory windowing
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
US6301706B1 (en) * 1997-12-31 2001-10-09 Elbrus International Limited Compiler method and apparatus for elimination of redundant speculative computations from innermost loops
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
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
US6038646A (en) 1998-01-23 2000-03-14 Sun Microsystems, Inc. Method and apparatus for enforcing ordered execution of reads and writes across a memory interface
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
US6141734A (en) 1998-02-03 2000-10-31 Compaq Computer Corporation Method and apparatus for optimizing the performance of LDxL and STxC interlock instructions in the context of a write invalidate protocol
EP0945788B1 (en) 1998-02-04 2004-08-04 Texas Instruments Inc. Data processing system with digital signal processor core and co-processor and data processing method
US6094726A (en) * 1998-02-05 2000-07-25 George S. Sheng Digital signal processor using a reconfigurable array of macrocells
US6086628A (en) 1998-02-17 2000-07-11 Lucent Technologies Inc. Power-related hardware-software co-synthesis of heterogeneous distributed embedded systems
US7152027B2 (en) 1998-02-17 2006-12-19 National Instruments Corporation Reconfigurable test system
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
DE19807872A1 (de) 1998-02-25 1999-08-26 Pact Inf Tech Gmbh Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
US6088800A (en) 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
FR2776093A1 (fr) 1998-03-10 1999-09-17 Philips Electronics Nv Circuit processeur programmable muni d'une memoire reconfigurable, pour realiser un filtre numerique
US6124868A (en) 1998-03-24 2000-09-26 Ati Technologies, Inc. Method and apparatus for multiple co-processor utilization of a ring buffer
US5990910A (en) 1998-03-24 1999-11-23 Ati Technologies, Inc. Method and apparatus for co-processing multi-formatted data
US6298043B1 (en) 1998-03-28 2001-10-02 Nortel Networks Limited Communication system architecture and a connection verification mechanism therefor
US6079008A (en) * 1998-04-03 2000-06-20 Patton Electronics Co. Multiple thread multiple data predictive coded parallel processing system and method
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
US6119219A (en) 1998-04-30 2000-09-12 International Business Machines Corporation System serialization with early release of individual processor
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
US6286090B1 (en) 1998-05-26 2001-09-04 Compaq Computer Corporation Mechanism for selectively imposing interference order between page-table fetches and corresponding data fetches
US6092174A (en) 1998-06-01 2000-07-18 Context, Inc. Dynamically reconfigurable distributed integrated circuit processor and method
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
JP3123977B2 (ja) 1998-06-04 2001-01-15 日本電気株式会社 プログラマブル機能ブロック
US6587961B1 (en) 1998-06-15 2003-07-01 Sun Microsystems, Inc. Multi-processor system bridge with controlled access
US5991900A (en) 1998-06-15 1999-11-23 Sun Microsystems, Inc. Bus controller
US6138198A (en) 1998-06-15 2000-10-24 Sun Microsystems, Inc. Processor bridge with dissimilar data registers which is operable to disregard data differences for dissimilar data write accesses
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
EP0978944B1 (en) 1998-07-06 2002-01-02 Hewlett-Packard Company, A Delaware Corporation Wiring of cells in logic arrays
AU4848699A (en) 1998-07-08 2000-02-01 Broadcom Corporation A method of sending packets between trunk ports of network switches
WO2001006371A1 (en) 1998-07-21 2001-01-25 Seagate Technology Llc Improved memory system apparatus and method
EP0974898A3 (en) * 1998-07-24 2008-12-24 Interuniversitair Microelektronica Centrum Vzw A 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
US6321296B1 (en) 1998-08-04 2001-11-20 International Business Machines Corporation SDRAM L3 cache using speculative loads with command aborts to lower latency
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
US6216174B1 (en) 1998-09-29 2001-04-10 Silicon Graphics, Inc. System and method for fast barrier synchronization
US6421757B1 (en) 1998-09-30 2002-07-16 Conexant Systems, Inc Method and apparatus for controlling the programming and erasing of flash memory
JP3551353B2 (ja) 1998-10-02 2004-08-04 株式会社日立製作所 データ再配置方法
EP0992916A1 (en) 1998-10-06 2000-04-12 Texas Instruments Inc. Digital signal processor
US6467009B1 (en) 1998-10-14 2002-10-15 Triscend Corporation Configurable processor system unit
US6952827B1 (en) * 1998-11-13 2005-10-04 Cray Inc. User program and operating system interface in a multithreaded environment
US6215326B1 (en) 1998-11-18 2001-04-10 Altera Corporation Programmable logic device architecture with super-regions having logic regions and a memory region
WO2000031652A2 (en) 1998-11-20 2000-06-02 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
SE9804529L (sv) 1998-12-23 2000-06-24 Axis Ab Flexibel minneskanal
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
US6226717B1 (en) 1999-02-04 2001-05-01 Compaq Computer Corporation System and method for exclusive access to shared storage
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
US6457100B1 (en) 1999-09-15 2002-09-24 International Business Machines Corporation Scaleable shared-memory multi-processor computer system having repetitive chip structure with efficient busing and coherence controls
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
US6288566B1 (en) 1999-09-23 2001-09-11 Chameleon Systems, Inc. Configuration state memory for functional blocks on a reconfigurable chip
US6311200B1 (en) 1999-09-23 2001-10-30 Chameleon Systems, Inc. Reconfigurable program sum of products generator
US6631487B1 (en) 1999-09-27 2003-10-07 Lattice Semiconductor Corp. On-line testing of field programmable gate array resources
DE19946752A1 (de) 1999-09-29 2001-04-12 Infineon Technologies Ag Rekonfigurierbares Gate-Array
US6598128B1 (en) 1999-10-01 2003-07-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6412043B1 (en) 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6526430B1 (en) 1999-10-04 2003-02-25 Texas Instruments Incorporated Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing)
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
EP1230591B1 (en) 1999-11-18 2007-01-03 Sun Microsystems, Inc. Decompression bit processing with a general purpose alignment tool
JP2001167066A (ja) 1999-12-08 2001-06-22 Nec Corp プロセッサ間通信方法及びマルチプロセッサシステム
US6501999B1 (en) 1999-12-22 2002-12-31 Intel Corporation Multi-processor mobile computer system having one processor integrated with a chipset
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 プログラマブル論理回路装置によるデータ処理方法、プログラマブル論理回路装置、情報処理システム、プログラマブル論理回路装置への回路再構成方法
WO2001055866A1 (en) 2000-01-28 2001-08-02 Morphics Technolgoy Inc. A wireless spread spectrum communication platform using dynamically reconfigurable logic
US6925641B1 (en) 2000-02-04 2005-08-02 Xronix Communications, Inc. Real time DSP load management system
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
US6763327B1 (en) 2000-02-17 2004-07-13 Tensilica, Inc. Abstraction of configurable processor functionality for operating systems portability
US7036106B1 (en) 2000-02-17 2006-04-25 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
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
US6675265B2 (en) 2000-06-10 2004-01-06 Hewlett-Packard Development Company, L.P. Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants
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
US6799265B1 (en) 2000-07-11 2004-09-28 Intel Corporation Dependency checking for reconfigurable logic
US20030028690A1 (en) 2000-07-20 2003-02-06 John Appleby-Alis System, method and article of manufacture for a reconfigurable hardware-based multimedia device
US20020100029A1 (en) * 2000-07-20 2002-07-25 Matt Bowen System, method and article of manufacture for compiling and invoking C functions in hardware
DE10036627A1 (de) 2000-07-24 2002-02-14 Pact Inf Tech Gmbh Integrierter Schaltkreis
DE10129237A1 (de) 2000-10-09 2002-04-18 Pact Inf Tech Gmbh Verfahren zur Bearbeitung von Daten
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)
US7924837B1 (en) 2000-07-31 2011-04-12 Avaya Communication Israel Ltd. IP multicast in VLAN environment
US6542844B1 (en) 2000-08-02 2003-04-01 International Business Machines Corporation Method and apparatus for tracing hardware states using dynamically reconfigurable test circuits
US6754805B1 (en) 2000-08-07 2004-06-22 Transwitch Corporation Method and apparatus for configurable multi-cell digital signal processing employing global parallel configuration
US7257780B2 (en) 2000-08-07 2007-08-14 Altera Corporation Software-to-hardware compiler
EP1182559B1 (en) 2000-08-21 2009-01-21 Texas Instruments Incorporated Improved microprocessor
US7249351B1 (en) 2000-08-30 2007-07-24 Broadcom Corporation System and method for preparing software for execution in a dynamically configurable hardware environment
US6829697B1 (en) 2000-09-06 2004-12-07 International Business Machines Corporation Multiple logical interfaces to a shared coprocessor resource
US6538470B1 (en) 2000-09-18 2003-03-25 Altera Corporation Devices and methods with programmable logic and digital signal processing regions
US7346644B1 (en) 2000-09-18 2008-03-18 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
GB2367647B (en) 2000-10-03 2002-11-20 Sun Microsystems Inc Resource access control for a processor
US6525678B1 (en) 2000-10-06 2003-02-25 Altera Corporation Configuring a programmable logic device
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
US7595659B2 (en) 2000-10-09 2009-09-29 Pact Xpp Technologies Ag Logic cell array and bus system
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 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 구성가능한 기능 유닛을 구비한 데이터 프로세싱 디바이스
US6643747B2 (en) 2000-12-27 2003-11-04 Intel Corporation Processing requests to efficiently access a limited bandwidth storage area
US6571322B2 (en) 2000-12-28 2003-05-27 International Business Machines Corporation Multiprocessor computer system with sectored cache line mechanism for cache intervention
US6426649B1 (en) 2000-12-29 2002-07-30 Quicklogic Corporation Architecture for field programmable gate array
US6483343B1 (en) 2000-12-29 2002-11-19 Quicklogic Corporation Configurable computational unit embedded in a programmable device
US6522167B1 (en) 2001-01-09 2003-02-18 Xilinx, Inc. User configurable on-chip memory system
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
US6633242B2 (en) 2001-02-08 2003-10-14 Sun Microsystems, Inc. Entropy coding using adaptable prefix codes
US6847370B2 (en) 2001-02-20 2005-01-25 3D Labs, Inc., Ltd. Planar byte memory organization with linear access
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices 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
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7210129B2 (en) 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
GB2373595B (en) 2001-03-15 2005-09-07 Italtel Spa A system of distributed microprocessor interfaces toward macro-cell based designs implemented as ASIC or FPGA bread boarding and relative common bus protocol
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
US20030086300A1 (en) 2001-04-06 2003-05-08 Gareth Noyes 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
US7155602B2 (en) 2001-04-30 2006-12-26 Src Computers, Inc. Interface for integrating reconfigurable processors into a general purpose computing system
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
JP2004533691A (ja) 2001-06-20 2004-11-04 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データを処理するための方法
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis 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
US7996827B2 (en) * 2001-08-16 2011-08-09 Martin Vorbach 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
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
US6868476B2 (en) 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
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
US7472230B2 (en) 2001-09-14 2008-12-30 Hewlett-Packard Development Company, L.P. Preemptive write back controller
US20030056091A1 (en) 2001-09-14 2003-03-20 Greenberg Craig B. Method of scheduling in a reconfigurable hardware architecture with multiple hardware configurations
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
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US6854073B2 (en) 2001-09-25 2005-02-08 International Business Machines Corporation Debugger program time monitor
US6798239B2 (en) 2001-09-28 2004-09-28 Xilinx, Inc. Programmable gate array having interconnecting logic to support embedded fixed logic circuitry
US6625631B2 (en) 2001-09-28 2003-09-23 Intel Corporation Component reduction in montgomery multiplier processing element
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
US6922821B1 (en) * 2001-11-15 2005-07-26 Cypress Semiconductor Corp. System and a method for checking lock step consistency between an in circuit emulation and a microcontroller while debugging process is in progress
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
US7188234B2 (en) * 2001-12-12 2007-03-06 Intel Corporation Run-ahead program execution with value prediction
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
DE10204044A1 (de) 2002-02-01 2003-08-14 Tridonicatco Gmbh & Co Kg Elektronisches Vorschaltgerät für Gasentladungslampe
US6476634B1 (en) 2002-02-01 2002-11-05 Xilinx, Inc. ALU implementation in single PLD logic cell
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
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
US6708708B2 (en) * 2002-07-25 2004-03-23 The Boeing Company Pneumatic actuation control system and method of operation
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
WO2005010632A2 (en) 2003-06-17 2005-02-03 Pact Xpp Technologies Ag Data processing device and method
US6865662B2 (en) 2002-08-08 2005-03-08 Faraday Technology Corp. Controlling VLIW instruction operations supply to functional units using switches based on condition head field
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
EP1537486A1 (de) 2002-09-06 2005-06-08 PACT XPP Technologies AG Rekonfigurierbare sequenzerstruktur
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
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
US6816814B2 (en) 2002-11-12 2004-11-09 Sonics, Inc. Method and apparatus for decomposing and verifying configurable hardware
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
US20130111188A9 (en) 2003-07-24 2013-05-02 Martin Vorbach Low latency massive parallel data processing device
US7127560B2 (en) 2003-10-14 2006-10-24 International Business Machines Corporation Method of dynamically controlling cache size
US7412581B2 (en) 2003-10-28 2008-08-12 Renesas Technology America, Inc. Processor for virtual machines and method therefor
TW200532454A (en) 2003-11-12 2005-10-01 Gatechange Technologies Inc System and method for message passing fabric in a modular processor architecture
US8645927B2 (en) * 2003-11-24 2014-02-04 The Boeing Company Methods and apparatus for simulation speedup
US8495122B2 (en) 2003-12-29 2013-07-23 Xilinx, Inc. Programmable device with dynamic DSP architecture
US7840627B2 (en) 2003-12-29 2010-11-23 Xilinx, Inc. Digital signal processing circuit having input register blocks
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
US7870182B2 (en) 2003-12-29 2011-01-11 Xilinx Inc. Digital signal processing circuit having an adder circuit with carry-outs
US7038952B1 (en) 2004-05-04 2006-05-02 Xilinx, Inc. Block RAM with embedded FIFO buffer
US7290238B2 (en) 2004-05-12 2007-10-30 International Business Machines Corporation Method, system and program product for building an automated datapath system generating tool
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 アルトリックス ロジック,インク. 可変精度相互接続を具えたデータ処理エレメントの配列
DE102005021749A1 (de) 2005-05-11 2006-11-16 Fachhochschule Dortmund Verfahren und Vorrichtung zur programmgesteuerten Informationsverarbeitung
US7933838B2 (en) 2005-05-17 2011-04-26 Zhishen Ye Apparatus for secure digital content distribution and methods therefor
US20070043965A1 (en) 2005-08-22 2007-02-22 Intel Corporation Dynamic memory sizing for power reduction
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
DE102006054052B4 (de) 2006-11-16 2018-11-29 Siemens Aktiengesellschaft Drehübertrager
SG150395A1 (en) 2007-08-16 2009-03-30 Micron Technology Inc Stacked microelectronic devices and methods for manufacturing stacked microelectronic devices
US8463835B1 (en) 2007-09-13 2013-06-11 Xilinx, Inc. Circuit for and method of providing a floating-point adder
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
US8790099B2 (en) 2008-01-29 2014-07-29 Dafeng Fengtai Fluid Machinery Technology Co., Ltd. Rotary compressor with synchronous turning between cylinder block and rotor
JP2010277303A (ja) 2009-05-28 2010-12-09 Renesas Electronics Corp 半導体装置及び異常検出方法
KR101947722B1 (ko) 2012-06-07 2019-04-25 삼성전자주식회사 적층 반도체 패키지 및 이의 제조방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04175974A (ja) * 1990-11-09 1992-06-23 Hitachi Ltd コプロセッサ論理回路自動生成方法
JPH10256383A (ja) * 1997-03-12 1998-09-25 Toshiba Corp 半導体装置及びその回路構成方法
WO1999000731A1 (en) * 1997-06-27 1999-01-07 Chameleon Systems, Inc. Method for compiling high level programming languages
JPH11120210A (ja) * 1997-10-21 1999-04-30 Toshiba Corp 再構成可能な回路の設計装置、及び再構成可能な回路装置

Also Published As

Publication number Publication date
WO2000077652A3 (de) 2002-04-25
EP1228440B1 (de) 2017-04-05
WO2000077652A2 (de) 2000-12-21
AU5805300A (en) 2001-01-02
US20200057749A1 (en) 2020-02-20
US20110012640A1 (en) 2011-01-20
US10409765B2 (en) 2019-09-10
US20140337601A1 (en) 2014-11-13
US20100287324A1 (en) 2010-11-11
CN1378665A (zh) 2002-11-06
WO2000077652A9 (de) 2004-03-25
US9690747B2 (en) 2017-06-27
DE10081643D2 (de) 2002-05-29
US20150100756A9 (en) 2015-04-09
US20100228918A1 (en) 2010-09-09
US8726250B2 (en) 2014-05-13
US8312200B2 (en) 2012-11-13
US8230411B1 (en) 2012-07-24
EP1228440A2 (de) 2002-08-07
US20170286364A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
JP2003505753A (ja) セル構造におけるシーケンス分割方法
US7996827B2 (en) Method for the translation of programs for reconfigurable architectures
US8301872B2 (en) Pipeline configuration protocol and configuration unit communication
US7210129B2 (en) Method for translating programs for reconfigurable architectures
US7249351B1 (en) System and method for preparing software for execution in a dynamically configurable hardware environment
US7657877B2 (en) Method for processing data
US20060259744A1 (en) Method for information processing
US20070169033A1 (en) Software-to-hardware compiler
US7032103B2 (en) System and method for executing hybridized code on a dynamically configurable hardware environment
US20060075211A1 (en) Method and device for data processing
WO2012167933A1 (en) Tool-level and hardware-level code optimization and respective hardware modification
US20150033000A1 (en) Parallel Processing Array of Arithmetic Unit having a Barrier Instruction
Raimbault et al. Fine grain parallelism on a MIMD machine using FPGAs
US20080120497A1 (en) Automated configuration of a processing system using decoupled memory access and computation
JP2005508029A (ja) リコンフィギュアラブルアーキテクチャのためのプログラム変換方法
EP1470478A2 (en) Method and device for partitioning large computer programs
EP1742159A2 (en) Software-to-Hardware compiler
Andersson et al. Automatic local memory architecture generation for data reuse in custom data paths

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100825

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110204