JP2005515525A - リコンフィギュアブル素子 - Google Patents

リコンフィギュアブル素子 Download PDF

Info

Publication number
JP2005515525A
JP2005515525A JP2003538928A JP2003538928A JP2005515525A JP 2005515525 A JP2005515525 A JP 2005515525A JP 2003538928 A JP2003538928 A JP 2003538928A JP 2003538928 A JP2003538928 A JP 2003538928A JP 2005515525 A JP2005515525 A JP 2005515525A
Authority
JP
Japan
Prior art keywords
cell
memory
configuration
data
pae
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
JP2003538928A
Other languages
English (en)
Other versions
JP4456864B2 (ja
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 US09/967,497 external-priority patent/US7266725B2/en
Priority claimed from PCT/EP2001/011593 external-priority patent/WO2002029600A2/de
Priority claimed from PCT/EP2002/002403 external-priority patent/WO2002071249A2/de
Priority claimed from PCT/EP2002/002398 external-priority patent/WO2002071248A2/de
Priority claimed from DE10212622A external-priority patent/DE10212622A1/de
Priority claimed from DE10226186A external-priority patent/DE10226186A1/de
Priority claimed from DE10227650A external-priority patent/DE10227650A1/de
Priority claimed from DE10238174A external-priority patent/DE10238174A1/de
Priority claimed from DE10238172A external-priority patent/DE10238172A1/de
Priority claimed from DE10238173A external-priority patent/DE10238173A1/de
Priority claimed from DE10240000A external-priority patent/DE10240000A1/de
Priority claimed from PCT/DE2002/003278 external-priority patent/WO2003023616A2/de
Priority claimed from DE2002141812 external-priority patent/DE10241812A1/de
Priority claimed from PCT/EP2002/010084 external-priority patent/WO2003025770A2/de
Application filed by PACT XPP Technologies AG filed Critical PACT XPP Technologies AG
Publication of JP2005515525A publication Critical patent/JP2005515525A/ja
Application granted granted Critical
Publication of JP4456864B2 publication Critical patent/JP4456864B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Logic Circuits (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)
  • Amplifiers (AREA)
  • Shaping Of Tube Ends By Bending Or Straightening (AREA)
  • Handcart (AREA)

Abstract

本発明は、算術および/または論理機能を実行する機能セルと、情報を受け取り、記憶および/または送出するメモリセルとを有するデータ処理用セルエレメントフィールドに関する。ここでは機能セルから制御コネクションがメモリセルに導かれる。

Description

定義
リコンフィギュアブル素子とは、実施すべきアプリケーションに依存して、様々にまたアプリケーションに相応して構成される素子のことである。
本発明の課題は、産業上の適用に対して新規な素子を提供することである。
この課題の解決手段は、請求項1,7,16,18,29,32に記載されている。有利な実施形態は、従属請求項に記載されている。
リコンフィギュラブルなアーキテクチャとは、ここでは再設定可能ないしはリコンフィギュラブルな機能および/または結線(Vernetzung)を有する素子(VPU)のことであり、例えば、1次元または多次元に配置された算術的および/または論理的および/またはアナログおよび/または記憶を行うおよび/または内部/外部で結線される複数のコンポーネントを有する集積素子のことであり、ここでこれらのコンポーネントは直接またバスシステムによって互いに接続される。
このような素子のジャンルには、例えば、シストリックアレイ、ニューラルネットワーク、マルチプロセッサシステム、複数の演算器(Rechenwerk)および/または論理セルおよび/または通信/周辺セル(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-53, DE 196 54 846.2-53, DE 196 54 593.5-53, 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 102 06 653.1, DE 102 06 857.7, DE 100 28 397.7, DE 101 10 530.4,
DE 102 02 044.2, DE 101 29 237.6-53, DE 101 42 904.5, DE 100 50 442.6,
DE 101 35 210.7-53, EP 02 001 331.4, 60/317.816
を参照されたい。これらをここに開示のために完全に組み入れる。
上記のアーキテクチャは、説明のために例示的に引用したのであり、以下ではVPUと称する。このアーキテクチャは、任意の算術セル、論理セル(メモリも)および/またはメモリセルおよび/または結線セルおよび/または通信/周辺(IO)セル(PAE)からなり、これは1次元または多次元のマトリクス(PA)に配置することができる。ここでこのマトリクスは、任意に構成された様々なセルを有することができる。ここではバスシステムもセルと理解されるのである。このマトリクスには、完全なものとして、またはそれらの一部としてコンフィギュレーションユニット(CT,ロードロジック(Ladelogik))が対応付けられており、このコンフィギュレーションユニットにより、PAの結線および機能が設定される。CTは、例えば、専用のユニットとしてPACT05, PACT10, PACT17にしたがって構成することができるか、またP 44 16 881.0-53,DE 102 06 856.9に記載されているようにホストマイクロプロセッサとしてPAに対応付けられるか、ないしはこれを伴ってまたはこれによって実現することができる。
従来の技術
様々なPAE構造が従来技術から公知である。最も一般的に使用されるものは、DE 196 51 075.9-53,DE 100 50 442.6ならびにChameleon CS2112によって定義される。さらに公知のFPGAセルを参照されたい。
大学側からは、DPGA,RawMachine(DeHuon),KressArray(Kress, カイザースラウテルン大学),XPUTER(Hartenstein,カイザースラウテルン大学)ならびに他の構造が公知である。
上記のすべての構造に利用可能な、以下に説明する拡張により、例えば、極めてシーケンシャルであり、および/またはほとんどデータストリームオリエンテッドでない複雑な適用においてPAE構造およびアーキテクチャの利用可能性が改善される。さらに外部ユニット(例えば、メモリおよび/または周辺装置)への接続が簡単になり、均質化される。
間接的なコンフィギュレーション
PAE(IPAE)の1実施形態では、PAEまたはPAEのグループは、メモリ(RRAM)に、有利にはRAM−PAEに結合される。IPAEは、固有の内部的なシーケンサを有しているか、またはシーケンサないしはマイクロコントローラに結合されている。ここでこれは、RISCプロセッサの場合と同様に有利にも命令が限定されており、すなわち、使用可能な相異なる命令の数が比較的少なく、および/または有利にも完全な命令セットを有する(ARCマイクロプロセッサを参照されたい)。言い換えると有利には、可能な限りに少ない命令セットしか有しないが、計算理論的に完備であるRISCプロセッサが使用されるのである。1変形実施形態では、上記のシーケンサを1つまたは複数のPAEをコンフィギュレーションすることによって構成可能である。シーケンサの機能およびそのフローの挙動をコンフィギュラブルに構成することができる(例えば、従来技術から公知のように構成することができる。例えば、AlteraのEPS448[ALTERA Data Book 1993]による)。このシーケンサ/マイクロコントローラは、IPAEにおける複数の状態(例えば状態信号、イベント)および/または(例えばバスを介して)このIPAEに接続されている別のPAEの状態(例えばトリガにも)に応動することができる。IPAEのレジスタには、RRAMメモリ内容へのポインタがコンフィギュレーションされる。例えば、プログラムポインタRppを、リセットサイクル中にコードのスタートアドレスに設定することができる。シーケンサのアドレス発生器は、ポインタによって指し示されたメモリ内容をRRAMから読み出して、これ(またはその一部)を、例えば、アドレッシングされたPAEの、メモリ内容によってアドレッシングされたコンフィギュレーションレジスタに書き込むか、またはこのメモリ内容をつぎの処理に対する命令として使用する。このポインタは、アドレスレジスタにより、アドレスポインタのふつうの動作の仕方にしたがってインクリメントおよび/またはデクリメントされ、および/またはジャンプ命令(JUMP, CALL, RETURN)時には新たに設定される。ここまではメモリRRAMにより、コードメモリが得られまた有利な実施形態ではシーケンサに対するデータメモリが得られ、および/またはメモリRRAMはそのようなものとして利用される。シーケンサは、メモリ(RRAM)から自由にコードを読み出すことができ、また有利な実施形態ではこのメモリからデータも読み出す、またはこのメモリに書き込むことができる。ここまではこのメモリは、シーケンサに対するデータメモリでもある。
RRAMメモリ内容は、上位のコンフィギュレーションユニット(CT)によってロードすることが可能である。拡張した実施形態ではこのメモリ内容を、付加的または択一的には(例えば外部の)別のメモリからロードするまたはこれに書き込むことができる(場合によってはこれは当然のことながらIPAEによっても行われる)。ここでこれは例えばフロントエンドの端子を介して行われる。
1変形実施形態では、上記のメモリおよび/またはIPAEは、外部のRAMおよび/または外部IOへの直接の接続(EXTBUS)を有することができる。この場合に殊に有利な実施形態では、このEXTBUSは、インタフェースコンポーネント(IOAG)へのPAEバスシステムへの線路、場合によっては専用線路により実現可能である。ここでこれはPACT03またはPACT15から公知である。ここではメモリ(RAM)および/または周辺装置(IO)の制御は、有利にはこのインタフェースコンポーネントによって行われる。
殊に有利な実施形態では、RRAM自体が、シーケンサに対するデータおよび/またはコードをEXTBUSを介してRAMおよび/または外部のRAMからロードすることができる。この機能は、RRAMに独立して実装されるまたは実装可能なアドレス発生器によって実現可能である。例えば、DMAコントローラはこの役割に殊に適しており、ここではこのコントローラにより、データがブロック単位でメモリ間においてコピーされる。読み出すべきデータのアドレス空間および宛先アドレス空間は相応に設定され、コピー過程が開始される。この設定はIPAEによって行うことができる。
ハードウェアによる比較的コストのかかる解決手段では、実装されたメモリ管理ユニット(MMU=Memeory Management Unit)によってこの機能を実現することができる。このメモリ管理ユニットの一般的な動作は、それ自体定まっておりかつ公知である。ここでは有利なMMUはつぎのように動作する。
MMUによって管理されるRRAMメモリは、複数のページ(Page)に分割される。各ページは、外部メモリ内の仮想メモリ空間のデータを含む。例えば、16進数のRRAMアドレス0x0a00…0x0affは、外部メモリのアドレス0xbd13200…0xbd132ffにおけるデータを含むことができる。アドレス変換を管理するため、アドレス変換ユニットが使用され、これは有利にはRRAMセルに設けられたルックアップテーブルによって実現される。このMMUは、例えば、大きな1つのメモリ空間を、RRAMのはるかに小さな複数のメモリ空間に変換するために設けられている。これは有利には、必要に応じて上記の大きな1メモリ空間から、より小さなメモリ区間にページをコピーすることによって行われる。ページが不要になるとただちに、このページを消去および/または上書きすることができる。ページのデータが変更された場合、このページは有利には消去/上書きの前に上記の大きなメモリ空間に書き戻される。
この場合に上記のアドレス変換ユニットは、動作して物理アドレスの上位部分(すなわちこのページのアドレス)をルックアップテーブルに格納し、またRRAMのページの相応するデータをポイントする。ここでこれは上記の小さなメモリ(RRAM)内のページが利用可能になるとただちに行われる。これによってこのページに対してアクセスすることができる。RRAMにこのページがない場合には、参照も記入されていない。この場合、まずこのページを大きな(外部の)メモリ空間からこのRRAMにコピーしなければならない。このために、有利には目下使用していない別のページを上に示したフローにしたがって上書きすることができる。
ここで上記のコピーは自動的に、すなわち、MMUがDMAコントローラを制御することによって行われる、シーケンサによる実質的な関与なしに行うことができる。したがってここに示したRRAMの本発明のMMUは、DMAコントローラに対する制御部を有しており、および/またはこれに接続可能である。このDMAコントローラには、RRAMおよび外部RAMの相応するページアドレスならびにページサイズが、MMUによって供給される。例えば、これはページアドレスおよびページサイズがレジスタに記入されることによって行われる。
アプリケーションに依存しかつ考えられ得る実施形態において、場合によっては有利な実施形態において、複数のEXTBUSインタフェースを実装することができる。
考えられ得る1実施形態において、RRAMは、異なるアドレス領域にある複数のセグメントに分割される。これらのセグメントは、例えば、以下に示す複数の機能のうちのいくつかに対して分割されているかないしは分割することができ、また例えば、以下の機能のうちのすべてまたは一部の実装を可能にするサイズを有する。また上記のセグメントは、場合によってはコンフィギュラブルであるが有利には固定して実装される相応の制御部を有する。上記の機能には、
シーケンサ/コードメモリ、(例えば、レジスタセットに対する)スタック、データメモリ、ヒープ、IOバッファ、外部RAMに対するバッファないしはキャッシュ、ルックアップテーブル、PAEおよび/またはバスに対するコンフィギュレーション、IPAEのレジスタセット
が含まれる。機能に応じて、以下の制御メカニズムが付加的に設けられる、および/またはこれらをコンフィギュレーションすることができる。すなわち、
シーケンサ/コードメモリ:相応するメモリ位置へのプログラムポインタ(Rpp);
スタック:スタックの最上位メモリ位置へのスタックポインタ(Rsp)、場合によっては従来技術(例えばIntelのPentium)からそれ自体公知のようにフレームポインタも;
PAEおよび/またはバスに対するコンフィギュレーション:CT内のポインタがこれをポイントすることができる、および/または実装に依存してPAEのコンフィギュレーション制御部内のポインタがこれをポイントすることができる;
IPAEのレジスタセット:PAEのレジスタセットをメモリに取り付けようとする場合、これは、PAEにより、直接、有利にはハードウェア技術的に固定的にあらかじめ設定されてアドレッシングされる。
データメモリ、バッファ、テーブルなどの残りのメモリ領域は、通例、また有利には、コンパイラまたはプログラマによって作成される。これらの領域のアドレッシングは、実行すべきプログラムおよび/またはオペレーティングシステムによって行われ、またこのプログラムおよび/またはオペレーティングシステム内で、場合によってはシーケンサのALUおよびレジスタセットを利用して計算される。
IPAEのレジスタセットは、1実施形態において、トランスピュータのレジスタセットに類似してスタックとして編成される。これによってこのレジスタセットを殊に小さくかつハードウェア技術的に効率的に実現することができる(通例3つのレジスタA,BおよびCで十分である)。さらにトランスピュータテクノロジから公知であるのは、コンパイラが、上記のようなハードウェア技術的に見てコスト的に有利なレジスタセットによって効率的に動作できることである。このレジスタセットはオプションでRRAMに配置することも可能である。
1実施形態では、RRAMをマルチポートメモリとして実施することができ、またこのように実施する。マルチポートメモリによって可能になるのは、場合によっては同時に行われる、複数のメモリアクセスユニットによるメモリ内容への書き込みおよび/または読み出しアクセスである。メモリアクセスユニットは、例えば、外部および/または内部の周辺装置、プロセッサ、別のPAEとすることができる。マルチポートメモリの機能も従来技術から公知である。
1実施形態において、RRAMを有するIPAEは、ローカルなまた場合によっては同様にグローバルなコンフィギュレーションユニットとして、周囲にあるPAEに対するCTに類似して動作することができ、または殊にその機能も満たすことができる。PAEは、ローカルコンフィギュレーションユニットとして使用する際、有利にはDE 196 54 846.2-53から公知の方法にしたがって動作する。このPAEをグローバルコンフィギュレーションユニットとして使用するか、または極めて多くのローカルなPAEをコンフィギュレーションする場合、有利にはDE 196 54 593.5-53に記載された方法を使用し、ここでこの方法は、FILMO機能を有するため、極めて多くまた同時に互いに依存しないコンフィギュレーションを管理することが可能である。IPAEは、例えばシーケンサ/マイクロコントローラによって制御されて、RRAMのコンフィギュレーションをアドレッシングして、このコンフィギュレーションをPAEおよび/またはそれ自体においてコンフィギュレーションし、および/またはシーケンサ/マイクロコントローラのフローを決定する。ここで有利には、公知のインターCTプロトコル(DE 198 07 872.2,DE 100 28 397.7,DE 199 26 538.0)に類似して上位のCTとの同期化が行われる。IPAEのRRAM回路は、EXTRAMインタフェースの1つを介してコンフィギュレーションをそれ自体でロードし、および/または、CTインタフェースを介して上位のCTのコンフィギュレーションを要求することができる。機能の仕方は、DE 196 54 846.2-53のリコンフィギュレーションユニットと同じにすることができる。PAEに対するコンフィギュレーションデータは、IRAMにより、PAEに転送されるか、または有利な1実施形態ではRRAMから直接得られる。ここでRRAMにおけるデータを複数のPAEに分割するため、DE 101 10 530.4に記載されたSIMDバスシステムと類似にバス分散方式(Busverteilverfahren)を使用することができる。
言い換えると、IPAE RRAM相互接続(Verschaltung)の基本的な動作の仕方はつぎのようなマイクロコントローラに類似している。すなわち、そのバス接続(Busanbindung)および/またはデータ転送および/またはプログラムフローがVPUシステムに相応するマイクロコントローラに類似しているのである。
ここでは殊につぎのようなIPAE−RRAM−相互接続に対して特許権による保護が要求される。すなわち、IPAEおよびRRAMはそれぞれ、リコンフィギュラブルな素子の別個の機能エレメント(PAE)として構成されており、またこれらは通例、任意の相互接続および機能を実施することができるのではあるが、殊に本発明に記載したIPAEおよびRRAMからなるシーケンサ構造を使用するために相応にコンフィギュレーションし、また使用することができる。ここでこのコンフィギュレーションは有利には、上位のコンフィギュレーションユニットCTによって行われる。
同様につぎのようなPAEに対しても特許権による保護が要求される。すなわち、PAEからなるアレイの内部バスシステムとの接続に加えて、領域にわたるバスシステムに接続される専用の接続部(IOチャネル)を有するPAEに対しても特許権による保護が要求されるのである。ここで上記の領域にわたるバスシステムは、殊にアレイ内の長い区間にわたってデータを伝送し、および/または例えば周辺装置(Peripherie)に直接の接続部を有することができる。ここで周辺装置との接続は直接行うことができ、これは、例えば、バスシステムがすでに周辺装置のプロトコルに適合しているか、またはプロトコルを変換する相応するプロトコル変換器を介して行われる。この際にこの専用のバスシステムはすでに業界標準、例えばPCI,RapidIO,Firewire,USB,Ethernet,RAMBUS,DDR-RAM等に適合させて、簡単かつコストのかけずに周辺装置との接続を可能にすることができる。場合によっては、挿入接続されたIOAG(DE 196 54 595.1-53を参照されたい)においてプロトコル変換を実行して、内部的かつ簡単な、また場合によっては独自のバスプロトコルを、1つまたは複数の複雑な外部の標準プロトコルに変換することができる。すでに挙げたバスプロトコルから明らかなように、周辺装置とはメモリのことでもあるということに注意されたい。
同様に本発明において殊に重要であるのは、PAEが専用のバスシステムへの複数の端子を有し得ることである。
さらに適用に依存してつぎのようなアーキテクチャも有利である。すなわち、PAEの1部分集合だけが専用のバスシステムへの端子を有するか、または相異なるPAEが、場合によっては同様に相異なる専用のバスシステム対して、相異なる個数の端子を有するアーキテクチャも有利である。
以下では本発明によるIPAEとRRAMとの結合の変形実施例を詳しく説明する。
本発明により、殊に支障のない実行時間のため、エレメントの機能および/または結線をリコンフィギュラブルにすべきでないリコンフィギュラブルなセルエレメントフィールドにおいて、代数的および/または論理的であり、コンフィギャラブルな機能を実行するための機能セルと、情報を受信し、格納しおよび/または出力するためメモリセルとによるデータ処理のために提案されるのは、制御コネクション(Steuerverbindung)(CMD)を機能セルからメモリセルに導くことである。この制御コネクションは、通例はALU−PAEである対応付けられた機能セルによって、メモリからのアドレスおよび/またはデータの入力および/または出力を制御可能にするために使用される。これにより、例えば、つぎに伝送される情報をアドレスまたはデータのいずれとして処理すべきであるのか、また読み出しおよび/または書き込みアクセスが必要であるか否かを示すことができる。この場合に例えばRAM−PAEとすることのできるメモリセルからALU−PAEにこのようにデータを伝送することによって可能になるのは、ALUによって処理すべき新しい命令をこれにロードできることである。これにより、機能セルとメモリセルとの間に専用および機能セルを専用に制御する制御コネクションを設けるだけで、有利なバスを介して接続されている2つのエレメントだけですでにシーケンサ構造をセルエレメントフィールドに構成することが可能になる。またこの際には他の場合のように別の手段および/または構造上の変更が必要になることがない。上記のメモリセルには従来のプロセッサからそれ自体公知のようにデータ、アドレス、プログラムステップ等を格納することができる。2つのエレメントは、相応のコンフィギュレーションをすれば、別の使い方もできるため、殊に効率的な構成法が得られる。ここでここれは、シーケンサ構造にも、ベクトル化および/または並列化された構造にも殊に良好に適合可能である。
明らかであるのは、1セルエレメントフィールドにおいてセルを2つだけ使用することによって、すなわち機能セルおよび情報供給セルを使用することによって、このリコンフィギュラブルなセルエレメントフィールドに多くのシーケンサ的な構造を作成できることである。このことは、例えばマルチタスクが可能なオペレーティングシステムにおいてデータ処理の際にしばしば、別個でありそれ自体互いに異なる一連の作業を処理しなければならないという点において有利である。この場合、ただ1つのセルエレメントフィールドにおいてこのような多数の作業を効率的に同時に処理することができる。リアルタイムアプリケーションに対する利点は明らかである。さらに、1セルエレメントフィールドにおいて本発明の制御コネクションを設けることによって作製可能な個々のシーケンサ構造を別個のクロックレートで作動させることも可能であり、例えば、優先度の低い作業をよりゆっくりと処理することによって電流消費が低減される。その上に、それ自体が広範囲にわたって並列である複数のアルゴリズムを実行する際に、このフィールドのシーケンサ的なプログラム部分を並列またはベクトル的に処理したりこの逆を行うことができる。
機能および/または結線がコンフィギュラブルなセルを有するセルエレメントフィールドは明らかなようにプロセッサ、コプロセッサおよび/またはマイクロコントローラを構成することができ、ないしはこれらを多数並列したものまたは組み合わせたものを構成することができる。
上記の機能セルは、通例、算術論理ユニットとして構成され、ここでこれは例えば、粒度の粗いエレメントであるが、これは粒度の細いステートマシンを有することも可能である。殊に有利な実施例では、ALUはいわゆる拡張されたALU(EALU)であり、これは本願出願人の以前の明細書に記載されている。拡張には、必要であれば、例えば制御コネクションコントロール、命令デコードユニットなどを含むことができる。基本的には機能セルの少なくとも部分集合を粒度の細かいFPGAエレメントから構成することも可能であることに注意されたい。
上記のメモリセルはデータおよび/または情報を揮発的および/または不揮発的に記憶することができる。プログラムステップ、データへのアクセスに対するアドレス、またはレジスタ的ないしはヒープ的に格納されるデータであれ、メモリセルに格納した情報が、揮発性のデータとして格納される場合、動作中に完全なリコンフィギュレーションを行うことが可能である。択一的には不揮発性のメモリセルを設けることも可能である。不揮発性のメモリセルは、例えばEEProm領域およびこれに類似するものとして設けることが可能であり、ここに基本のBiosプログラムを格納することができ、ここでこのプログラムは、この装置の起動時に実行される。これにより、追加のコンポーネントなしにデータ処理装置の起動を行うことができる。不揮発性のデータメモリは、コストおよび/またはスペース上の理由から繰り返して同じプログラム部分を実行すべきであるとした場合にも設けることもできる。この場合、このような固定のプログラムの下でも、例えばWAVEリコンフィギュレーションの方式で動作中に変更することができる。このような不揮発性メモリを設けて使用できることは、本願出願人の別の特許明細書の対象である。揮発性のデータも不揮発性のデータも共にメモリセルに記憶することができ、これにより、例えばBiosプログラムを固定的に格納すると同時にこのメモリセルは別の目的に利用される。
メモリセルは有利にはつぎのように構成される。すなわち、このメモリセルが、処理すべきデータおよび/または処理すべきプログラム部分を十分な数だけ記憶できるようにする。この際に注意すべきであるのは、これらのプログラム部分をプログラムステップとして構成することも、また上記のプログラム部分が、複数のフィールド領域または別のフィールドに対する完全なコンフィギュレーションを含むことも共に可能なことである。ここで上記のプログラムステップは、個々の、例えば対応付けられたPAE、すなわち例えばメモリセルを制御する機能セルがつぎのステップにおいて何をなすべきかをそれぞれ設定する。このような場合に容易に可能であるのは、組み立てたシーケンサ構造により、命令を送出することであり、この命令に基づいてセルエレメントフィールド領域のリコンフィギュレーションが行われる。これにより、この場合にこのコンフィギュレーションをトリガする機能セルは、同時にロードロジック(CT)としても動作する。注意すべきであるのは、別の複数のセルのコンフィギュレーションをここでもつぎのように実行できることである。すなわち、これらの別のセルにおいてシーケンサ的なデータ処理が行われ、またこれらのフィールドにおいてもプログラム処理中に別の複数のセルをコンフィギュレーションないしはリコンフィギュレーションできるように実行できることである。これにより、セルエレメント領域の繰り返しのコンフィギュレーションと、シーケンサおよび並列構造を有するプログラムの入れ子とが得られ、これらはロシアの木彫人形と同様に互いに入れ子にされる。またここでは例えば、入出力セルによって、個々の集積素子以外の別のセルエレメントフィールドにアクセスすることができ、これによって全体的な計算性能を極めて増大させることできることに注意されたい。例えば、セルエレメントフィールドに組み込みコンフィギュレーションされたシーケンサ構造のコード部分に複数のコンフィギュレーションが現れる際には、場合に応じて、各シーケンサ構造だけによって管理される、対応付けられた1つのセルエレメントフィールドにおいて上記の複数のコンフィギュレーションを要求するか、またはこれらの要求をコンフィギュレーションマスタユニットに送出して、すべてのセルエレメントフィールドが均一に占有されることを保証することができ、またはこの両者を行う。したがって所要のコンフィギュレーションをセルまたはロードロジックに渡すことによるサブプログラムコールのようなものが行われる。このことはそれ自体特許権による保護に値すると考えられる。また、セルは、それ自体が別のセルエレメントフィールド領域を管轄する場合、ハードウェアまたはソフトウェア的に実現されるFILMO構造およびこれに類似のものを有し、これによって通常のリコンフィギュレーションを保証できることにも注意されたい。命令を処理中にメモリセルに書き込みを行って、処理すべきコードないしは処理すべきプログラムを変更できることにも注意されたい。しかしながら殊に有利な変形実施形態では、このような自己書き換え(SM=Selbstmodifikation)は、機能セルを介する相応の制御によって抑止される。
ここではメモリセルが、このメモリセルを制御する機能セルの制御を受けて、機能セルへと続くバスに直接または間接的に、記憶した情報を送出することができる。この間接的な送出は、例えばつぎの場合に行うことができる。すなわち、2つのセルが隣接しており、制御によって要求される情報がバスセグメントを介して、ALU−PAEに到着するはずである場合に行うことができ、ここでこのバスセグメントは、メモリセルの出力側に直接接続できないバスセグメントである。このような場合、メモリセルは、例えばバックワードレジスタ(Backward-Register)を介してデータをこのバスシステムに送出することができる。したがって有利であるのは、メモリセルおよび/または機能セルの少なくとも1つがこのようなバックワードレジスタを有する場合であり、ここでこのレジスタは、メモリセルと機能セルとの間の情報路に配置することができる。これらのレジスタは、このような場合、必ずしも別の機能を有する必要はない。ここでこのようなことは、例えば、通例のマイクロプロセッサの慣用のLOAD命令に相応して、さらなる処理のためにメモリセルからデータを要求して、PAE内にロードする前にデータを変更し、これによって例えば命令LOAD++が実現される場合に容易に考えられるのであるが、このようなことは必要はないのである。
言い換えると、上記の構造内ではバスコネクションは必要に応じ、出願人のXPPテクノロジにおける通例のフォワードレジスタ(FREG)およびバックワードレジスタ(BREG)によって行われる。このことにより、水平のバスシステム間でデータを垂直に伝送でき、また複数のバスをマルチプレクスまたはデマルチプレクスすることができる。念のために注意しておきたいのは、FREGおよびBREGは(その名前の付け方とは異なり)必ずしもレジスタ段である必要はなく、単にオプションであり、場合によってコンフィギュラブルなレジスタを有することである。ここでは制御コネクション(CMD)は、各機能セル(PAE)のFREGおよび/またはBREGに導くことができ、これによって目下実行される命令に相応してバスデータ伝送が制御される。
メモリセルは有利には、このメモリセルを制御する機能セルから情報を受信するために配置されており、ここではさらに入出力セルおよび/またはこのメモリセルを制御しないセルを介して、情報を入力して記憶することも可能である。例えば、入出力セルからメモリセルにデータを書き込もうとする場合、この入出力セル(I/O−PAE)も機能セルによって制御されると有利である。この際には例えば、メモリセルに書き込むべきであるか、または場合によっては機能セル(PAE)にも直接伝送すべきである情報を読み出すアドレスを、ALU−PAEからI/O−PAEに通知することができる。この関連において指摘しておきたいのは、このアドレスが、アドレス変換テーブル(アドレストランスレーションテーブル)、アドレストランスレーションバッファまたはMMU的な構造を介して、I/O−PAEにおいて決定できることである。例えば、このような場合、通例のマイクロプロセッサの完全な機能が得られる。
これによれば、機能セル−メモリセルの組み合わせは、有利な変形実施形態において少なくとも1つの入出力手段と対応付けられており、この場合にこの入出力手段によって、外部のユニット、別の機能セル、機能セル−メモリセルの組み合わせおよび/またはメモリセルに情報を送信し、および/またはこれらから受信することができる。
ここでこの入出力ユニットは有利には、同時に機能セルからの制御命令を受信するように構成される。
上記の機能セル−メモリセルの組み合わせは、有利にはVPU素子の残りの機能セルおよび/またはメモリセルにデータ伝送することができ、ここでこれらのセルは、例えば、PAE(PA)からなるアレイにあるセルである。このために複数のバスシステムを介して、相応のセルにアクセスすることができる。このアクセスは有利には、この機能セル−メモリセルの組み合わせのPAEのフォワードおよび/またはバックワードレジスタを介し、"Port"制御コマンドを伝送することによって行われる。
有利な変形実施形態では制御コネクション(CMD)は、以下の制御コマンドのうちの少なくともいくつかまたは有利にはすべてを伝送するように構成される。すなわち、
オペコードフェッチ、
内部/外部データアクセス、
内部/外部アドレスポインタのポジショニング
内部/外部プログラムポインタのポジショニング
プログラムポインタのインクリメント
内部/外部スタックポインタのポジショニング
スタックアクセス(PUSH,POP)
例えば、これらの機能は、以下のCMD制御コマンドによって実現することができる。すなわち、
load_const: レジスタに定数をロードせよ
write_Rap : メモリアクセスに対してアドレスポインタを設定せよ(例えばヒープ)
read_Rap : メモリアクセスに対してアドレスポインタを読み込め(例えばヒープ)
read_Reg : メモリからレジスタを読め(RAM−PAEにレジスタが実装されている場合)
write_Reg : メモリのレジスタにデータを書き込め(RAM−PAEにレジスタが実装されている場合)
write&decr_Reg : スタックにデータワードを書き込み、スタックポインタをデクリメントせよ
read&incr_Reg : スタックからデータワードを読み込み、スタックポインタをインクリメントせよ
set_Rpp: プログラムポインタを設定せよ
set&push_Rpp: プログラムポインタをスタックに書き込み、プログラムポインタを新たに設定せよ
である。
これらの制御コマンドは、接続されたメモリセルおよび機能セル(PAE)を制御するために使用される。さらにこれらの制御コマンドは、複数のバスシステムにおけるデータ伝送を制御し、これは例えば、マルチプレクサ、スイッチ、伝送ゲートフォワードおよびバックワードレジスタ(FREG/BREG)における類似のものなどを制御することによって行われる。別の命令は、例えば、
read_Port: アレイのポート(例えばFREGによって実装される)からデータを読込む
write_Port: アレイのポート(例えばBREGによって実装される)にデータを書き込む
である。
これは、制御線路の相応のビット幅と、受信側の対応するデコードとによって行うことができる。都度必要な制御およびデコード手段は、問題なしにまたコスト的に有利に設けることができる。明らかなようにこれらの信号によって、この装置の実践的に完全なシーケンサ機能が得られる。これによって汎用プロセッサデータ処理ユニットが得られることを言及しておく。
この装置は通例、つぎのように選択される。すなわち、機能セルがただ1つのマスタとして、制御コネクションおよび/または制御コネクションとして使用されるバスセグメントないしはバスシステムをアクセスできるように選択されるのである。これによって、制御線がコマンド線路として作用する装置が得られるのであり、これは慣用のプロセッサで行われている通りである。
機能セルおよびメモリセルないしはI/Oセルは有利には隣接して配置される。ここで隣接しているとは有利には、セルが直接隣り合って配置されていると理解される。択一的にはこれらは少なくとも密に並び合って配置される。機能セルおよびメモリセルを互いに隣接して配置構成することにより、機能セルにおいて制御と、要求された情報のデータ入力との間にレイテンス時間(Latenzzeit)が発生しないか、または大きなレイテンス時間が発生しない。それは単にセル間の接続線が長すぎないからである。このことが「直接」であると理解される。レイテンス時間を考慮しなければならない場合、シーケンサ構造にパイプライニングも設けなければならない。これは、クロックが極めて高い装置では殊に重要である。ここで指摘しておきたいのは、適切なメモリセルに相応に高速にアクセスすることのできる、相応に高い周波数でクロック供給されるセルユニットを設けることは簡単にできることであり、このようなセルユニットは従来技術においてそれ自体公知である。このような場合にも、例えばそれ自体公知のアーキテクチャエレメントを機能セルに使用する場合にも、同時に機能セルエレメントのリコンフィギャラビリティと、所属の結線とを設けることができる。殊に有利な変形実施形態では、機能セルと、メモリセル、I/Oセルなどの情報供給セルとは多次元に配置され、例えばマトリクスの形態でないしは1次元のグリッドのグリッド点等々に配置される。この場合のように、規則的な構造が設けられる場合、通例、第1行の1つのセルに情報、すなわちオペランド、コンフィギュレーション、トリガ信号などが供給される。これに対してその下の行ではデータ、トリガ信号および別の情報が送出される。このような場合に有利であるのは、複数のセルが同一の行にある場合であり、この場合にはバックワードレジスタを介して、機能セルの所要の入力側に情報供給セルから情報を伝送することができる。パイプライニングに対してレジスタを利用可能であることにも言及しておく。
ここではさらにセルエレメントフィールド、算術的および/または論理的機能を実行する機能セルと、情報供給セル、例えば、情報を受け取るおよび/または送出するおよび/または情報を記憶するための入出力セルおよび/またはメモリセルとを有する、例えば多次元のセルエレメントフィールドを作動させる方法に対して特許権による保護が要求されており、ここでは少なくとも1つの機能セルにより、制御命令が少なくとも1つの情報供給セルに送出され、当該情報供給セルにおいて制御命令に応答して、情報が上記機能セルに対して供給される。またここで機能セルは、供給された情報に応答して別のデータ処理を実行して、シーケンサ的にデータを処理するように構成されている。
すなわち、リコンフィギュラブルなフィールドにおいて、シーケンサ構造のメモリセルに制御命令を送出することによって、シーケンサ的なデータ処理が可能になる。ここでは制御命令として機能セルから送出できる命令により、慣用のプロセッサにおいて公知であるシーケンサ的な動作が可能になる。ここで注意したいのは、上記の命令の一部だけしか実現していなくても、完全なシーケンサ的なデータ処理を容易に保証できることである。
本発明の請求項18ではデータ処理装置も提案され、ここでは機能および/または結線がコンフィギュラブルなセルエレメントの多次元フィールドと、当該セルエレメントに対応付けられるローカルなコンフィギュレーションを前もって保持するコンフィギュレーション事前保持手段(Konfigurationvorhaltemittel)とを有するデータ処理装置において、上記のコンフィギュレーション事前保持手段を構成して、事前保持されるコンフィギュレーションの少なくとも一部が不揮発的に前もって保持されている。
上記の変形実施形態を以下に再度、また図面を用いて例示的に説明する。ここで、
図1は、本発明のセルエレメントフィールドを示しており、
図2aは、その詳細を示しており、
図2b,cは、相異なるデータ処理時間中の図2aの詳細を示しており、
図3aは、図2の詳細の択一的な実施形態を示しており、
図3bは、この詳細の殊に有利な変形実施形態を示しており、
図4は、機能/メモリセル(PAE)の基本構造を示しており、
図5は、図3bの変形実施形態を示している。
図1(a/b)によると、一般的に0101で示される、データ処理のためのセルエレメントフィールド0101は、算術および/または論理機能を実行する機能セル0102と、情報を受け取り、格納および/または送出するためのメモリセル0103とを含む。ここで制御コネクション0104が機能セル0102からメモリセル0103に導かれている。
まず図1aの動作の仕方を説明する。図1bは機能セルおよびメモリセルの有利な形態および配置構成を示している。
セルエレメントフィールド0101は、エレメント0102,0103,0104の結線が自由にコンフィギュラブルであり、詳しくいうと、新たにコンフィギュレーションされるのではないセルエレメント部分の実行中の動作が妨害されることなくコンフィギュラブルである。ここでは、バスシステム105を所要のように接続することによってコネクションをコンフィギュレーションすることができる。さらに機能セル0102はその各機能がコンフィギュラブルである。機能セルとは算術論理ユニットのことであり、このユニットは、リコンフィギュレーションを可能にする所定の回路が拡張されており、これらは、例えばステートマシン、有利にはセルエレメントフィールドの外部に配置されたロードロジック0106と通信するためのインタフェース配線(Schnittstellenbeschaltung)などである。本願出願人の相応する先行出願を参照されたい。
セルエレメントフィールド0101のセルエレメント0102,0103は、2次元で行および列に配置されており、ここで1つずつのメモリセル0103が機能セル0102に直接並んで配置されており、行毎に3つのメモリセル−機能セルの対が設けられている。この対において機能およびメモリセルはそれぞれ制御コネクション0104を介して互いに接続されている。機能セル0102およびメモリセル0103は入力側を有しており、これらは各セルエレメントがある行の上のバスシステムに接続されており、そこからデータを受け取る。さらにセル0102,0103は出力側を有しており、これらは行の下のバスシステム0105にデータを送出する。さらに説明するように、これに加えて各メモリセル0103はバックワードレジスタ(BW)を有しており、このレジスタによって、行の下のバスからのデータを、各行の上のバスに通すことができる。
制御コネクション0104と、機能セル(図2のALU)ないしはメモリセル(図2のRAM)内の対応する回路とを除いて、図1のデータ処理のためのセルエレメントフィールドは、慣用のセルエレメントフィールドであり、このセルエレメントフィールドは、リコンフィギュラブルなデータ処理装置において、例えばVPUにおいて、出願人のXPPテクノロジに相応して、慣用かつ公知である。例えば、図1のセルエレメントフィールドは公知のように作動させることができ、すなわち、このセルエレメントフィールドは、Waveリコンフィギュレーション、デバッグ、トリガ信号伝送などのための相応の配線を有する。
本発明のセルエレメントフィールドの独自性は、制御コネクション0104と、対応する配線とにあり、これは図2a〜cに関連して以下に詳しく説明する。ここで述べておきたいのは、図1において制御コネクション0104がつねに、左にある機能セルエレメントから右にあるメモリセルに導かれており、しかもまさにこのような1メモリセルにだけ導かれているのに対して、明らかなように制御線に対してもコンフィギュラブルな結線を設けることができ、これにより、別の個所にあるメモリセルにアクセス(ansprechen)する、および/または場合によって1つ以上のメモリセルにアクセスすることができる。これは例えば、メモリセルから受け取り、格納および/または送出される情報に対して大きなメモリ需要がある場合である。しかしながら見やすくするために図1および2では、固定して設けられる個々の制御コネクションだけを引き合いに出しており、これにより、本発明の理解が極めて容易になっている。その他にこの制御コネクションは必要であれば、相応するプロトコルを前提として、慣用の線路によって置き換えることができる。
図2では、機能セル0102はALUとして、また機能セル0103はRAMとして示されている。セルが設けられている行の上にはバス0105aが延在しており、このバスにより、すでに述べたバックワードレジスタ0103aと、メモリセルの入力側0103bおよびALUの入力側0102bとが接続される。この行の下に延在するバスシステムは0105bと記されている。ここではバスシステム0105a,0105bのうち関連するセグメントだけが示されている。ここからわかるのは、バスシステム0105bが、ALU0102の出力側0102c,RAM0103の出力側0103cから択一的にデータを受け取り、またデータをバックワードレジスタの入力側0103a1に導くことである。
ALU0102は、同時に別の入力側0102a1および出力側0102a2を有しており、これらは別のバスセグメントに接続することができ、またこれを介してこのALUは、オペランドのようなデータを受け取り、ないしは結果を送出する。
制御コネクション0104は、ALUの拡張された回路に持続的に制御されており、またここでは多くのビットを伝送できるコネクションを表している。ここで制御コネクション0104の幅はつぎのように選択される。すなわち、少なくとも前に書き込んだ制御命令をメモリセルおよびフォワード/バックワードレジスタ(FREG/BREG)に伝送できるように選択されるのである。メモリセル0103は同時に有利には3つのメモリ領域を有しており、すなわち、いわゆるスタック領域、ヒープ領域およびプログラム領域を有している。ここで各領域には専用のポインタが対応付けられており、このポインタを介して決定されるのは、スタック、ヒープおよびプログラム領域のどの領域を都度読み込みまたは書き込みアクセスするかである。
バス0105aは、時分割多重化されてユニット0102および0103によって共通に使用される。このことは図2b,2cに示されている。図2bにはつぎのような状況が示されている。すなわち、ALU−PAEの出力側0102a2から、データがバックワードレジスタを介してRAMセルの入力側に送信できる状況が示されている。これに対して、利用されないが同時に存在するRAMの出力側0103cとバス0105bとの間の接続およびバックワードレジスタBWの出力側とALU−PAEの入力側0102bとの間の接続は図2bの時点では重要でないため、破線で示されている。その一方、図2cではつぎのような時点が示されている。すなわち、この時点においてメモリセル0103は、制御線0104を介して決定されるメモリ領域、スタック(0203)、ヒープ(0202)、プログラム(0201)から、その出力側0103cを介して、バックワードレジスタを経由してALU−PAE0102の入力側2bに情報を供給する。この間にはALU−PAE0102cの出力側はインアクティブであり、またRAM−PAEの入力側0103bにおいて信号は受信されない。このため、相応するコネクションは破線で示されており、これによってインアクティブとして示されている。
RAMセル0103内には回路0103dが設けられており、ここで制御線0104ないしは制御線バスセグメント0104を介して受け取った情報がデコードされる。
本発明のこの変形実施形態はつぎのように使用される。すなわち、
まずALU0102は、従来技術からすでに公知のように、中央のロードロジックからコンフィギュレーション情報を受け取る。この情報伝送は、それ自体公知のようにRDY/ACKプロトコルおよび類似のものを使用して行うことができる。ロードロジックにおいてFILMOメモリなどを設けて、装置の通常のコンフィギュレーションを可能にすることができることにも注意されたい。
ALU0102をコンフィギュレーションするためのデータと共に、同時に一連のデータがロードロジックから伝送される。ここでこの一連のデータはシーケンサ的に処理すべきプログラムである。このプログラムは、すでにアプリケーションの実行ないしは計算のために実行すべきプログラムであるか、またはブートストラップ(Boot)であり、このブートストラップにより、最初に、実行すべきアプリケーションプログラムが外部ユニット(メモリ、周辺装置)からロードされる。ALUに対応付けられるメモリの一部が不揮発(例えば,ROM,EPROM,EEPROM,フラッシュROM)に構成されており、ブートストラップまたはアプリケーションプログラムがそこに固定して記憶されている場合には、上記のロードを省略することができる。これが殊に有利であり得るのは、アプリケーションがあらかじめ既知であり、変更不可に構成できる場合である。それはこの場合に固定的に実現することにより、格段にコストを低減し得るからである。したがってALUは、そのコンフィギュレーション中に線路0104に、相応する命令を送出し、この命令により、プログラムポインタが書き込みのためにRAM内の所定の値に設定される。その後、ロードロジックからALUにおいて受け取ったデータが、出力側0102cを経て、バス0105b1およびバックワードレジスタ0103aを介して供給され、そこからRAM−PAE0103の入力側0103bに到達する。つぎにユニット0103dにより、制御線0104の制御命令に相応して、指示されたプログラムメモリ位置にデータが書き込まれる。これは、コンフィギュレーション時にロードロジックにから受け取られるすべてのプログラム部分がメモリセル0103に格納されるまで繰り返される。ALUのコンフィギュレーションが終了すると、このALUは、相応する命令を制御線0104に送出することによって、このALUがシーケンサ的に処理すべきつぎのプログラム部分を要求し、出力側0103c、バス0105b、RAM−PAE0103のバックワードレジスタおよびバス0105aを介し入力側においてこれを受け取る。この際にプログラム処理中につぎのような状況が発生することがある。すなわち、プログラムメモリ領域内でジャンプが必要である、RAM−PAEからデータをALU−PAEにロードする、データをスタックに格納しなければならないなどの状況が発生することがある。これに関連するALU−PAEとRAM−PAEとの間の通信は、制御線0104を介して行われるため、ALU−PAEは各時点にデコードを行うことができる。さらに、慣用のマイクロプロセッサと同様に、スタックまたは別のRAMメモリ領域からデータを受け取ることもでき、またはさらにオペランド以外のデータをALU−PAEにおいて受け取ることができる。
ここではRAM−PAEにおいてロードロジックによって事前コンフィギュレーションされたプログラムシーケンスの処理が行われる。この際にALU−PAEでは、それ自体必要であるように、同時に命令デコードが行われる。これは、ロードロジックから得られる命令のデコードにすでに使用されるのとそれ自体同じ回路によって行われる。
ALUを介して各時点に制御線0104が制御されるため、RAMセルはつねに、ALUによって設定されるメモリアクセスの種類を精確に遵守する。これによって保証されるのは、バスエレメント0105a,bの時分割多重利用とは無関係に、シーケンサ構造に設けられているエレメントにつねにつぎがあらかじめ与えられることである。すなわち、取り出すべきおよび/または書き込むべきデータまたはコードに対するアドレスがバスにあるか否か、またはデータを書き込むべきか否かおよび場合によってはどこに書き込むべきか等が上記のエレメントにつねにあらかじめ与えられるのである。
図2に関連して示した配置構成は、種々異なる方式に拡張または変更することができる。殊に関連するのは、図3aおよび3bに示した変形実施形態である。
図3aでは、上側および下側のバスを接続するためにRAM−PAEにバックワードレジスタだけが設けられているのではなく、このRAM−PAEにはフォワードレジスタも設けられており、またALU−PAEにフォワードレジスタおよびバックワードレジスタが設けられている。複数の矢印によって示したようにこれらは、外部のホスト、ハードディスクのような外部周辺装置、メインメモリなどのような別のユニットから、および/または別のシーケンサ構造、PAE、RAM−PAEなどからデータを受け取り、またこれらに送出するために使用可能である。ALU−PAEおよびRAM−PAEによって構成されるシーケンサ構造から、新たなプログラム部分に対する相応の要求命令が送出される場合、可能であるのは、RAM−PAEに記憶可能なものよりもはるかに大きなプログラムブロックをこのシーケンサ構造において処理することである。このことは、殊に複雑なデータ処理作業、複数の広い領域にわたるジャンプ、例えばサブプログラムなどにおいて極めて有利である。
さらに有利な変形実施形態は図3bに示されている。ここではALU−PAEはRAM−PAEだけと通信するのではなく、同時に入力/出力−PAEとも通信する。ここでこれは、外部のコンポーネント、例えば、ハードディスク、別のXPP−VPU、異種のプロセッサおよびコプロセッサ等との通信に対するインタフェース配線を設けるために構成されている。ここでもALU−PAEは、「CMD」と称される制御コネクションに対するマスタとして動作するユニットであり、ここでもバスは多重化されて使用される。ここでもバックワードレジスタを介して、行の下のバスから行の上のバスにデータを伝送することができる。
図3bに示した配置構成によって可能になるのは、メモリセルRAE−PAEに記憶できない情報への外部アクセスを殊に簡単に構成することであり、またこれによってシーケンサ構造を既存の慣用のCPUテクノロジに適合させることができ、また入力−出力セル、アドレス変換手段、メモリ管理ユニット(MMU機能)およびそれに類似するものにおいてという点でその動作方式をさらに強力に実現できることである。RAM−PAEは、ここでは例えば、キャッシュとして、殊にプリロード(vorgeladen)されるキャッシュとして使用可能である。
ここで指摘しておきたいのは、複数のシーケンサ構造を同時に同一のフィールドにコンフィギュレーションして組み込むことができ、これによって機能セル、メモリセルおよび場合によって入出力セルを選択的にシーケンサ構造に対して、および/またはXPPテクノロジに対して慣用の方法でコンフィギュレーションすることができ、またALUが別のALUにつぎのようなデータを送出することが簡単に可能になる。すなわち、ここではこれらデータによって、この別のALUは、シーケンサ的にコンフィギュレーションされ、および/または所定のコンフィギュレーションが処理されるセルエレメントフィールドの一部になる。この場合、これによって場合によってはロードロジックも不要になる。
図4にはPAEの基本構造が再度詳しく示されている。通例1つまたは複数のALUおよび/またはメモリおよび/またはFPGAエレメントからなるPAEのコアは、バスシステム0105aからデータを受け取り、データ処理の結果をバスシステム0105bに伝送する。このコアの他にはフォワードレジスタ(FREG,0402)およびバックワードレジスタ(BREG,0403)が配置されており、これらは0105aから0105b(FREG)にないしは0105bから0105a(BREG)にデータを伝送する。BREGおよびFREGも同様に1つまたは複数のALUおよび/またはメモリおよび/またはFPGAエレメントを含むことができる。しかしながら有利にはこれらの機能範囲はコア(0401)に比べて制限されている。
バスシステム0105aおよび0105bは有利にはそれぞれ、データを伝送するバスシステム(DATA)と、トリガ、すなわちステータス信号を伝送するバスシステム(TRIGGER)とに分けられる。
PAEのコンフィギュレーションは、上位のコンフィギュレーションユニット(例えば、CT)によって行われ、このユニットはコンフィギュレーションバス(0404)を介してコンフィギュレーションワードをPAEに伝送する。これらのワードはコンフィギュレーションレジスタ(0405)に記憶される。オプションではPACT17にしたがいまた、以下に説明するようにコンフィギュレーションバス(0404)とコンフィギュレーションレジスタ(0405)との間にコンフィギュレーションスタック(0406)を挿入接続することができる。
このコンフィギュレーションスタックは、データおよび/または有利にはトリガをバスシステム0105(a/b)から受け取り、またこれに送出することができる。
このPAEは、専用のバスシステム(IOチャネル,0407)への端子をオプションで有することができる。このバスシステムを制御するため、コア(0401)に付加的なバス制御ユニット(0408)が接続される。このIOチャネルを介してPAEは、直接、グローバルな、場合によっては外部メモリおよび/または周辺装置および/または別のPAEとデータを伝送することができる。
有利な実施形態では、0404を介してデータ処理に対する定数を設定することも可能である。別の実施形態では、コンフィギュレーションユニット(例えば、CT)は、ワークレジスタからデータを読み出すことができる。
図4は、相応するRAM−PAEを表すことも可能である。この場合、0404を介してCTにより、RAMの機能および結線を設定することができる。この機能には例えば、以下の機能またはそれらを組み合わせたものが含まれる。すなわち、
1. ランダムアクセス
2. FIFO
3. スタック
4. キャッシュ
5. MMUに対するページメモリ
が含まれる。
さらに、有利な実施形態ではメモリにCTのデータをプリロードすることができる(例えば、定数、ルックアップテーブルなど)。同様にCTは、拡張した実施形態において、メモリから0404を介して、データ(例えば、デバッグのためのデータまたはタスク切換のためのデータ)を読み出して戻すことができる。
有利な実施形態では、RAM−PAEは、バスシステム0105への複数の端子を有することができ(デュアルポートまたはマルチポート)、これによって複数のデータ転送を同時に行うことができる。
別の実施形態ではRAM−PAEは、外部バスに対する専用の端子を有することができる。
複数のRAM−PAEは一緒に接続して、複数の(n個の)RAM−PAEから、n倍のサイズを有するメモリを得ることができる。
図5には図3bのシーケンサの変形実施形態が示されている。このALU−PAEは、最小のレジスタセットRa,Rb,Rxを有しており、このレジスタセットは、この例においてオペランドおよび結果をバッファリングするためだけに使用される。実際のレジスタセットは、RAM−PAE(R0…Rn)に設けられる。同様にRAM−PAE内にレジスタ
Rpp: プログラムポインタ
Rap: データアクセスに対するアドレスポインタ(例えば、ヒープ)
Rsp: スタックアクセスに対するスタックポインタ
Rfp: サブプログラムコールの際にスタックポインタを保証するためのフレームポインタ
が設けられている。
CMDバスは、ALU−PAEによって制御され、また関与するすべてのPAEと、FREGおよびBREGとにシーケンサのフロー情報を伝送して、バスシステム(0105a,0105b)におけるデータ伝送を制御する。
RAM−PAEは、この実施例において専用のIOチャネル(0501)を有しており、このチャネルを介してこのRAM−PAEは場合によってはそれ自体で(例えば、DMAコントローラを介して)周辺のユニットから、またはこれらのユニット(例えばIO、メモリ)にデータを伝送することもできる。ここで再度、注意したいのは、このALU−PAEもこのような専用の端子を有することができるか、または別の変形実施形態においてRAM−PAEの代わりにALU−PAEがこのような端子を有することができる。
オプションでは1つまたは複数のデータ交換装置が、PAの残りのセル(例えば、機能および/またはメモリセル)によって実現される。入力ポート(0502)を介してPAからデータを読み出すことができ、出力ポート(0503)を介してデータを交換することができる。これらのポートは、例えば、CMD制御コマンドread_portおよびwrite_portによって制御され、バスシステムを相応に切り換える。これらの制御コマンドによってセレクタが伝送され、ここでこのセレクタは、この制御コマンドがどのポートをアクセスするかを示す。
上に示したようにRAM−PAE内にレジスタを配置することはふつうではないが、これによって大きな2つの利点が得られる。
a)メモリセルをレジスタに使用できる。
b)ポインタは、RAM−PAEに直接設けられており、これによってメモリへのデータアクセスは殊に高速である。さらにすべてのメモリアクセスに対してバスシステム0105の1つのバスだけしか必要でなく、ここでは通常は付加的に必要なアドレスバスが省略されるのである。それはアドレスがRAM−PAEにおいてローカルにポインタにより与えられるからである。したがってこの配置構成は、出願人により好まれて通例、実装されるのである。
すべてのデータ転送に対してレジスタの状態に注意すべきである。できる限りに単純な命令だけをシーケンサに実装するため、レジスタ操作のための専用の命令を設ける。すなわち、
moveta Rrr: レジスタRrr(rr∈{1…n,sp,pp,fp,ap})をRaにロードせよ
movetb Rrr: レジスタRrrをRbにロードせよ
movefx Rrr: レジスタRxをRrrに書き込め
を設ける。
ALUのデータフロー特性を維持するため、有利には特別な専用のオペコード(OpCode)を実装する。すなわち、
feed: データを変更せずにRa/RbからRxに伝送せよ
を実装する。
以下の例により、シーケンサの動作を説明する。
レジスタR1をレジスタR2に加えて、結果をレジスタR2に書き込め。すなわち、
moveta R1; movetb R2; add; movefx R2;
レジスタR4をレジスタR7に書き込む。すなわち、
moveta R4; feed; movefx R7;
R5をスタックに伝送する。すなわち、
moveta R5; feed; push;
注釈:pushは、Rspがポイントするメモリ位置にレジスタRxのデータを伝送してRspをデクリメント(ないしはインクリメント)する。
間接アドレスR4をR7に加えてアドレスポインタRapに設定せよ。すなわち、
moveta R4; movetb R7; add; movefx Rap;
メモリ位置RapからR1にデータをロードせよ。すなわち、
load; feed; movefx R1;
注釈:loadは、Rapがポイントするメモリ位置からRaにデータを伝送する。
データレジスタは有利にはRAM−PAEのメモリ内に、例えば(n=7に対して)0x0〜0x7に配置される。レジスタは、例えば、相応するCMD制御コマンド(例えばead_reg,write_reg)が現れた際にレジスタ番号が一緒に伝送され、これがアドレスとしてメモリに伝送されかつ上位のアドレスビットに0が充填されることよってアクセスされる。
この場合にコードに対するスタートアドレスは、例えば、0x8(すなわち0x(n+1))になり、プログラムポインタRppはリセットの後、ここをポイントすることによなる。アドレスポインタは有利にはメモリに格納されず、専用に実装されたレジスタに収容されて、メモリのアドレス線に高速かつ簡単な切り換えが可能になる。
図5bにはALU−PAE内にレジスタセットを有する変形アーキテクチャが示されている。ここでは手間のかかるレジスタ転送操作が省略され、これによってこの変形形態はデータ処理が極めて高速でもある。しかしながらハードウェアコストは高くなる。それはレジスタセットを付加的に実装しなければならないからであり、またすべてのメモリアクセスに対してALU−PAEからRAE−PAEにアドレスを伝送しなければならない。
RAMoverPAE
以下に説明する、ALU−PAE(以下ではROP−PAEと称する)の特別な実施形態は、つぎのようなVPUに有利である。すなわち、そのアプリケーションが、極めて乱雑な順序で小さなデータ量にアクセスする不規則なシーケンシャルコードを有するVPUに有利である。
このような課題を実現するため、ALU−PAEにメモリが組み込まれており(IRAM=Integrated RAM)、ALUはこれに直接、書き込み/読み出しアクセスを行う。このALUは、相応にアドレス管理回路が拡張される。したがって殊にPAEを上記の構造(IPAE)にしたがって使用することができる。ここでは別個のRRAMが、場合によっては省略され、また組み込まれたIRAMによって置き換えられるか、またはRRAMがこの内部のIRAMに付加的に、いわばメモリ拡張として設けられる。
殊に有利な実施形態では、有利にも限定されているが有利にも完全な命令セットを有する(ARCマイクロプロセッサを参照されたい)マイクロコントローラないしはシーケンサがROP−PAEに組み込まれており、このマイクロコントローラないしはシーケンサにより、シーケンシャルなコードの処理が可能になる。別の変形実施形態では、シーケンサの機能およびフロー挙動もコンフィギュラブルに構成することできる(例えば、従来技術から公知のように構成することができる。例えば、AlteraのEPS448[ALTETA Data Book 1993]による)。シーケンサ/マイクロコントローラは、ROP−PAEの状態(例えば、ステータス信号、イベント)および/または(例えばバスシステム介して)ROP−PAEに接続されている別のPAEの状態(例えば、トリガにも)にも応動することができる。
このシーケンサ/マイクロコントローラは、そのプログラム命令をIRAMから読み出す。アレイ(PA)のバスシステムへのアクセスはふつうのPAEと同じである。ステータス信号の転送、受け取り、生成も同様である(PACT08によるトリガ)。データおよびトリガ入力側に対して、またデータおよびトリガ出力側に対して複数のバス接続を設けることができる。
ROP−PAEは、このバスからオペランドを読み出すことができ、場合によって複数のサイクルで処理して、結果を再びバスに書き込むことができる。
有利な実施形態においてROP−PAEにはレジスタセットが組み込まれる。このレジスタセットは、有利な実施形態において、トランスピュータのレジスタセットと類似にスタックとして編成することができる。これによってレジスタセットを殊に小さくかつハードウェア技術的に効率的に実現することができる(通例、3つのレジスタA,BおよびCで十分である)。さらにトランスピュータ技術から公知であるのは、コンパイラが、ハードウェア技術的に見てコスト的に有利なこのようなレジスタセットと効率的に動作できることである。同様にこのレジスタセットを、オプションでRRAMに配置することができる。
有利な実施形態では、ROP−PAEは、外部のRAMおよび/または外部のIOに対して直接の端子(EXTBUS)を有する。アプリケーションに依存して複数のEXTBUSを設けることが可能である。この際に殊に有利な実施形態では、例えばDE 196 54 595.1-53またはDE 102 06 653.1から公知の、インタフェースコンポーネント(IOAG)へのPAEバスシステムのコネクション、場合によって専用のコネクションを介して、このEXTBUSを実現することできる。ここでメモリ(RAM)および/または周辺装置(IO)の制御は、上記のインタフェースコンポーネントによって行われる。
有利な実施形態では、ROP−PAEは、またこの際に有利にもIRAMは、それ自体で直接、外部のRAMおよび/または外部のIOおよび/または別の内部のメモリ(RR
AM/IRAM)に対するアドレスを生成して、外部または内部におけるデータ転送をそれ自体で制御することができる。この機能は、RRAMに組み込まれる独立したアドレス発生器によって実現可能である。例えば、DMAコントローラはこの作業に殊に有利であり、ここでこれはこのコントローラにより、データがメモリ間でコピーされることによって行われる。読み込むべきデータのアドレス空間および宛先アドレス空間は、相応に設定されてコピー過程が開始される。この設定はIPAEによって行うことができる。ハードウェア的によりコストをかけられる解決手段では、この機能を、実装されたメモリ管理ユニット(MMU=MemoryManagementUnit)によって実現することができる。機能の仕方は、従来技術によって決まっており、また公知である。まとめるとMMUはつぎのように動作する。すなわち、
MMUによって管理されるRRAMメモリは、複数のページ(page)に分割される。各ページは、外部のメモリ内の仮想メモリ空間のデータを含んでいる。例えば、16進数のRRAMアドレス0x0a00…0x0affは、外部記憶装置のアドレス0xbd13200…0xbd132ffにおけるデータを含むことができる。アドレス変換を管理するため、アドレス変換ユニットを使用し、ここでこれは通例、ルックアップテーブルによって実現される。MMUの役割は、殊に大きな1つのメモリ空間を、はるかに小さな1メモリ空間(この場合にはRRAMである)に変換することである。これは、ページを必要に応じて、大きなメモリ空間を小さな空間にコピーすることによって行われる。ページが不要になると直ちにこのページは消去および/または上書きすることができる。ページのデータが変更された場合、このページは有利には消去/上書きの前に大きなメモリ空間に書き戻される。
アドレス変換ユニットは、物理アドレスの上位部分(すなわちページのアドレス)が、ルックアップテーブルに格納されるように動作し、また小さなメモリ(RRAM)内のページが利用可能になると直ちに、このRRAMのこのページの相応するデータをポイントする。これによってこのページにアクセスすることができる。RRAMにページがない場合、参照(Referenz)も書き込まれない。この場合、ページをまず大きな(外部の)メモリ空間からこのRRAMにコピーしなければならない。このためには有利には目下使用していない別のページを、上記のフローのように上書きすることができる。
この際にコピーは自動に行うことができ、すなわち、シーケンサが実質的に関与することなく行うことができ、MMUによってDMAコントローラが制御されることにより行われる。このコントローラには、RRAMおよび外部のRAMにおける相応のページアドレスならびにページサイズがMMUによって供給される(例えばレジスタに書き込まれる)。
ROP−PAEは、コンフィギュレーションユニットへの端子を有しており、このコンフィギュレーションユニットにより、通例の方法に相応してこのROP−PAEがコンフィギュレーションおよびリコンフィギュレーションされる。有利な実施形態では、CTはIRAMに読み出しおよび/または書き込みアクセスすることができ、これによってIRAMにおける、シーケンサに対するデータおよび/またはコードが管理される。
殊に有利な実施形態ではROP−PAEは、PAバスシステムおよび/またはEXTBUSを介して外部のRAMから、シーケンサに対するコードをそれ自体でロードすることができる。
有利な実施形態ではIRAMは、別のアドレス領域にある複数のセグメントに分割される。これらのセグメントは、例えば、以下の複数の機能のいくつかに対して分割することができる:
シーケンサメモリ、スタック(例えば、レジスタセットに対する)、データメモリ、ヒープ、IOバッファ、外部RAMに対するバッファないしはキャッシュ、ルックアップテーブル、PAEおよび/またはバスに対するコンフィギュレーション、ROP−PAEのレジスタセット。
これに加えて機能に応じて、以下の制御メカニズムを設けることができる。すなわち、
シーケンサ/コードメモリ:相応するメモリ位置に対するポインタ(Rpp)、
スタック:スタックの最上位メモリ位置へのスタックポインタ(Rsp)、場合によっては従来技術(例えばIntelのPentium)から公知のようにフレームポインタ(Rfp)も、
PAEおよび/またはバスに対するコンフィギュレーション:CT内のポインタがこれをポイントすることができる、および/または実装に依存してPAEのコンフィギュレーション制御部内のポインタがこれをポイントすることができる、
IPAEのレジスタセット:PAEのレジスタセットをメモリに収容する場合、これは、PAEにより、直接、有利にはハードウェア技術的に固定的にあらかじめ設定されてアドレッシングされる。
データメモリ、バッファ、テーブルなどの残りのメモリ領域は、通例、コンパイラまたはプログラマによって作成される。これらの領域のアドレッシングは、実行すべきプログラムおよび/またはオペレーティングシステムによって行われ、またこのプログラムおよび/またはオペレーティングシステム内で、場合によってはシーケンサのALUおよびレジスタセットを利用して計算される。
考えられ得る変形実施形態では、IPAEにおいて説明したように、IRAMは完全にまたは部分的に、ROP−PAEの外部でRAM−PAEによって実現される。場合によっては、異なるセグメントに対して別個のRAM−PAEを使用することができる。
有利な実施形態では、いくつかまたはすべてのセグメントをアクティブなメモリとして構成することができる。すなわちこれらのセグメントは、DMAおよび/またはMMUを有し、これによってそれ自体でそのメモリに別のメモリからデータをコピーし、またはそのメモリから別のメモリにデータをコピーすることができる。例えば、これは、DE 199 26 538.0に記載されたメモリの機能、例えば、FIFO、スタック、ランダムアクセス、キャッシュなどのを有することができ、この際に機能はセグメント毎にコンフィギュラブルであり、および/またはシーケンサによってプログラム可能である。
1実施形態では、IRAMをマルチポートメモリとして実施することができる。このマルチポートメモリは、複数のメモリアクセスユニットによるメモリ内容への場合によっては同時に行われる書き込みおよび/または読み出しアクセスを可能にする。
メモリアクセスユニットは、例えば、外部および/または内部の周辺装置、プロセッサ、別のPAEとすることができる。
殊に有利な実施形態では、ROP−PAEは、ローカルなコンフィギュレーションユニットとしてまた場合によっては同様にグローバルなコンフィギュレーションユニットとして、周囲のPAEに対するCTに類似して動作することができるか、または殊にこの機能も満たすことができる。ROP−PAEは、ローカルコンフィギュレーションユニットとして使用される際、有利にはDE 196 54 846.2-53から公知の方法にしたがって動作する。このROP−PAEをグローバルコンフィギュレーションユニットとして使用するか、または極めて多くのローカルなPAEをコンフィギュレーションする場合、有利にはDE 196 54 593.5-53による方法を使用し、ここでこの方法は、FILMO機能を有するため、極めて多くかつ互いに依存しないコンフィギュレーションも管理することができる。ROP−PAEは、シーケンサ/マイクロコントローラによって制御されて、IRAMのコンフィギュレーションをアドレッシングして、PAEおよび/またはそれ自体においてこれをコンフィギュレーションし、および/またはシーケンサ/マイクロコントローラのフローを決定する。ここで有利には、公知のインターCTプロトコル(DE 198 07 872.2,DE 100 28 397.7,DE 199 26 538.0)に類似して上位のコンフィギュレーションユニット(例えばCTまたは別のPAE)との同期化が行われる。ROP−PAEは、複数のEXTRAMインタフェースの1つを介してコンフィギュレーションをそれ自体でロードし、および/またはCTインタフェースを介して上位のコンフィギュレーションユニットにコンフィギュレーションを要求することができる。機能の仕方は、DE 196 54 846.2-53のリコンフィギュレーションユニットと類似にすることができる。
まとめるとROP−PAEの基本的な動作の仕方は、そのバス接続および/またはデータ転送および/またはプログラムフローがVPUシステムに相応するマイクロコントローラに類似している。言い換えるとこれは、そのバスシステムがVPUアーキテクチャの原理に基づくマルチプロセッサ装置なのである。個々のプロセッサは、有利には上位の制御ユニット(CT)によって管理される。データ伝送は、バスシステムのRDY/ACKプロトコルを介してそれ自体で同期する。殊に重要な様相であると考えられるのは共通のプロセッサ状態であり、これは、トリガバスシステムを介して表され、プロセッサの集合の状態を表す。ここでこの状態は、複数のプロセッサの場合にフロー制御のために交換しなければならない状態である。これについてはDE 197 04 728.9,DE 101 39 170.6およびDE 101 29 237.6-53を参照されたい。
同様にROP−PAEに対しても特許権保護が要求される。ここでこれは、PAEからなるアレイの内部バスシステムに接続される端子に加えて、広域のバスシステムに接続される専用の端子(IOチャネル)を有する。ここでこのバスシステムは、殊にアレイ内部の長い区間にわたってデータを伝送し、および/または例えば周辺装置に直接、接続される。ここで周辺装置とのこの接続は直接行うことができ、これは、例えば、バスシステムがすでに周辺装置のプロトコルに適合しているか、またはプロトコルを変換する相応するプロトコル変換器を介して行われる。この際にこの専用のバスシステムはすでに業界標準、例えばPCI,RapidIO,Firewire,USB,Ethernet,RAMBUS,DDR-RAM等に適合させて、簡単かつコストをかけずに周辺装置との接続を可能にすることができる。
場合によっては、挿入接続されたIOAG(DE 196 54 595.1-53を参照されたい)においてプロトコル変換を実行して、内部的かつ簡単なまた場合によっては独自のバスプロトコルを、1つまたは複数の複雑な外部の標準プロトコルに変換することもできる。
すでに挙げたバスプロトコルから明らかなように、周辺装置とはメモリのこともいうことに注意されたい。
同様に本発明において殊に重要であるのは、PAEが専用のバスシステムへの複数の端子を有し得ることである。
さらに適用に依存してつぎのようなアーキテクチャも有利である。すなわち、PAEの1部分集合だけが専用のバスシステムへの端子を有するか、または相異なるPAEが、場合によっては同様に相異なる専用のバスシステム対して、相異なる個数の端子を有することも有利である。
上記の構造は、拡張かつ改善された半導体作製方法および半導体構造により、殊に効率的に実現可能であり、ここでこれは物理的なチップにおいて、PAEの論理的な機能(ALU、制御部、バスなど)の空間的な上および下にメモリを配置することによって行われる。これに対しても特許権が要求される。
このためには、従来技術から公知の第1の半導体構造(例えばシリコン)およびこれによって形成されたトランジスタ構造に、半導体構造(トランジスタ構造)の1つまたは複数の別のレイヤをデポジットする。ここでこれらのレイヤは付加的な機能に利用することができる。例えば、第1のレイヤはPAE機能のロジックおよびゲートを、また別の付加的なレイヤにはメモリ機能を実装することができる。
有利な構成の仕方では、個々の半導体層を絶縁層によって互いに分離する。この絶縁層は、貫通コンタクト部(ヴィア Via)を有し、個々の半導体層間で信号を伝送することができる。
配線構造は、適用に応じて様々に実現することができる。例えば、各半導体層に直接、配線レイヤおよび/またはすべての半導体層に対応付けられるグローバルな配線レイヤを設けることができる。
経済的な歩留まりを得るために保証しなければならないのは、回路全体、すなわちすべての半導体構造レイヤをまとめて十分に高い歩留まりを達成することである。さらに、注意しなければならないのは、すべての半導体構造レイヤを合計した電流消費、すなわち損失電力が、過熱とこれに結び付く回路の故障とを生じさせない許容範囲内にあることである。個々の半導体レイヤの複数の機能ユニットを有利にまとめることにより、相応する要求に適合することが可能である。
例えば、提案したアーキテクチャに対して、上記の要求に有利な論理半導体構造のレイヤと、メモリ半導体構造の別のレイヤとが設けられる。不規則かつ冗長性の少ない論理半導体構造が損失出力の多く比較的高い故障率を有するのに対して、メモリ半導体構造は比較的冗長であり故障率が低く、また有利な記憶方式(例えば、DRAM)により、わずかな損失出力で実現できる。明に指摘しておきたいのは、すべてのメモリスペースおよび/またはすべての論理半導体構造が完全に機能しないフィールドを設けることができることであり、必要であるのは、最小限の要求を保証することおよび/または規則にかなった管理だけである。冗長性は有利には2つの構造に対して別個であると考えられる。
いくつもが重なりあった半導体構造のデポジットは、様々な方法によって行うことができる。例えば、蒸着および/または結晶化によって行うことができる、絶縁層に別の半導体層をデポジットするすでに説明した方法の他に、熱的または機械的な接合が可能であり、ここでこれは例えば、デポジットすべきシリコン構造をはんだ付けするか、接着することよって行われる。はんだ付けのためには例えば、半導体チップとケーシングとを接合するテクノロジから公知の方法も有利である。ここではこれは例えばリフローはんだ付けまたは熱圧着である。原理的には簡単な機械的な接合方法も可能であり、この際には続いて配線を、例えばワイヤボンディングによって行うことができる。これに対する前提は、複数のシリコン構造が異なるサイズを有し、このためにワイヤを1つのシリコン構造表面からつぎのシリコン構造表面に配線することができ、また接続の数が比較的少なく、このためにこの接続をワイヤボンディングによってなお実現し得ることである。
歩留まりを最適化するために例えば冗長方式をDE 197 57 200.6-33にしたがって適用することができる。ここで触れておきたいのは、DE 197 57 200.6-33に記載されたこの方法は、すべてのPAEに対して実施できることである。すなわち例えば、ALU−PAEに対しても、またRAM−PAEに対しても同様に実施できるのである。言い換えると、すべてのPAEに対してDE 197 57 200.6-33に記載した冗長方式を適用できるのである。そこに記載されたテキスト方式も実現可能である。
主に粒度の細かい構造を有するPAEに対して、すなわち例えばメモリ(RAM−PAE)またはFPGAに対して有利であるのは、この粒度の細かい構造に相応に粒度の細かい冗長性を持たせることである。すなわちRAM−PAEまたはFPGA構造を有するPAEに冗長なPAEを設けるのではなく、またはこれらだけに冗長なPAEを設けるのではなく、粒度の細かい構造それ自体に冗長性を持たせるのである。つまり、例えば、メモリセル(ないしはFPGAセル)に冗長なメモリセル(ないしはFPGAセル)を対応付けるのである。この場合に各セル間の接続(線路、バスなど)は、冗長な構造の要求に相応に適合される。粒度の細かいセル、例えばメモリまたはFPGAに対する冗長な構造の構成は、従来技術からすでに公知である。構成の詳細を理解するためにはこれらの従来技術を参照されたい。
損失電力は、DE 196 51 075.9-53およびDE 101 35 210.7-53に記載された方法により格段に小さくことができ、これによって極めて高い集積密度が可能になる。
ここで指摘しておきたいのは、重なり合う半導体構造の数が2つに限定されることはまったくないことである。進歩し続ける技術的な発展と最適化により、重なり合うレイヤの数を増やすことができ、極めて大きなレイヤの数も実現可能である。
この際にレイヤの分割は、2層の構造においても、多層の構造においても1つのALU−メモリ分割に制限されない。2層の構造においてすでに有利であり得るのは、メモリをALUと一緒に1つの層に配置し、別の層を完全にバスシステムに使用するか、またはバスシステムとIО制御部(IОAG)に使用することである。この際にこれらのバスシステムは、簡単な配線の域を越えて有利には、実現のためにそれぞれ半導体構造を必要とする回路素子(マルチプレクサ、伝送ゲートなど)および/または増幅素子(ドライバなど)および/または同期化素子(RDY/ACK制御部)を含むことができる。
さらに、有利であり得るのは、1つのレイヤをコンフィギュレーションメモリおよび/またはコンフィギュレーションレジスタおよび/またはCTおよびそのメモリに対して設けることである。
図6にはROP−PAEの実装例が示されている。アーキテクチャ的にはRAE−PAEはALU−PAE内に実装されている。レジスタセット全体(R0…Rn,Rpp,Rsp,Rfp,Rap)は、ROP−PAEに収容されている。ALUによるレジスタへのアクセスは、高速でありかつわずかなコストで可能である。アドレスおよびデータはALUから直接、メモリに伝送することができ、この際にROP−PAEの外部のバスシステム、例えば0105を要しない。有利にはROP−PAEは、周辺装置とのデータ伝送のために1つまたは複数の専用のIОチャネルを有する(例えば0601,0602)。残りのPAEとのデータ接続は、すでに周知のようにFREGおよび/またはBREGによって実現可能である。ここでは読み出しポート0603および書込みポート0604によって示されている。
有利にはROP−PAEはすでに内部においてシーケンサとして構成されており、したがってALU出力側はすでにレジスタに内部的に帰還結合されている。オプションではこれをROP−PAEの外部バス(例えば0105)およびBREGによる帰還結合を使用することによって、すでに周知のように行うことも可能である(0605)。
図7には半導体積層体の様々な変形構造が示されている。図7aは、ワイヤボンディングを用いたデータ伝送のための接続部(0701)の簡単な構造を示しており、ここでは2つのダイス(0702,0703)、すなわち2つのチップが重なり合って取り付けられている。一方のチップは、極めて簡略化すると、トランジスタを実現する半導体レベル(例えばシリコン,0704)と、接続線路を実現する複数の金属層(例えば、アルミニウムおよび/または銅;ここでは3つの層0705a,b,cが示されている)と、殊に抵抗力の高い上の絶縁層0706とからなり、ここで上記の複数の金属層はそれぞれ絶縁層によって上下にまた0704に対して電気的に絶縁されている。これらの絶縁層には個々のレベルを電気接続するための金属製の貫通線路、いわゆるヴィアが挿入されている。
図7bでは2つのダイスは、フリップチップテクノロジ方式で互いに接続されており、ここでは信号の伝送は、従来技術によるいわゆるバンプによって行われる。フリップチップテクノロジによって得られる、都度最上部の金属層にバンプ(0711)を接続できるのに加えて、ここではバンプを半導体層(例えばシリコン)の下側でコンタクトする本発明の独特な構成を示す。このために電気接続部(例えば、アルミニウムまたは銅)、すなわちヴィア(0712)がシリコン層を通して下に導かれる。この貫通は、有利には半導体面に相応する孔をエッチングすることによって行われる。接続部と半導体層との間には絶縁物が挿入される。
この貫通は、図7dに示したように直接、半導体層を通して行うことができ、または有利にはまずウェル(0731)が半導体層にエッチングされ、これに絶縁物が充填され、つぎにその中にヴィアが入れられる。
図7cには、半導体積層体を実現するために殊に有利な変形実施形態が示されている。この場合にはより薄くすることのできる第1半導体構造の最上部の絶縁層(0721)の上に別の半導体レベル(0722)がデポジットされる。このために絶縁層(0721)はまずエッチングおよび/または研磨によってできる限り平坦にされる。半導体層のデポジットは、蒸着、結晶の被着または有利には貼り付けまたは貼り付けと類似の接合によって行われる。とりわけ貼り付けを使用する際に重要であるのは、デポジットした半導体構造および貼り付け材料(例えば、接着剤)を通して貫通エッチングできることである。貫通エッチングが必要であるのは、図7bに示したように、コンタクトをその下にある絶縁層のヴィアに導くためである。
コンタクトの貫通は、図7dにより、例えば、細いチャネルをエッチングして挿入することによって行われ、この細いチャネルに絶縁材料が入れられる。その後、別のステップにおいて、この絶縁材料に細いヴィアが挿入される。これは、例えば、あらかじめこの絶縁材料に、相応する直径の孔を例えばエッチングによって形成することによって行われる。
この有利な方法は、比較的大きなウェル(0731)のエッチングを前提としており、これに絶縁材料が充填される。つぎにこのウェルには場合によっては複数のヴィア(0712)が図示のように挿入される。
図7e,f,g,hには、このような半導体積層体の様々な有利な機能的分割が示されている。この半導体レベルはそれぞれ平行線が付けられて示されており、また絶縁層は太い縁取りによって示されている。その間には金属層が配置されている。図7g,hに示したように、この構造は2重の積層には限定されず、より多くの積層、例えば3重、4重またはそれ以上のレベルも可能である。
何度も説明したメモリとALUとの分割は図7eに示されている。
図7fには、必要な回路ユニットおよびIО構造を有するバスシステムと、ALUおよびメモリとの分離が示されており、ここでALUおよびメモリはこの実施例において同じレベルに設けられている。
図7gでは最も下のレベルにALUが配置されている。最も上のレベルにはメモリと、場合にはよってはIОのドライバとが配置される。これによって損失出力の大きい構造が、この積層体の外側の縁部に取付けられる。これに対して殊に特許権が要求される。それは殊に最適な熱排出が可能だからである。バスシステムおよびその回路ユニットは中央のレベルに収容されている。
図7hの例では中央のレベルに損失出力の小さなバスおよびメモリが収容されている。ALUおよび殊にエネルギー的にコストのかかるIОは、最適な熱排出のため縁部に収容される。
IOx−PAE
DE 199 26 538.0から、例えば周辺装置および/またはメモリなどの外部ユニットへの専用の端子を有するメモリ(IORAM-PAE)が公知である。さらにDE 196 54 595.1-53およびDE 102 06 653.1から、例えば周辺装置および/またはメモリなどの外部ユニットを接続するための専用のユニット(例えばインタフェースコンポーネント(IBG))が公知である。
これらの2つの方式は、PAE、例えばデータを処理するおよび/またはデータを計算するPAEと、外部ユニットとの間のデータ通信のために付加的なコストをかけなければならないという問題を有する。ここでこれは、PAEとIBGおよび/またはIORAM-PAEとの間でデータを明に伝送しなければならないことによって発生する。
本発明によりすでに提案されており、また任意のPAEについて、しかしながら例えばデータを処理するおよび/またはデータを計算するPAE(例えばDE 196 51 075.9-53に記載されたALU−PAE,IPAE,ROP−PAE)およびデータを記憶するPAE(DE 100 50 442.6に記載されたRAM−PAE)について、すでに上で何度も述べたように、例えば周辺装置および/またはメモリなどの外部ユニットへの1つまたは複数の専用の端子(IОチャネル)が設けられている。これにより、以下ではIOx−PAEと称されるPAEと、外部ユニットとの直接の通信が可能になる。このアーキテクチャの利点は、PAEからなるアレイ(PA)と、周辺装置(外部メモリおよび/またはIОユニット)との接続を格段に効率的に構成できることである。PAE相互の既存のコンフィギュラブルバスシステム(BUS)は、IОデータ転送によって負荷をかけられる必要がない。さらにIОチャネルを相応に構成する際には、個々のPAEに対するデータのアドレッシングは、これがBUSによって行われ得るよりも格段に簡単に行うことができる。
これは有利には、IОチャネルに接続される各ユニットが一意の固有なアドレスを有することによって実現することができる。このアドレスを用いれば、各ユニットは明にかつ簡単にアクセスされ、ここでこれはIОチャネルを介してこのアドレスを伝送し、各ユニットがこのアドレスと、その固有のアドレスとを比較することによって行われるのである。これらのアドレスが一致すると、このユニットはアドレッシングされ、データがこのユニットのものになる。
有利には各ユニットは宛先アドレス、すなわちこのデータを自分のものにするユニットのアドレスだけでなく、自分の固有のアドレスも伝送し、これによって送出側の識別も可能である。
殊に効率的にはIОチャネルを全PAEの一部だけに対して設けることができる。例えば、PAEの装置(PAEアレイ,PA)内でIОチャネル拡張部を有するPAEのストライプを設けるだけにすることが考えられる。これにより、全PAEにIОチャネル拡張部を実装するのに比べて面積効率およびコスト効率が改善される。
殊に通信の要求が高いPAEは、アプリケーションに依存して複数のIОチャネルに接続することも可能である。
この際に専用のIОチャネルを別個のバスシステムに編成することが可能であり、これは、例えばDE 197 04 742.4にしたがって、またはパラレルの標準バスシステム、例えば、Rapid-IO,PCI,AMBAまたはシリアルの標準バスシステム、例えばUSB, Firewire, Ethernetにしたがって行われる。
IОチャネルがPAEに殊に効率的に実装できるのは、これらが外部ユニットに直接導かれておらず、まず、DE 102 06 653.1に記載されたプロトコル変換器またはDE 196 54 595.1-53に記載されたIОAGに類似して編成することのできるIО管理ユニット(IОAG)に導かれる場合である。こうすることの利点は、内部的な簡単なバスプロトコルを使用して、IОチャネルを制御できることである。またIОチャネルを有する各PAEにわずかな「インテリジェンス」しか要しないため、PAEはそれぞれ小さな面積かつコストをかけずにプログラムすることができる。
外部ユニットの実際の管理および制御は、十分にサイズがありかつコストをかけて構成することのできるIОAGにおいて行われる。
IОAGはその役割を果たすためそれ自体で固有のシーケンサおよび/またはマイクロコントローラおよび場合によって固有のメモリを有することができる。殊にIОAGは、メモリ管理ユニットおよびアドレス変換ユニットも有することが可能である。アプリケーションに応じて、例えば従来技術から公知の割り込みコントローラ(i8259)をIОAGに実装することができ、ここでこれはDE 197 04 728.9に記載されたように割り込みを場合によってはトリガ信号に変換する。
SIMD PAE
リコンフィギュラブルのテクノロジを使用してアルゴリズムを処理する際には重大なパラドクスが発生する。すなわち(1)リコンフィギュレーションのためのコストを最小限にしたいが、できる限り高い計算性能を得るためには複雑なALUが必要である;(2)ALUはできる限り単純かつ粒度を細かくし、ビットレベルで効率的なデータ処理を可能にしたい;(3)リコンフィギュレーションおよびデータ処理をインテリジェントかつ高速に実行して、これが効率かつ簡単にプログラムされるようにしたい。
これまでのテクノロジはa)わずかなリコンフィギュレーションサポートしかない極めて小さなALU(FPGA)であり、ビットレベルで効率的であるか、またはb)わずかなリコンフィギュレーションサポートしかない大きなALU(Camelon)か、またはc)リコンフィギュレーションサポートとデータ管理を有する、小さなALUと大きなALUとからなる混合(VPU)のいずれかを使用している。
VPUテクノロジは効率的な技術であるため、これに基づけば最適な方式が得られるべきである。ここで明確に指摘しておきたいのは、この方式が別のアーキテクチャに対しても使用できることである。
リコンフィギュレーションを効率的に制御するための面積コスト(Flaechenaufwand)は、PAE当たり約10000〜40000ゲートの量であり、比較的高い。このゲート量以下では通例、簡単なフロー制御しか実現できず、このフロー制御では、VPUのプログラマビリティは極めて限定され、汎用プロセッサとしての使用は困難になる。殊に高速なリコンフィギュレーションを目指す限り、付加的なメモリを設けなければならず、これによって所要のゲート量も一段と増大する。
したがってリコンフィギュレーションコストと計算性能との通常の関係を得るためには、大きなALU(多くの機能および/または広いビット幅)の使用が是非とも必要である。しかしながらALUが大きすぎると、チップ当たりの利用可能な並列計算性能は低下してしまう。ALUが小さすぎる(例えば4ビット)と、煩雑な機能(例えば32ビットの乗算)をコンフィギュレーションするためのコストが高くなりすぎてしまう。殊に配線コストは、商業的にもはや有利にはならない領域にまで増大する。
SIMD演算器
狭いビット幅の処理と、配線コストと、コストのかかる機能のコンフィギュレーションとの間の理想的な関係を維持するため、ここではALU−PAE(すなわち、例えば本発明において開示されるPAE、またDE 196 51 075.9-53およびDE 199 26 538.0に記載されているPAE)内にSIMD演算器を使用することが提案される。幅mの演算器が分解されて、幅b=m/nのn個の個別のブロックが得られる。コンフィギュレーションによって演算器毎に設定されるのは、演算器を分けずに動作させるべきか、またはそれぞれ同じ幅または別の幅の1つまたは複数のブロックにこの演算器を分解すべきかである。言い換えると、演算器をつぎのように分解して、1つの演算器内で様々なワード幅が同時にコンフィギュレーションされる(例えば、32ビットの幅、1×16ビット、1×8ビットおよび2×4ビットに分解される)ようにすることができる。データは、PAE間でつぎように伝送される。すなわち、分解されたデータワード(SIMD−WORD)がビット幅mのデータワードにまとめられて、ネットワークを介してパケットとして伝送されるのである。
このネットワークは、つねに完全なパケット、すなわち1パケット内のすべてのデータワードを伝送し、また公知のハンドシェーク方法にしたがって伝送される。ここでこのパケット内の個々のデータワードは使用しなくてもよい。すなわち情報を含まない。これは付加的なステータス線路および/またはハンドシェーク信号により、例えば、RDY/ACKプロトコルにしたがって実現することができる。
SIMDバスシステム
SIMD演算器の効率的な使用に対して、1つのバス内または相異なるバス間でのSIMD−WORDを互いにフレキシブルかつ効率的に再ソートすることが必要である。
図11のバススイッチを変更して、個々のSIMD−WORDのフレキシブルな結線が可能であるようすることができる。このためにこれらのバスは、例えば、マルチプレクサ、バススイッチ、伝送ゲート、パストランジスタ(以下ではマルチプレクサという用語でまとめる)を介し、演算器に相応して分割可能に設計されて、コンフィギュレーションにより、分け方が決定されるようにすることができる。言い換えると、例えば、バス毎に幅mの1マルチプレクサを使用するのではなく、幅b=m/nのマルチプレクサをn個個別に使用するのである。ここではデータバスをbビット幅に対してコンフィギュレーションすることができる。バス(図11)のマトリックス構造によってデータの再ソートも同様に可能である。これは図12aに示されている通りである。
バスのハンドシェークは論理的につぎのように結合される。すなわち、元々のバスのハンドシェークから、新たに編成されたバスに対する共通のハンドシェークが生成されるように結合されるのである。例えば、新たにソートされるバスに対するRDYは、このバスに対してデータを供給する複数のバスのすべてRDYの論理的なAND結合から生成することができる。同様に例えば、データを供給するバスのACKは、データを処理するすべてのバスのACKのAND結合から生成することができる。原理的には実装の際に適当な結合を選択して、これらが都度使用されるバスプロトコルに適合するようにことができる。
第1の変形実施形態では、上記のハンドシェークの結合は各バスノード内で行われる。これによって可能になるのは、幅bのn個の部分バスからなる幅mのバスシステムに、有利にもただ1つのハンドシェークプロトコルを対応付けることである。
殊に有利な別の実施形態では、すべてのバスシステムを、SIMD−WORDの最小限に実現可能な入出力データ幅bに等しい幅bで構成する。ここではPAEデータ路の幅(m)に相応して入出力バスは、幅bのm/b=n個の部分バスからなる。例えば、3つの32ビット入力バスと、2つの32ビット出力バスとを有するPAEは、最小のSIMD−WORD幅が8の場合、実際には3×4個の8ビット入力バスと、2×4個の8ビット出力バスとを有する。各部分バスは有利には、使用されるすべてのハンドシェークおよび制御信号、例えば、DE 197 04 728.9に記載されたリコンフィグトリガおよびRDY/ACKおよびグローバルリセット信号その他を有する。
PAEの出力側は有利には、n個のすべての部分バスに対して同じ制御信号を送信する。到来するすべての部分バスの応答信号は、有利には例えばAND機能により、互いに論理結合される。バスシステムは、各部分バスに自由に接続し、無関係にルーティングすることができる。バスシステムおよび殊にバスノードは、個々のバスのハンドシェーク信号を、そのルーティング、その配置構成およびソーティングに無関係に処理および/または結合しない。
PAEに到来するデータでは、すべてのn個の部分バスの制御信号が互いに結合され、いわばバス制御信号のような一般的に有効な制御信号がデータ路に対して生成される。例えば、「依存する」動作モードにおいて、個々のデータ路毎にRdyHold段が使用され、またすべてのRdyHold段が、待機しているデータをシグナリングしてはじめて、これがPAEによって受け取られる。「依存しない」動作モードでは、各部分バスのデータは個々にPAEの入力レジスタに書き込まれてこのデータに応答がなされる。これによってこの部分バスはつぎのデータ伝送に対して直ちに解放される。入力レジスタにすべての部分バスのすべての所要のデータが存在することは、PAE内で部分バス毎に入力レジスタに記憶されるRDY信号を適切に論理結合することによって検出され、これに基づいてこのPAEは。データ処理を開始するのである。
ここから得られるこの方法の重要な利点は、PAEのSIMD特性が、使用されるバスシステムに特に影響を与えないことである。必要なのは、比較的幅の狭い(b)複数のバス(n)だけである。配線それ自体はそのままである。PAEにより、制御線がローカルに結合されて管理される。これによってバスシステムにおいて制御線を管理および/または結合するための付加的なハードウェアコストがなくなる。
図11には、VPUアーキテクチャに対するバス構造の考えられ得る、また殊に有利な構成が示されている。機能セル、例えば(PAE,FREG/BREG)の出力回路(1103,これは0803a,bに相応)は、垂直なバスを介して、水平なバスシステム(1102,0105に相応)に接続される。相応して機能セルの入力回路(1101,これは0801,0802に相応)は、垂直なバスを介して、水平なバスシステムから情報を取り出す。この図からわかるのは、このような取り出しないしは上記のような接続をどのように行い得るかである。
図11aに示されているように、1103から1102への出力バス(1111)の接続は、水平方向のバスシステム1102のバスを「切り離」し、水平方向のスイッチ(1112)を挿入することによって行われ、ここでこれらのスイッチは、スイッチ、伝送ゲート、マルチプレクサまたは類似の有利な構成素子によって実現可能である。公知のコンフィギュレーション方法に相応して有利にはPAEのコンフィギュレーションレジスタに配置されるまたコンフィギュレーションされる、コンフィギュレーションビットおよび/またはデコーダの値(スイッチ記号1113によって示されている)に依存して、このスイッチは、水平方向のバス1102の両半分を互いに接続するか、またはバス1111を1102の半分に接続する。この場合に1102の他方の半分は遮断されて、転送されない。このスイッチングは、有利には水平方向のバスシステムのバス毎に使用される。
図11bには、1102のデータを取り出して、これらを1101に転送する相応のスイッチングが示されている。スイッチ、伝送ゲート、マルチプレクサまたは類似の有利な構成素子によって実現可能な垂直方向のスイッチ(1122)を介して、データはビット単位で水平方向のバスシステム(1102)のバスから取り出され、入力回路1101のための垂直方向の入力バス(1121)に伝送される。垂直方向のスイッチの制御、すなわちそのスイッチング機能は、公知のコンフィギュレーション方法に相応して有利にはPAEのコンフィギュレーションレジスタに配置されかつコンフィギュレーションされるコンフィギュレーションビットおよび/またはデコーダ(スイッチ記号1123によって示されている)によって行われる。図11bによって、また相応の変更をした場合には図11aによっても、n:1のデータ移行部が可能になる。すなわち複数のバスを1つのバスにまとめることができる。すなわち複数のバスのデータが1つのバスにおいて一緒にされるのである。
図11cには水平方向のVPUバスシステム(1102)のバス切り離し機能が示されている。水平方向の各バスは、個々にまたそれ自体でPAEエッジの出力側で切り離すことができる。切り離しは、図11cに示すように、マルチプレクサまたはスイッチによって行うことができる。有利にはこのバスシステムのバス毎に個々に設けられているコンフィギュレーションビット1132に応じて、その横にあるバスシステム(1131)へのデータ伝送がイネーブルされるかストップされる。通例、この機能は、図11aのスイッチにおいて実現され、ここでこれはコンフィギュレーションビット1132の情報を、その横にあるバスシステム(1131)のスイッチ(1112)に伝送し、相応にスイッチをイネーブル(enable)して転送するか、またはスイッチを遮断(disable)することによって行われる。
図12aには、図11に相応してSIMDバスシステムが示されている。図示されているは、簡略化された水平方向のバスシステム1102、PAE出力回路1103およびPAE入力回路1101である。各入力回路は、例示的に幅32ビットの2つの入力バス(1201,1202)と有し、各出力回路は相応する2つの出力バス(1203,1204)を有する。バス(1201,1202,1203,1204)の各々は、図示のようにそれぞれ別個かつ無関係にルーティングすることができる8ビットずつの4つの部分バスに分けられており、これらの部分バスのいくつかは使用されない(点線)。フレキシブルな配線はつぎのようにして達成される。すなわち、図11a〜cのスイッチをバス毎に別々に構成して、固有のコンフィギュレーションを有するスイッチによって各部分バスが管理されるようにすることによって達成されるのである。これによってこのバスシステムは、細かい粒度で配線可能である。
図12bにはSIMDデータ処理部が示されており、ここではすべてのバス(1211)は同じハンドシェーク(1212)を有する。これらのバスはPAE内で部分バスに分けられ、SIMD−ALU(1213,1214)で別々に処理される。共通のハンドシェークは、PAEのフロー制御部(1215)を制御し、ないしはこれによって生成される。
図12cにはSIMDデータ処理部が示されており、ここではすべてのバスは完全に分離されており(1221)、また別個のハンドシェーク(1222)を有する。これらのバスはSIMD−ALU(1223,1224)において別々に処理される。上記の別個のハンドシェークは、PAEのフロー制御部(1225)を制御し、ないしはこれによって生成される。
ALUコアとしてのFPGAの使用
PACT13では、ALUの代わりにFPGAまたはFPGAに類似した構造がPAEに組み込まれたアーキテクチャがすでに記載されている。この構造は、PAE内で、従来技術によるFPGAコンフィギュレーション法にしたがってコンフィギュレーションされる。すなわち、PACT02,04,05,10,13,17による拡張されたコンフィギュレーション方法は、このFPGA構造に適用されないのである。これにより、比較的小さなFPGAセルのコンフィギュレーション制御に対する煩雑さおよびコストはわずかである。しかしながらFPGAセルを含むPAEは、上に挙げた刊行物によるVPUコンフィギュレーション方法にしたがって動作する。これによってPAE構造のFPGA構造は、カプセル化され、多くのコンフィギュレーションレジスタを有するPAEオブジェクトのように動作するのである。
これにより、任意の操作をFPGAからなるアレイにマッピングさせることもできる。DE 101 35 210.7-53により、VPU内でALU−PAEとFPGA−PAEとの混合が可能であり、またこれは十分に合理的である。
適用分野に基づいて決定しなければならないのは、コンフィギュレーションレジスタの複数のセットがFPGAセルに対して有利であるか否かである。それは、その数が極めて多いからである。場合によってはコンフィギュレーションレジスタを、FPGA−PAEの高速の再コンフィギュレーションのために、DE 196 51 075.9-53,DE 199 26 538.0および殊にDE 100 28 397.7の図18および19にしたがって、PAE内のFIFO構造またはレジスタファイルとして実現し、そこからFPGAセルにロードする。
時がたつうちに殊に有利であることが判明したのは、ALU−PAE内でFPGA構造がALUに対応付けられる場合であり、ここでこれはFPGA構造をALUに対して平行および/または前方および/または後方に配置することによって行われる。有利であるのは、FPGA構造がALUに後置接続される実施形態である。
ここでの利点は、比較的小さなFPGA構造だけを使用すればよいことである。それはすべての算術演算は引き続きALUで動作するからである。これによって殊に高いコスト/性能の効率が達成される。短いワード幅(4ビット、8ビットなど)をサポートするため、上に述べたSIMD−ALUを使用することが考えられる。
ALUの後ろにFPGA構造を後置接続することによって相関器およびPNG発生器を殊に効率的に構成することが可能である。
時のたつうちにVPUアーキテクチャの使用が、部品数中程度および少ない際に例えばASICの代替に対して考えられている。VPU素子のこの使用領域にはつぎのような特徴がある。すなわち、応用分野が極めて明確に定まっており、いくつかのわずかなアプリケーションだけがこれらの素子で実施されることが多いのである。殊にこの使用領域は、ビット単位のデータの処理のために細粒度のFPGA構造を必要とすることが多い。
数少ない適用に限定することによって、FPGAの考えられ得るコンフィギュレーションも同様に極めて限定されまた予測可能である。
わかったことは、例えば、殊にこの使用領域に対して割が合うのは、FPGA構造のリコンフィギュレーションと、粒度の粗い構造の高速なリコンフィギュレーションとを切り離すことである。言い換えると、FPGAに対しては、コストおよび面積的に極めて効率的に実現できるより遅い(例えば従来のシリアルの)リコンフィギュレーション方式を使用するのである。
このために(1)バスシステムおよびコンフィギュレーションコントローラからなる完全に別個のコンフィギュレーションシステムを構成する。これはFPGAについて従来技術から公知である。(2)VPUテクノロジのコンフィギュレーション資源を利用することができる。しかしながらこの際に殊に加速する手段に対する資源は利用されない。例えば、DE 196 54 593.5-53,DE 198 07 872.2に記載されたFILMOへのアクセスはFPGA構造に対して取り除くことができる。DE 100 28 397.7に記載されたまたは以下に説明するようにコンフィギュレーションスタックの存在も同様である。同様にDE 199 26 538.0,DE 100 28 397.7に記載された高速なWaveリコンフィギュレーションも省略可能である。例えば、FGPAアレイにPAEを対応付けて再コンフィギュレーションすることも可能である。ここではFPGA構造をロードするためにだけにPAEをコンフィギュレーションすればよいのであり、これは上に述べたように、外部からのデータに対するPAE制御の独立したアクセスによって行うことができる。
例えばコスト的な理由から考えられるのは、何回もリコンフィギュラブルなアーキテクチャの代わりに、資源を節約する「1回コンフィギュラブル」なアーキテクチャを使用することである。この場合、VPU素子は、顧客に供給される前にまたは顧客においてないしは顧客によって1回だけ専用化される。すなわち、FPGA構造が、その実行されるべき機能にコンフィギュレーションされるのである。FPGA構造の機能は、再度変更することはできないが、これに対して残りのすべての機能、例えば、ALUおよびその配線は、VPUテクノロジに相応して引き続き完全に実行時にコンフィギュレーション可能である。
「1回コンフィギュラブル」なテクノロジとしては、例えば、公知のROM,EPROM,EEPROM,FLASHベースの方式が考えられる。殊に述べておきたいのは、公知のヒューズおよびアンチヒューズ方式(例えば、Atmel,Actel,Quicklogic)がこのような「1回コンフィギュラブル」なFPGA構造を実現するのに殊に有利なことである。
このような構造の基本的な構造についてはここではこれ以上踏み込まない。それはこの構造が、関連する従来技術により、例えば、上に挙げた社の特許明細書により、十分に知られているからである。
図8には例示的に本発明のPAEが示されている。図示されているのは、このPAEのデータパスである。バスシステム0105へのコネクションは、有利にはレジスタを含む入力コンポーネント0801および0802と、同様に有利なレジスタを含む出力コンポーネント0803とよって実現される。ALU(0804)に後置接続されているのは、粒度の細かい複数のFPGAセルからなる機能ユニット(0805)であり、ここでこれらのFPGAセルはバス構造を介して互いに接続されている。0804の出力側は、このバス構造に接続されており、このバス構造それ自体は0803に接続されている。オプションでは、また有利にはマルチプレクサを用いて、0804の出力側のバイパスを、0805を通り越して出力コンポーネント0803に直接に接続することができる。
これらのFPGAセルには複数の段のロジックをコンフィギュレーションすることができ、例えば、以下の機能のすべてまたはそのうちのいくつかをコンフィギュレーション可能である。これらは、マルチプレクサ、AND,OR,XOR,NOT機能、半加算器、比較器、シフトレジスタ、レジスタ、ブール的なルックアップテーブルである。
FPGAセル(0805)は、PAEのコンフィギュレーションバス(0804)により、コンフィギュレーションされる。有利には殊にコンフィギュレーションを加速するコンポーネント、例えばコンフィギュレーションスタック(0406)は、FGPAセルをコンフィギュレーションするために利用されない。これらのコンポーネントは、場合によってはこのようなコンフィギュレーションデータに対して受動的に接続されるか、またはこれらのコンフィギュレーションデータはこれを通り越して導かれる。
1実施形態では、ROMエレメント,例えばEPROM,EEPROM,フラッシュROMまたはヒューズ/アンチヒューズテクノロジを使用してFPGAセルの1回だけの永久的なコンフィギュレーションが行われる。
図9には考えられ得る本発明のPAEの実施形態が示されている。ここで明確に指摘しておきたいのは、図9aの実施形態および図9bの実施形態は、単一のPAEにおいて同時に一緒に実現できることである。
図9aにはコア(0902)へのレジスタファイル(0901)の端子(例えばR0…Rn)が示されており、ここでこのコアは、例えば、0804のようなALUまたはALU(0804)およびFGPAセル(0902)から構成することができる。
このコアの結果データは、レジスタ0901に導かれ、演算に応じてそこに記憶される。レジスタ0901は、マルチプレクサ(0903,0904)を介し、実行されるべき演算に応じてALUの入力側に導かれる。
図9bには類似の構造が示されており、ここでは専用のグローバルなバス(0921)(例えば、IOチャネル)に対する付加的な接続ユニット(0911)が実装されている。コアの結果データは、接続ユニット(0911)に導かれ、そこで演算に応じてグローバルな専用バス(0912)に伝送される。PAEのための0912のデータは、マルチプレクサ(0903,0904)を介し、実行されるべき演算に応じて、ALUの入力側に導かれる。
オプションでは接続ユニット0911は、バス接続ユニット0913および0914を介してデータをバスシステム0105から直接読み出すか、またはこれに伝送することができる。
図10aにはPAEからなるアレイ(1001)内で専用のグローバルなバスシステムを使用する例が示されている。この点ではこの図は図1のPA(0101)と同じである。PAE(1001)の1つずつの集合は、グローバルな専用バスシステム1002,1003,1004に接続されており、データをこれに送出するか、またはこれから受け取ることができる。このデータ伝送は、PAE間でも、PAEとIOとの間でも行うことができる。ここで示されているのは、複数のPAEを複数のグローバルな専用バスシステムに同時に接続できるのに対して、別のPAEは端子を有しないことも可能なことである。
図10bには例示的にグローバルな専用バス(例えば、1002または1003または1004)と、0101の外部にあり場合によって素子の外部にあるコンポーネントとの接続が示されており、ここで上記のバスは、PAEからなるアレイ(0101)内でいくつかのPAE(1001)に接続されている。上記のコンポーネントは、例えば周辺装置(1011)および/またはメモリ(1012)とすることが可能である。外部にあるコンポーネント(1011,1012)を接続するため、場合によって信号の適合(例えば、電圧:CMOS,TTL,LVDSなど)が行うことができる。
図10cには、グローバルな専用バス(1002または1003または1004)と、インタフェースコンポーネント(1021)とを接続する例が示されており、ここで上記のバスは、PAE(0101)からなるアレイ内でいくつかのPAE(1001)に接続されている。このインタフェースグループは、内部の専用のバスの信号および/またはプロトコルを、1つまたは複数の外部にあるバスに変換する。図示の例では、外部に2つのバス(1022,1023)が実装されている。これらのバスシステムは、有利にも別個の構成を有しており、例えば、1022は、SDR−RAM,DDR−RAM,RAMBUSなどのメモリに対するメモリバスシステムとすることができ、これに対して1023は、周辺装置および/またはIO装置(1025)に対する周辺装置バスシステムであり、これは例えばPCIまたはUSB,FireWire,Ethernetなどのシリアルプロトコルである。
複雑な演算器のコンフィギュレーション
複雑な演算器(例えば、浮動小数点演算器)は、可能な場合には構造(RAM−PAE,ALU−PAE,バス)も異なるコンフィギュレーション可能なセル(PAE)を適切にグルーピングおよび配線することによって実現可能である。
例えば、浮動小数点演算器は、指数部および仮数部について算術演算を実行する複数のALU−PAEを適切に結線することによって達成することができる。有利には、出願人のVPU(XPPテクノロジ)に組み込まれるフォワードおよびバックワードレジスタ(FREG/BREG)がこのALU−PAEに対応付けられており、FREG/BREGに配置されるバレルシフタのシフト演算によって所要の正規化が行われる。したがって浮動小数点演算器を必要に応じて、面積利用効率の高い整数型ALUに基づいて構成することができる。
この方式の利点は、固定に組み込まれる浮動小数点演算器に対してシリコン面を使用しないくてもよいことである。浮動小数点演算は、整数演算と比較してまれにしか使用されないため、これによってコスト・便益の比が格段に向上する。
高級言語をVPUに翻訳するコンパイラは、マクロ展開により、および/またはランタイムライブラリを用いて、あらかじめ作成された相応する複雑な構造をマシンコード(例えば、NML)に取り入れることができる。
マシンコードプログラム(例えば、NML)については、ライブラリに対する固有のライブラリコールが提供され、ここでこれらにライブラリには、あらかじめ作成された相応する複雑な関数が含まれている。
RAM−PAEにおけるステートマシン
PAEからなるアレイに接続されるRAM−PAEは、シーケンサを構成するために使用可能である。基本的な原理は、メモリの出力データをそのアドレス入力側に帰還結合することに基づく。この帰還結合は有利にはクロック制御されるレジスタを介して行われる。これによって、後続の各サイクルが目下の各サイクルによって設定されるシーケンサが得られる。
出力データの一部(CONTROL信号)はここで別のコンポーネントおよび/または機能セル(PAE)および/または別の装置にも伝送可能であり、これによって所定の過程が起動される。殊に有利であるのは2つの伝送の方式であり、これらは大抵、一緒に使用可能である。すなわち、
a) 有利には例えば、上記の説明にしたがってSIMDバスとして構成されるデータバスを介する伝送。これにより、上記の出力データの部分的な伝送を殊に効率的に実現可能である。
b) PACT18にその有利な構成および動作の仕方が記載されているトリガバスを介する伝送。トリガバスを介することによって、コンポーネントおよび/または機能セル(PAE)および/または外部の装置をフロー制御するためのステータスおよび条件を殊に効率的に伝送可能である。
入力アドレスないしは出力データの構造は、つぎの通りである(上位のビットから下位のビットの順に示されている)。すなわち、
Figure 2005515525
指摘しておくべきであるのは、入力データが通例、使用されないことである。すなわち、メモリには読み出しアクセスだけが行われ、書き込みアクセスは行わないのである。メモリ(例えば、RAM−PAE)の内容は、コンフィギュレーションユニットにより、前もってコンフィギュレーションされる。したがってこのメモリは、例えば、不揮発の1回書き込み可能なメモリとして、ROM,EPROM,EEPROM,フラッシュセルにより、またはヒューズまたはアンチヒューズテクノロジに基づいて構成することも可能である。この場合、前に説明したように顧客に出荷する前または顧客において専用化、すなわちプログラムされるのである。
別のPAEによるメモリアクセスは基本的に可能であり、これによってシーケンサが、例えば動作中に変更される。しかながら使用領域が限定されるため、ここではこれ以上詳しく説明しない。
本発明のシーケンサは、サイクルの順序における以下の拡張により、イベントに応動して、例えば条件付きジャンプを実行することができる。すなわち、
メモリに入力されるアドレスの一部、有利には下位の一部を別のステータス信号に対する入力側として使用する。このステータス信号は、上の伝送の方式によって伝送することができ、データまたはトリガとすることが可能である。つぎのサイクルを選択する際、ここではサイクルの考えられ得る集合を、有利には上位のアドレスビットにデータ帰還結合することによって決定し、つぎに所定のサイクルを、この考えられ得る集合から、下位のアドレスビットへのステータス信号によって選択するのである。
これにより、入力アドレスないしは出力データのつぎの構造が以下のように得られる(上位のビットから下位のビットの順に示されている)。すなわち、
Figure 2005515525
である。
これにより、完全な値のシーケンサが定義され、このシーケンサはMealy-Mooreシーケンサの原理に相応する。
ここではステータス信号および/またはControl信号を場合によっては束にまとめてグルーピングし、各グループが所定の送信/受信器を供給することができる。例えば、1グループは0101内部のPAEに対して、また1グループは外部のコンポーネントに対して、また1グループはコンフィギュレーションユニットに供給することができる。
言い換えると、すべてのジャンプが、「つぎのサイクルのアドレス」を設定するこによて実現されるのである。条件はステータス信号より実現される。
この際に発生する問題は、いわゆるドントケア(don't care)、つまり1サイクルにおいて値に意味がない所定のステータス信号をどのように扱うかである。有利な変形実施形態では、考えられ得るすべての値に対して同じデータを設定する。
例:
以下のように構成されるアドレス内で、
Figure 2005515525
「目下のサイクルのアドレス」(Cycle)は例示的に、CYCLE60に相応して0x60に等しいとする。4つのステータス信号(ZS0…3)があり、これらのうち、この例示的なサイクル内で2つ(ZS3およびZS1)が値に応じて別のジャンプ宛先になる。つまりCYCLE10,CYCLE7,CYCLE89,CYCLE56になるのである。
テーブルはここではつぎようになる。すなわち
Figure 2005515525
である。
上記のドントケア(ZS2,ZS0)はここでつぎのように設定される。すなわち、その信号の値が、アドレスとデータとの対応付けに影響を与えないように設定されるのである。すなわち、
Figure 2005515525
である。
ここで各宛先サイクルは、上記のドントケアのすべてのバイナリの考えられ得る組み合わせに相応して4重に記憶されている。
オプションの別のシーケンサ構成例、しかしながら合理的でありしたがって有利なシーケンサ構成例では、ステータス信号に対するセレクタおよび/または比較マスクに対して、出力データの付加的な部分領域が設けられる。セレクタとして使用する際には、例えば、セレクタマスクを用いてマルチプレクサを制御することにより、考えられ得る複数のものうちからステータス信号の部分集合を選択することができる。付加的なオプションの比較マスクは、比較演算子として比較器に使用することができ、ここでこの比較器は、相応にステータスビットの集合から1ステータス信号ビット(等しい/等しくない)を生成する。同様にこの比較マスクは、ドントケア信号を選択しないようにために使用することができ、これは、例えば、通常のマスク操作を介して従来技術のようにANDをとることによって行われる(PACT10を参照されたい)。
この場合、出力データの構造は、つぎのようになる。すなわち、
Figure 2005515525
有利なシーケンサは、例えばつぎのように構成可能である。すなわち、
シーケンサメモリとして使用されるRAM−PAEのアドレスバスは、任意の幅の、また例えば、可能であれば幅が異なる複数の部分アドレスに分けられる。例えばビット0〜3は、第1の部分アドレス(NEXT_CYCLE)に対して、ビット4〜7は第2の部分アドレス(SEQ_IN)に対して、またビット8〜12は第3の部分アドレス(CTRL_IN)に分けられるのである。
RAM−PAEのデータ出力側は、任意の幅の、また例えば、可能であれば幅が異なる複数の部分データに分けられる。例えばビット0〜3は、第1の部分データ(CYCLE)に対して、ビット4〜7は第2の部分アドレス(SEQ_OUT)に対して、またビット8〜12は第3の部分アドレス(CTRL_OUT)に分けられるのである。
アドレスおよび/またはデータを分けるためには例えば、説明したSIMD PAEおよびバスコンセプトを使用可能である。さらに上記の分割をRAM−PAE内で行うことができる。
RAM−PAEには、データ処理を行うPAE、例えばALU−PAEを対応付けることができる。
1シーケンサパス内におけるつぎのサイクルの決定は、NEXT_CYCLEをCYCLEに帰還結合することによって決定される。
拡張された変形実施形態では、付加的なデータ処理を行う複数のPAEを設けて、この帰還結合内でNEXT_CYCLEに依存してCYCLEを計算することができる。これらのPAEは、任意の、例えば、別のPAEおよび/または外部/周辺のコンポーネントの状態、付加的な信号またはデータにも応動することが可能である。さらにこれらのPAEは、付加的な信号またはデータを形成可能である。
拡張されたシーケンサを実現するため、つぎのような複数のPAEをさらに接続することができる。すなわち、考えられ得る実施形態においてそれらの機能および/またはシーケンサの結線にも影響を及ぼすことができるPAEを接続できるのである。このためにシーケンサは、相応するPAEのコンフィギュレーションレジスタにデータを伝送することができる。コンフィギュレーションレジスタへのアクセスは、例えば、DE 197 04 728.9に記載されたアーキテクチャによって行うことが可能である(DE 197 04 728.9の図4を参照されたい)。接続されたPAEは、主に任意の種類のデータを処理し、また別のPAE、例えば、データ処理を行うPAE(ALU−PAE)および/またはメモリPAE(RAM−PAE)および/または周辺装置の端子(IO−PAE)への端子を有する。これらのPAEは、SEQ_OUTによって示されるコントロール信号によって制御することができ、また必要に応じて、SEQ_INに供給されるステータス信号により、シーケンサのフローメモリを制御することができる。
別のPAEまたはユニット、可能であれば他に依存もしていない別のPAEまたはユニット、例えば外部/周辺のユニットおよび/または上位のCTも、上記のシーケンサメモリによってSEQ_IN/OUTに相応して制御される(CTRL_OUT)か、またはこれを制御する(CTRL_IN)ことが可能である。
正しいクロック制御でシーケンサをフロー制御するため、帰還結合路には有利にはクロック同期されるレジスタが組み込まれる。
RAM−PAEは、上位のコンフィギュレーションユニットによってコンフィギュレーションすることができ、例えば、シーケンサ機能をRAM−PAEの内容によってコンフィギュレーションして決定することができる。
有利であること判明しまたそれ自体特許権を得るに値すると思われるのは、メモリにより、多くの付加的ハードウェアコストなしに簡単なシーケンサを実現することである。これは例えばつぎのようにして簡単に可能である。すなわち、どの個所においてつぎの読み取りアクセスを行うべきであるかについてまずメモリセルの内容を評価するのである。その個所でさらに、つぎのアクセスが行われる個所が示されれば、自動的な実行が可能である。しかしながら同時に、ここで有利であることが判明した実施形態によれば、つぎのアクセスに対する別のアドレスが単純に求められるだけではなく、これに併行して、この際に何をすべきかが示されるのである。言い換えると、このメモリアドレスにはデータまたは命令が一緒に記憶されるのである。これは、1つの個所に記憶される情報の1部分がつぎのアクセスに対するアドレスを示し、また別の部分が命令またはデータを表すことによって行うことができる。記憶されるデータの幅がアドレス成分とデータ/命令成分とに分けられる場合は、これが簡単に可能である。さらにメモリにおいてアドレッシング可能な記憶場所の1部分だけをコーディングすることも可能であり、例えば、12ビット幅の場合に8ビットだけを使用するの能である。この場合には例えば、フラグ、トリガ、状態、オーバーフローなどの評価による別のビット、ここでは4ビットを付加することができる。これはつぎのような利点を有する。すなわち、ここでは8ビットで読み出されるアドレスと、ここでは4ビットで評価形成される情報とをあらかじめ設定することによって、正しくアクセスされる複数の記憶場所に相異なる指示を設定することができるのである。ここで指摘したいのは、すべてのトリガおよびこれに対する所要の応動は最初から設定できるか、または択一的には、個々またはすべてのトリガに対する応動の少なくとも1部分も、コンフィギュレーションの実行中に変更および/または決定することができることである。このため、トリガマスキングその他への帰還結合を設けること可能である。
これによって可能になるのは、評価された情報に依存して条件付きジャンプなどを形成することである。この際にそれ自体評価可能な一連の情報のうちのいくつかだけにしか関心がない場合、つまり上の例において目下のところ4ビットでなく例えば2ビットだけしか必要でない場合、相応する記憶場所においてそれぞれ示される情報は、つぎのような記憶場所にも存在することができる。すなわち、アドレスが関心のないビットの分だけ異なる記憶場所にも存在することができるのである。
図15にはRAM−PAEに基づく本発明のシーケンサの構成例が示されている。メモリ(1501)のデータ出力側(1502)の1部分(1505)は、クロック制御されるレジスタを介してこのメモリのアドレス入力側(1504)に帰還結合されている。これにより、このアドレス入力側(1504)はCYCLEに相応し、また1505はNEXT_CYCLEの1部分、有利には上位の1部分に相応する。
オプションではデータ出力側(1502)の1部分(1508)をセレクタ−マスクユニット(1509,1510)に導くことができ、これらではバスシステム0105からデータおよび/またはトリガとして到来するSEQ_IN(1511)ないしはCTRL_IN(1512)データが処理される。
CTRL_INおよびSEQ_INおよび/またはセレクタ−マスクユニットで処理されるこれらの値は、有利にはつぎのように1505に混合される(1513)。すなわち、1505が上位のアドレス成分を、またはCTRL_IN/SEQ_INが下位のアドレス成分を形成するように混合されるのである。
データ出力側(1502)の残りの部分は、SEQ_OUT部分(1506)およびCTRL_OUT部分(1507)に分割され、出力コンポーネント0803a,bを介してデータおよび/またはトリガとしてバスシステム0105に導かれる。
それぞれローカルに対応付けられているPAEのコンフィギュレーションを決定するために様々なコンフィギュレーションレジスタモデルが公知である。PACT02にはシーケンシャルに処理可能なモデルが記載されており、PACT04にはFIFOモデルが記載されている。これも同様にシーケンシャルに処理されかつ部分的な重なって(ueberlappend)コンフィギュレーションすることができる。PACT08には選択的なモデルが記載されており、ここではデータ処理に依存して所定のコンフィギュレーションレジスタが選択され、ひいてはそこに記憶された機能および/または結線が選択される。DE 100 28 397.7ではさらにFIFOモデルが記載されており、このモデルは、事前コンフィギュレーション(Vorabkonfiguration)および部分的に重なったコンフィギュレーションに適している。
殊に高性能でコスト/パフォーマンス的に効率的なものとしては、これらのモデルの混合形態が知られている。
DE 100 28 397.7に記載されたFIFOモデルは、PAEの任意個のコンフィギュレーションレジスタをプリロードするのに殊に適している。それは使用されるFIFOの機能により、可変のコンフィギュレーション長が効率的に可能になるからである。このために各PAEにはローカルのFIFOメモリが対応付けられており、このメモリは、それに対応付けられているPAEのコンフィギュレーションを管理してバッファリングする。
例えば以下に説明するFIFOモデルの拡張によって、所定のコンフィギュレーションの開始および終了と、それに対応する個々のコンフィギュレーションエントリを決定することが可能である。これにより、複数のコンフィギュレーションを同時にこのFIFOモデルに格納することができる。
コンフィギュレーションの開始または終了を示すために殊に有利であることが明らかになったのは以下に示す2つの方法である。すなわち、
a) 各メモリセルにおける付加的なビット(CycleBit)による識別
各コンフィギュレーションエントリには付加的なビットが対応付けられ、ここでこれらのビットは、コンフィギュレーションの開始および/または終了を示す。例えば、上記FIFOにおいて1つのエントリはつぎのようにすることが可能である。すなわち、
Figure 2005515525
である。
有利には以下に説明する方法により、コンフィギュレーションの開始を直接示すことができるため、有利には開始の表示を省略する。すなわち、
Figure 2005515525
である。
b)殊に効率的には上記の識別を固有のコンフィギュレーションワードによって行うことができ、ここでこれは命令としてデコードされる。すなわち、
コンフィギュレーションワード内の所定のビット組み合わせが命令としてデコードされて識別される。つまり、例えば、つぎの命令を実現することができるのである。
BEGIN:コンフィギュレーションの開始
END :コンフィギュレーションの終了
この方法は、CycleBitによる識別よりも格段にフレキシブルであり、効率的である。
命令とコンフィギュレーションとの簡単な区別のためにCycleBitに類似して1ビットを設けることができ、ここでこのビットは、値によってコンフィギュレーションワードのセマンティックを決定する。例えば、つぎのようになる。すなわち
Figure 2005515525
である。
コンフィギュレーションは、その開始からその終了までPAEに呼び出し毎に伝送される。
オプションの付加的な変換および割り当て装置により、ステータス(例えば、固有のALUのステータスおよび/または例えば別のPAEの1つないしは複数のトリガ(DE 197 04 728.9を参照されたい))をこのFIFOモデル内の所定のコンフィギュレーションに変換することができる。例えば、到来するリコンフィギュレーショントリガは、このFIFOモデル内の所定のコンフィギュレーションをポイントすることができ、この場合にこのコンフィギュレーションは、このリコンフィギュレーショントリガが発生するこによってコンフィギュレーションされる。
変換および割り当て装置として例えば、代数的計算器および/または論理的結合および/または有利には変換メモリ(ルックアップテーブル)を使用することができる。
種々異なるコンフィギュレーションが、1つのPAEに、または1つのPAEに対して、または一連のPAEに対して格納される場合、記憶された各コンフィギュレーションの長さを加算することにより、各情報が格納されているアドレスを簡単に管理することが考えられ得る。これが重要であるのは、コンフィギュレーションが相異なる長さを有する場合であり、これは、例えば、所定のコンフィギュレーションにおいてはバスおよび/またはレジスタ、例えばフォワードレジスタおよびバックワードレジスタなどをコンフィギュレーションしなければならず、また別のコンフィギュレーションにおいてはPAEのALUの新たな機能を設定したいだけだからである。またはセル外部のユニットに対するコンフィギュレーション情報を一緒に同時に管理するからである。
したがって擬似的なFIFO特性を実現することができる。この場合、加算のための手段、殊にコンフィギュレーションの長さを連続して加算するための手段は、例えば処理などに起因して所定のコンフィギュレーションが不要になった際、関連する領域を解放すべきである。この加算は、加算器チェーンにより、ほぼ問題なしに可能である。
上記の装置は、1セルにおいて複数のコンフィギュレーションを管理する、ないしはさらにシーケンサを実現するために使用可能である。ここでもこれらのコンフィギュレーションに応動することができ、これによってジャンプなどを実現することできる。指摘しておきたいのは、すでに上で述べたようにシーケンサを実現するため、ALU−PAE、および/または場合によってはそれぞれ拡張された機能を有する、データ処理を行う別のセルと、メモリセルとの間に制御(コマンド)線路を設けることができることである。対応付けられた制御を有するこのような線路は、個々のおよびそれ自体自立のシーケンサ能力を有するPAE内にも設けることができる。
殊に有利な変形実施形態は、図14に示されており、またつぎのように動作する。すなわち、
加算器のチェーンが互いに接続されて、先行する加算器(p)の結果(総和 SUMME)がオペランドとしてつぎの加算器(p+1)に転送されるようになっている。この転送は、上記の結果の代わりに0(ゼロ)を転送することによって中断することができる。第2のオペランドとして各加算器には1つずつの専用のレジスタが対応付けられており、その値が、先行する段の総和SUMMEに加算される。各段は、コンフィギュレーションFIFOにおけるコンフィギュレーションを表しており、各段のレジスタにはコンフィギュレーションの相対的なスタート位置が記憶されている。絶対的なスタート位置は、このFIFOにおいて下側にあるコンフィギュレーションの相対的なスタート位置をすべて加算することによって計算することができる。これは、図からもわかるように加算器のチェーンによって行われる。
言い換えると、このFIFOにおいて最も下にあるコンフィギュレーションの場合の相対的な位置は、つぎのようになっている。すなわちこのコンフィギュレーションのエントリは、加算器チェーンの結果出力側の最も近くに記憶されているのである。さらに他のすべての相対的な位置は、このFIFOにおけるその配置構成に準じる。
このチェーンは、上記の総和SUMMEの代わりにゼロを入れることによってその場で中断され、選択されるコンフィギュレーションの相対的な位置が得られる。
ここでこの結果は、このFIFOの最も下のコンフィギュレーションをポイントする読み出しポインタと、選択されるこのコンフィギュレーションのスタート位置との間のオフセットである。
これにより、選択されるコンフィギュレーションへのジャンプアドレスが、ポインタとオフセットとを加算することによって簡単に計算できるのである。
選択されるコンフィギュレーションの選定は、種々異なる方法で変換および割り当て装置において行われる。
(a) 到来するトリガを優先付けしてデコードすることができる。
(b) 到来するトリガをルックアップテーブルを介して変換して、その後、可能であれば優先付けしてデコードする。
(c) 例えばマルチプレクスを介して、すべてのトリガの集合からいくつかを選定して、そのつぎに(a,b)に相応して継続処理する。
ここで殊に指摘しておきたいのは、トリガはベクトル(TRIG−V)とすることも可能なことである。これはPACT08に記載されている通りである。このベクトルそれ自体を、後続のデコードに使用することができる。すなわち、このベクトルによってコンフィギュレーションを選択するのである。これが殊に重要であるのは、PACT08,PACT13,PACT17に記載されたWaveリコンフィギュレーションを実行したい場合であり、ここでは有利には、データと共に伝送されたトリガベクトルにより、つぎのコンフィギュレーションが選択される。
コンフィギュレーション中またはコンフィギュレーションの後、コンフィギュレーションをFIFOから除去することができる。この際に有利には、変換および割り当て装置内き参照が相応に適合される。
さらに上記のFIFOモデルは、DE 196 54 846.2-53(ないしは、他の特許権保護の場合と同様、個々に言及することなしにそれに対応する特許明細書)に記載されたシーケンサ方式の分だけ、または有利には上に説明したものの分だけ拡張することが可能である。このためには例えば、ジャンプ(GOTO)、ステータス依存しまた条件付きのジャンプ(WAIT−GOTO,IF−GOTO)が挿入される。ジャンプは、固有のCycleBitによって表すことができるか、または有利には命令として実現される。
さらに同期表示方式を使用することができ、ここでこれは、所定のコンフィギュレーションないしはシーケンサの所定のサイクルがいつ終了するかを示す。言い換えると、各サイクルは複数のコンフィギュレーションエントリから構成することができる。識別のためには、例えば、DE 196 54 846.2-53に記載されているように、run/stopフラグを使用することができ、ここで「run」は、サイクルの対応するコンフィギュレーションエントリを示し、「stop」は、つぎのサイクルの最初のエントリを示す。択一的には上に説明したCycleBitを使用することが可能である。これは、セマンティックがやや異なるが、それ以外では同じに動作する。
上記の方式とは択一的にまたは上記の方式に加えて、出願人の以前の特許出願から同様に公知である命令WAITおよびBEGIN、または上に説明した命令BEGINおよびENDを使用することもできる。
「stop」またはWAITまたはENDにより、サイクルの終わりが示される。すなわち、コンフィギュレーションが完全なものになり、これを実行および処理することができるのである。このコンフィギュレーションのデータ処理が終了した後、つぎのサイクルが実行される。
この終了は、シーケンシャルなプロセッサに相応して1クロック(インストラクションシーケンシング)によって定義可能であり、および/またはPACTプロセッサのデータ処理原理(P 44 16 881.0-53,DE 196 54 846.2-53,コンフィギュレーションシーケンシング)に相応して、ステータス信号(例えば、トリガ)によって定義可能である。
言い換えると、例えば、トリガの到来により、「stop」を飛び越えて、つぎのコンフィギュレーションをコンフィギュレーションすることができる。択一的または付加的には、トリガの到来に応動する命令WAITを使用することができる。
オプションでは、FIFOは、ローカルに対応付けられたPAEを制御するだけでなく、別のPAE、例えば周囲のPAEまたは同じコンフィギュレーションに所属するPAEを制御することができる。
オプションでは、このFIFOを、DE 196 54 846.2.-53に記載された専用のユニットとして構成することも可能である。
実施例:
A) 到来するトリガは、変換および割り当て装置を介して、FIFOに配置されるコンフィギュレーション(K1)に変換される。これに基づきこのコンフィギュレーション(K1)は、PAEにコンフィギュレーションされる。終了の識別として、例えば、WAIT命令またはEND命令またはrun/stopフラグを使用することができる。
後続して到来するトリガは、変換および割り当て装置を介して、FIFOに配置される別のコンフィギュレーション(K2)に変換される。これに基づきこのコンフィギュレーション(K2)は、PAEにコンフィギュレーションされる。K1および/またはK2は、PAEへのコンフィギュレーションが成功した後、FIFOから消去される。
B) 到来するトリガは、変換および割り当て装置を介して、FIFOに配置されるコンフィギュレーション(K3)に変換され、ここでこれは複数のサイクル(Cy1,Cy2,Cy3a,Cy3b,Cy4)からなる。これに基づき、最初のサイクル(Cy1)がPAEにコンフィギュレーションされて実行される。終了の識別として例えば、WAIT命令またはrun/stopフラグを使用することができる。
このサイクルの実行の終わりを示す、後続して到来するトリガにより、コンフィギュレーションが行われCy2が実行される。Cy2は2つのWAIT−GOTO命令(WAIT−GOTO(Trg1,Cy3a);WAIT−GOTO(Trg2,Cy3b))(PACT04を参照されたい)で終了する。これにより、このサイクルの実行の終わりを示す別個の2つのトリガ、Trg1およびTrg2に応動することになる。Trg1が到来すると、つぎのサイクルにおいてCy3aがコンフィギュレーションされて実行される。ないしはTrg2の場合には相応にCy3bがコンフィギュレーションされて実行される。
Cy3aおよびCy3bはWAIT−GOTO(Trg,Cy4)で終了する。このサイクルの終了を示すトリガが到来した際にはCy4にジャンプして、このコンフィギュレーションが相応にコンフィギュレーションされて実行される。
Cy4は、WAIT−GOTO(Trg,Cy1)で終了する。これにより、このサイクルの実行の終わりを示すトリガが到来した際に、ループのシーケンシャルなパスを新たに開始することができる。この点ではCy1へのジャンプにより、DE 196 54 846.2-53に記載されたリングメモリを形成してループを実行することができる。ここでこのようなリングメモリは有利ではあるが、必須ではない。
トリガ(Trg−x)の到来により、上記のループを終了させることができる。変換および割り当て装置にTrg−xに対するエントリがある場合、このループはいつでも中断することができ、またこの変換および割り当て装置においてTrg−xより参照されるコンフィギュレーション(KX)を実行することができる。
エントリがない場合、WAIT−GOTO(Trg−x,KX)命令を明に使用することによって、例えばCy4においてWAIT−GOTO(Trg,Cy1)と一緒に使用することによって、このループをあらかじめ決められた所定の実施時点に終了させることができる。
図13は、コンフィギュレーションユニット(0106)によってPAE(1001)をコンフィギュレーションするコンフィギュレーションバスの構造を例示的に示している。このコンフィギュレーションユニットは、バスシステム1301を介して、また場合によっては周波数特性を改善する複数のレジスタ段(1303,1304)を介して、およびコンフィギュレーションバス(0404)を介して複数のPAE1001にコンフィギュレーションデータを送信する。各PAEは、供給されたアドレスをデコードして、自分が選択された場合、このバスのデータ伝送に応動する。PAEそれ自体は、0404を介し、レジスタ−マルチプレクス段1304を介してバスシステムに接続してコンフィギュレーションユニットにまたはオプションで別のPAEにデータを送出することができる。これはそれぞれ受信ユニットのアドレスを伝送することよって行われる。コンフィギュレーションユニットへのデータの逆伝送は、有利には同様にレジスタ段(1305)を通して、コンフィギュレーションユニットのデータ入力バス(1302)まで行われる。
コンフィギュレーションバスの動作の仕方も同様にDE 101 42 904.5およびDE 100 28 397.7に記載されている。これは開示のために完全にここに組み入れられている。
図14には、リコンフィギュレーションを制御する本発明のFIFOモデルの構造が示されている。ここで指摘したいのは、例えば、ジャンプの実行を可能にするにより、ここに示されたFIFOモデルが、従来公知の純粋なFIFOとは異なり得ることである。しかしながらここでは、それ自体従来技術で使用される用語を使用した。それはこの用語は、通例のジャンプのない動作について、殊にわかりやすいイメージを連想させることができるからである。このユニットは、すべてのセル、例えばこの明細書に記載したリコンフィギュラブルなセル(PAE)に対してオプションであり、図4においてユニット0406で示されている。
メモリ1401は、対応付けられたPAEに対するコンフィギュレーションデータを含んでいる。1402は、PAE(0405)のコンフィギュレーションレジスタに至るコンフィギュレーションデータ出力側である。1403を介して、すなわちバス0404を介してコンフィギュレーションユニットにより、コンフィギュレーションがこのメモリに書き込まれる。ここで各アドレスは、書き込みポインタ(1407)によって生成される。この書き込みポインタは、書き込み過程毎に、FIFOの動作の仕方に応じてインクリメントまたはデクリメントで1つだけ値が変化する。スタートアドレスポインタ(1404)は、上記のメモリの最初のコンフィギュレーションデータエントリをポイントしており、これに対して別のポインタ(1405)は、読み込むべき、ないしはPAEに伝送すべきコンフィギュレーションデータエントリをポイントする。1405は、メモリからPAEへのデータ伝送毎に、FIFOの動作の仕方に応じてインクリメントまたはデクリメントで1つだけ値が変化する。このデータ伝送は、コンフィギュレーション終了識別ユニット(1409)により、例えばCycleBitまたは命令(WAIT,END)に基づいてコンフィギュレーションの終わりが識別されるまで行われる。
実現されたこのFIFOは、ポインタ1405だけしか有しない従来技術による通常のFIFOとは同じではない。この変更により、上記のメモリから任意のコンフィギュレーションデータを読み出すことができ、その一方でポインタ1404によってつぎが阻止される。すなわち、場合によってはまだ必要なコンフィギュレーションデータが上書きされてしまうことが阻止されるのである。これは、スタートアドレスポインタ1404と、書き込みポインタ(1407)との比較(1406)により、フルフラグを生成することによって行われる。メモリがフルの場合、コンフィギュレーションユニットの書き込みの試みは拒絶される。これは有利にはPACT10から公知のACK/REJプロトコルによって行うことができる。このために比較器1406は、その出力側1416において、相応するReject信号をコンフィギュレーションユニットに出力するか、ないしはAckを出力しない。
1401の例示的なメモリ内容が1408で示されている。このメモリは、5つのコンフィギュレーション(C0…C4)を含んでいる。1404はスタートポインタとして第1のコンフィギュレーションC0をポイントしている。この例では1405はコンフィギュレーションC3の先頭をポインタとしている。このポインタ位置は、1404の値と、コンフィギュレーションC0の長さと、コンフィギュレーションC1の長さと、コンフィギュレーションC2の長さとを足し合わせることによって計算される。
到来するトリガ(1431)は、図14aに示した変換および割り当て装置(1432)を介して、選択信号(SC0…n,1433)に変換され、これらの選択信号によって、メモリにおけるコンフィギュレーションデータのアドレッシングが制御される。この変換および割り当て装置は、固定的にあらかじめ設定されてその割り当てを行うことができるが、有利にはコンフィギュレーションの処理中に変更可能であり、このために有利な帰還結合、信号線路などが設けられている。殊に変換および割り当て装置が変更可能な場合、割り当てに使用されるユニット1434が、同様におよび/または付加的にデータ処理中に変更可能に構成されると有利である。このためにも相応する回路装置が設けられ、割り当ての変更は、例えば、プログラム制御によって行うことができる。相応する変更、例えばプログラム制御の変更は、ユニット1414、すなわちアドレス計算加算チェーン手段に対しても可能である。この更新および/または新たな挙動の仕方をトリガする命令は、有利にはこのためのメモリユニット1401に格納される。
1つずつのレジスタ(1411)、加算器(1422)、およびここで例えばビット毎のAND機能によって実現されるゼロ発生器(1413)は、アドレス計算のためのチェーン(1414)の1構成要素を構成する。1つずつの構成要素により、コンフィギュレーションのオフセットが管理される。これらの構成要素の並びは、メモリ1401におけるコンフィギュレーションの並びに相応する。言い換えると、1408の例に相応して、第1の構成要素は、コンフィギュレーションC0の長さ、すなわち、1404に加算しなければならないオフセットを有し、これによってコンフィギュレーションC1がポイントされる。第2の構成要素は、コンフィギュレーションC1の長さ、すなわち、C0のオフセットと1404とに加算しなければならないオフセットを有し、これによってコンフィギュレーションC2がポイントされる。第3の構成要素は、コンフィギュレーションC2の長さ、すなわちC0のオフセットと、C1のオフセットと、1404とに加算しなければならないオフセットを有し、これによってコンフィギュレーションC3がポイントされる、等々である。
この実施例からわかるのは、加算のチェーンが発生し、その構成要素の数は、メモリにおけるコンフィギュレーションの位置に相応することである。これはチェーン1414により、つぎのように実現される。すなわち、
加算器を介して、レジスタに記憶された値、すなわち、各コンフィギュレーションの長さがそれぞれ、先行する構成要素の結果に加算される。ビット毎のAND機能の入力側における値と、加算器のすべての結果ビットとはANDがとられる。すなわちこの入力側が0に等しい場合、このAND機能により、出力側にバイナリ0が供給され、これによってこの加算器のチェーンは、選択すべきコンフィギュレーションにおいて中断される。そうでなければ、上加算器出力側の値が供給される。
言い換えると、上記のレジスタ(1411)にはコンフィギュレーションのサイズが、メモリ(1401)における順序通りにエントリされている。上記の選択信号はつぎのようにゼロ発生器に導かれる。すなわち、複数のコンフィギュレーションのサイズが、トリガ(1431)によって参照されるコンフィギュレーションのスタートアドレスまで加算されるようにゼロ発生器に導かれるのである。
したがってこのチェーンにより、メモリ1401において、ロードすべきコンフィギュレーションの前にあるコンフィギュレーションのすべての長さが加算される。これにより、スタートアドレス(1404)との加算(1415)によって、ロードすべきコンフィギュレーションをポイントするオフセットが形成されるのである。
説明した回路は殊に高性能である。それはこの回路により、オフセットの計算およびジャンプが1クロック内で可能になるからである。
第2のオプションのチェーン(1421)では、レジスタ(1422)にコンフィギュレーションユニットおよび/またはPAEおよび/またはコンフィギュレーションスタックに対する命令を記憶することができる。ここでも同様に例示的にゼロ機能1413に相応して実現されるゼロ機能(1423)により、選択信号がアクティブでない、すなわちこのコンフィギュレーションが選択されなかった場合にはその出力側にバイナリ0が供給され、その他の場合にはレジスタ内容(1422)、すなわち、命令が供給される。ORチェーン(1424)を介して、すべてのゼロ機能出力側の相互のORがとられ、これによって目下選択されているコンフィギュレーションの、レジスタ1422内の命令が、このチェーンの出力側(1425)に供給される。
ここでこの命令はメモリ(1401)のエントリを消去するために使用可能である。すなわち、記憶された所定のコンフィギュレーションを消去する、ないしは上書きをイネーブルするような命令の1つとすることができる。これは例えば命令FLUSHによって行うことができ、ここでこれはスタートポインタ(1404)に読み込みポインタ1405をロードし、これによってこのアドレスの前にあるすべてのデータの上書きのために解放するのである。これは、FIFOライクなメモリにおいてこのように上書きされるべきコンフィギュレーションが実際に比較的旧く、したがって通例、上書きすることができ、これに対してまだ必要であることが多い比較的新しいコンフィギュレーションが引き続き上記のFIFOライクなメモリにあるようにする場合には有利である。有利に実現される他の命令は、新たなコンフィギュレーションをロードする命令である。これが重要であるのは、新たな所定のコンフィギュレーションを要するという要求が、少なくともかなりの確率で予想できる場合である。この命令は、中央のコンフィギュレーション管理ユニットまたは類似のものに送出することができる。例えばI/O手段が対応付けられる際には、直接のローディングも同様に可能である。コンフィギュレーション要求命令と、フラッシュ命令ないしは旧いコンフィギュレーションを放棄する命令とが同時に実行可能および/または記憶可能であることも有利である。フラッシュ、ロードまたはフラッシュ/ロードなどのこのような命令は、別のメモリ領域ないしはメモリユニット、例えば1401に格納可能であり、このために例えば1421のような専用のユニットを必ずしも設ける必要はないことを指摘しておく。それ自体すでに設けられているユニットをこのように使用することにより、ハードウェア的に有利になり得る。
さらに上記の命令を、図13のバスシステムを介してコンフィギュレーションユニットに送出することが可能である(1426)。例えば、この命令はそこで所定のコンフィギュレーションの開始をトリガすることができ、および/またはコンフィギュレーションのプリロードを行うことができる。
FLUSH、すなわちコンフィギュレーションの消去は、このユニットの重要で有利な命令の1つである。この命令は一方では実施に対して極めて有利であるが、他方ではこれは、その実施の際にすべてのアドレスおよび参照が変わってしまうという問題を有する。スタートポインタ(1404)が新たなスタートアドレスに設定されることによって、FIFOは「フラッシュ」される。この新たなスタートアドレスは図14に示したように有利には、記憶されるコンフィギュレーションの先頭に設定され、この先頭は、上に説明したオフセットによる計算によって決定される。択一的または付加的にはポインタを所定の別の値、例えばFLUSH命令に結びつけられた定数に設定することも可能である。さらに2つのチェーン1414および1421を「フラッシュ」して、アドレス計算が、メモリ1401におけるコンフィギュレーションの変更された位置に相応するようにしなければならない。これはそれぞれ(図14に示していない)マルチプレクサ(1451)によって行われ、これらのマルチプレクサにより、複数のレジスタデータがつぎのように前方に伝送される。すなわち、いまや空になった(「フラッシュ」された)チェーンの構成要素が、後続の構成要素のデータで上書きされるように前方に伝送されるのであり、詳しくはつぎのように行われる。a)チェーンにおけるデータの順序が変わらないままであり、b)チェーンの最初の構成要素が新たなデータで占有され、c)他のすべてのデータが順序通りにコンスタントにおよびギャップなしに最初のものにつづいて構成要素に書き込まれる。これについては図14aを参照されたい。ここで指摘しておきたいのは、マルチプレクサ1451を介して、コンフィギュレーションサイズについてのデータ(コンフィグ1…nのサイズ)を相応する個所に外部からも書き込めることである。図を見易くするという理由から示されていないが、ここで正しく判断すべきであるのは、各個所に個々にアクセスないしはアドレッシング可能であることである。この点については、1434に示した、この個所をそれぞれ決定するユニット1435を参照されたい。
このチェーン内でのシフトにより、チェーンにおけるデータの新たな位置に選択信号(SC0…n)が適合され、これにより、再び選択信号と、オフセット計算との正しい対応付けが得られる。このために基本的に複数の手法が利用可能である。例えば、
a)1432の後の信号を1434においてバイナリコーディング(74LS148の機能に準じて)することができ、フラッシュによって発生したシフトに相応するオフセットを減算し、得られた値を再度デコードして(74LS139の機能に準じて)、選択信号1433を生成する;
b)1432の後の信号を1434においてルックアップテーブルにより、選択信号1433に変換することができる。このためにこのルックアップテーブルは、フラッシュによって変更された、チェーンにおける位置状態に適合される。
これらの信号の変換に殊に有利な方法を詳しく説明する。またこの方法は1434に示された装置に相応する。すなわち、
第1のシフトレジスタ(1435)は、チェーン1414,1421において目下空きになっている、すなわち利用されていない最初の構成要素の位置を1ビット値として含む。これはつぎのようにして行われる。つまり、リセットの後、このシフトレジスタの最下位ビットが1にセットされる(塗りつぶされた円で示されている)。この最下位ビット(ビット0)は、このチェーンにおいて最も下の構成要素を参照する。チェーンに対する書き込みアクセス毎に、すなわち1401へのコンフィギュレーションの新たな記憶(FILL)毎に、このシフトレジスタは、セットしたビット(PBIT)を最高位ビットの方向に1位置分だけシフトし、これによってチェーンにおいて都度つぎの構成要素を参照する。したがって最高位ビットは、これらのチェーンにおける最も上の構成要素を参照する。つまりこのシフトレジスタの幅は、これらのチェーンにある構成要素の数と同じである。FLUSH毎にこのシフトレジスタは、ビット(PBIT)を、これらのチェーンにおいて消去された構成要素とちょうど同じ数の位置分だけ最下位ビットの方向にシフトする。
変換および割り当て装置(1432)は、PAEにおいて、バスシステム(0105a,図4)から到来するトリガを変換して、トリガ毎に、送出するバス(1437)のちょうど1つの信号がセットされるようにする。各信号には1435と同じサイズのシフトレジスタ(1436)が対応付けられている。すなわち多数のシフトレジスタ1436(ここでは1436a…1436cで示されている)が設けられており、その数は、最大限に許容される相異なるトリガ信号の数に等しく、またその長さ、すなわちビット幅は、最大限に許容されるコンフィギュレーションの数に等しい、つまりチェーン構成要素の数に等しいのである。コンフィギュレーションを新たに記憶する(FILL)際にはPBITをシフトする前に1435の内容がシフトレジスタ(1436)に書き込まれ、このコンフィギュレーションに対応付するトリガが、このレジスタをポイントする。これは円で示されている。
バスにトリガが発生すると、変換された相応する信号(1437)は、1の値を供給し、これに対して他のすべての信号は0の値を供給する。信号1437は、ビット毎のAND機能から構成されるゼロ発生器(1438)にそれぞれ導かれる。1437からの入力信号が値0であるすべてのゼロ発生器は、出力側にゼロベクトルを供給する。1437からの入力信号が値1であるゼロ発生器は、シフトレジスタ1436の内容を伝送する。すべてのゼロ発生器の出力側は、互いにORがとられて(1439)、選択信号SC0…n(1433)が得られる。
この機能により、到来するトリガは、ゼロ機能を介して、シフトレジスタ1436をポイントし、ここでこのシフトレジスタのセットされたビットはこれらのチェーン(1414,1421)における構成要素をポイントする。
フラッシュの際にシフトレジスタ1436は、シフトレジスタ1435と同様に、記憶した値を、これらのチェーンにおいて消去される構成要素とちょうど同じ数の位置分だけ最下位ビットの方向にシフトする。PBITが最下位ビットを越えてシフトされたためにこの操作の後、シフトレジスタの内容が0と等しくなった場合、このことが意味するのは、前に参照されたコンフィギュレーションが消去されたことである。
到来したトリガ1431に対して1434が出力側1433に値0を供給する場合、コンフィギュレーション要求がコンフィギュレーションユニットに送出され、これより、欠如したコンフィギュレーションがロードされ、または場合によってはエラー状況もこのコンフィギュレーションユニットに通知される。
1432における、到来するトリガ1431の1437への変換は、複数の原理で行うことができ、これら個々にまたは共通に適用することが可能である。例えば、
1. 74LS148の機能に相応するデコーダ
2. ラウンドロビン式のアービタ(PACT10を参照されたい)
3. ルックアップテーブル(PACT10を参照されたい)
である。
原理的にはこの変換は、PACT10に記載された方法にしたがって行うことができる(ラウンドロビン式のアービタ、LUT1)。
変換規則がない場合、例えばルックアップテーブルを適用する際には、コンフィギュレーション要求をコンフィギュレーションユニットに送出し、これにより、欠如したコンフィギュレーションをロードし、または場合によってはエラー状況もこのコンフィギュレーションユニットに通知する。
図14に示したコンフィギュレーションスタックの他の重要な機能は、コンフィギュレーションについてのシーケンスであり、これはメモリ1401内での条件付きまたは無条件のジャンプを意味する。したがってこの機能も図14bに詳しく説明されている。
命令デコーダ(1462)は、メモリ1401からの読み出し時に、コンフィギュレーションワード(1402)の条件付きおよび無条件ジャンプ命令を識別する。ジャンプ命令には、定数として、目下に位置に対する相対的なジャンプアドレスが対応付けられており、これは命令デコーダによってデコードされて出力される(1463)。ジャンプの方向に応じて、値は正または負である。
さらに定数として、到来したトリガまたはPAEのステータスフラグとの比較値(1469)、例えば、ALUフラグゼロ、キャリー、負、オーバーフローなどまたはメモリフラグのフル、空などが示され、これに依存して条件ジャンプが実行される。上記の定数は、比較ユニット1464に伝達され、ここでこのユニットにより、この値と、変換および割り当て装置(1437)および/またはバス0105から直接得られるトリガおよび/またはフラグ(1465)とが比較される。
制御ユニット(1466)は、命令(条件付きまたは無条件のジャンプの命令=「タイプ」)と比較結果とに依存して、読み出しポインタ(1405)に対する制御をつぎように生成する。すなわち、
無条件ジャンプ:「セット」を生成して、新たなアドレスを1405にロードする;
条件付きジャンプ、比較が満たされた場合:「セット」を生成して、新たなアドレスを1405にロードする;
条件つぎジャンプ、比較が満たされない場合:「カウント」を生成して、1405においてつぎの命令のアドレスを計算する。
新たなアドレスのセットは、相対的なジャンプアドレス(1463)を1405の目下の値に加算する(1468)によって行われる。「セット」が供給された際には、加算された新たなアドレスと、1415によって生成されるコンフィギュレーションのスタートアドレス(1461)との間で選択を行うマルチプレクス(1467)を介し、新たなアドレスが読み出しポインタ1405に書き込まれる。
コンフィギュレーションスタックの動作の仕方により、PACT10およびPACT17から公知のコンフィギュレーションユニット(CT)の使用は極めて陳腐化し、コンフィギュレーションスタックによる分散された、並列のCTが得られる。
しかしながらここでCTの2つの役割を上記のようなユニットにおいてそのままにすることが可能である。すなわち、
1. メモリからのコンフィギュレーションのロード。ここでこのメモリは、チップ内またはチップの外に揮発性または不揮発性なメモリ(ROM,EPROM,EEPROM,フラッシュROMなど)として実現することができ、および/または大容量記憶装置とすることが可能である。ここでこのロードは簡単なマイクロコントローラによって行うことができ、このマイクロコントローラは、データをPAEに送信し、戻ってきた応答に応動する。例えば、有利にはマイクロコントローラとしてのPACT05に記載されたユニットないしはPACT05に記載されたアルゴリズムを使用することができる。このロードはもはや必ずしもアクティブに行う必要はなく、コンフィギュレーション要求コマンドに応じて、新たなコンフィギュレーションデータの各PAEへの取り込みないしこれに対応付けられたコンフィギュレーションメモリへの取り込みをトリガするユニットが設けられていれば十分である。これは例えば、上に述べたI/O−PAEにおいて、目下の新しいコンフィギュレーションデータを必要とするPAEそれ自体とすることも可能である。
2. そのままである残りのユニットを使用してつぎを保証することが可能である。すなわち、リコンフィギュレーショントリガ(WCT)が所定の順序にソートされてアレイを流れること、および/またはプリロードされたコンフィギュレーションが所要の順番で処理されること、および/またはまだロードされていないが所要のコンフィギュレーションが必要に応じて要求されおよび/またはロードされることを保証することが可能である。上記のリコンフィギュレーショントリガの優先度付けを使用して、どのリコンフィギュレーション要求トリガが最初に応動されるべきであるかの優先度を決めることができる。これによって、考えられ得る相異なるコンフィギュレーションのコンフリクトのない処理が保証され、ここでこれは、どのトリガが最初にこのアレイを流れるかを決定するだけで行われる。このようなトリガが、このトリガに応動すべき所定のPAEに関係すると、このPAEはこのことを記憶し、これによって、これがリコンフィギュラブルになるとただちにつぎにはこのトリガに応動できるようになる。ここで述べておきたいのは、有利には個々のセルまたはセル構造または類似のものは、直後に処理すべきコンフィギュレーションに関連するトリガを前もって記憶するだけでなく、またこのセルが将来処理すべきである他のすべてコンフィギュレーションまたは少なくとも複数のコンフィギュレーションが順序通りに格納され得るおよび/または格納されるべきであるということであり、これにより、各セルまたはセルグループが、将来および/または現在においてこれらに関連する情報をトリガベクトルから受け取って保持するようにする。これによって、以前のCTのFilmo機能は不要になり、複数のトリガベクトルの時間的な経過により実質的に置き換えられる。
3. 1つのリコンフィギュレーショントリガだけを使用する限りでは、特別な手段は不要である。複数のリコンフィギュレーショントリガ(WCT)が発生し得る場合、これらは時間的な重なり合いなしに、すなわち、固定の順序で交わることなしに順次にアレイを流れ、これによってデッドロックが阻止されるようにしなければならない。
これは、図16に示した方法によって保証することができる。ここではルーティング手段により、WCTが時間的に正しく転送される。中央のインスタンス(1603)により、相異なるPAE(1601)に対して複数のWCTが生成される。しかしながらこれらは時間的に互いに調整されるべきである。このマトリクスにおいて1601の距離は種々様々であることにより、種々異なる到達時間ないしはレイテンシー時間が発生する。これはこの実施例において、コンパイラに対応付けられるルータを通るパイプライン段(1602)を適切に使用することによって達成される(PACT13を参照されたい)。これによって発生するレイテンシーは、d1〜d5によって示されている。ここからわかるのは、WCTフロー(1604)の方向に各段(列)で同じレイテンシーが発生することである。例えば、1606と1603との距離は極めて短いため、1605が不要かもしれない。しかしながら1607および1608に対しては、比較的長い距離によって発生する到達時間に起因して1つずつの1602を挿入しなければならないため、この到達時間を調整するために1605が必要になるのである。中央のインスタンス1603は、PAEから到来する複数のリコンフィギュレーショントリガ(1609)を受け取り、これらの優先度を決定して、これらをWCTとしてそれぞれ個別かつ順次に、PAEからなるアレイに送信する。言い換えると、リコンフィギュレーショントリガを生成する1つのPAEは、これを別のPAEに直接転送するのではなく、中央のインスタンス1603だけに転送するのである。
この中央のインスタンスは、到来するトリガを記憶して、これらの優先度を決定する。このために有利にはPACT10から公知のSCRR−ARBの方法する。これはPACT10の図8に詳しく記載されている。
上に上げたPACT特許のすべては、開示のためにここにすべて組み込まれる。
参考文献:
PACT02 PCT/DE97/02949
PACT03 PCT/DE97/03013
PACT04 PCT/DE97/02998
PACT05 PCT/DE97/02999
PACT08 PCT/DE98/00334
PACT10 PCT/DE98/00504, PCT/DE98/00505
PACT13 PCT/DE00/01869
PACT15 PCT/EP02/02398
PACT17 PCT/EP01/06703
本発明のセルエレメントフィールドを示す図である 図1のセルエレメントフィールドの様々なデータ処理時間における詳細を示す図である 図2の詳細の択一的な実施形態を示す図である 機能/メモリセル(PAE)の基本構造を示す図である 図3bの変形実施形態を示す図である ROP−PAEの実装例を示す図である 半導体積層体の様々な構造バリエーションを示す図である 本発明によるPAEの実施例を示す図である 本発明によるPAEの別の実施形態を示す図である グローバルな専用のバスシステムおよびPAEからなるアレイを示す図である VPUアーキテクチャに対するバス構造の殊に有利な構成を示す図である 図11に相応するSIMDバスシステムおよびSIMDデータ処理を示す図である コンフィギュレーションユニット(0106)によってPAE(1001)をコンフィギュレーションするコンフィギュレーションバスの構造を例示的に示す図である リコンフィギュレーションを制御する本発明のFIFOモデルの構造を示す図である 変換および割り当て装置(1432)を介して到来するトリガを選択信号(SC0…n,1433)に変換するユニット(1434)を示す図である コンフィギュレーションスタックの条件付きまたは無条件のジャンプ機能の制御を示す図である RAM−PAEに基づく本発明のシーケンサの構成例を示す図である ルーティング手段によりWCTが時間的に正しく転送されることを示す図である。

Claims (42)

  1. 算術および/または論理機能を実行する機能セルと、情報を受け取り、記憶および/または出力するメモリセルとを有する、データ処理のためのセルエレメントフィールドにおいて、
    前記機能セルから制御コネクションが前記メモリセルに導かれていることを特徴とする、
    セルエレメントフィールド。
  2. 機能および/または結線がコンフィギュラブルおよび/またはあらかじめ設定可能な多数のユニット、例えば機能セルおよび/またはメモリセルを有するプロセッサ、コプロセッサおよび/またはマイクロコントローラを構成する、
    請求項1に記載のセルエレメントフィールド。
  3. 前記機能セルは、算術的論理ユニットとして構成される、
    請求項1または2に記載のセルエレメントフィールド。
  4. 前記算術的論理ユニットは、拡張されたALUとして構成される、
    請求項1から3までのいずれか1項に記載のセルエレメントフィールド。
  5. 前記メモリセルを構成して、揮発的および/または不揮発的にデータを記憶するようにした、
    請求項1から4までのいずれか1項に記載のセルエレメントフィールド。
  6. 前記メモリセルを構成して、処理すべきデータおよび/または処理すべきプログラムステップを記憶するようにした、
    請求項1から5までのいずれか1項に記載のセルエレメントフィールド。
  7. セルエレメントフィールドにおいて、
    メモリセルを構成して、当該メモリセルを制御する機能セルの制御に応じて、当該機能セルに直接および/または間接的に通じているバスに、記憶した情報を出力するようにしたことを特徴とする、
    セルエレメントフィールド。
  8. 少なくとも1つのメモリセルおよび/または機能セルにレジスタ、例えばバックワードレジスタが対応付けられており、
    該レジスタは、メモリセルと機能セルとの間の情報路に配置されている、
    請求項1から7までのいずれか1項に記載のセルエレメントフィールド。
  9. 前記メモリセルを配置して、当該メモリセルを制御する機能セル、入力−出力セルおよび/または前記メモリセルを制御しない、算術的論理ユニットを有するセルからの情報を受け取るようにした、
    請求項1から8までのいずれか1項に記載のセルエレメントフィールド。
  10. 機能セル−メモリセルの組み合わせに少なくとも1つの入出力手段が対応付けて、これによって外部のユニットおよび/または別の機能ユニット、機能ユニット−メモリセルの組み合わせおよび/またはメモリセルに情報が送出され、および/またはこれらから受け取るようにした、
    請求項1から9までのいずれか1項に記載のセルエレメントフィールド。
  11. 前記入出力手段を構成して、機能セルからの制御命令も受け取るようにした、
    請求項1から10までのいずれか1項に記載のセルエレメントフィールド。
  12. 制御を構成して、以下の少なくともいくつかの命令、有利にはすべての命令を伝送するようにし、および/または
    前記メモリセルないしは入力/出力セルを構成して、以下の命令がデコードされるようにし、ここで前記命令は、
    DATA WRITE/READ,ADRESSPOINTER WRITE/READ,PROGRAMMPOINTER WRITE/READ,PROGRAMMPOINTER INCREMENT, STACKPOINTER WRITE/READであり、
    上記の命令はそれぞれ例えば内部および/または外部のアクセス,PUSH,POP, OPCODE, FETCHのための命令である、
    請求項1から11までのいずれか1項に記載のセルエレメントフィールド。
  13. 前記機能セルは、ただ1つのマスタとして、制御コネクションおよび/または制御コネクションとして使用されるバスセグメントにアクセスする、
    請求項1から12までのいずれか1項に記載のセルエレメントフィールド。
  14. 前記機能セルは、少なくともメモリセルおよび入出力セルの1つに隣接して配置されている、
    請求項1から13までのいずれか1項に記載のセルエレメントフィールド。
  15. 前記セルエレメントは多次元、例えばマトリクス状に配置されており、
    前記の機能セルおよび/または隣接するメモリセルないしは入出力セルは上の行からデータを受け取り、下の行にデータを送出し、
    1つの行にバスが設けられており、
    前記の機能セルと、少なくとも1つのメモリセルおよび/または入出力セルが同一の行に配置されている、
    請求項1から14までのいずれか1項に記載のセルエレメントフィールド。
  16. 算術および/または論理機能を実行する機能セルと、情報を受け取りおよび/または送出し、および/または当該情報を記憶する、例えばメモリセルおよび/または入出力セルである情報供給セルとを有するセルエレメントフィールドを作動する方法において、
    複数の機能セルの少なくとも1つにより、少なくとも1つの情報供給セルに制御命令を出力し、当該制御命令に応答して情報供給セルにて機能セルに対する情報を処理し、
    機能セルを構成して、情報供給セルから供給される情報に応答してさらなるデータ処理が行い、これによってシーケンサ的にデータを処理するようにしたことを特徴とする、
    セルエレメントフィールド作動方法。
  17. 前記機能セルを構成して、制御命令
    OPCODE FETCH,
    DATA WRITE INTERN,
    DATE WRITE EXTERN,
    DATA READ INTERN,
    DATA READ EXTERN,
    ADDRESSPOINTER WRITE INTERN,
    ADDRESSPOINTER WRITE EXTERN,
    ADDRESSPOINTER READ INTERN,
    ADDRESSPOINTER READ EXTERN,
    PROGRAMMPOINTER WRITE INTERN,
    PROGRAMMPOINTER WRITE EXTERN,
    PROGRAMMPOINTER READ INTERN,
    PROGRAMMPOINTER READ EXTERN,
    STACKPOINTER WRITE INTERN,
    STACKPOINTER WRITE EXTERN,
    STACKPOINTER READ INTERN,
    STACKPOINTER READ EXTERN,
    PUSH,
    POP,
    PROGRAMMPOINTER INCREMENT
    の少なくともいくつかを出力するようにし、
    セルエレメント動作に伴って上記の制御命令の少なくともいくつか、例えばすべてを必要に応じて出力する、
    請求項16記載の方法。
  18. 機能および/または結線がコンフィギュラブルなセルエレメントの多次元フィールドと、当該セルエレメントに対応付けられるローカルなコンフィギュレーションを前もって保持するコンフィギュレーション事前保持手段(Konfigurationvorhaltemittel)とを有するデータ処理装置において、
    前記コンフィギュレーション事前保持手段を構成して、事前保持されるコンフィギュレーションの少なくとも一部が不揮発的に前もって保持されるようにしたことを特徴とする
    データ処理装置。
  19. 機能および/または結線がコンフィギュラブルなセルエレメントの多次元フィールドと、当該セルエレメントに対応付けられるローカルなコンフィギュレーションを前もって保持するコンフィギュレーション事前保持手段とを有するデータ処理装置において、
    前記コンフィギュレーション事前保持手段を構成して、事前保持されるすべてのコンフィギュレーションが不揮発的に前もって保持されるようにしたことを特徴とする
    データ処理装置。
  20. 前記機能は、粗い粒度でコンフィギュラブルである、
    請求項18または19に記載のデータ処理装置。
  21. 前記結線は、粗い粒度でコンフィギュラブルである、
    請求項18から20までのいずれか1項に記載のデータ処理装置。
  22. セルエレメントとして、ALU、EALU、RAMセル、I/Oセル、論理ブロックのうちの少なくとも1つが設けられている、
    請求項18から21までのいずれか1項に記載のデータ処理装置。
  23. 各セルエレメントに、固有のコンフィギュレーション事前保持手段が対応付けられている、
    請求項18から22までのいずれか1項に記載のデータ処理装置。
  24. 前記コンフィギュレーション事前保持手段を構成して、多くのコンフィギュレーションが事前に保持されるようにした、
    請求項18から23までのいずれか1項に記載のデータ処理装置。
  25. 固定して設定される不揮発性の複数のコンフィギュレーションが、コンフィギュレーション事前保持手段に設定されている、
    請求項18から24までのいずれか1項に記載のデータ処理装置。
  26. 前記装置を構成して、例えばWaveコンフィギュレーションまたはローカルなシーケンシング中に、事前に保持した多数のコンフィギュレーションを交換して使用するようにした、
    請求項18から25までのいずれか1項に記載のデータ処理装置。
  27. いくつかのセルにて動作中に変更されるコンフィギュレーションを有し得るコンフィギュレーション事前保持手段が設けられている、
    請求項18から26までのいずれか1項に記載のデータ処理装置。
  28. コンフィギュレーション事前保持手段として、ROM,EPROM、EEPROM、フラッシュメモリ、ヒューズ、アンチヒューズプログラマブルメモリ手段および/または例えばシリコン構造の上の層に固定して設けられるメモリ手段のうちの少なくとも1つが選択される、
    請求項18から27までのいずれか1項に記載のデータ処理装置。
  29. 専用データ処理装置を作成する方法において、
    機能および/または結線がコンフィギュラブルなセルエレメントと、当該セルエレメントに対応付けられた、ローカルなコンフィギュレーションを前もって保持するコンフィギュレーション事前保持手段とを有する多次元のフィールドを設け、
    どのコンフィギュレーションが前記コンフィギュレーション事前保持手段に前もって保持すべきかを決定し、
    つぎに不揮発性のコンフィギュレーション事前保持手段を設けて、当該コンフィギュレーション事前保持手段が、前もって保持されるコンフィギュレーションの少なくとも一部を不揮発的に前もって保持するようにしたことを特徴とする、
    専用データ処理装置を作成する方法。
  30. 実行時にリコンフィギュラブルな多次元フィールドから出発する、
    請求項29のデータ処理装置に記載の方法。
  31. まず、リコンフィギュラブルな回路を有する、実行時にリコンフィギュラブルな多次元フィールドから出発して、
    つぎにリコンフィギュレーションに不要なフィールドを除去する、
    請求項30にのデータ処理装置記載の方法。
  32. 実行時に機能および/または結線がリコンフィギュラブルな、データ処理を行うセルからなるフィールドを有し、当該セルにメモリおよびシーケンサ制御部が対応付けられており、
    前記制御部を構成して、完全な命令セットおよび/または制限された命令セットが得られるようにした、
    例えば請求項18から28までのいずれか1項に記載のデータ処理装置、例えばプロセッサ。
  33. 実行時に機能および/または結線がリコンフィギュラブルな、データ処理を行うセルからなるフィールドと、ALUまたは別の論理結合回路と、これに対応付けられた例えば組み込み式のメモリとを有し、
    前記メモリは、別の半導体層、例えばALUまたは別の論理結合回路の上に配置されている、
    例えば請求項18から28までまたは請求項32のいずれか1項に記載のデータ処理装置、例えばプロセッサ。
  34. 実行時に機能および/または結線がリコンフィギュラブルな、データ処理を行うセルからなるフィールドを有し、当該セルのうちのいくつかがメモリ目的に使用され、
    前記セルを構成して、MMUおよび/またはDMA機能が実現されるようにした、
    例えば請求項18から28までまたは請求項32または33のいずれか1項に記載のデータ処理装置、例えばプロセッサ。
  35. 実行時に機能および/または結線がリコンフィギュラブルな、データ処理を行うセルからなるフィールドを有し、当該セルのうちのいくつかがメモリ目的に使用され、
    少なくとも1つのセル、有利には少なくともいくつかのセル、殊に有利にはすべてではないセルは、入力/出力機能を実現し、また有利には同時にデータ処理のためのALUまたは別の論理結合回路を有し、
    例えば手段が設けられており、これによって各入力および/または出力チャネルに所定のアドレスが対応付けられており、および/または
    送出側識別手段が設けられている、
    例えば請求項18から28までまたは請求項32から34までのいずれか1項に記載のデータ処理装置、例えばプロセッサ。
  36. 実行時に機能および/または結線がリコンフィギュラブルなデータ処理を行うセルからなるフィールドを有し、
    少なくともいくつかのセル、殊に有利にはすべてではないセルが、粒度の細かいFPGA構造を有し、
    これに対して別のセルが粒度の粗い構造を有する、
    例えば請求項18から28までまたは請求項32から35までのいずれか1項に記載のデータ処理装置、例えばプロセッサ。
  37. セルの高速なリコンフィギュレーションのためのコンフィギュレーションユニットが設けられており、
    該コンフィギュレーションユニットは、粒度の粗いセルおよび/または非FPGAセルをコンフィギュレーションするためにだけ結線される、
    請求項36に記載のデータ処理装置。
  38. 実行時に機能および/または結線がリコンフィギュラブルなデータ処理を行うセルからなるフィールドを有し、ここで該セルはビット幅の比較的広いデータを処理するセルであり、
    前記セルを構成して、比較的広いビット幅を有するデータか、または比較的狭いビット幅を有するデータのいずれかを選択的に処理するようにし、この場合に比較的ビット幅の狭い複数のデータを、例えばSIMD演算器方式で処理するようにした、
    例えば請求項18から28までまたは請求項32から37までのいずれか1項に記載のデータ処理装置、例えばプロセッサ。
  39. セルに向って、またはセルから伸びて導かれるバスは分割可能であり、これによって例えば、セルにて最大限に処理可能なビット幅よりもビット幅の狭い複数のデータストリームが互いに依存しないで転送および/または受け取られるようにした、
    例えば請求項18から28までまたは請求項32から38までのいずれか1項に記載のデータ処理装置。
  40. バス管理がローカルにセルにて行われる、
    例えば請求項18から28までまたは請求項32から39までのいずれか1項に記載のデータ処理装置。
  41. PAEにシーケンサを実現するためのメモリが対応付けられており、またアドレスバスが部分アドレスバスとして分割される、
    例えば請求項18から28までまたは請求項32から40までのいずれか1項に記載のデータ処理装置。
  42. PAEにシーケンサを実現するためのメモリが対応付けられており、
    また装置が設けられており、これによって記憶場所にアクセスする際に、つぎのメモリアクセスに対する記憶場所のアドレスに関する情報が決定されると共にデータおよび/または命令が求められる、
    例えば請求項18から28までまたは請求項32から41までのいずれか1項に記載のデータ処理装置。
JP2003538928A 2001-09-19 2002-09-19 リコンフィギュアブル素子 Expired - Fee Related JP4456864B2 (ja)

Applications Claiming Priority (35)

Application Number Priority Date Filing Date Title
DE10146132 2001-09-19
US09/967,497 US7266725B2 (en) 2001-09-03 2001-09-28 Method for debugging reconfigurable architectures
EP0111299 2001-09-30
PCT/EP2001/011593 WO2002029600A2 (de) 2000-10-06 2001-10-08 Zellenarordnung mit segmentierterwischenzellstruktur
DE10154259 2001-11-05
EP01129923 2001-12-14
EP02001331 2002-01-18
DE10206653 2002-02-15
DE10206857 2002-02-18
DE10206856 2002-02-18
DE10207224 2002-02-21
DE10207226 2002-02-21
DE10208434 2002-02-27
DE10208435 2002-02-27
PCT/EP2002/002403 WO2002071249A2 (de) 2001-03-05 2002-03-05 Verfahren und vorrichtungen zur datenbe- und/oder verarbeitung
PCT/EP2002/002398 WO2002071248A2 (de) 2001-03-05 2002-03-05 Verfahren und vorrichtungen zur datenbe- und/oder verarbeitung
PCT/EP2002/002402 WO2002071196A2 (de) 2001-03-05 2002-03-05 Verfahren und vorrichtung zu datenbe- und/oder verarbeitung
DE10212622A DE10212622A1 (de) 2002-03-21 2002-03-21 Prozessorkopplung
DE10212621 2002-03-21
EP02009868 2002-05-02
DE10219681 2002-05-02
DE10226186A DE10226186A1 (de) 2002-02-15 2002-06-12 IO-Entkopplung
DE10227650A DE10227650A1 (de) 2001-06-20 2002-06-20 Rekonfigurierbare Elemente
DE10236271 2002-08-07
DE10236269 2002-08-07
DE10236272 2002-08-07
DE10238173A DE10238173A1 (de) 2002-08-07 2002-08-21 Rekonfigurationsdatenladeverfahren
DE10238174A DE10238174A1 (de) 2002-08-07 2002-08-21 Verfahren und Vorrichtung zur Datenverarbeitung
DE10238172A DE10238172A1 (de) 2002-08-07 2002-08-21 Verfahren und Vorrichtung zur Datenverarbeitung
DE10240000A DE10240000A1 (de) 2002-08-27 2002-08-27 Busssysteme und Rekonfigurationsverfahren
DE10240022 2002-08-27
PCT/DE2002/003278 WO2003023616A2 (de) 2001-09-03 2002-09-03 Verfahren zum debuggen rekonfigurierbarer architekturen
DE2002141812 DE10241812A1 (de) 2002-09-06 2002-09-06 Rekonfigurierbare Sequenzerstruktur
PCT/EP2002/010084 WO2003025770A2 (de) 2001-09-07 2002-09-09 Rekonfigurierbares system
PCT/EP2002/010572 WO2003036507A2 (de) 2001-09-19 2002-09-19 Rekonfigurierbare elemente

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009271120A Division JP2010079923A (ja) 2001-09-19 2009-11-30 処理チップ、チップを含むシステム、マルチプロセッサ装置およびマルチコアプロセッサ装置

Publications (2)

Publication Number Publication Date
JP2005515525A true JP2005515525A (ja) 2005-05-26
JP4456864B2 JP4456864B2 (ja) 2010-04-28

Family

ID=41210641

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003538928A Expired - Fee Related JP4456864B2 (ja) 2001-09-19 2002-09-19 リコンフィギュアブル素子
JP2009271120A Pending JP2010079923A (ja) 2001-09-19 2009-11-30 処理チップ、チップを含むシステム、マルチプロセッサ装置およびマルチコアプロセッサ装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2009271120A Pending JP2010079923A (ja) 2001-09-19 2009-11-30 処理チップ、チップを含むシステム、マルチプロセッサ装置およびマルチコアプロセッサ装置

Country Status (5)

Country Link
EP (1) EP1472616B8 (ja)
JP (2) JP4456864B2 (ja)
AT (1) ATE533111T1 (ja)
AU (1) AU2002357982A1 (ja)
WO (1) WO2003036507A2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007094812A (ja) * 2005-09-29 2007-04-12 Renesas Technology Corp 並列演算装置
JP2008015772A (ja) * 2006-07-05 2008-01-24 Nec Electronics Corp 半導体集積回路
JP2009213054A (ja) * 2008-03-06 2009-09-17 Fujitsu Microelectronics Ltd 論理回路装置
JP2011129141A (ja) * 2011-01-17 2011-06-30 Renesas Electronics Corp 半導体集積回路
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 (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US8127061B2 (en) 2002-02-18 2012-02-28 Martin Vorbach Bus systems and reconfiguration methods
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
JP4527571B2 (ja) 2005-03-14 2010-08-18 富士通株式会社 再構成可能演算処理装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0713945A (ja) * 1993-06-16 1995-01-17 Nippon Sheet Glass Co Ltd 演算処理部および制御・記憶部分離型マルチプロセッサ ・システムのバス構造
JPH08148573A (ja) * 1994-11-21 1996-06-07 Hitachi Ltd 半導体装置
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
US5970254A (en) * 1997-06-27 1999-10-19 Cooke; Laurence H. Integrated processor and programmable data path chip for reconfigurable computing
JPH11168185A (ja) * 1997-12-03 1999-06-22 Rohm Co Ltd 積層基板体および半導体装置
US6067633A (en) * 1998-03-31 2000-05-23 International Business Machines Corp Design and methodology for manufacturing data processing systems having multiple processors
US6092174A (en) * 1998-06-01 2000-07-18 Context, Inc. Dynamically reconfigurable distributed integrated circuit processor and method
AU5805300A (en) * 1999-06-10 2001-01-02 Pact Informationstechnologie Gmbh Sequence partitioning in cell structures

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007094812A (ja) * 2005-09-29 2007-04-12 Renesas Technology Corp 並列演算装置
JP2008015772A (ja) * 2006-07-05 2008-01-24 Nec Electronics Corp 半導体集積回路
US8041925B2 (en) 2006-07-05 2011-10-18 Renesas Electronics Corporation Switch coupled function blocks with additional direct coupling and internal data passing from input to output to facilitate more switched inputs to second block
JP2009213054A (ja) * 2008-03-06 2009-09-17 Fujitsu Microelectronics Ltd 論理回路装置
JP2011129141A (ja) * 2011-01-17 2011-06-30 Renesas Electronics Corp 半導体集積回路
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
ATE533111T1 (de) 2011-11-15
AU2002357982A1 (en) 2003-05-06
EP1472616B8 (de) 2012-03-21
WO2003036507A2 (de) 2003-05-01
EP1472616B1 (de) 2011-11-09
JP2010079923A (ja) 2010-04-08
JP4456864B2 (ja) 2010-04-28
EP1472616A2 (de) 2004-11-03
WO2003036507A3 (de) 2004-08-12

Similar Documents

Publication Publication Date Title
US8429385B2 (en) Device including a field having function cells and information providing cells controlled by the function cells
JP2010079923A (ja) 処理チップ、チップを含むシステム、マルチプロセッサ装置およびマルチコアプロセッサ装置
US8686549B2 (en) Reconfigurable elements
US8686475B2 (en) Reconfigurable elements
US10838787B2 (en) Processing system with interspersed processors with multi-layer interconnect
US11296705B2 (en) Stacked programmable integrated circuitry with smart memory
US9092595B2 (en) Multiprocessor having associated RAM units
US11157428B1 (en) Architecture and programming in a parallel processing environment with a tiled processor having a direct memory access controller
EP2372530A1 (en) Data processing method and device
JP2008537268A (ja) 可変精度相互接続を具えたデータ処理エレメントの配列
CN1126340A (zh) 可再配置的专用器件
US8949576B2 (en) Arithmetic node including general digital signal processing functions for an adaptive computing machine
US11669464B1 (en) Multi-addressing mode for DMA and non-sequential read and write patterns
US20060265571A1 (en) Processor with different types of control units for jointly used resources
JP2004535613A (ja) データ処理方法およびデータ処理装置
US20040054818A1 (en) Flexible results pipeline for processing element
US8890215B2 (en) Reconfigurable elements
JP4743581B2 (ja) データ処理システムおよびその制御方法
US7814296B2 (en) Arithmetic units responsive to common control signal to generate signals to selectors for selecting instructions from among respective program memories for SIMD / MIMD processing control
US6675283B1 (en) Hierarchical connection of plurality of functional units with faster neighbor first level and slower distant second level connections
Francis et al. A network of time-division multiplexed wiring for FPGAs
US20220221986A1 (en) Fabric memory network-on-chip

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050826

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080208

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080508

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080515

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080609

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080616

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080708

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080717

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080808

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091130

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20091207

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: 20100108

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: 20100208

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

Free format text: PAYMENT UNTIL: 20130212

Year of fee payment: 3

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: 20140212

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees