JPH08286908A - 動的に再設定自在な処理ユニット、システム及び方法 - Google Patents

動的に再設定自在な処理ユニット、システム及び方法

Info

Publication number
JPH08286908A
JPH08286908A JP8095690A JP9569096A JPH08286908A JP H08286908 A JPH08286908 A JP H08286908A JP 8095690 A JP8095690 A JP 8095690A JP 9569096 A JP9569096 A JP 9569096A JP H08286908 A JPH08286908 A JP H08286908A
Authority
JP
Japan
Prior art keywords
instruction
data
input
reconfigurable
output
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
JP8095690A
Other languages
English (en)
Other versions
JP3785218B2 (ja
Inventor
Bakusutaa Maikeru
バクスター マイケル
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of JPH08286908A publication Critical patent/JPH08286908A/ja
Application granted granted Critical
Publication of JP3785218B2 publication Critical patent/JP3785218B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/47Retargetable compilers
    • 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
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • 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/30181Instruction operation extension or modification
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • G06F9/3828Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)
  • Multi Processors (AREA)
  • Logic Circuits (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 データ処理のためのプログラム命令を実行す
るための動的に再設定可能な計算環境を備える処理ユニ
ットないしはシステムを提供する。 【解決手段】 1組のSマシン12と、各々のSマシン
12に対応するTマシン14と、汎用相互接続マトリッ
クス16と、1組のI/OTマシン18と、1組のI/
O装置20と、マスター時刻ベースユニット22がスケ
ーラブル、並列、動的に再設定可能な計算環境のシステ
ム10を構成する。各々のSマシン12は、メモリと、
第1の局部時刻ユニットと、動的に再設定自在な処理ユ
ニットを有する動的に再設定自在な計算機である。処理
ユニットは、命令フェッチユニットとして設定された再
プログラム可能な論理装置とデータ演算ユニットと、ア
ドレス演算ユニットとを使用して実装され、これらの各
々が1組のプログラム命令内に埋め込まれた再設定割込
み又は再設定指示の選択に応じてプログラム実行中に選
択的に再構成される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にコンピュー
タ・アーキテクチャに関連し、さらに詳しくは、動的に
再設定自在な処理ユニット、システム及び方法に関す
る。さらに詳しくは、本発明はスケーラブル、並列、動
的に再設定自在なコンピューティングシステム及び方法
に関する。
【0002】
【従来の技術】コンピュータ・アーキテクチャの発達は
さらに大きな計算能力の要求により導かれる。様々な種
類の計算上の問題の高速で正確な解決は典型的に様々な
種類の計算資源を必要とする。任意の問題形式の範囲
で、計算能力は検討中の問題形式について特定のアーキ
テクチャを備えた計算資源の使用により拡張することが
できる。例えば、デジタル信号処理(DSP)ハードウ
ェアを汎用コンピュータと組み合せて使用することによ
り信号処理能力のあるものを大幅に拡張できる。コンピ
ュータが検討している問題形式に特定のアーキテクチャ
を備えていない場合計算能力はさらに拡張されるか、又
は、その特定の問題形式について利用可能な計算資源に
関連してさらに最適化される。現在の並列及び超並列コ
ンピュータはO(n2 )の特定の種類の問題、又は、さ
らに複雑な問題に高い能力を発揮し、この場合の例を提
供する。
【0003】大きな計算能力の必要性は、現在と考えら
れる将来の応用の両方で、可能な限り広い範囲において
のシステムコスト低減の必要性とシステム生産性拡充の
必要性に対して均衡させる必要がある。一般に、限られ
た個数の問題形式に専用の計算資源をコンピュータ・シ
ステムへ組み込むことは、専用ハードウェアが典型的に
は汎用ハードウェアより高価であるためシステムのコス
トに対して悪影響をもたらす。特殊用途コンピュータ全
体の設計と製造はエンジニアリングの時間とハードウェ
アのコストの両面で考えられないほど高価になる。専用
ハードウェアを使用して計算能力を増加させるのは計算
要求の変化のため殆ど性能上の利益が得られない。従来
技術において、計算の必要が変化すると、新しい種類の
専用ハードウェア又は新しい専用システムが設計製造さ
れ、望ましくないほど多くの再利用できないエンジニア
リング・コストの繰返しとなった。特定の問題形式に専
用の計算資源を使用すると、計算要求の変化を考慮した
場合利用可能なシステムのシリコンが非効率的に使用さ
れることになる。つまり、前述の理由から、専用ハード
ウェアを用いた計算能力の増加の試みは望ましくない。
【0004】従来技術において、再プログラム可能又は
再設定自在なハードウェアを使用して計算能力を増加さ
せ、かつ、問題形式への応用性を最大限にする試みがな
されてきた。第1のこのような従来技術の試みは、ダウ
ンローダブル・マイクロコード・コンピュータ・アーキ
テクチャである。ダウンローダブル・マイクロコード・
コンピュータ・アーキテクチャでは、固定された再設定
自在ではないハードウェア資源の挙動は特定バージョン
のマイクロコードを使用することによって選択的に変更
できる。このようなアーキテクチャの例として、IBM
System/360がある。このような従来技術システムの基本
的計算ハードウェアはそれ自体が再設定自在ではないの
で、このようなシステムは広範囲の問題形式を考慮した
場合に最適な計算能力を提供できない。
【0005】計算能力の増大と問題形式への応用性の拡
充に対する第2の従来技術の方法は、再設定自在ではな
いホストプロセッサ又はホストシステムと結合した再設
定自在なハードウェアの使用である。この従来技術の方
法は、再設定自在ではないホストに結合した1つ又はそ
れ以上の再設定自在なコプロセッサの使用が最も普遍的
に関係する。この方法は、Attached Reconfigurable
Processor(ARP)アーキテクチャに分類され、ホス
トに接続されたプロセッサセット内部のハードウェアの
ある部分が再設定自在になっている。1組の再設定自在
なプロセッサをホストシステムに結合した現在のARP
システムの例としては、スーパーコンピューティング・
リサーチセンタ(ボウイ、メリーランド州)のSPLASHー1
及びSPLASH-2システム、SPLASHー2の市販製品であるアナ
ポリス・マイクロシステムズ(アナポリス、メリーラン
ド州)のWILDFIRE Custom Cnfigurable Computer、
バーチャル・コンピュータ・コーポレーション(レセ
ダ、カリフォルニア州)のEVC−1がある。大半の計
算重視の問題で、比較的小さいプログラムコード部分の
実行に大量の時間が消費されている。一般に、ARPア
ーキテクチャはこのようなプログラムコード部分に再設
定自在な計算アクセラレータを提供するために使用す
る。残念ながら、1つ又はそれ以上の再設定自在な計算
アクセラレータに基づく計算モデルは、詳細について後
述するように、顕著な欠点を含んでいる。
【0006】
【発明が解決しようとする課題】ARPアーキテクチャ
の第1の欠点は、ARPシステムが特定の時刻に再設定
自在なハードウェア内に特定のアルゴリズムの最適化し
た実装を提供しようと試みることによっている。例え
ば、バーチャル・コンピュータ・コーポレーションのE
VC−1の背後にある哲学は、特定アルゴリズムを再設
定自在なハードウェア資源の特定の構成に変換してその
特定のアルゴリズムに最適化した計算能力を提供しよう
とするものである。再設定自在なハードウェア資源は専
ら特定アルゴリズムの最適能力の提供に使用される。例
えば、命令の実行管理プログラム等さらに汎用の再設定
自在なハードウェア資源の使用は回避される。従って、
任意のアルゴリズムについて再設定自在なハードウェア
資源は最適能力を確保するように結合された個別のゲー
トの観点から考慮される。
【0007】幾つかのARPシステムは、「プログラ
ム」が従来のプログラム命令並びに各種再設定自在なハ
ードウェア資源がどのように相互接続されているかを指
定する専用の命令の両方を含むようなプログラミング・
モデルに依存している。ARPシステムはゲートレベル
のアルゴリズム特有の方法で再設定自在なハードウェア
資源を考えているので、これらの専用命令は使用される
再設定自在なハードウェア資源の各々の性質についての
明示的な詳細と他の再設定自在なハードウェア資源に接
続される方法を提供しなければならない。これは、プロ
グラムの複雑さに悪影響を及ぼす。プログラムの複雑さ
を減少するため、プログラムが従来の高級プログラミン
グ言語の命令と高級専用命令の両方を含むようなプログ
ラミングモデルを使用する試みがなされてきた。現在の
ARPシステムは高級プログラミング言語の命令と前述
の高級専用命令の両方をコンパイルできるコンパイラシ
ステムを使用しようとしている。このようなコンパイラ
システムの標的出力は従来の高級プログラミング言語の
命令に対するアセンブリ言語コードと専用命令について
のハードウェア記述言語コード(HDL)である。残念
ながら、1組の再設定自在なハードウェア資源と最適な
計算能力を検討している全ての特定のアルゴリズムに提
供する相互接続方式との自動判定はNPハードの問題で
ある。幾つかのARPシステムの長期的な目標はアルゴ
リズムを1組のゲートに対する最適な相互接続方式にコ
ンパイルすることのできるコンパイラシステムの開発で
ある。しかし、このようなコンパイラシステムの開発は
極めて困難な作業で、特に複数のアルゴリズム形式を考
慮している場合がそうである。
【0008】ARPアーキテクチャの第2の欠点は、A
RP装置が設定されたアルゴリズムに関する計算作業を
複数の再設定自在な論理装置に分散することによる。例
えば、1組のフィールド・プログラマブル論理装置(F
PGA)を用いて実装され並列乗算アクセラレータを実
装するように構成されたARP装置では、並列乗算に関
連する計算作業はFPGAの組全体に分散される。従っ
て、ARP装置が設定できるアルゴリズムの大きさは、
再設定自在に存在する論理装置の個数で制限される。A
RP装置が取り扱うことのできるデータセットの最大の
大きさも同様に制限される。ソースコードの検証はAR
P装置の制限の明らかな指標を必ずしも提供し得ない
が、これは、幾つかのアルゴリズムがデータの依存性を
有するためである。一般に、データ依存アルゴリズムは
回避される。
【0009】さらに、ARPアーキテクチャは複数の再
設定可能な論理装置にわたる計算作業の分散を教示して
いるので、新規(又は、僅かにでも変更された)アルゴ
リズムの対応は再設定を全体に行なう必要がある、即
ち、複数の再設定自在な論理装置を再設定しなければな
らない。これは、別の問題又はカスケード接続した下位
の問題について再設定が発生し得る最大速度を制限す
る。
【0010】ARPアーキテクチャの第3の欠点は、1
つ又はそれ以上のプログラムコード部分がホスト上で実
行されることに由来する。つまり、ARP装置はそれ自
体が独立計算システムではなく、ARP装置が問題全体
を実行せず、従って、ホストとの相互作用が必要とされ
る。幾つかのプログラムコードは再設定自在ではないホ
ストで実行されるので、利用可能なシリコン資源の組み
合せはプログラム実行の時間枠で最大限に使用されな
い。特に、ホストによる命令実行中は、ARP装置上の
シリコン資源が待機しているか非効率的に使用されるこ
とになる。同様に、ARP装置がデータを演算すると
き、ホスト上のシリコン資源は、一般に、非効率的に使
用される。複数プログラム全体を簡単に実行するため、
システム内部のシリコン資源は容易に再利用できる資源
にグループ化する必要がある。前述のように、ARPシ
ステムは再設定自在なハードウェア資源を特定の時刻に
特定のアルゴリズムの実装のために最適に相互接続され
た1組のゲートとして取り扱う。つまり、ARPシステ
ムは特定の再設定自在なハードウェア資源を1つのアル
ゴリズムから別のアルゴリズムへ容易に再利用できる資
源として取り扱うための手段を提供しないが、これは、
再利用にはある程度の水準のアルゴリズムの独自性が必
要なためである。
【0011】ARP装置は、現在実行中のホストプログ
ラムをデータとして取り扱えず、一般にそれ自身を状況
に当てはめることができない。ARP装置はそれ自身の
ホストプログラムの実行によって自分自身をシミュレー
トするようには簡単にできない。さらに、ARP装置は
それ自身のHDL又はアプリケーション・プログラムを
それ自身で、これの構成された再設定自在なハードウェ
ア資源を直接使ってコンパイルするように作ることはで
きない。ARP装置はホストプロセッサからの独立を教
示する自己内蔵計算モデルとの関連においてアーキテク
チャが制限される。
【0012】ARP装置は計算アクセラレータとして機
能するので、一般に、独立したI/O(入出力)処理は
できない。典型的には、ARP装置はI/O処理にホス
トの存在を必要とする。ARP装置の性能はI/Oで制
限され得る。しかし、ARP装置は特定のI/O問題を
加速するように設定できることが当業者には理解されよ
う。しかし、ARP装置全体は単一の特定の問題に設定
されるので、ARP装置はI/O処理とデータ処理とを
妥協せずに均衡させることができない。さらに、ARP
装置は割込処理のための手段を提供しない。ARPは計
算の加速を最大にするように向けられており割込みは計
算速度をマイナスに加速するのでARPの教示はこのよ
うな機構を提供しない。
【0013】ARPアーキテクチャの第4の欠点は、A
RP装置を使用して開発するのが難しい固有データの並
行処理を有するソフトウェアアプリケーションが存在す
るために存在している。HDLでコンパイルするアプリ
ケーションは非常に大きなネットリストのネット名シン
ボルの解釈が必要な場合に、このような例の1つを提供
する。
【0014】ARPアーキテクチャに関連した第5の欠
点は、これが基本的にはSIMD計算機アーキテクチャ
・モデルであることである。ARPアーキテクチャは1
つ又はそれ以上の再設定自在ではない従来技術システム
よりアーキテクチャの面で効率が悪い。ARPシステム
はプログラムの実行処理の一部だけ、主として算術計算
の算術論理を、各々の特定の設定インスタンスで利用で
きる再設定自在なハードウェアが提供できるかぎりの計
算能力で反映する。逆に、1971年のフェアチャイル
ドによるSYMBOLマシンのシステム設計では、プロ
グラム実行の全ての態様でコンピュータ全体が独自のハ
ードウェア内容を使用した。その結果、SYMBOLは
ARPシステムで教示されるホスト部分を含めたコンピ
ュータのシステム・アプリケーションについてのあらゆ
る要素を包含した。
【0015】ARPアーキテクチャは他の欠点も示す。
例えば、多数の再設定自在な論理装置への独立したタイ
ミングを提供するための効果的な手段を欠除している。
同様に、カスケード接続したARP装置は独立して刻時
するユニットを提供するための効率的なクロック分散手
段を欠除している。別の例として、加速を行なおうとす
るソースコードのステートメントと実行時間を正確に相
関させることが困難である。ネットシステムのクロック
速度の正確な推定には、ARP装置はHDLコンパイル
後のコンピュータ支援設計(CAD)ツールでモデル化
すべきだが、このような基本的パラメータに到達するに
は時間のかかる処理である。
【0016】必要とされるものは前述の従来技術の制限
を克服する再設定自在な計算環境のための手段である。
【0017】
【課題を解決するための手段】
A.請求項1に関して 請求項1記載の発明は、データ処理のためのプログラム
命令を実行するための動的に再設定自在な処理ユニット
であって、この動的に再設定自在な処理ユニットは、入
力と、出力と、第1の命令セットからの命令を実行する
第1のハードウェアアーキテクチャと第2の命令セット
の命令を実行する第2のハードウェアアーキテクチャの
間でプログラム命令のシーケンス実行中に選択的に変更
することのできる変更可能な内部ハードウェア構造とを
有し、前記動的に再設定自在な処理ユニットは前記第1
のハードウェアアーキテクチャとして設定された場合に
再設定命令に応じて前記動的に再設定自在な処理ユニッ
トの前記内部ハードウェア構造を変更して前記第2のハ
ードウェアアーキテクチャに設定されるように構成して
いる。
【0018】請求項1において、再設定命令は前記第1
の命令セットの命令の1つであってもよい(A−1)。
また、請求項1において、前記再設定命令は別の命令の
一部であって前記再設定命令の実行は前記動的に再設定
自在な処理ユニットのレジスタ内に記憶されたデータに
依存するようにしてもよい(A−2)。さらに、請求項
1において、入力と、出力と、前記第1の命令セットか
らの命令を実行する前記第1のハードウェアアーキテク
チャと前記第2の命令セットの命令を実行する前記第2
のハードウェアアーキテクチャの間でプログラム命令の
シーケンス実行中に選択的に変更することのできる前記
変更可能な内部ハードウェア構造とを有する第2の再設
定自在な処理ユニットをさらに含み、前記第2の再設定
自在な処理ユニットの入力は前記動的に再設定自在な処
理ユニットの出力に接続され、前記第2の再設定自在な
処理ユニットの出力は前記動的に再設定自在な処理ユニ
ットの入力に接続されるようにしてもよい(A−3)。
このA−3において、動的に再設定自在な処理ユニット
は前記第2の再設定自在な処理ユニットの再設定とは独
立して動的に再設定できるようにしてもよい(A−
4)。
【0019】また、請求項1において、第1のハードウ
ェア構成は逐次命令処理装置であって前記第2のハード
ウェアアーキテクチャは並列命令処理装置であってもよ
い(A−5)。請求項1において、動的に再設定自在な
処理ユニットの前記変更可能な内部ハードウェア構造は
データ入力と、第1の制御出力と、第2の制御出力とを
有して前記動的に再設定自在な処理ユニット内部の命令
実行動作をシーケンス化するための命令フェッチユニッ
トを含み、前記データ入力がメモリのデータポートに接
続されるようにしてもよい(A−6)。
【0020】このA−6において、命令フェッチユニッ
トは、さらに、出力を有し、命令セット構成を実装する
ように設定されたときに前記動的に再設定自在な処理ユ
ニットが割込信号に応答する様式を指定する割込応答信
号を含む1組のアーキテクチャ記述信号を記憶するアー
キテクチャ記述メモリと、入力と出力とを有し、命令実
行サイクルと、命令フェッチ状態、命令復号状態、命令
実行状態、書き戻し状態の間の遷移とを制御するための
命令状態シーケンサと、入力と出力とを有し、命令実行
サイクル内で割込サービス状態への移行が許容される状
態を指定する遷移制御信号を生成し、前記入力は前記ア
ーキテクチャ記述メモリの出力に接続され、前記出力は
前記命令状態シーケンサの入力に接続された割込状態マ
シンと、を含んでいてもよい(A−7)。
【0021】また、請求項1において、動的に再設定自
在な処理ユニットの前記変更可能な内部ハードウェア構
造はデータポートと制御入力とを有しデータに対する演
算を実行し、前記データポートは前記メモリの前記デー
タポートへ接続され前記制御入力は制御信号を受信する
ように接続されたデータ演算ユニットを含んでいてもよ
い(A−8)。このA−8において、データ演算ユニッ
トは、データポートと、制御入力と、フィードバック入
力と、出力とを有し、前記データポートと前記フィード
バック入力と前記出力の間でデータを選択的に転送し、
前記データポートが前記メモリの前記データポートへ接
続され、前記制御入力は制御信号を受信するように接続
されたスイッチと、入力と、出力と、制御入力とを有
し、前記入力は前記スイッチの前記出力に接続され、前
記制御入力は制御信号を受信するように接続されたデー
タを保存するための記憶/整列ユニットと、入力と、出
力と、制御入力とを有し、前記入力は前記記憶/整列ユ
ニットの前記出力に接続され、前記出力は前記スイッチ
の前記フィードバック入力へ接続され、前記制御入力は
制御信号を受信するように接続され、データ計算を実行
するためのデータ演算回路と、を含んでいてもよい(A
−9)。
【0022】このA−9において、記憶/整列ユニット
は再設定自在であって、ランダムアクセスメモリとパイ
プライン化レジスタとからなるグループからの1つとし
て対応する命令セットアーキテクチャの制御信号に応じ
て選択的に設定することができるようにしてもよい(A
−10)。また、A−9において、データ演算ユニット
は再設定自在であって、算術論理ユニットとパイプライ
ン化機能ユニットからなるグループからの1つとして対
応する命令セットアーキテクチャの制御信号に応じた信
号に従い選択的に設定することができるようにしてもよ
い(A−11)。
【0023】さらに、請求項1において、再設定自在な
処理ユニットの前記変更可能な内部ハードウェア構造
は、制御入力と、アドレス入力と、出力とを有して前記
アドレス入力はメモリのデータポートに接続され、前記
出力は前記メモリのアドレス入力へ接続され、前記制御
入力は制御信号を受信するように接続されて、アドレス
に対する演算を実行するためのアドレス演算ユニットを
含むようにしてもよい(A−12)。このA−12にお
いて、アドレス演算ユニットは、データポートと、制御
入力と、フィードバック入力と、出力とを有し、前記デ
ータポートは前記メモリの前記データポートに接続さ
れ、前記制御入力で受信した制御信号に応じて前記デー
タポートと前記フィードバック入力と前記出力の間でア
ドレスを選択的に転送するためのスイッチと、入力と、
出力と、制御入力とを有し、前記入力は前記スイッチの
出力に接続され、前記制御入力は制御信号を受信するよ
うに接続されて、データを保存するための記憶/カウン
トユニットと、入力と、出力と、制御入力とを有し、前
記入力は前記記憶/カウントユニットの出力に接続さ
れ、前記出力は前記スイッチのフィードバック入力に接
続され、前記制御入力は制御信号を受信するように接続
されてアドレス計算を実行するためのアドレス演算回路
と、を含んでいてもよい(A−13)。
【0024】このA−13において、記憶/カウントユ
ニットは再設定自在であって、ランダムアクセスメモリ
とレジスタとからなるグループからの1つとして前記記
憶/カウントユニットの前記制御入力に受信した信号に
応じて選択的に設定することができるようにしてもよい
(A−14)。また、A−13において、アドレス演算
回路はレジスタと算術演算ユニットからなるグループの
1つとして前記アドレス演算回路の制御入力に受信した
信号に応じて再設定自在としてもよい(A−15)。
【0025】B.請求項2に関して 請求項2記載の発明は、動的に再設定自在な計算環境の
ためのシステムであって、データを処理するプログラム
命令を実行し、入力と、出力と、プログラム命令のシー
ケンスの実行中に選択的に変更することのできる変更可
能な内部ハードウェア構造とを有する第1の再設定自在
な処理ユニットと、入力と、出力と、第1のデータポー
トと、第2のデータポートとを有し、前記入力は前記第
1の再設定自在な処理ユニットの出力に接続され、前記
出力は前記第1の再設定自在な処理ユニットの入力に接
続されて、前記第1の再設定自在な処理ユニットとの間
でデータを転送するための第1の通信装置と、を含んで
構成されている。
【0026】ここに、請求項2に加えて、入力と、出力
と、プログラム命令のシーケンスの実行中に選択的に変
更することのできる変更可能な内部ハードウェア構造と
を有しデータ処理のためのプログラム命令を実行するた
めの第2の再設定自在な処理ユニットと、入力と、出力
と、第1のデータポートと、第2のデータポートとを有
し、前記入力は前記第2の再設定自在な処理ユニットの
出力に接続され、前記出力は前記第2の再設定自在な処
理ユニットの入力に接続されて、前記第2の再設定自在
な処理ユニットとの間でデータを転送するための第2の
通信装置と、複数の通信チャンネルを有し、前記第1の
通信装置の前記第1のデータポートと、前記第1の通信
装置の前記第2のデータポートと、前記第2の通信装置
の前記第1のデータポートと、前記第2の通信装置の前
記第2のデータポートの各々が前記複数の通信チャンネ
ルの1つに接続されて、データを転送するための相互接
続手段と、を含んでいてもよい(B−1)。
【0027】このB−1において、第1の再設定自在な
処理ユニットが、前記第2の再設定自在な処理ユニット
の再設定とは独立に動的に再設定自在であってもよい
(B−2)。また、B−1において、入力と、出力と、
プログラム命令のシーケンスの実行中に選択的に変更す
ることのできる変更可能な内部ハードウェア構造とを有
し、データ処理のためのプログラム命令を実行するため
の第3の再設定自在な処理ユニットと、入力と、出力
と、第1のデータポートと、第2のデータポートとを有
し、前記入力は前記第3の再設定自在な処理ユニットの
出力に接続され、前記出力は前記第3の再設定自在な処
理ユニットの入力に接続されて、前記第3の再設定自在
な処理ユニットとの間でデータを転送するための第3の
通信装置と、をさらに含んでいてもよい(B−3)。
【0028】また、請求項2において、入力と出力とを
有し、単一の命令セットから構成される命令のプログラ
ムを実行するための所定のアーキテクチャを有する再設
定自在ではない処理ユニットと、入力と、出力と、第1
のデータポートと、第2のデータポートとを有し、前記
入力は前記再設定自在ではない処理ユニットの出力に接
続され、前記出力は前記再設定自在ではない処理ユニッ
トの入力に接続されて、前記再設定自在ではない処理ユ
ニットとの間でデータを転送するための第2の通信装置
と、複数の通信チャンネルを有し、前記第1の通信装置
の前記第1のデータポートと、前記第1の通信装置の前
記第2のデータポートと、前記第2の通信装置の前記第
1のデータポートと、前記第2の通信装置の前記第2の
データポートの各々が前記複数の通信チャンネルの1つ
に接続されて、データを転送するための相互接続手段
と、をさらに含んでいてもよい(B−4)。
【0029】請求項2において、入力と出力とを有する
I/O装置と、入力と、出力と、第1のデータポート
と、第2のデータポートとを有し、前記入力は前記I/
O装置の前記出力に接続され、前記出力は前記I/O装
置の前記入力に接続されて、前記I/O装置との間でデ
ータを転送するためのI/O通信装置と、複数の通信チ
ャンネルを有し、前記第1の通信装置の前記第1のデー
タポートと、前記第1の通信装置の前記第2のデータポ
ートと、前記I/O通信装置の前記第1のデータポート
と、前記I/O通信装置の前記第2のデータポートの各
々が前記複数の通信チャンネルの1つに接続されて、デ
ータを転送するための相互接続手段と、をさらに含んで
いてもよい(B−5)。
【0030】請求項2において、出力を有し前記第1の
再設定自在な処理ユニットへマスタタイミング信号を提
供するためのマスタ時刻ユニットをさらに含んでいても
よい(B−6)。このB−6において、第1の再設定自
在な処理ユニットは、入力と出力とを有し前記入力は前
記マスタ時刻ユニットの出力に接続され、前記出力は前
記再設定自在な処理ユニットのタイミング入力に接続さ
れて、前記マスタタイミング信号から局部タイミング信
号を生成するための局部時刻ユニットをさらに含んでい
てもよい(B−7)。
【0031】さらに、請求項2において、第1の再設定
自在な処理ユニットをプログラマブル論理装置から製造
するようにしてもよい(B−8)。このB−8におい
て、プログラマブル論理装置は、複数の設定可能な論理
ブロックと、複数のプログラマブルI/Oブロックと、
複数のプログラマブル相互接続構造と、データ記憶資源
とを含むフィールド・プログラマブル・ゲートアレイで
あってもよい(B−9)。
【0032】また、請求項2において、システムはさら
に逐次命令処理装置のための第1の命令セットアーキテ
クチャに対応する第1の設定データセットと、並列命令
処理装置の第2の命令セットアーキテクチャに対応する
第2の設定データセットとを保存するメモリをさらに含
むことと、前記第1の再設定自在な処理ユニットは逐次
命令処理装置と並列命令処理装置の一方として、前記メ
モリからの信号に応じて選択的に設定することが可能
で、前記第1の再設定自在な処理ユニットは前記メモリ
に接続されていてもよい(B−10)。このB−10に
おいて、第1の再設定自在な処理ユニットは複数の信号
線で前記メモリへ接続され、第1の個数の複数の信号線
はアドレス線を形成し、第2の個数の複数の信号線は制
御線を形成し、第3の個数の複数の信号線がデータ線を
形成し、前記第1の個数と前記第2の個数と前記第3の
個数の複数の信号線は再設定自在であって前記第1の再
設定自在な処理ユニットにより用いられる設定データセ
ットに従って設定されるように構成してもよい(B−1
1)。
【0033】請求項2において、第1の再設定自在な処
理ユニットの前記変更可能な内部ハードウェア構造は、
データ入力と、第1の制御出力と、第2の制御出力とを
有し、前記データ入力はメモリのデータポートに接続さ
れ、前記第1の再設定自在な処理ユニット内部での命令
実行動作をシーケンス化するための再設定自在な命令フ
ェッチユニットを含んでいてもよい(B−12)。この
B−12において、命令フェッチユニットは、出力を有
するアーキテクチャ記述メモリを含み、前記アーキテク
チャ記述メモリは前記第1の再設定自在な処理ユニット
が命令セットアーキテクチャを実装するように設定され
たときに割込信号に応答する様式を指定する割込応答信
号を含む1組のアーキテクチャ記述信号を記憶するよう
にしてもよい(B−13)。
【0034】このB−13において、命令フェッチユニ
ットはさらに、入力と出力とを有し、命令フェッチ状態
と、命令復号状態と、命令実行状態と、書き戻し状態で
命令実行サイクルを制御して、前記命令実行サイクルに
より前記命令セットアーキテクチャ内部の命令の実行が
行なわれる命令状態シーケンサと、入力と出力とを有
し、前記入力は前記アーキテクチャ記述メモリの前記出
力へ接続され、前記出力は前記命令状態シーケンサの入
力に接続されて、割込サービス状態への遷移が許容され
る前記命令実行サイクル内の状態を指定する遷移制御信
号を生成するための割込状態マシンと、を含んでいても
よい(B−14)。
【0035】このB−14において、命令フェッチユニ
ットはさらに、入力と出力とを有し大きさが可変の命令
バッファの動作を制御するためのプログラマブルフェッ
チ制御ユニットであって、前記入力は前記プログラマブ
ルフェッチ制御ユニットの動作を定義する信号を受信す
るために前記命令状態シーケンサの出力へ接続され、前
記出力は前記命令バッファへ接続されるユニットと、入
力と出力とを有し大きさが可変の命令バッファの動作を
制御するためのプログラマブル復号制御ユニットであっ
て、前記プログラマブルフェッチ制御ユニットの前記入
力は前記プログラマブル復号制御ユニットの動作を定義
する信号を受信するために前記命令状態シーケンサの前
記出力に接続され、前記プログラマブル復号制御ユニッ
トの前記出力は前記命令デコーダに接続され、前記命令
デコーダは前記命令バッファからプログラム命令を受信
するように接続されるユニットと、を含んでいてもよい
(B−15)。
【0036】請求項2において、第1の再設定自在な処
理ユニットの前記変更可能な内部ハードウェア構成は、
データポートと制御入力とを有し、前記データポートが
メモリのデータポートに接続され前記制御入力が制御信
号を受信するように接続されて、データに対する演算を
実行するための再設定自在なデータ演算ユニットを含ん
でいてもよい(B−16)。
【0037】このB−16において、再設定自在なデー
タ演算ユニットは、データポートと、制御入力と、フィ
ードバック入力と、出力とを有し、前記データポートは
前記メモリの前記データポートへ接続され、前記制御入
力は前記命令フェッチユニットの前記第1の制御出力へ
接続されて、前記データポートと、前記フィードバック
入力と、前記出力の間で選択的にデータを転送するため
のスイッチと、入力と、出力と、制御入力とを有し、前
記入力は前記スイッチの出力へ接続され、前記制御入力
は前記命令フェッチユニットの前記第1の制御出力へ接
続されて、データとデータ計算結果とを保存するための
記憶/整列ユニットと、入力と、出力と、制御入力とを
有し、前記入力は前記記憶/整列ユニットの前記出力へ
接続され、前記出力は前記スイッチの前記フィードバッ
ク入力へ接続され、前記制御入力は前記命令フェッチユ
ニットの前記第1の制御出力へ接続されて、データ計算
を実行するためのデータ演算回路と、を含んでいてもよ
い(B−17)。
【0038】このB−17において、記憶/整列ユニッ
トはランダムアクセスメモリとパイプライン化レジスタ
のグループからの1つとして、各々第1の命令セットア
ーキテクチャと第2の命令セットアーキテクチャに対応
する設定データセットである前記メモリからの制御信号
に応じて再設定できるようにしてもよい(B−18)。
このB−18において、データ演算ユニットは前記メモ
リからの設定信号に応じて算術論理回路とパイプライン
化機能ユニットのグループの1つとして再設定できるよ
うにしてもよい(B−19)。
【0039】また、請求項2において、再設定自在な処
理ユニットの前記変更可能な内部ハードウェア構造は、
制御入力と、アドレス入力と、出力とを有し、前記アド
レス入力がメモリのデータポートへ接続され、前記出力
が前記メモリのアドレス入力へ接続され、前記制御入力
が制御信号を受信するように接続されて、アドレスに対
する演算を実行するための再設定自在なアドレス演算ユ
ニットを含んでいてもよい(B−20)。このB−20
において、再設定自在なアドレス演算ユニットは、デー
タポートと、制御入力と、フィードバック入力と、出力
とを有し、前記データポートは前記メモリの前記データ
ポートへ接続され、前記制御入力は前記命令フェッチユ
ニットの前記第1の制御出力へ接続されて、前記データ
ポートと、前記フィードバック入力と、前記出力の間で
選択的にデータを転送するためのスイッチと、入力と、
出力と、制御入力とを有し、前記入力は前記スイッチの
出力へ接続され、前記制御入力は前記命令フェッチユニ
ットの前記第2の制御出力へ接続されて、データを保存
するための記憶/カウントユニットと、入力と、出力
と、制御入力とを有し、前記入力は前記記憶/カウント
ユニットの前記出力へ接続され、前記出力は前記スイッ
チの前記フィードバック入力へ接続され、前記制御入力
は前記命令フェッチユニットの前記第2の制御出力へ接
続されて、アドレス計算を実行するためのアドレス演算
回路と、を含んでいてもよい(B−21)。
【0040】このB−21において、記憶/カウントユ
ニットは再設定自在であって、前記記憶/カウントユニ
ットの前記制御入力へ受信した信号に応じて、ランダム
アクセスメモリとレジスタのグループからの1つとして
選択的に設定できるようにしてもよい(B−22)。ま
た、B−21において、アドレス演算回路は前記アドレ
ス演算回路の前記制御入力へ受信した信号に応じて、レ
ジスタと、レジスタと、算術演算ユニットとのグループ
からの1つとして再設定できるようにしてもよい(B−
23)。
【0041】請求項2において、第1の再設定自在な処
理ユニットは、データ入力と、第1の制御出力と、第2
の制御出力とを有し、前記データ入力がメモリのデータ
ポートへ接続されて、前記第1の再設定自在な処理ユニ
ット内部の命令実行動作をシーケンス化するための再設
定自在な命令フェッチユニットと、データポートと制御
入力とを有し、前記データポートが前記メモリの前記デ
ータポートへ接続され、前記制御入力が前記命令フェッ
チユニットの前記第1の制御出力へ接続されて、データ
に対する演算を実行するための再設定自在なデータ演算
ユニットと、制御入力と、アドレス入力と、出力とを有
して、前記制御入力は前記命令フェッチユニットの前記
制御出力へ接続され、前記アドレス入力は前記メモリの
前記データポートへ接続され、前記出力は前記メモリの
アドレス入力へ接続されて,アドレスに対する演算を実
行するための再設定自在なアドレス演算ユニットと、を
含んでいてもよい(B−24)。このB−24におい
て、再設定自在な命令フェッチユニットと、前記再設定
自在なデータ演算ユニットと、前記再設定自在なアドレ
ス演算ユニットは前記第1の再設定自在な処理ユニット
による命令の実行中に再設定することが可能であっても
よい(B−25)。
【0042】C.請求項3について 請求項3記載の発明は、第1のプロセッサを第2のプロ
セッサへ接続するためのシステムであって、入力と、出
力と、第1のデータポートと、第2のデータポートとを
有し、前記入力と出力は前記第1のプロセッサへ接続さ
れて、前記第1のプロセッサとの間でデータを転送する
ための第1の通信装置と、入力と、出力と、第1のデー
タポートと、第2のデータポートとを有し、前記入力と
出力は前記第2のプロセッサへ接続されて、前記第2の
プロセッサとの間でデータを転送するための第2の通信
装置と、第1と第2の通信チャンネルを有し、前記第1
の通信装置の前記第1のデータポートと前記第2の通信
装置の前記第1のデータポートが前記第1の通信チャン
ネルへ接続され、前記第1の通信装置の前記第2のデー
タポートと前記第2の通信装置の前記第2のデーポート
とが前記第2の通信チャンネルへ接続されて、2点間並
列データ転送を提供するための相互接続手段と、を含ん
でいる。
【0043】請求項3において、第1と第2の通信装置
を各々がフィールド・プログラマブル・ゲートアレイか
ら製造するようにしてもよい(C−1)。また、請求項
3において、第1の通信装置はさらに、第1のデータポ
ートと、第2のデータポートと、制御ポートを有して、
前記第1のデータポートはデータの送信及び受信のため
に前記第1のプロセッサへ接続され、前記制御ポートは
命令の送信及び受信のために前記第1のプロセッサへ接
続されて、前記第1のプロセッサとの間のデータ及び命
令の受信と送信のためのインタフェース兼制御ユニット
と、入力と、出力と、ポートと、独自の相互接続アドレ
スとを有して、前記ポートは前記インタフェース兼制御
ユニットの前記第2のデータポートへ接続され、前記入
力と出力は前記第1の通信チャンネルのノードへ接続さ
れる第1の相互接続ユニットと、入力と、出力と、ポー
トと、独自の相互接続アドレスとを有して、前記ポート
は前記インタフェース兼制御ユニットの前記第2のデー
タポートへ接続され、前記入力と出力は前記第2の通信
チャンネルのノードへ接続される第2の相互接続ユニッ
トと、を含んでいてもよい(C−2)。
【0044】このC−2において、第1の相互接続ユニ
ットは、入力と第1及び第2の出力を有し前記入力は前
記第1の通信チャンネルへ接続されて、メッセージ・パ
ケットの一部として形成されたアドレスに応じて前記第
1と第2の出力の一方へデータを選択的に転送するため
のアドレスデコーダと、入力と出力とを有し、前記入力
は前記アドレス・デコーダの前記第1の出力へ接続さ
れ、前記出力は前記インタフェース兼制御ユニットへ接
続されて、データを保存するための第1のバッファと、
入力と出力とを有し、前記入力は前記アドレス・デコー
ダの前記第2の出力へ接続され、データを保存するため
の第2のバッファと、入力と出力とを有し、前記入力は
前記インタフェース兼制御ユニットへ接続されて、デー
タを保存するための第3のバッファと、第1の入力と、
第2の入力と、制御入力と、出力とを有し、前記第1の
入力は前記第2のバッファの前記出力へ接続され、前記
第2の入力は前記第3のバッファへ接続され、前記制御
入力は前記インタフェース兼制御論理回路へ接続され、
前記出力は前記第1の通信チャンネルへ接続されて、前
記第1の入力又は前記第2の入力からのデータを前記制
御入力の制御信号に応じて選択的に通過するためのマル
チプレクサと、を含んでいてもよい(C−3)。
【0045】また、C−2において、第1のプロセッサ
は複数の信号線を有するメモリ経由で前記インタフェー
ス兼制御ユニットへ接続され、第1の個数の前記複数の
信号線がアドレス線を形成し、第2の個数の前記複数の
信号線が制御線を形成し、第3の個数の前記複数の信号
線がデータ線を形成することと、前記第1のプロセッサ
と前記インタフェース兼制御ユニットは、前記第1の個
数と前記第2の個数と前記第3の個数の前記複数の信号
線が前記第1のプロセッサと前記インタフェース兼制御
ユニットで使用する設定データセットに従って設定でき
るように再設定可能なこと、を含んでいてもよい(C−
4)。
【0046】同様に、C−2において、第1のプロセッ
サは複数の信号線を有するメモリ経由で前記インタフェ
ース兼制御ユニットへ接続され、第1の個数の前記複数
の信号線がアドレス線を形成し、第2の個数の前記複数
の信号線が制御線を形成し、第3の個数の前記複数の信
号線がデータ線を形成することと、前記第1のプロセッ
サと前記インタフェース兼制御ユニットは、前記第1の
個数と前記第2の個数と前記第3の個数の前記複数の信
号線が前記第1のプロセッサと前記インタフェース兼制
御ユニットで使用する設定データセットに従って設定で
きるように再設定可能なこと、を含んでいてもよい(C
−5)。
【0047】さらに、C−2において、第1のプロセッ
サは複数の信号線を有するメモリ経由で前記インタフェ
ース兼制御ユニットへ接続され、第1の個数の前記複数
の信号線がアドレス線を形成し、第2の個数の前記複数
の信号線が制御線を形成し、第3の個数の前記複数の信
号線がデータ線を形成することと、前記インタフェース
兼制御ユニットは、前記第1の個数と前記第2の個数と
前記第3の個数の前記複数の信号線が前記第1のプロセ
ッサと前記インタフェース兼制御ユニットで使用する設
定データセットに従って設定できるように再設定可能な
こと、を含んでいてもよい(C−6)。
【0048】また、C−2において、インタフェース兼
制御ユニットはメッセージを前記第1のプロセッサで利
用可能な命令とデータに変換し前記第1のプロセッサか
らの命令とデータを前記相互接続手段へ送信するための
メッセージに組み込むようにしてもよい(C−7)。
【0049】D.請求項4に関して 請求項4記載の発明は、複数の高次ステートメントから
再設定自在な計算機で実行可能な命令を生成する方法で
あって、高次ステートメントを前記再設定自在な計算機
で実行可能な命令に変換するための複数の規則の組を提
供する段階と、高次ステートメントを前記再設定自在な
計算機で実行可能な命令に変換するために使用すべき現
在の規則の組として前記複数の規則の組の1つを選択す
る段階と、高次ステートメントを選択する段階と、前記
選択した高次ステートメントが再設定指示か判定する段
階と、高次ステートメントが再設定指示の場合に前記再
設定指示で指定された1組の規則へと高次ステートメン
トを変換するために使用する現在の規則の組を変更する
段階と、前記現在の規則の組を用いて再設定自在な計算
機で実行可能な少なくとも1つの命令に前記選択した高
次ステートメントを変換する段階と、を含んでいる。
【0050】請求項4において、高次ステートメントを
前記再設定自在な計算機で実行可能な命令に変換するた
めの前記複数の規則の組の各々は異なる命令セットアー
キテクチャに対応するようにしてもよい(D−1)。
【0051】また、請求項4において、選択した高次ス
テートメントが再設定指示の場合前記再設定指示を中間
段階再設定ステートメントに変換する段階と、前記選択
した高次ステートメントが再設定指示ではない場合前記
選択したステートメントを中間段階ステートメントに変
換する段階と、レジスタ割当てを実行する段階と、前記
現在の規則の組を変更する段階がさらに中間段階ステー
トメントを選択する段階と前記選択した中間段階ステー
トメントが中間段階再設定ステートメントか判定する段
階と前記選択した中間段階ステートメントが中間段階再
設定ステートメントの場合に前記中間段階再設定ステー
トメントで指定された前記命令セットアーキテクチャに
対応する1組の規則を選択する段階とを含む段階とを含
み、前記選択した高次ステートメントを変換する段階
は、前記中間レベル再設定ステートメントで指定された
前記命令セットアーキテクチャに対応する前記選択した
規則の組を用いて、前記選択した中間段階ステートメン
トからアセンブリ言語ステートメントを生成する段階を
含むようにしてもよい(D−2)。
【0052】E.請求項5に関して 請求項5記載の発明は、再設定自在な処理ユニットを有
する動的に再設定自在な計算機システムにおいて、動的
に再設定自在な計算環境のための方法は、第1の命令セ
ットアーキテクチャに対応する第1の設定データセット
に従って演算のために前記再設定自在な処理ユニットを
設定し、前記再設定自在な処理ユニットの設定により前
記第1の命令セットアーキテクチャを実装するハードウ
ェア構成とする段階と、前記再設定自在な処理ユニット
の命令実行サイクルに割込む段階と、第2の命令セット
アーキテクチャに対応する第2の設定データセットに従
って前記再設定自在な処理ユニットを再設定して前記再
設定自在な処理ユニットの前記ハードウェア構成が前記
第2の命令セットアーキテクチャを実装するようにする
段階と、を含んでいる。
【0053】請求項5において、プログラム命令のシー
ケンスの実行中に前記動的に再設定自在な処理ユニット
を再設定すべきかを決定する段階をさらに含んでいても
よい(E−1)。このE−1において、再設定段階の後
で新規な命令実行サイクルを起動する段階をさらに含ん
でもよい(E−2)。このE−2において、命令実行サ
イクルは前記プログラム命令のシーケンス内部の第1の
プログラム命令に対応し、前記新規な命令実行サイクル
は前記プログラム命令のシーケンス内部の第2のプログ
ラム命令に対応するようにしてもよい(E−3)。
【0054】また、請求項5において、第1の命令セッ
トアーキテクチャに対応する遷移制御信号の第1の組を
生成し、前記第1の組の遷移制御信号は前記命令実行サ
イクル内の1組の割込可能な状態を指定する段階と、前
記第2の命令セットアーキテクチャに対応する遷移制御
信号の第2の組を生成し、前記第2の組の遷移制御信号
は前記命令実行サイクル内の1組の割込可能な状態を指
定する段階と、をさらに含んでいてもよい(E−4)。
【0055】F.請求項6に関して 請求項6記載の発明は、第1の命令セットアーキテクチ
ャに対応する第1の設定データセットに従って再設定自
在な処理ユニットを設定して、前記再設定自在な処理ユ
ニットの設定によって前記第1の命令セットアーキテク
チャを実装するハードウェア構成とするための手段と、
プログラム命令のシーケンスの実行中に前記再設定自在
な処理ユニットを再設定すべきか判定するための手段
と、第2の設定データに従って前記再設定自在な処理ユ
ニットを再設定して、前記再設定自在な処理ユニットが
第2の命令セットアーキテクチャを実装する新規のハー
ドウェア構成を有するようにするための手段と、を含ん
でいる。
【0056】この請求項6において、再設定自在な処理
ユニットを再設定すべき場合には前記プログラム命令の
シーケンス内部の第1のプログラム命令に対応する第1
の命令実行サイクルに割込むための手段と、前記再設定
自在な処理ユニットが再設定された後で前記プログラム
命令のシーケンス内部の第2のプログラム命令に対応す
る第2の命令実行サイクルを起動するための手段と、を
さらに含んでもよい(F−1)。
【0057】また、請求項6において、命令セットアー
キテクチャに対応する1組の遷移制御信号を生成し、前
記1組の遷移制御信号が命令実行サイクル内部の1組の
割込可能な状態を指定する手段をさらに含んでいてもよ
い(F−2)。
【0058】G.請求項7に関して 請求項7記載の発明は、再プログラム可能な論理装置内
部の動的に再設定自在な計算機であって、出力を有し、
前記再設定自在な計算機のアーキテクチャを特徴付ける
アーキテクチャ記述信号を記憶し、前記アーキテクチャ
記述信号は割込みに前記動的に再設定自在な計算機が応
答する方法を指定する割込応答信号を含むアーキテクチ
ャ記述メモリと、入力を有し前記再設定自在な計算機に
よる命令の実行を制御するための命令状態シーケンサ
と、第1の入力と、第2の入力と、出力とを有し、前記
入力は前記アーキテクチャ記述メモリの前記出力に接続
され、前記出力は前記命令状態シーケンサの入力に接続
されて、前記命令実行サイクル中に割込サービス状態が
いつ許容されるかを指定する遷移制御信号を生成するた
めの割込状態マシンと、を含んでいる。
【0059】請求項7において、再プログラム可能な論
理装置の第1の部分は第1の設定データセットに従って
設定されて第1の命令セットアーキテクチャが前記第1
の部分に形成され、前記再プログラム可能な論理装置の
第2の部分は第2の設定データセットに従って設定され
て第2の命令セットアーキテクチャが前記第2の部分に
形成され、前記再設定自在な計算機は前記第1の部分又
は第2の部分を処理のために使用するように設定でき、
前記割込状態マシンは前記遷移制御信号に前記再設定自
在な計算機が使用するように設定される前記再プログラ
ム可能な論理装置の前記部分と前記選択した命令セット
アーキテクチャで実行できる前記命令の指示を含むよう
にしてもよい(G−1)。
【0060】H.請求項8に関して 請求項8記載の発明は、命令フェッチ状態と、命令復号
状態と、命令実行状態と、書き戻し状態とを有する命令
実行サイクルを提供する動的に再設定自在な計算機でデ
ータを処理するための方法であって、割込可能な状態を
指定する第1の命令セットアーキテクチャに従って演算
のために前記計算機を設定する段階と、割込信号を受信
する段階と、前記動的に再設定自在な計算機における演
算状態を決定する段階と、前記動的に再設定自在な計算
機の前記演算状態が割込可能かを判定する段階と、前記
動的に再設定自在な計算機が割込可能な状態にあると判
定された場合に前記割込信号にサービスを提供する段階
と、を含んでいる。
【0061】請求項8において、動的に再設定自在な計
算機が割込可能な状態ではない場合に、前記動的に再設
定自在な計算機の前記演算が割込可能で有り得るような
次の割込可能な状態を判定する段階と、前記動的に再設
定自在な計算機が割込可能な状態ではない場合に、前記
動的に再設定自在な計算機が前記次の割込可能な状態に
いつ移行するか判定する段階と、前記動的に再設定自在
な計算機が割込可能な状態にないと判定された場合に前
記次の割込可能な状態において前記割込信号のサービス
を提供する段階と、をさらに含んでもよい(H−1)。
【0062】また、請求項8において、割込信号のサー
ビスを提供する段階は、前記割込みのための起原と、優
先順位と、割込ハンドラのアドレスとを決定する段階
と、前記割込信号が再設定を表わすか判定する段階と、
前記割込信号が再設定を表わす場合割込制御レジスタ内
に新規な命令セットアーキテクチャのための設定データ
を保存する段階と、をさらに含んでもよい(H−2)。
【0063】請求項8において、動的に再設定自在な計
算機の前記演算状態が割込可能か判定する前記段階は、
前記動的に再設定自在な計算機が設定された前記命令セ
ットアーキテクチャに対応する遷移制御信号を受信し、
前記遷移制御信号が命令の実行が割込可能な少なくとも
1つの状態を指定する段階と、前記遷移制御信号で指定
された状態を前記動的に再設定自在な計算機の演算状態
と比較する段階と、をさらに含んでいてもよい(H−
3)。
【0064】さらに、請求項8において、動的に再設定
自在な計算機が複数の異なる命令セットアーキテクチャ
に従って設定でき、前記命令セットアーキテクチャの各
々が少なくとも1つの命令実行の割込可能な演算状態を
定義する1組の遷移制御信号を提供するようにしてもよ
い(H−4)。このH−4において、各々の命令セット
アーキテクチャは前記命令セットアーキテクチャに関連
する前記遷移制御信号の組の変更により提供された再設
定自在な割込機構を有していてもよい(H−5)。
【0065】I.これらの発明の概要 本発明は、スケーラブル、並列、動的に再設定自在な計
算環境のためのシステム及び方法である。本システム
は、少なくとも1つのSマシンと、各々のSマシンに対
応するTマシンと、汎用相互接続マトリックス(GPI
M)と、1組のI/OTマシンと、1つ又はそれ以上の
I/O装置と、マスタ時刻ベースユニットとを含む。好
適な実施の形態において、本システムは複数のSマシン
を含む。各々のSマシンは入力と出力が各々対応するT
マシンの出力と入力に各々結合されている。各々のTマ
シンは各々のI/OTマシンのようにGPIMへ接続さ
れた配送入力と配送出力とを含む。I/OTマシンはさ
らにI/O装置へ接続された入力と出力とを有する。最
後に、各々のSマシン、Tマシン、I/OTマシンはマ
スタ時刻ベースユニットのタイミング出力へ接続したマ
スタタイミング入力を有する。
【0066】マスタ時刻ベースユニットは各々のSマシ
ン、Tマシン、I/OTマシンへシステム全体の周波数
基準を提供する。各々のSマシンはプログラム命令の実
行中に選択的に再設定することのできる処理ユニットを
有するコンピュータである。各々のTマシンはデータ転
送装置である。GPIMはTマシン間の通信のためのス
ケーラブル2点間並列相互接続手段を提供する。組み合
せて1組のTマシンとGPIMはSマシン間の通信のた
めのスケーラブル2点間並列相互接続手段を提供する。
【0067】Sマシンは第1の局部時刻ユニットと、メ
モリと、動的に再設定自在処理ユニット(DRPU)を
含むのが望ましい。第1の局部時刻ユニットはマスタ時
刻ベースユニットへ接続したタイミング入力と、DRP
Uのタイミング入力及び第1のタイミング信号線経由で
メモリのタイミング入力とへ接続したタイミング出力と
を有する。DRPUは制御信号出力と、アドレス出力
と、双方向データポートとが各々メモリ制御線、アドレ
ス線、メモリI/O線で各々制御信号入力、アドレス入
力、双方向データポートへ接続してある。DRPUは対
応するTマシンの双方向制御ポートへ外部制御線で接続
した双方向制御ポートも有する。
【0068】第1の局部時刻ユニットはマスタ時刻ベー
スユニットからマスタタイミング信号を受信し、第1の
タイミング信号線経由でDRPUとメモリへ供給する第
1の局部タイミング信号を生成する。メモリはプログラ
ム命令と、プログラムデータと、1つ又はそれ以上の設
定データセットを記憶するランダムアクセスメモリ(R
AM)が望ましい。好適な実施の形態では、任意のSマ
シンのメモリはGPIMとこれに対応するTマシン経由
でシステム内の他の全てのSマシンからアクセス可能で
ある。
【0069】おそらく大きなデータセットに特定の演算
の組み合せを実行する専用のプログラム命令のグループ
を本明細書ではプログラムの「内側ループ」部分と称す
る。汎用演算の実行及び/又は1つの内側ループ部分か
ら別の部分へ制御を渡すプログラム命令のグループを、
本明細書ではプログラムの「外側ループ」部分と称す
る。あらゆる任意のプログラム内部で、各々の内側ルー
プ部分は少数の命令形式から構成するのが望ましいが、
外側ループ部分は各種の汎用命令形式を含むのが望まし
い。
【0070】メモリ内に記憶してある各々の設定データ
セットは対応する命令セット・アーキテクチャ(IS
A)の実装に最適化したDRPUハードウェア構成を指
定する。ISAはプリミティブな命令セットで、コンピ
ュータをプログラムするために使用する。本発明におい
て、ISAは内側ループISA又は外側ループISAと
して含まれる命令の個数と種類に従って分類できる。内
側ループISAは比較的少ない命令からなり、命令は特
定の種類の演算を実行するのに有用である。外側ループ
ISAは幾つかの命令を含み、命令は各種の汎用演算を
実行するのに有用である。
【0071】メモリ内に記憶されたプログラム命令は1
つ又はそれ以上の再設定指示を選択的に含み、各々の再
設定指示は1つの設定データセットを参照する。DRP
Uによるプログラム実行中、1つ又はそれ以上の再設定
指示を選択できる。任意の再設定指示の選択により再設
定指示により参照される設定データセットによるDRP
Uハードウェアの再設定が行なわれる。つまり、再設定
指示の選択時に、DRPUハードウェアが再設定されて
特定ISAの最適な実装を提供する。本発明において、
DRPUの再設定も再設定割込みに応じて初期化され
る。ここで、再設定割込みは前述の方法でISAに対応
する設定データセットを参照する。
【0072】DRPUは、命令フェッチユニット(IF
U)と、データ演算ユニット(DOU)と、アドレス演
算ユニット(AOU)とを含み、その各々が動的に再設
定自在である。好適な実施の形態において、DRPUは
XilinxXC4013フィールド・プログラマブル
・ゲートアレイ(FPGA)などの再設定自在な論理装
置を用いて実装される。再プログラム可能な論理装置
は、複数の再プログラム可能な 1)論理ブロック、又は設定可能論理ブロック(CL
B)、 2)I/Oブロック(IOB)、 3)相互接続構造、 4)データ記憶資源、 5)スリーステートバッファ資源、 6)ワイヤードロジック能力を提供するのが望ましい。
【0073】IFUはDRPUのメモリ制御出力を形成
するメモリ制御出力と、メモリI/O線に接続したデー
タ入力と、DRPUの双方向制御ポートを形成する双方
向制御ポートとを有する。IFUはさらに第1と第2と
第3の制御出力を有する。DOUとAOUは各々がメモ
リI/O線に接続した双方向データポートを有してお
り、AOUはアドレス線に接続したアドレス出力を有す
る。DOUは第1の制御線経由でIFUの第1の制御出
力に接続した第1の制御入力を有する。DOUとAOU
の両方とも第3の制御線経由でIFUの第3の制御出力
に第2の制御入力が接続してある。最後に、IFUの各
々と、DOUと、AOUは第1のタイミング信号線に接
続したタイミング入力を有する。
【0074】IFUは命令のフェッチとデコード演算、
メモリアクセス演算、DRPU再設定演算を指示し、制
御信号をDOU及びAOUへ発行して命令の実行を容易
にする。IFUはアーキテクチャ記述メモリ、命令状態
シーケンサ(ISS)、メモリアクセス論理回路、再設
定論理回路、割込論理回路、フェッチ制御ユニット、命
令バッファ、デコード制御ユニット、命令デコーダ、オ
プコード記憶レジスタセット、レジスタファイル(R
F)アドレスレジスタセット、定数レジスタセット、プ
ロセス制御レジスタセットを含むのが望ましい。ISS
はIFUの第1と第2の制御出力を各々構成する第1と
第2の制御出力と、IFUのタイミング入力を構成する
タイミング入力と、フェッチ制御ユニットの制御入力と
デコード制御入力の制御入力へ接続したフェッチ/デコ
ード制御出力、各々のメモリアクセス論理回路の第1の
双方向制御ポートと再設定論理回路と割込論理回路へ接
続した双方向制御ポートと、オプコード記憶レジスタセ
ットの出力へ接続したオプコード入力と、プロセス制御
レジスタセットの双方向データポートへ接続した双方向
データポートとを含むのが望ましい。メモリアクセス論
理回路の各々と、再設定論理回路と、割込論理回路は外
部制御線へ接続した第2の双方向制御ポート、及びアー
キテクチャ記述メモリのデータ出力へ接続したデータ入
力を有する。メモリアクセス論理回路もIFUのメモリ
制御出力を構成する制御出力を有し、割込論理回路はさ
らにプロセス制御レジスタセットの双方向データポート
へ接続した出力を有する。
【0075】アーキテクチャ記述メモリはDRPU設定
を任意の時刻に特徴付けるアーキテクチャ仕様信号を記
憶するためのメモリを含むのが望ましい。アーキテクチ
ャ仕様信号は初期設定データセットへの基準と、許容さ
れる設定データセットのリストへの基準と、アトミック
メモリアドレス増分と,現在のDRPUハードウェア構
成が割込みにどのように応答するかを規定する1組の割
込応答信号を含むのが望ましい。ISSはフェッチ制御
ユニット、デコード制御ユニット、DOU、AOU、メ
モリアクセス論理回路へ信号を発行することにより現在
検討しているISA内部の命令実行を容易にする状態マ
シンを含むのが望ましい。ISSはDOU制御信号を第
1の制御線に発行し、AOU制御信号を第2の制御線に
発行し、RFアドレスと定数を第3の制御線に発行す
る。割込論理回路は再設定信号に応答して再設定演算を
実行する状態マシンを含むのが望ましい。好適な実施の
形態において、再設定信号は再設定割込みに応答して生
成されるか、又は再設定指示がプログラム実行中に選択
された場合に生成される。
【0076】
【発明の実施の形態】本発明の実施の一形態を図面に基
づいて説明する。図1を参照すると、本発明により構成
したスケーラブル、並列、動的に再設定可能な計算環境
のためのシステム10の好適な実施の形態のブロック図
が図示してある。システム10は、望ましくは少なくと
も1つのSマシン12、各々のSマシン12に対応する
Tマシン14、汎用相互接続マトリックス(GPIM)
16,少なくとも1つのI/OTマシン18、1つ又は
それ以上のI/O装置20、及びマスタ時刻ベースユニ
ット22を含む。好適な実施の形態において、システム
10は複数のSマシン12と複数のTマシン14、さら
に複数のI/OTマシン18と複数のI/O装置20を
含む。Sマシン12、Tマシン14、I/OTマシン1
8の各々はマスタ時刻ベースユニット22のタイミング
出力に接続したマスタタイミング入力を有する。各々の
Sマシン12は対応するTマシン14に接続した入力と
出力とを有する。対応するSマシン12に接続した入力
と出力に加えて、各々のTマシン14はGPIM16へ
接続した配送入力と配送出力とを有する。同様に、各々
のI/OTマシン18はI/O装置20へ接続した入力
と出力と、GPIM16へ接続した配送入力及び配送出
力を有する。
【0077】詳細は後述するが、各々のSマシン12は
動的に再設定自在なコンピュータである。GPIM16
はTマシン14の間の通信を容易にする2点間並列相互
接続手段を形成する。Tマシン14とGPIM16の組
はSマシン12の間のデータ転送のための2点間並列相
互接続手段を形成する。同様に、GPIM16、Tマシ
ン14の組とI/OTマシン18の組はSマシン12と
各々のI/O装置20の間のI/O転送のための2点間
並列相互接続手段を形成する。マスタ時刻ベースユニッ
ト22は各々のSマシン12及びTマシン14にマスタ
タイミング信号を提供する発振回路を含む。
【0078】図示した実施の形態では、各々のSマシン
12はXilinxXC4013(ジリンクス社、カリ
フォルニア州サンノゼ)フィールド・プログラマブル・
ゲートアレイ(FPGA)を64MBのランダムアクセ
スメモリ(RAM)へ接続したものを用いて実現してい
る。各々のTマシン14は各々のI/OTマシン18に
XilinxXC4013FPGAの再設定可能なハー
ドウェア資源のほぼ50%を使用して実現している。G
PIM16はトロイダル相互接続メッシュとして実現し
た。マスタ時刻ベースユニット22はシステム全体に周
波数基準を提供するクロック分配回路に接続したクロッ
ク発振回路である。望ましくは、GPIM16、Sマシ
ン12、I/OTマシン18はスケーラブル・コヒーレ
ント・インタフェース(SCI)を定義しているANS
I/IEEE規格1596−1992に準拠して情報を
転送する。
【0079】好適な実施の形態では、システム10は並
列に機能する複数のSマシン12を含む。個別のSマシ
ン12の各々の構造と機能は図2から図17(b)を参照
して後述する。ここで、図2を参照すると、Sマシン1
2の好適な実施の形態のブロック図が図示してある。S
マシン12は第1の局部時刻ユニット30、プログラム
命令を実行するための動的に再設定自在な処理ユニット
(DRPU)32、メモリ34を含む。第1の局部時刻
ユニット30はSマシンのマスタタイミング入力を構成
するタイミング入力を有する。第1の局部時刻ユニット
30はDRPU32のタイミング入力とメモリ34のタ
イミング入力へ第1のタイミング信号線40を介して第
1の局部タイミング信号又はクロックを提供するタイミ
ング出力も有する。DRPU32はメモリ制御線42経
由でメモリ34の制御信号入力へ接続した制御信号出
力、アドレス線44経由でメモリ34のアドレス入力へ
接続したアドレス出力、メモリI/O線46経由でメモ
リ34の双方向データポートへ接続した双方向データポ
ートを有する。DRPU32はさらに外部制御線48経
由で対応するTマシン14の双方向制御ポートへ接続し
た双方向制御ポートも有する。図2に図示してあるよう
に、メモリ制御線42はXビット幅で、アドレス線44
はMビット幅、メモリI/O線46は(N×k)ビット
幅、外部制御線48はYビット幅である。
【0080】好適な実施の形態では、第1の局部時刻ユ
ニット30がマスタ時刻ベースユニット22からマスタ
タイミング信号を受信する。第1の局部時刻ユニット3
0はマスタタイミング信号から第1の局部タイミング信
号を生成し、第1の局部タイミング信号をDRPU32
とメモリ34へ供給する。好適な実施の形態において、
第1の局部タイミング信号は1つのSマシン12から別
のSマシン12へ変化できる。つまり、任意のSマシン
12内部のDRPU32とメモリ34は他のSマシン1
2内部のDRPU32とメモリ34に対して独立したク
ロック速度で機能する。望ましくは、第1の局部タイミ
ング信号はマスタタイミング信号と相同期する。好適な
実施の形態において、第1の局部時刻ユニット30は再
設定可能なハードウェア資源を用いて実現したフェーズ
ロック検出回路を含むフェーズロック周波数変換回路を
使用して実現されている。別の実施の形態において第1
の局部時刻ユニット30はクロック分配ツリーの一部と
して実現し得ることは当業者には理解されよう。
【0081】メモリ34はRAMとして実装するのが望
ましく、プログラム命令、プログラムデータ、DRPU
32の設定データセットを記憶する。任意のSマシン1
2のメモリ34はGPIM16経由でシステム10の他
のSマシン12がアクセスできる。さらに、各々のSマ
シン12は一様のメモリアドレス空間を有するように特
徴付けられるのが望ましい。好適な実施の形態におい
て、メモリ34に記憶されたプログラム命令はDRPU
32に向けられた再設定指示を選択的に含む。
【0082】ここで、図3を参照すると、再設定指示を
含むプログラムリスト50の例が図示してある。図3に
図示してあるように、プログラムリストの例50は1組
の外側ループ部分52、第1の内側ループ部分54、第
2の内側ループ部分55、第3の内側ループ部分56、
第4の内側ループ部分57、第5の内側ループ部分58
を含む。述語「内側ループ」が関連する演算の特定の組
み合せを実行するプログラムの反復部分を表わしてお
り、述語「外側ループ」が汎用演算の実行、及び/又は
1つの内側ループ部分から別の部分へ制御を渡すことを
主体としたプログラムの部分を表わすことは当業者には
容易に理解されよう。
【0083】一般に、プログラムの内側ループ部分5
4,55,56,57,58は、潜在的に大きなデータ
セットに対する特定の演算を実行する。画像処理アプリ
ケーションでは、例えば、第1の内側ループ部分54で
画像データに対する色フォーマット変換演算を実行し、
第2から第5の内側ループ部分55,56,57,58
で線形フィルタリング、コンボリューション、パターン
検索、圧縮演算を行なうことがある。当業者には内側ル
ープの連続したシーケンス55,56,57,58がソ
フトウェア・パイプラインと考えられることも理解され
よう。各々の外側ループ部分52はデータI/O及び/
又はデータと制御を第1の内側ループ部分54から第2
の内側ループ部分55へ転送する。任意の内側ループ部
分54,55,56,57,58は1つ又はそれ以上の
再設定指示を含み得ることが当業者にはさらに理解され
よう。一般に、任意のプログラムで、プログラムリスト
50の外側ループ部分52は各種の汎用命令形式を含
み、プログラムリスト50の内側ループ部分54,56
は比較的僅かな命令形式から構成されて特定の演算の組
み合せを実行するために使用される。
【0084】プログラムリスト50の例では、第1の再
設定指示は第1の内側ループ部分54の始めに現れ、第
2の再設定指示は第1の内側ループ部分54の最後に現
れる。同様に、第3の再設定指示は第2の内側ループ部
分55の始めに現れ、第4の再設定指示は第3の内側ル
ープ部分56の始めに現れ、第5の再設定指示は第5の
内側ループ部分57の始めに現れ、第6と第7の再設定
指示は各々第5の内側ループ部分58の各々始めと終り
に現れる。各々の再設定指示は特定の命令セットアーキ
テクチャ(ISA)の実装に専用で最適化された内部D
RPUハードウェア構成を指定する設定データセットを
参照するのが望ましい。
【0085】ISAはコンピュータをプログラムするた
めに使用できる命令のプリミティブ又はコアセットであ
る。ISAは命令フォーマット、オプコード、データフ
ォーマット、アドレシング・モード、実行制御フラグ、
プログラムがアクセス可能なレジスタを定義する。当業
者にはこれがISAの従来の定義に相当することが理解
されよう。本発明において、各々のSマシンのDRPU
32は高速でランタイム設定されて各々の所望のISA
の独自の設定データセットを使用して複数ISAを実現
できる。つまり、各々のISAは対応する設定データセ
ットで指定される独自の内部DRPUハードウェア構成
で実現される。
【0086】つまり、本発明では、第1から第5の内側
ループ部分54,55,56,57,58の各々が独自
のISA、即ちISA1,2,3,4,kに各々対応し
ている。各々の連続したISAが独自でなくともよいこ
とは当業者に理解されよう。つまり、ISAkはISA
1,2,3,4,又は他のISAであってもよい。外側
ループ部分のセット52も独自ISAに対応する、即ち
ISA0に対応する。好適な実施の形態において、プロ
グラム実行中の連続した再設定指示の選択はデータ依存
である。任意の再設定指示の選択時に、プログラム命令
はこの後対応する設定データセットで指定された独自の
DRPUハードウェア設定を介して対応するISAに従
って実行される。
【0087】本発明において、任意のISAは内側ルー
プISA又は外側ループISAとして、含まれる命令の
個数及び種類により分類できる。多くの命令を含み汎用
演算を実行するのに有用なISAは外側ループISAで
あり、比較的少い命令から構成されて特定の種類の演算
を実行するように指示されているISAは、内側ループ
ISAである。外側ループISAは汎用演算の実行に向
いているので、プログラム命令の連続実行が望ましい場
合には外側ループISAが最適である。外側ループIS
Aの実行能力は実行する命令当たりのクロック周期で特
徴付けるのが望ましい。逆に、内側ループISAは特定
の種類の演算を実行するのに向いているので、並列プロ
グラム命令実行が望ましい場合内側ループISAが好適
である。内側ループISAの実行能力はクロック周期当
たりに実行される命令数又はクロック周期当たりに作成
される計算結果によって特徴付けるのが望ましい。
【0088】前述の連続プログラム命令実行及び並列プ
ログラム命令実行の説明は、単一のDRPU32内での
プログラム命令実行に含まれることが当業者には理解さ
れよう。システム10内の複数Sマシン12の存在によ
り任意の時刻に複数のプログラム命令シーケンスの並列
実行が容易に行なえるようになり、各々のプログラム命
令シーケンスは任意のDRPU32内で実行される。各
々のDRPU32は特定の内側ループISA又は外側ル
ープISAを特定の時刻に実現するために各々並列又は
直列ハードウェアを有するように設定される。任意のD
RPU32の内部ハードウェア構成は実行するプログラ
ム命令のシーケンス内に埋め込まれた1つ又はそれ以上
の再設定指示の選択に併せて時間とともに変化する。
【0089】好適な実施の形態において、各々のISA
とこれに対応する内部DRPUハードウェア構成は、特
定クラスの計算問題で利用可能な1組の再設定可能なハ
ードウェア資源に対して最適な計算能力を提供するよう
に設計される。前述のように、また詳細については後述
するように、外側ループISAに対応する内部DRPU
ハードウェア構成は連続プログラム命令実行に最適化す
るのが望ましく、また、内側ループISAに対応する内
側DRPUハードウェア構成は並列プログラム命令実行
に対して最適化するのが望ましい。
【0090】各々の再設定指示の例外として、図3のプ
ログラムリスト50の例は望ましくは従来の高級言語ス
テートメント、例えばC言語で書かれたステートメント
を含むのが望ましい。1つ又はそれ以上の再設定指示を
プログラム命令のシーケンス内に含めるには再設定指示
を考慮するように変更したコンパイラが必要であること
は当業者には理解されよう。図4をここで参照すると、
プログラム命令のシーケンスのコンパイル中に実行され
る従来技術のコンパイル演算の流れ図が図示してある。
本明細書において、従来技術のコンパイル演算は一般に
フリーソフトウェア・ファウンデーション(マサチュー
セッツ州ケンブリッジ)が製作したGNU−Cコンパイ
ラ(GCC)で実行される演算に対応する。
【0091】当業者には以下で説明する従来技術のコン
パイル演算は他のコンパイラに容易に一般化できること
が理解できよう。従来技術のコンパイル演算は、ステッ
プ500でコンパイラのフロントエンドがプログラム命
令シーケンスから次の高級ステートメントを選択するこ
とで始まる。次に、コンパイラ・フロントエンドが選択
した高級ステートメントに対応する中間コードをステッ
プ502で生成する。GCCの場合にはレジスタ転送レ
ベル(RTL)ステートメントである。ステップ502
に続いて、コンパイラ・フロントエンドは別の供給ステ
ートメントを検討すべきかステップ504で決定する。
必要な場合、好適な方法はステップ500へ戻る。
【0092】ステップ504でコンパイラ・フロントエ
ンドが他の高級ステートメントの検討が必要ないと決定
した場合、コンパイラ・バックエンドは次に従来のレジ
スタ割当演算をステップ506で行なう。ステップ50
6の後で、コンパイラ・バックエンドは現在のRTLス
テートメント・グループ内の検討のために次のRTLス
テートメントをステップ508で選択する。コンパイラ
・バックエンドは現在のRTLステートメント・グルー
プを1組のアセンブリ言語ステートメントに変換する方
法を指定したルールが存在するかをステップ510で判
定する。このようなルールが存在しない場合、好適な方
法はステップ508へ戻り、現在のRTLステートメン
ト・グループに含めるために別のRTLステートメント
を選択する。現在のRTLステートメント・グループに
対応するルールが存在する場合、コンパイラ・バックエ
ンドは1組のアセンブリ言語ステートメントをルールに
従ってステップ512で生成する。ステップ512の
後、コンパイラ・バックエンドは次のRTLステートメ
ントが次のRTLステートメントグループのコンテクス
トの中で検討を必要とするか判定する。その場合,好適
な方法はステップ508に戻る。それ以外の場合には好
適な方法は終了する。
【0093】本発明は、動的に再設定可能な計算環境の
ためのコンパイラを含むのが望ましい。ここで、図5及
び図6を参照すると、動的に再設定自在な計算環境のた
めのコンパイラで実行される好適なコンパイル演算の流
れ図が図示してある。好適なコンパイル演算はステップ
600で始まり、動的に再設定自在な計算環境のための
コンパイラのフロントエンドがプログラム命令のシーケ
ンス内部の次の高級ステートメントを選択する。次に、
動的に再設定自在な計算環境のためのコンパイラのフロ
ントエンドはステップ602で選択した高級ステートメ
ントが再設定指示か判定する。その場合、動的に再設定
自在な計算環境のためのコンパイラのフロントエンドは
ステップ604でRTL再設定ステートメントを生成
し、この後、好適な方法はステップ600に戻る。好適
な実施の形態において、RTL再設定ステートメントは
ISA識別を含む非標準的RTLステートメントであ
る。ステップ602で、選択した高級プログラムステー
トメントが再設定指示ではない場合、動的に再設定自在
な計算環境のためのコンパイラのフロントエンドはステ
ップ606で通常の方法でRTLステートメントのセッ
トを生成する。ステップ606の後、動的に再設定自在
な計算環境のためのコンパイラのフロントエンドは別の
高級ステートメントが検討を必要とするかをステップ6
08で判定する。その場合、好適な方法はステップ60
0に戻る。それ以外の場合、好適な方法はステップ61
0へ進みバックエンド演算を起動する。
【0094】ステップ610で、動的に再設定自在な計
算環境のためのコンパイラのバックエンドはレジスタ割
当演算を実行する。本発明の好適な実施の形態におい
て、各々のISAはISA同士でレジスタアーキテクチ
ャが一定となるように定義されるので、レジスタ割当演
算は通常の方法で実行する。当業者には、一般に、IS
A間で一定のレジスタアーキテクチャが絶対条件ではな
いことが理解されよう。次に、ステップ612で、動的
に再設定自在な計算環境のためのコンパイラのバックエ
ンドは現在検討しているRTLステートメントのグルー
プ内で次のRTLステートメントを選択する。ステップ
614で、動的に再設定自在な計算環境のためのコンパ
イラのバックエンドは選択したRTLステートメントが
RTL再設定ステートメントかを判定する。選択したR
TLステートメントがRTL再設定ステートメントでは
ない場合、動的に再設定自在な計算環境のためのコンパ
イラのバックエンドはステップ618で現在検討してい
るRTLステートメントグループに対するルールが存在
するか判定する。存在しない場合、好適な方法はステッ
プ612に戻り、現在検討しているRTLステートメン
トグループに含める次のRTLステートメントを選択す
る。現在検討しているRTLステートメントグループの
ルールがステップ618で存在している場合、動的に再
設定自在な計算環境のためのコンパイラのバックエンド
は現在検討しているRTLステートメントグループに対
応するアセンブリ言語ステートメントをステップ620
でこのルールに従って生成する。ステップ620の後、
動的に再設定自在な計算環境のためのコンパイラのバッ
クエンドはステップ622で次のRTLステートメント
グループのコンテクストの中で別のRTLステートメン
トが検討を必要とするか判定する。その場合、好適な方
法はステップ612に戻り、それ以外の場合、好適な方
法は終了する。
【0095】ステップ614で選択したRTLステート
メントがRTL再設定ステートメントの場合、動的に再
設定自在な計算環境のためのコンパイラのバックエンド
はステップ616でRTL再設定ステートメント内部で
ISAの識別に対応するルールセットを選択する。本発
明では、各々のISAに独自のルールセットが存在する
のが望ましい。従って、各々のルールセットはRTLス
テートメントのグループを特定のISAに合わせてアセ
ンブリ言語ステートメントへ変換する1つ又はそれ以上
のルールを提供する。ステップ616の後、好適な方法
はステップ618に進む。任意のISAに対応するルー
ルセットは、詳細を後述するように、ソフトウェア割込
みを発生して再設定ハンドラを実行する1組のアセンブ
リ言語命令にRTL再設定ステートメントを変換するた
めのルールを含むのが望ましい。
【0096】前述の方法では、動的に再設定自在な計算
環境のためのコンパイラはアセンブリ言語ステートメン
トを複数ISAに合わせてコンパイル演算中に選択的か
つ自動的に生成する。言い換えれば、コンパイル処理中
に、動的に再設定自在な計算環境のためのコンパイラは
可変ISAに従って1組のプログラム命令をコンパイル
する。動的に再設定自在な計算環境のためのコンパイラ
は図5及び図6を参照して前述した好適なコンパイル演
算を実行するように変更した従来のコンパイラが望まし
い。必要とされる変更が複雑でなければ、このような変
更は従来技術のコンパイル技術と従来技術の再設定可能
な計算技術の両方の観点で明らかではないことが当業者
には理解できよう。
【0097】図7を参照すると、動的に再設定自在な処
理ユニット32の好適な実施の形態のブロック図が図示
してある。DRPU32は命令フェッチユニット(IF
U)60、データ演算ユニット(DOU)62、アドレ
ス演算ユニット(AOU)64を含む。IFU60、D
OU62、AOU64の各々は第1のタイミング信号線
40へ接続したタイミング入力を有する。IFU60は
メモリ制御線42に接続したメモリ制御出力と、メモリ
I/O線46に接続したデータ入力と、外部制御線48
に接続した双方向制御ポートを有する。IFU60はさ
らに第1の制御線70経由でDOU62の第1の制御入
力へ接続した第1の制御出力と、第2の制御線72経由
でAOU64の第1の制御入力へ接続した第2の制御出
力とを有する。IFU60はDOU62の第2の制御入
力と第3の制御線74経由でAOU64の第2の制御入
力へ接続した第3の制御出力も有する。DOU62とA
OU64の各々はメモリI/O線46に接続した双方向
データポートを有する。最後にAOU64はDRPUの
アドレス出力を形成するアドレス出力を有する。
【0098】DRPU32は再設定可能又は再プログラ
ム可能な論理装置、例えば、XilinxXC4013
(ジリンクス社、カリフォルニア州サンノゼ)又はAT
&T社ORCA(AT&Tマイクロエレクトロニクス
社、ペンシルバニア州アーレンタウン)などのFPGA
を用いて実装するのが望ましい。望ましくは、再プログ
ラム可能な論理装置は複数の 1)選択的に再プログラム可能な論理ブロック、又は、
設定可能論理ブロック(CLB)、 2)選択的に再プログラム可能なI/Oブロック(IO
B)、 3)選択的に再プログラム可能な相互接続構造、 4)データ記憶資源、 5)スリーステートバッファ資源、 6)ワイヤードロジック能力を提供する。各々のCLB
は、論理関数を生成し、データを記憶し、信号を送出す
るための選択的に再設定自在な回路を含むのが望まし
い。当業者には再設定自在なデータ記憶回路が使用する
再プログラム可能な論理装置の正確な設計に従ってCL
Bのセットとは別の1つ又はそれ以上のデータ記憶ブロ
ック(DSB)に含まれ得ることが理解されよう。本明
細書において、FPGA内部の再設定自在なデータ記憶
回路はCLB内部にあるととられる、即ち、DSBの存
在が仮定されない。DSBが存在する場合にCLBに基
づく再設定自在なデータ記憶回路を使用する本明細書で
説明した1つ又はそれ以上の素子がDSBに基づく回路
を使用し得ることは当業者には容易に理解されよう。
【0099】各々のIOBは、CLBとFPGA出力ピ
ンの間でデータを転送するための選択的に再設定自在な
回路を含むのが望ましい。設定データセットは、CLB
内部で実行される関数並びに、 1)CLBとIOB間、 2)CLB間、 3)IOB内部、 4)IOB間、 5)CLBとIOBの間での相互接続を指定することに
よりDRPUハードウェア設定又は構成を定義する。当
業者には、設定データセット経由でメモリ制御線42、
アドレス線44、メモリI/O線46、外部制御線48
の各々でビット数が再設定自在であることが理解されよ
う。望ましくは、設定データセットはシステム10内の
1つ又はそれ以上のSマシンメモリ34に記憶する。当
業者には、DRPU32がFPGAに基づく実装に制限
されないことは理解されよう。例えば、DRPU32は
RAM上の状態マシンとして、1つ又はそれ以上の参照
テーブルを含み得るように、実装されることがある。こ
れ以外にも、DRPU32は複合プログラマブル論理装
置(CPLD)を用いて実装できる。しかし、システム
10のSマシン12の幾つかは再構成可能ではないDR
PU32を有し得ることが当業者には理解されよう。
【0100】好適な実施の形態において、IFU60,
DOU62,AOU64は各々動的に再設定自在であ
る。つまり、これらの内部ハードウェア構成はプログラ
ム実行中に選択的に変更できる。IFU60は命令フェ
ッチ及びデコード演算、メモリアクセス演算、DRPU
再設定演算を指示し、DOU62とAOU64へ制御信
号を発行して命令実行を促す。DOU62はデータ計算
に関する演算を実行し、AOU64はアドレス計算に関
係する演算を実行する。IFU60,DOU62,AO
U64の各々の内部構造と動作について以下で詳細に説
明する。
【0101】図8を参照すると、命令フェッチユニット
60の好適な実施の形態のブロック図が図示してある。
IFU60は命令状態シーケンサ(ISS)100、ア
ーキテクチャ記述メモリ101、メモリアクセス論理回
路102、再設定論理回路104、割込み論理回路10
6、フェッチ制御ユニット108、命令バッファ11
0、デコード制御ユニット112、命令デコーダ11
4、オプコード記憶レジスタセット116、レジスタフ
ァイル(RF)アドレスレジスタセット118、定数レ
ジスタセット120、処理制御レジスタセット122を
含む。ISS100はIFUの第1と第2の制御出力を
各々形成する第1と第2の制御出力、IFUのタイミン
グ入力を形成するタイミング入力とを有する。
【0102】ISS100はフェッチ制御ユニット10
8の制御入力とデコード制御ユニット112の制御入力
にフェッチ/デコード制御線130経由で接続されたフ
ェッチ/デコード制御出力も有する。ISS100はさ
らに各々のメモリアクセス論理102、再設定論理回路
104、割込論理回路106へ双方向制御線132経由
で接続された双方向制御ポートも有する。ISS100
はオプコード線142経由でオプコード記憶レジスタセ
ット116の出力へ接続されたオプコード入力も有して
いる。最後に、ISS100は処理データ線144経由
で処理制御レジスタセット122の双方向データポート
へ接続された双方向データポートを有する。
【0103】メモリアクセス論理102、再設定論理回
路104、割込論理回路106の各々は外部制御線48
に接続した第2の双方向制御ポートを有する。メモリア
クセス論理102、再設定論理回路104、割込論理回
路106はさらに各々が実装制御線131経由でアーキ
テクチャ記述メモリ101のデータ出力へ結合したデー
タ入力を有する。メモリアクセス論理102はさらにI
FUのメモリ制御出力を構成する制御出力を有し、割込
論理回路106はさらに処理データ線144へ接続した
出力を有する。命令バッファ110はIFUのデータ入
力を構成するデータ入力、フェッチ制御線134経由で
フェッチ制御ユニット108の制御出力へ接続した制御
入力、命令線136経由で命令デコーダ114の入力へ
接続された出力を有する。命令デコーダ114はデコー
ド制御線138経由でデコード制御ユニット112の制
御出力へ接続した制御入力と、デコード命令線140経
由で 1)オプコード記憶レジスタセット116の入力、 2)RFアドレスレジスタセット118の入力、 3)定数レジスタセット120の入力へ接続した出力を
有する。RFアドレスレジスタセット118と定数レジ
スタセット120は各々がIFUの第3の制御出力74
を形成する出力を有する。
【0104】アーキテクチャ記述メモリ101は現在の
DRPU設定を特徴付けるアーキテクチャ仕様信号を記
憶する。望ましくは、アーキテクチャ仕様信号は 1)初期設定データセットの基準、 2)許容される設定データセットのリストへの基準、 3)現在検討しているISAに対応する設定データセッ
トの基準、即ち現在のDRPU設定を定義する設定デー
タセットへの基準、 4)図18を参照して詳細に後述するようにIFU60
が存在するSマシン12に関連するTマシン14内部の
1つ又はそれ以上の相互接続I/Oユニット304を識
別する相互接続アドレスリスト、 5)割込みにIFU60がどのように応答するかを定義
する割込精度情報と割込待ち時間を指定する割込応答信
号のセット、 6)アトミックメモリアドレス増分を定義するメモリア
クセス定数を含む。好適な実施の形態において、各々の
設定データセットは読出専用メモリ(ROM)として設
定された1組のCLBとしてアーキテクチャ記述メモリ
101を実装する。
【0105】アーキテクチャ記述メモリ101の内容を
定義するアーキテクチャ仕様信号は各々の設定データセ
ットに含まれるのが望ましい。つまり、各々の設定デー
タセットは特定のISAに対応するため、アーキテクチ
ャ記述メモリ101の内容は現在検討しているISAに
応じて変化する。任意のISAについて、アーキテクチ
ャ記述メモリ101の内容へのプログラムアクセスはI
SA内にメモリ読取命令を含めることで促されるのが望
ましい。これによってプログラムがプログラム実行中に
現在のDRPU設定についての情報を取出すことができ
るようになる。本発明において、再設定論理回路104
は設定データセットに従ってDRPU32の再設定を促
す再設定演算シーケンスを制御する状態マシンである。
望ましくは、再設定論理回路104は再設定信号受信時
に再設定演算を開始する。詳細には後述するように、再
設定信号は外部制御線48に受信した再設定割込み信号
に応じて割込論理回路106で、又はプログラム内に埋
め込まれた再設定指示に応じてISS100で生成され
る。再設定演算はアーキテクチャ記述メモリ101で参
照する初期設定データセットを用いて電源投入/リセッ
ト条件に続く初期DRPU設定を提供する。再設定演算
は初期DRPU設定が設定された後で選択的DRPU再
設定も提供する。再設定演算の完了時に、再設定論理回
路104は完了信号を発行する。好適な実施の形態にお
いて、再設定論理回路104は設定データセットを再プ
ログラム可能な論理装置自体に読込むことを制御する再
設定自在ではない論理回路で、再設定演算のシーケンス
は再プログラム可能な論理装置のメーカーが定義する。
再設定演算は従って当業者には周知であろう。
【0106】各々のDRPU設定は対応するISAの実
装に専用の特定のハードウェア構成を定義する設定デー
タセットで与えられるのが望ましい。好適な実施の形態
において、IFU60はDRPU設定に関わらず上記の
要素の各々を含む。基本的レベルでは、IFU60内の
各々の素子が提供する機能は現在考慮しているISAと
は無関係である。しかし、好適な実施の形態においては
IFU60の1つ又はそれ以上の素子の詳細な構造と機
能は設定されたISAの性質に基づいて変化することが
ある。好適な実施の形態において、アーキテクチャ記述
メモリ101と再設定論理回路104の構造及び機能は
1つのDRPU設定から別の設定へ一定のままとするの
が望ましい。IFU60の他の素子の構造及び機能とI
SA形式に従って変化させる方法は詳細に後述する。
【0107】処理制御レジスタセット122は命令実行
中にISS100により使用される信号とデータを保存
する。この処理制御レジスタセット122は処理制御ワ
ードを記憶するためのレジスタ、割込ベクタを保存する
ためのレジスタ、設定データセットへの基準を記憶する
ためのレジスタを含む。処理制御ワードは望ましくは命
令実行中に発生する条件に基づいて選択的に設定又はリ
セットできる複数の条件フラグを含む。処理制御ワード
はさらに詳細に後述するように割込みがサービスされ得
る1つ又はそれ以上の方法を定義する複数の遷移制御信
号を含む。好適な実施の形態において、処理制御レジス
タセット122はデータ記憶とゲート論理に設定された
1組のCLBとして実現している。
【0108】ISS100はフェッチ制御ユニット10
8、デコード制御ユニット112、DOU62、AOU
64の動作を制御する状態マシンであり、メモリアクセ
ス論理102にメモリ読込及びメモリ書込信号を発行し
て命令実行を促す。図9を参照すると、ISS100で
サポートしている好適な状態の組を示す状態図が図示し
てある。電源投入又はリセット条件に続いて、又は再設
定が行なわれた直後、ISS100は状態Pで演算を開
始する。再設定論理回路104が発行した完了信号に応
じて、ISS100は状態Sに移行し、ISSは電源投
入/リセット条件又は再設定が行なわれたときのプログ
ラム状態情報を各々初期化又は復元する。ISS100
は状態Fに移行し、命令フェッチ演算を行なう。命令フ
ェッチ演算では、ISS100はメモリ読取信号をメモ
リアクセス論理102に発行し、フェッチ信号をフェッ
チ制御ユニット108に発行し、インクリメント信号を
AOU64に発行して、図15及び図16を参照して詳
細に後述するように次命令プログラムアドレスレジスタ
(NIPAR)232をインクリメントする。
【0109】状態Fの後、ISS100は状態Dに移行
して命令デコード演算を開始する。状態DではISS1
00はデコード制御ユニット112にデコード信号を発
行する。状態Dにいる間にISS100はさらにオプコ
ード記憶レジスタセット116からデコードした命令に
対応するオプコードを取出す。取出したオプコードに基
づいて、ISS100は状態E又は状態Mへ移行して命
令実行演算を実行する。ISS100は1つのクロック
周期で命令が実行できる場合には状態Eに移行し、それ
以外の場合にはISS100は多周期命令実行のために
状態Mへ移行する。命令実行演算において、ISS10
0はDOU制御信号、AOU制御信号、及び/又はメモ
リアクセス論理102宛の信号を生成して取出したオプ
コードに対応する命令の実行を促す状態E又は状態Mの
何れかに続けてISS100は状態Wへ移行する。状態
Wでは、ISS100はDOU制御信号、AOU制御信
号、及び/又はメモリ書込信号を生成して命令実行結果
の保存を促す。状態Wはライトバック状態と称する。当
業者には状態F,D,E又はM及びWが完全な命令実行
サイクルを含むことが理解されよう。状態Wの後、命令
実行の中断が必要な場合にはISS100は状態Yに移
行する。状態Yはアイドリング状態に対応し、例えば、
Tマシン14がSマシンのメモリ34へアクセスする必
要がある場合等で必要とされることがある。状態Y又は
状態Wの後命令実行を継続する場合、ISS100は別
の命令実行サイクルを再開させるように状態Fへ戻る。
【0110】図9に図示したように、状態図には状態I
も含まれ、これは割込サービス状態であると定義する。
本発明において、ISS100は割込論理回路106か
ら割込通知信号を受信する。詳細については図10を参
照して後述するように割込論理回路106は遷移制御信
号を生成して処理制御レジスタセット122内の処理制
御ワードに遷移制御信号を保存する。遷移制御信号は望
ましくは状態F,D,E,M,W,Yのどれが割込可能
か、各々の割込可能状態で必要とされる割込精度のレベ
ル、及び各々の割込可能な状態で状態Iに続けて命令実
行を継続する次の状態を示す。任意の状態でISS10
0が割込通知信号を受信すると、ISS100は遷移制
御信号が現在の状態を割込可能であると示していれば状
態Iに移行する。それ以外の場合にはISS100は割
込可能な状態に達するまで、割込信号を受信しなかった
ように移行する。
【0111】ISS100が状態Iに移行すると、IS
S100は処理制御レジスタセット122にアクセスし
て割込みマスクフラグをセットし、割込ベクタを取出す
のが望ましい。割込ベクタの取出しの後、ISS100
は従来のサブルーチンジャンプによって割込ハンドラへ
割込ベクタで指定された現在の割込みをサービスするの
が望ましい。
【0112】本発明において、DRPU32の再設定
は、 1)外部制御線48に発行された再設定割込み、 2)プログラム命令シーケンス内の再設定指示の実行、
に応じて初期化される。好適な実施の形態において、再
設定割込みと再設定指示の実行の両方により再設定ハン
ドラへサブルーチンジャンプする。望ましくは、再設定
ハンドラはプログラム状態情報を保存し、設定データセ
ットのアドレスと再設定信号を再設定論理回路104に
発行する。
【0113】現在の割込みが再設定割込みではない場
合、ISS100は割込サービスが終ると遷移制御信号
2より示された次の状態へ移行し、これによって命令実
行サイクルの再開、完了、又は起動を行なう。
【0114】好適な実施の形態において、ISS100
でサポートされる状態のセットはDRPU32が設定さ
れるISAの性質に従って変化する。つまり、状態M
は、典型的な内側ループISAの場合のように、1クロ
ック周期で1つ又はそれ以上の命令を実行できるような
ISAでは存在しないことになる。図示したように、図
9の状態図は汎用外側ループISAを実装するためにI
SS100でサポートされる状態を定義するのが望まし
い。内側ループISAの実装では、ISS100は状態
F,D,E,Wの複数セットを並行してサポートし、こ
れによって当業者には容易に理解されるような方法で命
令実行のパイプライン制御を促すのが望ましい。好適な
実施の形態において、ISS100は現在検討している
ISAに従って前述の状態又は状態のサブセットをサポ
ートするCLBに基づく状態マシンとして実装される。
【0115】割込論理回路106は遷移制御信号を生成
し外部制御線48経由で受信した割込信号2応じて割込
通知演算を実行する状態マシンを含むのが望ましい。図
10を参照すると、割込論理回路106によりサポート
される好適な状態の組み合せを示す状態図が図示してあ
る。割込論理回路106は状態Pで演算を開始する。状
態Pは電源投入、リセット、又は再設定条件に対応す
る。再設定論理回路104が発行した完了信号に応じ
て、割込論理回路106は状態Aに移行し、アーキテク
チャ記述メモリ101から割込応答信号を取出す。割込
論理回路106は割込応答信号から遷移制御信号を生成
し、遷移制御信号を処理制御レジスタセット122に保
存する。好適な実施の形態において、割込論理回路10
6は割込応答信号を受信し遷移制御信号を生成するため
のCLBによるプログラマブル・ロジックアレイ(PL
A)を含む。
【0116】状態Aの後、割込論理回路106は状態B
へ移行して割込信号を待つ。割込信号の受信時に、処理
制御レジスタセット122内部の割込マスクフラグがリ
セットされる場合割込論理回路106は状態Cへ移行す
る。状態Cでは、割込論理回路106は割込みの発生場
所、割込順位、割込ハンドラのアドレスを判定する。割
込信号が再設定割込の場合、割込論理回路106は状態
Rに移行して処理制御レジスタセット122の設定デー
タセット・アドレスを保存する。状態Rの後、又は割込
信号が再設定割込ではない場合に状態Cに続けて、割込
論理回路106は状態Nに移行し、処理制御レジスタセ
ット122に割込ハンドラアドレスを保存する。割込論
理回路106は次に状態Xへ移行し、割込通知信号をI
SS100へ発行する。状態Xに続けて、処理制御レジ
スタセット122は状態Bへ復帰して次の割込信号を待
機する。
【0117】好適な実施の形態において、割込応答信号
即ち遷移制御信号により指定された割込遅延レベルはD
RPU32が設定された現在のISAに従って変化す
る。例えば、高性能リアルタイムモーション制御専用の
ISAは高速かつ予測可能な割込応答能力を必要とす
る。このようなISAに対応する設定データセットは望
ましくは遅延の小さい割込が要求されていることを示す
割込応答信号を含む。これに対応する遷移制御信号は複
数のISS状態を割込可能であると識別し、これによっ
て割込が命令実行サイクルの終了までに命令実行サイク
ルを中断できるようにするのが望ましい。リアルタイム
モーション制御専用のISAとは対照的に、画像コンボ
リューション演算専用のISAは単位時間当たりで実行
されるコンボリューション演算数が最大となるように割
込応答能力を必要とする。画像コンボリューションIS
Aに対応する設定データセットは遅延時間の大きな割込
みを必要とすることを指定する割込応答信号を含むのが
望ましい。対応する遷移制御信号は望ましくは状態Wを
割込可能であると識別する。画像コンボリューションI
SAを実装するように設定された場合にISS100が
複数の状態セットF,D,E,Wを並行してサポートす
る場合、遷移制御信号は各々の状態Wを割込可能である
と識別するのが望ましく、さらに、並列命令実行サイク
ルの各々が状態Wの演算を完了するまで割込サービスを
遅延させるように指定する。これによって命令グループ
全体が割込サービスの前に実行され、妥当なパイプライ
ン化実行能力レベルを維持できる。
【0118】割込遅延レベルと類似の方法で、割込応答
信号により指定される割込精度のレベルもDRPU32
が設定されるISAに従って変化する。例えば、割込可
能な複数サイクル演算を指示する外側ループISAで割
込可能な状態であると状態Mが定義された場合、割込応
答信号は正確な割込みが必要であることを指定するのが
望ましい。遷移制御信号は状態Mで受信した割込みが複
数サイクル演算を連続して再スタートできるようにする
正確な割込みとして処理する。別の例として、障害の発
生しないパイプライン化算術演算をサポートするISA
では、割込応答信号は不正確な割込みが要求されること
を指定する。遷移制御信号は状態Wで受信した割込が不
正確な割込みとして処理されることを指定する。
【0119】任意のISAについて、割込応答信号はI
SAの対応する設定データセットの一部により定義又は
プログラムされる。プログラム可能な割込応答信号と対
応する遷移制御信号の生成を経由して、本発明は、IS
A毎の最適な割込方式の実現を容易にする。大半の従来
技術のコンピュータアーキテクチャが割込能力の柔軟な
仕様、言い換えればプログラム可能な状態遷移のイネー
ブル化、プログラム可能な割込遅延、及び、プログラム
可能な割込精度を提供しないことが当業者には理解され
よう。好適な実施の形態において、割込論理回路106
は前述の状態をサポートするCLBに基づいた状態マシ
ンとして実装される。
【0120】フェッチ制御ユニット108はISS10
0が発行したフェッチ信号に応答して命令バッファ11
0に命令を読込むよう指示する。好適な実施の形態にお
いて、フェッチ制御ユニット108はCLBセット内部
でフリップフロップを使用する従来のワンホット・符号
化状態マシンとして実装される。別の実施の形態におい
て、フェッチ制御ユニット108は従来の符号化状態マ
シンとして、又はROM版の状態マシンとして、設定で
きることが当業者には理解されよう。ISS100はメ
モリ34から読込んだ命令の一時記憶を提供する。外側
ループISAの実装では、命令バッファ110は複数の
CLBを使用する従来のRAM版先入れ先出し(FIF
O)バッファとして実装するのが望ましい。内側ループ
ISAの実装では、命令バッファ110は複数のフリッ
プフロップを1組のIOB内部に、又は複数のフリップ
フロップをIOBとCLB両方の内部に使用する1組の
フリップフロップ・レジスタとして実装するのが望まし
い。
【0121】デコード制御ユニット112はISS10
0が発行するデコード信号に応じて命令デコーダ114
へ命令バッファ110からの命令の転送を指示する。内
側ループISAでは、デコード制御ユニット112はC
LB版レジスタに接続したCLB版ROMを含むROM
版状態マシンとして実装するのが望ましい。外側ループ
ISAでは、デコード制御ユニット112はCLB版符
号化状態マシンとして実装するのが望ましい。入力とし
て受信した各々の命令について、命令デコーダ114は
対応するオプコード、レジスタファイルアドレス、及び
任意で1つ又はそれ以上の定数を従来の方法で出力す
る。内側ループISAでは、命令デコーダ114は入力
として受信した命令グループをデコードするように構成
するのが望ましい。好適な実施の形態において、命令デ
コーダ114は現在検討しているISAに含まれる命令
の各々をデコードするように設定したCLB版デコーダ
として実装される。
【0122】オプコード記憶レジスタセット116は処
理データ線144が出力した各々のオプコードの一時記
憶を提供し、各々のオプコードをISS100へ出力す
る。外側ループのISAがDRPU32に実装される場
合、オプコード記憶レジスタセット116は最適な個数
のフリップフロップレジスタバンクを使用して実装する
のが望ましい。フリップフロップレジスタバンクは命令
バッファ110経由でそれまで待ち行列にある命令から
のオプコード文字ビットフィールドから導き出したクラ
ス又はグループ符号を表わす命令デコーダ114からの
信号を受信する。フリップフロップレジスタバンクはI
SSの複雑さを望ましくは低減する復号方式に従って前
述のクラス又はグループ符号を保存する。
【0123】内側ループISAの場合、オプコード記憶
レジスタセット116は望ましくは命令デコーダ114
が出力するオプコード文字ビットフィールドからさらに
直接導き出されるオプコード指示信号を保存する。内側
ループISAは必ず小さいオプコード文字ビットフィー
ルドを有しているので、これによって命令バッファ11
0、命令デコーダ114、オプコード記憶レジスタセッ
ト116の各々でシーケンス化される命令についてのバ
ッファリング、復号、オプコード指示の実施条件を少な
くする。要するに、外側ループISAでは、オプコード
記憶レジスタセット116は、オプコード文字サイズに
等しい又はその一部のビット幅を特徴とするフリップフ
ロップ・レジスタバンクの小さな集合として実装される
のが望ましい。内側ループISAでは、オプコード記憶
レジスタセット116は外側ループISAよりも小さく
さらに統一されたフリップフロップ・レジスタバンクが
望ましい。内側ループの場合にフリップフロップ・レジ
スタバンクの縮小した大きさは外側ループISAに対し
て内側ループISAの最小命令カウント特性を反映す
る。
【0124】RFアドレスレジスタセット118と定数
レジスタセット120は命令デコーダ114から出力さ
れる各々のレジスタファイル・アドレスと各々の定数の
一時記憶を提供する。好適な実施の形態において、オプ
コード記憶レジスタセット116、RFアドレスレジス
タセット118、定数レジスタセット120は各々デー
タ記憶のために設定した1組のCLBとして実装され
る。
【0125】メモリアクセス論理回路102はメモリ3
4,DOU62,AOU64の間で処理制御レジスタセ
ット122において指定されたアトミックメモリアドレ
スの寸法に従ってデータ転送を指示し同期させるメモリ
制御回路である。メモリアクセス論理回路102はさら
にSマシン12と任意のTマシン14の間のデータ及び
命令の転送を指示し同期させる。好適な実施の形態にお
いて、メモリアクセス論理回路102はバーストモード
・メモリアクセスをサポートしており、望ましくはCL
Bを用いる従来のRAM制御装置として実装する。再設
定中、再設定可能な論理装置の入出力ピンは3状態であ
り、抵抗端末処理で発行されない論理レベルを定義で
き、このためメモリ34を不安定にしないことが当業者
には理解されよう。別の実施の形態において、メモリア
クセス論理回路102はDRPU32の外部に実装する
ことができる。
【0126】図11を参照すると、データ演算ユニット
(DOU)62の好適な実施の形態のブロック図が図示
してある。DOU62はDOU制御信号、RFアドレ
ス、ISS100から受信した定数に対して演算を実行
する。DOU62はDOUクロスバースイッチ150、
記憶・配列論理回路152、データ演算論理回路154
を含む。DOUクロスバースイッチ150、記憶・配列
論理回路152、データ演算論理回路154の各々は第
1の制御線70経由でIFU60の第1の制御出力に接
続した制御入力を有する。DOUクロスバースイッチ1
50はDOUの双方向データポートを形成する双方向デ
ータポート、第3の制御出力74に接続した定数入力、
第1のデータ線160経由でデータ演算論理回路154
のデータ出力に接続してある第1のデータフィードバッ
ク入力、第2のデータ線164で記憶・配列論理回路1
52のデータ出力に接続してある第2のデータフィード
バック入力、第3のデータ線162で記憶・配列論理回
路152のデータ入力に接続してあるデータ出力とを有
する。データ出力以外に、データ演算論理回路154は
第3の制御出力74に接続してあるアドレス入力を有す
る。データ演算論理回路154はさらに第2のデータ線
164で記憶・整列論理の出力へ接続してあるデータ入
力を有する。
【0127】データ演算論理回路154は制御入力に受
信したDOU制御信号に応じてこれのデータ入力に受信
したデータに算術、シフト、及び/又は論理演算を実行
する。記憶・配列論理回路152は、これのアドレス入
力と制御入力の各々で受信したRFアドレスとDOU制
御信号の指示に従ってデータ計算に関連するオペラン
ド、定数、部分的な結果の一時記憶を提供するデータ記
憶素子を含む。DOUクロスバースイッチ150はメモ
リ34からのデータ読込、データ演算論理回路154が
記憶・配列論理回路152又はメモリ34へ出力した結
果の転送、制御入力に受信したDOU制御信号に従って
記憶・配列論理回路152へIFU60が出力した定数
の読込を容易にする従来のクロスバースイッチが望まし
い。
【0128】好適な実施の形態において、データ演算論
理回路154の詳細な構造は現在検討しているISAで
サポートされる演算の種類によって変化する。つまり、
データ演算論理回路154は現在検討しているISA内
部のデータ演算命令で指定された算術及び/又は論理演
算を実行するための回路を含む。同様に記憶・配列論理
回路152とDOUクロスバースイッチ150の詳細な
構造は現在検討しているISAによって変化する。デー
タ演算論理回路154と、記憶・配列論理回路152
と、DOUクロスバースイッチ150のISA形式によ
る詳細な構造については図12と図13を参照して後述
する。
【0129】外側ループISAについて、DOU62は
データに対して直列演算を実行するように設定するのが
望ましい。図12を参照すると、汎用外側ISAの実装
のために設定したDOU61の第1の実施の形態のブロ
ック図が図示してある。汎用外側ループISAは乗算、
加算、減算等の数学演算、AND、OR、NOT等のブ
ーリアン演算、シフト演算、回転演算等を実行するよう
に設定したハードウェアを必要とする。つまり、汎用外
側ループデータ演算論理回路154は第1の入力と、第
2の入力と、制御入力と、出力とを有する従来の算術論
理ユニット(ALU)/シフト回路184を含むのが望
ましい。記憶・配列論理回路152は望ましくは第1の
RAM180と第2のRAM182を含み、その各々が
データ入力と、データ出力と、アドレス選択入力と、イ
ネーブル入力とを有する。DOUクロスバースイッチ1
50は望ましくは双方向と単方向両方のクロスバー接続
を有し、また、図11を参照して既に説明したような入
力と出力とを有するような従来技術のクロスバースイッ
チを含む。外側ループISAでのDOUクロスバースイ
ッチ150の効率的な実装がマルチプレクサ、スリース
テートバッファ、CLBによる論理回路、直接配線、又
は再設定可能な接続手段によりあらゆる組み合せで接続
された前述の素子のサブセットを含み得ることが当業者
には理解されよう。
【0130】外側ループISAでは、DOUクロスバー
スイッチ150は可能な限り最小限の時間でシリアルデ
ータ移動を行なうように実装され、同時に一般化した外
側ループ命令形式をサポートするように最大個数の独自
のデータ移動クロスバー接続も提供する。
【0131】第1のRAM180のデータ入力は第2の
RAM182同様に、第3のデータ線162経由でDO
Uクロスバースイッチ150のデータ出力へ接続され
る。第1のRAM180と第2のRAM182のアドレ
ス選択入力は第3の制御出力74によりIFU60から
のレジスタファイルアドレスを受信するように接続され
る。同様に、第1のRAM180と第2のRAM182
のイネーブル入力は第1の制御線70経由でDOU制御
信号を受信するように接続する。第1のRAM180と
第2のRAM182のデータ出力はALU/シフト回路
184の第1と第2の入力に各々接続され、DOUクロ
スバースイッチ150の第2のデータフィードバック入
力へも接続される。ALU/シフト回路184の制御入
力は第1の制御線70経由でDOU制御信号を受信する
ように接続され、ALU/シフト回路184の出力はD
OUクロスバースイッチ150の第1のデータフィード
バック入力に接続される。DOUクロスバースイッチ1
50の残りの入出力の接続は図11を参照して前述した
のと同じである。
【0132】データ演算命令の実行を容易にするため、
IFU60はDOU制御信号、RFアドレス、DOU6
1への定数をISS状態E又はM何れかの間に発行す
る。第1のRAM180と第2のRAM182は各々一
時データ記憶のためのレジスタファイルを提供する。第
1のRAM180と第2のRAM182内部の個別のア
ドレスは各々のRAMの各々のアドレス選択入力で受信
したRFアドレスに従って選択される。同様に、第1の
RAM180と第2のRAM182の読込みは各々第1
のRAM180と第2のRAM182の各々が書込みイ
ネーブル入力に受信するDOU制御信号によって制御さ
れる。好適な実施の形態において、少なくとも1つのR
AM180、182はDOUクロスバースイッチ150
からALU/シフト回路184への直接的なデータ転送
を容易にする転送能力を含む。ALU/シフト回路18
4は、制御入力に受信したDOU制御信号の指示によっ
て、第1のRAM180から受信した第1のオペランド
及び/又は第2のRAM182から受信した第2のオペ
ランドに対する算術、論理、シフト演算を行なう。DO
Uクロスバースイッチ150は、 1)メモリ34と第1のRAM180及び第2のRAM
182の間のデータ、 2)ALU/シフト回路184から第1のRAM180
及び第2のRAM182又はメモリ34への結果、 3)第1のRAM180又は第2のRAM182に記憶
されたデータをメモリ34へ、 4)IFU60から第1のRAM180及び第2のRA
M182への定数、を選択的に転送する。前述のよう
に、第1のRAM180又は第2のRAM182の何れ
かが転送能力を含む場合、DOUクロスバースイッチ1
50もメモリ34又はALU/シフト回路184の出力
からのデータを直接ALU/シフト回路184へ選択的
に配送する。DOUクロスバースイッチ150は制御入
力に受信したDOU制御信号に従って特定の配送演算を
実行する。好適な実施の形態において、ALU/シフト
回路184は1組のCLB内部の論理関数ジェネレータ
を用いまた再設定可能な論理装置内部の数学演算専用の
回路を用いて実装される。第1のRAM180、第2の
RAM182は各々1組のCLB内部に存在するデータ
記憶回路を用いて実装するのが望ましく、DOUクロス
バースイッチ150は前述の方法で実装するのが望まし
い。
【0133】図13を参照すると、内側ループISAの
実施のために設定したDOU63の第2の実施の形態の
ブロック図が図示してある。一般に、内側ループISA
は比較的少数の特定化した演算をサポートし、望ましく
は潜在的に大きなデータセットに対する共通の1組の演
算を実行するために使用される。内側ループISAの最
適計算能力は並列に演算を実行するように設定されたハ
ードウェアによって作成される。即ち、DOU63の第
2の実施の形態において、データ演算論理回路154、
記憶・配列論理回路152、DOUクロスバースイッチ
150はパイプライン化計算を実行するように設定され
る。データ演算論理回路154は、複数の入力と、制御
入力と、出力とを有するパイプライン化機能ユニット1
94を含む。記憶・配列論理回路152は、 1)各々がデータ入力と、データ出力と、制御入力とを
有する1組の従来のフリップフロップ・アレイ192、 2)制御入力と、データ入力と、存在するフリップフロ
ップ・アレイ192の個数に対応する多数のデータ出力
とを有するデータセレクタ190、を含む。DOUクロ
スバースイッチ150は全二重単方向クロスバ−結合を
有する従来のクロスバースイッチ・ネットワークを有す
る。DOU63の第2の実施の形態において、DOUク
ロスバースイッチ150は図11を参照して前述した入
力と出力を含み、第2のデータフィードバック入力を含
まないのが望ましい。外側ループISAの場合と同様
に、内側ループISAのためのDOUクロスバースイッ
チ150の効率的な実装はマルチプレクサ、スリーステ
ートバッファ、CLBによる論理回路、直接配線、又は
再設定可能な方法で接続した前述の素子のサブセットを
含む。内側ループISAでは、DOUクロスバースイッ
チ150は望ましくは最小限の時間で並列データ移動を
最大限に行なえるようにしつつ重いパイプライン化内側
ループISA命令をサポートするような最少数の独自デ
ータ移動クロスバ結合も提供するように実装する。
【0134】データセレクタ190のデータ入力は第3
のデータ線162経由でDOUクロスバースイッチ15
0のデータ出力へ接続する。データセレクタ190の制
御入力は第3の制御出力74でRFアドレスを受信する
ように接続し、データセレクタ190の各々の出力は対
応するフリップフロップ・アレイのデータ入力へ接続す
る。各々のフリップフロップ・アレイ192の制御入力
は第1の制御線70経由でDOU制御信号を受信するよ
うに接続し、各々のフリップフロップ・アレイのデータ
出力はパイプライン化機能ユニット194の入力に接続
する。パイプライン化機能ユニット194の制御入力は
第1の制御線70経由でDOU制御信号を受信するよう
に接続し、パイプライン化機能ユニット194の出力は
DOUクロスバースイッチ150の第1のデータフィー
ドバック入力に接続する。DOUクロスバースイッチ1
50の残りの入力と出力の接続は図11を参照して既に
説明したものと同一である。
【0135】動作において、パイプライン化機能ユニッ
ト194は制御入力に受信したDOU制御信号に従って
データ入力に受信したデータに対するパイプライン演算
を実行する。機能ユニット194は乗算アキュームレー
タユニット、閾値決定ユニット、画像回転ユニット、エ
ッジ強調ユニット、又は分割データに対するパイプライ
ン演算を実行するのに好適な何らかの種類の機能ユニッ
トで有り得ることは当業者に理解されよう。データセレ
クタ190はDOUクロスバースイッチ150の出力か
ら任意のフリップフロップ・アレイ192へ制御入力に
受信したRFアドレスに従ってデータを転送する。各々
のフリップフロップ・アレイ192は制御入力に受信し
た制御信号の指示に従って、別のフリップフロップ・ア
レイ192のデータ内容に対して空間的時間的に配列し
たデータのために1組の順次結合したデータラッチを含
むのが望ましい。DOUクロスバースイッチ150は選
択的に、 1)メモリ34からデータセレクタ190へのデータ、 2)乗算/積算ユニット194からデータセレクタ19
0へ又はメモリ34への結果、 3)IFU60からデータセレクタ190への定数、を
転送する。
【0136】内側ループISAは1組の「組み込み」定
数を有することが当業者には理解されよう。このような
内側ループISAの実施において、データ演算論理回路
154は組み込み定数を含むCLBによるROMを含
み、これによって、IFU60からDOUクロスバース
イッチ150経由で記憶・配列論理回路152へ定数を
転送する必要性を排除するのが望ましい。好適な実施の
形態において、機能ユニット乗算/積算ユニット194
は論理関数ジェネレータと1組のCLB内部の数学演算
専用回路を用いて実装するのが望ましい。各々のフリッ
プフロップ・アレイ192は1組のCLB内部のフリッ
プフロップを用いて実装するのが望ましく、また、デー
タセレクタ190は1組のCLB内部の論理関数ジェネ
レータとデータ選択回路を用いて実装するのが望まし
い。最後に、DOUクロスバースイッチ150は内側ル
ープISAで説明した方法で実装するのが望ましい。
【0137】図14を参照すると、アドレス演算ユニッ
ト(AOU)64の好適な実施の形態のブロック図が図
示してある。AOU64はIFU60から受信したAO
U制御信号、RFアドレス、及び、定数に従ってアドレ
スに演算を行なう。AOU64はAOUクロスバースイ
ッチ200、記憶・カウント論理回路202、アドレス
演算論理回路204、アドレス・マルチプレクサ206
の各々は制御信号線72経由でIFU60の第2の制御
出力に接続した制御入力を有する。AOUクロスバー・
スイッチ200はAOUの双方向データポートを形成す
る双方向データポート、第1のアドレス線210経由で
アドレス演算論理回路204のアドレス出力に接続した
アドレスフィードバック入力、第3の制御出力74へ接
続した定数入力、第2のアドレス線212経由で記憶・
カウント論理回路202のアドレス入力に接続したアド
レス出力を有する。アドレス入力と制御入力以外にも、
記憶・カウント論理回路202は第3の制御出力74に
接続したRFアドレス入力と、第3のアドレス線214
経由でアドレス演算論理回路204のアドレス入力に接
続したアドレス出力を有する。アドレス・マルチプレク
サ206は第1のアドレス線210へ接続した第1の入
力と、第3のアドレス線214へ接続した第2の入力
と、AOU64のアドレス出力を形成する出力とを含
む。
【0138】アドレス演算論理回路204はこれの制御
入力に受信したAOU制御信号の指示によってこれのア
ドレス入力に受信したアドレスに対して算術演算を行な
う。記憶・カウント論理回路202はアドレスとアドレ
ス計算結果の一時記憶を提供する。AOUクロスバース
イッチ200はメモリ34からのアドレス読込、アドレ
ス演算論理回路204が出力した結果の記憶・カウント
論理回路202又はメモリ34への転送、IFU60が
出力した定数の記憶・カウント論理回路202への読込
をこれの制御入力に受信したAOU制御信号に従って行
なう。アドレス・マルチプレクサ206は記憶・カウン
ト論理回路202又はAOUクロスバースイッチ200
から受信したアドレスをこれの制御入力に受信したAO
U制御信号の指示によりAOU64のアドレス出力へ選
択的に出力する。好適な実施の形態において、AOUク
ロスバースイッチ200、記憶・カウント論理回路20
2、アドレス演算論理回路204の細部の構造は現在検
討中のISAの種類によって、図15及び図16を参照
してこの後説明するように異ってくる。
【0139】図15を参照すると、汎用外側ループIS
Aの実装用に設定したAOU65の第1の実施の形態の
ブロック図が図示してある。汎用外側ループISAはプ
ログラムカウンタの内容と記憶・カウント論理回路20
2に記憶しているアドレスに対して加算、減算、インク
リメント、デクリメント等の演算を行なうためのハード
ウェアを必要とする。AOU65の図示した第1の実施
の形態において、アドレス演算論理回路204は入力と
出力と制御入力を有する次命令プログラムアドレス・レ
ジスタ(NIPAR)232、第1の入力と第2の入力
と第3の入力と制御入力と出力を有する算術ユニット2
34、第1の入力と第2の入力と制御入力と出力を有す
るマルチプレクサ230を含むのが望ましい。記憶・カ
ウント論理回路202は望ましくは第3のRAM220
と第4のRAM222を含み、この各々は入力と出力と
アドレス選択入力とイネーブル入力を有する。アドレス
・マルチプレクサ206は望ましくは第1の入力と第2
の入力と第3の入力と制御入力と出力とを有するマルチ
プレクサを含む。AOUクロスバースイッチ200は望
ましくは全二重単方向クロスバ結合を有し、また、図1
4を参照して既に説明した入力と出力を有する従来のク
ロスバースイッチ・ネットワークを含む。AOUクロス
バースイッチ200の効率的な実装はマルチプレクサ
と、スリーステートバッファと、CLBによる論理回路
と、直接配線又は再設定可能な結合によって接続された
これら素子の何らかのサブセットを含むことがある。外
側ループISAでは、AOUクロスバースイッチ200
は望ましくは最小限の時間で最大限に直列アドレス移動
を行ない、同時に一般化した外側ループISAアドレス
演算命令をサポートするように最大数の独自アドレス移
動クロスバ結合を提供するように実装する。
【0140】第3のRAM220の入力と第4のRAM
222の入力は各々第2のアドレス線212経由でAO
Uクロスバースイッチ200の出力に接続される。第3
のRAM220と第4のRAM222のアドレス選択入
力は第3の制御出力74経由でIFU60からのRFア
ドレスを受信するように接続され、第3のRAM22
0、第4のRAM222のイネーブル入力は制御信号線
72経由でAOU制御信号を受信するように接続され
る。第3のRAM220の出力はマルチプレクサ230
の第1の入力、算術ユニット234の第1の入力、アド
レス・マルチプレクサ206の第1の入力に接続され
る。同様に、第4のRAM222の出力はマルチプレク
サ230の第2の入力、算術ユニット234の第2の入
力、アドレス・マルチプレクサ206の第2の入力に接
続される。マルチプレクサ230、NIPAR232、
算術ユニット234の制御入力は各々が制御信号線72
に接続される。算術ユニット234の出力はアドレス演
算論理回路204の出力を形成するので、AOUクロス
バースイッチ200のアドレスフィードバック入力とア
ドレス・マルチプレクサ206の第3の入力に接続され
る。AOUクロスバースイッチ200とアドレス・マル
チプレクサ206の残りの入出力への接続は図14を参
照して既に説明したのと同じである。
【0141】アドレス演算命令の実行を容易にするた
め、IFU60はAOU制御信号、RFアドレス、定数
をISS状態E又はM何れかの間に発行する。第3のR
AM220、第4のRAM222は各々一時的なアドレ
ス記憶のための第1と第2のレジスタファイルを提供す
る。第3のRAM220、第4のRAM222内部の個
別の記憶場所は各々のRAMの各々のアドレス選択入力
で受信したRFアドレスに従って選択される。第3のR
AM220、第4のRAM222の読込みは第3のRA
M220、第4のRAM222の各々が書込イネーブル
入力に受信する各々のAOU制御信号により制御され
る。マルチプレクサ230は第3のRAM220、第4
のRAM222が出力したアドレスをこれの制御入力に
受信したAOU制御信号の指示に従ってNIPAR23
2へ選択的に転送する。NIPAR232はマルチプレ
クサ230の出力から受信したアドレスを読込み、これ
の制御入力に受信したAOU制御信号に従ってこれの内
容をインクリメントする。好適な実施の形態において、
NIPAR232は実行すべき次のプログラム命令のア
ドレスを記憶する。算術ユニット234は加算、減算、
インクリメント、デクリメントを含む算術演算を、第3
のRAM220、第4のRAM222から受信したアド
レスに対して、及び/又はNIPAR232の内容に対
して実行する。AOUクロスバースイッチ200は選択
的に、 1)メモリ34から第3のRAM220、第4のRAM
222へのアドレス、 2)算術ユニット234が出力したメモリ34又は第3
のRAM220、第4のRAM222へのアドレス計算
の結果、を転送する。AOUクロスバースイッチ200
はこれの制御入力に受信したAOU制御信号に従って特
定の転送演算を実行する。アドレス・マルチプレクサ2
06は第3のRAM220が出力したアドレス、第4の
RAM222が出力したアドレス、又は算術ユニット2
34が出力したアドレス計算の結果をこれの制御入力に
受信したAOU制御信号の指示に従ってAOUのアドレ
ス出力へ選択的に転送する。
【0142】好適な実施の形態において、第3のRAM
220、第4のRAM222は各々が1組のCLB内部
に存在するデータ記憶回路を用いて実現される。マルチ
プレクサ230とアドレス・マルチプレクサ206は各
々1組のCLB内部に存在するデータ選択回路を用いて
実現され、NIPAR232は1組のCLB内部に存在
するデータ記憶回路を用いて実現されるのが望ましい。
算術ユニット234は1組のCLB内部の論理関数ジェ
ネレータと算術演算専用の回路を用いて実現されるのが
望ましい。最後に、AOUクロスバースイッチ200は
望ましくは前述した方法で実現される。
【0143】図16を参照すると、内側ループISAの
実装用に設定したAOU66の第2の実施の形態のブロ
ック図が図示してある。望ましくは、内側ループISA
は非常に限定された1組のアドレス演算を実行するため
のハードウェアと、少なくとも1つのソース・アドレス
・ポインタとこれに対応する多数の宛先アドレス・ポイ
ンタを保持するためのハードウェアを必要とする。非常
に限られた個数のアドレス演算、又は1つだけのアドレ
ス演算を必要とする内側ループ処理の形式には、画像デ
ータに対するブロック、ラスタ、又は歪曲演算、ビット
反転演算、巡回バッファデータに対する演算、及び可変
長データ・パース演算が含まれる。本明細書において
は、単一のアドレス演算、即ち、インクリメント演算を
考える。インクリメント演算を実行するハードウェアは
本質的にデクリメント演算を実行することも可能である
ので、さらなるアドレス演算能力を提供し得ることが当
業者には理解されよう。
【0144】AOU66の第2の実施の形態において、
記憶・カウント論理回路202は入力と出力と制御入力
とを有する少なくとも1つのソースアドレス・レジスタ
252、入力と出力と制御入力とを有する少なくとも1
つの宛先アドレス・レジスタ254、及び入力と制御入
力と存在するソース及び宛先アドレスレジスタ252、
254の総数に等しい多数の出力を有するデータセレク
タ250を含む。本明細書において、1つのソースアド
レス・レジスタ252と1つの宛先アドレス・レジスタ
254とを考えるので、データセレクタ250は第1の
出力と第2の出力とを有する。アドレス演算論理回路2
04は入力と出力と制御入力とを有するNIPAR23
2、データセレクタ出力の数に等しい多数の入力と制御
入力と出力とを有するマルチプレクサ260とを含む。
本明細書において、マルチプレクサ260は第1の入力
と第2の入力とを有する。アドレス・マルチプレクサ2
06は望ましくはデータセレクタ出力の個数より1つ多
い多数の入力と、制御入力と、出力とを有するマルチプ
レクサを含む。つまり、本明細書において、アドレス・
マルチプレクサ206は第1の入力と、第2の入力と、
第3の入力とを有する。
【0145】AOUクロスバースイッチ200は望まし
くは双方向及び単方向クロスバー結合を有し、図14を
参照して前述した入力及び出力を有する従来のクロスバ
ースイッチ・ネットワークを含む。AOUクロスバース
イッチ200の効果的な実装は、マルチプレクサと、ス
リーステートバッファと、CLBによる論理回路と、直
接配線、又は再設定自在な結合により接続されたこれら
の素子の何らかのサブセットを含むことができる。内側
ループISAでは、AOUクロスバースイッチ200は
望ましくは可能な限り最小限の時間で並列アドレス移動
を最大限としつつ最小の個数の独自のアドレス移動クロ
スバー結合も提供して内側ループアドレス演算をサポー
トする。
【0146】データセレクタ250の入力はAOUクロ
スバースイッチ200の出力に接続される。データセレ
クタ250の第1と第2の出力はソースアドレス・レジ
スタ252の入力と宛先アドレス・レジスタ254の入
力に各々接続される。ソースアドレス・レジスタ252
と宛先アドレス・レジスタ254の制御入力は制御信号
線72経由でAOU制御信号を受信するように接続され
る。ソースアドレス・レジスタ252の出力はマルチプ
レクサ260の第1の入力とアドレス・マルチプレクサ
206の第1の入力に接続される。同様に、宛先アドレ
ス・レジスタ254の出力は宛先アドレス・レジスタ2
54の第2の入力とアドレス・マルチプレクサ206の
第2の入力に接続される。NIPAR232の入力はマ
ルチプレクサ260の出力へ接続され、NIPAR23
2の制御入力は制御信号線72経由でAOU制御信号を
受信するように接続され、NIPAR232の出力はA
OUクロスバースイッチ200のアドレスフィードバッ
ク入力とアドレス・マルチプレクサ206の第3の入力
の両方に接続される。AOUクロスバースイッチ200
の残りの入力及び出力の接続は図14を参照して上記で
既に説明したものと同じである。
【0147】動作において、データセレクタ250はA
OUクロスバースイッチ200から受信したアドレスを
ソースアドレス・レジスタ252又は宛先アドレス・レ
ジスタ254へ、これの制御入力に受信したRFアドレ
スに従って転送する。ソースアドレス・レジスタ252
はこれの制御入力に存在するAOU制御信号に応じてこ
れの入力に存在するアドレスを読込む。宛先アドレス・
レジスタ254は同様の方法で入力に存在するアドレス
を読込む。マルチプレクサ260はソースアドレス・レ
ジスタ252から受信した又は宛先アドレス・レジスタ
254から受信したアドレスをこれの制御入力で受信し
たAOU制御信号に従ってNIPAR232の入力へ転
送する。NIPAR232はこれの入力に存在するアド
レスを読込み、これの制御入力で受信したAOU制御信
号に応じてその内容をインクリメントし、又はその内容
をデクリメントする。AOUクロスバースイッチ200
は選択的に、 1)メモリ34からのアドレスをデータセレクタ250
へ、 2)NIPAR232の内容をメモリ34へ又はデータ
セレクタ250へ、転送する。AOUクロスバースイッ
チ200はこれの制御入力で受信したAOU制御信号に
従って特定の転送演算を実行する。アドレス・マルチプ
レクサ206はソースアドレス・レジスタ252、宛先
アドレス・レジスタ254、又はNIPAR232の内
容を、これの制御入力で受信したAOU制御信号の指示
に従ってAOUのアドレス出力へ選択的に転送する。好
適な実施の形態において、ソースアドレス・レジスタ2
52と宛先アドレス・レジスタ254は各々1組のCL
B内部に存在するデータ記憶回路を用いて実装される。
【0148】NIPAR232は、望ましくは1組のC
LB内部のインクリメント/デクリメント論理回路とフ
リップフロップを使用して実装される。データセレクタ
250、マルチプレクサ230、アドレス・マルチプレ
クサ206は各々1組のCLB内部に存在するデータ選
択回路を使用して実装するのが望ましい。最後に、AO
Uクロスバースイッチ200は、望ましくは内側ループ
で前述した方法で実装する。ある種のアプリケーション
において、外側ループがDOU設定で内側ループがAO
U構成、又はその逆のISAを用いるのが有利であるこ
とは当業者には理解されよう。例えば、結合文字列検索
ISAは有利にも外側ループがAOU設定で内側ループ
がDOU設定を用いる。別の例として、ヒストグラム演
算を実行するISAは有利にも外側ループがDOU設定
で内側ループがAOU設定を用いることになる。
【0149】有限再設定自在なハードウェア資源はDR
PU32の各々の素子の間で割当てなければならない。
再設定自在なハードウェア資源は個数が限られているの
で、例えば、IFU60に割当てる方法はDOU62と
AOU64で実行可能な最大計算能力レベルに影響を与
える。IFU60,DOU62,AOU64の間で再設
定自在なハードウェア資源を割当てる方法は任意の時刻
に実装しようとするISAの種類によって変化する。I
SAの複雑さが増加するほど、多くの再設定自在なハー
ドウェア資源をIFU60に割当てて、増加した複雑な
復号及び制御演算を容易にし、DOU62とAOU64
の間で利用できるもっと少ない再設定自在なハードウェ
ア資源を残す必要がある。つまり、ISAが複雑になる
とDOU62とAOU64から実現できる最大の計算能
力が減少する。一般に、外側ループISAは内側ループ
ISAより非常に多い命令を有するので、これの実装は
復号及び制御回路に関して顕著に複雑になる。例えば、
汎用AOU64ビット処理装置を定義する外側ループI
SAは専らデータ圧縮専用の内側ループISAに比べて
非常に多くの命令を有する。
【0150】図17(a)を参照すると、IFU60,
DOU62,AOU64の間で外側ループISAについ
て再設定自在なハードウェア資源の割当て例を示す図が
図示してある。外側ループISAについて再設定自在な
ハードウェア資源の割当ての例では、IFU60,DO
U62,AOU64には各々利用できる再設定自在なハ
ードウェア資源のほぼ1/3が割当てられている。DR
PU32を内側ループISAの実現のために再設定すべ
き場合には、内側ループISAでサポートされる命令数
とアドレスの種類が限られているので、IFU60とA
OU64の実装にはもっと少ない再設定自在なハードウ
ェア資源が必要である。
【0151】ここで、図17(b)も参照すると、IF
U60,DOU62,AOU64の間で内側ループIS
Aに再設定自在なハードウェア資源の割当てを行なう例
を示す略図が図示してある。図示した内側ループISA
のための再設定自在なハードウェア資源割当て例では、
IFU60は再設定自在なハードウェア資源の5〜10
%を用いて実現し、AOU64は再設定自在なハードウ
ェア資源の10〜25%を用いて実現している。つま
り、およそ70〜80%の再設定自在なハードウェア資
源がDOU62の実装に利用できる。これは、内側ルー
プISAに関連したDOU62の内部構造がもっと複雑
化することがあり、そのため外側ループISAに関連す
るDOU62の内部構造より有意に高い能力が提供され
ることを意味している。
【0152】別の実施の形態において、DOU62又は
AOU64の何れかをDRPU32が排除し得ることを
当業者は理解されよう。例えば、別の実施の形態におい
てDRPU32はAOU64を含まないことがある。D
OU62はデータとアドレスの両方に対する演算を行な
う必要がある。考察している特定のDRPUの実施の形
態とは無関係に、有限個の再設定自在なハードウェア資
源を割当ててDRPU32の素子を実現する必要があ
る。再設定自在なハードウェア資源は、利用可能な再設
定自在なハードウェア資源の全空間に対して、最適又は
ほぼ最適な性能が現在考察しているISAで実現される
ように割当てるのが望ましい。
【0153】IFU60,DOU62,AOU64の各
々の素子の詳細な構造が前述の実施の形態に制限されな
いことが当業者には理解されよう。任意のISAについ
て、対応する設定データセットを、IFU60,DOU
62,AOU64の内部の各々の素子の内部構造が利用
できる再設定自在なハードウェア資源に対して最大限の
計算能力となるように定義するのが望ましい。
【0154】図18を参照すると、Tマシン14の好適
な実施の形態のブロック図が図示してある。Tマシン1
4は第2の局部時刻ユニット300、共通インタフェー
ス及び制御ユニット302、1組の相互接続I/Oユニ
ット304を含む。第2の局部時刻ユニット300はT
マシンのマスター・タイミング入力を形成するタイミン
グ入力を有する。共通インタフェース及び制御ユニット
302は第2のタイミング信号線310経由で第2の局
部時刻ユニット300のタイミング出力に接続したタイ
ミング入力と、アドレス線44へ接続したアドレス出力
と、メモリI/O線46へ接続した第1の双方向データ
ポートと、外部制御線48へ接続した双方向制御ポート
と、メッセージ転送線312経由で存在する各々の相互
接続I/Oユニット304の双方向データポートへ接続
した第2の双方向データポートを有する。各々の相互接
続I/Oユニット304は314経由でGPIM16へ
接続した入力と、メッセージ出力線316経由でGPI
M16へ接続した出力とを有する。
【0155】Tマシン14内部の第2の局部時刻ユニッ
ト300はマスタ時刻ベースユニット22からのマスタ
タイミング信号を受信し、第2の局部タイミング信号を
生成する。第2の局部時刻ユニット300は第2の局部
タイミング信号を共通インタフェース及び制御ユニット
302へ供給することで、これが存在しているTマシン
14のタイミング基準を提供する。望ましくは、第2の
局部タイミング信号はマスタタイミング信号と位相同期
する。システム10内部で、各々のTマシンの第2の局
部時刻ユニット300は望ましくは同一周波数で動作す
る。別の実施の形態において、1つ又はそれ以上の第2
の局部時刻ユニット300が別の周波数で動作し得るこ
とは当業者には理解されよう。第2の局部時刻ユニット
300は望ましくはCLBによるフェーズロック検出回
路を含む通常のフェーズロック周波数変換回路を用いて
実現する。当業者には別の実施の形態において第2の局
部時刻ユニット300がクロック分配ツリーの一部とし
て実現し得ることが理解されよう。
【0156】共通インタフェース及び制御ユニット30
2はこれの対応するSマシン12と指定した相互接続I
/Oユニット304の間でメッセージ転送を指示する。
ここでメッセージは命令とおそらくはデータも含む。好
適な実施の形態において、指定した相互接続I/Oユニ
ット304は、システム10の内部又は外部にある何ら
かのTマシン14又はI/OTマシン18の内部に存在
し得る。本発明において各々の相互接続I/Oユニット
304は相互接続I/Oユニット304を独自に識別す
る相互接続アドレスを割当てるのが望ましい。任意のT
マシン内部の相互接続I/Oユニット304の相互接続
アドレスは対応するSマシンのアーキテクチャ記述メモ
リ101に記憶される。
【0157】共通インタフェース及び制御ユニット30
2はメモリI/O線46と外部制御線48各々を経由し
て対応するSマシン12からデータと命令を受信する。
望ましくは、各々の受信した命令は標的相互接続アドレ
スと、実行すべき演算の特定の種類を指定する命令コー
ドを含む。好適な実施の形態において、命令コードによ
って独自に識別される演算の種類としては、 1)データ読込演算、 2)データ書込演算、 3)割込信号転送、が含まれる。標的相互接続アドレス
はデータと命令を転送すべき標的相互接続I/Oユニッ
ト304を識別する。望ましくは、共通インタフェース
及び制御ユニット302は各々の命令と何らかの関連す
るデータを従来の方法で1組のパケット化したメッセー
ジとして転送し、各々のメッセージには標的相互接続ア
ドレスと命令コードを含む。
【0158】対応するSマシン12からデータと命令を
受信する他に、共通インタフェース及び制御ユニット3
02はメッセージ転送線312に接続された各々の相互
接続I/Oユニット304からメッセージを受信する。
好適な実施の形態において、共通インタフェース及び制
御ユニット302は関連メッセージのグループを単一の
命令とデータのシーケンスに変換する。命令がこれに対
応するSマシン12内部のDRPU32に向けられたも
のであれば、共通インタフェース及び制御ユニット30
2は外部制御線48経由で命令を発行する。命令がこれ
に対応するSマシン12内部のメモリ34に向けられた
ものであれば、共通インタフェース及び制御ユニット3
02は外部制御線48経由で適切なメモリ制御信号とア
ドレス線44経由でメモリアドレス信号とを発行する。
データはメモリI/O線46経由で転送される。好適な
実施の形態において、共通インタフェース及び制御ユニ
ット302はANSI/IEEE規格1596−199
2で定義された従来のSCIスイッチングユニットで実
行されるのと同様の演算を実装するためのCLBによる
回路を含む。
【0159】各々の相互接続I/Oユニット304は共
通インタフェース及び制御ユニット302からメッセー
ジを受信して、共通インタフェース及び制御ユニット3
02から受信した制御信号の指示に従い、メッセージを
GPIM16経由で他の相互接続I/Oユニット304
へ転送する。好適な実施の形態において、相互接続I/
Oユニット304はANSI/IEEE規格1596−
1992に定義されたSCIノードに基づいている。図
19を参照すると、相互接続I/Oユニット304の好
適な実施の形態のブロック図が図示してある。相互接続
I/Oユニット304はアドレス・デコーダ320、入
力FIFOバッファ322、バイパスFIFOバッファ
324、出力FIFOバッファ326、マルチプレクサ
328を含む。アドレス・デコーダ320は相互接続I
/Oユニットの入力を構成する入力と、入力FIFOバ
ッファ322に接続された第1の出力と、バイパスFI
FOバッファ324に接続された第2の出力とを有す
る。入力FIFOバッファ322はメッセージ転送線3
12へ接続されて共通インタフェース及び制御ユニット
302へメッセージを転送するための出力を有する。出
力FIFOバッファ326はメッセージ転送線312へ
接続されて共通インタフェース及び制御ユニット302
からメッセージを受信するための入力と、マルチプレク
サ328の第1の入力に接続された出力を有する。出力
FIFOバッファ326はマルチプレクサ328の第2
の入力に接続された出力を有する。最後に、マルチプレ
クサ328はメッセージ転送線312へ接続された制御
入力と、相互接続I/Oユニットの出力を構成する出力
とを有する。
【0160】相互接続I/Oユニット304はアドレス
・デコーダ320の入力でメッセージを受信する。アド
レス・デコーダ320は受信したメッセージで指定され
ている標的相互接続アドレスがこれの存在する相互接続
I/Oユニット304の相互接続アドレスと同一かを判
定する。その場合、アドレス・デコーダ320は入力F
IFOバッファ322へメッセージを転送する。それ以
外の場合、アドレス・デコーダ320はバイパスFIF
Oバッファ324へメッセージを転送する。好適な実施
の形態において、アドレス・デコーダ320はIOBと
CLBを用いて実装されたデコーダとデータ・セレクタ
を含む。
【0161】入力FIFOバッファ322は、これの入
力で受信したメッセージをメッセージ転送線312に転
送する従来のFIFOバッファである。バイパスFIF
Oバッファ324と出力FIFOバッファ326の双方
はこれらの入力で受信したメッセージをマルチプレクサ
328へ転送する従来のFIFOバッファである。マル
チプレクサ328はバイパスFIFOバッファ324か
ら受信したメッセージ又は出力FIFOバッファ326
から受信したメッセージの何れかを、制御入力で受信し
た制御信号に従ってGPIM16へ転送する従来のマル
チプレクサである。好適な実施の形態において、入力F
IFOバッファ322、バイパスFIFOバッファ32
4、出力FIFOバッファ326の各々は1組のCLB
を用いて実装する。マルチプレクサ328は望ましくは
1組のCLBとIOBを用いて実装する。
【0162】図20を参照すると、I/OTマシン18
の好適な実施の形態のブロック図が図示してある。I/
OTマシン18は第3の時刻ユニット360、共通カス
タムインタフェース及び制御ユニット362、相互接続
I/Oユニット304を含む。第3の時刻ユニット36
0はI/OTマシンのマスタタイミング入力を構成する
タイミング入力を有する。相互接続I/Oユニット30
4は314経由でGPIM16へ接続された入力と、メ
ッセージ出力線316経由でGPIM16へ接続された
出力を有する。共通カスタムインタフェース及び制御ユ
ニット362は望ましくは第3のタイミング信号線37
0経由で第3の時刻ユニット360のタイミング出力へ
接続されたタイミング入力、相互接続I/Oユニット3
04の双方向データポートへ接続された第1の双方向デ
ータポート、及びI/O装置20への1組の接続を有す
る。好適な実施の形態において、I/O装置20への接
続の組はI/O装置20の双方向データポートへ接続し
た第2の双方向データポートと、I/O装置20のアド
レス入力へ接続したアドレス出力と、I/O装置20の
双方向制御ポートへ接続した双方向制御ポートを含む。
I/O装置20への接続は共通カスタムインタフェース
及び制御ユニット362が接続されているI/O装置2
0の種類に依存することは当業者には容易に理解されよ
う。
【0163】第3の時刻ユニット360は、マスタ時刻
ユニット22からのマスタタイミング信号を受信して第
3の局部タイミング信号を生成する。第3の時刻ユニッ
ト360は共通カスタムインタフェース及び制御ユニッ
ト362へ第3の局部タイミング信号を供給するので、
これが存在するI/OTマシンにタイミング基準を提供
することになる。好適な実施の形態において、第3の局
部タイミング信号はマスタタイミング信号と位相同期し
ている。各々のI/OTマシンの第3の時刻ユニット3
60は望ましくは同一の周波数で動作する。別の実施の
形態において、1つ又はそれ以上の第3の時刻ユニット
360が別の周波数で動作することがある。第3の時刻
ユニット360は、望ましくはCLBによるフェーズロ
ック検出回路を含む従来のフェーズロック周波数変換回
路を用いて実装する。第1と第2の局部時刻ユニット3
0、300の場合と同様の方法で、第3の時刻ユニット
360は別の実施の形態においてクロック分散ツリーの
一部として実装することができる。
【0164】I/OTマシン18内部の相互接続I/O
ユニット304の構造と機能はTマシン14について前
述したのと同一が望ましい。I/OTマシン18内部の
相互接続I/Oユニット304は任意のTマシン14内
部の相互接続I/Oユニット304の各々についてと同
様の方法で独自の相互接続アドレスが割当てられる。
【0165】共通カスタムインタフェース及び制御ユニ
ット362はこれが接続しているI/O装置20と相互
接続I/Oユニット304の間でのメッセージ転送を指
示し、ここでメッセージは命令とおそらくはデータとを
含む。共通カスタムインタフェース及び制御ユニット3
62はこれに対応するI/O装置20からデータと命令
とを受信する。望ましくは、I/O装置20から受信し
た各々の命令は標的相互接続アドレスと、実行しようと
する演算の特定の種類を指定する命令コードとを含む。
好適な実施の形態において、命令コードで独自に識別さ
れる演算の種類は、 1)データ要求、 2)データ転送確認、 3)割込信号転送、を含む。標的相互接続アドレスはシ
ステム10内部にあってデータと命令を転送しようとす
る標的相互接続I/Oユニット304を識別する。望ま
しくは、共通カスタムインタフェース及び制御ユニット
362は従来の方法で1組のパケット化したメッセージ
として各々の命令と全ての関連データを転送し、ここで
各々のメッセージは標的相互接続アドレスと命令コード
とを含む。
【0166】対応するI/O装置20からデータと命令
を受信する以外に、共通カスタムインタフェース及び制
御ユニット362は関連する相互接続I/Oユニット3
04からメッセージを受信する。好適な実施の形態にお
いて、共通カスタムインタフェース及び制御ユニット3
62は対応するI/O装置20がサポートする通信プロ
トコルに従って関連メッセージのグループを単一の命令
とデータのシーケンスに変換する。好適な実施の形態に
おいて、共通カスタムインタフェース及び制御ユニット
362はANSI/IEEE規格1596−1992で
定義されている従来のSCIスイッチング・ユニットで
実行するのと同様の演算を実行するためにCLBによる
回路へ接続したCLBによるI/O装置の制御装置を含
む。
【0167】GPIM16は、相互接続I/Oユニット
304の間で2点間系列メッセージ転送を容易にする従
来の相互接続メッシュである。好適な実施の形態におい
て、GPIM16は配線によるk-ary n-cubeスタティ
ック相互接続ネットワークである。図21を参照する
と、汎用相互接続マトリックス16の好適な実施の形態
のブロック図が図示してある。図21において、GPI
M16はトロイダル相互接続メッシュ又は同等な、k-a
ry 2-cubeで、複数の第1の通信チャンネル380と複
数の第2の通信チャンネル382を含む。各々の第1の
通信チャンネル380は、各々の第2の通信チャンネル
382と同様に、複数のノード接続サイト384を含
む。システム10の各々の相互接続I/Oユニット30
4は望ましくはGPIM16に接続されて、メッセージ
入力線314とメッセージ出力線316が任意の通信チ
ャンネル380,382内で連続したノード接続サイト
384に接続するようにする。好適な実施の形態におい
て、各々のTマシン14は前述した方法で第1の通信チ
ャンネル380に接続した相互接続I/Oユニット30
4と、第2の通信チャンネル382に接続した相互接続
I/Oユニット304とを含む。
【0168】Tマシン14内の共通インタフェース及び
制御ユニット302は望ましくは第1の通信チャンネル
380に接続したこれの相互接続I/Oユニット304
と第2の通信チャンネル382に接続したこれの相互接
続I/Oユニット304との間での情報の転送を容易に
する。つまり、図21で380cと標記してある第1の
通信チャンネルに接続した相互接続I/Oユニット30
4と、図21で382cと標記してある第2の通信チャ
ンネルに接続した相互接続I/Oユニット304とを有
するTマシン14について、このTマシンの共通インタ
フェース及び制御ユニット302は第1と第2の通信チ
ャンネル380c、382cのこの組み合せの間での情
報の転送を容易にする。
【0169】GPIM16は相互接続I/Oユニット3
04の間で並列に複数メッセージの転送を容易にする。
図21に図示した2次元GPIM16では、各々のTマ
シン14は望ましくは第1の通信チャンネル380につ
いて単一の相互接続I/Oユニット304、また第2の
通信チャンネル382について単一の相互接続I/Oユ
ニット304を含む。GPIM16が2より大きな次数
を有するような実施の形態において、Tマシン14は望
ましくは2つ以上の相互接続I/Oユニット304を含
むことが当業者には容易に理解されよう。望ましくはG
PIM16はデータパスが16ビット幅のk-ary 2-cu
beとして実装する。
【0170】前述の説明において、本発明の各種素子は
再設定可能なハードウェア資源を用いて実装するのが望
ましい。再プログラム可能な論理装置のメーカーは再プ
ログラム可能な又は再設定可能なハードウェア資源を用
いる従来のデジタルハードウェアを実装するための公開
ガイドラインを典型的には提供している。例えば、19
94年Xilinxプログラマブル論理回路データブッ
ク(ジリンクス社、カリフォルニア州サンノゼ)は以下
のようなアプリケーションノートを含む:アプリケーシ
ョンノートXAPP005.002「レジスタによるF
IFO」、アプリケーションノートXAPP044.0
0「高性能RAMベースFIFO」、アプリケーション
ノートXAPP013.001「XC400で専用キャ
リー論理回路を使用する」、アプリケーションノートX
APP018.000「XC4000加算器とカウンタ
の性能予測」、アプリケーションノートXAPP02
8.001「フェーズ・ロックド・ループ用周波数/位
相コンパレータ」、アプリケーションノートXAPP0
36.001「4ポートDRAMコントローラ」、アプ
リケーションノートXAPP039.001「I/OT
マシン18ビットパイプライン化アキュムレータ」。さ
らなるジリンクス社による出版物は「XCELL、ジリ
ンクス・プログラマブル論理回路ユーザ向け季刊ジャー
ナル」の特徴を含む。例えば、高速整数乗算器の実施を
詳細に述べた記事が1994年第3四半期第14号に掲
載されている。
【0171】本明細書で説明したシステム10は複数I
SAを動的に実現するためのスケーラブル・並列コンピ
ュータのアーキテクチャである。個別のSマシン12は
どれも他のSマシン12又はホスト計算機等の外部ハー
ドウェア資源とは無関係にそれだけでコンピュータ・プ
ログラム全体を実行可能である。どのSマシン12にお
いても複数ISAはプログラム実行中に再設定割込みに
応じて、及び/又はプログラムに埋込まれた再設定指示
に応じて、時間的に順次実装される。システム10は望
ましくは複数Sマシン12を含むので、複数プログラム
が同時に実行されるのが望ましく、ここで、各々のプロ
グラムは独立したもので有り得る。つまり、システム1
0は複数Sマシン12を含むのが望ましいため、システ
ムの初期化又は再設定中を除き、あらゆる時点で複数I
SAが同時に(即ち、並列に)実装される。これは、任
意の時刻に、複数の組のプログラム命令が同時に実行さ
れ、各々のプログラム命令の組は対応するISAに従っ
て実行される。このような各々のISAは独自のもので
有り得る。
【0172】Sマシン12はTマシン14、GPIM1
6、及び各々のI/OTマシン18を経由して相互にま
たI/O装置20と通信する。各々のSマシン12は独
立して動作可能なコンピュータそのものであるが、全て
のSマシン12は他のSマシン12又はシステム10全
体に対するマスタSマシン12として機能し、他のSマ
シン12、1つ又はそれ以上のGPIM16、1つ又は
それ以上のI/OTマシン18、及び1つ又はそれ以上
のI/O装置20にデータ及び/又は命令を送信するこ
とができる。
【0173】本発明のシステム10は空間的時間的に1
つ又はそれ以上のデータ並列の下位問題に分割すること
のできるような問題で特に有用である。例えば、画像処
理、医学データ処理、色較正の照合、データベース計
算、文書処理、関連検索エンジン、ネットワーク・サー
バ等。大きなオペランドのアレイを有する計算問題で
は、アルゴリズムを適用して並列計算技術により効率的
な計算の高速化を提供しようとする際にデータ並列が存
在する。データ並列問題は既知の複雑さ、即ちO(n^
k)を含んでいる。kは問題に依存する値である。例え
ば、画像処理についてk=2で、医学データ処理につい
てk=3である。本発明において、個別のSマシン12
はプログラム命令グループの水準でデータ並列を発見す
るように用いるのが望ましい。システム10は複数のS
マシン12を含むので、システム10は望ましくはプロ
グラム全体の組の水準でデータ並列を発見するように用
いる。
【0174】本発明のシステム10は、各々のSマシン
12において命令処理ハードウェアを完全に再設定して
このようなハードウェアの計算能力をあらゆる任意の時
点での計算要求に対して最適化する能力のため非常に大
きな計算能力を提供する。各々のSマシン12は他のS
マシン12とは独立して再設定することができる。シス
テム10は有利にも各々の設定データセット、即ち、各
々のISAを本明細書で説明した再設定可能なハードウ
ェアとソフトウェアの間のプログラムされた境界、又は
インタフェースとして取扱う。本発明のアーキテクチャ
はさらに再設定可能なハードウェアの高次構造を、実際
のシステムの指向に選択的に適合するようにして、例え
ば、命令処理に割込みが影響する方式、リアルタイム処
理及び制御能力を加速する決定的遅延応答の必要性、障
害取扱いに選択的に対応する必要性、を含む。
【0175】他のコンピュータ・アーキテクチャとは対
照的に、本発明はあらゆる時点でのシリコン資源の最大
限の利用を教示するものである。本発明はあらゆる時点
で所望のあらゆる大きさに、数千のSマシン12を含む
超並列までも、増大することのできる並列計算機システ
ムを提供する。このようなアーキテクチャの拡張性が可
能なのは、Sマシンによる命令処理が意図的にTマシン
によるデータ通信と分離されていることによる。この命
令処理/データ通信の分離パラダイムはデータ並列計算
に非常に好適である。Sマシンハードウェアの内部構造
は命令の時間的な流れに対して最適化するのが望まし
く、一方でTマシンハードウェアの内部構造は効率的デ
ータ通信に最適化するのが望ましい。Sマシン12の組
とTマシン14の組は各々がデータ並列計算作業の時空
間分割において分離可能、設定可能な要素である。本発
明では、将来再設定可能なハードウェアを検索してさら
に大きな計算能力を有するシステムを構築し、同時に全
体として本明細書に説明した構造を維持することができ
る。言い換えれば、本発明のシステム10は技術的にス
ケーラブルである。事実上全ての現在再設定可能な論理
装置はメモリを用いた相補型金属酸化物半導体(CMO
S)技術である。装置の容量の増加は半導体メモリ技術
傾向に追従する。将来のシステムにおいて、Sマシン1
2を較正するために使用する再設定可能な論理装置は本
明細書で説明したような内側ループと外側ループISA
のパラメータに従って内部ハードウェア資源の分割を有
する。さらに大きな再設定可能な論理装置は単一の装置
内でさらに多くのデータ並列計算作業を実行する能力を
提供するだけである。図13を参照して前述したDOU
63の第2の実施の形態で、例えば、大きな乗算/積算
ユニット194は大きな画像カーネルの寸法に対応す
る。本発明が提供する技術的な拡張性がCMOSによる
装置に制限されるものではなく、また、FPGAによる
実施に制限されるものでもないことが当業者には理解さ
れよう。つまり、本発明は再設定能力又は再プログラム
能力を提供するために使用する特定の技術とは関係なく
技術的拡張性を提供する。
【0176】図22を参照すると、スケーラブル、並
列、動的に再設定可能な計算環境の好適な方法の流れ図
が図示してある。望ましくは図22の方法はシステム1
0の各々のSマシン12内部で実行される。好適な方法
は図22のステップ1000で始まり、再設定論理回路
104がISAに対応する設定データセットを取出す。
次にステップ1002で、再設定論理回路104はステ
ップ1002で取出した設定データセットに従ってIF
U60、DOU62、AOU64内部の各々の素子を設
定し、これによって現在検討中のISAの実装のための
DRPUハードウェア較正を作成する。ステップ100
2に続けて、割込論理回路106がアーキテクチャ記述
メモリ101に記憶されている割込応答信号を取出し、
ステップ1004で割込みに現在のDRPU設定がどの
ように応答するかを定義する遷移制御信号の対応する組
を生成する。ISS100は続けてステップ1006で
プログラム状態情報を初期化し、この後ISS100は
ステップ1008で命令実行サイクルを初期化する。
【0177】次に、ステップ1010で、ISS100
又は割込論理回路106は再設定が必要か判定する。I
SS100はプログラム実行中に再設定指示が選択され
た場合に再設定が必要なことを判定する。割込論理回路
106は再設定割込みに応答して再設定が必要なことを
判定する。再設定が必要な場合、好適な方法はステップ
1012に進み、再設定ハンドラはプログラム状態情報
を保存する。望ましくは、プログラム状態情報は現在の
DRPU設定に対応する設定データセットの基準を含
む。ステップ1012NORと、好適な方法はステップ
1000に戻り再設定指示又は再設定割込みによって参
照される次の設定データセットを取出す。
【0178】ステップ1010で再設定が必要とされな
い場合、割込論理回路106はステップ1014で非再
設定割込みがサービスを要求するか判定する。その場
合、ISS100は次にステップ1020で命令実行サ
イクル内で現在のISS状態から割込サービス状態への
遷移が遷移制御信号に基づいて許容されるかを判定す
る。割込サービス状態への状態遷移が許容されない場
合、ISS100は命令実行サイクル内で次の状態に進
み、ステップ1020へ復帰する。遷移制御信号が命令
実行サイクル内で現在のISS状態から割込サービス状
態への状態遷移を許容する場合、ISS100は次にス
テップ1024で割込サービスへ進む。ステップ102
4で、ISS100はプログラム状態情報を保存し割込
みをサービスするためプログラム命令を実行する。ステ
ップ1024に続いて、好適な方法はステップ1008
に戻り、現在の命令実行サイクルが完了していなければ
これを再開し、又は次の命令実行サイクルを開始する。
【0179】非再設定割込みがステップ1014でサー
ビスを必要としない場合、好適な方法はステップ101
6に進み現在のプログラムの実行が完了するか判定す
る。現在のプログラムの実行が継続する場合、好適な方
法はステップ1008に戻り、別の命令実行サイクルを
開始する。それ以外の場合、好適な方法は終了する。
【0180】本発明の教示は再プログラム可能又は再設
定可能な計算環境のためのシステム及び方法とは明らか
に異る。特に、本発明はダウンローダブル・マイクロコ
ード・アーキテクチャと等価ではない。これは、一般
に、このようなアーキテクチャが非再設定可能な制御手
段と非再設定可能なハードウェアに依存しているためで
ある。本発明はまた、1組の再設定可能なハードウェア
資源が非再設定可能なホストプロセッサ又はホストシス
テムに接続されるような、Attached Reconfigurable
Processor(ARP)システムとも明らかに異なる。A
RP装置はある種のプログラム命令を実行するためにホ
ストに依存する。従って、利用可能なシリコンの組み合
せはプログラム実行の時間枠で最大限に利用されない
が、これは、ホスト又はARP装置がデータに対して動
作する時にARP装置のシリコン資源又はホストが各々
アイドル状態又は非効率的に使用されるためである。対
照的に、各々のSマシン12はプログラム全体が容易に
実行できるような独立した計算機である。複数Sマシン
12は望ましくはプログラムを同時に実行する。従っ
て、本発明は、個別のSマシン12での単一のプログラ
ム実行と、システム10全体での複数プログラム実行の
両方について、全ての時点でシリコン資源の最大限の利
用を教示するものである。
【0181】ARP装置は特定時刻に特定アルゴリズム
に対する計算アクセラレータを提供し、特定のアルゴリ
ズムに対して最適な相互接続が行なわれている1組のゲ
ートとして実現される。汎用演算、例えば、管理命令実
行等の再設定可能なハードウェア資源の使用はARPシ
ステムでは回避される。さらに、ARPシステムは任意
の1組の相互接続ゲートを容易に再利用できる資源とし
て扱うことがない。逆に、本発明は、あらゆる特定の時
刻に計算要求に最も適合した命令実行モデルに従って、
命令実行の効率的な管理を行なうように設定された動的
に再設定可能な処理手段を教示する。各々のSマシン1
2は複数の容易に再利用できる資源、例えばISS10
0、割込論理回路106、記憶・配列論理152等を含
む。本発明は相互接続されたゲートの水準ではなくCL
B、IOBのグループの水準で再設定可能な論理資源及
び再設定可能な相互接続の使用を教示する。本発明は単
一のアルゴリズムで有用な単一の有用なゲート接続方式
を教示するのではなく、計算問題のクラス全体に対して
演算を実行するのに有用な再設定可能な高次論理設計製
造の使用を教示するものである。
【0182】一般に、ARPシステムは特定のアルゴリ
ズムを1組の相互接続されたゲートに変換する方向に向
かっている。ある種のARPシステムは高次命令を最適
なゲートレベルのハードウェア構成にコンパイルしよう
と試み、これは一般にNPハードの問題である。対照的
に、本発明は、高次プログラム命令を非常に簡単な方法
で可変ISAに従ってアセンブリ言語命令へとコンパイ
ルする動的に再設定可能な計算環境のためのコンパイラ
の使用を教示する。
【0183】ARP装置は一般にそれ自身のホストプロ
グラムをデータとして取扱う又はそれ自身を状況に適合
させることができない。これと対照的にシステム10の
各々のSマシンはそれ自体のプログラムをデータとして
取扱うことができるので、容易に状況に適合することが
できる。システム10はそれ自身のプログラムの実行に
より自分自身を簡単にシミュレートできる。本発明はさ
らにそれ自身のコンパイラをコンパイルする能力も有す
る。
【0184】本発明において、単一のプログラムは第1
のISAに属する第1のグループの命令と、第2のIS
Aに属する第2のグループの命令と、さらに別のISA
に属する第3のグループの命令、等を含む。本明細書で
教示したアーキテクチャは、命令が属するISAを実現
するように実行時に設定されるハードウェアを用いて各
々のグループの命令を実行する。同様の教示を提供する
従来技術のシステムは存在しない。
【0185】本発明は、さらに割込遅延、割込精度、プ
ログラム可能な状態遷移イネーブル化が現在検討してい
るISAに併せて変化し得るような再設定可能な割込み
方式も教示する。他の計算機システムでは同様の教示が
みられない。本発明は、さらに再設定可能なデータパス
ビット幅、アドレスビット幅と、再設定可能な制御線幅
を有するような、従来技術の計算機システムとは対照的
な計算機システムを教示する。
【0186】本発明は、幾つかの好適な実施の形態を参
照して説明したが、各種の変更を提供し得ることが当業
者には理解されよう。好適な実施の形態に対する変化及
び変更は特許請求の範囲によってのみ制限されるべき本
発明により提供されるものである。
【図面の簡単な説明】
【図1】本発明により製作したスケーラブル、並列、動
的に再設定自在な計算環境のためのシステムの好適な実
施の形態のブロック図である。
【図2】本発明のSマシンの好適な実施の形態のブロッ
ク図である。
【図3】再設定指示を含むプログラムリストを示す説明
図である。
【図4】プログラム命令のシーケンスのコンパイル中に
実行する従来技術のコンパイル演算の流れ図である。
【図5】動的に再設定自在な計算環境のためのコンパイ
ラで実行する好適なコンパイル演算の流れ図である。
【図6】動的に再設定自在な計算環境のためのコンパイ
ラで実行する好適なコンパイル演算の流れ図である。
【図7】本発明の動的に再設定自在処理ユニットの好適
な実施の形態のブロック図である。
【図8】本発明の命令フェッチユニットの好適な実施の
形態のブロック図である。
【図9】本発明の命令状態シーケンサで支持される好適
な状態セットを示す状態図である。
【図10】本発明の割込論理回路で支持される好適な状
態セットを示す状態図である。
【図11】本発明のデータ演算ユニットの好適な実施の
形態のブロック図である。
【図12】汎用外側ループ命令セットアーキテクチャの
実装のために設定したデータ演算ユニットの第1の実施
の形態のブロック図である。
【図13】内側ループ命令セットアーキテクチャの実装
のために設定したデータ演算ユニットの第2の実施の形
態のブロック図である。
【図14】本発明のアドレス演算ユニットの好適な実施
の形態のブロック図である。
【図15】汎用外側ループ命令セットアーキテクチャの
実装のために設定したアドレス演算ユニットの第1の実
施の形態のブロック図である。
【図16】内側ループ命令セットアーキテクチャの実装
のために設定したアドレス演算ユニットの第2の実施の
形態のブロック図である。
【図17】(a)は外側ループ命令セットアーキテクチ
ャのための命令フェッチユニット、データ演算ユニッ
ト、アドレス演算ユニットの間の再設定可能なハードウ
ェア資源の割当てを示す略図、(b)は内側ループ命令
セットアーキテクチャのための命令フェッチユニット、
データ演算ユニット、アドレス演算ユニットの間の再設
定可能なハードウェア資源の割当てを示す略図である。
【図18】本発明のTマシンの好適な実施の形態のブロ
ック図である。
【図19】本発明の相互接続I/Oユニットのブロック
図である。
【図20】本発明のI/OTマシンの好適な実施の形態
のブロック図である。
【図21】本発明の汎用相互接続マトリックスの好適な
実施の形態のブロック図である。
【図22】本発明によるスケーラブル、並列、動的に再
設定自在な計算環境の好適な方法の流れ図である。
【符号の説明】
10 計算環境のためのシステム 16 相互接続手段 32 動的に再設定自在な処理ユニット 60 命令フェッチユニット 100 命令状態シーケンサ 101 アーキクチャ記述メモリ 104 割込状態マシン

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 データ処理のためのプログラム命令を実
    行するための動的に再設定自在な処理ユニットであっ
    て、 この動的に再設定自在な処理ユニットは、入力と、出力
    と、第1の命令セットからの命令を実行する第1のハー
    ドウェアアーキテクチャと第2の命令セットの命令を実
    行する第2のハードウェアアーキテクチャの間でプログ
    ラム命令のシーケンス実行中に選択的に変更することの
    できる変更可能な内部ハードウェア構造とを有し、 前記動的に再設定自在な処理ユニットは、前記第1のハ
    ードウェアアーキテクチャとして設定された場合に再設
    定命令に応じて前記動的に再設定自在な処理ユニットの
    前記内部ハードウェア構造を変更して前記第2のハード
    ウェアアーキテクチャに設定されることを特徴とする動
    的に再設定自在な処理ユニット。
  2. 【請求項2】 動的に再設定自在な計算環境のためのシ
    ステムであって、 データを処理するプログラム命令を実行し、入力と、出
    力と、プログラム命令のシーケンスの実行中に選択的に
    変更することのできる変更可能な内部ハードウェア構造
    とを有する第1の再設定自在な処理ユニットと、 入力と、出力と、第1のデータポートと、第2のデータ
    ポートとを有し、前記入力は前記第1の再設定自在な処
    理ユニットの出力に接続され、前記出力は前記第1の再
    設定自在な処理ユニットの入力に接続されて、前記第1
    の再設定自在な処理ユニットとの間でデータを転送する
    ための第1の通信装置と、 を含むことを特徴とする計算環境のためのシステム。
  3. 【請求項3】 第1のプロセッサを第2のプロセッサへ
    接続するためのシステムであって、 入力と、出力と、第1のデータポートと、第2のデータ
    ポートとを有し、前記入力と出力は前記第1のプロセッ
    サへ接続されて、前記第1のプロセッサとの間でデータ
    を転送するための第1の通信装置と、 入力と、出力と、第1のデータポートと、第2のデータ
    ポートとを有し、前記入力と出力は前記第2のプロセッ
    サへ接続されて、前記第2のプロセッサとの間でデータ
    を転送するための第2の通信装置と、 第1及び第2の通信チャンネルを有し、前記第1の通信
    装置の前記第1のデータポートと前記第2の通信装置の
    前記第1のデータポートが前記第1の通信チャンネルへ
    接続され、前記第1の通信装置の前記第2のデータポー
    トと前記第2の通信装置の前記第2のデータポートとが
    前記第2の通信チャンネルへ接続されて、2点間並列デ
    ータ転送を提供するための相互接続手段と、 を含むことを特徴とするプロセッサ接続用のシステム。
  4. 【請求項4】 複数の高次ステートメントから再設定自
    在な計算機で実行可能な命令を生成する方法であって、 高次ステートメントを前記再設定自在な計算機で実行可
    能な命令に変換するための複数の規則の組を提供する段
    階と、 高次ステートメントを前記再設定自在な計算機で実行可
    能な命令に変換するために使用すべき現在の規則の組と
    して前記複数の規則の組の1つを選択する段階と、 高次ステートメントを選択する段階と、 前記選択した高次ステートメントが再設定指示か判定す
    る段階と、 高次ステートメントが再設定指示の場合に前記再設定指
    示で指定された1組の規則へと高次ステートメントを変
    換するために使用する現在の規則の組を変更する段階
    と、 前記現在の規則の組を用いて再設定自在な計算機で実行
    可能な少なくとも1つの命令に前記選択した高次ステー
    トメントを変換する段階と、 を含むことを特徴とする計算機で実行可能な命令を生成
    する方法。
  5. 【請求項5】 再設定自在な処理ユニットを有する動的
    に再設定自在な計算機システムにおいて、動的に再設定
    自在な計算環境のための方法は第1の命令セットアーキ
    テクチャに対応する第1の設定データセットに従って演
    算のために前記再設定自在な処理ユニットを設定し、前
    記再設定自在な処理ユニットの設定により前記第1の命
    令セットアーキテクチャを実装するハードウェア構成と
    する段階と、 前記再設定自在な処理ユニットの命令実行サイクルに割
    込む段階と、 第2の命令セットアーキテクチャに対応する第2の設定
    データセットに従って前記再設定自在な処理ユニットを
    再設定して前記再設定自在な処理ユニットの前記ハード
    ウェア構成が前記第2の命令セットアーキテクチャを実
    装するようにする段階と、 を含むことを特徴とする計算環境のための方法。
  6. 【請求項6】 第1の命令セットアーキテクチャに対応
    する第1の設定データセットに従って再設定自在な処理
    ユニットを設定して、前記再設定自在な処理ユニットの
    設定によって前記第1の命令セットアーキテクチャを実
    装するハードウェア構成とするための手段と、 プログラム命令のシーケンスの実行中に前記再設定自在
    な処理ユニットを再設定すべきか判定するための手段
    と、 第2の設定データに従って前記再設定自在な処理ユニッ
    トを再設定して、前記再設定自在な処理ユニットが第2
    の命令セットアーキテクチャを実装する新規のハードウ
    ェア構成を有するようにするための手段と、 を含む動的に再設定自在な計算機。
  7. 【請求項7】 再プログラム可能な論理装置内部の動的
    に再設定自在な計算機であって、 出力を有し、前記再設定自在な計算機のアーキテクチャ
    を特徴付けるアーキテクチャ記述信号を記憶し、前記ア
    ーキテクチャ記述信号は割込みに前記動的に再設定自在
    な計算機が応答する方法を指定する割込応答信号を含む
    アーキテクチャ記述メモリと、 入力を有し前記再設定自在な計算機による命令の実行を
    制御するための命令状態シーケンサと、 第1の入力と、第2の入力と、出力とを有し、前記入力
    は前記アーキテクチャ記述メモリの前記出力に接続さ
    れ、前記出力は前記命令状態シーケンサの入力に接続さ
    れて、前記命令実行サイクル中に割込サービス状態がい
    つ許容されるかを指定する遷移制御信号を生成するため
    の割込状態マシンと、 を含むことを特徴とする動的に再設定自在な計算機。
  8. 【請求項8】 命令フェッチ状態と、命令復号状態と、
    命令実行状態と、書き戻し状態とを有する命令実行サイ
    クルを提供する動的に再設定自在な計算機でデータを処
    理するための方法であって、 割込可能な状態を指定する第1の命令セットアーキテク
    チャに従って演算のために前記計算機を設定する段階
    と、 割込信号を受信する段階と、 前記動的に再設定自在な計算機における演算状態を決定
    する段階と、 前記動的に再設定自在な計算機の前記演算状態が割込可
    能かを判定する段階と、 前記動的に再設定自在な計算機が割込可能な状態にある
    と判定された場合に前記割込信号にサービスを提供する
    段階と、 を含むことを特徴とする計算機でデータを処理するため
    の方法。
JP09569096A 1995-04-17 1996-04-17 コンピュータシステム Expired - Fee Related JP3785218B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/423,560 US5794062A (en) 1995-04-17 1995-04-17 System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US08/423,560 1995-04-17

Publications (2)

Publication Number Publication Date
JPH08286908A true JPH08286908A (ja) 1996-11-01
JP3785218B2 JP3785218B2 (ja) 2006-06-14

Family

ID=23679324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09569096A Expired - Fee Related JP3785218B2 (ja) 1995-04-17 1996-04-17 コンピュータシステム

Country Status (5)

Country Link
US (4) US5794062A (ja)
JP (1) JP3785218B2 (ja)
KR (1) KR100283812B1 (ja)
DE (1) DE19614991C2 (ja)
TW (1) TW394884B (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242613A (ja) * 1999-02-23 2000-09-08 Ricoh Co Ltd 動的再構成計算のためのメタアドレスアーキテクチャ及びアドレス指定方法
JP2001022593A (ja) * 1999-06-17 2001-01-26 Motorola Inc 割り込み可能なマルチサイクル命令を処理する方法および装置
JP2002537599A (ja) * 1999-02-15 2002-11-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 構成可能な機能ユニットを備えるデータプロセッサ及びそのようなデータプロセッサを使用する方法
JP2004102988A (ja) * 1999-08-30 2004-04-02 Ip Flex Kk データ処理装置
JP2006351047A (ja) * 2006-10-02 2006-12-28 Nec Corp データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム
JP2008052750A (ja) * 2005-04-12 2008-03-06 Matsushita Electric Ind Co Ltd プロセッサ
JP2008077625A (ja) * 2006-09-18 2008-04-03 Samsung Electronics Co Ltd ユーザ定義の拡張演算を処理する演算システムおよび方法
US7493472B2 (en) 1995-04-17 2009-02-17 Ricoh Company Ltd. Meta-address architecture for parallel, dynamically reconfigurable computing
US7616628B2 (en) 2001-08-20 2009-11-10 Ricoh Company, Ltd. Switched processor datapath
JP2016511853A (ja) * 2012-12-20 2016-04-21 インテル・コーポレーション スケーラブル計算ファブリック
US11972132B2 (en) 2018-04-03 2024-04-30 Xilinx, Inc. Data processing engine arrangement in a device

Families Citing this family (239)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6077315A (en) * 1995-04-17 2000-06-20 Ricoh Company Ltd. Compiling system and method for partially reconfigurable computing
US6021186A (en) * 1995-04-17 2000-02-01 Ricoh Company Ltd. Automatic capture and processing of facsimile transmissions
US5933642A (en) * 1995-04-17 1999-08-03 Ricoh Corporation Compiling system and method for reconfigurable computing
US6140838A (en) * 1995-04-21 2000-10-31 Johnson; Mark B. High density and high speed magneto-electronic logic family
US6741494B2 (en) * 1995-04-21 2004-05-25 Mark B. Johnson Magnetoelectronic memory element with inductively coupled write wires
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
JP3623840B2 (ja) 1996-01-31 2005-02-23 株式会社ルネサステクノロジ データ処理装置及びマイクロプロセッサ
US5841295A (en) * 1996-02-09 1998-11-24 Hewlett-Packard Company Hybrid programmable logic device
US6023742A (en) * 1996-07-18 2000-02-08 University Of Washington Reconfigurable computing architecture for providing pipelined data paths
DE19634031A1 (de) * 1996-08-23 1998-02-26 Siemens Ag Prozessor mit Pipelining-Aufbau
DE19651075A1 (de) * 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
DE19654846A1 (de) 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
EP1329816B1 (de) 1996-12-27 2011-06-22 Richter, Thomas Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US5966534A (en) * 1997-06-27 1999-10-12 Cooke; Laurence H. Method for compiling high level programming languages into an integrated processor with reconfigurable logic
US6163836A (en) * 1997-08-01 2000-12-19 Micron Technology, Inc. Processor with programmable addressing modes
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US6438679B1 (en) * 1997-11-03 2002-08-20 Brecis Communications Multiple ISA support by a processor using primitive operations
EA002886B1 (ru) 1997-11-13 2002-10-31 Хайперспейс Коммьюникейшнз, Инк. Система пересылки файлов
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6636931B2 (en) * 1998-01-06 2003-10-21 Pragmatic Communications Systems, Inc. System and method for switching signals over twisted-pair wires
US6636932B1 (en) * 1998-05-27 2003-10-21 Micron Technology, Inc. Crossbar switch and control for data networks switching
US6205537B1 (en) * 1998-07-16 2001-03-20 University Of Rochester Mechanism for dynamically adapting the complexity of a microprocessor
US6647511B1 (en) * 1998-09-17 2003-11-11 Texas Instruments Incorporated Reconfigurable datapath for processor debug functions
DE19843663A1 (de) * 1998-09-23 2000-03-30 Siemens Ag Konfigurierbarer Hardware-Block
EP0990985A3 (de) 1998-09-30 2005-12-28 Infineon Technologies AG Verfahren zum Betrieb eines Netzcomputers
EP1116107B1 (de) * 1998-09-30 2003-03-26 Infineon Technologies AG Verfahren zur ausführung einzelner algorithmen mittels einer rekonfigurierbaren schaltung und vorrichtung zur durchführung eines solchen verfahrens
US6378067B1 (en) * 1998-10-12 2002-04-23 Idea Corporation Exception reporting architecture for SIMD-FP instructions
US6862563B1 (en) 1998-10-14 2005-03-01 Arc International Method and apparatus for managing the configuration and functionality of a semiconductor design
US6182183B1 (en) * 1998-11-13 2001-01-30 Sonics, Inc. Communications system and method with multilevel connection identification
US6539438B1 (en) 1999-01-15 2003-03-25 Quickflex Inc. Reconfigurable computing system and method and apparatus employing same
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6341371B1 (en) * 1999-02-23 2002-01-22 International Business Machines Corporation System and method for optimizing program execution in a computer system
US6560754B1 (en) * 1999-05-13 2003-05-06 Arc International Plc Method and apparatus for jump control in a pipelined processor
US8230411B1 (en) 1999-06-10 2012-07-24 Martin Vorbach Method for interleaving a program over a plurality of cells
US6470478B1 (en) * 1999-06-29 2002-10-22 International Business Machines Corporation Method and system for counting events within a simulation model
US6467012B1 (en) 1999-07-08 2002-10-15 International Business Machines Corporation Method and apparatus using a distributed system structure to support bus-based cache-coherence protocols for symmetric multiprocessors
US6779036B1 (en) 1999-07-08 2004-08-17 International Business Machines Corporation Method and apparatus for achieving correct order among bus memory transactions in a physically distributed SMP system
US6442597B1 (en) 1999-07-08 2002-08-27 International Business Machines Corporation Providing global coherence in SMP systems using response combination block coupled to address switch connecting node controllers to memory
EP1069513A1 (de) * 1999-07-15 2001-01-17 Infineon Technologies AG Programmgesteuerte Einheit
US6496880B1 (en) * 1999-08-26 2002-12-17 Agere Systems Inc. Shared I/O ports for multi-core designs
US6591348B1 (en) 1999-09-09 2003-07-08 International Business Machines Corporation Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system
US6587930B1 (en) 1999-09-23 2003-07-01 International Business Machines Corporation Method and system for implementing remstat protocol under inclusion and non-inclusion of L1 data in L2 cache to prevent read-read deadlock
US6725307B1 (en) * 1999-09-23 2004-04-20 International Business Machines Corporation Method and system for controlling data transfers with physical separation of data functionality from address and control functionality in a distributed multi-bus multiprocessor system
US6662302B1 (en) * 1999-09-29 2003-12-09 Conexant Systems, Inc. Method and apparatus of selecting one of a plurality of predetermined configurations using only necessary bus widths based on power consumption analysis for programmable logic device
US6590419B1 (en) * 1999-10-12 2003-07-08 Altera Toronto Co. Heterogeneous interconnection architecture for programmable logic devices
US6457085B1 (en) 1999-11-04 2002-09-24 International Business Machines Corporation Method and system for data bus latency reduction using transfer size prediction for split bus designs
US6542949B1 (en) 1999-11-08 2003-04-01 International Business Machines Corporation Method and apparatus for increased performance of a parked data bus in the non-parked direction
US6523076B1 (en) 1999-11-08 2003-02-18 International Business Machines Corporation Method and apparatus for synchronizing multiple bus arbiters on separate chips to give simultaneous grants for the purpose of breaking livelocks
US6529990B1 (en) 1999-11-08 2003-03-04 International Business Machines Corporation Method and apparatus to eliminate failed snoops of transactions caused by bus timing conflicts in a distributed symmetric multiprocessor system
US7529799B2 (en) 1999-11-08 2009-05-05 International Business Machines Corporation Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
US6516379B1 (en) 1999-11-08 2003-02-04 International Business Machines Corporation Method and apparatus for transaction pacing to reduce destructive interference between successive transactions in a distributed symmetric multiprocessor system
US6606676B1 (en) 1999-11-08 2003-08-12 International Business Machines Corporation Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system
US6684279B1 (en) 1999-11-08 2004-01-27 International Business Machines Corporation Method, apparatus, and computer program product for controlling data transfer
US6535941B1 (en) 1999-11-08 2003-03-18 International Business Machines Corporation Method and apparatus for avoiding data bus grant starvation in a non-fair, prioritized arbiter for a split bus system with independent address and data bus grants
US7075941B2 (en) 2000-03-01 2006-07-11 Real Communications, Inc. Scaleable architecture for multiple-port, system-on-chip ADSL communications systems
WO2001069411A2 (en) 2000-03-10 2001-09-20 Arc International Plc Memory interface and method of interfacing between functional entities
RU2158319C1 (ru) * 2000-04-25 2000-10-27 Институт металлургии и материаловедения им. А.А. Байкова РАН Высокопрочная коррозионно- и износостойкая аустенитная сталь
EP1342158B1 (de) 2000-06-13 2010-08-04 Richter, Thomas Pipeline ct-protokolle und -kommunikation
US6507942B1 (en) * 2000-07-11 2003-01-14 Xilinx , Inc. Methods and circuits for testing a circuit fabrication process for device uniformity
US7343594B1 (en) * 2000-08-07 2008-03-11 Altera Corporation Software-to-hardware compiler with symbol set inference analysis
US7325221B1 (en) * 2000-08-08 2008-01-29 Sonics, Incorporated Logic system with configurable interface
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US6978231B2 (en) 2000-12-05 2005-12-20 Derek Edward Williams Embedded hardware description language instrumentation
US7039574B1 (en) * 2000-12-29 2006-05-02 International Business Machines Corporation Naming and managing simulation model events
US7092864B2 (en) * 2000-12-29 2006-08-15 International Business Machines Corporation Signal override for simulation models
US6941257B2 (en) * 2000-12-30 2005-09-06 International Business Machines Corporation Hierarchical processing of simulation model events
US20020128809A1 (en) * 2000-12-30 2002-09-12 International Business Machines Corporation Randomized simulation model instrumentation
US6920418B2 (en) 2000-12-30 2005-07-19 International Business Machines Corporation Detecting events within simulation models
US7213231B1 (en) * 2001-01-11 2007-05-01 Cisco Technology, Inc. Cross-spectrum application model for dynamic computing environments in software lifecycle
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
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
WO2005045692A2 (en) 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US7165094B2 (en) * 2001-03-09 2007-01-16 Sonics, Inc. Communications system and method with non-blocking shared interface
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7325123B2 (en) 2001-03-22 2008-01-29 Qst Holdings, Llc Hierarchical interconnect for configuring separate interconnects for each group of fixed and diverse computational elements
US20040133745A1 (en) 2002-10-28 2004-07-08 Quicksilver Technology, Inc. Adaptable datapath for a digital processing system
US7962716B2 (en) 2001-03-22 2011-06-14 Qst Holdings, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7752419B1 (en) 2001-03-22 2010-07-06 Qst Holdings, Llc Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US20030088757A1 (en) * 2001-05-02 2003-05-08 Joshua Lindner Efficient high performance data operation element for use in a reconfigurable logic environment
US7840777B2 (en) * 2001-05-04 2010-11-23 Ascenium Corporation Method and apparatus for directing a computational array to execute a plurality of successive computational array instructions at runtime
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
US20030004699A1 (en) * 2001-06-04 2003-01-02 Choi Charles Y. Method and apparatus for evaluating an integrated circuit model
WO2002103532A2 (de) * 2001-06-20 2002-12-27 Pact Xpp Technologies Ag Verfahren zur bearbeitung von daten
US6848074B2 (en) * 2001-06-21 2005-01-25 Arc International Method and apparatus for implementing a single cycle operation in a data processing system
DE10139610A1 (de) 2001-08-11 2003-03-06 Daimler Chrysler Ag Universelle Rechnerarchitektur
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
JP2005508029A (ja) * 2001-08-16 2005-03-24 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト リコンフィギュアラブルアーキテクチャのためのプログラム変換方法
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US6941548B2 (en) * 2001-10-16 2005-09-06 Tensilica, Inc. Automatic instruction set architecture generation
DE10249204A1 (de) * 2001-10-29 2003-05-28 Siemens Ag Rekonfigurierbare digitale Logikeinheit
US7376811B2 (en) * 2001-11-06 2008-05-20 Netxen, Inc. Method and apparatus for performing computations and operations on data using data steering
US7046635B2 (en) 2001-11-28 2006-05-16 Quicksilver Technology, Inc. System for authorizing functionality in adaptable hardware devices
US6986021B2 (en) 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US7493470B1 (en) 2001-12-07 2009-02-17 Arc International, Plc Processor apparatus and methods optimized for control applications
US6545501B1 (en) 2001-12-10 2003-04-08 International Business Machines Corporation Method and system for use of a field programmable function within a standard cell chip for repair of logic circuits
US6754881B2 (en) 2001-12-10 2004-06-22 International Business Machines Corporation Field programmable network processor and method for customizing a network processor
US6668361B2 (en) 2001-12-10 2003-12-23 International Business Machines Corporation Method and system for use of a field programmable function within a chip to enable configurable I/O signal timing characteristics
US7047464B2 (en) * 2001-12-10 2006-05-16 International Business Machines Corporation Method and system for use of a field programmable function within an application specific integrated circuit (ASIC) to access internal signals for external observation and control
US7215701B2 (en) 2001-12-12 2007-05-08 Sharad Sambhwani Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US7251594B2 (en) * 2001-12-21 2007-07-31 Hitachi, Ltd. Execution time modification of instruction emulation parameters
US7403981B2 (en) 2002-01-04 2008-07-22 Quicksilver Technology, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
AU2003208266A1 (en) 2002-01-19 2003-07-30 Pact Xpp Technologies Ag Reconfigurable processor
ATE402446T1 (de) 2002-02-18 2008-08-15 Pact Xpp Technologies Ag Bussysteme und rekonfigurationsverfahren
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US20050131980A1 (en) * 2002-04-03 2005-06-16 Centre National De La Recherche Scientifique-Cnrs, An Organization Of France Logical calculation architecture comprising multiple configuration modes
US7899924B2 (en) * 2002-04-19 2011-03-01 Oesterreicher Richard T Flexible streaming hardware
US20040006636A1 (en) * 2002-04-19 2004-01-08 Oesterreicher Richard T. Optimized digital media delivery engine
US20040006635A1 (en) * 2002-04-19 2004-01-08 Oesterreicher Richard T. Hybrid streaming platform
US7475000B2 (en) * 2002-04-25 2009-01-06 Arc International, Plc Apparatus and method for managing integrated circuit designs
US7328414B1 (en) 2003-05-13 2008-02-05 Qst Holdings, Llc Method and system for creating and programming an adaptive computing engine
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
US7176914B2 (en) * 2002-05-16 2007-02-13 Hewlett-Packard Development Company, L.P. System and method for directing the flow of data and instructions into at least one functional unit
US7024654B2 (en) 2002-06-11 2006-04-04 Anadigm, Inc. System and method for configuring analog elements in a configurable hardware device
US7493607B2 (en) 2002-07-09 2009-02-17 Bluerisc Inc. Statically speculative compilation and execution
US7231630B2 (en) * 2002-07-12 2007-06-12 Ensequence Inc. Method and system automatic control of graphical computer application appearance and execution
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
US7263602B2 (en) * 2002-08-16 2007-08-28 Carnegie Mellon University Programmable pipeline fabric utilizing partially global configuration buses
US20040122643A1 (en) * 2002-08-29 2004-06-24 Anderson Howard C. Apparatus and method for simulating switched-capacitor circuits
US6978435B2 (en) 2002-08-29 2005-12-20 Anadigm, Inc. Apparatus for programming a programmable device, and method
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
US7394284B2 (en) 2002-09-06 2008-07-01 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7707216B2 (en) * 2002-10-08 2010-04-27 Stmicroelectronics, Inc. Data sorting apparatus with querying mechanism and method of operation
US7290089B2 (en) 2002-10-15 2007-10-30 Stmicroelectronics, Inc. Executing cache instructions in an increased latency mode
US7937591B1 (en) 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
US8276135B2 (en) 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
JP4542308B2 (ja) * 2002-12-16 2010-09-15 株式会社ソニー・コンピュータエンタテインメント 信号処理用デバイス及び情報処理機器
US8024548B2 (en) * 2003-02-18 2011-09-20 Christopher Joseph Daffron Integrated circuit microprocessor that constructs, at run time, integrated reconfigurable logic into persistent finite state machines from pre-compiled machine code instruction sequences
US8190858B2 (en) * 2003-02-25 2012-05-29 Topside Research, Llc Interface device for interfacing a main processor to processing engines and classifier engines, and methods for configuring and operating interface devices
US7590829B2 (en) 2003-03-31 2009-09-15 Stretch, Inc. Extension adapter
US7613900B2 (en) 2003-03-31 2009-11-03 Stretch, Inc. Systems and methods for selecting input/output configuration in an integrated circuit
US8001266B1 (en) 2003-03-31 2011-08-16 Stretch, Inc. Configuring a multi-processor system
US7581081B2 (en) * 2003-03-31 2009-08-25 Stretch, Inc. Systems and methods for software extensible multi-processing
WO2004104825A1 (en) * 2003-05-15 2004-12-02 Applianz Technologies, Inc. Systems and methods of creating and accessing software simulated computers
US7373642B2 (en) * 2003-07-29 2008-05-13 Stretch, Inc. Defining instruction extensions in a standard programming language
US8296764B2 (en) 2003-08-14 2012-10-23 Nvidia Corporation Internal synchronization control for adaptive integrated circuitry
US7174432B2 (en) 2003-08-19 2007-02-06 Nvidia Corporation Asynchronous, independent and multiple process shared memory system in an adaptive computing architecture
US20050049843A1 (en) * 2003-08-29 2005-03-03 Lee Hewitt Computerized extension apparatus and methods
US7124338B1 (en) * 2003-10-10 2006-10-17 Xilinx, Inc. Methods of testing interconnect lines in programmable logic devices using partial reconfiguration
US7529814B2 (en) 2003-10-15 2009-05-05 International Business Machines Corporation Autonomic computing algorithm for identification of an optimum configuration for a web infrastructure
US20050114850A1 (en) 2003-10-29 2005-05-26 Saurabh Chheda Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US7996671B2 (en) * 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
JP2005165961A (ja) * 2003-12-05 2005-06-23 Matsushita Electric Ind Co Ltd 動的再構成論理回路装置、割込制御方法、及び、半導体集積回路
US7376083B2 (en) * 2003-12-09 2008-05-20 International Business Machines Corporation Apparatus and method for modeling queueing systems with highly variable traffic arrival rates
KR20050071739A (ko) * 2004-01-02 2005-07-08 삼성전자주식회사 누설 전력을 줄이기 위한 마이크로프로세서
DE102004003167A1 (de) 2004-01-21 2005-08-18 Siemens Ag Verfahren zum Entwickeln einer Maschine
US8607209B2 (en) * 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US20050278464A1 (en) * 2004-05-13 2005-12-15 Claseman George R Multiple state configuration method
EP1782287A2 (en) * 2004-07-21 2007-05-09 Beach Unlimited LLC Distributed storage architecture based on block map caching and vfs stackable file system modules
CN101010959B (zh) * 2004-07-23 2012-01-25 海滩无极限有限公司 传送数据流的方法和系统
EP1836601A2 (en) * 2004-11-30 2007-09-26 Tokyo Electron Limited Dynamically reconfigurable processor
TW200617703A (en) * 2004-11-30 2006-06-01 Tokyo Electron Ltd Dynamically reconfigurable processor
DE102005010476A1 (de) * 2005-03-04 2006-09-07 Daimlerchrysler Ag Steuergerät mit konfigurierbaren Hardwaremodulen
US8966223B2 (en) * 2005-05-05 2015-02-24 Icera, Inc. Apparatus and method for configurable processing
US20070033089A1 (en) * 2005-08-04 2007-02-08 Microsoft Corporation User interface and geo-parsing data structure
US7441212B1 (en) * 2005-09-07 2008-10-21 Altera Corporation State machine recognition and optimization
US7523434B1 (en) 2005-09-23 2009-04-21 Xilinx, Inc. Interfacing with a dynamically configurable arithmetic unit
US8230481B2 (en) * 2005-11-23 2012-07-24 Armstrong Quinton Co. LLC Methods, systems, and computer program products for reconfiguring an operational mode of an input interface based on a privacy level
KR100663709B1 (ko) * 2005-12-28 2007-01-03 삼성전자주식회사 재구성 아키텍처에서의 예외 처리 방법 및 장치
KR100681199B1 (ko) * 2006-01-11 2007-02-09 삼성전자주식회사 코어스 그레인 어레이에서의 인터럽트 처리 방법 및 장치
WO2007082730A1 (de) 2006-01-18 2007-07-26 Pact Xpp Technologies Ag Hardwaredefinitionsverfahren
KR100812346B1 (ko) * 2006-02-06 2008-03-11 삼성전자주식회사 재구성 어레이에서의 인터럽트 처리 방법 및 장치
US7756973B2 (en) * 2006-04-27 2010-07-13 International Business Machines Corporation Identifying a configuration for an application in a production environment
US20070294181A1 (en) * 2006-05-22 2007-12-20 Saurabh Chheda Flexible digital rights management with secure snippets
US7693257B2 (en) * 2006-06-29 2010-04-06 Accuray Incorporated Treatment delivery optimization
US8028290B2 (en) * 2006-08-30 2011-09-27 International Business Machines Corporation Multiple-core processor supporting multiple instruction set architectures
US7840732B2 (en) * 2006-09-25 2010-11-23 Honeywell International Inc. Stacked card address assignment
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
US7904288B1 (en) * 2006-11-06 2011-03-08 Cadence Design Systems, Inc. Hardware emulator having a variable input emulation group
US8127113B1 (en) 2006-12-01 2012-02-28 Synopsys, Inc. Generating hardware accelerators and processor offloads
RU2363973C2 (ru) * 2006-12-13 2009-08-10 Николай Валентинович Татарченко Модульная инженерная система
US7529909B2 (en) * 2006-12-28 2009-05-05 Microsoft Corporation Security verified reconfiguration of execution datapath in extensible microcomputer
KR100893527B1 (ko) * 2007-02-02 2009-04-17 삼성전자주식회사 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법
US8302006B2 (en) * 2007-02-28 2012-10-30 Rockwell Automation Technologies, Inc. Interactive tooltip to display and navigate to different resources of a data point
US7941791B2 (en) * 2007-04-13 2011-05-10 Perry Wang Programming environment for heterogeneous processor resource integration
US8589935B2 (en) 2007-05-08 2013-11-19 L-3 Communications Corporation Heterogeneous reconfigurable agent compute engine (HRACE)
US7941641B1 (en) 2007-10-01 2011-05-10 Yong-Kyu Jung Retargetable instruction decoder for a computer processor
US8281294B1 (en) * 2007-11-12 2012-10-02 Nvidia Corporation System and method for representing and managing a multi-architecture co-processor application program
US8276132B1 (en) * 2007-11-12 2012-09-25 Nvidia Corporation System and method for representing and managing a multi-architecture co-processor application program
JP5119902B2 (ja) * 2007-12-19 2013-01-16 富士通セミコンダクター株式会社 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム
US8037350B1 (en) * 2008-04-30 2011-10-11 Hewlett-Packard Development Company, L.P. Altering a degree of redundancy used during execution of an application
DE102008037431B4 (de) 2008-10-10 2013-06-06 Lear Corporation Gmbh Verfahren zur dynamischen Konfiguration eines Signalaufbereiters
US20100138575A1 (en) 2008-12-01 2010-06-03 Micron Technology, Inc. Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices
US20100174887A1 (en) 2009-01-07 2010-07-08 Micron Technology Inc. Buses for Pattern-Recognition Processors
US9323994B2 (en) 2009-12-15 2016-04-26 Micron Technology, Inc. Multi-level hierarchical routing matrices for pattern-recognition processors
JP5990466B2 (ja) 2010-01-21 2016-09-14 スビラル・インコーポレーテッド ストリームに基づく演算を実装するための汎用複数コアシステムのための方法および装置
EP2553815A1 (en) * 2010-04-02 2013-02-06 Tabula, Inc. System and method for reducing reconfiguration power usage
US8473911B1 (en) 2010-07-23 2013-06-25 Xilinx, Inc. Documentation generation from a computer readable symbolic representation
KR20120031756A (ko) 2010-09-27 2012-04-04 삼성전자주식회사 Cpu와 gpu를 사용하는 이종 시스템에서 가상화를 이용한 어플리케이션 컴파일 및 실행 방법 및 장치
US10983947B2 (en) * 2011-11-21 2021-04-20 Robert Keith Mykland Method and dynamically reconfigurable processor adapted for management of persistence of information across multiple instruction cycles
US20130275709A1 (en) 2012-04-12 2013-10-17 Micron Technology, Inc. Methods for reading data from a storage buffer including delaying activation of a column select
US9524248B2 (en) 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
US9063532B2 (en) 2012-08-31 2015-06-23 Micron Technology, Inc. Instruction insertion in state machine engines
US9703574B2 (en) 2013-03-15 2017-07-11 Micron Technology, Inc. Overflow detection and correction in state machine engines
US9448965B2 (en) 2013-03-15 2016-09-20 Micron Technology, Inc. Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine
US9465763B2 (en) 2013-06-17 2016-10-11 Altera Corporation Bridge circuitry for communications with dynamically reconfigurable circuits
CN104348889B (zh) * 2013-08-09 2019-04-16 鸿富锦精密工业(深圳)有限公司 切换开关及电子装置
US10019260B2 (en) * 2013-09-20 2018-07-10 Via Alliance Semiconductor Co., Ltd Fingerprint units comparing stored static fingerprints with dynamically generated fingerprints and reconfiguring processor settings upon a fingerprint match
US9811335B1 (en) * 2013-10-14 2017-11-07 Quicklogic Corporation Assigning operational codes to lists of values of control signals selected from a processor design based on end-user software
US9338057B2 (en) * 2013-10-30 2016-05-10 Netapp, Inc. Techniques for searching data associated with devices in a heterogeneous data center
US9990131B2 (en) * 2014-09-22 2018-06-05 Xilinx, Inc. Managing memory in a multiprocessor system
US9250900B1 (en) 2014-10-01 2016-02-02 Cadence Design Systems, Inc. Method, system, and computer program product for implementing a microprocessor with a customizable register file bypass network
US9223921B1 (en) * 2014-11-13 2015-12-29 Xilinx, Inc. Compilation of HLL code with hardware accelerated functions
US11366675B2 (en) 2014-12-30 2022-06-21 Micron Technology, Inc. Systems and devices for accessing a state machine
US10769099B2 (en) 2014-12-30 2020-09-08 Micron Technology, Inc. Devices for time division multiplexing of state machine engine signals
WO2016109570A1 (en) 2014-12-30 2016-07-07 Micron Technology, Inc Systems and devices for accessing a state machine
JP6313237B2 (ja) 2015-02-04 2018-04-18 東芝メモリ株式会社 ストレージシステム
US10846103B2 (en) 2015-10-06 2020-11-24 Micron Technology, Inc. Methods and systems for representing processing resources
US10977309B2 (en) 2015-10-06 2021-04-13 Micron Technology, Inc. Methods and systems for creating networks
US10691964B2 (en) 2015-10-06 2020-06-23 Micron Technology, Inc. Methods and systems for event reporting
CN105955923A (zh) * 2016-04-27 2016-09-21 南京大学 一种可配置流水信号处理核的高效率控制器及控制方法
US10146555B2 (en) 2016-07-21 2018-12-04 Micron Technology, Inc. Adaptive routing to avoid non-repairable memory and logic defects on automata processor
US10534541B2 (en) 2016-09-20 2020-01-14 Seagate Technology Llc Asynchronous discovery of initiators and targets in a storage fabric
US10019311B2 (en) 2016-09-29 2018-07-10 Micron Technology, Inc. Validation of a symbol response memory
US10268602B2 (en) 2016-09-29 2019-04-23 Micron Technology, Inc. System and method for individual addressing
US10592450B2 (en) 2016-10-20 2020-03-17 Micron Technology, Inc. Custom compute cores in integrated circuit devices
US10929764B2 (en) 2016-10-20 2021-02-23 Micron Technology, Inc. Boolean satisfiability
US11562115B2 (en) 2017-01-04 2023-01-24 Stmicroelectronics S.R.L. Configurable accelerator framework including a stream switch having a plurality of unidirectional stream links
JP6751057B2 (ja) * 2017-07-04 2020-09-02 日立オートモティブシステムズ株式会社 電子制御システム
US11114138B2 (en) 2017-09-15 2021-09-07 Groq, Inc. Data structures with multiple read ports
US11360934B1 (en) 2017-09-15 2022-06-14 Groq, Inc. Tensor streaming processor architecture
US11868804B1 (en) 2019-11-18 2024-01-09 Groq, Inc. Processor instruction dispatch configuration
US11243880B1 (en) * 2017-09-15 2022-02-08 Groq, Inc. Processor architecture
US11170307B1 (en) 2017-09-21 2021-11-09 Groq, Inc. Predictive model compiler for generating a statically scheduled binary with known resource constraints
CN108172249B (zh) * 2017-12-22 2021-09-17 湖南国科微电子股份有限公司 一种NAND Flash访问操作方法、装置及系统
US10922412B2 (en) * 2018-01-22 2021-02-16 The Boeing Company Automatic tampering detection in networked control systems
US11301546B2 (en) 2018-11-19 2022-04-12 Groq, Inc. Spatial locality transform of matrices
US10878150B1 (en) * 2019-09-17 2020-12-29 Xilinx, Inc. Loop optimization in a circuit design netlist
US11593609B2 (en) 2020-02-18 2023-02-28 Stmicroelectronics S.R.L. Vector quantization decoding hardware unit for real-time dynamic decompression for parameters of neural networks
US11531873B2 (en) 2020-06-23 2022-12-20 Stmicroelectronics S.R.L. Convolution acceleration with embedded vector decompression
CN113032329B (zh) * 2021-05-21 2021-09-14 千芯半导体科技(北京)有限公司 基于可重构存算芯片的计算结构、硬件架构及计算方法
US20230052672A1 (en) * 2021-08-10 2023-02-16 International Business Machines Corporation Queue bypassing interrupt handling

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4037094A (en) * 1971-08-31 1977-07-19 Texas Instruments Incorporated Multi-functional arithmetic and logical unit
US4250545A (en) * 1978-12-29 1981-02-10 Bell Telephone Laboratories, Incorporated Data processing apparatus providing autoloading of memory pointer registers
US5042004A (en) * 1986-03-06 1991-08-20 Advanced Micro Devices, Inc. Programmable logic device with subroutine stack and random access memory
US4791603A (en) 1986-07-18 1988-12-13 Honeywell Inc. Dynamically reconfigurable array logic
US4811214A (en) * 1986-11-14 1989-03-07 Princeton University Multinode reconfigurable pipeline computer
JP2733765B2 (ja) 1987-11-10 1998-03-30 株式会社日立製作所 回路構成装置
US5068823A (en) * 1988-07-11 1991-11-26 Star Semiconductor Corporation Programmable integrated circuit using topological and parametric data to selectively connect and configure different high level functional blocks thereof
DE68925121T2 (de) * 1988-10-05 1996-06-13 Quickturn Systems Inc Verfahren zur verwendung einer elektronisch wiederkonfigurierbaren gatterfeld-logik und dadurch hergestelltes gerät
US5452231A (en) * 1988-10-05 1995-09-19 Quickturn Design Systems, Inc. Hierarchically connected reconfigurable logic assembly
US5109353A (en) * 1988-12-02 1992-04-28 Quickturn Systems, Incorporated Apparatus for emulation of electronic hardware system
US5353243A (en) * 1989-05-31 1994-10-04 Synopsys Inc. Hardware modeling system and method of use
US5400262A (en) * 1989-09-20 1995-03-21 Aptix Corporation Universal interconnect matrix array
JP2968289B2 (ja) * 1989-11-08 1999-10-25 株式会社リコー 中央演算処理装置
US5522083A (en) * 1989-11-17 1996-05-28 Texas Instruments Incorporated Reconfigurable multi-processor operating in SIMD mode with one processor fetching instructions for use by remaining processors
US5280474A (en) * 1990-01-05 1994-01-18 Maspar Computer Corporation Scalable processor to processor and processor-to-I/O interconnection network and method for parallel processing arrays
US5550845A (en) * 1990-08-03 1996-08-27 Siemens Aktiengesellschaft Method for dynamic testing of digital logic circuits
US5452101A (en) * 1991-10-24 1995-09-19 Intel Corporation Apparatus and method for decoding fixed and variable length encoded data
CA2073516A1 (en) * 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
FR2686175B1 (fr) * 1992-01-14 1996-12-20 Andre Thepaut Systeme de traitement de donnees multiprocesseur.
US5542067A (en) * 1992-04-23 1996-07-30 International Business Machines Corporation Virtual multi-port RAM employing multiple accesses during single machine cycle
US5475624A (en) * 1992-04-30 1995-12-12 Schlumberger Technologies, Inc. Test generation by environment emulation
US5386562A (en) * 1992-05-13 1995-01-31 Mips Computer Systems, Inc. Circular scheduling method and apparatus for executing computer programs by moving independent instructions out of a loop
US5802290A (en) * 1992-07-29 1998-09-01 Virtual Computer Corporation Computer network of distributed virtual computers which are EAC reconfigurable in response to instruction to be executed
US5684980A (en) * 1992-07-29 1997-11-04 Virtual Computer Corporation FPGA virtual computer for executing a sequence of program instructions by successively reconfiguring a group of FPGA in response to those instructions
US5535342A (en) * 1992-11-05 1996-07-09 Giga Operations Corporation Pld connector for module having configuration of either first PLD or second PLD and reconfigurable bus for communication of two different bus protocols
US5497498A (en) * 1992-11-05 1996-03-05 Giga Operations Corporation Video processing module using a second programmable logic device which reconfigures a first programmable logic device for data transformation
US5361373A (en) * 1992-12-11 1994-11-01 Gilson Kent L Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
US5524243A (en) * 1992-12-16 1996-06-04 Rolm Company Parallel programming of field programmable gate array devices
US5430734A (en) * 1993-02-12 1995-07-04 Metalithic Systems, Inc. Fault-tolerant waferscale integrated circuit device and method
US5550989A (en) * 1993-05-28 1996-08-27 International Business Machines Corporation Bridge circuit that can eliminate invalid data during information transfer between buses of different bitwidths
US5466117A (en) * 1993-06-10 1995-11-14 Xilinx, Inc. Device and method for programming multiple arrays of semiconductor devices
EP0665998A4 (en) * 1993-08-03 1996-06-12 Xilinx Inc FPGA CIRCUIT WITH MICROPROCESSOR.
WO1995009392A1 (en) * 1993-09-27 1995-04-06 Giga Operations Corporation Implementation of a selected instruction set cpu in programmable hardware
US5548771A (en) * 1993-11-02 1996-08-20 Motorola Inc. Multi-processor data processing system having multiple ports coupled to multiple interface circuits
US5539893A (en) * 1993-11-16 1996-07-23 Unisys Corporation Multi-level memory and methods for allocating data most likely to be used to the fastest memory level
JPH07175664A (ja) 1993-12-16 1995-07-14 Dainippon Printing Co Ltd コンパイラ装置
US5539888A (en) * 1993-12-23 1996-07-23 Unisys Corporation System and method for processing external conditional branch instructions
US5535406A (en) * 1993-12-29 1996-07-09 Kolchinsky; Alexander Virtual processor module including a reconfigurable programmable matrix
US5548775A (en) * 1993-12-30 1996-08-20 International Business Machines Corporation System and method for adaptive active monitoring of high speed data streams using finite state machines
US5465975A (en) * 1994-03-04 1995-11-14 Shull; Naomi S. Dead hand card game and method of use
US5551013A (en) * 1994-06-03 1996-08-27 International Business Machines Corporation Multiprocessor for hardware emulation
US5557734A (en) * 1994-06-17 1996-09-17 Applied Intelligent Systems, Inc. Cache burst architecture for parallel processing, such as for image processing
US5546347A (en) * 1994-07-22 1996-08-13 Integrated Device Technology, Inc. Interleaving architecture and method for a high density FIFO
US5600845A (en) * 1994-07-27 1997-02-04 Metalithic Systems Incorporated Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
US5574930A (en) * 1994-08-12 1996-11-12 University Of Hawaii Computer system and method using functional memory
JPH0869447A (ja) 1994-08-31 1996-03-12 Toshiba Corp データ処理装置
US5457408A (en) * 1994-11-23 1995-10-10 At&T Corp. Method and apparatus for verifying whether a bitstream received by a field programmable gate array (FPGA) is intended for that FPGA
US5546545A (en) * 1994-12-09 1996-08-13 International Business Machines Corporation Rotating priority selection logic circuit
US5742180A (en) * 1995-02-10 1998-04-21 Massachusetts Institute Of Technology Dynamically programmable gate array with multiple contexts
US5546562A (en) * 1995-02-28 1996-08-13 Patel; Chandresh Method and apparatus to emulate VLSI circuits within a logic simulator
US5737631A (en) * 1995-04-05 1998-04-07 Xilinx Inc Reprogrammable instruction set accelerator
US5752035A (en) * 1995-04-05 1998-05-12 Xilinx, Inc. Method for compiling and executing programs for reprogrammable instruction set accelerator
US6594752B1 (en) * 1995-04-17 2003-07-15 Ricoh Company, Ltd. Meta-address architecture for parallel, dynamically reconfigurable computing
US5794062A (en) 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
DE19609035A1 (de) * 1996-03-08 1997-09-11 Krupp Foerdertechnik Gmbh Einrichtung zum kontinuierlichen Messen der jeweiligen Position eines in Bewegung befindlichen Schienenfahrzeugs
US5811214A (en) * 1997-05-08 1998-09-22 Eastman Kodak Company Monocomponent developer comprising surface treated toners
US6363381B1 (en) * 1998-11-03 2002-03-26 Ricoh Co., Ltd. Compressed document matching

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493472B2 (en) 1995-04-17 2009-02-17 Ricoh Company Ltd. Meta-address architecture for parallel, dynamically reconfigurable computing
JP2002537599A (ja) * 1999-02-15 2002-11-05 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 構成可能な機能ユニットを備えるデータプロセッサ及びそのようなデータプロセッサを使用する方法
JP2000242613A (ja) * 1999-02-23 2000-09-08 Ricoh Co Ltd 動的再構成計算のためのメタアドレスアーキテクチャ及びアドレス指定方法
JP2001022593A (ja) * 1999-06-17 2001-01-26 Motorola Inc 割り込み可能なマルチサイクル命令を処理する方法および装置
JP2004102988A (ja) * 1999-08-30 2004-04-02 Ip Flex Kk データ処理装置
US7616628B2 (en) 2001-08-20 2009-11-10 Ricoh Company, Ltd. Switched processor datapath
JP2008052750A (ja) * 2005-04-12 2008-03-06 Matsushita Electric Ind Co Ltd プロセッサ
JP2008077625A (ja) * 2006-09-18 2008-04-03 Samsung Electronics Co Ltd ユーザ定義の拡張演算を処理する演算システムおよび方法
JP2006351047A (ja) * 2006-10-02 2006-12-28 Nec Corp データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム
JP2016511853A (ja) * 2012-12-20 2016-04-21 インテル・コーポレーション スケーラブル計算ファブリック
JP2017194974A (ja) * 2012-12-20 2017-10-26 インテル・コーポレーション スケーラブル計算ファブリック
US11972132B2 (en) 2018-04-03 2024-04-30 Xilinx, Inc. Data processing engine arrangement in a device

Also Published As

Publication number Publication date
US5794062A (en) 1998-08-11
US6182206B1 (en) 2001-01-30
JP3785218B2 (ja) 2006-06-14
DE19614991C2 (de) 2003-11-06
KR960038592A (ko) 1996-11-21
US6058469A (en) 2000-05-02
TW394884B (en) 2000-06-21
US20050268070A1 (en) 2005-12-01
KR100283812B1 (ko) 2001-03-02
DE19614991A1 (de) 1996-10-24
US7493472B2 (en) 2009-02-17

Similar Documents

Publication Publication Date Title
JP3785218B2 (ja) コンピュータシステム
US6961842B2 (en) Meta-address architecture for parallel, dynamically reconfigurable computing
CN108268278B (zh) 具有可配置空间加速器的处理器、方法和系统
JP7264955B2 (ja) プログラム可能な最適化を有するメモリネットワークプロセッサ
US10445098B2 (en) Processors and methods for privileged configuration in a spatial array
JP3860575B2 (ja) 構成可能な実行ユニットを有する高性能のハイブリッドプロセッサ
Cronquist et al. Specifying and compiling applications for RaPiD
WO2020005448A1 (en) Apparatuses, methods, and systems for unstructured data flow in a configurable spatial accelerator
JP4391935B2 (ja) 散在しているプロセッサと通信要素を備える処理システム
WO2019194915A1 (en) Apparatuses, methods, and systems for unstructured data flow in a configurable spatial accelerator
JP5077597B2 (ja) データ処理装置
EP1134654A1 (en) Program product and data processor
WO2002012999A2 (en) An array of parallel programmable processing engines and deterministic method of operating the same
CN114327620A (zh) 用于具有数据流执行电路的可配置加速器的装置、方法和系统
CN112148647A (zh) 用于存储器接口电路仲裁的装置、方法和系统
Li et al. A time-multiplexed FPGA overlay with linear interconnect
JP4285877B2 (ja) 動的再構成計算のためのメタアドレス指定アーキテクチャ及び動的再構成計算のためのメタアドレス指定方法
Anjam Run-time Adaptable VLIW Processors
Vassiliadis et al. The ARISE reconfigurable instruction set extensions framework
Ram et al. Design and implementation of run time digital system using field programmable gate array–improved dynamic partial reconfiguration for efficient power consumption
Jacobson et al. Application-specific asynchronous microengines for efficient high-level control
Patyk et al. Design methodology for offloading software executions to FPGA
YUE FPGA OVERLAY ARCHITECTURES ON THE XILINX ZYNQ AS PROGRAMMABLE ACCELERATORS
Chattopadhyay et al. rASIP Design Space
Jacobson et al. A pplication S pecific A synchronous M icroengines

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050411

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050411

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050609

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050609

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060317

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110324

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120324

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130324

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20140324

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees