JP2002505480A - データフロープロセッサおよび2次元またはそれ以上の次元のプログラミング可能なセル構造をもつコンポーネントにおけるコンフィグレーションデータの階層的キャッシュ方法 - Google Patents

データフロープロセッサおよび2次元またはそれ以上の次元のプログラミング可能なセル構造をもつコンポーネントにおけるコンフィグレーションデータの階層的キャッシュ方法

Info

Publication number
JP2002505480A
JP2002505480A JP2000533829A JP2000533829A JP2002505480A JP 2002505480 A JP2002505480 A JP 2002505480A JP 2000533829 A JP2000533829 A JP 2000533829A JP 2000533829 A JP2000533829 A JP 2000533829A JP 2002505480 A JP2002505480 A JP 2002505480A
Authority
JP
Japan
Prior art keywords
instruction
instruction sequence
data
configuration
memory
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.)
Granted
Application number
JP2000533829A
Other languages
English (en)
Other versions
JP4215394B2 (ja
JP2002505480A5 (ja
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
Application filed by ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング filed Critical ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング
Publication of JP2002505480A publication Critical patent/JP2002505480A/ja
Publication of JP2002505480A5 publication Critical patent/JP2002505480A5/ja
Application granted granted Critical
Publication of JP4215394B2 publication Critical patent/JP4215394B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache

Abstract

(57)【要約】 これまでのように、すべてのコンフィグレーション要求を処理する中央のグローバルなユニットをコンポーネントに統合する代わりに、階層状に(ツリー構造で)配置され上述の役割を担うことのできる複数のアクティブなユニットが設けられている。この場合、最下位平面(階層構造におけるリーフ)からの要求は、その要求を処理できなかったときだけ、次に高い位置におかれた平面へ転送される。このステップは、最上位におかれた平面に到達するまで、存在するすべての平面に対して繰り返される。最も高い位置におかれた平面は、内部または外部の上位のコンフィグレーションメモリと接続されており、このメモリにはそのプログラムの実行にかつて必要とされたすべてのコンフィグレーションデータが含まれている。コンフィグレーションユニットがツリー構造を有していることから、コンフィグレーションデータの一種のキャッシングが実現される。コンフィグレーションへのアクセスは、主としてローカルで行われる。最も不都合な状況において、階層状に配置されたCTのいずれにも該当データが存在しない場合には、上位のコンフィグレーションメモリからコンフィグレーションをロードする必要がある。ロードすべきコンフィグレーションについて一定の時間順序を取り入れ、複数のコンフィグレーションを1つのリストにまとめることによって、デッドロックが回避される。CELのステータス情報がロードの前に保護され、これによりその情報は、複数のコンフィグレーションから成るリスト全体が処理されている間、変更されずに保持される。

Description

【発明の詳細な説明】
【0001】 発明の背景 従来の技術 この出願が基礎とする従来技術は、特許出願 196 54 846.2-53 (2次元また はそれ以上の次元のプログラミング可能なセルマトリックス(FPGA,DPG
A等)を備えたデータフロープロセッサ(DFP)およびコンポーネントの自立
的ダイナミックリロード方法)、ならびに特許出願 196 54 593.5-53 (ランタ イムにプログラミング可能なコンポーネントの再コンフィグレーション方法)に
記載されている。そこにはDFPならびにFPGA、DPGAおよび従来技術に
よる類似のコンポーネントをコンフィグレーションおよび再コンフィグレーショ
ンする方法について記述されており、それによれば別個に形成され中央で上位に
位置するマイクロコントローラに似たコンポーネントが、下位に位置するかなり
パッシブな制御ユニットの配分の役割を担っている。
【0002】 問題点 1つまたは複数のコンポーネントの各部分(たとえばセル(CEL))の再コ
ンフィグレーションを制御する中央のグローバルなユニットを使用すると、数多
くの様々な再コンフィグレーション要求を一度に処理しなければならないときに
隘路となってしまう。既述のコンポーネントの並列性の長所は、上記のような中
央ユニットによって制約されてしまう。なぜならばそれらは典型的な「ボトルネ
ック」を成しており、データ処理がこれにより著しく緩慢になってしまう。さら
に、ロードすべきコンフィグレーションへのイベントソースの割り当てが問題と
なる。それというのも、コンフィグレーションメモリの絶対アドレスで動作が行
われるからである。したがって再コンフィグレーションユニットには一種のメモ
リ管理システムが含まれていなければならず、これはオペレーティングシステム
の場合のように、どのメモリ領域がどのコンフィグレーションによって使われる
のかをいっしょに記録する。さらに付加的な問題として、リソース(たとえばC
EL)の管理が挙げられる。この場合、各CEL(セル)が正確に1度だけしか
、リコンフィグレーション要求により始められたアルゴリズムしかも残りの周辺
のCELも使用するアルゴリズムへ与えられないようにしておかなければならな
い。さもないとデッドロックの生じる可能性がある。
【0003】 再コンフィグレーションの問題点をもう一度はっきりとさせるため、以下の実
例を挙げる。複数のCELから成る1つのマトリックスはコンフィグレーション
されておらず、RESET状態にある。各CELは、それらが再コンフィグレー
ションされた状態にあるか否かを表すことができる。マトリックスにおけるすべ
てのCELはコンフィグレーションに対しスタンバイ状態にあり、つまり再コン
フィグレーション可能な状態にある。第1のコンフィグレーションルーチン(K
R1)がロードされ、その際、マトリックスは完全には使用されない。コンフィ
グレーションされたCELは、それがコンフィグレーション可能な状態にあると
いう合図を消す。まだコンフィグレーションされていないCELのグループに、
第1のコンフィグレーションルーチンとは独立した第2のコンフィグレーション
ルーチン(KR2)がロードされる。この場合、第3のコンフィグレーションル
ーチンはロードできない。なぜならばこれらのセルは第1および/または第2の
コンフィグレーションルーチンに必要とされ、それらは使われるためコンフィグ
レーション可能な状態にはないからである。必要とされるCELが開放されるま
で、すなわちKR1とKR2が終了してしまうまで、KR3は停止されなければ
ならない。KR1およびKR2の実行中、第4のコンフィグレーションルーチン
(KR4)および第5のコンフィグレーションルーチン(KR5)に対するロー
ド要求がさらに生じるけれども、それらをすべてただちに実行することはできな
い。なぜならばそれらは、KR1およびKR2により使われるCELを利用する
からである。KR3とKR4は部分的に同じCELを使用するが、KR5はKR
3およびKR4によるCELのいずれも使用しない。
【0004】 KR3からKR5を順序どおりにリドードするための要求は以下の通りである
: 1.KR3からKR5を、ロード要求に従い時間的な順序ができるかぎり保持さ
れるようロードすること。
【0005】 2.最大限の並列性を維持するため、互いに依存せずつまり共通のCELをもた
ないできるかぎり数多くのKRをロードすること。
【0006】 3.各KRが互いにブロックし合ってはならない。つまりKR3は部分的にロー
ドされるが、他のCELが部分的にロードされたKR4にブロックされているの
で、それ以上はロードできない。他方、KR4もそれ以上はロードできない。そ
れというのも、同様に必要とされるCELがKR3によりブロックされているか
らである。このことにより典型的なデッドロック状態が引き起こされる。
【0007】 4.KRを生成したコンパイラにとって、時間的に重なるKRの実行を識別し、
コンフリクト状態を解消するのは不可能である。
【0008】 この場合、実現すべき回路にかかるコストと最適な結果との間の関係を、でき
るかぎり良好なものにしなければならない。つまり本発明の目的は、できるかぎ
りわずかなコストでフレキシブル、パラレルかつデッドロックのないコンフィグ
レーションを行うことができるようにし、時間的にも計算上も僅かな手間しかか
けずにそれを実行できるようにすることである。この場合、以下の基本的な問題
を解決しなければならない: −K3だけしかロードしないのであれば、そのやり方によってもデッドロックは
発生しないが、KR5もロード可能であろうことから、それは最適ではない。
【0009】 −KR3をロードし、KR4をロードしなければ、KR5はKR4を、それが後
続のロードプロセスにあたり最高優先度をもつようあらかじめ記録しておかねば
ならず、このことは管理の手間が著しくかかることを意味する。
【0010】 デッドロックのない状態は、以下で述べる方法によって得られる: 本発明による改善、課題 本発明の基本的な課題は、階層構造をもち各レベルに何度も現れることのでき
るユニット(以下ではコンフィグレーションテーブルCTと称する)を構成する
ことであり、その際にCTの個数を、最上位レベルにおいてちょうど1つのCT
が存在するよう、最下位の階層段から最上位の階層段に向かって低減させる。各
CTは他のパラレルなCTとは無関係に、コンフィグレーション可能な複数のエ
レメント(CEL)のコンフィグレーションおよびコントロールを行う。高い方
の階層段におけるCTは、低い階層におかれたCTのためのコンフィグレーショ
ンルーチンを一時記憶することができる。低い階層におかれた複数のCTが同一
のコンフィグレーションルーチンを必要とする場合、そのルーチンが高い階層に
おかれたCTにおいて一時記憶され、個々のCTから呼び出される。この場合、
高い階層におかれたCTは該当するコンフィグレーションルーチンをグローバル
な共通のコンフィグレーションメモリから1度呼び出すだけであり、これによっ
てキャッシュ効果が達成される。コンフィグレーション可能なコンポーネントか
ら離れて、マイクロプロセッサ、DFPあるいは複数の計算機構をもつ同等のも
のにおいて、命令キャッシュおよびデータキャッシュ用のキャッシュ方法として
本発明を使用することができる。この場合、用途に応じて、以下で説明するユニ
ットのうちのいくつか(たとえばFILMO)を省略できるが、階層構造につい
ては基本的に変更されない。したがってこの使用法はサブセットとみなされ、こ
れについてはこれ以上詳しくは立ち入らない。ここで述べる方法が慣用のキャッ
シュ方法よりも著しく有利な点は、データおよび/またはコードが選択的に、つ
まり精密にアルゴリズムに合わせてチューニングされた方法に基づきキャッシュ
されることである。さらに本発明によれば、完全にデッドロックのない大きいセ
ル構造の再コンフィグレーションを行えるようにもなる。
【0011】 本発明の説明 従来のように中央のグローバルなユニットを、すべてのコンフィグレーション
要求を処理する1つのコンポーネントに統合する代わりに、本発明によればその
役割を担うことができ階層構造(ツリー構造)で配置された複数のアクティブな
ユニットが設けられている。その際、最下位レベル(階層構造におけるリーフ)
からの要求は、その要求を処理できなかったときだけ、1つ上の階層レベルへ転
送される。これらのステップは最上位レベルに到達するまで、存在するすべての
レベルに対して繰り返される。最上位のレベルはさらに上位に位置する内部また
は外部のコンフィグレーションメモリとつながっており、これにはこのプログラ
ム実行にいつか必要とされるコンフィグレーションデータが含まれている。
【0012】 コンフィグレーションユニットにおけるツリー構造によって、コンフィグレー
ションデータに対する一種のキャッシングが達成される。コンフィグレーション
に対するアクセスは、主としてローカルで行われる。最も不利な状況として、該
当するデータが階層構造で配置されたCTのいずれにも存在しない場合、上位に
位置するコンフィグレーションメモリからコンフィグレーションをロードする必
要がある。その際、ロードすべきコンフィグレーションについて固定的な時間順
序を取り入れ、コンフィグレーションを1つのリストにまとめることによって、
デッドロックが回避される。CELのステータス情報はロード前に保護され、こ
れによりコンフィグレーションのリスト全体が使われている間、変更されずに保
持される。
【0013】 CTの基礎 コンフィグレーションテーブル(CT)は、同期信号いわゆるトリガに対して
応答するアクティブなユニットである。このトリガは、慣用の算術ユニットまた
は論理ユニット、アドレス発生器、演算ユニット等のための複数の電子コンポー
ネント(以下ではコンフィグレーション可能なエレメントCELと称する)から
成る2次元またはそれ以上の次元のマトリックスにより生成される。発生するト
リガに基づき、CT内で所定のアクションが引き起こされる。この場合、CTの
役割は、複数のCELの制御を引き継ぎ、それらの算術演算および/または論理
演算を求めることである。殊に、CELをコンフィグレーションおよび再コンフ
ィグレーションする必要がある。この役割をCTが担うが、これはそれぞれ複数
の個々のコンフィグレーションワード(KW)から成る可能な複数のコンフィグ
レーションルーチン(KR)を管理し、複数のCELをトリガ条件に基づきKR
のうちの1つまたは複数によってコンフィグレーションすることによって行われ
る。その際、CELには、それぞれコンフィグレーションワードの1つまたは複
数が含まれており、これにはコンフィグレーションすべきCELのアドレスが設
けられている。この場合、KRは完全かつ適正に複数のCELにコピーされなけ
ればならず、ここで複数のCELを、それぞれ異なるが完全に実行されるKRに
よりコンフィグレーションされるグループにまとめておくことができる。その際
、すべてのCELはグループ内で次のように結線されている。すなわち、必要と
される再コンフィグレーションの確認後、グループ分けされたすべてのCELに
対し共通の信号(ReConfig)により、各CELがデータ処理を終了し再
コンフィグレーション可能な状態へ移行しなければならないことが通知されるよ
う、グループ内で結線されている。
【0014】 デッドロックのない再コンフィグレーションの基礎 ランタイムに再コンフィグレーション可能なシステムにおいて生じる問題点は
、そのつど2つの部分が互いに待機し、したがってデッドロック状況の生じた状
態にシステムが陥ってしまう可能性のあることである。
【0015】 このような問題点は、新しいコンフィグレーションをシステムに必ずまるごと
ロードするかまったくロードしないかだけにし、あるいは一種のタイムアウト手
法を適用すれば回避できよう。とはいえこれにより一連の欠点(所要スペース、
伝播時間等)や問題点が生じてしまう。たとえば、 −コンフィグレーションをロードできない場合の措置 −コンフィグレーションをロードする順序の管理 −場合によってはCELにロードすることができるかもしれない他のコンフィグ
レーションが留意されないため、パフォーマンスの落ち込み などである。
【0016】 以下で説明する方法によれば、これらの問題点を除去することができる。これ
は従来技術によるDFPシステムから出発するものである。
【0017】 あるCELからトリガ信号がCTへ送られる。このCTはトリガのソースを突
き止め、ルックアップテーブルによりロードすべきコンフィグレーション(KR
)を選択する。到来するトリガ信号は阻止され、目下のコンフィグレーションが
完全に処理されてしまうまで、他のいかなるトリガも受けつけない。1つのコン
フィグレーションは複数の命令から成り、これは複数のCELの集合へ伝送され
る。しかし伝播時間にコンフィグレーション可能なシステムでは、いかなるコン
フィグレーション命令(KW)も実行できるという保証がない。これはたとえば
、アドレッシングされたコンフィグレーション可能なエレメント(CEL)がそ
のタスクを依然として終了せず、したがって新たなコンフィグレーションデータ
を受け取ることができないようなことになって失敗してしまうおそれがある。パ
フォーマンスの劣化を避ける目的で、(対応するCELが再コンフィグレーショ
ン可能な状態になくコンフィグレーションを拒否(REJECT)したため)実
行できなかったすべてのコンフィグレーション命令が、FIFOに従い(以下で
詳しく説明する)専用メモリ(FILMO)内に最後に存在するコンフィグレー
ション命令の後ろに書き込まれる。その後、次のコンフィグレーション命令が同
じやり方で処理される。これは1つのコンフィグレーションの最後に到達するま
で繰り返される。
【0018】 ついでCTは再び、場合によっては別のコンフィグレーションをロードできる
ようにするためトリガ信号を受けつける状態へ移行する。この状態でCTはFI
LMOをタイマ制御により規則的なインターバルで処理する。
【0019】 ロードすべきコンフィグレーションの優先順位づけは、本来ロードすべきコン
フィグレーションが処理される前にCTがメモリFILMOを通過することによ
り行われる。FIFOに似たFILMOの構造により、先行のトリガ要求中に完
全には処理できなかったKWが新たに処理すべきWKよりも高い優先順位を自動
的にもつようにされる。メモリ(FILMO)の処理にあたり、コンフィグレー
ション命令によりアドレッシングされるコンフィグレーション可能な各エレメン
ト(CEL)は、KWの送信前または送信中、状態「コンフィグレーション可能
」にあるか否かについてテストされる。この状態「コンフィグレーション可能」
(ACCEPT)にあれば、データが伝送され、メモリFILMOから消去され
る。状態「コンフィグレーション不可能」(REJECT)にあれば、データは
FILMO内に残され、次のスキャン時に新たに処理される。CTはFILMO
内の次のエントリを処理する。これはFILMOの最後に到達するまで繰り返さ
れる。その後、トリガ信号の発生によりアクティブにされた本来のコンフィグレ
ーションが処理される。この場合、FILMOの構造はFIFO方式に対応し、
つまり最も古いエントリが一番最初に処理される。新たなKRがロードされなく
てもFILMOを処理する目的で、FILMOはタイマ制御により規則的なイン
ターバルでスキャンされる。
【0020】 関与していないそれ以外のコンフィグレーション可能なエレメント(CEL)
はこのフェーズ中、パラレルに処理され続け、それらの機能に作用が及ぼされな
い。これによりCTがFILMOを処理している間、1つまたは複数のコンフィ
グレーション可能なエレメント(CEL)が状態「コンフィグレーション可能」
へ移行するような状況が起こり得る。CTはFILMO内における任意の個所で
処理状態になる可能性があるため、以下のような状況の発生する可能性がある: CTは、アドレッシングされたコンフィグレーションすべきエレメント(CE
L)が状態「コンフィグレーション可能」におかれていないような最初の命令の
処理するよう試みる。これによりCTは次の命令(KW)を続行する。同じ時点
で、1つまたは複数のコンフィグレーション可能なエレメントが状態「コンフィ
グレーション可能」に移行し、それには第1のコンフィグレーション命令により
書き込まれたかもしれないコンフィグレーション可能なエレメントも含まれる。
CTは第2のコンフィグレーション命令(KW)を処理し、これは第1のコンフ
ィグレーション命令と同じであるが他のコンフィグレーションからのものである
コンフィグレーション可能なエレメント(CEL)を使用する。この時点で、コ
ンフィグレーション可能なエレメント(CEL)は状態「コンフィグレーション
可能」にあり、命令をうまく処理することができる。
【0021】 これにより、最初にロードすべきコンフィグレーションが実際にやはり最初に
仕上げられる、という保証がもはやなくなる。この場合、部分的に完成した2つ
のコンフィグレーションの存在する可能性があり、それらは完全にロードできる
ようにするためにそれぞれ他方のコンフィグレーションのコンフィグレーション
可能なエレメントを必要とする。ここでデッドロック状態が発生し、これは図1
8に示されている。この場合、コンフィグレーションAとコンフィグレーション
Bをコンフィグレーションしようとしている。CTは、コンフィグレーションA
とコンフィグレーションBにおけるハッチングされた部分をすでにロードしてい
る。コンフィグレーションAは完成のために、コンフィグレーションBのうち明
るく二重にハッチングされた領域をさらに必要とし、コンフィグレーションBは
完成のために、コンフィグレーションAのうち暗く二重にハッチングされた領域
を必要とする。これら両方のコンフィグレーションはともにまだ完全には終わっ
ておらず、したがって機能を果たす能力もないので、双方のコンフィグレーショ
ンのいずれについてもこれら2つのコンフィグレーションの一方が取り除かれる
であろう終了状態には入らない。これらのコンフィグレーションは両方とも、ま
だ必要としているコンフィグレーション可能なエレメントが開放されるのを待っ
ている。
【0022】 本発明による方法の場合、デッドロックは次のようにして回避される。すなわ
ち、CTがFILMOの処理前にコンフィグレーション可能なすべてのエレメン
トの状態を捕捉し、それに従って事象が終了するまでいかなる変化ももはや許可
せず、つまり発生する変化を無視するようにしている。換言すれば、コンフィグ
レーション可能なすべてのエレメントの状態がFILMOの処理前に保護され、
あるいはFILMOの処理中、状態の変化が阻止される。1つの実現可能な技術
的形態は、コンフィグレーション可能な各エレメントにおいて1つのレジスタを
使用し、そのレジスタへFILMO処理前の状態を入れて保護することである。
CTは捕捉された状態だけに基づき動作し、コンフィグレーション可能なエレメ
ントの目下の状態によっては動作しない。これにより、処理すべき命令(KW)
がコンフィグレーション可能なエレメント(CEL)の等しい状態を確実に見出
せるようになる。このステップは、1つまたは複数のコンフィグレーション可能
なエレメントがFILMOの処理中に状態「コンフィグレーション可能」へ移行
することを排除していない。この変化はCTには処理中にすぐさまは見えず、次
の実行開始になってようやく気がつくことになる。
【0023】 コンフィグレーションの順序 所定のアルゴリズムのコンフィグレーションのためにどうしても必要であるの
は、KWをCELに書き込む順序を正確に守ることである。たとえば有用である
のは、CELをバスシステムへつなぐ前、まずはじめにバスシステムのコンフィ
グレーションを行うことであり、それによってCELが他のルーチンによって使
われているバスと接続されることがなくなる。換言すれば、対応するバスコネク
ションのコンフィグレーションを事前に行うことができたときにだけ、CELの
コンフィグレーションが行われる。
【0024】 本発明による方法の場合、固定的な順序の遵守は以下のようにして達成される
: 後続のKWのコンフィグレーションにとって重要な構成をもつコンフィグレー
ションワード(KW)は、特別に表される(以下ではKWRと称する)。このよ
うなKWRのコンフィグレーションが失敗すると、該当するコンフィグレーショ
ンルーチン(KR)内における後続のすべてのKWがFILMOに書き込まれ、
この過程では実行されない。FILMOのスキャン時にも、順序がKWRの後方
にありコンフィグレーションの失敗したすべてのKWは、目下の過程では実行さ
れない。
【0025】 キャッシュ方法 CT構造は階層構造であって、つまり1つのコンポーネント内に複数のCTレ
ベルが存在する。この配置構成は、有利には木構造(CTツリー)に対応する。
この場合、ルートCT(Root−CT)は外部のコンフィグレーションメモリ
(ECR)であり、これにはすべてのKRが対応づけられて格納されている一方
、リーフにはコンフィグレーション可能なエレメント(CEL)が対応づけられ
ており、これによって個々のKRが呼び出される。中間レベルのCTにはそれぞ
れコンフィグレーション可能なエレメントが対応づけられており、これらは同じ
階層段階におかれている。各CTにはローカルな内部メモリが対応づけられてい
る。このメモリは、新たに格納すべきKRのためにもはやスペースがないとき、
あるいはそのことが特別なCT命令(REMOVE)によって明示的に要求され
たとき、部分的に消去される。この場合、消去は、せいぜいのところもはや要求
されないKRだけが、あるいはREMOVE命令によって明示的に表されたKR
だけが消去されるよう、消去判定基準に従いKRごとに行われる。同様にKRは
、新たにロードすべきKRをメモリに書き込むのにちょうど必要な数だけ、つま
りそれにちょうど必要な個数のメモリが空きになるよう、1つ1つ消去される。
これにより、キャッシュ効果の最適化のためできるかぎり多くのKRをメモリ内
に残しておくことができる。
【0026】 このことの利点は、任意のCTxの下に配置された各CTつまりCTツリー内
でずっと上に存在するCTは、CTx内には格納されていないKRを、外部のコ
ンフィグレーションメモリECRから要求するのではなく、CTxからダイレク
トに受け取ることである。これにより、複数のレベルにわたってキャッシュ構造
が生じる。CTツリーにおけるデータ伝送の煩雑性殊にECRにおける所要メモ
リ帯域幅が著しく低減される。
【0027】 換言すれば各CTは、下に位置するCTのKRをバッファリングする。つまり
、下の方に位置するCTは必要とするKRを上に位置するCTからダイレクトに
受け取るのであって、外部のECRに対するメモリアクセスは不要である。必要
とするKRが高い方に位置するCTのいずれにも存在していないときにだけ、E
CRへのアクセスを介してKRをロードすればよい。これにより、KRのための
格別効率的な階層キャッシュ構造が得られる。この構造に基づき実現可能な消去
判定基準も得られるが、これは用途に応じて経験的に決められることになる。い
くつかの可能性を挙げておく: −最も古いエントリーの消去 −最も小さいエントリーの消去 −最も大きいエントリーの消去 −最も稀にしか呼び出されないエントリーの消去 CT階層構造の基礎 キャッシュ効果を達成するため、CTはツリー構造における1つの階層にまと
められる。個々のノード(CT)の間にバスシステム(Inter−CT−Bu
s)が存在し、これはそれぞれ上方のノード(CT)を複数の下位のノード(C
T)と接続する。その際、下位のノード(CT)は上位のノード(CT)に対し
データを要求し、それに応じて上位のノードは下位のノードへデータを送る。下
位のノードはステータス情報を互いに交換し、そのためにいっそう上位のノード
間のネットワークが利用され、それらのネットワークはそれに応じてアドレスを
分解する必要がある。
【0028】 CT階層構造およびアドレッシング CT階層構造は、個々のCTのアドレッシングのためにバイナリツリーを利用
できるように配置されている。つまり、最下位のアドレスビットはツリーの個々
のリーフを表し、他の各アドレスビットはそれぞれ1つの階層レベルだけ上を選
択するのである。したがって各CTは一義的なアドレスを有している。
【0029】 下記の表には、個々のアドレスビットが個々のレベルにどのように割り当てら
れているかが示されている。
【0030】
【表1】
【0031】 * = 使用されるアドレスビット - = 使用されないアドレスビット 複数のCTから成るグループに上位のCTを割り当てる場合、そのグループに
おける複数のアドレスビットがそれに応じてまとめられる。
【0032】 次の表には、個々のアドレスビットが個々のレベルにどのように割り当てられ
ているのかが示されており、その際、レベル0には8個のCTをもつグループが
存在している(アドレスビット 2..0)
【0033】
【表2】
【0034】 * = 使用されるアドレスビット - = 使用されないアドレスビット バイナリツリーの構造は1次元または多次元で行うことができ、これは各次元
ごとに1つのバイナリツリーを形成することによって行われる。
【0035】 特定のCT(TARGET)がアドレッシングされ、これは開始させるCT(
INITIATOT)が正確なターゲットアドレスを指示するか、あるいはTA
GETが相対的にアドレッシングされる。
【0036】 次に、相対アドレスの評価について詳しく説明する: 2次元のアドレッシングのための相対アドレスフィールドの実例:
【0037】
【表3】
【0038】 ビット15は、次に高い階層段のCTを選択すべきときにセットされる。また
、ビット14はブロードキャストを表し、したがってすべてのCTを選択する。
X/Yアドレスは、INITIATORのアドレスを出発点としたTARGET
のアドレスを表している。
【0039】 アドレスは符号付きの "signed" 整数である。アドレスフィールドのY/Xア
ドレスを目下のアドレスポジションに加えることで、TARGETが求められる
。各レベルは特定のアドレス幅(Addresswidth)をもっている。加算器はこの幅
に対応している。
【0040】 加算においてオーバーフローやアンダーフローが生じたということは、アドレ
ッシングされたCTが目下のノードよりも下には位置しておらず、アドレス要求
がその上に位置するCT(次に高いノード)へ転送されることを意味する。オー
バーフローやアンダーフローが発生しなければ、TARGETは目下のノードよ
りも下に位置している。目下のレベルで計算されたアドレスビット(表を参照)
により、目下のノードのすぐ下に位置するCTが選択される。そこからそれぞれ
相応に計算されたアドレスビットに基づき、次に低いCT(ノード)が選択され
る。
【0041】 CH階層構造におけるアクセスの優先順位づけ 内部CTバスへのアクセスはアービタによって管理される。この場合、下位の
すべてのノードに対し等しい優先順位が与えられる。上位のノードはそれよりも
高い優先順位をもっている。これにより、上位のノードから下位へ向かって伝送
されるアクセス、あるいはINITIATORからすでにかなり進んだアクセス
が、他のアクセスよりも優先される。
【0042】 CTの基本構造 CTについての以下の概要から、個々のコンポーネントに関する概観を得るこ
とにする。以下では、各コンポーネントについて詳細に説明する。
【0043】 CTのコアはコントロールステートマシン(CTS)であって、これはコンフ
ィグレーションルーチン(KR)のすべての処理を制御する。各CTにはガーベ
ージコレクタ(GC)が配分されており、これはCTのメモリ(CTR)からの
KRの除去を制御する。なお、FILMOはまだ処理すべきKWの管理を担い、
LOADステートマシンはKRのロードを制御する。
【0044】 メモリ(CTR)は慣用の書き込み読み出しメモリとして構成されていて、そ
の際、技術的に可能なすべてのインプリメンテーションを適用することができ、
個々のCTおよびその下位におかれたCTに対するKRのローカルな記憶のため
に用いられる。特別な事例として、ASICやPLD(従来技術参照)に似た機
能をコンポーネントに設ける目的で、メモリ(CTR)をROM、EPROM、
EEPROM、フラッシュROM等として構成することができる。
【0045】 CTRアドレスを生成するため、ロード可能なカウンタとして構成された多数
のポインタが使用される: 1.フリーポインタ(FP)。これはCTR内における最後のKRの後ろにある
最初の空きメモリロケーションを指す。
【0046】 2.ガーベージポインタ(GP)。これはガーベージコレクタ(GC)によりC
TRから除去すべきエントリを指す。
【0047】 3.ムーブポインタ(MP)。これが指すCTR内のメモリロケーションとは、
除去すべきでない最終的なコンフィグレーションワード(KW)つまりKRのエ
ントリが、その位置からGPによって規定されたエントリーへコピー/移動され
るようなロケーションである。
【0048】 4.プログラムポイン(PP)。これは目下CTSにより実行されているKWを
指す。
【0049】 KWは、出力インタフェース(OUT)を介して属するCELへ転送される。
CELは、それがコンフィグレーション可能な状態にあるかぎり、KWの受領確
認をする(ACCEPT)。KWが拒否された場合(REJECT)、あとにな
ってプログラムポインタを利用することなく再度、アドレッシングされたCEL
へ書き込むため、FIFOに類似したメモリ(FILMO)内にそれが一時的に
バッファリングされる。
【0050】 CTSは、KRを処理するための要求をトリガ信号により受け取る。このトリ
ガ信号は、望ましくないトリガをフィルタリング除去(マスキング除去)するフ
ィルタであるマスクを通過する。従来技術に従って、マスクをANDゲート(A
ND)におり構成することができ、このゲートによればトリガとイネーブル信号
とがAND結合される。トリガは、優先順位の付けられたラウンドロビン・アー
ビタ(Round-Robin-Arbiter, SCRR-ARB)を介してバイナリ信号に変換される。 優先順位の付けられたラウンドロビン・アービタにより、ラウンドロビン・アー
ビタの平等性の利点と、1つのクロック内における次のイネーブルの検出つまり
優先順位アービタの利点とが合わせられる。
【0051】 マスキングされたトリガは、アドレスとして第1のルックアップテーブル(L
UT1)へ供給され、このルックアップテーブルは、アドレスとして到来するト
リガに対し該当するKRのIDを割り当てて、データラインへ送出する。第2の
ルックアップテーブル(LUT2)において、KRのIDがCTR内におけるK
Rのメモリロケーションのアドレスに割り当てられる。第2のルックアップテー
ブルはトリガ信号の割り当てに利用されるだけでなく、IDをパラメータとして
用いる使われる命令のアドレス割り当てのためにも利用される。トリガ信号と該
当するIDとの対応づけは、あとで説明する命令”REFERENCE”により
LUT1にエントリされる。LUT2の管理つまりIDとCTRにおけるアドレ
スとの対応づけは、CTSとGCにより自動的に行われる。
【0052】 CTの理解を深めるため、実現可能な基本命令セットについて以下に示す: 1.BEGIN<ID> BEGIN<ID>により、コンフィグレーションルーチンの開始が表される
。<ID>は、コンフィグレーションルーチンにおける一義的な識別番号を表す
【0053】 2.STOP STOPにより、コンフィグレーションルーチンの最後が表される。この位置
において、コンフィグレーションテーブル(CT)はコンフィグレーションルー
チンの処理を終了する。ガーベージコレクタ(GC)は、そのコンフィグレーシ
ョンルーチンにおけるエントリの除去を終了する。
【0054】 3.EXECUTE<ID> コンフィグレーションルーチンの最初(BEGIN<ID>)にジャンプする
。このルーチンがCTのメモリ内に存在していなければ、その上に位置するCT
に対しそれが要求され、ないしはメモリからロードされる。
【0055】 4.LOAD<ID> KR<ID>をその上に位置するCTに対して要求する。
【0056】 5.REMOVE<ID> GCを呼び出す。その目的は、コンフィグレーションルーチン<ID>をBE
GIN<ID>からSTOPまでCTのメモリから除去し、除去されたコンフィ
グレーションルーチンによってもメモリの隙間が生じないようになるまで、後続
のコンフィグレーションルーチンを前へ押し出すことである。
【0057】 6.PUSH<FORCED><ADDRESS><DATA><EXIT> コンフィグレーションデータ<DATA>をレジスタ<ADDRESS>へ書
き込む。<FORCED>がセットされていると、該当するターゲットレジスタ
のRECONFIGフラグがセットされていなくても、データが書き込まれる。
<EXIT>は、REJECTのときに後続のKWRが引き続き実行されるのを
中止するKWRであるこを表すために用いられる。
【0058】 7.MASK<SR><TRIGGER> <SR>(Set/Reset)に依存して、トリガマスクを<TRIGGE
R>によりセットするか、あるいはそれを<TRIGGER>によりリセットす
る。
【0059】 8.WAIT<UNMASKED><TRIGGER> コンフィグレーションルーチンの処理を停止し、トリガ<TRIGGER>を
待つ。<UNMASKED>がセットされていれば、待っているトリガに対しト
リガマスクの状態とは無関係に応答する。
【0060】 9.トリガ<TRIGGER><CT#> トリガのバイナリ値を、CT#によりアドレッシングされた上位のCTへ送る
【0061】 10.GETBUS/GETCTS 内部CTバスへのコネクションを確立する。
【0062】 11.LOOSEBUS/LOOSECTS 内部CTバスへのコネクションを解除する。
【0063】 12.REFERENCE<TRIGGER><ID> アドレス<TRIGGER>においてLUT1へ値<ID>を書き込み、これ
によりトリガ信号に対し特定のKRが割り当てられる。
【0064】 命令 EXECUTE,LOAD,REMOVE,PUSH,MASK,WA
IT,TRIGGER,REFERENCEは、BEGINと...STOPで
括られた中でのみ有効である。この括りの外では命令は実行されない。
【0065】 コンフィグレーションルーチン(KR)の構造は以下のようになる: BEGIN<ID>; ... 有効な命令 ... STOP; 間接アドレッシング(参照) CTのキャッシュ原理によりCT内におけるKRのバッファリングが可能とな
り、ここでKRは下位に位置する異なる複数のCTまたはCELによって利用さ
れる。下位のユニットからコンポーネント(たとえばRAM、周辺装置)の外部
インタフェースへのアクセスが行われる場合、外部インタフェースの種々のアド
レスまたは一部分を記憶する必要がある。これにより基本的には、必要とされる
個々のKRの内容が区別されることになろう。キャッシングはもはや不可能であ
る。この場合、間接参照により対策が講じられる。この目的で専用のKR(以下
ではIKRと称する)が用いられ、これは必要な外部パラメータをもっており、
それをセットする。必要に応じトリガを介して、異なる階層レベルにおける他の
異なるKRが呼び出される。IKRの最後から本来のKRが呼び出される。IK
Rだけはキャッシングできないが他方、呼び出されたKRはまったく一義的であ
り、そのためキャッシュ可能である。ここで有用であるのは、IKRのサイズを
絶対的な最小値まで低減することであり、つまりもっぱら外部の異なるパラメー
タと本来のKRの呼び出しだけにすることである。
【0066】 間接的なコンフィグレーションルーチン(IKR)は以下のように構成されて
いる: BEGIN<ID>; ... xxx; 有効な命令、この場合、外部の周辺装置だけを制御する TRIGGER<ID>; 周辺プロセスに対するスタート、ストップまたはロ
ード要求 ... GOTO<ID>; 本来のKRへのジャンプ STOP; 特別な事例: 1.WAIT_FOR_BOOT この命令は、CTRの最初のアドレスだけに有効である。ブートプロセス中、
まずはじめに完全なブートKRがCTRに書き込まれるが、Boot−KR B EGIN<0>の開始シーケンスではない。その個所(アドレス1)にはWAI
T_FOR_BOOTがあり、これはRESET時に自動的にセットされる。B
oot−KR全体がCTRに書き込まれてからはじめて、WAIT_FOR_B
OOTがBEGIN<0>によって上書きされ、CTSがBoot−KRの処理
を始める。WAIT_FOR_BOOTはプログラム内に現れてはならない。
【0067】 2.BOOT<CT−ID> BOOT<CT−ID>は、どのCTに後続のBoot−KRを書き込むべき
であるかを表す。BOOT<CT−ID>後にはBEGINは続かず、Boot
−KRはSTOPによってではなく、あとにくるBOOT<CT−ID>によっ
て終了する。そしてSTOPによってブートプロセスが終了する。BOOT<C
T−ID>はプログラム内に現れてはならない。
【0068】 ブートプロセス RESET後、最上位の階層レベル(ROOT−CT)のCTはBoot−K
Rを下位の階層のCTにロードする。この目的で、ROOT−CTに対応づけら
れた外部のコンフィグレーションメモリ(ECR)内の定められたアドレス(B
OOT−ADR)へのジャンプが存在する。ROOT−CTはこのジャンプを実
行し、ブートシーケンスに到達する。これは以下のように構成されている: BOOT<CT−ID0>; COMMAND; COMMAND; ... BOOT<CT−ID1>; COMMAND; COMMAND; ... ... BOOT<CT−IDn>; COMMAND; COMMAND; ... STOP; ブートプロセス中、まずはじめにBoot−KR全体が、<CT−ID>によ
り表されたCTのアドレス2からCTR内に書き込まれる。Boot−KR(B
EGIN<0>)の開始シーケンスは、アドレス1には書き込まれない。その個
所にはWAIT_FOR_BOOTがあり、これはRESET時に自動的にセッ
トされる。Boot−KR全体がCTRに書き込まれ、ROOT−CTが次のB
OOT<CT−ID>に到達してはじめて、STOPがBoot−KRの終わり
でCTRに書き込まれ、WAIT_FOR_BOOTがBEGIN<0>によっ
て上書きされる。CTSはBoot−KRの処理を始める。
【0069】 コンフィグレーションルーチンのロード Boot−KR外でコンフィグレーションルーチンを要求するために、3つの
基本メカニズムが存在する。
【0070】 1.CTSによるLOAD<ID>の実行 2.CTSによるEXECUTE<ID>の実行、ここで該当するIDをもつK
RはCTR内には存在していない。
【0071】 3.トリガの発生、これはLUT1を介して<ID>に変換され、それに属する
KRはCTR内には存在していない。
【0072】 すべて3つの事例における進行は同じである: 要求されるKRのIDはLUT2へアドレスとして供給される。LUT2は、
CTR内に有効なアドレスが存在するか否かについてチェックする。これが存在
しなければ、つまりLUT2において<ID>が値0を指していれば、LOAD
<ID>がCTSへ送られる。
【0073】 それに応じてCTSが、階層的に上位にあるCTにおいて<ID>に該当する
KRを要求する。この要求はトリガ形式で上位のCTに到達し、それによって相
応に評価される。上位のCTは要求されたKRを要求されたCTへ送信する。デ
ータは、FREE−POINTER(FP)の指すアドレスからCTRへ書き込
まれ、その際、FPは書き込みアクセスごとに1だけ高められる。FPがCTR
の上限に到達すると、ガーベージコレクタ(GC)が呼び出され、CTR内で最
下位のKRが除去されてCTRが圧縮されるようになる。そのときFPが新たに
セットされる。この過程は、ロードすべきKRが完全にCTRに納まるまで行わ
れる。
【0074】 コンフィグレーションメモリにおけるジャンプテーブル ROOT−CTに割り当てられたコンフィグレーションメモリには、アプリケ
ーションのためにロードしなければならないKR全体が含まれている。外部のコ
ンフィグレーションメモリ(ECR)には、定められたアドレス(ARD−BO
OT)のところにブートコンフィグレーションルーチンへのジャンプがおかれて
いる。任意であるがアプリケーション内部で固定的に定められた長さをもつ別の
所定のメモリ領域(LUT−ECR)には、個々のKRへのジャンプがおかれて
いる。この場合、個々のKRの<ID>はECR内のアドレスとして用いられ、
そこには個々のKRの開始アドレスが存在する。これによりKRが間接的にアド
レッシングされるのである: ID −> LUT−ECT −> KR コンフィグレーションメモリ内におけるKRの変更 ID<A>をもつKRは変更されることになる。まずはじめにHOSTはID
<A>のための新たなKRを、ECR内の空きメモリロケーションへ書き込む。
ID<A>は、上位のユニット(HOST)におけるコンフィグレーションメモ
リ内のKRの新たなアドレスといっしょに、そのために設けられたROOT−C
Tのレジスタに書き込まれる。ROOT−CTは、その下に位置するすべてのC
Tへ命令REMOVE<A>を送信する。それに応じてすべてのCTは、STO
Pに到達したときまたはIDLEサイクルの間すなわちKRが実行されなければ
ただちに、そのIDに関連するKRをCTRから除去し、LUT2はアドレス<
A>に”NoAdr”をセットする。つまりこのことは、LUT2内にID<A
>に対する有効なアドレスエントリが存在しないことを意味する。ID<A>が
再度要求されれば、欠けているエントリ(”NoAdr”)は強制的にLUT2
への<A>ではなく、各CTはECRに対しKR<A>を新たに要求する。
【0075】 FILMO KRは主として命令PUSHから成り、これは新たなコンフィグレーションワ
ードを所定のアドレスに書き込む。アドレッシングされたコンフィグレーション
可能なエレメント(CEL)が新たなコンフィグレーションを受け入れる準備が
整っていないため(REJECT)、タイプKWのコンフィグレーションワード
の書き込みが不可能であれば、コンフィグレーションワードはアドレッシングさ
れたコンフィグレーション可能なエレメント(CEL)ではなく、以下ではFI
LMOと称するメモリへ書き込まれる。後続の命令は、再度コンフィグレーショ
ンワードを書き込むことができなくなるまで通常どおり処理され、できなくなれ
ばそのワードはFILMOへ書き込まれる。
【0076】 アドレッシングされたコンフィグレーション可能なエレメント(CEL)が新
たなコンフィグレーションを受け入れる準備が整っていないため(REJECT
)、タイプKWRのコンフィグレーションワードの書き込みが不可能であれば、
コンフィグレーションワードはアドレッシングされたコンフィグレーション可能
なエレメント(CEL)の代わりに、以下ではFILMOと称するメモリへ書き
込まれる。KRが終了するまでの後続のすべての命令は、CELではなくFIL
MOへダイレクトに書き込まれる。
【0077】 FILMOは、IDLEサイクル中であって新たなKRがそのつど実行される
前にスキャンされる。この場合、最も古いデータワードのところで始まり、従来
技術によるFIFOに従い、読み出されたFIFOの各ワードがアドレッシング
されたエレメントへ送られる。ここでアドレッシングされたエレメントはすでに
、コンフィグレーションワードを受け取る準備ができていなければならない。デ
ータワードを最初から書き込むことができるかぎり(つまりアドレッシングされ
たコンフィグレーション可能なエレメント(CEL)がスタンバイ状態にあれば
)、FIFOの形式でFILMOからエントリが除去される。コンフィグレーシ
ョンワードを書き込むことができなければ、それはとばされてFILMOからは
除去されない。FIFOとは異なり、とびこされたコンフィグレーション後のデ
ータがさらに読み出される。とびこされたコンフィグレーションワードの後に書
き込むことのできるコンフィグレーションワードは、FILMOの実装に従って
以下のとおりとなる。すなわち、 1.書き込み済とマーキングされ、FILMOからは消去されない。ここで書き
込み済とマーキングされたコンフィグレーションワードは、後続のスキャンにお
いてはもはや読み出されず、あるいはとばされたコンフィグレーションワードが
もはやその前に存在しなければ、ただちに消去される。
【0078】 あるいは、 2.FILMOから消去される。この場合、コンフィグレーションワードは消去
されたコンフィグレーションワードの前と後ではそのまま得られ、ここで消去の
ため後続のワードが前方(上方)へ、あるいは先行のワードが後方(下方)へシ
フトされ、その際、コンフィグレーションワードの順序は強制的に維持される。
【0079】 新たなKRが実行されると、アドレッシングされたエレメント(CEL)へC
TSにより書き込むことのできなかったコンフィグレーションワード(KW)が
、新たにFILMOに付加され、つまりKWはFILMOの(読み出し方向で)
最後に書き込まれる。FILMOがいっぱいになると、すなわちコンフィグレー
ション値のための空きエントリが存在しないと、KRの実行が停止される。FI
LMOは、十分にコンフィグレーションワードを書き込むことができ、それに応
じて多数の空きエントリが発生するまでスキャンされ、その後、KRが引き続き
処理される。FILMOはFIFOに似たメモリを成しており、これは常に最も
古いエントリから直線的にスキャンされる。しかしFIFOとは異なり、エント
リがとばされる(First In Linear Multiple Out)。
【0080】 コンフィグレーションテーブル−ステートマシン(CTS)の機能 コンフィグレーションテーブル・ステートマシン(CTS)はCTの制御の役
割を担う。これはKRの命令を実行し、到来するトリガに対し応答する。そして
これはFILMOの管理の役割を担い、殊にアイドルサイクル中、KRの実行前
にそれを読み出す。これはLUT構造により生成された信号illegal<T
RG>(Illegalトリガ、図1の0102参照)とload<ID>に対
して応答する。load<ID>は、LUT2においてキャッシュミスが生じた
とき(0105)、あるいはIDにより参照されるKR/IKRが消去済とマー
キングされていたとき(0107)に生成される。これは上位のCTの制御信号
に対して応答する。図2〜図7には、命令処理のためのインプリメンテーション
の実例が描かれている。
【0081】 上位のCTへの制御信号 −illegal<TRG>(0102) 上位のCTは、未知のトリガ<TRG>が発生していることを指示する。
【0082】 −load<ID>(0105/0107) 上位のCTに対し<ID>のロードを要求 −trigger<TRG><CT#>(0108) トリガ<TRG>を上位のCTまたはアドレッシングされたCT<CT#>に
送信 上位のCTの制御信号 −remove<ID>(図15,1513参照) CTに対し<ID>の消去を要求 −write_to_FP<data>(図2,0205参照) データをCTへ送信。データは占有されているメモリの最後に付加される。
【0083】 ガーベージコレクタ(GC)の機能 CTRには2つの問題点がある: 1.LOAD命令またはEXECUTE命令またはトリガが、CTR内に存在し
ていないKRのIDを指している場合、KRをリロードしなければならない。し
かし状況によっては、要求されたKRをロードするのに十分なスペースがCTR
内にない。
【0084】 2.REMOVE<ID>が発生したとき、対応するKRをCTRから除去しな
ければならない。この場合、KRがCTRの最後にはなければ、隙間が生じてし
まう。新たなKRをロードしても、この隙間は場合によっては完全には埋められ
ず、あるいはこの隙間が新たなKRに対し小さすぎるかもしれない。その結果、
CTRのフラグメンテーションが発生する。ガーベージコレクタの役割は、KR
をCTRを除去し、新たなエントリのためのスペースを確保することであり、か
つエントリ除去後のCTRを、残ったすべてのKRが閉じたブロックとして相前
後してメモリ内に位置するようにし、しかも空いたメモリブロックが閉じたブロ
ックとしてCTRの最後に位置させることである。このことにより最適に、しか
もメモリロケーションの損失なく新たなKRをロードすることができる。
【0085】 トリガパルスの評価 各CTは、それらの個々の階層平面に属する複数のトリガ信号に対するコンタ
クトを有しており、これらのトリガ信号は1つのバスへ送られてまとめられる。
到来するトリガはマスクを介して評価され、つまりイネーブルにされたトリガ信
号が転送される。イネーブルにされたトリガ信号は、クロック同期してサンプル
レジスタ内にバッファリングされる(サンプリングされる)。アービタは格納さ
れているトリガ信号のうちの1つを選択し、信号をバイナリベクトルへ変換する
。選択されたトリガ信号はサンプルレジスタから消去される。そしてバイナリベ
クトルは第1のルックアップテーブル(LUT1)へ転送され、このテーブルに
よってバイナリベクトルが呼び出すべきコンフィグレーションルーチン(KR)
の識別番号(ID)へ変換される。IDは、第2のルックアップテーブル(LU
T2)においてCTメモリ(CTR)内のKRのアドレスに変換される。CTス
テートマシン(CTS)はそのプログラムポインタ(PP)を上記のアドレスに
セットし、KRの実行を開始する。ここで前提とするのは、マスクを介してイネ
ーブルにされた各トリガがLUT1内に対応するエントリをもっていることであ
る。これが欠けていると、エラー状態がCTSへ伝送され(Illegaltr
igger)、その際、各ID=”NoAdr”は存在しないエントリとして評
価される。”NoAdr”は、インプリメンテーションに依存して選定されるト
ークンである。LUT2内にエントリがなければ、つまりIDに該当するKRが
CTR内に存在しなければ、ロード要求がCTSへ送られる(load<ID>
)。
【0086】 上位のCTへのトリガパルスの送信 KRをロードするための上位のCTへの既述のインタフェースのほかに、任意
に定義できる命令とはいえ殊にトリガベクトルを交換するための別のインタフェ
ースも存在する。その際にCTは、 −他のすべてのCTへ命令を送るか(BROADCAST) −またはアドレッシングされた任意のCTへ命令を送る(ADDRESSED) 命令”Triggervektor”はバイナリ値を表しており、これは受け
取ったCTにおけるLUT2内のエントリを参照している。トリガベクトルの送
信はたとえば、IKR内でKRをさらに別のCTにおいてスタートさせ、これに
よりたとえば周辺装置やメモリを制御するために必要される。
【0087】 上位のCTへトリガベクトルを転送するために2つのメカニズムが存在する。
【0088】 1.LUT1に1つのビットを付け加え、このビットによって、メモリの内容が
KR IDとみなされるのか、あるいはトリガパルスのバイナリ値とみなされる
のかを表すようにする。トリガパルスが生じているのであれば、LUT1のデー
タ内容がそのままトリガとして上位のCTへ送られる。
【0089】 2.命令TRIGGERによってトリガのバイナリ値を表すことができ、それが
そのまま上位のCTへ送られる(代案としてトリガ値の代わりにそのままIDを
伝送してもよい)。
【0090】 トリガベクトルを介して未知のCTにおいてKRをスタートさせるためには、
デッドロック状況を生じさせないよう同期方式を作る必要がある。この方式によ
って、複数のCTから成る特定のグループ内のKRだけしかこのグループ内の他
のCTにおいて別のKRをスタートさせないよう、注意を払わなければならない
。複数のKRを同時にスタートさせると、CEL平面における既述のデッドロッ
クと同じように、各CT間でデッドロックの生じてしまう可能性がある。
【0091】 このような方式の基本原理は以下のようにして進行する: KRは以下のように構成されている: ... GETCTS/GETBUS TRIGGER<ID>,<CT#> TRIGGER<ID>,<CT#> ... LOOSECTS/LOOSEBUS ... CT(INITIATOR)におけるKR内の命令”GETCTS”によって
、後続の信号で他のCT(TAGET)が送られることを表す。トリガ<ID>
,<CT#>によって、スタートさせるべきKRのIDが一義的なID CT#
をもつCTへ送られる。この場合、トリガの送信はまず最初にすぐ上位のCTに
対して行われ、これはCT#に応じてトリガをそのCT空間内の今度は下位のC
Tへ送るか、またはそれにとって上位のCTへ送る(CT階層を参照)。命令が
到達すれば、それが受領確認を行う。
【0092】 CTにより命令が実行されると、命令の優先順位識別子がそのつど1つだけ高
められる。命令の転送要求がCT内における別の要求にぶつかれば、最も低い優
先順位をもつ命令が取り下げられる。
【0093】 このことにより以下のことが保証される。
【0094】 a)オーバラップしたシステム内においてある時点で1つの命令だけしか伝播さ
れず、このためただ1つのKRだけしかスタートせず、このことで必要とされる
デッドロックのない状況が得られるようになる。
【0095】 b)それまでで最も遠くへは伝播されなかった命令が取り下げられ、このことで
パフォーマンスを高めることができる。命令の取り下げ後、GETCTS/LO
OSECTS内の先行するすべての命令も同様に取り下げられ、つまりINIT
IATORがすべてのTARGETへ信号DISMISSを送り、GETCTS
の待機時間後にKRの実行が開始される。命令区間GETCTS...LOOS
ECTS内におけるすべてのトリガの受領確認がINITIATORへ送られる
。受領確認が到来するたびに次の命令の処理が続けられる。命令LOOSECT
Sに到達すると、INITIATORはすべてのTARGETへ信号GOを送る
。これによりTARGET−CTが、トリガにより伝送されたIDをもつKRの
実行をスタートさせる。TARGETはトリガの発生後に状態を変化させ、その
状態においてTARGETはGOまたはDISMISSの発生を待つ。
【0096】 インプリメンテーションが改善されたことで、さらに容易に変更される手法が
得られる: 1つの階層平面における1つのグループ内の各CT間にバスシステムが存在す
る(Inter−CT−Bus)。このバスシステムは、グループにおけるすべ
てのCTとそのグループのすぐ上に位置するCTとをつないでいる。機能的にG
ETCTSに似た命令GETBUSにより、バスシステムがCTにより調停され
る。この命令は、バスシステムを介して同じグループのCTへ転送される。アド
レッシングされたCT#がグループ内に存在していなければ、上位に位置するC
Tによって自動的にその上位に位置するバスが調停され、命令が転送される。調
停されたバスはINITIATORに対応づけられたままになり、したがって拒
否されるまで、または命令LOOSEBUSがバスに発せられるまで、他のすべ
てのCTに対しは阻止される。LOOSEBUSはLOOSECTSと対比でき
る。命令LOOSEBUSの実行前、GO信号が関与するすべてのCTへ送られ
る。これは命令LOOSEBUSまたは前につなげられた特別な命令によって行
われる。命令殊にトリガは、やはり既述の基本的手法に従って処理される。バス
システムを調停できなかったとき、拒否が生じる。調停の際、1つの平面におけ
るCTがそれぞれ等しく優先順位づけされ、上位のCTはそれよりも高い優先順
位をもつ。Inter−CT−Busを介して命令を送信する場合、アドレッシ
ングされたCTが命令を受け入れるまで(ACCEPT)または拒否するまで(
REJECT)、命令はアクティブなまま保持される。
【0097】 優先順位づけられたラウンドロビン・アービタ 優先順位づけられたラウンドロビン・アービタ(Single-Cycle-Round-Robin-A
rbiter SCRR-ARB)はクロック同期するよう構成されていて、つまりこれによっ て(インプリメンテーションに応じて正または負の)クロック側縁(TF1)ご
とに結果が供給される。到来する信号(ARB−IN)はマスク(ARB−MA
SK)を通り、このマスクは後述の方法に従いアービタ自体によって管理される
。マスクの出力信号は、従来技術に従い優先順位アービタ(ARB−PRIO)
へ送られる。アービタはクロック同期してクロック側縁(TF1)ごとに結果(
ARB−OUT)を送出し、つまりマスク(ARB−MASK)に従って最高優
先順位の付けられた信号のバイナリ値を供給する。この結果には、バイナリ値が
有効か無効かを表す信号(VALID)が割り当てられている。優先順位アービ
タのインプリメンテーションに応じて、信号0が印加されたときおよび信号が印
加されないときに同じバイナリ値が生成されるようにすることができる:この場
合、VALIDによって、信号が加わらないかぎり結果が無効であることが表さ
れる。この信号は、 1.アービタの結果として送出され、 2.デコーダに供給され、これは(以下のテーブルではたとえば3bit値とし
て表される)バイナリ値をデコーディングする(コーディング方式をこの原理に
従って任意のバイナリ値に整合可能である)。
【0098】
【表4】
【0099】 このデコーダには1つのレジスタ(ARB−REG)が割り当てられており、
これはデコーダのデコーディング値(ARB−DEC)を、TF1に対し逆のク
ロック側縁(TF2)のときに受け取る。ARB−DECはマスク(ARB−M
ASKにフィードバックされ、個々の入力信号(ARB−IN)をイネーブルに
する。
【0100】 アービタの動作シーケンスは以下の通りである: 1.RESET後、すべてのARB−INがARB−MASKを介してイネーブ
ルにされる。その理由はARB−DECがすべての信号を「イネーブル」にする
からである。
【0101】 2.最高優先順位の付けられたARB−IN(たとえば上記のテーブルでは信号
7(バイナリ111)が最高優先順位であり信号0(バイナリ000)が最低優
先順位である)がバイナリ値として送出される。
【0102】 3.ARB−DECによって信号が阻止され、すべての他のエントリが場合によ
ってはさらに高く優先順位づけられているかもしれないが、セットされていない
【0103】 4.以下のステップ5および6は、信号0(バイナリ000)に到達するまで繰
り返されるかまたは、信号はARB−MASKの後ろには現れない。この場合、
ARB−DEC(デコーディングテーブル)は再びすべての信号をARB−DE
CによるARB−MASKによってイネーブルにし、このシーケンスはステップ
2から始まる。
【0104】 5.いまや最高優先順位のセットされたARB−INは、バイナリ値として送出
される。
【0105】 6.ARB−DECを介して信号が阻止され、他のすべての入力が場合によって
はいっそう高く優先順位付けられているかもしれないが、セットされていない(
ステップからさらに)。
【0106】 これによりすべての入力信号が平等に処理され、各クロックサイクルごとに入
力信号のうちの1つ(ARB−IN)がバイナリでデコーディングされて出力(
ARB−OUT)されるようになる。ARB−REGにイネーブル入力側(EN
)を設けることができ、これは対応する信号が生じたとき、TF2の場合だけレ
ジスタ内容の変更を許可する。このためクロックごとにバイナリベクトルが送出
されるのではなく、ENとTF2のイネーブルに依存して送出される。なお、入
力側の同期が必要であるのは、後置接続された回路が処理を1つのクロックサイ
クルごとには実行できず、複数のサイクルを必要とし、その後はじめて次のバイ
ナリベクトルを受け入れるときである。
【0107】 場合によって有用であるのは、複数の信号に同じ優先順位が付けられている間
、一連の信号をアービタによって高い優先順位が付けられているとみなすことで
ある。これはたとえば、各CT間で信号を転送するための既述の方法において必
要である。信号にいっそう高い優先順位を付ける目的で、ARB−PRIOにお
いて最高優先順位の付けられたコンタクトがマスキングされず、つまりマスク(
ARB−MASK)の前を通過する。これにより信号が優先的に扱われる。
【0108】 マイクロコントローラベースのCTの構造 これまでの説明とは異なり、CTをマイクロコントローラアーキテクチャでイ
ンプリメントすることもできる。ここで容易に理解できるように、トリガコント
ロール、ルックアップテーブルLUT1およびLUT2、ならびにInter−
CT通信とCELへのKWの書き込みなどの基本機能を、そのままマイクロコン
トローラによって実現することができる。この場合、効率的なFILMOの構造
だけが問題となるが、それはとりわけ実現可能なパフォーマンスいおいて顕著に
なる。したがってFILMOの構造については特別に言及する。
【0109】 FILMOの構造 FILMOは別個のメモリとしては構成されていない。そうではなく、慣用の
プログラムメモリがFILMOの機能性について拡張されている。この目的で、
付加的なビット(FILMO−BIT)が各KWに対応づけられ、これによって
対応するKWがCELに書き込まれた否かが表される。FILMOーBITがセ
ットされていれば、対応するKWは実行されない。メモリへのKWの書き込みに
あたりFILMO−BITがリセットされる。CT内におけるすべてのKRは、
それらがトリガまたはLOAD<ID>によって呼び出されるよう、チェーンリ
スト(FILMO−LIST)を介して順番に互いに結合されている。KRは、
それらが完全に実行されてしまうまでFILMO−LIST内に保持され、その
後、それらがリストから除去される。FILMO−LISTはFILMO方式に
従って実行され、このためFILMOメモリに対する直接的な代替となっている
。(完全性を期すために付言しておくと、本来のFILMO方式とは異なりKR
が2度リスト内に現れることはない。まだFILMO−LIST内に存在してい
るKRが呼び出された場合、その実行はそれがFILMO−LISTから取り除
かれるまで遅らさなくてはならない。) FILMOメモリロケーションの構造は以下の通りである:
【0110】
【表5】
【0111】 命令 マイクロコントローラは、FILMOに対し直接的に作用する以下の命令をサ
ポートする: PUSH CELへKWを書き込む。
【0112】 PUSHSF CELへKWを書き込み、KWが受け入れられたとき(ACCE
PT)のFILMO−BITをセット。
【0113】 PUSHRET CELへKWを書き込み、KWがCELによって受け入れられ
なかったとき(REJECT)、サブルーチンからリターン(RETURN)。
この命令が使用されるのは、KR内における後続のKWがこのKWのコンフィグ
レーション(ACCEPT)に依存しているときである;KRからのリターンに
より、PUSHRETが成功するまで(ACCEPT)、そのコンフィグレーシ
ョンが阻止される。
【0114】 PUSHNR 事前にKR内でREJECTが生じなかったときのみ、CELへ
KWを書き込む。PUSHRETと同様、KWのコンフィグレーション順序にお
ける依存性を扱うために用いる。
【0115】 ガーベージコレクタ これまでの説明のように、もはや必要のないKRを消去するためにガーベージ
コレクタ(GC)が使われる。メモリ内に新たなKRをロードするスペースがも
はや十分になくIDを消去しなければならないとき、あるいはKRが命令REM
OVEにより明示的に(消去すべきKRのIDの情報を伴って)消去されるとき
、GCが起動する。GCの実行をできるかぎり簡単に構成できるようにする目的
で、KR全体がチェーンリストを介して結合される。GCはリストをスキャンし
、もはや必要とされないKRを消去するが、これはそれらのKRが別のKRによ
って上書きされ、リストエントリが相応に整合されるようにして行われる。その
際、消去すべきKRによって生じるメモリの隙間が埋められ、つながったいっそ
う大きいなフリースペースがメモリの最後に生じるよう、メモリ内に残されるす
べてのKRがシフトされる。
【0116】 KRの構造 以下のテーブルには、KRの実現可能な基本構造が描かれている。
【0117】
【表6】
【0118】 KRの最初において、命令シーケンスをスタートさせるため後続のヘッダを越
えてジャンプが行われる。これにはガーベージコレクタのための二重にチェーン
結合されたリストが続き、そこではすべてのKRが互いに結合されている。”l
ength”はKRの長さを表す。この情報は、従来技術によるBlock−M
ove命令のために用いることができ、これはメモリ内のKRを移動させる必要
があるときに用いられる(Garbage,Load等)。続く二重にチェーン
結合されたリスト内にFILMOが形成されており、これによればCELに書き
込まれていないKWを含むKRだけが互いに結合されている。
【0119】 これに続いてキャッシュ動作に関する統計がおかれ、これにはたとえばKRの
呼び出し回数(呼び出しごとに値が1だけ高められる)、エイジ(KRに関する
GC実行回数に基づき測定可能:GC実行ごとに値が1だけ高められる)などが
含まれている。メモリスペース上の理由でKRを消去しなければならないとき、
CGはこの統計を評価することができる。キャッシュに関して、この種の統計に
より格別な利点が得られる。たとえば用いられるキャッシュアルゴリズムに依存
しアプリケーションの要求に従い、マイクロコントローラを次のようにプログラ
ミングすることができる。すなわち空きメモリが必要なとき、 1.最も古い/最も新しいKR 2.最も小い/最も大きいKR(エントリ”length”参照) 3.最も稀に/最も頻繁に呼び出されるKR がキャッシュから消去される。その際、自明の別の有用なステータス情報を格納
することができる。このような選択的なキャッシュは、現在知られているキャッ
シュ構造では不可能である。殊に、キャッシュにおいて自由にプログラミング可
能なキャッシュアルゴリズムは従来技術ではサポートされていない。ついでKR
統計が設けられており、これにはたとえばまだコンフィグレーションされていな
い(REJECT)またはコンフィグレーションされている(ACCEPT)K
Wの個数が含まれている。同時に、これからコンフィグレーションすべき最初の
KWのアドレスを格納することができる。このことの利点は、FILMOスキャ
ン時にすぐにKWへジャンプでき、KR全体をスキャンしなくて済むことであっ
て、その結果、めざましいパフォーマンス向上が得られる。
【0120】 最後にKRについて言及しておくと、チェーンリストは有利には先行ID/後
続IDのエントリにより構成される。それというのも、このことで絶対メモリア
ドレスを問題なくGCによってシフトできるからである。また、KRロード時と
GC実行時に問題が発生するのを回避する目的で、KR内では絶対ジャンプの代
わりに相対ジャンプだけしか用いられない。なぜかといえば、絶対アドレスは変
化しないからである。
【0121】 完全を期すためにここでさらに言及しておくと、既述の方式によればマイクロ
コントローラを使用したときでも(他のCTからのものであってもトリガまたは
命令に基づき)新たなKRが実行される前にFILMOがスキャンされ、FIL
MOのスキャン前にはCELのステータス(コンフィグレーション可能またはコ
ンフィグレーション不可能)が保護される。
【0122】 図面 以下の図面には、1つの実装例に基づき本発明による方法のコンフィグレーシ
ョンデータ管理について示されている。
【0123】 図1は、ルックアップテーブル内におけるアドレッシング方法を示す図である
。図2〜図7は、ステートマシンの命令処理と機能を示す図である。図8は、S
CRR−ARBの構造を示す図である。図9は、LUT1&LUT2の構造を示
す図である。図10は、ポインタ演算装置とCTRの構造を示す図である。図1
1は、FILMOの構造を示す図である。図12aは、CTの階層構造を示す図
である。図12bは、各CT間におけるトリガの送信を示す図である。図12c
,dは、送信方法を示す図である。図13は、複数のIKRによるKRの呼び出
しを示す図である。図14は、ROOT−CTにおけるLUT1の構造を示す図
である。図15は、ROOT−CTにおけるHOSTコントロールの構造を示す
図である。図16は、LUTとECRのコンセプトを示す図である。図17は、
中間階層平面ないしはROOT−CTにおけるCTのシーケンスコントロールを
示す図である。図18は、2次元アレイのコンフィグレーションにおけるデッド
ロックの問題点を示す図である(明細書参照)。図19は、FILMOコンセプ
トを示す図である。図20は、Inter−CTコミュニケーションの基本原理
を示す図である。図21は、GETCTS方式によるInter−CTコミュニ
ケーションの実装例を示す図である。図22は、GETBUS方式によるInt
er−CTコミュニケーションの実装例を示す図である。図23は、Iter−
CTバスのバス構造を示す図である。図24は、CT階層内におけるアドレッシ
ングを示す図である。図25は、ガーベージリストである。図26は、FILM
Oリストである。図27は、KR内のFILMO機能を示す図である。図28は
、KRまたはFILMOを実行する前の状態の格納について示す図である。
【0124】 図面の説明 図1には、1つのCT内におけるCTRアドレス生成のシーケンスが示されて
いる。この場合、到来するバイナリのトリガベクトル(0101)が、LUT1
内で有効なKRまたはIKR IDに変換される。有効なIDが存在していなけ
れば信号”Illegal Trigger”が生成され(0102)、これに
よってそのトリガがLUT1内では未知のものであるとが指示される。さらにこ
の信号をエラーメッセージとして上位のCTへ転送してもよいし、あるいは無視
してもよい。「トリガ」から「ID」への変換は、命令”REFERENCE”
によりLUT1へエントリされる。有効なID(0103)がLUT2へ転送さ
れる。命令内でつまりオペランドにより与えられるID(0104)は、LUT
2にダイレクトにあたる。LUT2は到来するIDを、CTR内のKR/IKR
のアドレスへ変換する。KR/IKRがCTR内に格納されていなければ(キャ
ッシュ内に存在しなければ)、信号”Miss”が生成される(0105)。K
R/IKRの変換されたアドレスがトークン”NoAdr”でマーキングされて
いれば、”NoEntry”(0107)によって、アドレスの消去されている
ことが示される。”Miss”および”NoEntry”は、CTR内部アドレ
スへの変換が不可能であることを表す。これらの信号に基づきLOADステート
マシンは、その上に位置するCTの対応するIDをもつKR/IKRをリロード
する。有効なアドレスが存在しているかぎり、これはアドレス発生器のポインタ
演算装置へ転送される(0106)。LUT1において、到来するバイナリのト
リガベクトルがIDまたは別のトリガベクトルへ変換され、その場合、トリガベ
クトルが出力される(0108)。
【0125】 図2には、KR/IKRをロードする際のシーケンスが描かれている。まずは
じめに、ロードすべきKR/IKRのID(0201)がその上に位置するCT
へ送信される。それに応じてLUT2内で、要求されたIDのためのエントリの
ロケーションにフリーポインタ(FreePointer)の値がエントリされ
る。FPは、CTR内でKR/IKRのために利用された最後のエントリの後ろ
のエントリを指す。これは、ロードすべきKR/IKRの格納される最初のエン
トリである。ステートマシンは、上に位置するCTのデータワードを待つ。その
ワードを利用可能であれば、FPによって参照されているロケーションに書き込
まれる。そしてFPがインクリメントされる。FPがCTRの終端の後ろのエン
トリを指しているならば、スペース確保のためCTR内の最初のエントリが消去
される。その際、FPが更新される。上に位置するCTから送信されたデータワ
ードが”STOP”であればロードプロセスが中止され(0203)、そうでな
えれば新しいデータワードを待ちながらプロセスが続けられる(0204)。
【0126】 図3aには、”MASK”命令が描かれている。この命令のオペランドはMA
SKレジスタへ書き込まれる。MASKレジスタはLUT1の前のトリガ信号入
力側に設けられていて、無効なトリガをマスク除去する。
【0127】 図3bの場合には命令”トリガ”により、この命令のオペランドがトリガベク
トルとして他のCTへ送信される。
【0128】 図3cの場合には命令”REFERENCE”により、トリガから対応するK
R/IKR IDへの変換がLUT1へ書き込まれる。
【0129】 図4aには、命令”WAIT”が描かれている。この命令のオペランドは、W
AITMASKレジスタへ書き込まれる。待っているトリガ以外したがってWA
ITMASKにおいてイネーブルにされるトリガ以外、すべてのトリガは無視さ
れる。そのトリガが到来してはじめて、プログラムの流れが戻る。
【0130】 図4bには”PUSH”命令が描かれている。この場合、アドレッシングされ
たコンフィグレーション可能なエレメント(CEL)へフィグレーションワード
が送られる。CELがたとえば状態「コンフィグレーション不可能」におかれて
いてコンフィグレーションワードを受け入れなければ、そのコンフィグレーショ
ンワードはFILMOへ書き込まれる(0401)。
【0131】 図5には、”REMOVE”命令のシーケンスが示されている。この場合、2
種類の呼び出し方がある: 1.CTR内に位置する最初のKR/IKRがCTRから消去される。ガーベー
ジポインタ(GarbagePointer,GP)へCTRのアドレス0が割
り当てられる(0501)。
【0132】 2.特別にIDにより表されるKR/IKRがCTRから消去される。ガーベー
ジポインタ(GP)に、CTR内の消去すべきKR/IKRの最初のアドレスが
割り当てられる(0502)。
【0133】 その際、ムーブポインタ MovePointer にGPの値がロードされる
。GPとMPは、最初のKR/IKRをCTRから消去すべきときであっても、
CTR内の”BEGIN<ID>”命令を参照する。該当するIDがLUT2内
で無効であるとマーキングされる。MPは、メモリ内で次に位置するKR/IK
Rの”BEGIN<ID>に達するまで(0503)、あるいはMPがフリーポ
インタ FreePointer(FP)と等しくなるまで、つまり消去すべき KR/IKRがCTR内の最後のものになるまで(0504)、インクリメント
される。
【0134】 −この場合、FPにGPの値がロードされ、このことで消去すべきKR/IKR
によって占有されているメモリロケーションが空きとマーキングされ、ファンク
ション”REMOVE”が終了する(0505)。
【0135】 −そうでない場合(”BEGIN<ID>”に達した場合(0506))、MP
により参照されたデータがGPにより参照されるメモリロケーションへコピーさ
れる。その際、MPとGPがインクリメントされる。このシーケンスは、MPが
CTRの最後に達するまで、あるいはFPの位置に達するまで(0507)行わ
れる。このシーケンス中、MPにより、”BEGIN<ID>”の存在するメモ
リロケーションが参照されると、LUT2における対応するIDのためのエント
リがMPによって上書きされ(0508)、これによってルックアップにあたり
適正なメモリロケーションが送出されるようになる。
【0136】 図6には、FILMOのフローチャートが示されている。FILMOには3つ
のポインタが含まれている: 1.WriteP:FILMO−RAMの書き込みポインタ 2.ReadP:FILMO−RAMの読み出しポインタ 3.FullP:FILMO−RAMの「充填状態」を表し、アンダーフローま
たはオーバーフローを阻止する。
【0137】 1bitのレジスタ”BeginF”により、目下の読み出しアクセスがFI
LMO−RAMの最初にある(TRUE)か、つまり読み出しポインタとFIL
MO−RAMの最初との間に消去されていないエントリが存在していないか、あ
るいは読み出しポインタがFILMO−RAMの中程に位置している(FALS
E)か、つまり使われるエントリが読み出しポインタとFILMO−RAMの最
初との間に位置しているかが表される。さらに、ReadPとFullPの状態
を格納する2つのレジスタが存在する。これは消去されていない最初のエントリ
が現れたときに両方のレジスタを保護するために必要である。なぜならば、あと
で行われる読み出しアクセスにあたり、そのエントリのロケーションで読み出し
を開始しなければならないからである。しかし他方、ReadPとFullPは
目下の読み出しプロセスの間、次の読み出しアドレスを得る目的で、またはFI
LMO−RAMの終わりを確認する目的で、さらに変えられなければならない。
FILMOをFIFOに似た構造(いわゆるリングメモリ)として構成すること
により、メモリの最初と最後をアドレス0や最大アドレスに基づき確認すること
はできない。
【0138】 基本状態から2つのシーケンス経路が生じる。
【0139】 1.読み出し経路(0601) FullPとReadPがレジスタ中に保護される。処理ループが始まる: BeginFはTRUE。FullPがゼロであれば、ReadPとFullP
はそれらのレジスタから読み戻され(0602)、ステートマシンは基本状態に
ジャンプして戻る。そうでなければ(0603)、ReadPの指しているFI
LMO内のエントリが”NOP”と等しいか否かが調べられ、つまり消去された
とマーキングされたFILMO中程のエントリであるか否かが調べられる。これ
が該当しなければ(0604)、コンフィグレーション可能なエレメント(CE
L)へのエントリの書き込みが試みられる。CELが再コンフィグレーション可
能ではないため、これがうまくいかなければ(REJECT,0605)、Be
ginFがFALSEにセットされ、FullPがデクリメントされ、Read
Pがインクリメントされる。ステートマシンは処理ループの最初にジャンプする
(0606)。CELへのエントリの書き込みがうまくいくか(0607)、ま
たはエントリがNOPであれば、BeginFが調べられる。
【0140】 BeginF==TRUE(0608):その前に消去されていないエントリ
は存在しない。FullPはインクリメントされ、FILMOの新たな開始を記
録しておくため、ReadPは所属のレジスタにおいて保護される。また、目下
のデータ量を記録するためFullPは保護され、ReadPはインクリメント
される。
【0141】 Begin==FALSE(0609):FullPはインクリメントされ、
FILMO−RAM内の目下のエントリはNOPによって上書きされ、つまりそ
のエントリは消去される。ReadPはインクリメントされる。
【0142】 これら両方の事例とも、ステートマシンは処理ループの最初にジャンプする。
【0143】 2.書き込み経路(0601) FullPが最大値であるかをチェックすることで、FILMO−RAMがい
っぱいであるかが調べられる。いっぱいであれば(0611)、スペースを確保
するため読み出し経路にジャンプする。そうでなければデータワードがFILM
O−RAMへ書き込まれ、WritePとFullPがインクリメントされる。
【0144】 図7には、メインステートマシンのシーケンスが示されている。これは以下の
ときにただちに基本状態(IDLE)を離れる。すなわち、 1.REMOVE−Kommandoがその上に位置するCTから現れたとき(
0701):REMOVE命令が実行され、ステートマシンはIDLEへ戻る。
【0145】 2.各CT間でトリガを生成するトリガ信号が現れたとき(0702):トリガ
が出力される。ステートマシンは”STOP”命令へジャンプし、その後、ID
LEへ戻る。
【0146】 3.KR/IKR<ID>を実行するトリガ信号が現れたとき(0703):プ
ログラムポインタ(PP)には、LUT2により生成されたアドレスがロードさ
れる。アドレスが無効であれば、つまりロードすべきKR/IKRのためにいか
なるエントリも存在しなければ、それがロードされ(0704)、PPが新たに
セットされる。
【0147】 実行ループが始まる: PPがインクリメントされ(最初のループ実行時にはこれによりBEGIN<
ID>命令が飛び越される)、別のトリガの発生が阻止され、RECONFIG
が阻止される。命令が実行され、実行ループの最初にジャンプする(0707)
。命令”STOP”が別個に実行される(0705)。トリガとRECONFI
Gが再びイネーブルにされ、ステートマシンはIDLEにジャンプする。命令”
EXECUTE”も別個に実行される(0706)。EXECUTE<ID>で
表されたIDがID−REGに書き込まれる。PPは新たにロードされ、IDに
より表されたKR/IKRが実行される(0708)。
【0148】 CTのリセット後、基本コンフィグレーションがCTRにロードされ、そのま
ま基本コンフィグレーションの実行にジャンプする(0709)。
【0149】 図8にはSCRR−ARBの構造が示されている。調停されるべき信号はデー
タINを介してマスク(0801)に到達し、これは既知のテーブルに従い信号
の関連部分を通したり阻止したりする。従来技術による慣用の優先順位アービタ
(0802)は通された信号の集合から1つの信号を調停し、そのバイナリベク
トル(BinaryOut)を有効/無効識別子(ValidOut)とともに
(やはり従来技術に従い)SCRR−ARBの出力として供給する。この信号は
既知のテーブルに従いデコーディングされ(0803)、クロック同期のための
レジスタ(0804)へ導かれる。このレジスタを介して、データINマスクが
スイッチングされる。その際、レジスタはクロックにより制御されるかまたは、
次の有効なバイナリベクトルを問い合わせるネクスト信号(イネーブルEN)に
よって制御される。リセット時または識別子(ValidOut)が無効である
と示されたとき、データINマスクがすべての信号を通すようレジスタがスイッ
チングされる。
【0150】 マスクの構造が0805に描かれている。0806にもマスクが再度描かれて
おり、この場合には信号であるデータIN 0..データIn 1に対しSCR
R方式に従い同じ優先順位が与えられているのに対し、データIn m..デー
タIn nには高い優先順位が与えられている。
【0151】 図9にはLUTの構造が示されている。調停されたトリガのバイナリベクトル
(BinaryIn)は、LUT1のアドレス入力側(0901)へ導かれる。
LUT1はバイナリベクトルを、別のCTへ転送するために有効なトリガに変換
するか、あるいは有効なIDに変換する。これらはともに0901を経て送出さ
れる。0911において、それがトリガであるかIDであるかが指示される。命
令”REFERENCE”によって、LUT1へ到来するバイナリベクトルの変
換がエントリされていなければ、(ビットエントリまたは特定のトークンたとえ
ば”VOID”に対する比較器によって)信号”Illegal Trigge
r”が生成される(0914)。
【0152】 トリガは0912を介して外部のIDへ導かれ、IDはマルチプレクサ(09
02)を介してさらに処理される。0902は、有効なIDを表すLUT1のデ
ータ出力またはCTのIDレジスタ(0903)を、LUT2のアドレス入力側
(0904)へスイッチングする。0904はキャッシュに似た構造を有してお
り、つまり0902からのデータ出力側における下位の部分(0906)は09
04のアドレス入力側へ供給されるのに対し、上位の部分(0907)は090
4のデータ入力側へ供給される。0904に属するデータ出力側は、比較器(0
905)によって0907と比較される。この方式の利点は、0904がすべて
のIDを変換するために深さをもっている必要がなく、かなり小さくすることが
できる。慣用のキャッシュと同様にIDの一部分だけが変換され、その際、LU
T2内で0907に基づき、選択されたIDがLUT1により与えられたものと
一致するか否かを判定することができる。これは従来技術によるキャッシュ/T
AG方式に相応する。
【0153】 0904における第2のデータ入力側にはマルチプレクサ0908が対応づけ
られて設けられており、これはオペレーションに従いフリーポインタ(FP、オ
ペレーションLOAD)、ガーベージポインタ(GP、オペレーションREMO
VE)または無効識別子/トークン(NoAdr、オペレーションREMOVE
)をLUT2へ格納するために供給する。両方のポインタはCTR内のメモリロ
ケーションを参照しており、”NoAdr”は、適合するIDに対するエントリ
が存在せずそのエントリは消去されていることを表す。このことはデータ出力側
において、比較器0909によってデータをトークン”NoAdr”と比較する
ことによって判定される。この場合、ステートマシンへ以下のことが転送される
。すなわち、 −”ValidIn”によるバイナリベクトルの発生(図8参照)。
【0154】 −LUT1における変換がトリガであるかIDであるかの指示(0911,”T
rigger/ID Out)。トリガは0912を介して別のCTへ転送され
、IDは固有のCTにおいて処理され、LUT2へ転送される。
【0155】 −対応するIDが0904に格納されているか否かを表す0905の結果(”H
it/Miss Out)。
【0156】 −対応するIDがCTR内の有効なアドレスを指示しているか否かを表す090
9の結果(”NoENtry Out”)。
【0157】 0904により生成されたアドレスはCTRへ転送される(”CTR Add
ress Out)。
【0158】 LUT1へ命令”REFERENCE”を介して、到来したバイナリベクトル
からトリガまたはIDへの変換がロードされる。命令のオペランドはバス091
3を介してLUT1へ導かれる。同じバスを介してIDレジスタ(0909)が
ロードされる。
【0159】 図10には、ガーベージポインタ(GP)、プログラムポインタ(PP)、ム
ーブポインタ(MP)およびフリーポインタ(FP)が示されている。各ポイン
タは、別個に制御できるロード可能なアップダウンカウンタによって構成されて
いる。各ポインタには(必要であるかぎり)、他のカウンタの値をロードするこ
とができ、さらにLUT2の出力(0107)もロードすることができる。
【0160】 比較器によって 1.PPがMPと等しいか 2.MPがFPと等しいか 3.FPがCTR内の最大ポジションと等しいか が判定される。その結果はステートマシンの制御に用いられる。マルチプレクサ
(1001)を介して、ポインタのうちの1つがCTRのアドレス入力側へ案内
される。データはマルチプレクサ(1002)を介して上位のステートマシンか
ら、またはレジスタ(1003)から、CTRへ到達する。さらにステートマシ
ンおよびFILMO(1006)へ、マルチプレクサ(1004)を介して上位
のCTまたはCTRのデータが転送される。この場合、上位のCTからREMO
VE命令が発生したときにはそれがそのまま1004を介してステートマシンへ
導かれるのに対し、そうでなければ命令はCTRからステートマシンへ案内され
る。レジスタ1003は、命令を格納しCTR入力側へフィードバックするため
に用いられ、それらはガーベージコレクタ実行中にあるアドレスから別のアドレ
スへシフトされる。
【0161】 図11にはFILMOの構造が描かれている。データはCTR(1101)か
らFILMOへ到達し、マルチプレクサ(1102)を介してFILMO−RA
M(1103)へ書き込まれるかまたは、マルチプレクサ(1104)を介して
コンフィグレーション可能なエレメント(1116)へ送られる。データが11
03において消去されると、1102を介して”NOP”トークンが1103へ
書き込まれる。比較器(1105)によってデータ出力側で”NOP”トークン
が識別され、コンフィグレーション可能なエレメントへの書き込みが阻止される
。マルチプレクサ1106を介して、書き込みポインタWriteP(1107
)または読み出しポインタ(1108)が1103のアドレス入力側へ導かれる
。リセット(図6参照)を行えるようにするため、レジスタ1109で読み出し
ポインタが保護される。1103における充填状態カウンタ(1110)は、図
6に示したようにレジスタ1111でリセットに対し保護される。1103が空
であるか(1112)またはいっぱいであるか(1113)が、2つの比較器に
よって調べられる。さらにマルチプレクサ1115を介して、1116へ(11
01からの)ステートマシンの制御信号を送るのか、FILMOの制御信号を送
るのかが選択される。
【0162】 図12aにはCTSの階層構造が示されている。すべてのCTSはそれらのデ
ータを、ROOT−CT(1201)およびそれに割り当てられたECR(12
04)から受け取る。コンポーネント内における各実装平面ごとに、1つまたは
複数のCTが存在している。各CTは、それらの平面およびその下に位置するC
Tの管理を担当する。なお、ツリーのすべての枝が同じ深さにある必要はない。
たとえば、1つのコンポーネントの周辺装置(1202)を制御するためには、
動作ユニット(1203)を制御するよりも僅かな平面しかないかもしれない。
この場合、データ伝送はツリー状に行われる。各CTは、その下に位置するすべ
てのCTのためのキャッシュとして動作する。
【0163】 図12bには、各CT間におけるトリガの流れが示されている。データの流れ
はツリー状に進行するのに対し、トリガの流れは固定されていない。各CTは、
他のいかなるCTへもトリガを送ることができる。トリガ交換は通常、リーフ(
1203)からROOT−CTの方向でのみ行われる。しかし場合によっては、
逆方向で伝送が進行する可能性もある。
【0164】 図12cにはトリガベクトルのブロードキャストが描かれており、ここでは1
205がトリガベクトルをすべてのCTへ送る。
【0165】 図12dにはHIGHERトリガベクトルが示されており、1206はこれを
その上に位置するCTへ送る。また、1207はLOWERトリガベクトルを、
その下に位置するすべてのCTへ送る。さらに1208は、ダイレクトにアドレ
ッシングされた(ADDRESSED)トリガベクトルを、1207とダイレク
トにはつながっていない特定のCTへ伝送する。
【0166】 図13の場合、独立した2つのIKR nとmが、その上位のCTにキャッシ
ュされている共通のKRxを要求している。そこに示されているように、このK
Rは共通の枝によりキャッシュされ、隣りの枝(1301)においても共通のC
Tを利用可能である。
【0167】 図14には、図9に対し変形されたLUTシステムが示されており、これは中
間の階層平面におけるROOT−CTとCTにおいて用いられる。これまで述べ
てきたCTとの基本的な相違点は、個々のトリガ信号の代わりにIDおよび/ま
たはトリガベクトルをCTにより管理しなければならないことである。ここでは
各ベクトルに、ベクトルの有効性を指示するためのハンドシェーク信号(RDY
)が割り当てられており、これはアービタ(1401)へ伝送される。マルチプ
レクサ(1402,1403)を介して、複数のトリガベクトル(1404)の
うちの1つまたは複数のIDベクトルのうちの1つ(1405)が選択される。
トリガベクトルはLUT1(1406)のアドレス入力側へそのまま到達し、L
UT1はその他の点では図9に示されているように結線されている。IDレジス
タ(1407)も、やはり図9に示されているように結線されている。図9とは
異なり、マルチプレクサ1408は3つの入力側を有している(0902を参照
)。ここではこのマルチプレクサはステートマシンのほか、付加的にアービタ1
401によっても制御される。付加的な入力側を介して、1403を経たIDベ
クトルはLUT2へそのまま伝送される。この目的でバス1409が用いられる
。(基本的に、図9に示したCTの場合でもIDをマルチプレクサ(1408)
によってLUT2へダイレクトに供給することができる。この場合にはIDを、
変換せずにそのままCELからLUT2へ送ることができる。)”Trigge
r/ID Out”は、図9に示されているようにして生成される。図9によれ
ば”Valid Out”へ転送される”ValidIn”信号は、ここでは存
在しない。その代わりに1401によるアービテーションに応じて、トリガベク
トルのためには”Valid Trigger Out”が生成され、IDベク
トルのためには”Valid ID Out”が生成され、これによって処理を
どのように行うべきかがステートマシンに指示される。
【0168】 バス1409は1410を介して、ROOT−CT内だけに存在し図15には
示されていない別のユニットへ案内される。ROOT−CTは通常のCT機能に
加えて、外部のコンフィグレーションメモリ(ECR)へのインタフェースおよ
びなければならないアドレス発生器とECRへのアクセスを管理するユニットを
必要とする。
【0169】 慣用のCTは、LUT1へ到来するトリガベクトルをIDに変換し、LUT2
においてそのIDをCTR内のメモリロケーションに変換する(図16a参照)
。ROOT−CTはECRへのアクセス時、ECR内部におけるIDをECR内
のアドレスへ変換し、そのアドレスにおいてIDにより参照されたKR/IKR
が始まる。この目的でECR内に、可能なIDの個数に対応する大きさをもつメ
モリ領域が設定されている(たとえばIDが10bit幅であれば210=102
4個の可能なIDが得られ、したがってECR内で1024個のエントリが予約
される)。以下の実例ではこのメモリ領域はECRの下端にあり、LUT2との
類似性を区別するため、LUT−ECRと称する。その際、トリガからIDへの
変換は、既知のCTに従いLUT1(1601)において行われる。理解を深め
るため、図16bによりECRへのアクセスについて示す。
【0170】 IDは図15において、図14中のバス1410を介してマルチプレクサ15
01に到達する。さらに1501を介して、IDはロード可能なカウンタ150
2へ書き込まれる。1502の出力側は、マルチプレクサ1503を介してEC
Rのアドレスバス(1504)へ導かれる。データバス1505を介して、ID
からメモリアドレスへの変換はマルチプレクサ/デマルチプレクサ(1506)
を経て1501へ到達し、これは1502に対しメモリアドレスをロードする。
その後、ステートマシンLOAD−ECR(図17参照)によって対応するKR
/IKRのデータワードがECRから読み出され、CTRに書き込まれ、その際
、1502は読み出しプロセス後にそのつど高められ、これは命令”STOP”
が読み出されるまで行われる。
【0171】 インタフェース1507を介して、上位に位置するHOSTが1503/15
06を介してKR/IKRをECRへ書き込む。その際にステートマシン(CT
S)によって、ECRへHOSTがアクセスするのかROOT−CTがアクセス
するのかについてて調停される。
【0172】 コンポーネントのリセット後、基本コンフィグレーション(BOOT−KR)
をロードする必要がある。このため固定的なメモリアドレス(BOOT−ADR
)が取り入られ、これはBOOT−KRにおける最初のメモリテーブルを示す。
BOOT−ADRとしては、IDが1で始まるかぎりメモリロケーション0hが
推奨され、そうでなければ2IDまたは他の何らかのメモリロケーションを使用す
ることができる。この実施例では2IDを使う。
【0173】 ROOT−CTはBOOT−KRをBOOT−ADRのロケーションにロード
するため、BOOT−KRがロードされているかぎりルックアップを実行する。
ROOT−CTは1502の後でデータを書き換え、そこからは”STOP”命
令が発生するまでBOOT−KRをロードできるようにする。
【0174】 ROOT−CT内の監視ユニットは、HOSTとコンポーネントとの同期合わ
せの役割を担っている。これは以下のようにして行われる: アドレス 小さい2IDは1508により監視され、つまりHOSTによってこ
のアドレスへのアクセスが行われると、信号(ACC−ID)がステートマシン
(CTS)へ送られる。同様に、BOOT−ADRが1509を介して監視され
、信号ACC−BOOTがステートマシン(CTS)へ送られる。
【0175】 ステートマシン(CTS)は以下のように応答する: −HOSTがBOOT−ADRへ書き込みを行うと、これはBOOT−KRのロ
ードに作用する。
【0176】 −HOSTがデータワード0(152)をBOOT−ADRへ書き込むと、この
ことは比較器1510を介して確認され、コンポーネントの停止に作用する。小
さい2IDのアドレスへHOSTが書き込みを行うと、アドレスがREMOVEレ
ジスタ(1511)へロードされる。そのアドレスはIDに対応しているので(
ECR−LUT参照)、変更されたKR/IKRのIDは1511内におかれる
。すべてのCTへ、即座に実行するための命令REMOVE<ID>が送られる
(1513)。それに応じてCTは、対応するIDのKR/IKRをそれらのC
TRないしはLUT2から消去する。KR/IKRの後続の呼び出しにあたり、
CTは強制的に新たなKR/IKRをECRからロードしなければならない。
【0177】 図17には、ECRをIR/IKRからロードする際のROOT−CTにおけ
るシーケンスが示されている。IDが内部のCTR内に存在しなければ(図1の
1701参照)、IDはカウンタ1502へ書き込まれる(1703)。150
2におけるアドレスを用いたECRのアクセスによって、KR/IKRのベース
アドレスが供給される。これは1502へ書き込まれる(1704)。図2によ
るLOADが行われる(1702)。この場合、データは上位のCTからではな
くECRから読み出され(1705)、本来のCTRへ書き込まれるだけでなく
、下位のCTへも送られる(1706)。中間の階層平面におけるCTにおいて
、図1の場合と同じようにしてトリガの変換が行われるが、ただし例外としてト
リガベクトルとIDベクトルは図14に従って処理しなければならない。また、
KR/IKRは図2に従ってロードされるが、例外として、データワードは本来
のCTRに書き込まれるだけでなく(0210)、同時に下位のCTへも送られ
る。
【0178】 図19にはFILMOの基本原理が示されている。FILMO(1901)は
、読み出しアクセスおよび書き込みアクセスにあたり必ず始めから終わりへ向か
ってスキャンされる(1902)。FILMOの最初のエントリが書き込まれ消
去されると(1903)、読み出しポインタは消去されていない最初のエントリ
までシフトされる(1904)。FILMOの中間からエントリが書き込まれた
とき(1905)、読み出しポインタは変わらずに保持され(1906)、それ
らのエントリに”NOP”がマーキングされる(1907)。データがFILM
Oに書き込まれると(1908)、それが終端において最後のエントリの後ろに
付けられる(1909)。読み出しポインタ(1910)は変えられずに保持さ
れる。
【0179】 当然ながら、LUT1、LUT2およびCTRを有するメモリだけしか備えて
いないCTを形成することもできる。とはいえ、その制御は比較的煩雑である。
その際にCTは、すでにLUT2とCTRがECR内に統合されているROOT
−CTと同じように構成されている。このやり方を理解するために、このCTの
説明は不要である。
【0180】 CTをデータ用のキャッシュシステムとして適用する場合、データをCTR内
へ書き込むためのトリガが挿入される。この場合、データはCELからCTRへ
書き込まれる。このために必要な変更は一般的なものであり、FILMOは完全
に省略できる。データのキャッシュにあたり、データの一貫性という問題点が生
じる。このことは、DE 42 21 278 A1 による方法を適用して、データおよびそれ
らのデータの有効性を個々の階層平面において識別できるようにすることで回避
することができる。リード・モディファイ・ライト・サイクル(Read-Modify-Wr
ite-Cycle, RMWサイクル)を実行するためにデータが要求される場合、すべ ての階層平面におけるデータが付加的なエントリに基づきCTR/ECR内で無
効である(INVALID)と識別される。このためエントリに、データを利用
するKR/IKRの一義的なIDをエントリすることができる。データは、それ
らのデータを利用するKR/IKRがデータを書き戻し(従来技術によるライト
・バック方式を参照)それらのIDを消去してしまうまで、他のIDをもつKR
/IKRによって利用することができない。
【0181】 図20には1つの実施例が示されている: この場合、図20aにおいてCT2007がその上に位置するCTに対しデー
タを要求し、上位のCTはROOT−CT2004にデータを要求する。データ
要求とともに、要求を行うKR/IKR(2001)のIDが伝送される。デー
タ(2002)は2007へ送られる。それ以降の他のすべてのアクセスは拒絶
される(2003)。
【0182】 図20bにおいてデータが書き戻され(2005)、それ以降の他のアクセス
が再び受け入れられる(2006)。
【0183】 図20cにおいて中間の階層のCTによりデータが要求され、データを所有し
、それが2007へ送られる。データを阻止するためのIDは、階層内のすべて
のCTへ送られる(2001)。図20dにおけるデータの書き戻し(ライトバ
ック)において、データは階層内のすべてのCTへ書き込まれ、IDが消去され
る。
【0184】 図21には、複数の介在CT(2104,2105,2106)を経由したI
NITIATOR CT(2101)とTARGET CT(2102)との通
信、ならびにGETCTS/LOOSECTS方式による介在平面を経由しない
TARGET CT(2103)とのダイレクトな通信について描かれている。
【0185】 2101は2103へのコネクションを確立する。確立成功後、2101は2
103から、確立の確認としてGRANTを受け取る。その後、2101は21
04,2105,2106を介して、2102へのコネクションを確立する。2
102へのコネクションは、2102に達したときにはじめて承認される(GR
ANT)。
【0186】 バスの1つが占有されていてコネクションを確立できなければ、REJECT
が2101へ送られ、2101はそのプロセスを中止する。つまり、2103へ
のコネクションも中止され、REJECTが2103へ送られる。しかし210
2がGRANTによってコネクションを承認すると、2101は2103と21
02へGO命令を送り、これによって同時に2103と2102へコネクション
確立の成功と同期が確認される。このプロトコルによって、データまたは命令を
デッドロックを生じさせずに同期させて伝送することができる。なぜならばGO
によって、すべてのTARGETが命令を正しく受け取るようになるからである
【0187】 図22には、GETBUS/LOOSEBUS方式によるInter−CT通
信の経過が示されている。図21によるやり方ではそのつど上位におかれたCT
が制御および優先順位づけの役割を担っているのに対し、ここでは制御はInt
er−CTバス(2201)によって引き継がれる。
【0188】 2103へのコネクションは、INITIATOR−CT(2101)がその
ローカルなInter−CTバスを要求する(2202)ことによって確立され
る。バスが空いていれば(ACCEPT)要求が承認され、バスが占有されてい
れば(REJECT)要求が拒否される。その後、これは2102のアドレスを
バスへ送る。アドレッシング方式に従いバスコントローラは、そのアドレスがロ
ーカルなバスアドレス外にあることを識別し、上位のCT2104を介してその
CTのローカルなバスへのコネクションを確立する(2203)。
【0189】 2102のアドレスはそのアドレス範囲内にあるので、2106を介して21
02のローカルバスへのコネクションが確立される(2204)。2101はこ
のとき、データ通信に必要とされるすべてのバスにおけるただ1つのバスマスタ
となっているので、デッドロックの生じないスムーズな通信を確実に進行させる
ことができる。それというのも、他のすべてのCTに対して通信チャネルが阻止
されているからである。2102と2103もバスを利用することができない。
その理由は、それらはTARGET役として命令だけしか受け取ることができず
、INITIATOR(2101)自体による要求に応答してデータを送ること
しかできないからである。
【0190】 通信が終了するとただちに、2101からの信号によってバスの確立状態が解
除される。2101がバス確立動作中に使用されているバスに当たれば、REJ
ECTが2101へ送られ、2101はそのバスシステムを再び解除し、あとの
時点で新たに確立を試みる。複数のCTが同時に同じバスを要求したときには、
上に位置するCTに対し高い優先順位が付けられる(2205)。このことによ
り、すでに多数の平面を経由して延びた長く進行しているバス確立動作が、まだ
非常にローカルなバス確立動作によって打ち切られてしまうことが回避される。
拡張されたプロトコルによればREJECTが発生したとき、高い優先順位の付
けられたバス確立動作により必要とされるバスだけを解除することができる。こ
れによりパフォーマンスを格段に高めることができる。なぜならば、バスすべて
をあとの時点で新たに確立しなくてもよいからである。
【0191】 図23には、図22によるやり方のためのInter−CTバスの確立につい
て描かれている。CT2301〜2304は、それらのインタフェース(230
8〜2311)を介して上位のCT2305(インタフェース2307)といっ
しょにInter−CTバス2312と接続されている。Iter−CTバスの
接続はラウンドロビン・アービタによって行われ、これは2308〜2311に
対し同じ優先順位を与えるが、2307に対してはそれよりも高い優先順位を与
え、これは各バスをまとめるためのマルチプレクサを制御する。アービタには、
制御信号(たとえば確立/解除、ACCEPT,REJECT...)を評価す
るステートマシンが対応づけられている。
【0192】 図24には、1次元のCTツリーをもつアドレス方式の構造が示されている。
ここでは正方形によってCTがシンボリックに表されており、その際、CTのア
ドレスが書き込まれている。この場合、−は重要でないアドレスビットを表し、
それらは評価されない。重要なアドレスビットには2進数の0か1が与えられて
おり、何らかの任意のアドレスビットについては*がおかれている。なお、この
図式を多次元のツリーに投影して同様に適用できることも容易に理解することが
できる。その際、与えられたアドレスはそれぞれ軸の1つを表していて、換言す
れば、軸ごとに相応の別個のアドレス系が存在するのである。
【0193】 図24aには、CT0001からのアドレッシングについて描かれている。こ
の場合、相対アドレス−1が示されている。計算 −1+1=00(「相対移動
」+「目下の平面上でのINITIATOR−CTのアドレス」)により、同じ
ローカルバスに接続されているCT 0000を計算することができる。
【0194】 図24bによれば、CT 0010は相対アドレス+10を有している。計算
10+0=0(「相対移動」+「目下の平面上でのINITIATOR−CT
のアドレス」)により、桁上げ1が生じる。なぜならば、最下位のローカルバス
のアドレス領域はちょうど1bit幅だからである。これにより、次に高いバス
が選択される。そのバスのアドレス計算にあたり10+10=00(「相対移
動」+「目下の平面でのINITIATOR−CTのアドレス」)によって新た
に桁上げが発生する。なぜならば、そのアドレス領域は最下位バスのアドレス領
域よりもちょうど1つだけ大きい2bitだからである。次に高い平面では、計
算10+010=0100によっても桁上げは発生せず、したがって(左から)
3番目のビットにより次に低い平面との経路1**がアドレッシングされ、(左
から)2番目のビットによりさらに次の最下位平面の経路10*がアドレッシン
グされ、ついで最後のビットによりTARGET−CTが選択される。
【0195】 図24cには、2つの平面を介した正の方向でのやり方が示されており、図2
4dには、負のオーバーフローをもつ負の方向での3つの平面を介したやり方が
示されている。
【0196】 図25には、2次元のCTツリーの構造が示されている。最下位平面(250
2)には、CT(2501)が2次元で配置されて設けられている。次元のアド
レスは、個々のCTにおいてx/yで与えられている。2502の上位には、次
に高い平面(2504)がおかれている。それらのCT(2503)はそれぞれ
、平面2502における4つのCTのグループを制御する。2504におけるC
Tのアドレス空間は1bitだけ幅が広く、ここでは*によって平面2502の
アドレスビットが表されているが、それらは2504におけるCTの選択にとっ
て重要なものではない。さらに2504の上位には、ROOT−CT2505が
設けられている。それらのアドレスもやはり1bitだけ幅が広く、*の意味も
同じである。
【0197】 図26には、マイクロコントローラによるインプリメンテーションの場合のガ
ーベージコレクタのチェーンについて描かれている。この場合、すべてのKRは
ヘッダエントリ(garbage−previous/garbage−nex
t)を介して互いにチェーン結合されている。リストによりガーベージコレクタ
を実行する際、エントリが(+1)だけ上昇することによりKRのエージがキャ
ッシュ統計(2602)のために記録される。ガーベージコレクタは、KRがF
ILMOリストにまだ連なっているか否かを表すエントリKR統計(2601)
を留意する。その場合にはGCによってKRを消去してはならず、その理由はそ
れがまだコンフィグレーションされていないKWを有しているからである。択一
的にこのテストを、FILMO−nextおよびFILMO−previous
について実行してもよい。
【0198】 図27には、FILMOリストのチェーンについて描かれている。この場合、
チェーンをガーベージリスト(図26)とは完全に異なるものとすることができ
る。各KRは、FILMO−previousとFILMO−nextを介して
チェーン結合されている。KR統計(2701)のエントリは、個々のKR内に
おいてまだコンフィグレーションされていないそのつど最初のKWを指している
。FILMOの実行は、最初のIDにおいてKRがスタートするように構成され
ている。実行後、実行されていないKWの位置が2701に従って書き込まれる
。KRが完全に実行されてしまっているならば、チェーン結合されたFILMO
リストからそのKRが除去されるが、メモリ内には残される。その後、FILM
Oリストを介して次のKRへのジャンプが行われ、これも同様に処理される。
【0199】 図28には、マイクロコントローラ制御におけるKRの構造が描かれている。
まず最初にジャンプ命令がおかれており、これによってKRのヘッダ(2801
)の後ろへのジャンプが行われる。各KWにはFILMOビット(2802)が
割り当てられている。この場合、値1(2803)によって、KWがCELによ
り受け入れられ(ACCEPT)、次のスキャン時にはもはや実行されないこと
が表されている。値0(2804)はREJECTを表し、そのKWは次のスキ
ャン時に新たに実行されなければならない。オプションとしてのKR統計(27
01)は、0の付された最初のKWを指している。PUSHRET(2805)
がREJECTを受け取ると、KRの処理はそこで中止され、次のスキャン時に
最初のKWにおいてあるいは2701の指すロケーションにおいて新たに行われ
る。そうでなければ、KRはその終端で2806において規定どおりに終了する
【0200】 図29には、FILMOスキャン前またはKRスタート前のCELのステータ
ス情報を保護するための回路が示されている。このステータス情報は、CEL(
2901)からレジスタ(2902)へ到達する。FILMOのスキャン前また
はKRのスタート前、CTはイネーブル信号(2903)を2902へ送る。そ
れに応じてステータス情報が引き継がれ、CTへ転送される(2904)。29
04は、2903からの次の発信までそのまま一定に維持される。
【0201】 用語の定義 ACCEPT アドレッシングされたCELがコンフィグレーション可能な状態にあり送られ
たKWを受け入れることを表す ブロック命令(たとえばBLOCK−MOVE) 複数のデータ(ブロック)をメモリ内またはメモリと周辺装置の間でシフトさ
せる命令。この場合、シフトすべきデータの出所アドレス、そのデータの宛先ア
ドレス、ならびにデータブロックの長さが表される。
【0202】 ブロードキャスト 多数の受信側への情報の送信 データ受信側 CELの結果を後続処理するユニット データ送信側 CELのためのデータをオペランドとして利用できるユニット データワード 1つのデータワードは任意の長さのビット列から成る。このビット列は、装置
のための1つの処理単位を成している。1つのデータワードにおいて、プロセッ
サ等のコンポーネントのための命令も純粋なデータもコーディングすることがで
きる。
【0203】 デッドロック 対向するブロックに起因していかなるデータ処理も不可能な状態 DFP DE 44 16 881 によるデータフロープロセッサ DPGA ダイナミックにコンフィグレーション可能なFPGA。従来の技術。
【0204】 エレメント あらゆる種類の完結したユニットに対する総称であって、部品として電子コン
ポーネント内で使用できるもの。つまりエレメントとは: −あらゆる種類のコンフィグレーション可能なセル −クラスタ −RAMブロック −ロジック −算術ユニット −レジスタ −マルチプレクサ −チップのI/Oピン 結果 ある結果は、使用に適した何らかのやり方でハードウェアにより評価すること
ができ、その評価に対する反応として条件付けられたアクションをトリガさせる
ことができる。
【0205】 したがって結果とはたとえば: −計算装置のクロックサイクル −内部または外部の割り込み信号 −コンポーネント内部における他のエレメントからのトリガ信号 −データストリームおよび/または命令ストリームとある値との比較 −インプット/アウトプットの結果 −カウンタのシーケンス、オーバーフロー、新たなセット等 −比較の評価 FIFO 従来技術によるファーストイン・ファーストアウト・メモリ FILMO リニアにデータの読み出される変形FIFO。メモリ始端への読み出しポイン
タの制限はない。
【0206】 FPGA プログラミング可能なロジックコンポーネント。従来技術。
【0207】 F−PLUREG CELの機能のセットされるレジスタ。ワン・ショットモード(OneShot-Mode
)、スリープ・モード(Sleeo-Mode)もセットされる。
【0208】 フラグメンテーション メモリが細分化され、たいていは小さくしたがって役に立たない多数のメモリ
領域になること ガーベージコレクタ メモリ管理ユニット。フラグメンテーションを回避する。
【0209】 Hレベル 利用される技術に応じて論理値1のレベル HOST 上位のコンピュータのコンポーネントまたはアセンブリ IDLEサイクル ステートマシンが処理を実行しないサイクル。ステートマシンの基本状態。
【0210】 Inter−CTバス 1つの平面における複数のCTと上位におかれたCT(CTグループ)間のバ
スシステム INITIATOR Inter−CTバスへのアクセスをスタートさせるCT ポインタ アドレスまたはデータワードへのポインタ コンフィグレーション可能なエレメント(KE) コンフィグレーション可能なエレメントは、専用の機能のためのコンフィグレ
ーションワードにより形成可能なロジックコンポーネントのユニットを成してい
る。したがってコンフィグレーション可能なエレメントは、あらゆる種類のRA
Mセル、マルチプレクサ、算術論理ユニット、レジスタ、ならびにあらゆる種類
の内部および外部のネットワーク仕様等である。
【0211】 コンフィグレーション可能なセル(CEL) ロジックセルを参照 コンフィグレーション ロジックユニット、(FPGA)セルまたはCELの機能およびネットワーク
の形成(再コンフィグレーションを参照)。
【0212】 コンフィグレーションデータ 任意の量のコンフィグレーションワード コンフィグレーションルーチン 複数のコンフィグレーションワードが1つのアルゴリズムにまとめられたもの コンフィグレーションメモリ コンフィグレーションメモリには1つまたは複数のコンフィグレーションワー
ドが含まれている。
【0213】 コンフィグレーションワード(KW)は任意の長さのビット列から成る。この
ビット列は、コンフィグレーションすべきエレメントに対する有効なセッティン
グを成しており、したがって機能を果たす1つの単位が生じる。
【0214】 ロードロジック CELをコンフィグレーションおよび再コンフィグレーションsるためのユニ
ット。特別にその役割に整合されたマイクロコントローラによって構成されてい
る。
【0215】 ロジックセル DFP、FPGA、DPGAにおいて用いられるコンフィグレーション可能な
セルであって、コンフィグレーションに従い簡単な論理的または算術的役割で満
たされる。
【0216】 ルックアップテーブル 従来技術。データの変換方法。
【0217】 LUT1 トリガをIDに変換するルックアップテーブルであって、トリガが有効なID
に割り当てられているか否かが判定される。
【0218】 LUT2 IDをローカルメモリ内の対応するKRのアドレスに変換するルックアップテ
ーブルであって、KRがローカルメモリ内に存在しているか否かが判定される。
【0219】 Lレベル 利用される技術に応じて論理値0レベル マスク 複数の信号のうち有効な信号を与えるビットの組み合わせ RECONFIGトリガ 再コンフィグレーション可能な状態へのCELのセット REJECT アドレッシングされたCELがコンフィグレーション可能でない状態にあり、
送られたKWを受け入れられないことを表す信号 REMOVE<ID> 1.IDにより参照されたKRを除去するためのKR内の命令 2.IDにより参照されたKRを消去するため、上位のCTから別個のインタフ
ェースまたはハンドシェーキングを介して下位のCTへ送られる命令 RESET コンポーネントまたはコンピュータシステム全体を規定された基本状態へリセ
ットすること ROOT−CT 外部のコンフィグレーションメモリへのダイレクトなアクセスを行う最高階層
平面のCT ラウンドロビン・アービタ 環状に進行し、最後に調停された信号に常に最下位優先順位を割り当てるアー
ビタ。
【0220】 同期信号 コンフィグレーション可能なエレメントまたは算術ユニットにより生成され、
データ処理の制御および同期合わせのため別のコンフィグレーション可能なエレ
メントまたは算術ユニットへ転送されるステータス信号。この同期信号を時間的
に遅らせて(記憶して)、同じコンフィグレーション可能なエレメントまたは算
術ユニットへ戻すこともできる。
【0221】 TARGET Inter−CTバスへのアクセスの目標となるCT。
【0222】 トリガ 同期信号と同義語 再コンフィグレーション 任意の残量のCELが本来の機能を継続している間に任意の量のCELを新た
にコンフィグレーションすること(コンフィグレーション参照)。
【0223】 チェーンリスト ポインタによってつなぎ合わせられた従来技術によるデータ構造 セル コンフィグレーション可能なエレメントと同義語。
【0224】 ステートマシン 様々な状態をとり得るロジック。各状態間の移行は、種々の入力パラメータに
依存する。このマシンは複雑な機能を制御するために用いられ、従来技術に相応
する。
【図面の簡単な説明】
【図1】 ルックアップテーブル内におけるアドレッシング方法を示す図である。
【図2】 ステートマシンの命令処理と機能を示す図である。
【図3】 ステートマシンの命令処理と機能を示す図である。
【図4】 ステートマシンの命令処理と機能を示す図である。
【図5】 ステートマシンの命令処理と機能を示す図である。
【図6】 ステートマシンの命令処理と機能を示す図である。
【図7】 ステートマシンの命令処理と機能を示す図である。
【図8】 SCRR−ARBの構造を示す図である。
【図9】 LUT1&LUT2の構造を示す図である。
【図10】 ポインタ演算装置とCTRの構造を示す図である。
【図11】 FILMOの構造を示す図である。
【図12】 図12のaはCTの階層構造を示す図であり、図12のbは各CT間における
トリガの送信を示す図であり、図12c,dは送信方法を示す図である。
【図13】 複数のIKRによるKRの呼び出しを示す図である。
【図14】 ROOT−CTにおけるLUT1の構造を示す図である。
【図15】 ROOT−CTにおけるHOSTコントロールの構造を示す図である。
【図16】 LUTとECRのコンセプトを示す図である。
【図17】 中間階層平面ないしはROOT−CTにおけるCTのシーケンスコントロール
を示す図である。
【図18】 2次元アレイのコンフィグレーションにおけるデッドロックの問題点を示す図
である。
【図19】 FILMOコンセプトを示す図である。
【図20】 Inter−CTコミュニケーションの基本原理を示す図である。
【図21】 GETCTS方式によるInter−CTコミュニケーションの実装例を示す
図である。
【図22】 GETBUS方式によるInter−CTコミュニケーションの実装例を示す
図である。
【図23】 Iter−CTバスのバス構造を示す図である。
【図24】 CT階層内におけるアドレッシングを示す図である。
【図25】 ガーベージリストである。
【図26】 KR内のFILMO機能を示す図である。
【図27】 FILMOリストである。
【図28】 KRまたはFILMOを実行する前の状態の格納について示す図である。
【図29】 FILMOスキャン前またはKRスタート前のCELのステータス情報を保護
するための回路を示す図である。
───────────────────────────────────────────────────── フロントページの続き (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,SD,SL,SZ,UG,ZW),E A(AM,AZ,BY,KG,KZ,MD,RU,TJ ,TM),AL,AM,AT,AU,AZ,BA,BB ,BG,BR,BY,CA,CH,CN,CU,CZ, DE,DK,EE,ES,FI,GB,GD,GE,G H,GM,HR,HU,ID,IL,IN,IS,JP ,KE,KG,KP,KR,KZ,LC,LK,LR, LS,LT,LU,LV,MD,MG,MK,MN,M W,MX,NO,NZ,PL,PT,RO,RU,SD ,SE,SG,SI,SK,SL,TJ,TM,TR, TT,UA,UG,US,UZ,VN,YU,ZW (72)発明者 ロベルト ミュンヒ ドイツ連邦共和国 カールスルーエ ハー ゲブッテンヴェーク 36 Fターム(参考) 5B005 LL00 UU00 【要約の続き】 グレーションメモリからコンフィグレーションをロード する必要がある。ロードすべきコンフィグレーションに ついて一定の時間順序を取り入れ、複数のコンフィグレ ーションを1つのリストにまとめることによって、デッ ドロックが回避される。CELのステータス情報がロー ドの前に保護され、これによりその情報は、複数のコン フィグレーションから成るリスト全体が処理されている 間、変更されずに保持される。

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 複数の演算ユニットから成るマイクロプロセッサおよび2次
    元またはそれ以上の次元のセルアレイ(たとえばFPGA,DPGA,DFP等
    )を備えたコンポーネントにおける命令のキャッシュ方法において、 1.1 複数のセルおよび演算ユニット(CEL)を複数のグループにまとめ
    、ここで各トリガグループに1つのキャッシュユニット(CT)を割り当て、 1.2 個々のサブグループのキャッシュユニットをツリー構造を介して、命
    令の格納された命令メモリ(ECR)へのアクセスを行う上位のキャッシュユニ
    ット(ROOT−CT)と接続し、 1.3 命令を命令シーケンス(KR)にまとめ、該命令シーケンスを常にそ
    のまま全体的にキャッシュし、各キャッシュ間で伝送し、 1.4 前記ツリーにおける最下位または中間の平面上における各キャッシュ
    ユニットは、必要とされる命令をそれぞれ上位のキャッシュユニットに要求し、 1.5 上位のキャッシュユニットは要求された命令シーケンスを、該ユニッ
    トが命令シーケンスをそのローカルメモリに保持しているならば下位のユニット
    へ送り、 1.6 上位のキャッシュユニットは要求された命令シーケンスを、該ユニッ
    トが命令シーケンスをそのローカルなメモリに保持していないならば、その上位
    のキャッシュユニットに要求する、 ことを特徴とする、 複数の演算ユニットから成るマイクロプロセッサおよび2次元またはそれ以上
    の次元のセルアレイを備えたコンポーネントにおける命令のキャッシュ方法。
  2. 【請求項2】 前記命令シーケンスをそのまま全体的に消去する、請求項1
    記載の方法。
  3. 【請求項3】 要求された他の命令シーケンスをロードするのに十分なスペ
    ースがローカルメモリ内に存在しなければ、キャッシュユニットの命令シーケン
    スを消去する、請求項1または2記載の方法。
  4. 【請求項4】 命令シーケンス内の命令(REMOVE)によって、キャッ
    シュユニットにおける命令シーケンスを消去するプロセスをトリガする、請求項
    1または2項記載の方法。
  5. 【請求項5】 命令シーケンス内の命令(EXECUTE)によって、特定
    の命令シーケンス全体のロードをトリガする、請求項1から4のいずれか1項記
    載の方法。
  6. 【請求項6】 任意の命令(EXECUTE,REMOVE等)により各キ
    ャッシュユニット間のバスコネクションを介して、アドレッシングされた任意の
    キャッシュユニットにおいて命令に対応するアクションをトリガする、請求項1
    から5のいずれか1項記載の方法。
  7. 【請求項7】 1つのキャッシュユニットによってしか用いられないため、
    効率的にキャッシュできないプログラムシーケンスを、複数のキャッシュユニッ
    トにより必要とされる小さいサブシーケンスに分解し、別のサブシーケンス(I
    KR)は、命令シーケンスにおけるキャッシュできない残りおよびキャッシュ可
    能なサブシーケンスの呼び出しを含む、請求項1から6のいずれか1項記載の方
    法。
  8. 【請求項8】 各命令シーケンスに、命令シーケンスのエージに関する情報
    すなわち命令シーケンスがキャッシュユニットのメモリ内に滞留している時間に
    関する情報を割り当てる、請求項1から7のいずれか1項記載の方法。
  9. 【請求項9】 各命令シーケンスに、命令シーケンスの呼び出し頻度に関す
    る情報を表す統計を割り当てる、請求項1から7のいずれか1項記載の方法。
  10. 【請求項10】 各命令シーケンスに、命令シーケンスの長さに関する情報
    を表す統計情報を割り当てる、請求項1から7のいずれか1項記載の方法。
  11. 【請求項11】 消去ルーチンを、該ルーチンによって各命令シーケンスの
    統計情報を評価し、実行されるアルゴリズムに応じて最も重要でない命令シーケ
    ンスを除去するように構成する、請求項1から10のいずれか1項記載の方法。
  12. 【請求項12】 前記消去ルーチンは、実行すべきアルゴリズムに合わせて
    プログラミングできるように整合可能である、請求項1から11のいずれか1項
    記載の方法。
JP2000533829A 1998-02-25 1999-02-25 データフロープロセッサおよび2次元またはそれ以上の次元のプログラミング可能なセル構造をもつコンポーネントにおけるコンフィグレーションデータの階層的キャッシュ方法 Expired - Fee Related JP4215394B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE19807872.2 1998-02-25
DE19807872A DE19807872A1 (de) 1998-02-25 1998-02-25 Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
PCT/DE1999/000504 WO1999044147A2 (de) 1998-02-25 1999-02-25 VERFAHREN ZUM HIERARCHISCHEN CACHEN VON KONFIGURATIONSDATEN VON DATENFLUSSPROZESSOREN UND BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALER PROGRAMMIERBARER ZELLSTRUKTUR (FPGAs, DPGAs, o.dgl.)

Publications (3)

Publication Number Publication Date
JP2002505480A true JP2002505480A (ja) 2002-02-19
JP2002505480A5 JP2002505480A5 (ja) 2006-04-13
JP4215394B2 JP4215394B2 (ja) 2009-01-28

Family

ID=7858839

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2000533804A Expired - Fee Related JP4338308B2 (ja) 1998-02-25 1999-02-25 2次元またはそれ以上の次元のプログラミング可能なセル構造を備えたデータフロープロセッサおよびコンポーネントをデッドロックなくコンフィグレーションする方法
JP2000533829A Expired - Fee Related JP4215394B2 (ja) 1998-02-25 1999-02-25 データフロープロセッサおよび2次元またはそれ以上の次元のプログラミング可能なセル構造をもつコンポーネントにおけるコンフィグレーションデータの階層的キャッシュ方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2000533804A Expired - Fee Related JP4338308B2 (ja) 1998-02-25 1999-02-25 2次元またはそれ以上の次元のプログラミング可能なセル構造を備えたデータフロープロセッサおよびコンポーネントをデッドロックなくコンフィグレーションする方法

Country Status (10)

Country Link
US (3) US6571381B1 (ja)
EP (4) EP2293193A1 (ja)
JP (2) JP4338308B2 (ja)
CN (2) CN1298521A (ja)
AT (2) ATE217713T1 (ja)
AU (2) AU3326299A (ja)
CA (2) CA2321874A1 (ja)
DE (5) DE19807872A1 (ja)
EA (2) EA003407B1 (ja)
WO (2) WO1999044120A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007068194A (ja) * 2002-04-03 2007-03-15 Sony Corp 集積回路、および集積回路装置
JP2010002986A (ja) * 2008-06-18 2010-01-07 Nec Corp 再構成可能電子回路装置

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003025781A2 (de) * 2001-09-19 2003-03-27 Pact Xpp Technologies Ag Verfahren zur konfiguration der verbindung zwischen datenverarbeitungszellen
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US6205249B1 (en) 1998-04-02 2001-03-20 Scott A. Moskowitz Multiple transform utilization and applications for secure digital watermarking
US7664263B2 (en) 1998-03-24 2010-02-16 Moskowitz Scott A Method for combining transfer functions with predetermined key creation
US7346472B1 (en) 2000-09-07 2008-03-18 Blue Spike, Inc. Method and device for monitoring and analyzing signals
US7457962B2 (en) 1996-07-02 2008-11-25 Wistaria Trading, Inc Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data
US7177429B2 (en) 2000-12-07 2007-02-13 Blue Spike, Inc. System and methods for permitting open access to data objects and for securing data within the data objects
US7095874B2 (en) 1996-07-02 2006-08-22 Wistaria Trading, Inc. Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data
US7159116B2 (en) 1999-12-07 2007-01-02 Blue Spike, Inc. Systems, methods and devices for trusted transactions
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
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
EP1329816B1 (de) 1996-12-27 2011-06-22 Richter, Thomas Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
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.)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704728A1 (de) * 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
DE19704742A1 (de) * 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US7664264B2 (en) 1999-03-24 2010-02-16 Blue Spike, Inc. Utilizing data reduction in steganographic and cryptographic systems
EP1228440B1 (de) 1999-06-10 2017-04-05 PACT XPP Technologies AG Sequenz-partitionierung auf zellstrukturen
WO2001018628A2 (en) * 1999-08-04 2001-03-15 Blue Spike, Inc. A secure personal content server
DE19946752A1 (de) * 1999-09-29 2001-04-12 Infineon Technologies Ag Rekonfigurierbares Gate-Array
ATE476700T1 (de) 2000-06-13 2010-08-15 Richter Thomas Pipeline ct-protokolle und -kommunikation
US7127615B2 (en) 2000-09-20 2006-10-24 Blue Spike, Inc. Security based on subliminal and supraliminal channels for data objects
US7502920B2 (en) * 2000-10-03 2009-03-10 Intel Corporation Hierarchical storage architecture for reconfigurable logic configurations
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
GB2406416A (en) * 2000-10-31 2005-03-30 Advanced Risc Mach Ltd Describing an integrated circuit configuration
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US20090210653A1 (en) * 2001-03-05 2009-08-20 Pact Xpp Technologies Ag Method and device for treating and processing data
WO2005045692A2 (en) 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US7210129B2 (en) * 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
AU2002254921A1 (en) 2001-03-05 2002-09-19 Pact Informationstechnologie Gmbh Methods and devices for treating and processing data
US20090300262A1 (en) * 2001-03-05 2009-12-03 Martin Vorbach Methods and devices for treating and/or processing data
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US9037807B2 (en) * 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7624204B2 (en) * 2001-03-22 2009-11-24 Nvidia Corporation Input/output controller node in an adaptable computing environment
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
US7434191B2 (en) * 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
JP4152319B2 (ja) * 2001-09-07 2008-09-17 アイピーフレックス株式会社 データ処理システムおよびその制御方法
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
DE10147772C1 (de) * 2001-09-27 2003-09-11 Siemens Ag Verfahren zum Betreiben eines Übertragungssystems und Übertragungssystem in einem Energieversorgungsnetz
US7594229B2 (en) * 2001-10-09 2009-09-22 Nvidia Corp. Predictive resource allocation in computing systems
US7644279B2 (en) * 2001-12-05 2010-01-05 Nvidia Corporation Consumer product distribution in the embedded system market
US7577822B2 (en) * 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
US20050132344A1 (en) * 2002-01-18 2005-06-16 Martin Vorbach Method of compilation
WO2003060747A2 (de) 2002-01-19 2003-07-24 Pact Xpp Technologies Ag Reconfigurierbarer prozessor
AU2003214003A1 (en) 2002-02-18 2003-09-09 Pact Xpp Technologies Ag Bus systems and method for reconfiguration
WO2003081454A2 (de) * 2002-03-21 2003-10-02 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US7287275B2 (en) 2002-04-17 2007-10-23 Moskowitz Scott A Methods, systems and devices for packet watermarking and efficient provisioning of bandwidth
US7093255B1 (en) * 2002-05-31 2006-08-15 Quicksilver Technology, Inc. Method for estimating cost when placing operations within a modulo scheduler when scheduling for processors with a large number of function units or reconfigurable data paths
US7620678B1 (en) 2002-06-12 2009-11-17 Nvidia Corporation Method and system for reducing the time-to-market concerns for embedded system design
US7802108B1 (en) 2002-07-18 2010-09-21 Nvidia Corporation Secure storage of program code for an embedded system
US20110238948A1 (en) * 2002-08-07 2011-09-29 Martin Vorbach Method and device for coupling a data processing unit and a data processing array
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US7249352B2 (en) * 2002-08-22 2007-07-24 International Business Machines Corporation Apparatus and method for removing elements from a linked list
JP4388895B2 (ja) 2002-09-06 2009-12-24 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト リコンフィギュアラブルなシーケンサ構造
US7502915B2 (en) * 2002-09-30 2009-03-10 Nvidia Corporation System and method using embedded microprocessor as a node in an adaptable computing machine
US8949576B2 (en) * 2002-11-01 2015-02-03 Nvidia Corporation Arithmetic node including general digital signal processing functions for an adaptive computing machine
US7617100B1 (en) 2003-01-10 2009-11-10 Nvidia Corporation Method and system for providing an excitation-pattern based audio coding scheme
JP2006524850A (ja) * 2003-04-04 2006-11-02 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理方法およびデータ処理装置
US9330060B1 (en) * 2003-04-15 2016-05-03 Nvidia Corporation Method and device for encoding and decoding video image data
US7565677B1 (en) 2003-04-21 2009-07-21 Microsoft Corporation Method and apparatus for managing a data carousel
US7450600B2 (en) * 2003-04-21 2008-11-11 Microsoft Corporation Method and apparatus for managing a data carousel
US8660182B2 (en) * 2003-06-09 2014-02-25 Nvidia Corporation MPEG motion estimation based on dual start points
US7603542B2 (en) * 2003-06-25 2009-10-13 Nec Corporation Reconfigurable electric computer, semiconductor integrated circuit and control method, program generation method, and program for creating a logic circuit from an application program
US8296764B2 (en) * 2003-08-14 2012-10-23 Nvidia Corporation Internal synchronization control for adaptive integrated circuitry
US7484045B2 (en) * 2004-03-30 2009-01-27 Intel Corporation Store performance in strongly-ordered microprocessor architecture
US8130825B2 (en) * 2004-05-10 2012-03-06 Nvidia Corporation Processor for video data encoding/decoding
US8018463B2 (en) 2004-05-10 2011-09-13 Nvidia Corporation Processor for video data
US7278122B2 (en) * 2004-06-24 2007-10-02 Ftl Systems, Inc. Hardware/software design tool and language specification mechanism enabling efficient technology retargeting and optimization
TWI256013B (en) * 2004-10-12 2006-06-01 Uli Electronics Inc Sound-effect processing circuit
EP1849095B1 (en) * 2005-02-07 2013-01-02 Richter, Thomas Low latency massive parallel data processing device
CN100476795C (zh) * 2005-02-21 2009-04-08 徐建 事件处理机
CN101194472B (zh) * 2005-06-01 2012-07-18 西门子公司 具有独立软件模块的测量或保护设备以及保护系统
WO2007062327A2 (en) * 2005-11-18 2007-05-31 Ideal Industries, Inc. Releasable wire connector
US8731071B1 (en) 2005-12-15 2014-05-20 Nvidia Corporation System for performing finite input response (FIR) filtering in motion estimation
EP1974265A1 (de) 2006-01-18 2008-10-01 PACT XPP Technologies AG Hardwaredefinitionsverfahren
US8724702B1 (en) 2006-03-29 2014-05-13 Nvidia Corporation Methods and systems for motion estimation used in video coding
US7827451B2 (en) * 2006-05-24 2010-11-02 International Business Machines Corporation Method, system and program product for establishing decimal floating point operands for facilitating testing of decimal floating point instructions
US8660380B2 (en) * 2006-08-25 2014-02-25 Nvidia Corporation Method and system for performing two-dimensional transform on data value array with reduced power consumption
JP5045036B2 (ja) * 2006-09-05 2012-10-10 富士ゼロックス株式会社 データ処理装置
US7999820B1 (en) 2006-10-23 2011-08-16 Nvidia Corporation Methods and systems for reusing memory addresses in a graphics system
US20080111923A1 (en) * 2006-11-09 2008-05-15 Scheuermann W James Processor for video data
WO2008061161A2 (en) * 2006-11-14 2008-05-22 Star Bridge Systems, Inc. Execution of legacy code on hybrid computing platform
US8169789B1 (en) 2007-04-10 2012-05-01 Nvidia Corporation Graphics processing unit stiffening frame
US7987065B1 (en) 2007-04-17 2011-07-26 Nvidia Corporation Automatic quality testing of multimedia rendering by software drivers
US8572598B1 (en) 2007-04-18 2013-10-29 Nvidia Corporation Method and system for upgrading software in a computing device
US20080291209A1 (en) * 2007-05-25 2008-11-27 Nvidia Corporation Encoding Multi-media Signals
US8756482B2 (en) * 2007-05-25 2014-06-17 Nvidia Corporation Efficient encoding/decoding of a sequence of data frames
US8726283B1 (en) 2007-06-04 2014-05-13 Nvidia Corporation Deadlock avoidance skid buffer
US7948500B2 (en) * 2007-06-07 2011-05-24 Nvidia Corporation Extrapolation of nonresident mipmap data using resident mipmap data
US7944453B1 (en) 2007-06-07 2011-05-17 Nvidia Corporation Extrapolation texture filtering for nonresident mipmaps
US9118927B2 (en) * 2007-06-13 2015-08-25 Nvidia Corporation Sub-pixel interpolation and its application in motion compensated encoding of a video signal
US8873625B2 (en) 2007-07-18 2014-10-28 Nvidia Corporation Enhanced compression in representing non-frame-edge blocks of image frames
US8598990B2 (en) * 2008-06-30 2013-12-03 Symbol Technologies, Inc. Delimited read command for efficient data access from radio frequency identification (RFID) tags
US8666181B2 (en) * 2008-12-10 2014-03-04 Nvidia Corporation Adaptive multiple engine image motion detection system and method
WO2010142432A2 (en) 2009-06-09 2010-12-16 Martin Vorbach System and method for a cache in a multi-core processor
JP2016178229A (ja) 2015-03-20 2016-10-06 株式会社東芝 再構成可能な回路
JP6672190B2 (ja) * 2017-01-16 2020-03-25 株式会社東芝 データベースシステムおよびデータ処理方法
US11803507B2 (en) 2018-10-29 2023-10-31 Secturion Systems, Inc. Data stream protocol field decoding by a systolic array

Family Cites Families (152)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5936857A (ja) 1982-08-25 1984-02-29 Nec Corp プロセツサユニツト
US4739474A (en) 1983-03-10 1988-04-19 Martin Marietta Corporation Geometric-arithmetic parallel processor
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
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
US4761755A (en) 1984-07-11 1988-08-02 Prime Computer, Inc. Data processing system and method having an improved arithmetic unit
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
US4967340A (en) 1985-06-12 1990-10-30 E-Systems, Inc. Adaptive processing system having an array of individually configurable processing components
EP0221360B1 (en) 1985-11-04 1992-12-30 International Business Machines Corporation Digital data message transmission networks and the establishing of communication paths therein
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
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
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
US4811214A (en) 1986-11-14 1989-03-07 Princeton University Multinode reconfigurable pipeline computer
US5226122A (en) 1987-08-21 1993-07-06 Compaq Computer Corp. Programmable logic system for filtering commands to a microprocessor
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
US4918690A (en) 1987-11-10 1990-04-17 Echelon Systems Corp. Network and intelligent cell for providing sensing, bidirectional communications and control
US5113498A (en) 1987-11-10 1992-05-12 Echelon Corporation Input/output section for an intelligent cell which provides sensing, bidirectional communications and control
US5303172A (en) 1988-02-16 1994-04-12 Array Microsystems Pipelined combination and vector signal processor
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
EP0363631B1 (de) 1988-09-22 1993-12-15 Siemens Aktiengesellschaft Schaltungsanordnung für Fernmeldevermittlungsanlagen, insbesondere PCM-Zeitmultiplex-Fernsprechvermittlungsanlagen mit Zentralkoppelfeld und angeschlossenen Teilkoppelfeldern
DE68926783T2 (de) 1988-10-07 1996-11-28 Martin Marietta Corp Paralleler datenprozessor
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
US5081375A (en) 1989-01-19 1992-01-14 National Semiconductor Corp. Method for operating a multiple page programmable logic device
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
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
US5212652A (en) 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
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
US5128559A (en) 1989-09-29 1992-07-07 Sgs-Thomson Microelectronics, Inc. Logic block for programmable logic devices
JP2968289B2 (ja) 1989-11-08 1999-10-25 株式会社リコー 中央演算処理装置
GB8925721D0 (en) 1989-11-14 1990-01-04 Amt Holdings Processor array system
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
US5125801A (en) 1990-02-02 1992-06-30 Isco, Inc. Pumping system
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
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
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
US5708836A (en) 1990-11-13 1998-01-13 International Business Machines Corporation SIMD/MIMD inter-processor communication
US5734921A (en) 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
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
US5588152A (en) 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
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
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
DE59109046D1 (de) 1991-02-22 1998-10-08 Siemens Ag 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
JPH04328657A (ja) * 1991-04-30 1992-11-17 Toshiba Corp キャッシュメモリ
US5389431A (en) 1991-05-14 1995-02-14 Idemitsu Kosan Co., Ltd. Nonwoven fabric and process for producing same
US5551033A (en) * 1991-05-17 1996-08-27 Zenith Data Systems Corporation Apparatus for maintaining one interrupt mask register in conformity with another in a manner invisible to an executing program
WO1992022029A1 (en) 1991-05-24 1992-12-10 British Technology Group Usa, Inc. Optimizing compiler for computers
US5659797A (en) 1991-06-24 1997-08-19 U.S. Philips Corporation Sparc RISC based computer system including a single chip processor with memory management and DMA units coupled to a DRAM interface
US5338984A (en) 1991-08-29 1994-08-16 National Semiconductor Corp. Local and express diagonal busses in a configurable logic array
US5260610A (en) 1991-09-03 1993-11-09 Altera Corporation Programmable logic element interconnections for programmable logic array integrated circuits
AU2939892A (en) 1991-12-06 1993-06-28 Richard S. Norman Massively-parallel direct output processor array
US5208491A (en) 1992-01-07 1993-05-04 Washington Research Foundation Field programmable gate array
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
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
EP0643855A1 (en) 1992-06-04 1995-03-22 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
US5475803A (en) 1992-07-10 1995-12-12 Lsi Logic Corporation Method for 2-D affine transformation of images
US5590348A (en) 1992-07-28 1996-12-31 International Business Machines Corporation Status predictor for combined shifter-rotate/merge unit
US5684980A (en) * 1992-07-29 1997-11-04 Virtual Computer Corporation FPGA virtual computer for executing a sequence of program instructions by successively reconfiguring a group of FPGA in response to those instructions
US5497498A (en) 1992-11-05 1996-03-05 Giga Operations Corporation Video processing module using a second programmable logic device which reconfigures a first programmable logic device for data transformation
US5392437A (en) 1992-11-06 1995-02-21 Intel Corporation Method and apparatus for independently stopping and restarting functional units
US5361373A (en) 1992-12-11 1994-11-01 Gilson Kent L Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
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
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
DE4416881C2 (de) 1993-05-13 1998-03-19 Pact Inf Tech Gmbh Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
IL109921A (en) * 1993-06-24 1997-09-30 Quickturn Design Systems Method and apparatus for configuring memory circuits
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 信号処理プロセッサ
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
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
US5535406A (en) 1993-12-29 1996-07-09 Kolchinsky; Alexander Virtual processor module including a reconfigurable programmable matrix
DE69519426T2 (de) 1994-03-22 2001-06-21 Hyperchip Inc Zellenbasierte fehlertolerante Architektur mit vorteilhafter Verwendung der nicht-zugeteilten redundanten Zellen
US5561738A (en) 1994-03-25 1996-10-01 Motorola, Inc. Data processor for executing a fuzzy logic operation and method therefor
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
US5896551A (en) * 1994-04-15 1999-04-20 Micron Technology, Inc. Initializing and reprogramming circuitry for state independent memory array burst operations control
US5426378A (en) 1994-04-20 1995-06-20 Xilinx, Inc. Programmable logic device which stores more than one configuration and means for switching configurations
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
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
EP0707269A1 (en) * 1994-10-11 1996-04-17 International Business Machines Corporation Cache coherence network for a multiprocessor data processing system
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
US5537057A (en) 1995-02-14 1996-07-16 Altera Corporation Programmable logic array device with grouped logic regions and three types of conductors
US5892961A (en) 1995-02-17 1999-04-06 Xilinx, Inc. Field programmable gate array having programming instructions in the configuration bitstream
US5570040A (en) 1995-03-22 1996-10-29 Altera Corporation Programmable logic array integrated circuit incorporating a first-in first-out memory
US5541530A (en) 1995-05-17 1996-07-30 Altera Corporation Programmable logic array integrated circuits with blocks of logic regions grouped into super-blocks
US5646544A (en) 1995-06-05 1997-07-08 International Business Machines Corporation System and method for dynamically reconfiguring a programmable gate array
US5559450A (en) 1995-07-27 1996-09-24 Lucent Technologies Inc. Field programmable gate array with multi-port RAM
US5778439A (en) 1995-08-18 1998-07-07 Xilinx, Inc. Programmable logic device with hierarchical confiquration and state storage
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
US5652894A (en) 1995-09-29 1997-07-29 Intel Corporation Method and apparatus for providing power saving modes to a pipelined processor
US5943242A (en) * 1995-11-17 1999-08-24 Pact Gmbh Dynamically reconfigurable data processing system
US5936424A (en) 1996-02-02 1999-08-10 Xilinx, Inc. High speed bus with tree structure for selecting bus driver
US5956518A (en) 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
US5894565A (en) 1996-05-20 1999-04-13 Atmel Corporation Field programmable gate array with distributed RAM and increased cell utilization
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
US5838165A (en) 1996-08-21 1998-11-17 Chatter; Mukesh High performance self modifying on-the-fly alterable logic FPGA, architecture and method
US5828858A (en) 1996-09-16 1998-10-27 Virginia Tech Intellectual Properties, Inc. Worm-hole run-time reconfigurable processor field programmable gate array (FPGA)
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
DE19654593A1 (de) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
DE19654846A1 (de) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
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
DE19704728A1 (de) * 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
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
US6085317A (en) * 1997-08-15 2000-07-04 Altera Corporation Reconfigurable computer architecture using programmable logic devices
US6389379B1 (en) * 1997-05-02 2002-05-14 Axis Systems, Inc. Converification system and method
US6321366B1 (en) * 1997-05-02 2001-11-20 Axis Systems, Inc. Timing-insensitive glitch-free logic system and method
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
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
US6389579B1 (en) 1998-01-26 2002-05-14 Chameleon Systems Reconfigurable logic for table lookup
US6282627B1 (en) 1998-06-29 2001-08-28 Chameleon Systems, Inc. Integrated processor and programmable data path chip for reconfigurable computing
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
US6347346B1 (en) 1999-06-30 2002-02-12 Chameleon Systems, Inc. Local memory unit system with global access for use on reconfigurable chips
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
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
US6392912B1 (en) 2001-01-10 2002-05-21 Chameleon Systems, Inc. Loading data plane on reconfigurable chip

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007068194A (ja) * 2002-04-03 2007-03-15 Sony Corp 集積回路、および集積回路装置
JP4501914B2 (ja) * 2002-04-03 2010-07-14 ソニー株式会社 集積回路、および集積回路装置
JP2010002986A (ja) * 2008-06-18 2010-01-07 Nec Corp 再構成可能電子回路装置

Also Published As

Publication number Publication date
EP1057117A2 (de) 2000-12-06
WO1999044120A2 (de) 1999-09-02
EA200000880A1 (ru) 2001-12-24
ATE217713T1 (de) 2002-06-15
CA2321874A1 (en) 1999-09-02
DE59901446D1 (de) 2002-06-20
CN1298520A (zh) 2001-06-06
DE19980312D2 (de) 2001-03-22
EP2293193A1 (de) 2011-03-09
US20030074518A1 (en) 2003-04-17
EA003406B1 (ru) 2003-04-24
US6480937B1 (en) 2002-11-12
AU3326299A (en) 1999-09-15
DE19980309D2 (de) 2001-03-29
CA2321877A1 (en) 1999-09-02
JP2002505535A (ja) 2002-02-19
CN1298521A (zh) 2001-06-06
JP4338308B2 (ja) 2009-10-07
US6687788B2 (en) 2004-02-03
WO1999044147A3 (de) 1999-10-28
EP1057117B1 (de) 2002-05-15
AU3137199A (en) 1999-09-15
DE59901447D1 (de) 2002-06-20
WO1999044147A2 (de) 1999-09-02
EA003407B1 (ru) 2003-04-24
EP1164474A3 (de) 2009-08-12
DE19807872A1 (de) 1999-08-26
US6571381B1 (en) 2003-05-27
JP4215394B2 (ja) 2009-01-28
EP1164474A2 (de) 2001-12-19
EP1057102A2 (de) 2000-12-06
WO1999044120A3 (de) 1999-11-11
ATE217715T1 (de) 2002-06-15
EP1057102B1 (de) 2002-05-15
EA200000879A1 (ru) 2001-12-24

Similar Documents

Publication Publication Date Title
JP4215394B2 (ja) データフロープロセッサおよび2次元またはそれ以上の次元のプログラミング可能なセル構造をもつコンポーネントにおけるコンフィグレーションデータの階層的キャッシュ方法
US20230168897A1 (en) System Having a Hybrid Threading Processor, a Hybrid Threading Fabric Having Configurable Computing Elements, and a Hybrid Interconnection Network
CN112088358B (zh) 具有线程优先级管理的多线程自调度处理器
CN112106027B (zh) 多线程自调度处理器中的存储器请求大小管理
CN112119376B (zh) 具有自调度处理器和混合线程组构的系统
CN112088356B (zh) 自调度处理器中使用工作描述符包的线程开始
US6822959B2 (en) Enhancing performance by pre-fetching and caching data directly in a communication processor's register set
US6055605A (en) Technique for reducing latency of inter-reference ordering using commit signals in a multiprocessor system having shared caches
US9218290B2 (en) Data caching in a network communications processor architecture
US9183145B2 (en) Data caching in a network communications processor architecture
US7487305B2 (en) Prioritized bus request scheduling mechanism for processing devices
US8468329B2 (en) Pipeline configuration protocol and configuration unit communication
US20060206635A1 (en) DMA engine for protocol processing
US7099328B2 (en) Method for automatic resource reservation and communication that facilitates using multiple processing events for a single processing task
TWI317482B (en) Wide-port context cache apparatus, systems and methods, and machine-accessible medium having associated information
KR101753913B1 (ko) 기계 비전 알고리즘을 위한 멀티프로세서 시스템온칩
US6990555B2 (en) Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.)
KR20020020186A (ko) 내장형 프로세서 복합체, 네트워크 프로세싱 시스템 및인스트럭션 실행 제어 방법
CN101218570A (zh) 在直接存储器存取任务请求之间进行仲裁的装置和方法
US6801985B1 (en) Data bus using synchronous fixed latency loop including read address and data busses and write address and data busses
US6904474B1 (en) Using write request queue to prevent bottlenecking on slow ports in transfer controller with hub and ports architecture
JP2001195346A (ja) 並列に転送寸法計算と無効化決定を実行するデータ転送コントローラ
WO2002011368A2 (en) Pre-fetching and caching data in a communication processor's register set
CN111651375A (zh) 基于分布式有限目录的多路处理器缓存数据一致性实现方法及系统
Yin et al. In-Network Memory Access Ordering for Heterogeneous Multicore Systems

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060209

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071122

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080221

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080520

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20081017

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081104

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111114

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121114

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131114

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees