JP2004535613A - データ処理方法およびデータ処理装置 - Google Patents

データ処理方法およびデータ処理装置 Download PDF

Info

Publication number
JP2004535613A
JP2004535613A JP2002570103A JP2002570103A JP2004535613A JP 2004535613 A JP2004535613 A JP 2004535613A JP 2002570103 A JP2002570103 A JP 2002570103A JP 2002570103 A JP2002570103 A JP 2002570103A JP 2004535613 A JP2004535613 A JP 2004535613A
Authority
JP
Japan
Prior art keywords
data
memory
address
fifo
configuration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002570103A
Other languages
English (en)
Inventor
マルティン フォアバッハ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PACT XPP Technologies AG
Original Assignee
PACT XPP Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from PCT/EP2001/006703 external-priority patent/WO2002013000A2/de
Priority claimed from PCT/EP2001/008534 external-priority patent/WO2002008964A2/de
Priority claimed from US09/967,847 external-priority patent/US7210129B2/en
Priority claimed from PCT/EP2001/011593 external-priority patent/WO2002029600A2/de
Application filed by PACT XPP Technologies AG filed Critical PACT XPP Technologies AG
Priority claimed from DE10129237A external-priority patent/DE10129237A1/de
Publication of JP2004535613A publication Critical patent/JP2004535613A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Logic Circuits (AREA)
  • Multi Processors (AREA)
  • Read Only Memory (AREA)
  • Information Transfer Systems (AREA)
  • Power Sources (AREA)

Abstract

リコンフィギュアラブルコンポーネント(VPU)に対し入力側および/または出力側にメモリが割り当てられ、これによって内部のデータ処理およびたとえばリコンフィギュレーションサイクルと(周辺機器、メモリ等への/それらからの)外部のデータ流との分離が実現される。

Description

【技術分野】
【0001】
本発明は主請求項の上位概念に記載のデータ処理方法およびデータ処理装置に関する。一般的にいえば本発明はリコンフィギュアラブルコンポーネントに係わるものであるが、限定するわけではないけれどもリコンフィギュアラブルコンポーネント内部もしくはリコンフィギュアラブルコンポーネントの一部分の内部のデータ処理と、データ流すなわちリコンフィギュアラブルコンポーネント内のデータ流および周辺機器、大容量記憶装置、ホストプロセッサ等へのおよびそこからのデータ流との分離に係わる(DE 101 10 530.4 DE 102 02 044.2参照)。内部のデータ処理およびたとえばリコンフィギュレーションサイクルを(周辺機器、記憶装置等へのまたはそこからの)外部のデータ流と分離できるようにする目的で、リコンフィギュアラブルコンポーネント(VPU)に対応づけて入力側および/または出力側にメモリが設けられる。
【0002】
本発明によればリコンフィギュアラブルアーキテクチャとは、コンフィギュレーション可能な機能および/または結合網ないしはネットワーク構成をもつコンポーネント(VPU)のことであり、たとえば以下のような複数のコンポーネントを備えた集積コンポーネントである。すなわちそれら複数のコンポーネントは1次元または多次元に配置されており、算術用および/またはロジック用および/またはアナログのおよび/または記憶用であって、および/または内部/外部で網結合されていて、それらのコンポーネントはダイレクトにまたはバスシステムを介して相互に接続されている。
【0003】
このようなコンポーネントのジャンルに属するものとしてたとえばシストリックアレイ、ニューラルネットワーク、マルチプロセッサシステム、複数の計算機構を備えたプロセッサおよび/またはロジックセルおよび/または通信/周辺セル(IO)、網結合および/または結合網要素たとえばクロスバースイッチであり、さらにはFPGA,DPGA、Chameleon、XPUTERなど公知のコンポーネントである。この関連で本出願人による以下の特許明細書を参照されたい:P 44 16 881.0-53, DE 197 81 412.3, DE 197 81 483. 2, DE 196 54 846.2-53, DE 196 54 593.5-53, DE 197 04 044.6-53, DE 198 80 129.7, DE 198 61 088.2-53, DE 199 80 312.9, PCT/DE 00/01869, DE 100 36 627.9-33, DE 100 28 397.7, DE 101 10 530.4, DE 101 11 014.6, PCT/EP 00/10516, EP 01 102 674.7, DE 196 51 075.9, DE 196 54 846.2, DE 196 54 593.5, DE 197 04 728.9, DE 198 07 872.2, DE 101 39 170.6, DE 199 26 538.0, DE 101 42 904.5, DE 101 10 530.4, DE 102 02 044.2, DE 102 06 857.7, DE 101 35 210.7, EP 02 001 331.4, EP 01 129 923.7 さらに個々の特許出願を参照されたい。これらはすべて開示の目的で広範囲にわたり本出願に組み込まれる。
【0004】
上述のアーキテクチャは例示のために利用され、以下ではVPUと称する。アーキテクチャは任意の算術セル、ロジックセル(メモリ)および/またはメモリセルおよび/またはメモリセルおよび/または結合網セルおよび/または通信/周辺(IO)セル(PAE)から成り、これらは1次元または多次元のマトリックス(PA)となるよう配置することができ、マトリックスは任意に構成された種々のセルを有することができ、ここではバスシステムもセルと捉えられる。マトリックス全体またはその一部分にはコンフィギュレーションユニット(CT)が対応づけられており、このユニットによりPAの網結合と機能が制御される。
【0005】
P 44 16 881.0 からDMA方式で動作するリコンフィギュアラブルコンポーネント用のメモリアクセス方法が知られており、この場合、1つまたは複数のDMAがコンフィギュレーションによって発生する。DE 196 54 595.1によればDMAはインタフェースユニットに固定的に実装されており、PAまたはCTによって制御可能である。
【0006】
DE 196 54 846.2には、外部データ流による内部データの書き込みならびに外部ユニットへのメモリデータの読み出しについて記載されている。また、DE 199 26 538.0にはDE 196 54 846.2に従ったメモリコンセプトの拡張について記載されており、その目的はいっそう簡単にプログラミング可能でありいっそう高性能のデータ伝送を達成することである。さらにUS 6,347,346には、基本的なすべての点でDE 196 54 846.2に相応するメモリシステムについて記載されており、このシステムにはグローバルなメモリへの明示的なバス(global system port)が設けられている。US 6,341,318には、ダブルバッファ方式を利用して外部データ流と内部データ処理とを分離する方法について記載されており、この場合、それぞれ一方のバッファが外部データの受け取り/読み出しを行うのに対し、他方のバッファが内部データの受け取り/読み出しを行う。バッファがその動作に従い満杯または空になるとバッファが切り替えられ、つまり以前は内部データを担当していたバッファが今度は自身のデータを周辺機器へ導き(もしくは周辺機器から新たなデータを読み出し)、以前は外部データを担当していたバッファが今度は自身のデータをPAへ導く(PAから新たなデータを読み出す)。ダブルバッファはアプリケーションにおいて、関連し合うデータ領域をバッファリングする。このようなダブルバッファ装置は殊にデータ流領域においてすなわちいわゆるデータストリーミングにあたり激しい欠点を有しており、その際にはプロセッサフィールド等に連続的に流入する大量のデータを繰り返し同じように処理する必要がある。
【0007】
本発明の課題は、産業上で利用するための新規な方法および装置を提供することにある。
【0008】
この課題は独立請求項に記載の特徴により解決される。従属請求項には有利な実施形態が示されている。
【0009】
このようにして本発明の方法によって、リコンフィギュアラブルプロセッサの典型的な用途の核となる領域においてまさに不利となる公知の従来技術とは異なり、バッファもしくは介在接続されたメモリのコントロールが著しく簡単になる。外部および内部のバスシステムを、介在接続された記憶手段に基づき問題なく種々の転送速度もしくは伝送速度および/またはクロック周波数で稼働させることができる。なぜならばバッファによってデータが一時記憶されるからである。その際、従来技術による劣った解決手段と比べて僅かな記憶手段しか必要とされず、典型的には半分の大きさのバッファもしくはデータ伝送インタフェース記憶手段しか必要とされず、それによってハードウェアコストが大幅に削減される。ハードウェアコスト削減の見積もりは25%〜50%に及ぶ。さらにアドレス生成および装置のプログラミングも簡単になる。その理由はバッファがプログラマにとってトランスペアレントだからである。また、ハードウェアをいっそう簡単に記述できるし、デバッグも簡単になる。ページング方式を組み込むことができ、これによればたとえば様々なコンフィギュレーションのために種々のデータ領域がバッファリングされる。
【0010】
最初に触れておくと、IOのためのインタフェースとして様々なメモリシステムが知られている。これについてはP 44 16 881.0, DE 196 54 595.1, DE 199 26 538.0を参照されたい。さらにDE 196 54 846.2により知られている方法によれば、まずはじめにデータがIOからロードされ、(1)VPU内においてデータが計算された後にそれらが記憶され、(2)アレイ(PA)がリコンフィギュレーションされ、(3)データが内部メモリから読み出されて再び別の内部メモリに書き込まれ、(4)これは計算された結果がすべてIOに送信されるまで行われる。個々でコンフィギュレーション変更ないしはリコンフィギュレーションとはたとえば、リコンフィギュレーション可能なユニットにおけるフィールドの一部分またはフィールド全体により実行される機能および/またはデータ網結合および/またはデータ処理に必要とされるデータおよび/または定数を新たに決定することである。用途および/または形態に応じて、VPUはたとえば単に全体としてまたは部分的にであってもリコンフィギュレーションされる。種々のリコンフィギュレーションをインプリメント可能であって、たとえばメモリ領域の切り換えによる完全なリコンフィギュレーション(DE 196 51 075.9, DE 196 54 846.2)および/またはウェーブリコンフィギュレーション(WaveReconfiguration, DE 198 07 872.2, DE 199 26 538.0, DE 100 28 397.7, DE 102 06 857.7)および/またはアドレッシング可能なコンフィギュレーションメモリの簡単なコンフィギュレーション(DE 196 51 075.9, DE 196 54 846.2, DE 196 54 593.5)などが挙げられる。個々の文献は開示の目的で広範囲にわたり組み込まれる。
【0011】
1つの有利な実施形態によれば、VPUは全体的にあるいは部分的にウェーブリコンフィギュレーションWaveReconfigurationにより、またはアドレッシング可能なコンフィギュレーションメモリのダイレクトなセットによりコンフィギュレーション可能である。
【0012】
したがってVPUコンポーネントの基本的な動作原理の1つは、複数のメモリ間で相互にデータがコピーされることであり、各コピー過程中、データに関して付加的なオペレーションおよび場合によっては同じ(たとえば長いFIRフィルタなど)および/または異なるオペレーションが実行される。個々のアプリケーションに依存して1つまたは複数のメモリからデータが読み出され、1つまたは複数のメモリに書き込まれる。
【0013】
データ流および/または状態を記憶するために(トリガ Trigger, DE 197 04 728.9, DE 199 26 538.0参照)内部の/外部のメモリが(たとえばFIFOとして)用いられ、相応のアドレス発生器が組み込まれる。目的に適ったどのようなメモリアーキテクチャでもアルゴリズム固有に固定的にインプリメントすることができ、および/またはフレキシブルにコンフィギュレーションすることができ、あるいはコンフィギュレーションしておくことができる。パフォーマンス上の理由から有利であるのはVPUの内部メモリを利用することであるが、原理的には外部のメモリも利用できる。
【0014】
ここで前置きとして、基本的な構造に対し以下のことを挙げておく。アレイ(PA)にインタフェースユニットが割り当てられ、PAのバスシステムと外部のユニットとの間でデータ通信が行われる(P 44 16 881.0, DE 196 54 595.1)。インタフェースユニットにより、アドレスとデータ間で一定の対応づけが得られるようアドレスバスとデータバスが結合される。インタフェースユニットが自動的にアドレスまたはその一部を発生できると有利である。
【0015】
インタフェースユニットにはFIFOが割り当てられ、これによって内部のデータ処理が外部のデータ伝送から分離される。この場合、FIFOは、データを貫流させることのできるバッファもしくは入出力データ記憶手段を成しており、これはデータ処理のためにたとえば同一コンフィギュレーションの実行中は切り替える必要がない。FIFOメモリのほかデータを貫流させることのできる他のバッファ手段が知られているかぎりは、適用できるかぎりそれらも同様にその概念に含まれるものとなる。ここではたとえば、1つまたは複数のポインタおよびたとえば少なくとも1つの書き込みメモリと読み出しメモリもつリングメモリを挙げておく。この場合、たとえばアプリケーションを処理する複数のリコンフィギュレーションサイクル中、内部の処理サイクルとは無関係に外部のデータ流を十分一定に維持することができる。FIFOは到来データ/送出データおよび/またはアドレスを記憶することができる。また、FIFOを1つのインタフェースユニットに統合することができるし、あるいは1つまたは複数のインタフェースユニットに割り当てることができる。形態に応じてFIFOを複数のインタフェースユニットに統合しておくことができ、さらにそれと同時に付加的な別個のFIFOをインプリメントしておくこともできる。また、たとえばリコンフィギュアラブルプロセッサアレイを構成するチップ上にFIFO群を集積するなどして、コンポーネントといっしょに集積されたデータ貫流型バッファも考えられる。
【0016】
1つの可能な実施形態として、(やはり別個の)FIFOとインタフェースユニットとの間にそれらを任意に対応させるためのマルチプレクサを設けることができる。有利な実施形態によれば、マルチプレクサによりそのつど行われるFIFOから外部のコンポーネントまたはプロセッサフィールドの内部パートへの接続状態をプロセッサフィールド側から設定することができ、たとえばこれをデータ送信側および/またはデータ受信側のPAEによって行うことができるし、望ましいというのであれば階層的に上位に配置されたユニットにより決定することができ、たとえばデータ処理が高度にパラレルなタスク配分および不都合にパラレル化される可能性のあるタスク配分に分けられる状況でのホストプロセッサのようなユニットにより決定でき、および/または有効であるならば、たとえばどのような種類のデータであるのかおよびそれをどのように処理すべきかがデータとともに指示されるならば、マルチプレクス接続を外部の設定により決定することができる。
【0017】
外部の端子の側で、内部バスプロトコルと外部バスプロトコル(たとえばRAMBUS, AMBA, PCIなど)との間でプロトコルを変換するためのユニットが設けられている。1つの構成内で複数の様々なプロトコルコンバータを使用することができる。それらのプロトコルコンバータを別個に構成してもよいし、あるいはFIFOまたはインタフェースユニットに統合してもよい。
【0018】
1つの可能な実施形態によれば、(別個の)プロトコルコンバータとインタフェースユニット/FIFOとの間にそれらを任意に対応づけるためのマルチプレクサを設けることができる。プロトコルコンバータの後段に接続するかたちで別のマルチプレクサ段を設けることができ、これによってたとえば複数のAMBAバスインタフェースを同一のAMBAバスに接続することができる。このマルチプレクサ段をたとえば、複数のユニットをアドレッシングできるという外部バスの特徴によって形成することもできる。
【0019】
1つの有利な実施形態によれば、回路がマスタモードとスレーブモードで動作する。マスタモードの場合にはアドレスとバスアクセスが回路および/または割り当てられたPAにより生成され、スレーブモードでは外部のユニットから回路もしくはPAにアクセスされる。
【0020】
さらに別の実施形態によれば回路内部に、アプリケーションに依存して付加的なバッファメモリまたはデータ収集メモリ(コレクタ Collector)を各インタフェースユニット間のデータ交換のために設けることができる。これらのバッファメモリは有利にはランダムアクセスモードおよび/またはMMUページングモードおよび/またはスタックモードで動作し、固有のアドレス発生器をもつことができる。バッファメモリをマルチポートメモリとして構成するのが有利であり、これによって複数のインタフェースユニットによる同時アクセスが実現される。バッファメモリに対し上位のデータ処理ユニットから、たとえばリコンフィギュアラブルコンポーネント(VPU)に割り当てられたプロセッサたとえばDSP、CPU、マイクロコントローラ等からアクセスすることができる。
【0021】
次に、どのような独特のやり方で外部のデータ流を分離できるかについて触れておく。本発明の基本的な着想によれば外部のデータ流は、プロトコルコンバータとインタフェースユニットとの間に組み込まれたFIFO(インプット/アウトプットFIFO、まとめてIO−FIFO)により分離される。このデータ処理方法は以下のように動作する。1つまたは複数のインプットFIFOにより到来データがアレイ(PA)内のデータ処理から分離される。この場合、データ処理を以下のステップで行うことができる:
1.インプットFIFOが読み出され、アレイ(PA)により処理され、および/またはローカルにアレイに割り当てられた1つまたは複数の(他の)メモリおよび/または有利には側方でアレイに結合されたメモリ(RAMバンク1)に書き込まれる。側方で結合することの利点は、チップアーキテクチャおよび/またはその設計が簡単になることである。
2.アレイ(PA)がコンフィギュレーションしなおされる。メモリ(たとえばRAMバンク1)が読み出され、データが処理されて、1つまたは複数のメモリ(たとえばRAMバンク2および/またはRAMバンク1)に書き込まれ、または択一的にこのときにすでにステップ4のようにアウトプットFIFOに書き込まれる。
3.アレイ(PA)が再びコンフィギュレーションしなおされ、データが再びメモリに書き込まれる。
4.これは結果を出力するためにそれが1つまたは複数のアウトプットFIFOへ送られるまで続けられる。
5.その後、新たなデータがインプットFIFOから読み出されて相応に処理され、つまりデータ処理がステップ1から続けられる。
【0022】
この場合、インプット/アウトプットFIFO(IO−FIFO)をマルチポート型FIFOとした有利な実施形態によれば、データ処理をプロトコルコンバータによる個々のFIFOの書き込みまたは読み出しと同時に行うことができる。既述のやり方によって、一定のデータ流の「ほぼスタティックな処理」を以下のようにして実現する時間的な分離が得られる。すなわちこれによれば、最初のデータパケットが通過したときにレイテンシだけが発生し、データ流の中断はもはや発生しないようになる。
【0023】
1つの実施形態によればIO−FIFOを、アプリケーションに従いIO−FIFOの個数やその深さを選択できるよう構成することができる。換言すればIO−FIFOを、いっそう多くのまたはいっそう深いIO−FIFOが生じるよう(たとえばトランスミッションゲート、マルチプレクサ/デマルチプレクサ等により)分解または統合することができる。たとえば8つのFIFOをそれぞれ1024個のワードずつとなるようインプリメントしておき、それらをコンフィギュレーションして、1024ワードをもつ8つのFIFOまたは4096ワードをもつ2つのFIFOまたはたとえば4096ワードをもつ1つのFIFOと1024ワードをもつ4つのFIFOにコンフィギュレーションすることができる。
【0024】
システムの形態とアルゴリズムの要求に応じて、既述のデータ処理方法を変形することができる。1つの実施形態によればFIFOは以下のように動作する。すなわち出力FIFOであればデータエントリに属するアドレスもそれらのFIFOに記憶され、および/または入力FIFOであれば、1つのFIFOが送出すべき/送信される読み出しアドレスのために、1つのFIFOがそのアドレスに対応する到来データワードのためにそれぞれ設けられるように構成されている。
【0025】
次に、本発明の1つの有利な実施形態において本発明により実現されるFIFO−RAMバンクの結合をどのようにして行えるのかについて説明する。
【0026】
アプリケーションに応じて、1つまたは複数のローカルにアレイに割り当てられたまたは有利には側方でアレイに結合された別のメモリ段(RAMバンク)を介してIO−FIFOとのデータ伝送を実行し、その後はじめてデータ処理用PAE(たとえばDE 196 51 075.9によるALU−PAE)に転送することができる。
【0027】
1つの有利な実施形態によれば、RAM−PAEは複数のデータ・アドレスインタフェースを有しており、したがってマルチポート装置として構成されている。データインタフェースおよび/またはアドレスインタフェースをグローバルなシステムポートとして構成できることにも触れておく。
【0028】
付加的なメモリ段(RAMバンク)はたとえば、DE 196 54 846.2および/またはDE 199 26 538.0および/またはPCT/EP 00/10516に記載のRAM−PAEに従ったメモリコンポーネントによって実現することができる。
【0029】
換言すればRAM−PAEを、(実質的に)メモリ機能に限られた受動的なメモリ(DE 196 54 846.2)として構成できるし、あるいはアドレス計算および/またはバスアクセスを自動的に生じさせて制御する能動的なメモリ(DE 199 26 538.0参照)としても構成できる。たとえば1つの実現可能な形態によれば、「グローバルシステムポート "global system port"」のための能動的なアドレス発生機能および/またはデータ伝送機能をインプリメントすることができる。能動的なメモリは実施形態に応じて、1つまたは複数のデータインタフェース及びアドレスインタフェースを能動的に管理することができる(能動的なインタフェース)。能動的なインタフェースはたとえばシーケンサ/ステートマシンおよび/またはALUおよび/またはレジスタ等、RAM−PAE内部の付加的なコンポーネントにより実現することができ、および/または能動的なインタフェースと他のPAEとの適切な結線により行うことができ、それらの機能および網結合ないしはネットワーク化は実現すべき機能に従い1つまたは複数のRAM−PAEにおいてコンフィギュレーションされる。種々のRAM−PAEに対し種々の他のPAEを割り当てることができる。
【0030】
有利であるのは、RAM−PAEが以下の機能もしくは動作モードのうちの1つまたは複数をもっていることである:ランダムアクセス、FIFO、スタック、キャッシュ、MMUページング。RAM−PAEは1つの有利な実施形態によればバスを介して上位のコンフィギュレーションユニット(CT)と接続されており、これによってそれらの機能および/または網結合および/またはメモリの深さおよび/または動作モードをコンフィギュレーションすることができる。さらに有利であるのは、たとえば定数および/またはルックアップテーブル(cos/sin)をセットする目的などのために、CTによるメモリ内容のプレロードおよび読み出しが行えるようにすることである。
【0031】
RAM−PAEのためにマルチポート型メモリを使用することによって、IO−FIFOからのデータ読み出し/IO−FIFOへのデータ書き込みおよびアレイ(PA)によるデータアクセスを同時に行うことができ、このようにすることでたとえばDE 196 54 846.2に記載されているようにRAM−PAE自体にバッファ特性をもたせることができる。
【0032】
たとえばPCT/EP 00/10516に示されているように、いっそう大きいメモリブロックが得られるようRAM−PAEを統合できるし、あるいはいっそう大きいメモリの機能が得られるようにRAM−PAEを動作させることができる(たとえば2つの512ワードのRAM−PAEから1つの1024ワードのRAM−PAEを形成する)。
【0033】
1つの実現可能な形態によれば上述の統合を、このような複数のメモリに同じアドレスが導かれるように行うことができる。この場合、アドレスは、一方の部分が複数のメモリ内のエントリをアドレッシングし、他方の部分が選択されたメモリ(SEL)の番号を表すよう分割される。メモリは各々一義的な番号を有しており、この番号をSELと比較することによりそれらのメモリを一義的に選択することができる。1つの有利な実施形態によれば、各メモリの番号をコンフィギュレーションすることができる。
【0034】
別のおよび/または付加的な実施形態によれば、アドレスはあるメモリから次のメモリへ転送される。この場合、アドレスは、一方の部分がメモリ内のエントリをアドレッシングし、他方の部分が選択されたメモリの番号(SEL)を表すよう分割される。そして転送されるたびにこの番号が変更され、たとえば転送ごとにその番号から1だけ引かれるようにすることができる。このアドレス部分が特定の値(たとえばゼロ)をもつメモリがアクティブにされる。
【0035】
1つの実施形態によれば上述の統合は、複数のメモリに同じアドレスが導かれるように行うことができる。この場合、アドレスは、一方の部分がメモリ内のエントリをアドレッシングし、他方の部分が選択されたメモリの番号(SEL)を表すよう分割される。各メモリ間においてあるメモリから次のメモリに向かってバスが延びており、このバスは以下のように参照アドレスをもっている。すなわちこの参照アドレスは最初のメモリにおいては特定の値(たとえばゼロ)を有しており、この値は転送ごとに変更される(たとえば1だけ加算される)。これにより各メモリは異なる一義的な参照アドレスをもつようになる。選択されたメモリの番号をもつアドレスの一部分が、それぞれ参照アドレスと比較される。それらが等しければ、該当しているメモリが選択される。実施形態に応じて、この参照バスを慣用のデータバスシステムによって、あるいは別個のバスによって構築することができる。
【0036】
1つの実施形態によれば、誤ったアドレッシングを排除する目的でそのつどアドレス部分SELの範囲チェックを行うことができる。
【0037】
さらに言及しておくと、RAM−PAEをFIFOとして使用することができ。これはたとえば比較的大きいメモリ容量がRAM−PAEによって設けられるときに有利になる可能性がある。したがって殊にRAM−PAEのためにマルチポート型のメモリを利用して、明示的なIO−FIFOをやめた形態、および/またはIO−FIFOに加えて相応の個数のRAM−PAEをFIFOとしてコンフィギュレーションする形態、およびIOのデータをメモリの対応するポートへ導く形態が考えられる。このような形態はコストに関して殊に効率的であるとみなせる。それというのも付加的なメモリを設ける必要がなく、機能および/または網結合についてコンフィギュレーション可能なVPUアーキテクチャのメモリ(DE 196 54 846.2, DE 199 26 538.0, PCT/EP 00/10516)を、コンフィギュレーション可能なプロセッサの特性に従いコンフィギュレーションすることができる。
【0038】
さらにマルチプレクサ/デマルチプレクサをFIFOの前および/または後に設けることができる。到来データ流もしくは送出データ流を1つまたは複数のデータセットから生じさせることができる。たとえば関数
function example (a, b : integer) ->x : integer
for i:=1 to 100
for j:= 1 to 100
x[i] := a[i] * b[j]
のためには2つの到来データ流(a,b)および1つの送出データ流(x)が必要とされる。
【0039】
この要求はたとえば2つのアプローチによって満たすことができる:
a)必要とされるデータ流と正確に同じ個数のIOチャネルをインプリメントする(P 44 16 881.0, DE 196 54 595.1);つまり例示した関数においてすでに3つのIOチャネルが必要とされる。あるいは、
b)データ流を分離するためにいわばレジスタセットとして内部メモリを使用する(DE 199 26 538.0, DE 196 54 846.2参照)。種々のデータ流はたとえば1つまたは複数のメモリとIO(たとえばメモリ、周辺機器等)との間で時分割多重方式により交換される。そしてこのとき内部において、IOデータがそれらのメモリとIOとの間の転送時に相応にソート(スプリット)されるならば、場合によってはデータをパラレルに複数のメモリと交換することができる。
【0040】
アプローチa)は本発明によれば、十分な個数のIOチャネルとIO−FIFOを利用できるようにすることによって支援される。とはいえこのような簡単なアプローチでは不十分である。それというのもアルゴリズムに依存し精密には決められずしかも非常にコストのかかる複数のIOチャネルを利用できるようにしなければならないからである。
【0041】
したがってアプローチb)またはアプローチa)とアプローチb)との適切な混合が有利であり、たとえば2つのIOチャネルと1つのインプットと1つのアウトプットを設け、各チャネルごとにデータ流を必要に応じてマルチプレクスする。ここで触れておくと、よくわかるようにインタフェースはデータ流を処理できなければならず、つまり十分に高いクロック周波数および/または十分に小さいレイテンシで内部バスもしくは外部バスに設ける必要がある。これが両方のバリエーションの混合が殊に有利であるかの理由であるということができ、なぜなら複数のパラレルなIOチャネルを設けることによって外部のバスおよび/または内部のバスの必要とされるクロックを相応に引き下げることができるからである。
【0042】
アプローチb)もしくは少なくとも部分的にアプローチb)に基づくアプローチのために必要とされるのは、マルチプレクサもしくはデマルチプレクサを設けること、データ流をデータチャネルから分離すること(たとえばインプットチャネルからaとbを分離しなければならない)、あるいは複数の結果送出用チャネルを1つのアウトプットチャネルにまとめることである。
【0043】
このため1つまたは複数のマルチプレクサ/デマルチプレクサ(MuxDemux段)を、ハードウェア技術のインプリメンテーションもしくは実行すべき機能に依存してそれぞれ異なるポジションに配置することができる。たとえば、
a)MuxDemuxを(たとえばDE 196 54 595.1による)入出力インタフェースとFIFO段(IO−FIFOおよび/またはFIFOとしてのPAE−RAM)との間に、
b)MuxDemux段をFIFO段(IO−FIFOおよび/またはFIFOとしてのPAE−RAM)の後ろに、つまりFIFO段とPAとの間に、
c)MuxDemux段をIO−FIFOとRAM−PAEとの間に、
接続することができる。
【0044】
MuxDemux段をハードウェアとして固定的にインプリメントすることができるし、および/または相応に構成された任意のPAEの適切なコンフィギュレーションにより生じさせることができる。
【0045】
MuxDemux段におけるマルチプレクサ/デマルチプレクサの位置は、CTによるコンフィギュレーションおよび/またはアレイ(PA)および/またはIO自体により設定され、これをダイナミックに作用させることもでき、たとえばFIFOの充填度に基づき、および/または発生しているデータ転送(アービテーション)に基づき作用を及ぼすことができる。
【0046】
1つの有利な実施形態によれば、マルチプレクサ/デマルチプレクサはコンフィギュレーション可能なバスによって(たとえばRAM/ALU/etc-PAE間のバスシステムと同様にまたはそれに類似して)構成され、この場合、バスシステムをたとえば物理的にも同一のものとすることができ、リソースシェアリングまたは適切なリコンフィギュレーションにより実現可能な時分割多重方式によってそれがいっしょに利用される。
【0047】
殊に有利であるのは、あとで説明するようにしてアドレスを特別なやり方で生成することである。内部または外部のメモリのためのアドレスをアドレス発生器により計算することができる。たとえばPAEのグループを相応にコンフィギュレーションすることができるし、および/または明示的であり必要に応じて別個に専用にインプリメントされたアドレス発生器(DE 44 16 881により知られているようなDMA)を用いることができ、あるいは(DE 196 54 595.1により知られているような)インタフェースセル内部で用いることができる。換言すれば、VPU内に統合されている固定的にインプリメントされたアドレス発生器を使用することができ、および/またはアルゴリズムの要求に従いPAEのコンフィギュレーションによりアドレスを計算することができる。
【0048】
有利には簡単なアドレス発生器を、固定的にインタフェースユニットおよび/またはアクティブなメモリ(たとえばRAM−PAE)にインプリメントしておくことができる。複雑な(たとえば非線形、多次元等の)アドレスシーケンスを発生させるために、PAEを相応にコンフィギュレーションしてインタフェースセルと接続することができる。相応にコンフィギュレーションされたこの種の方法はPCT/EP 00/10516から公知である。
【0049】
コンフィギュレーションされたアドレス発生器をデータ処理として別のコンフィギュレーション(Config-ID, DE 198 07 872.2, DE 199 26 538.0, DE 100 28 397.7)に所属させることができる。このようにしてアドレスの発生をデータ処理から分離することができ、このようにして有利な動作法式によればたとえば、データを処理するコンフィギュレーションがコンフィギュレートされる前またはされている間に、アドレスをすでに発生させ対応するデータをすでにロードすることができる。このようにデータを事前にロードすることもしくはアドレスを事前に発生することは、殊にレイテンシおよび/またはウェイトクロックサイクルの低減によりプロセッサパフォーマンスを高めるためにきわめて有利であることを述べておく。この場合、相応に結果データおよびそれらのアドレスをさらに処理することができる。データ処理を行う/データを生成するコンフィギュレーションが取り除かれる間またはその後に、結果データおよびそれらのアドレスをさらに処理することができる。たとえば既述のFIFOなどのようなメモリおよび/またはバッファを使用することによって、データ処理をメモリアクセスおよび/またはIOアクセスから分離できる。
【0050】
1つの有利な動作形態において殊に高性能であるのは、固定的にインプリメントされたアドレス発生器(HARD-AG)(DE 196 54 595.1)とコンフィギュレーション可能なアドレス発生器をPA(SOFT-AG)内でひとつにまとめて結線することであり、これによれば簡単なアドレッシングパターンを実現するためにHARD-AGが使用され、複雑なアドレッシングシーケンスがSOFT-AGにより計算され、その後、HARD-AGに伝えられる。換言すれば個々のアドレス発生器を相互にオーバーロードして新たにセットすることができる。
【0051】
リコンフィギュアラブルコンポーネントのためのインタフェースユニットはすでにDE 196 54 595.1により開示されている。そこに開示されているインタフェースユニットおよびそれらの動作を、プロセッサ効率および/またはパフォーマンスを高めるために改善できることがわかった。したがって以下では本発明において、殊にDE 196 54 595.1に開示されているインタフェースユニットの特別な形態について提案する。
【0052】
各インタフェースユニットに固有の一義的な識別子(IOID)をもたせることができ、これはプロトコルコンバータから/プロトコルコンバータへ伝送され、データ伝送と特定のインタフェースユニットとの対応づけあるいは特定のインタフェースユニットのアドレッシングに用いられる。IOIDは有利にはCTによってコンフィギュレーション可能である。IOIDはたとえば、外部のマスタによるアクセス時にデータ伝送のために特定のインタフェースユニットを選択することができる。さらに到来する読み出しデータに適正なインタフェースユニットを対応づける目的で、IOIDを使用することができる。この目的でIOIDはたとえばデータ読み出しアクセスのアドレスとともにIO−FIFOに伝送されてそこに記憶され、および/または外部のバスに転送される。IO−FIFOは送出されたアドレスのIOIDを到来する読み出しデータに割り当て、および/またはIOIDは外部のバスを介していっしょに伝送され、送り戻された読み出しデータに対し外部の機器またはメモリにより割り当てられる。この場合、IOIDは(たとえばインタフェースユニットの前の)マルチプレクサを、到来する読み出しデータがマルチプレクサにより適正なインタフェースユニットへ導かれるよう動作させることができる。
【0053】
通例、インタフェースユニットおよび/またはプロトコルコンバータはバスマスタとして動作する。1つの特別な実施形態によれば、インタフェースユニットおよび/またはプロトコルコンバータは択一的および/または固定的および/または一時的にバススレーブとして動作し、殊に選択的なやり方によればたとえば特定のイベント、PAEにおけるステートマシンの状態、中央コンフィギュレーション管理ユニット(CT)の要求等に応じて動作する。付加的な実施形態によればインタフェースユニットは、生成されたアドレスたとえばSOFT−AGにおいて生成されたアドレスに特定のデータパケットが割り当てられるよう拡張されている。
【0054】
インタフェースユニットの1つの有利な実施形態は以下のとおりである。この場合、インタフェースユニットの有利な結合は、任意のPAE(RAM,ALU等)および/またはアレイ(PA)が(有利にコンフィギュレーション可能な)バスを介してインタフェースユニットと接続されることによって行われ、それらのインタフェースユニットはプロトコルコンバータと接続されており、あるいはプロトコルコンバーを統合するかたちで有している。1つの変形実施形態によれば、IO−FIFOはインタフェースユニットに統合されている。
【0055】
書き込みアクセス(VPUはデータを外部IOたとえばメモリ/周辺機器等に送信する)のために有利であるのは、アドレス出力をデータ出力と結合することであり、つまりインタフェースユニットに有効なアドレスワードと有効なデータワードが到来したときにはIOによるデータ伝送が正確に行われ、その際、両方のワードはそれぞれ異なるソースからのものであってよい。有効性識別のため、たとえばDE 196 51 075.9またはDE 101 10 530.4によるハンドシェークプロトコル(RDY/ACK)を用いることができる。アドレスワードとデータワードにおけるRDY信号の適切な論理結合(たとえばAND)によって、両方の有効なワードの存在を識別することができ、IOアクセスを実行することができる。IOアクセスの実行とともにデータワードとアドレスワードの確認応答を行うことができ、これは両方の伝送に対し適切なACKを生成することによって行われる。アドレスとデータならびに場合によってはそれに属するステータス信号から成るIOアクセスを、本発明に従って出力FIFOにおいて分離することができる。バス制御信号は有利にはプロトコルコンバータによって生成される。
【0056】
読み出しアクセス(VPUはデータを外部のIOたとえばメモリ/周辺機器等から受信する)のためにまずはじめに、アクセス用のアドレスがアドレス発生器(HARD−AGおよび/またはSOFT−AG)により生成され、アドレス伝送が実行される。読み出しデータは同じクロックで、または高い周波数においてパイプライン化されて1つまたは複数のクロック遅れて到来する可能性がある。アドレスもデータもIO−FIFOによって分離することができる。データの確認応答のために公知のRDY/ACKプロトコルを使用することができ、これもパイプライン化して用いることができる(DE 196 54 595.1, DE 197 04 742.4, DE 199 26 538.0, DE 100 28 397.7, DE 101 10 530.4)アドレスの確認応答のためにも公知のRDY/ACKプロトコルを使用することができる。しかし受信側によるアドレスの確認応答によって非常に大きいレイテンシが引き起こされ、これはVPUのパフォーマンスに悪影響を及ぼす可能性がある。この場合、インタフェースユニットがアドレス受信を確認応答し、アドレスに割り当てられたデータの到来とアドレスとの同期合わせの役割を担うことで、このレイテンシを回避することができる。
【0057】
確認応答ならびに同期合わせを、任意の適切な確認応答回路によって行うことができる。2つの可能な実施形態について、これに限定するわけではないけれども以下で詳しく述べる。
a)FIFO
FIFOは外部のバス伝送の送出アドレスサイクルを記憶する。外部のバスアクセスに対する応答として到来する各データワードによって、相応にFIFOの学習が行われる。FIFO特性によって、送出アドレスの順序が送出データワードの順序と一致する。FIFOの深さ(つまり可能なエントリの個数)を外部のシステムのレイテンシに整合させるのが有利であり、そのようにすれば送出されるアドレスに対しレイテンシなく確認応答することができ、最適なデータスループットが達成されるようになる。到来するデータワードは、割り当てられたアドレスのFIFOエントリに従って確認応答される。FIFOがいっぱいであれば外部のシステムは後続のアドレスをもはや受け入れることができなくなり、目下送出されているアドレスは、先行のバス伝送のデータワードが到来してFIFOエントリが取り除かれるまで確認応答されず、したがって保持されない。FIFOが空であれば有効なバス伝送は実行されず、場合によっては到来するデータワードは確認応答されない。
c)クレジットカウンタ
外部のバス伝送から送出される各アドレスは確認応答され、カウンタへ供給されて加算される(クレジットカウンタ)。外部のバス伝送に対する応答として到来するデータワードがカウンタから差し引かれる。カウンタが規定の最大値に達すると、外部のシステムは後続のアドレスをもはや受け入れることができず、目下送出しているアドレスは、先行するバス伝送のデータワードが到来してカウンタがデクリメントされるまで確認応答されず、したがって保持されない。計数状態がゼロであれば有効なバス伝送は実行されず、場合によっては到来するデータワードは確認応答されない。バス伝送を最適にサポートする目的で殊に有利であるのはa)(FIFO)を用いた解決手段であり、たとえばFIFOを以下で説明するFIFOのようにバーストアクセスの処理およびIOIDと読み出しデータとの対応づけのために用いることができる。
【0058】
インタフェースユニットに既述のIO−FIFOを統合させることができる。たとえばこの変形実施形態a)のためにもIO−FIFOを用いることができる。
【0059】
既述のようにプロトコルコンバータを設けるオプションも開示されている。プロトコルコンバータの格別有利な実施形態として以下の構成を挙げておく。
【0060】
プロトコルコンバータは外部のバスの管理と制御の役割を担う。プロトコルコンバータの詳細構造ならびに詳細な機能は外部のバスの形態に依存している。たとえばAMBAバスはRAMBUSとは異なるプロトコルコンバータを必要とする。様々なプロトコルコンバータをインタフェースユニットに接続することができ、VPUの構成の枠内で複数のたとえばそれぞれ異なるプロトコルコンバータをインプリメントすることができる。1つの有利な実施形態によれば、プロトコルコンバータは本発明のFIFOに統合されている。
【0061】
さらに本発明によればバーストバスアクセスが行われるように構成されている。最新のバスシステムおよびSoCバスシステムは、いわゆるバーストシーケンスによって大きいデータ量を転送する。この場合、まずはじめにアドレスが伝送され、ついでいくつかのクロックでもっぱらデータが転送される(AMBA Specification 2.0, ARM Limited参照)。
【0062】
バーストアクセスの適正な実施のため複数の課題を解決しなければならない:
1)バーストサイクルの識別
外部のバスにおけるバースト転送をトリガするためバーストに変換可能なリニアなつまり直線的なバスアクセスを識別しなければならない。リニアなアドレス列を識別するためカウンタ(TCOUNTER)を使用することができ、これはまずはじめに最初のアクセスの最初のアドレスによりロードされ、各アクセス後にリニアにカウントアップ/カウントダウンされる。それに続くアドレスが計数状態と一致しているかぎり、リニアなバースト対応の順序が生じている。
【0063】
2)境界における中断
多くのバスシステム(たとえばAMBAなど)はバーストをa)特定の長さまでしか、もしくはb)特定のアドレス境界までしか(たとえば1024個のアドレスブロック)許可しない。a)のために本発明によれば簡単なカウンタをインプリメントすることができ、このカウンタは最初の所望のもしくは必要とされるバスアクセスからデータ伝送の個数を計数し、バースト転送の最大長に相応する所定値のところで、たとえば比較器などを用いて境界を通報する。b)のために、境界を表す相応のビット(たとえば1024個のアドレス境界であれば10bit)をTCOUNTERと目下のアドレスとの間で(たとえばXOR機能により)比較することができる。TCOUNTERにおけるビットと目下のアドレスにおけるビットが等しくなければ境界の移行部にきており、それに応じてシグナリングが行われる。
【0064】
3)長さの決定
外部のバスシステムがバーストサイクル長に対する情報を必要としないかぎり、長さの不定なバースト転送を実行することができ本発明によればそれが有利である(AMBA参照)。長さ情報が待ち望まれるならば、および/または特定のバースト長が設定されているならば、本発明によれば以下のことを行うことができる。すなわち伝送すべきデータとアドレスがFIFOへ有利にはそのためにIO−FIFOをいっしょに用いて書き込まれ、それらは(IO−)FIFOにおけるアドレスの個数に基づき既知である。このアドレスのためにアドレスFIFOが用いられ、これはマスタモードにおいてインタフェースユニットから外部のバスへ伝送され、および/またはスレーブモードではその逆に動作する。データはデータFIFOに書き込まれ、これは伝送(書き込み/読み書き)に応じてデータを伝送する。殊に書き込み伝送と読み出し伝送のために、それぞれ異なるFIFOを用いることができる。バースト伝送を以下のようにして固定バースト長に分けることができる。これらは個々のバースト伝送前に既知であり、バースト開始時に指定することができ、有利にはまずはじめに最大バースト長のバースト伝送を形成し、残りの(IO−)FIFOエントリの個数が目下のバースト長よりも小さければ、それぞれ次に小さいバースト長が使用される。たとえば最大バースト長が4であれば10個の(IO−)FIFOエントリを4,4,2のバースト伝送で伝送することができる。
【0065】
4)エラーリカバリ
多くの外部のバスシステム(AMBA参照)にはエラー除去方法が設けられており、それによればたとえば失敗したバースト伝送が繰り返される。バースト伝送が失敗したか否かの情報は、いわばバースト伝送に対する確認応答としてバースト伝送の終わりに伝送される。バースト伝送を繰り返すために必要とされるのは、アドレス全体が得られることであり書き込みアクセス時には書き込むべきデータが得られることである。この点を考慮して本発明によれば、各バースト伝送前に読み出しポインタが格納されるようアドレスFIFO(有利にはIO−FIFOのアドレスFIFO)を変形することが提案される。このためFIFO読み出しポインタポジション格納手段たとえばアドレスFIFO読み出しポインタポジション格納手段が設けられている。この手段がアドレスFIFOの統合部分となるよう構成することができ、そこにはたとえばFIFOに格納された情報が読み出しポジションを表すことを指示するフラグが設けられ、あるいはFIFOとは別個にこの手段を設けてもよい。択一的に、FIFOに格納されたデータに対しそれといっしょに格納され消去可能であることを表すステータスが割り当てられて、必要とされるデータ伝送が確認応答されればそのステータスが「消去可能」としてリセットされるように構成してもよい。エラーが発生すれば、読み出しポインタは再び以前に格納されていたポジションにセットされ、バースト伝送が繰り返される。エラーが発生しなければ次のバースト伝送が実行され、読み出しポインタが相応に新たに格納される。書き込みポインタが目下のバースト伝送に到達し、それにより場合によってはバースト伝送を繰り返すときに必要とされる値が上書きされてしまうのを避ける目的で、格納された読み出しポインタと書き込みポインタとの比較によりFIFOの満杯状態が検出される。
【0066】
IO−FIFOおよび/またはバッファ伝送管理用のFIFOを有利には、インタフェースユニットにより既知であるアドレスと到来データとの対応づけ機能によって拡張することができる。この場合、到来する読み出しデータにもIOIDを割り当てることができ、これは有利にはアドレスといっしょにFIFOに格納される。IOIDと到来する読み出しデータとの対応づけによって読み出しデータと相応するインタフェースユニットとの対応づけが可能であり、これによればたとえばマルチプレクサがIOIDに従い切り換えられる。
【0067】
さらに本発明によれば、特定のバスシステムを使用することおよび/またはバスシステムを様々なやり方で構成することが可能である。これについて以下で論じる。構成に依存して個々のユニット間において、たとえばインタフェースユニット、IO−FIFO、プロトコルコンバータの間において様々なバスシステムを使用することができ、それぞれ2つのユニットの間に別のバスシステムをインプリメントしておくことができる。種々の構成をインプリメント可能であって、それによれば複数の構成の機能を1つの構成の中でまとめることができる。いくつかの可能な構成について以下で触れておく。
【0068】
実現可能な最も簡単な形態は2つのユニットをダイレクトに接続することである。拡張実施形態によれば、それぞれ異なる形態で構成可能な複数のユニット間にマルチプレクサが設けられる。この実施形態は複数の固有のユニットを使用したときに殊に有利である。マルチプレクス機能をコンフィギュレーション可能なバスによって生じさせることができ、このバスは特定のユニットを相互に接続するために上位のコンフィギュレーションユニット(CT)からそのつど所定の期間にわたりコンフィギュレーション可能である。
【0069】
1つの有利な実施形態によればセレクタによって接続が規定され、これはたとえばアドレスの一部分および/またはIOIDをデコーディングし、各ユニットの結線のためマルチプレクサを制御する。格別有利な実施形態によればセレクタは、複数のユニットが同時に1つのユニットを選択できるように構成されており、この場合、時間的な順序で複数のユニットのうちそれぞれ1つのユニットがアービテーションされる。DE 199 26 538.0 には一例としてこれに適したバスシステムが記載されている。
【0070】
アービテーションのために付加的な状態を使用することができる。たとえばインタフェースユニットとIO−FIFOとの間のデータ伝送を、以下のようにして最適化することができる。この場合、伝送すべきデータのうち決められたサイズのブロックがそれぞれFIFO段内でまとめられる。ブロックが満杯/空になるとただちに、データを伝送する目的でバスアクセスがアービタに通報される。データはバースト伝送の形式で伝送され、つまりデータブロック全体がアービタによるバス分配フェーズ中に伝送される。換言すれば、接続されたFIFOのFIFO状態に基づきバス分配を行うことができ、この場合、FIFO内で状態特定のためのデータブロックを用いることができる。FIFOが満杯であれば、空にするためにバスのアービテーションを行うことができる。その際、付加的な状態を設けておくことができ、たとえばフラッシュ Flush を設けることができ、これは満杯のFIFOを一部分だけ空にするために、および/または空のFIFOを一部分だけ充填するために用いられる。フラッシュをたとえばコンフィギュレーション入れ替え(リコンフィギュレーション)に用いることができる。
【0071】
1つの有利な実施形態によれば、高いデータ伝送速度およびクロック速度を達成するためバスラインが適切なレジスタ段によりパイプラインとして構築されていて、たとえばそれ自体をFIFOとして動作させることができる。1つの有利な実施形態によれば、マルチプレクサ段もパイプライン化して構成することができる。
【0072】
本発明によれば、複数のモジュールをIOに接続し、モジュール相互間の通信が行われるように構成することができる。これについて以下のことに触れておく。DE 198 07 872.2, DE 199 26 538.0, DE 100 28 397.7から、特定の機能をもち再利用可能でありおよび/またはPA内でリロケート可能なコンフィギュレーションモジュールが知られている。これらのコンフィギュレーションモジュールのうち複数のモジュールを互いに依存させておよび/または依存させずに同時にPA内にコンフィギュレーションすることができる。この場合、コンフィギュレーションモジュールを制限されたとえば特定の個所にのみ設けられしたがってリロケート不可能なIOに、それらのコンフィギュレーションモジュールがIOを同時に利用できデータが適正なモジュールに割り当てられるよう結線する必要がある。さらに、互いに関連する(依存する)コンフィギュレーションモジュールを、PA内でコンフィギュレーションモジュールを相互にリロケーションできるよう互いに結線する必要がある。
【0073】
慣用のネットワーク(P 44 16 881.0, 02, 03, 08)ではこのようなフレキシブルな構造はたいていの場合は不可能である。なぜならばこのネットワークは通常、ルータによって明示的にアロケートしルーティングしなければならないからである。
【0074】
DE 197 04 742.4に記載されている方法によれば、実行すべきアルゴリズムに従いPAEマトリックス内でフレキシブルなデータチャネルを、データ伝送によってダイレクトな接続が生じ、その後、再び解消されるように構成されている。伝送されるデータをそのつど精確にソースおよび/またはターゲットに割り当てることができる。
【0075】
DE 197 04 742.4およびそこに記載されているやり方ならびにそこに記載されている装置に加えて、および/またはそれに対する代案として、本発明によれば別の可能性が提供され、ランタイム時のフレキシブルなアロケーションならびに網結合を実現する方法(以下ではまとめてグローバルトラックGlobal-Trackと称する)を使用することができ、たとえばそれぞれ適切なプロトコル(Ethernet, Firewire, USBなど)をもつシリアルバス、パラレルバス、光ファイバなどである。この場合、チャネル分離のためにはたとえば適切な変調において光を導く基板を介して光が伝送されることを明確に指摘しておく。次に、メモリアドレッシング殊にページングとMMUに関する本発明の別の特殊性について論じる。
【0076】
1つまたは複数のグローバルトラックGlobal-Trackのデータチャネルを、交換ノードを介してたとえばP 44 16 881.0, 02, 03, 08などによる慣用のネットワークと接続することができる。交換ノードをインプリメンテーションに応じて様々なかたちでPA内に配置することができ、それらをたとえば各PAEごとに割り当てることができるし、PAEのグループおよび/またはPAEのレイヤおよび/またはn番目ごとのPAEに割り当てることができる。格別有利な実施形態によれば、すべてのPAE、インタフェースユニット等がグローバルトラックに対する専用接続端子を有している。
【0077】
コンフィギュレーションモジュールは、それらのコンフィギュレーションノードの1つまたは複数に対しアクセスが行われるように構成される。この場合、複数のコンフィギュレーションモジュールが相互に、および/またはコンフィギュレーションモジュールおよびIOは、グローバルトラックを介して互いに接続される。相応のインプリメンテーション(たとえばDE 197 04 742.4)において、複数の接続を同時に構築して利用することができる。送信側と受信側との間の接続をアドレッシングすることができ、その結果、固有のデータ伝送が可能となる。換言すれば、送信側と受信側はグローバルトラックを介して識別可能である。これにより伝送されたデータが一義的に割り当てられる。たとえばDE 101 10 530.4から既知であるように送信側と受信側のアドレスをいっしょに伝送するようにした拡張されたIO、ならびにDE 196 54 595.1によるマルチプレクス方法によって、種々のモジュールのためのデータをIOを介して伝送することができ、それらを同様に一義的に割り当てることができる。
【0078】
1つの有利な実施形態によれば、たとえばハンドシェーク信号によってデータ伝送が同期合わせされる。さらにデータ伝送をパイプライン化し、つまりグローバルトラックにインプリメントされたまたはそれに割り当てられた複数のレジスタを介して行うことができる。大きいVPUもしくはそれらの網結合のための非常に複雑な形態において、グローバルトラックをスイッチとルータを伴うネットワークトポロジーにおいて構築することができ、ここではたとえばVPU間の接続のためのイーサネットを挙げておく。
【0079】
メモリ(たとえばRAM−PAE)にMMUに類似したページング方式を備えることができる。たとえばこれによって外部の大きいメモリをセグメント(ページ)に分割することができ、それらのページはセグメント内のデータアクセス時に内部メモリの1つにロードされ、あとの時点になってデータアクセス終了後に再び外部のメモリに書き込まれる。1つの有利な実施形態によれば(内部の)メモリに導かれたアドレスが、内部メモリ(MEMADR)内に位置するアドレス領域とセグメントアドレス(下位の10よりも上のビット)に分解される。したがってページのサイズはMEMADRによって決まる。
【0080】
ページアドレスは内部メモリに割り当てられたレジスタ(ページレジスタ)と比較される。レジスタは、上位の外部の(メイン)メモリから内部のメモリに最後に転送されたページアドレスの値を格納する。ページアドレスがページレジスタと一致していれば、内部メモリに対しランダムなアクセスを行うことができる。アドレスが一致していなければ(ページフォールト)、現在のページ内容がページレジスタにより表される個所で外部(メイン)メモリに有利にはリニアつまり直線的に書き込まれる。現在の新しいページアドレスの個所で始まる外部の(メイン)メモリのメモリ領域(ページ)が内部メモリに書き込まれる。
【0081】
1つの格別有利な実施形態によればコンフィギュレーションにより、ページフォールトのときに新たなページを外部の(メイン)メモリから内部のメモリに伝送すべきか否かを設定することができる。さらに格別有利な実施形態によればコンフィギュレーションにより、ページフォールトのときに古いページを内部メモリから外部の(メイン)メモリに伝送すべきか否かを設定することができる。
【0082】
ページアドレスとページレジスタとの比較は有利には該当メモリ内において行われる。ページフォール時のデータ伝送制御は任意のPAEにより相応に行うことができ、および/またはDMA(たとえばインタフェースユニットにおけるDMAまたは外部のDMA)によって行うことができる。1つの有利な実施形態によれば、内部メモリはデータ伝送制御部の組み込まれたアクティブメモリとして構成されている(DE 199 26 538.0参照)。
【0083】
別の可能な実施形態によれば内部メモリは複数の(p個の)ページをもつことができ、この場合、1ページのサイズは有利にはメモリサイズをpで割ったものとなる。有利にはフルアソシアティブマッピングのように構成された変換テーブル(変換索引バッファ Translation Lookaside Buffer = TLB)がページレジスタの代替となり、ページアドレスを内部メモリ内のアドレスに変換する。換言すれば、仮想アドレスを物理アドレスに変換できる。あるページが変換テーブル(TLB)に含まれていなければページフォールトが発生する。変換テーブルが新しい付加的なページのためのスペースをもっていなければ、内部メモリから外部(メイン)メモリへ複数のページを伝送してそれらを変換テーブルから取り除くことができ、これによって再び内部メモリにフリースペースが得られる。
【0084】
ここで明確に述べておくと、従来技術によるそれ自体周知の多くのMMU方式を使用可能であり僅かな明白な変形を施して用いることができるので、これ以上詳しい説明は不要である。
【0085】
これまでの説明において、いわゆるコレクタメモリを設けることができることに触れた。次にこれについてさらに詳しく説明しておく。インタフェースユニットとIO−FIFOとの間に、いっそう多くのデータ量を格納可能なコレクタメモリ(Collector)を接続することができる。複数のインタフェースユニット間もしくはアレイに割り当てられた複数のメモリ(たとえばRAM−PAE)間のデータ交換のためにコレクタを使用できる。コレクタをリコンフィギュアラブルコンポーネント内部のデータと外部のデータとの間のバッファとして使用できる。また、コレクタを様々なリコンフィギュレーションステップ間のデータのバッファとして用いることができ、たとえば他のコンフィギュレーションがコンフィギュレーション中でありアクティブである間、種々のコンフィギュレーションにおけるデータをコレクタに格納しておくことができる。コンフィギュレーションが非アクティブ状態になるとコレクタにそのデータが記憶され、新たにコンフィギュレーションされるアクティブなコンフィギュレーションのデータがPAたとえばアレイに割り当てられたメモリ(RAM−PAE)に伝送される。
【0086】
複数のインタフェースユニットはコレクタにアクセスすることができ、それぞれ別個におよび/または共通にアクセス可能なメモリ領域におけるデータを管理することができる。有利な実施形態によればコレクタはインタフェースユニットのための複数の端子を有することができ、それらに対して同時にアクセスすることができる(すなわちコレクタはマルチポートコレクタ手段として構成される)。コレクタは外部メモリおよび/または外部周辺機器に対する1つまたは複数の端子を有している。これらはたとえばIO−FIFOと接続することができる。
【0087】
1つの別の実施形態によれば、VPUに割り当てられたプロセッサたとえばDSP、CPU、マイクロコントローラがコレクタをアクセスすることができる。これは有利には別のマルチポートインタフェースを介して行われる。
【0088】
1つの有利な実施形態によれば、コレクタにアドレス変換テーブルが割り当てられている。各インタフェースは固有のアドレス変換テーブルを有することができるし、あるいはすべてのインタフェースが1つの共通のアドレス変換テーブルを有することができる。アドレス変換テーブルをPAおよび/またはCTおよび/または外部のユニットにより管理することができる。アドレス変換テーブルはコレクタのメモリ領域を任意のアドレスと割り当てるために用いられ、MMUシステムと同様に動作する。アドレス領域(ページ)がコレクタ内に存在していなければ(ページミス pagemiss)このアドレス領域を外部のメモリからコレクタにロードすることができる。さらにアドレス領域(ページ)をコレクタから外部のメモリに書き込むことができる。外部のメモリへのもしくは外部のメモリ間のデータ伝送のために有利にはDMAが用いられる。DMAに対しコレクタ内部のメモリ領域が読み出し伝送または書き込み伝送のために指示され、外部メモリ内の対応アドレスを別個に指示することができるし、あるいは有利にはDMAによりアドレス変換テーブルから取り出すことができる。
【0089】
コレクタおよびそのアドレス発生器(たとえばDMA)を有利にはそれに応じて、あるいはそれ自体公知の従来技術によるプロセッサのためのMMUシステムのようにして動作させることができる。アドレスをコレクタアクセス用の変換テーブル(TLB)によって変換することができる。本発明によれば、内部メモリに関して説明したMMUの構成ならびに方法をコレクタに適用することができる。その動作は従来技術に対応しているかあるいはそれと非常に類似しているため、それについてはここでは詳しくは説明しない。
【0090】
1つの変形実施形態もしくは有利な実施形態によれば、複数のコレクタをインプリメントすることができる。さらに本発明によれば、メモリアクセスを最適化することができる。次にこれについて触れておく。
【0091】
有利なリコンフィギュアラブルVPUアーキテクチャPACT−XPP(P 44 16 881.0, DE 196 51 075.9, DE 196 54 846.2, DE 196 54 593.5, DE 198 07 872.2, DE 199 26 538.0, DE 100 28 397.7, DE 102 06 857.7)の基本的な特性は、リコンフィギュレーションとデータ処理を重ね合わせることができる点にある。換言すれば、
a)たとえばデータ処理中にすでに次のコンフィギュレーションをプレロードすることができ、および/または、
b)たとえば特定のコンフィギュレーションの所定数のコンフィギュレーション可能なエレメントがまだコンフィギュレーションされていない間もしくはまさにコンフィギュレーションされている間に、コンフィギュレーション済みのエレメントをすでに開始させることができ、および/または、
c)たとえば種々のアクティビティのコンフィギュレーションを、それらが最適なパフォーマンスで互いに時間的にずらされて進行するよう分離または重ね合わせることができる(8.1のアドレス発生を参照)。
【0092】
最近のメモリプロトコル(たとえばSDRAM,DDRAM,RAMBUS)は少なくとも以下のシーケンスまたは作用の類似したシーケンスを有しており、この場合、ステップ2と3は逆に現れる場合もある:
1.アドレス情報によるアクセスの開始
2.長いレイテンシ
3.たいていはバーストとして行われるデータブロックの高速伝送
VPUテクノロジーのパフォーマンス効率においてこの特性を利用することができる。たとえばアドレス計算、メモリアクセスの開始、データ伝送およびアレイ(PA)におけるデータ処理のステップを、それぞれ異なる(時間的な)コンフィギュレーションが生じるようそれぞれ分離することができ、これによってメモリサイクルとデータ処理サイクルの十分に最適化された重ね合わせを達成できる。これらのステップの複数を用途に応じてまとめることもできる。
【0093】
以下の方法はたとえばこの原理に対応する。この場合、多数のコンフィギュレーション(ap=1,2,...,z)から成るアプリケーションAPを実行させるものとする。VPUにおいてさらに、WAとしてまとめられたアプリケーション/コンフィギュレーションが実行される。
1.まず最初に(ap番目のAPのコンフィギュレーションにおいて)読み出しアドレスが計算され、データ伝送とIO−FIFOが開始される。
2.APのために伝送されその間にIO−FIFO内に存在するデータが(ap+1番目のコンフィギュレーションにおいて)処理され、必要に応じてFIFO/バッファ/テンポラリメモリ等に格納される。
2a.結果を計算するために複数のコンフィギュレーションサイクルを必要とする可能性があり、そのサイクル終了時に結果がIO−FIFOに格納される。
3.結果のアドレスが計算され、データ伝送が開始される。これはパラレルに行うこともできるし、あるいはap+n+2番目のコンフィギュレーションにおいて行うことができ、同時にまたは時間がずらされてデータがIO−FIFOからメモリに書き込まれる。各ステップ間でWAから任意のコンフィギュレーションを実行することができ、これはたとえばデータがまだ得られないことから各ステップ間でレイテンシが必要とされる場合である。同様にステップ実行中、APの処理に対しパラレルにWAからのコンフィギュレーションを実行することができ、これはたとえばAPがWAに必要とされるリソースを使わないときである。この方法について様々に変形された実施形態が可能であることは、当業者にとって自明である。
【0094】
1つの実施形態によれば、処理方法を以下のようにして実行させることができる(Zはコンフィギュレーションサイクルつまり1つの単位時間を表す):
【0095】
【表1】
Figure 2004535613
【0096】
このシーケンスをたとえばDE 102 02 044.2によるデータ処理方法によって効率的に使用することができる。これまで述べてきた方法および装置を、慣用のコンパイラに対して特別に拡張された特別なコンパイラを用いることによって作動させることができる。これについて以下のことを挙げておく。
【0097】
コンフィギュレーション生成のために、任意のコンピュータシステムで実行されるコンパイラが使用される。典型的なコンパイラはたとえばCコンパイラであり、および/またはVPUテクノロジのためにはたとえばNMLコンパイラも該当する。殊に好適なコンパイラ方式はたとえばDE 101 39 170.6, DE 101 29 237.6, EP 02 001 331.4に記載されている。コンパイラは有利には以下の特殊性を少なくとも部分的に留意すべきである:
1.外部のアドレッシングつまり外部のコンポーネントとのデータ伝送
2.内部のアドレッシングつまりPAE間殊にRAM−PAEとALU−PAEとの間のデータ伝送におけるアドレスの分離、
3.さらに時間的な分離について殊に留意すべきである。
【0098】
バス伝送は内部の伝送と外部の伝送に分解される。
bt1)外部の読み出しアクセスが分離され、実現可能な実施形態においては別個のコンフィギュレーションへの変換も行われる。これらのデータは外部のメモリから内部のメモリに転送される。
bt2)内部のアクセスはデータ処理と結合され、つまり内部のメモリはデータ処理のために読み出され、もしくは書き込まれる。
bt3)外部の書き込みアクセスが分離され、実現可能な実施形態では別個のコンフィギュレーションへの変換も行われる。データは内部のメモリから外部のメモリへ転送される。ここで重要であるのは、bt1,bt2,bt3を種々のコンフィギュレーションに変換できることであり、それらを必要に応じてそれぞれ異なる時点に実行できることである。
【0099】
この方法について以下の例に基づき説明する。
【0100】
【数1】
Figure 2004535613
【0101】
この関数はコンパイラによって3つの部分つまり3つのコンフィギュレーション(サブコンフィグ subconfig)に変換される:
example#dload:これにより外部(記憶装置、周辺機器等)からのデータがロードされ、それらのデータがメモリに書き込まれる。内部メモリはr#と元の変数の名前で表される。
example#process:これは本来のデータ処理に対応する。これにより内部のオペランドからデータが読み出され、結果が再び内部メモリに書き込まれる。
example#dstore:これにより結果が内部メモリから外部(記憶装置、周辺機器等)に書き込まれる。
【0102】
【数2】
Figure 2004535613
【0103】
このプロセスの基本的な作用は、i*j = 100 * 100 = 10,000 回の外部のアクセスではなくi+j = 100 + 100 = 200 回の外部のアクセスだけがオペランド読み出しのために実行されることである。しかもこのアクセスは完全にリニアであり、このことにより最新のバスシステム(Burst)および/またはメモリ(SDRAM, DDRAM, RAMBUS等)における転送速度が著しく加速される。直線的ないしはリニアなメモリアクセスは、オペランドに対しそれぞれ異なるメモリが割り当てられたのでパラレルに行われる。結果の書き込みのためにi = 100 回の外部アクセスが必要であり、これもやはりリニアに最大のパフォーマンスで行うことができる。
【0104】
データ転送回数(たとえばWHILEループの回数)は事前にはわからないので、あるいはそれは非常に多いので、必要に応じてサブプログラムをコールしてオペランドを再ロードしたり結果を外部に書き込むプロセスを用いることができる。この目的で1つの有利な実施形態において(やはり)FIFOの状態を問い合わせることができる:FIFOが空であれば'empty'であり、FIFOが満杯であれば'full'である。この状態に応じてプログラムの流れが反応する。なお、特定の変数(たとえばai, bi, xi)はグローバルに定義される。パフォーマンス最適化のため、既述の方法に従いスケジューラがコンフィギュレーションexample#dloada, example#dloadbをexample#processの呼び出し前にすでに実行することができ、それによってすでにデータがまえもってロードされることになる。同様に、example#dstoreをexample#processをターミネートさせた後にも呼び出すことができ、その目的はr#xを空にするためである。
【0105】
【数3】
Figure 2004535613
【0106】
サブプログラムのコールおよびグローバル変数の管理は、リコンフィギュアラブルアーキテクチャのためには比較的煩雑である。したがって1つの有利な実施形態の場合には後続の最適化を実施することができ、それによればすべてのコンフィギュレーションが広範囲にわたり独立して実行され、完全に処理された後に終了(ターミネート)させられる。データb[j]は何回も必要とされるので、example#dloadbをそれに応じて何度も実行させなければならない。この目的でたとえば2つの択一的な実施形態を示す:
実施形態1:example#dloadbは実行されるたびにターミネートされ、再スタートされるたびにexample#processにより新たにコンフィギュレーションされる。
実施形態2:example#dloadbはエンドレスに実行され、example#processによりターミネートされる。
【0107】
'idle'中、コンフィギュレーションは非作動状態(待ち状態)にある。
【0108】
【数4】
Figure 2004535613
【0109】
待ちサイクルを回避するため、コンフィギュレーションが自身のタスクを一時的にそれ以上果たせなくなるとただちにそのコンフィギュレーションをターミネートさせることもできる。対応するコンフィギュレーションはリコンフィギュアラブルコンポーネントから取り除かれるが、スケジューラの中にはとどまり続ける。このために以下では命令'reenter'が用いられる。関連する変数はターミネーションの前にセーブされ、コンフィギュレーションが反復されるときに再形成される。
【0110】
【数5】
Figure 2004535613
【0111】
これまで説明してきたことおよびこれ以降のことに対しオプションを挙げておくと、本発明によればいわゆる「コンテキストスイッチ」を設けることができる。これについて以下のことを挙げておく:
コンフィギュレーションを繰り返してスタートさせるためには、たとえば"reenter"のためには、ローカルデータ(たとえばai, bi, xi)のセーブと再形成が必要である。従来技術による公知の方法によれば、データを伝送する目的でメモリまたはCTに対する明示的なインタフェースが設けられている。このような方法はすべて相反するものでありおよび/または付加的なハードウェアを必要とする。
【0112】
本発明によるコンテキストスイッチは、第1のコンフィギュレーションが取り除かれ、セーブすべきデータが対応するメモリ(REG)(メモリ、レジスタ、カウンタ等)に残されたままである。第2のコンフィギュレーションがロードされ、これによりREGが適切なやり方で規定の順序に従い1つまたは複数のグローバルなメモリと接続される。グローバルメモリをアクセスするために、このコンフィギュレーションはたとえばアドレスジェネレータを使用できる。また、メモリとして構成されたREGをアクセスするために、このコンフィギュレーションはたとえばアドレスジェネレータを使用できる。各REG間のコンフィギュレーションされた接続に従い、REGの内容が規定の順序でグローバルメモリに書き込まれ、その際、個々のアドレスはアドレスジェネレータによって設定される。アドレスジェネレータはグローバルメモリに対するアドレスを、除去された最初のコンフィギュレーションに対し書き込みメモリ領域(PUSHAREA)を一義的に対応づけることができるよう発生する。換言すれば、種々のコンフィギュレーションにそれぞれ異なるアドレス空間が設けられている。コンフィギュレーションは慣用のプロセッサのPUSHに対応する。その後、別のコンフィギュレーションがリソースを使用する。
【0113】
第1のコンフィギュレーションが再び開始されることになる。その前に第3のコンフィギュレーションが開始され、これにより第1のコンフィギュレーションのREGが規定の順序で互いに接続される。グローバルメモリをアクセスするために、コンフィギュレーションはたとえばアドレスジェネレータを使用することができる。また、メモリとして構成されたREGをアクセスするために、コンフィギュレーションはたとえばアドレスジェネレータを使用することができる。アドレスジェネレータは、第1のコンフィギュレーションに割り当てられたPUSHAREAに対する適正なアクセスが行われるようアドレスを発生する。発生されたアドレスとコンフィギュレーションされたREGの順序は、REGのデータが本来の順序でメモリからREGに書き込まれるようにされている。このコンフィギュレーションは慣用のプロセッサのPOPに対応する。第1のコンフィギュレーションが再び開始される。
【0114】
以上、要約するとコンテキストスイッチは、周知のプロセッサアーキテクチャのPUSH/POPと類似して動作する特別なコンフィギュレーションのロードにより、セーブすべきデータがグローバルメモリと交換されるようにして実施される。
【0115】
さらに別のオプションとして、特別なタスクスイッチもしくはマルチコンフィギュレーション処理を設けることができる。
【0116】
1つの有利な動作形態によれば、種々のコンフィギュレーションのそれぞれ異なるデータブロックがパーティションに分けられる。これらのパーティションに対し時間的に最適化してアクセスすることができ、その際にたとえばコンフィギュレーションQの実行中、後続のコンフィギュレーションPのオペランドの一部分が外部の(メイン)メモリおよび/またはその他の(周囲の)データ流から内部のメモリに事前にロードされ、コンフィギュレーションPの実行中、結果全体の一部分としてQの結果が内部メモリから外部の(メイン)メモリへ、および/またはその他の(周辺)データ流へ書き込まれる。このような動作はUS 6,341,318 に記載されたものとは著しく異なる。データ流またはデータブロックは有利にはFIFO構造により分離される(たとえばIO−FIFO)。殊にそれぞれ異なるコンフィギュレーションにおける種々のデータ流またはデータブロックは、有利にはそれぞれ異なるメモリおよび/またはFIFO領域および/またはFIFO内の割り当てマークによって分離される。
【0117】
前述のオプションのMMU方法を外部データの分離とバッファリングのために使用することができる。1つの使用方法によれば大きい外部のデータブロックを複数のセグメントに分離し、それらのセグメントをそれぞれ1つのVPU内で処理することができる。付加的な有利なやり方によれば、それぞれ異なるコンフィギュレーションの種々のデータブロックが先に説明した方法に従い複数のパーティションに分割され、それらがMMUに対するページとして定義される。それらに対し時間的に最適化してアクセスすることができ、その際、たとえばPAにおけるコンフィギュレーションQの実行中、後続のコンフィギュレーションPのオペランドがページとして外部の(メイン)メモリから、および/またはその他の(周囲の)データ流から内部のメモリに事前にロードされ、Pの実行中、Qの結果がページとして内部のメモリから外部の(メイン)メモリへ、および/またはその他の(周囲の)データ流へ書き込まれる。
【0118】
前述の方法について有利には、複数のパーティションまたはページを管理可能な内部メモリが使用される。さらにこの方法をPAE−RAMおよび/またはコントロールメモリのために使用することができる。有利には複数のバスインタフェース(マルチポート)を備えたメモリが用いられ、これによってMMUおよび/またはPAをおよび/または別のアドレスジェネレータ/データ伝送装置を同時にアクセスすることができる。
【0119】
1つの実施形態によればデータ伝送時に識別子がいっしょに伝送され、これによりデータとリソースおよび/またはアプリケーションとの対応づけが可能となる。たとえばDE 101 10 530.4に記載された方法を用いることができる。種々の識別子を同時に使用してもよい。1つの格別有利な実施形態によれば、アプリケーション識別子(APID)がデータ伝送のたびにアドレスおよび/またはデータといっしょに伝送される。1つのアプリケーションは複数のコンフィギュレーションから成る。伝送されたデータはAPIDに基づき、アプリケーションまたはアプリケーション用に定められたメモリまたは他のリソース(たとえばPA、バス等)に割り当てられる。この目的でAPIDを様々なやり方で用いることができる。たとえばインタフェースユニットをAPIDによって相応に選択することができる。たとえばメモリをAPIDにより相応に選択することができる。たとえばPAEをAPIDによって相応に選択することができる。
【0120】
さらにたとえば、内部メモリ(たとえばPAE−RAM、コレクタ)内のメモリセグメントをAPIDにより割り当てることができる。この目的でAPIDをアドレス部分と同様に、内部メモリに割り当てられたTLBにエントリすることができ、このようにすることで特定のメモリ領域(ページ)がAPIDに依存して割り当てられ、選択されるようになる。この方法により、種々のアプリケーションのデータをVPU内で効率的に管理しそれらをアクセスすることができる。オプションとして、特定のAPIDのデータを明示的に消去すること(APID−DEL)、および/または外部の(メイン)メモリおよび/またはその他の(周辺の)データ流に書き込むこと(APID−FLUSH)が可能である。このことはアプリケーションがターミネートされたときにそのつど行うことができる。APID−DELおよび/またはAPID−FLUSHをコンフィギュレーションによって、および/または上位のロードユニット(CT)によって、および/または外部から、トリガすることができる。
【0121】
この方法を以下の処理例によって明確にする:
アプリケーションQ(たとえばAPID=Q)は、オペランド読み出し用コンフィギュレーション(たとえばConfigID=j)と、オペランド処理用コンフィギュレーション(たとえばConfigID=w)と、結果書き込み用コンフィギュレーション(たとえばConfigID=s)とから成る。まず最初に、時間的に最適に分離してオペランドを読み出す目的でコンフィギュレーションjが実行される。これと同時に別のアプリケーションのコンフィギュレーションを実行することができる。オペランドは識別子APIDに従い外部の(メイン)メモリおよび/またはその他の(周辺の)データ流から、特定の内部メモリおよび/またはメモリ領域に書き込まれる。格納されたオペランドを処理するためにコンフィギュレーションが実行される。この目的でAPIDの情報に従い内部メモリおよび/またはメモリ領域における相応のオペランドがアクセスされ、結果がそれ相応にAPIDの情報に従い内部のメモリおよび/またはメモリ領域に書き込まれる。これと同時に他のアプリケーションのコンフィギュレーションを実行することができる。ついでコンフィギュレーションsにより、記憶されていた結果が内部のメモリおよび/またはメモリ領域から外部の(メイン)メモリおよび/またはその他の(周辺の)データ流へ書き込まれる。これと同時に他のアプリケーションのコンフィギュレーションを実行することができる。これらの点については、この方法の基本的な流れは以前に説明したメモリアクセス最適化のための方法に相応している。
【0122】
特定のAPIDに対するデータがメモリ内に存在していないかまたはそれらのデータのためのメモリスペースがもはや空いていない場合、データ伝送のためにページフォールトをトリガすることができる。
【0123】
前述の説明ではさしあたり、リコンフィギュアラブルエレメントのフィールドに場合によってはメモリ、FIFO等のような小さい付加的な回路が設けられているコンポーネントを前提としていたのに対し、本発明による着想をシステム・オン・チップ"system on a chip"(SoC)と称するシステムのために用いることもできます。SoCに対しては、たとえばVPUが別のコンポーネント(たとえば周辺機器、他のプロセッサおよびメモリ)と単一のチップ上で結合されているときなどは、「内部」および「外部」という概念をその慣用の技術用語において完全には適用できない。この場合には以下の用語定義を適用することができるが、これは権利範囲を限定しようというものではなく、本発明の着想を慣用的に他の技術用語を使っている構造に合わせて問題なく読ませるやり方を示すにすぎない。
内部:VPUアーキテクチャの内部、もしくはVPUアーキテクチャとIPに属する領域の内部。
外部:VPUアーキテクチャの外部、すなわち1つのSoC上における他のすべてのコンポーネントたとえば周辺機器、他のプロセッサおよび殊にメモリおよび/またはVPUアーキテクチャが設けられているチップの外部。
【0124】
以下、1つの有利な実施形態について説明する。1つの格別有利な実施形態によれば、データ処理を行う複数のPAEがローカルにPA(たとえばALU,ロジック等)に配置され結合される。複数のRAM−PAEをローカルにPA内でまとめることができるが、1つの格別有利な実施形態によればそれらはPAから取り除かれるかまたはその周囲におかれる(DE 100 50 442.6参照)。これを行う目的は、RAM−PAEメモリが大きくALU−PAEよりもかなり広い所要面積をもっているときにPAの均質性を損なわないためであり、通例はメモリセルのゲート/トランジスタレイアウト(たとえばGDS2)が非常に異なることに基づく。RAM−PAEが外部のバスシステム(たとえばグローバルバス)に対する専用端子を有しているならば、レイアウトやフロアプランならびに製造上の理由から有利にはPAの周縁部に配置されている。典型的には、物理的な接続のためPAのコンフィギュアラブルバスシステムが用いられる。
【0125】
別の実施形態によればPAEとインタフェースユニットならびにその他のコンフィギュラブルコンポーネントは、専用グローバルバスたとえばGlobalTrackに対する専用端子を有している。
【0126】
インタフェースユニットおよびたとえばプロトコルコンバータは有利にはPAから取り除かれ、PAの配置の外側におかれる。これが行われる目的はPAの均質性を損なわないことであり、通例はインタフェースユニット/プロトコルコンバータのゲート/トランジスタレイアウト(たとえばGDS2)が非常に異なるからである。さらにレイアウトやフロアプランならびに製造上の理由から、外部のユニットに対する端子がPAの周縁部に配置されている。PAに対するインタフェースユニットの接続は有利にはコンフィギュレーション可能なバスシステムを介して行われ、その外縁部にインタフェースユニットが接続される。バスシステムによって、インタフェースユニットとPA内の任意のPAEとの間でコンフィギュレーション可能にデータ交換を行うことができる。換言すれば1つのコンフィギュレーション内で、または種々のコンフィギュレーション内で、インタフェースユニットをたとえばRAM−PAEと接続することができ、他のインタフェースユニットをたとえばALU−PAEと接続することができる。
【0127】
IO−FIFOをプロトコルコンバータと一体化させると有利である。内部のデータ流と外部のデータ流との対応づけにあたりフレキシビリティを高めることができるようにする目的で、インタフェースユニットとプロトコルコンバータは別個に構成され、コンフィギュレーション可能なバスシステムを介して接続されている。
【0128】
次に、図面を参照しながら本発明についてもう一度詳しく説明する。なお、以下の説明は一例にすぎず、本発明をそれらに限定しようというものではない。
【0129】
図1にはリコンフィギュアラブルプロセッサの殊に有利な構造が示されており、このプロセッサはコア(アレイPA 0103)から成り、これはたとえばALU−PAE(0101、計算実行用)およびRAM−PAE(0102、記憶用)によって構成されており、したがってDE 196 54 846.2の基本原理に対応する。有利にはRAM−PAEにはローカルにコアに集積されているのではなく、ALU−PAEから離れて周縁部にまたはコアの外部に設けられている。この目的は所要面積がALU−PAEよりもずっと広い大きなRAM−PAEメモリにおいて均質性が阻害されないようにするためであり、これはメモリセルのゲート/トランジスタレイアウト(たとえばGDS2)が一般に著しく異なることによる。RAM−PAEが外部バスシステム(たとえば専用グローバルバス;Global-Track等)に対する専用端子を有しているならば、レイアウトやフロアプランならびに製造上の理由からPAの周縁部に配置するのが有利である。
【0130】
個々のユニットはバスシステム(0104)を介して互いに接続されている。コア周縁部にはインタフェースユニット(インタフェースユニットおよび必要に応じてプロトコルコンバータ)(0105)がDE 196 54 595.1のように外部のバス(IO)に対して設けられている。インタフェースユニットは実装に依存して様々なかたちで構成することができ、たとえば以下の機能のうちの1つまたは複数を履行することができる:
1.たとえばアドレスとデータの同期をとるための複数のバスシステムの統合ならびに同期合わせ
2.アドレス発生器および/またはDMA
3.データおよび/またはアドレスを分離するためのFIFO段
4.インタフェースコントローラ(たとえばAMBA-Bus, RAMBUS, RapidIO, USB, DDRRAM等)。
【0131】
図2には本発明によるアーキテクチャの様々な形態が示されている。0201はALU−PAE(PA)であり、これは複数のRAM−PAE(0202)と結合されている。FIFO(0203)を介して外部のバス(IO)(0204)が接続されている。
【0132】
図2aにはFIFOとPAのダイレクトな結合が示されている。
【0133】
図2bの場合、IO(0204)がRAM−PAE(0202)を介して0201と接続されている。この接続は典型的にはコンフィギュアラブルバスシステム0104または専用バスシステムを介して行われる。マルチプレクサ/デマルチプレクサ(0205)は多数のバス0104をIO(0204)に切り替える。マルチプレクサはコンフィギュレーションロジックおよび/またはアドレスセレクタロジックおよび/またはアービタ(0206)により制御される。マルチプレクサの制御はたとえばPAによっても行える。
【0134】
図2cは図2bに対応するものであるが、IOの前にさらにFIFO(0203)が接続されている。
【0135】
図3は図2に対応しており、したがって同じ参照符号が用いられている。図3には、VPUにおける有利なデータ処理方法が示されている。図3a:データはIO(0204)を介して入力側FIFO(0303は0203に対応)に到達し、そこからPA()0201)および/または事前にメモリ0202にロードされる。
【0136】
図3b〜図3eにはデータ送出の様子が示されており、その際に各メモリ間でデータが伝送される。この期間中、FIFOは引き続き入力データおよび/または出力データ(0302)を伝送することができる。
【0137】
図3fにおいてデータはPAからおよび/またはメモリから出力FIFO(0304)にロードされる。
【0138】
ここでもう一度触れておくと、入力FIFOからRAM−PAEまたは0201へのデータの読み出しおよび0201またはRAM−PAEからのデータの書き込みを同時に行うことができる。また、入出力FIFOはステップa〜fの間、連続的に外部のデータを送信または受信することができる。
【0139】
図4には同じ方法が簡単に変形されたかたちで示されている。ここでは簡単にデータ分配を行うため、FIFOと0201との間にマルチプレクサ/デマルチプレクサ(0401)が接続されている。マルチプレクサはコンフィギュレーションロジックおよび/またはアドレスセレクタロジックおよび/またはアービタ(0402)により制御される。データ処理のために複数のコンフィギュレーションが行われる(a〜e)。この場合、データをFIFO(入力FIFO)からメモリへ、および/またはダイレクトに(0403)PAへ読み込むことができる。読み込みプロセス中、データをPAおよび/またはメモリからFIFO(出力FIFO)に書き込むことができる。データ出力のためデータをメモリから、および/またはダイレクトに(0405)PAからFIFOに書き込むことができる。その間、新たなデータを入力FIFOからメモリおよび/またはPAに書き込むことができる(0406)。新たなデータの書き込み(0407)をたとえばすでに最後のコンフィギュレーション中に行うことができる。これらの処理全体を通して、外部から入力FIFOへデータを伝送することができるし(0408)、もしくは出力FIFOから外部へデータを伝送することができる(0409)。
【0140】
図5には、実現可能なPAEの実施形態が示されている。第1のバスシステム(104a)はデータ処理ユニット(0501)と接続されており、その処理結果が第2のバスシステム(0104b)へ伝送される。2つのレジスタ/マルチプレクサ段(FREG 0502,BREG 0503)を介してそれぞれ異なる伝送方向で垂直方向のデータ転送が行われる。有利であるのは、簡単なALUたとえば加算、乗算、乗算の演算用ALUをFREG/BREGに集積可能なことである。付加的なインタフェース(0504)を介して、このユニットはそれらの機能や網結合ないしはネットワーク化に関してコンフィギュレーションユニット(CT)によりコンフィギュレーションされ、有利な実施形態によればデータ処理のためレジスタおよび/またはメモリに定数をセットすることができる。
【0141】
別の実施形態によれば、コンフィギュレーションユニット(CT)はデータをワークレジスタおよび/またはメモリから読み出すことができる。別の実施形態によれば、PAEは付加的に専用グローバルバス(0505)への端子(たとえばGlobalTrack)を有することができ、これによりたとえばグローバルな場合によっては外部のメモリおよび/または周辺機器と通信することができる。さらにグローバルバスを、種々のPAEがこれらを介して互いに通信可能に、さらに有利な実施形態では外部接続用のコンポーネント(たとえばインタフェースユニット)と通信可能に構成することができる。たとえばDE 197 04 742.14に記載されているようなバスシステムをこの種の目的で使用することができる。
【0142】
データ処理ユニット(0501)をたとえばALU−PAEのために算術ロジックユニット(ALU)として構成することができる。種々のALU−PAEが種々のALUおよびバス接続システムを使用することができる。たとえばALUは0104aおよび/または0104bに対し2つ以上のALUを有することができる。
【0143】
データ処理ユニット(0501)をたとえばRAM−PAEのためにメモリとして構成することができる。様々なRAM−PAEが様々なメモリおよびバス接続システムを使用できる。たとえばメモリは0104aおよび/または0104bに対し複数のたとえば2つ以上のバスコネクションを有することができ、これによってたとえば複数の送受信側が1つのメモリにアクセスできるようになる。このようなアクセスを同時に行うこともできるようにすると有利である(マルチポート)。
【0144】
メモリの機能にはたとえば以下の機能またはそれらの組み合わせが含まれている:ランダムアクセス、FIFO、スタック、キャッシュ、MMU方式によるページメモリ。さらに1つの有利な実施形態によれば、メモリにCTから事前にデータをロードすることができる(たとえば定数、ルックアップテーブルなど)。さらに別の実施形態によればCTはデータをメモリから0504を介して再読み出しすることもできる(たとえばデバッグ目的あるいはタスク交換のため)。
【0145】
別の実施形態によればRAM−PAEがグローバルバスに対する専用端子をもつことができる。グローバルバスは複数のPAEを相互に接続し、さらに有利な実施形態ではそれらのPAEを外部接続用のコンポーネント(たとえばインタフェースユニット)とも接続する。このようなバスシステムのために、DE 197 04 742.4に記載されているシステムを利用することができる。RAM−PAEをまとめて、複数(n個)のRAM−PAEからn倍大きい1つのメモリが形成されるようにすることができる。
【0146】
図6には、たとえばALU−PAE(0601)とRAM−PAE(0602)をバスシステム0104を介して結線する様子が例示されている。リコンフィギュアラブルプロセッサのための有利な結線は図1に示されている。
【0147】
図7には0105に対応するIO回路の簡単な変形実施形態が示されている。この場合、アドレス(ADR)とデータ(DTA)がいっしょに同期ライン(RDY/ACK)を介して、内部バスシステム(0104)と外部バスシステム(0703)との間で伝送される。外部バスシステムはたとえばIO−FIFOおよび/またはプロトコルコンバータへ導かれる。
【0148】
図7aにはデータ書き込み用の回路が示されており、0104から到来するアドレスとデータが互いに結合される(0701)。インタフェース回路(0701)内において、0104と0703との間に分離のためのFIFO段を設けることができる。
【0149】
図7bにはデータ読み出し用の回路が示されており、この回路には送出アドレスと到来データとの一致についての確認応答回路(0702、たとえばFIFO、カウンタ)が設けられている。0701aおよび/または0701b内において、0104と073との間に分離のためのFIFO段を設けることができる。0701b内にFIFO段が設けられているならば、これを確認応答回路0702のためにもいっしょに利用できる。
【0150】
図8には、外部の(メイン)メモリおよび/または他の(周辺機器の)データ流に対する専用グローバルバス(0801)およびプロトコルコンバータ(0802)を備えた複数のインタフェースユニットおよび/またはPAEの間で実現可能な接続構造が示されている。各インタフェースユニットは、有利には0104に対応する結合網ないしはネットワークを介してPAと接続されている(0803)。
【0151】
専用グローバルバス(0801)およびプロトコルコンバータ(0802)を備えた複数のインタフェースユニットおよび/またはPAEの間に、バスシステム(0804a,0804b)が設けられている。1つの有利な実施形態によれば0804は複数のレジスタ段を介してパイプライン方式でデータを伝送することができる。0804aと0804bは、たとえばトランスミッションゲートおよび/またはトライステートバッファおよび/またはマルチプレクサとして構成されたスイッチ(たとえば0805)を介して互いに結線される。マルチプレクサは行や列ごとに制御される。制御ユニット(0806)は、専用グローバルバス(0801)を備えたインタフェースユニットおよび/またはPAEからプロトコルコンバータ(0802)へのデータ伝送つまりは伝送方向0804aおよび0804bを制御する。制御ユニット(0807)は、プロトコルコンバータ(0802)から専用グローバルバス(0801)を備えたインタフェースユニットおよび/またはPAEへのデータ伝送つまりは伝送方向0804bおよび0804aを制御する。制御ユニット(0806)はプロトコルコンバータ(0802)を選択するためそれぞれアドレス領域をデコーディングし、制御ユニット(0807)は専用グローバルバス(0801)を備えたインタフェースユニットおよび/またはPAEを選択するためにそれぞれIOIDをデコーディングする。
【0152】
制御ユニットは様々な制御モードに従い動作可能であり、たとえばデコーディングを伴わない固定接続、アドレスおよび/またはIOIDのデコーディング、アドレスおよび/またはIOIDのデコーディングとアービテーション。1つまたは複数のデータワード/アドレスワードをアービテーションごとに伝送することができる。アービテーションは様々なルールに従って行うことができる。インタフェースユニットが出力方向および/または入力方向でアドレス用および/またはデータ用の小さいFIFOをもつことができると有利である。1つの特別なアービテーションルールに従い、たとえば満杯(FULL)のまたは空(EMPTY)のあるいは空にすべき(FLUSH)FIFOをもつインタフェースユニットのアービテーションが行われると有利である。
【0153】
制御ユニットはたとえばDE 199 26 538.0の図32に従って構成することができる。そのような制御ユニットを0807または0806として使用することができる。0806として使用する場合、0812は0804aに対応し、0813は0804bに対応する。0807として使用する場合、0812は0804bに対応し、0813は0804aに対応する。デコーダ(0810)は到来方向のバス(0812)のアドレス/IOIDをデコーディングしてアービタ(0811)を制御し、他方、アービタは到来方向のバスをマルチプレクサを介して出力バス(0813)へ切り替える。
【0154】
プロトコルコンバータは外部のバスシステム(0808)と結合されており、この場合、複数のプロトコルコンバータが同一のバスシステム(0809)に接続された状態にすることができ、これによりそれらは同じ外部のリソースを利用できる。プロトコルコンバータにIO−FIFOが集積されていると有利であり、必要に応じてそれらのFIFOに外部バス(0808)用のバースト伝送制御のためにFIFO(バーストFIFO)が後置接続されている。1つの有利な実施形態によればこれらのFIFOに対し、送出アドレスと到来データとの同期合わせのために別のFIFO(SYNC−FIFO)が後置接続されている。
【0155】
0820〜0823には、そのつどプログラミング可能/コンフィギュレーション可能な種々のFIFO構造が示されている。この場合、AはアドレスFIFOの進行方向を表し、DはデータFIFOの進行方向を表す。FIFOのデータ伝送方向はデータ伝送方向と動作モードに依存する。VPUがバスマスタとして動作するならば、書き込みアクセス(0820)のときデータおよびアドレスは内部バスから外部バスに伝送され、読み出しアクセス(0821)のときアドレスは内部から外部へ、データは外部から内部へ伝送される。VPUがバススレーブとして動作するならば、書き込みアクセス(0822)のときデータおよびアドレスは外部バスから内部へ伝送され、読み出しアクセス(0823)のときアドレスは外部から内部へ、データは内部から外部へ伝送される。
【0156】
データ伝送全体において、アドレスおよび/またはデータにIOIDおよび/またはAPIDを割り当てて、FIFO段にいっしょに格納することができる。格別有利な実施形態によれば、個々のFIFO段によるデータ伝送の分離によってバスシステム0104,0804,0808/0809の伝送速度(動作周波数)をそれぞれ異なるようにすることができる。殊に外部のバスシステム(0808/0809)を、たとえば内部バスシステム(0104)および/または(0804)よりも高い伝送速度で動作させることができる。
【0157】
図9には、図8による回路を介したデータ読み出し伝送に関して実現可能な流れが示されている。アドレス(有利にはIOIDおよび/またはAPIDをもつような識別子)が内部バスシステム0104を介して、有利には内部FIFO(0901)を備え専用グローバルバスをもつインタフェースユニットおよび/またはPAEへ伝送される。有利にはパイプライン方式(0902)で動作するバスシステム(たとえば0804)を介して、アドレスがIO−FIFO(0903)に伝送される。パイプライン方式で構成できるが有利には短くローカルな別のバス(0904)を介して、アドレスがバーストFIFO(0905)に伝送される。バーストFIFOは外部バスシステムを介したバースト伝送の適正な処理のために用いられ、たとえばバーストアドレスおよびバーストシーケンスの制御やエラー発生時のバーストアドレスの反復のために用いられる。
【0158】
外部バスシステムを介して伝送されるアドレス(0906)のIOIDおよび/またはAPIDはアドレスといっしょに伝送可能であり、および/または付加的なSYNC−FIFO(0907)に格納可能である。SYNC−FIFOは送出アドレス(0906)と到来データ(0909)との間のレイテンシーを補償調整する。到来データに対し、それらを参照するアドレスのIOIDおよび/またはAPID(0908)をSYNC−FIFOによって割り当てることができる。これらのデータ(および有利にはIOIDおよび/またはAPID)はIO−FIFO(0911)にバッファリングされ、その後、有利にはパイプライン方式(0912)で動作するバスシステム(たとえば0804)を介して、専用グローバルバス(0913)を備えたインタフェースユニットおよび/またはPAEに伝送され、これには有利には内部FIFOが含まれている。ここからデータは内部バスシステム(0104)に転送される。
【0159】
オプションとして、到来データをIO−FIFO(0911)ではなく図示されていない第2のバーストFIFOへまず最初に導くことができ、これは読み出しアクセス時にもバーストエラーリカバリBurst-Error-Recoveryが必要であるかぎり、バーストFIFO 0905に従って動作する。その後、データは0911へ転送される。
【0160】
図10は基本的には図8に対応しており、そのため同じ参照符号が用いられている。この実施形態に示されているように、専用グローバルバス(0801)を備えたインタフェースユニットおよび/またはPAEが少なくなっているし、外部の(メイン)メモリおよび/またはその他の(周辺機器)データ流に対するプロトコルコンバータも少なくなっている。ここでは付加的な構成としてコレクタ(1001)が描かれており、これはバスシステム0804に接続されていて、これによりインタフェースユニットおよびプロトコルコンバータからコレクタにデータを書き込むことができ、および/またはコレクタから読み出すことができる。0807に対応する制御ユニット1007によってコレクタが0804aのバスシステムに接続され、0806に対応する制御ユニット1006を介してコレクタが0804bのバスシステムに接続される。
【0161】
複数のコレクタをインプリメント可能であり、そのために複数の制御ユニットが使用される。また、1つのコレクタを複数のメモリ領域にセグメンテーションしておくことができる。そして各メモリ領域自体をそれぞれ異なるメモリモードで動作させることができ、たとえばランダムアクセスメモリ、FIFO、スタック、キャッシュ、MMUページ等として動作させることができる。
【0162】
MMU式の動作モードを実現するため、コレクタに変換テーブル(TLB)(1002)を割り当てておくことができる。たとえばセグメントアドレスおよび/またはたとえばAPIDおよび/またはIOIDのようなその他の識別子に基づき、ページ管理を動作させることができる。
【0163】
1つのコレクタに1つのDMAまたは複数のDMAを割り当てることができると有利であって、その目的は外部の(メイン)メモリおよび/またはその他の(周辺機器の)データ流とのデータ伝送を実行するためであり、たとえばページについてのページ管理(ロード、書き込み)のMMU機能を自動的に行えるようにするためである。また、DMAは外部の(メイン)メモリおよび/またはその他の(周辺機器の)データ流とコレクタとの間のアドレス変換のため、やはりTLBをアクセスすることができる。さらに実現可能な動作方式として、DMAはアレイ(PA)からたとえば0804を介してアドレス設定を受け取ることができる。
【0164】
DMAは以下のユニットのうち1つまたは複数によって制御可能である:たとえばページフォールトであればコレクタに割り当てられたMMU、アレイ(PA)、外部バス(たとえば0809)、外部のプロセッサ、上位のロードユニット(CT)。
【0165】
コレクタは、外部の(メイン)メモリおよび/またはその他の(周辺機器の)データ流に対する専用のバスインタフェース(1004)へのアクセスを行うことができ、このバスインタフェースは有利にはやはりDMA制御され有利にはマスタ/スレーブ方式対応であり、プロトコルコンバータ0802に対応するまたはそれと類似のプロトコルコンバータを備えている。外部のプロセッサはコレクタ(1007)に対するダイレクトアクセスが可能である。
【0166】
図11は基本的に図9に対応しており、したがって同じ参照符号が用いられている。この場合、変換制御部の設けられたコレクタ(たとえば有利にはTLBを備えたDMA)がデータ流に統合されている。ここではアレイ(PA)が有利にはコレクタとデータを交換する(1103)このコレクタは有利には広範囲にわたり自動的に1102により制御されて、外部の(メイン)メモリおよび/またはその他の(周辺機器の)データ流とデータを交換する(1104)。有利にはコレクタはセグメント化されたMMUのような動作方式ではたらき、その際、それぞれ異なるアドレス領域および/またはAPIDおよび/またはIOIDのような識別子に種々のページが割り当てられている。有利には1102はページフォールトにより制御可能である。
【0167】
図12には、種々のアプリケーションに対するデータ伝送の流れ図が描かれている。アレイ(PA)は、DE 196 54 846.2に記載されている方法に従いオペランドと結果をメモリ1202および1203に記憶することによりデータを処理する。PAには付加的にデータ入力チャネル(1204)とデータ出力チャネル(1205)が割り当てられており、これによりオペランドおよび/または結果がロードされもしくは記憶される。これらのチャネルが外部の(メイン)メモリおよび/またはその他の(周辺機器の)データ流(1208)に至るように構成可能である。また、チャネルを内部のFIFO段および/またはPAE−RAM/PAE−RAMページおよび/またはコレクタ/コレクタページによって構成できる。アドレス(CURR−ADR)を目下1201において進行中のコンフィギュレーションによって計算することができおよび/または事前に計算しておくことができ、および/または(1003)のDMAオペレーションにより計算しておくことができる。殊に1201(CURR−ADR)内のアドレス計算をコレクタまたはそのDMAへ供給することができ、これによりコレクタのデータ伝送をアドレッシングおよび制御することができる。また、先行して1201において実行されたコンフィギュレーションにより、データ入力チャネルをすでにプレロード状態にしておくこともできる。1208によるデータ伝送を実行する目的で、チャネルは有利にはFIFOに類似の動作法式ではたらく。
【0168】
図示の実施例の場合にはさらにチャネル(1207)は、先行のコンフィギュレーションまたはアプリケーションによって満たされた1201内における既述のデータ処理中、1208に書き込まれる。このチャネルはやはり、内部FIFO段および/またはPAE−RAMおよび/またはPAE−RAMページおよび/またはコレクタ/コレクタページによって構成可能である。アドレスは目下パラレルに1201において進行中のコンフィギュレーション(OADR−CONF)によって計算できおよび/または事前に計算しておくことができ、および/または(1003)のDMAオペレーションにより計算しておくことができる。殊に1201内のアドレス計算(OADR−CONF)をコレクタまたはそのDMAに供給することができ、これによりコレクタのデータ伝送をアドレッシングおよび制御することができる。
【0169】
さらに同時に、後続のコンフィギュレーションまたはアプリケーションのためのデータが別のチャネルにロードされる(1206)。このチャネルも内部FIFO段および/またはPAE−RAM/PAE−RAMページおよび/またはコレクタ/コレクタページによって構成可能である。アドレスを目下パラレルに1201内で進行中のコンフィギュレーション(IADR−CONF)によって計算できおよび/または事前に計算しておくことができ、および/または1003のDMAオペレーションによって計算しておくことができる。殊に1201(IADR−CONF)内におけるアドレス計算をコレクタまたはそのDMAに供給することができ、これによってコレクタのデータ伝送をアドレッシングおよび制御することができる。個々のチャネル内の個々のエントリにたとえばIOIDおよび/またはAPIDのような種々の識別子をもたせることができ、その目的はそれぞれ特定のリソースおよび/またはロケーションに割り当て可能にすることである。
【0170】
図13aにはバーストFIFOの有利なインプリメンテーションが示されている。まずはじめに、バースト対応のバス(BBUS)へ値を伝送する出力FIFOのための機能について説明する。第1のポインタ(1301)は、メモリ(1304)内で目下BBUSに出力すべきデータエントリを指している。データワード(1302)が出力されるたびに1301は1つのポジションだけ移動する。目下のバースト伝送を開始する前のポインタ1301の値はレジスタ(1303)に格納されている。バースト伝送中にエラーが発生すると、1301は元の値で1301から新たにロードされ、バースト伝送が新たに開始される。
【0171】
第2のポインタ(1305)は、書き込むべきデータ(1306)のためのメモリ(1304)内の目下のデータ書き込みポジションを指示している。場合によってはエラーが発生してまだ必要とされるデータが上書きされてしまうのを欠ける目的で、ポインタ1305がレジスタ1303と比較され(1307)、これによってバーストFIFOの満杯状態を指示できるようにする。バーストFIFOが空である状態は、出力ポインタ(1301)を入力ポインタ(1305)と比較(1308)することにより確かめることができる。
【0172】
バースト伝送の読み込みデータのためにバーストFIFOが動作しているならば、以下のように機能が変更される。:1301はデータ1306用の書き込みポインタとなる。バースト伝送中に誤ったデータが伝送された場合、バースト伝送前のポジションが1303に格納される。バースト伝送中にエラーが発生したならば、1301は元の値を1303から新たにロードして、バースト伝送が新たに開始される。ポインタは、データ(1302)の読み出しのためバーストFIFOの読み出しポジションを指す。まだ適正に完了していないバースト伝送のデータが早期に読み出されてしまうのを避ける目的で、1305が1303にセーブされているポジションと比較され(1307)、これによって空のバーストFIFOが指示されるようにする。満杯のバーストFIFOは書き込みレジスタ1301と読み出しレジスタ(1305)の比較(1308)により識別される。
【0173】
図13bにはバースト回路の実現可能なインプリメンテーションが示されており、これにより可能なバースト伝送が識別され境界がチェックされる。このインプリメンテーションは簡単に構成されていて、単にリニアなアドレスシーケンスだけを識別する。データ伝送は基本的にバースト伝送として開始される。最初のアドレスがリニアでないとバースト伝送は中断される。複数のアドレスをまえもってチェックするルックアヘッドロジックの拡張によって、特定の長さ(たとえば4)の複数のバースト伝送も検出して開始させることができる。
【0174】
最初のアクセスのアドレス値(1313)がレジスタ(1310)に記憶される。後続のデータ伝送のアドレス値が、複数のバースト伝送において第1のデータ伝送と第2のデータ伝送のアドレス差(典型的にはワード幅)だけ高められたアドレス値(1311)と、1310によって比較される(1312)。両方の値が等しければ、第1のアドレスと第2のアドレスの差は2つのバーストアドレス間のバッファ伝送のアドレス差に相応する。したがって適正なバーストが存在することになる。値が等しくなければ、バースト伝送を中断する必要がある。
【0175】
そのつど最後にチェックされたアドレス(1313)(この明細書では第2のアドレス)がそれぞれ1310に記憶され、ついで同じようにしてその次のアドレス(1313)と比較される。
【0176】
バースト境界(boundary)が守られていることを確認するため、目下のアドレス値(1313)において境界の位置する1つのアドレスビット(または複数のアドレスビット)が、先行のアドレス値(1310)のアドレス値のアドレスビットと比較される(たとえばXOR 1314)。これらのアドレスビットが等しくなければ境界を越えており、それに応じてバーストの制御の応答動作を行わなければならない(たとえばバースト伝送の完了と新たな開始)。
【0177】
図14には、メモリたとえばPAE−RAMをまとめてそれよりも大きいメモリブロックを形成するための様々な方法が示されている。このため図14a〜図14dでは、可能であるかぎり同じ参照符号が用いられている。
【0178】
書き込みデータ(1401)は有利にはパイプライン段(1402)によってメモリに供給される。読み出しデータ(1403)は有利にはやはりパイプライン段(1404)を介してメモリから取り出される。パイプライン段1404にはマルチプレクサが含まれており、これによりそのつどアクティブなデータ経路が形成される。アクティブなデータ経路をたとえばRDYハンドシェークの発生によって識別することができる。アドレスがアドレス空間内の適正値であるかを監視するユニット(RangeCheck,1405)をオプションで設けることができる。
【0179】
図14aの場合、アドレスはパイプライン段(1407a)を介してメモリ(1408a)へ供給される。メモリによって上位のアドレス部分が、まえもって固定的に定められた(たとえば上位のコンフィギュレーション可能なユニットCTにより)コンフィギュレーション可能な参照アドレスと比較され、この参照アドレスは各メモリごとに一義的なものである。それらのアドレスが同じであればそのメモリが選択される。下位のアドレス部分はメモリ内におけるメモリロケーションの選択に用いられる。
【0180】
図14bの場合、アドレスはデクリメント部(1だけ減算)の統合されたパイプライン段(1407b)を介してメモリ(1408b)へ供給される。この場合、メモリによって上位のアドレス部が値0と比較される。それらのアドレスが同じであればそのメモリが選択される。下位のアドレス部分はメモリ内におけるメモリロケーションの選択に用いられる。
【0181】
図14cの場合、アドレスはパイプライン段(1407c)を介してメモリ(1408c)へ供給される。メモリによって高位のアドレス部分が各メモリごとに一義的な参照アドレスと比較される。参照アドレスは加算器チェーンまたは減算器チェーン(1409)によってまえもって与えられ、これは初期値(典型的には0)から出発して各メモリごとに異なる一義的な参照アドレスを発生させる。それらのアドレスが等しければメモリが選択される。下位のアドレス部分はメモリ内におけるメモリロケーションの選択に用いられる。
【0182】
図14dの場合、アドレスはパイプライン段(1407d)を介してメモリ(1408d)へ供給される。メモリにより上位のアドレス部分が各メモリごとに一義的な参照アドレスと比較される。参照アドレスはメモリに統合された加算器チェーンまたは減算器チェーン(1410)によりまえもって与えられ、これは初期値(典型的には0)から出発して各メモリごとに異なる一義的な参照アドレスを発生させる。それらのアドレスが等しければそのメモリが選択される。下位のアドレス部分はメモリ内におけるメモリロケーションの選択に用いられる。
【0183】
1402,1404,1407のために、たとえば図5に示したPAEのFREGを用いることができる。1409のために、参照アドレスの進行方向に従いFREGまたはBREGを用いることができる。
【0184】
例示した既述の構成により得られる利点は殊に、すべての書き込みアクセス/読み出しアクセスが同じレイテンシをもつことであり、それというのもアドレスとデータがレジスタ段を介してBREG/FREGEへ供給されるからである。
【0185】
図15には、複数のコンフィギュレーションの結合のためにGlobalTrackバスシステム(1501,1502,1503,1504)を使用する様子が示されており、これらはPAE(1505)の配置構成内で任意にコンフィギュレーションマクロ(1506,1507)(DE 198 07 872.2, 199 26 538.0, DE 100 28 397.7も参照)としてコンフィギュレーションされている。コンフィギュレーションマクロは固有の内部バス結合を指示し、たとえば内部バス(0104)を介して(1508)を指示する。コンフィギュレーションマクロは1503を介して互いにデータ交換されるよう結合されている。1506は1501,1502を介して、インタフェースユニットおよび/またはローカルメモリ(PAE−RAM)(1509,1510)と接続されている。また、1507は1504を介して、インタフェースユニットおよび/またはローカルメモリ(PAE−RAM)(1511)と接続されている。
【0186】
これまで説明してきた本発明について任意の別の形態や組み合わせが可能であり、それらは当業者にとって明らかである。
【図面の簡単な説明】
【0187】
【図1】リコンフィギュアラブルプロセッサの殊に有利な構造を示す図である。
【図2】本発明によるアーキテクチャの様々な形態を示す図である。
【図3】図2に対応しておりVPUにおける有利なデータ処理方法を示す図である。
【図4】図3による方法を簡単に変形したかたちを示す図である。
【図5】実現可能なPAEの実施形態を示す図である。
【図6】ALU−PAEとRAM−PAEをバスシステム0104を介して結線する様子を例示する図である。
【図7】0105に対応するIO回路の簡単な変形実施形態を示す図である。
【図8】複数のインタフェースユニットおよび/またはPAEの間で実現可能な接続構造を示す図である。
【図9】図8による回路を介したデータ読み出し伝送に関して実現可能な流れを示す図である。
【図10】図8に対応しており付加的な構成としてコレクタが設けられている様子を示す図である。
【図11】図9に対応しており変換制御部の設けられたコレクタ(たとえば有利にはTLBを備えたDMA)がデータ流に統合される様子を示す図である。
【図12】種々のアプリケーションに対するデータ伝送の流れ図である。
【図13】実現可能な種々のインプリメンテーションを示す図である。
【図14】PAE−RAMをまとめてそれよりも大きいメモリブロックを形成するための様々な方法を示す図である。
【図15】複数のコンフィギュレーションの結合のためにGlobalTrackバスシステムを使用する様子を示す図である。

Claims (9)

  1. リコンフィギュアラブルコンポーネントにおけるデータ流の分離方法において、1つまたは複数のFIFOメモリにより、内部データ伝送のコンポーネントが外部のデータ伝送から分離されることを特徴とする方法。
  2. リコンフィギュアラブルコンポーネントにおけるデータ流の分離方法において、互いに独立した複数のアドレス発生器が設けられていることを特徴とする方法。
  3. 前記アドレス発生器はデータ処理に依存することなくコンフィギュレーションされる、請求項2記載の方法。
  4. リコンフィギュアラブルコンポーネントのプログラミング方法において、コンパイラによりアドレス計算が複数のコンフィギュレーションに分解されることを特徴とする方法。
  5. リコンフィギュアラブルコンポーネントのフィールドとインタフェース装置が設けられており、該インタフェース装置によりデータたとえばデータ流のデータを処理すべきデータが、リコンフィギュアラブルコンポーネントのフィールドと外部の回路装置との間で交換される形式のデータ処理装置において、
    前記インタフェース装置は少なくともFIFOメモリを有しており、該FIFOメモリにデータが格納され、該メモリからデータが呼び出されることを特徴とする装置。
  6. 後続のコンフィギュレーションに必要とされるデータを求め、該データを前記インタフェース装置または該インタフェース装置を介して高速アクセス可能なメモリ領域にプレロードする回路装置が設けられている、請求項5記載の装置。
  7. 前記高速アクセス可能なメモリ領域はキャッシュメモリ、外部のRAMメモリおよび/またはFIFOメモリまたはレジスタである、請求項5または6記載の装置。
  8. 以前に実行されデータ呼び出し時点では少なくとも部分的にもはやアクティブではなく場合によっては関与したフィールドエレメントのリコンフィギュレーションによりすでに放棄されたコンフィギュレーションにおいてインタフェース記憶手段に格納されたデータをセーブし、および/またはすでに一度送信されたが問題なしとしては受信されなかった既知のデータの消去および/または上書きを防止する手段が設けられている、請求項5から7のいずれか1項記載の装置。
  9. 選択的なアクセスのために、複数のフィールドエレメントおよび/またはコンフィギュレーションのためにグループ分けされたフィールドエレメントによりアクセス可能なメモリが設けられており、たとえばRAMセルおよび/または他のメモリバンクが設けられており、これによりデータが非局所的に記憶され、および/または一時記憶される、請求項5から8のいずれか1項記載の装置。
JP2002570103A 2001-03-05 2002-03-05 データ処理方法およびデータ処理装置 Pending JP2004535613A (ja)

Applications Claiming Priority (37)

Application Number Priority Date Filing Date Title
DE10110530 2001-03-05
DE10111014 2001-03-07
PCT/EP2001/006703 WO2002013000A2 (de) 2000-06-13 2001-06-13 Pipeline ct-protokolle und -kommunikation
EP01115021 2001-06-20
DE10135210 2001-07-24
PCT/EP2001/008534 WO2002008964A2 (de) 2000-07-24 2001-07-24 Integrierter schaltkreis
DE10135211 2001-07-24
DE10139170 2001-08-16
DE10142231 2001-08-29
DE10142894 2001-09-03
DE10142903 2001-09-03
DE10142904 2001-09-03
US31787601P 2001-09-07 2001-09-07
DE10144732 2001-09-11
DE10144733 2001-09-11
DE10145792 2001-09-17
DE10145795 2001-09-17
DE10146132 2001-09-19
US09/967,847 US7210129B2 (en) 2001-08-16 2001-09-28 Method for translating programs for reconfigurable architectures
EP0111299 2001-09-30
PCT/EP2001/011593 WO2002029600A2 (de) 2000-10-06 2001-10-08 Zellenarordnung mit segmentierterwischenzellstruktur
DE10154260 2001-11-05
DE10154259 2001-11-05
EP01129923 2001-12-14
EP02001331 2002-01-18
DE10202044 2002-01-19
DE10202175 2002-01-20
DE10206653 2002-02-15
DE10206857 2002-02-18
DE10206856 2002-02-18
DE10207226 2002-02-21
DE10207224 2002-02-21
DE10207225 2002-02-21
DE10208434 2002-02-27
DE10208435 2002-02-27
PCT/EP2002/002398 WO2002071248A2 (de) 2001-03-05 2002-03-05 Verfahren und vorrichtungen zur datenbe- und/oder verarbeitung
DE10129237A DE10129237A1 (de) 2000-10-09 2002-06-20 Verfahren zur Bearbeitung von Daten

Publications (1)

Publication Number Publication Date
JP2004535613A true JP2004535613A (ja) 2004-11-25

Family

ID=56290255

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2002570103A Pending JP2004535613A (ja) 2001-03-05 2002-03-05 データ処理方法およびデータ処理装置
JP2002570104A Pending JP2004536373A (ja) 2001-03-05 2002-03-05 データ処理方法およびデータ処理装置
JP2002570052A Expired - Fee Related JP4011488B2 (ja) 2001-03-05 2002-03-05 データ加工および/またはデータ処理方法および装置

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2002570104A Pending JP2004536373A (ja) 2001-03-05 2002-03-05 データ処理方法およびデータ処理装置
JP2002570052A Expired - Fee Related JP4011488B2 (ja) 2001-03-05 2002-03-05 データ加工および/またはデータ処理方法および装置

Country Status (4)

Country Link
EP (2) EP1540507B1 (ja)
JP (3) JP2004535613A (ja)
AU (2) AU2002254921A1 (ja)
WO (2) WO2002071248A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9646686B2 (en) 2015-03-20 2017-05-09 Kabushiki Kaisha Toshiba Reconfigurable circuit including row address replacement circuit for replacing defective address

Families Citing this family (16)

* 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
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
WO2005045692A2 (en) * 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
DE10357284A1 (de) * 2003-12-05 2005-07-14 Pact Xpp Technologies Ag Multispannungsversorgung
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
AU2003214003A1 (en) 2002-02-18 2003-09-09 Pact Xpp Technologies Ag Bus systems and method for reconfiguration
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US20060126770A1 (en) * 2004-12-15 2006-06-15 Takeshi Yamazaki Methods and apparatus for providing an asynchronous boundary between internal busses in a multi-processor device
JP4909588B2 (ja) * 2005-12-28 2012-04-04 日本電気株式会社 情報処理装置及び再構成デバイスの利用方法
US7693257B2 (en) 2006-06-29 2010-04-06 Accuray Incorporated Treatment delivery optimization
FR2922663B1 (fr) 2007-10-23 2010-03-05 Commissariat Energie Atomique Structure et procede de sauvegarde et de restitution de donnees
US9086973B2 (en) 2009-06-09 2015-07-21 Hyperion Core, Inc. System and method for a cache in a multi-core processor
CN102281054A (zh) * 2011-04-25 2011-12-14 浙江大学 一种用于数据驱动的可重构计算阵列数据耦合器

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06101043B2 (ja) * 1988-06-30 1994-12-12 三菱電機株式会社 マイクロコンピュータ
US5193202A (en) * 1990-05-29 1993-03-09 Wavetracer, Inc. Processor array with relocated operand physical address generator capable of data transfer to distant physical processor for each virtual processor while simulating dimensionally larger array processor
DE4416881C2 (de) 1993-05-13 1998-03-19 Pact Inf Tech Gmbh Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
IT1260848B (it) * 1993-06-11 1996-04-23 Finmeccanica Spa Sistema a multiprocessore
EP0721157A1 (en) * 1994-12-12 1996-07-10 Advanced Micro Devices, Inc. Microprocessor with selectable clock frequency
US5892370A (en) * 1996-06-21 1999-04-06 Quicklogic Corporation Clock network for field programmable gate 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
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
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
DE19807872A1 (de) 1998-02-25 1999-08-26 Pact Inf Tech Gmbh Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
DE10028397A1 (de) 2000-06-13 2001-12-20 Pact Inf Tech Gmbh Registrierverfahren
JP2003505753A (ja) 1999-06-10 2003-02-12 ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング セル構造におけるシーケンス分割方法
DE10036627A1 (de) 2000-07-24 2002-02-14 Pact Inf Tech Gmbh Integrierter Schaltkreis

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9646686B2 (en) 2015-03-20 2017-05-09 Kabushiki Kaisha Toshiba Reconfigurable circuit including row address replacement circuit for replacing defective address

Also Published As

Publication number Publication date
JP4011488B2 (ja) 2007-11-21
WO2002071196A2 (de) 2002-09-12
WO2002071196A3 (de) 2003-12-04
EP1454258A2 (de) 2004-09-08
WO2002071248A2 (de) 2002-09-12
AU2002257615A1 (en) 2002-09-19
WO2002071248A8 (de) 2004-01-29
AU2002254921A1 (en) 2002-09-19
JP2004536373A (ja) 2004-12-02
WO2002071248A3 (de) 2005-04-21
JP2004538675A (ja) 2004-12-24
EP1540507B1 (de) 2012-05-23
EP1540507A2 (de) 2005-06-15
WO2002071196A8 (de) 2003-10-30

Similar Documents

Publication Publication Date Title
US9037807B2 (en) Processor arrangement on a chip including data processing, memory, and interface elements
US20190102173A1 (en) Methods and systems for transferring data between a processing device and external devices
US7581076B2 (en) Methods and devices for treating and/or processing data
US9436631B2 (en) Chip including memory element storing higher level memory data on a page by page basis
US20230289310A1 (en) Top level network and array level network for reconfigurable data processors
US6751698B1 (en) Multiprocessor node controller circuit and method
JP2004535613A (ja) データ処理方法およびデータ処理装置
US9250908B2 (en) Multi-processor bus and cache interconnection system
US7039756B2 (en) Method for use of ternary CAM to implement software programmable cache policies
US11336287B1 (en) Data processing engine array architecture with memory tiles
JP2007215203A (ja) データ処理方法およびデータ処理ユニット、コンフィギュレーション化可能なエレメントのダイナックな再コンフィギュレーション方法、システムおよびプロセス
US11520717B1 (en) Memory tiles in data processing engine array
US6694385B1 (en) Configuration bus reconfigurable/reprogrammable interface for expanded direct memory access processor
US9141390B2 (en) Method of processing data with an array of data processors according to application ID
JP4456864B2 (ja) リコンフィギュアブル素子
US20090300262A1 (en) Methods and devices for treating and/or processing data
US7636817B1 (en) Methods and apparatus for allowing simultaneous memory accesses in a programmable chip system
US6675283B1 (en) Hierarchical connection of plurality of functional units with faster neighbor first level and slower distant second level connections
US11061642B2 (en) Multi-core audio processor with flexible memory allocation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071025

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080122

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080131

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080222

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080306

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080325

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080423

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080930

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20081010

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20081121

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100921

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100927

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101021

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101026