JP2000242613A - Meta address architecture and address specifying method for dynamic reconstitution calculation - Google Patents

Meta address architecture and address specifying method for dynamic reconstitution calculation

Info

Publication number
JP2000242613A
JP2000242613A JP2000034825A JP2000034825A JP2000242613A JP 2000242613 A JP2000242613 A JP 2000242613A JP 2000034825 A JP2000034825 A JP 2000034825A JP 2000034825 A JP2000034825 A JP 2000034825A JP 2000242613 A JP2000242613 A JP 2000242613A
Authority
JP
Japan
Prior art keywords
address
data
local
machine
instruction
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
JP2000034825A
Other languages
Japanese (ja)
Other versions
JP4285877B2 (en
Inventor
Baxter Michael
バクスター マイケル
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
Priority claimed from US09/255,499 external-priority patent/US6594752B1/en
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of JP2000242613A publication Critical patent/JP2000242613A/en
Application granted granted Critical
Publication of JP4285877B2 publication Critical patent/JP4285877B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To efficiently perform reprogramming. SOLUTION: This meta address specifying architecture for specifying a local memory destination for a data packet for the network of a dynamic reprogrammable processing machine is constructed by plural address specifying machines 14 provided with an unique geographical address for executing interruption, generating and transmitting a meta address including the geographical address and a local address and making respective messages stand by, the plural dynamic reprogrammable processing machines 12 connected to at least one address specifying machine for storing, retrieving and processing data from a local memory device corresponding to the received local address, plural memory devices relating to the dynamic reprogrammable processing machines 12 and an interconnection device 16 connected to the address specifying machines 14 for routing the data between the address specifying machines corresponding to the geographical address included in the meta address.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、一般にコンピュー
タアーキテクチャに係り、特に、再構成計算のためのシ
ステム及び方法、つまり、動的再構成計算のためのメタ
アドレスアーキテクチャ及びアドレス指定方法に関す
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates generally to computer architecture, and more particularly to a system and method for reconfiguration computation, that is, a meta-address architecture and addressing method for dynamic reconfiguration computation.

【0002】本発明は、1995年4月17日付で提出
した米国特許No.5,794,062の分割出願であ
る1998年2月26日付で提出した「変更可能な内部
ハードウェア編成を含む処理装置を用いた動的再構成計
算のためのシステム及び方法」という名称の米国特許出
願No.09/031,323の米国一部継続出願に基
づく優先権主張出願である。
[0002] The present invention is disclosed in US Pat. U.S. Pat. Patent application no. This is a priority application based on the U.S. Serial No. 09 / 031,323.

【0003】[0003]

【従来の技術】コンピュータアーキテクチャの進展は、
より優れた計算性能への要求によって推進されている。
各種の計算問題を迅速かつ正確に解くには、一般に異な
る種類の計算リソースが必要である。問題の種類が限ら
れている場合には、検討中の種類の問題のために特に構
築された計算リソースを用いることによって計算性能を
向上させることができる。たとえば、デジタル信号処理
(DSP:Digital Signal Processing)ハードウェア
を汎用コンピュータと併用すると、ある種の信号処理能
力を大幅に向上させることができる。コンピュータ自体
が検討中の種類の問題のために特別に構築されていると
きには、こうした特定の種類の問題について計算性能が
さらに向上するか、または、利用可能な計算リソースと
比べて、おそらくさらに最適化されたものとなる。現在
の並列コンピュータ及び大規模並列コンピュータは、O
(n2 )またはそれ以上に複雑な特殊な種類の問題に対
する処理能力が優れており、これが上記の場合の例であ
る。
2. Description of the Related Art Advances in computer architecture include:
Driven by the demand for better computing performance.
To quickly and accurately solve various types of computational problems, different types of computational resources are generally required. If the type of problem is limited, computational performance can be improved by using computational resources specifically constructed for the type of problem under consideration. For example, when digital signal processing (DSP) hardware is used in combination with a general-purpose computer, certain signal processing capabilities can be significantly improved. When the computer itself is specially constructed for the type of problem under consideration, the computational performance for these particular types of problems will be further improved, or perhaps further optimized, relative to the available computational resources. It was done. Current parallel computers and massively parallel computers are
Excellent handling of special types of problems (n 2 ) or more, which is an example in the above case.

【0004】優れた計算性能は必要ではあるが、その一
方でシステム費用を最小限に抑える必要性と均衡させな
ければならず、また現在及び将来考えられるできるだけ
広範囲な用途においてシステム生産性を最大限に高める
必要性とも均衡させなければならない。一般に、特殊な
ハードウェアは汎用ハードウェアより高価であるため、
限られた数種類の問題専用の計算リソースをコンピュー
タシステムに組込むことは、システム費用を低く抑える
ことに悪影響を与える。専用コンピュータを設計し生産
することは、エンジニアリング(工学設計)に要する時
間とハードウェアの費用の点からきわめて高価なものと
なる。計算性能を高めるために専用ハードウェアを用い
た場合、計算性能の必要度が変化すると性能上の利点は
少なくなる。先行技術では、計算性能の必要度が変化す
ると、新しい専用ハードウェアまたは新しい専用システ
ムが設計され、製造され、結果として望ましくないほど
高額の再活用できない設計・製造費用が繰返し支出され
る。したがって、特定種類の問題専用の計算リソースを
用いると、計算の必要度が変化した場合、利用可能なシ
リコンリソースを非効率に利用することになる。したが
って、上記のような理由で専用ハードウェアを用いて計
算性能を向上させようとする試みは望ましくない。
While good computational performance is required, it must be balanced with the need to minimize system costs and maximize system productivity in the widest possible range of current and future applications. Needs to be balanced. In general, specialized hardware is more expensive than general-purpose hardware,
Incorporating computing resources dedicated to a limited number of problems into a computer system has a negative impact on keeping system costs low. Designing and producing a special purpose computer is extremely expensive in terms of engineering time and hardware costs. In the case where dedicated hardware is used to enhance the calculation performance, if the degree of calculation performance changes, the performance advantage decreases. In the prior art, as computational performance needs change, new dedicated hardware or new dedicated systems are designed and manufactured, resulting in recurring undesirably high non-reusable design and manufacturing costs. Thus, using computation resources dedicated to a particular type of problem results in inefficient use of available silicon resources when the computational needs change. For this reason, it is not desirable to use dedicated hardware to improve the calculation performance.

【0005】従来、再プログラマブルハードウェアまた
は再構成ハードウェアを用いて計算性能を向上させ、ま
た問題の種類の適用可能性を最大限に高めるさまざまな
試みが行われてきた。最初のこのような先行技術のアプ
ローチは、ダウンロード可能マイクロコードコンピュー
タアーキテクチャによるものである。ダウンロード可能
マイクロアーキテクチャでは、固定された非再構成ハー
ドウェアリソースの機能を特定のバージョンのマイクロ
コードを用いることによって選択的に変化させることが
できる。このようなアーキテクチャの例に、IBMシス
テム/360がある。このような先行技術システムの基
本的計算ハードウェア自体は再構成可能ではないので、
広範囲の種類の問題について検討する場合、こうしたシ
ステムでは最適化された計算性能は得られない。
In the past, various attempts have been made to improve computational performance using reprogrammable or reconfigurable hardware and to maximize the applicability of the type of problem. The first such prior art approach relies on a downloadable microcode computer architecture. In a downloadable microarchitecture, the functionality of fixed non-reconfigurable hardware resources can be selectively varied by using a particular version of microcode. An example of such an architecture is the IBM System / 360. Since the basic computing hardware of such prior art systems is not reconfigurable itself,
When considering a wide variety of problems, such systems do not provide optimized computational performance.

【0006】計算性能を向上させ、問題の種類の適用可
能性を最大限に高めるための先行技術の第2のアプロー
チは、非再構成ホストプロセッサまたはホストシステム
に結合された再構成ハードウェアを用いることである。
この先行技術のアプローチでは、非再構成ホストに結合
された1個またはそれ以上の再構成プロセッサを利用す
ることが最も一般的である。このアプローチは、ホスト
に付加されたプロセッサセット内のハードウェアの一部
分が再構成できるような「付加再構成可能プロセッサ
(ARP:Attached Reconfigurable Processor)」ア
ーキテクチャとして分類することができる。ホストシス
テムに結合された1組の再構成プロセッサを利用する現
在の付加再構成可能プロセッサ(ARP)システムの例
には、Supercomputing Research Center(Bowie,メリ
ーランド)が設計したSPLASH−1とSPLASH
−2、Annapolis Micro Systems(Annapolis,メリーラ
ンド)製のWILDFIRE Custom Configurable Computer
(SPLASH−2の市販バージョン)、Virtual Comp
uter Corporation(Reseda,カリフォルニア)製のEC
V−1がある。計算を主体とした問題の多くでは、プロ
グラムコードの比較的小さな部分の実行にかなりの時間
が費やされる。一般に、付加再構成可能プロセッサ(A
RP)アーキテクチャを用いて、プログラムコードのこ
のような部分のために再構成計算アクセラレータが提供
される。
A second prior art approach to improving computational performance and maximizing the applicability of a type of problem uses reconfigurable hardware coupled to a non-reconfigurable host processor or host system. That is.
This prior art approach most commonly utilizes one or more reconfigurable processors coupled to a non-reconfigurable host. This approach can be categorized as an "Attached Reconfigurable Processor (ARP)" architecture, where a portion of the hardware in the processor set attached to the host can be reconfigured. Examples of current additive reconfigurable processor (ARP) systems utilizing a set of reconfigurable processors coupled to a host system include SPLASH-1 and SPLASH designed by the Supercomputing Research Center (Bowie, MD).
-2, WILDFIRE Custom Configurable Computer manufactured by Annapolis Micro Systems (Annapolis, MD)
(Commercial version of SPLASH-2), Virtual Comp
EC made by uter Corporation (Reseda, California)
V-1. In many computationally intensive problems, a significant amount of time is spent executing relatively small portions of program code. Generally, additional reconfigurable processors (A
Using the (RP) architecture, a reconstruction computation accelerator is provided for such portions of program code.

【0007】[0007]

【発明が解決しようとする課題】残念ながら、1個また
はそれ以上の再構成計算アクセラレータを基礎においた
計算モデルには、下記に詳細に説明するような重大な欠
点がある。
Unfortunately, computational models based on one or more reconstructed computational accelerators have significant disadvantages, as described in detail below.

【0008】<第1の欠点>付加再構成可能プロセッサ
(ARP)アーキテクチャの第1の欠点は、付加再構成
可能プロセッサ(ARP)システムが特定のときに再構
成ハードウェアの特定のアルゴリズムの最適実動化を実
行しようと試みるために起こる。
First disadvantage The first disadvantage of the incrementally reconfigurable processor (ARP) architecture is that when the incrementally reconfigurable processor (ARP) system is specific, the optimal implementation of the specific algorithm of the reconfigurable hardware is not possible. Happens to try to perform the mobilization.

【0009】たとえば、Virtual Computer Corporation
のECV−1の背後にある設計方針は、特定のアルゴリ
ズムのために最適の計算性能を提供するよう、その特定
のアルゴリズムを再構成ハードウェアソースの特定の構
成に変換するというものである。再構成ハードウェアリ
ソースは、特定のアルゴリズムのために最適の能力を提
供する目的だけに用いられる。命令実行の管理などの一
般的な目的のために再構成ハードウェアリソースを用い
ることは避けられる。したがって、所定のアルゴリズム
について、再構成ハードウェアリソースは最適の能力が
得られるよう結合された個々のゲートの全体像から検討
される。
For example, Virtual Computer Corporation
The design philosophy behind the ECV-1 is to translate that particular algorithm into a particular configuration of reconfigured hardware sources to provide optimal computational performance for that particular algorithm. Reconfigured hardware resources are used only to provide optimal performance for a particular algorithm. Using reconfigurable hardware resources for general purposes such as managing instruction execution is avoided. Thus, for a given algorithm, the reconfigured hardware resources are considered from an overview of the individual gates combined for optimal performance.

【0010】一部の付加再構成可能プロセッサ(AR
P)システムは、「プログラム」が従来型のプログラム
命令と、各種再構成ハードウェアリソースがどのように
相互結合されるかを定める専用命令との両方を含むプロ
グラミングモデルに依拠している。付加再構成可能プロ
セッサ(ARP)システムは、ゲートレベルアルゴリズ
ムに適した固有の方法で再構成ハードウェアリソースを
検討するので、これらの専用命令は、用いられる各再構
成ハードウェアリソースの特性に関する詳細な内容と、
再構成ハードウェアリソースが他の再構成ハードウェア
リソースに結合される方法を提供しなければならない。
これにより、プログラムは複雑なものとなる。プログラ
ミングの複雑さを軽減するために、プログラムに従来型
の高レベルプログラミング言語命令と高レベル専用命令
の両方を含めたプログラミングモデルを利用する試みが
行われている。つまり、現在の付加再構成可能プロセッ
サ(ARP)システムでは、高レベルプログラミング言
語命令と上記の高レベル専用命令の両方をコンパイルで
きるコンパイルシステムを利用しようという試みがなさ
れている。このようなコンパイルシステムの目的出力
は、従来型の高レベルプログラミング言語命令について
はアセンブリ言語コードであり、専用命令についてはハ
ードウェア記述言語(HDL:Hardware Description L
anguage)である。検討中の特定のアルゴリズムについ
て最適の計算性能を得るために1組の再構成ハードウェ
アリソースと相互結合スキームを自動決定することは、
残念ながらNPハード問題である。一部の付加再構成可
能プロセッサ(ARP)システムの長期目標は、アルゴ
リズムを1組のゲートのための最適化相互結合スキーム
に直接コンパイルできるコンパイルシステムを開発する
ことである。しかし、このようなコンパイルシステムの
開発は、特に複数の種類のアルゴリズムについて検討す
る場合、きわめて困難な作業である。
Some additional reconfigurable processors (ARs)
P) Systems rely on a programming model in which a "program" includes both conventional program instructions and dedicated instructions that define how the various reconfigurable hardware resources are interconnected. Since the additive reconfigurable processor (ARP) system considers the reconfigurable hardware resources in a unique manner appropriate for the gate-level algorithm, these dedicated instructions provide detailed information about the characteristics of each reconfigurable hardware resource used. Content and
A method must be provided in which reconfigured hardware resources are combined with other reconfigured hardware resources.
This makes the program complicated. Attempts have been made to use programming models that include both conventional high-level programming language instructions and high-level dedicated instructions in programs to reduce programming complexity. That is, current additive reconfigurable processor (ARP) systems attempt to utilize a compilation system that can compile both high-level programming language instructions and the high-level dedicated instructions described above. The intended output of such a compilation system is assembly language code for conventional high-level programming language instructions, and hardware description language (HDL) for dedicated instructions.
anguage). Automatically determining a set of reconfigured hardware resources and interconnection schemes for optimal computational performance for the particular algorithm under consideration is:
Unfortunately, it is an NP hardware problem. The long-term goal of some additive reconfigurable processor (ARP) systems is to develop a compilation system that can compile algorithms directly into an optimized interconnection scheme for a set of gates. However, developing such a compilation system is an extremely difficult task, especially when considering multiple types of algorithms.

【0011】<第2の欠点>付加再構成可能プロセッサ
(ARP)アーキテクチャの第2の欠点は、付加再構成
可能プロセッサ(ARP)装置を構成するアルゴリズム
に関連した計算作業を、付加再構成可能プロセッサ(A
RP)装置が多重再構成論理装置全体に分散するために
起こる。
<Second Disadvantage> A second disadvantage of the additively reconfigurable processor (ARP) architecture is that the computational work associated with the algorithms that make up the incrementally reconfigurable processor (ARP) device is performed by the additional reconfigurable processor. (A
RP) occurs because devices are spread across multiple reconfigurable logic devices.

【0012】たとえば1組のフィールドプログラマブル
論理回路(FPGA)を用いて実装され、また並列乗算
アクセラレータを実動化するために構成された付加再構
成可能プロセッサ(ARP)装置については、並列乗算
に関連した計算作業がフィールドプログラマブル論理回
路(FPGA)全体に分散される。したがって、付加再
構成可能プロセッサ(ARP)装置を構成できるアルゴ
リズムの大きさは、存在する再構成論理装置の数によっ
て制限される。同様に、付加再構成可能プロセッサ(A
RP)装置が扱うことができる最大データセットの大き
さも制限される。一部のアルゴリズムにはデータ従属性
があるので、ソースコードの試験を行っても、付加再構
成可能プロセッサ(ARP)装置の限界が必ずしも明示
的に示されるとは限らない。一般に、データ従属性アル
ゴリズムは避けられる。
For example, an additional reconfigurable processor (ARP) device implemented using a set of field-programmable logic circuits (FPGAs) and configured to implement a parallel multiplication accelerator may be associated with parallel multiplication. The calculated work is distributed throughout the field programmable logic circuit (FPGA). Therefore, the size of the algorithm that can constitute an additional reconfigurable processor (ARP) device is limited by the number of reconfigurable logic devices present. Similarly, the additional reconfigurable processor (A
The size of the largest data set that the RP) device can handle is also limited. Because some algorithms have data dependencies, testing source code does not always explicitly indicate the limitations of additional reconfigurable processor (ARP) devices. Generally, data dependency algorithms are avoided.

【0013】さらに、付加再構成可能プロセッサ(AR
P)アーキテクチャが多重再構成論理装置全体に計算作
業を分散することを開示しているので、新規のまたはや
や修正したアルゴリズムを含めるには、再構成をひとま
とめに行う必要がある。すなわち、多重再構成論理装置
を再構成しなければならない。これにより、別の問題ま
たはカスケード接続された副次的問題について再構成を
行うことができる最大レートが限定される。
Further, an additional reconfigurable processor (AR)
P) Because the architecture discloses distributing the computational work across multiple reconfigurable logic units, the reconfiguration must be performed in batches to include new or slightly modified algorithms. That is, the multiple reconfigurable logic device must be reconfigured. This limits the maximum rate at which reconstruction can be performed for another problem or a cascaded secondary problem.

【0014】<第3の欠点>付加再構成可能プロセッサ
(ARP)アーキテクチャの第3の欠点は、プログラム
コードの1つまたはそれ以上の部分がホストで実行され
るために生じる。
<Third Disadvantage> A third disadvantage of the additively reconfigurable processor (ARP) architecture arises because one or more portions of the program code are executed on the host.

【0015】すなわち、付加再構成可能プロセッサ(A
RP)装置はそれ自体独立した計算システムではなく、
プログラム全体を実行するものではない。このためホス
トとの相互作用が必要となる。一部のプログラムコード
が非再構成ホストで実行されるので、利用可能なシリコ
ンリソースがプログラムの実行の時間枠において最大限
に利用されない。特にホストによる命令の実行中、付加
再構成可能プロセッサ(ARP)装置のシリコンリソー
スはアイドル状態であるか、非効率な利用状態にある。
同様に、付加再構成可能プロセッサ(ARP)装置がデ
ータを処理するとき、ホストでのシリコンリソースの利
用はおおむね非効率である。複数の全プログラムを容易
に実行するためには、システム内のシリコンリソース
を、容易に再利用できるリソースにグループ化しなけれ
ばならない。上記のように、付加再構成可能プロセッサ
(ARP)システムは、再構成ハードウェアリソースを
特定の時間における特定のアルゴリズムの実動化のため
に最適に相互結合された1組のゲートとして扱う。した
がって、再利用できるためにはアルゴリズムがある程度
の独立性をもつ必要があるので、付加再構成可能プロセ
ッサ(ARP)システムは再構成ハードウェアリソース
の特定のセットをアルゴリズムごとに容易に再利用でき
るリソースとして扱うための手段は提供しない。
That is, the additional reconfigurable processor (A
RP) device is not an independent computing system itself,
It does not execute the entire program. This requires interaction with the host. Since some program code runs on a non-reconfigured host, available silicon resources are not fully utilized in the time frame of program execution. In particular, during the execution of instructions by the host, the silicon resources of the additional reconfigurable processor (ARP) device are idle or inefficiently utilized.
Similarly, utilization of silicon resources at the host is generally inefficient when additional reconfigurable processor (ARP) devices process data. In order to easily execute all of the programs, the silicon resources in the system must be grouped into resources that can be easily reused. As described above, additive reconfigurable processor (ARP) systems treat reconfigurable hardware resources as a set of gates that are optimally interconnected for the implementation of a particular algorithm at a particular time. Therefore, since an algorithm must have some degree of independence to be reusable, an additively reconfigurable processor (ARP) system uses a resource that can easily reuse a particular set of reconfigurable hardware resources for each algorithm. It does not provide a means to treat as.

【0016】付加再構成可能プロセッサ(ARP)装置
は、現在実行しているホストプログラムをデータとして
扱うことができず、一般にそれ自体を計算環境に適合さ
せることができない。付加再構成可能プロセッサ(AR
P)装置は、それ自体のホストプログラムを実行するこ
とによって、それ自体をシミュレートするようには作ら
れていない。さらに付加再構成可能プロセッサ(AR
P)装置は、構築される再構成ハードウェアリソースを
直接用いて、それ自体に対しそれ自体のハードウェア記
述言語(HDL)またはアプリケーションプログラムを
コンパイルするようには作られていない。したがって付
加再構成可能プロセッサ(ARP)装置は、ホストプロ
セッサからの独立性を開示する独立計算モデルに関して
アーキテクチャ的に制限されている。
An additively reconfigurable processor (ARP) device cannot handle the currently executing host program as data, and generally cannot adapt itself to the computing environment. Additional Reconfigurable Processor (AR
P) The device is not designed to simulate itself by executing its own host program. In addition, additional reconfigurable processor (AR
P) The device is not designed to compile its own hardware description language (HDL) or application program for itself, directly using the reconfigured hardware resources that are built. Accordingly, additional reconfigurable processor (ARP) devices are architecturally limited with respect to an independent computation model that discloses independence from the host processor.

【0017】付加再構成可能プロセッサ(ARP)装置
は、計算アクセラレータとして機能するので、一般に独
立した入力/出力(I/O)処理は行えない。通常は、
付加再構成可能プロセッサ(ARP)装置は入出力処理
のためのホスト相互作用を必要とする。したがって、付
加再構成可能プロセッサ(ARP)装置の性能は入出力
について限られているかもしれない。しかし、当業者
は、付加再構成可能プロセッサ(ARP)装置が特定の
入出力問題を加速処理するために構成できることを認め
るであろう。しかし、付加再構成可能プロセッサ(AR
P)装置全体は単一の特定の問題について構成されてい
るので、付加再構成可能プロセッサ(ARP)装置が入
出力処理とデータ処理について互いに悪影響を与えずに
均衡をとることはできない。さらに、付加再構成可能プ
ロセッサ(ARP)装置は割込み処理のための手段を提
供しない。付加再構成可能プロセッサ(ARP)装置は
計算アクセラレーションを最大化するのに向けられてい
るので、付加再構成可能プロセッサ(ARP)に関する
開示内容ではこのような割込みメカニズムは述べられて
おらず、割込みは計算加速に否定的な影響を与える。
An add-on reconfigurable processor (ARP) device functions as a computation accelerator and generally cannot perform independent input / output (I / O) processing. Normally,
Additional reconfigurable processor (ARP) devices require host interaction for I / O processing. Thus, the performance of an additively reconfigurable processor (ARP) device may be limited in input and output. However, those skilled in the art will recognize that additional reconfigurable processor (ARP) devices can be configured to accelerate certain input / output problems. However, additional reconfigurable processors (AR
P) Since the entire device is configured for a single particular problem, additive reconfigurable processor (ARP) devices cannot balance input / output processing and data processing without adversely affecting each other. Further, additional reconfigurable processor (ARP) devices do not provide a means for interrupt handling. Since additional reconfigurable processor (ARP) devices are aimed at maximizing computational acceleration, the disclosure of additional reconfigurable processor (ARP) does not mention such an interrupt mechanism, and Has a negative effect on computational acceleration.

【0018】<第4の欠点>付加再構成可能プロセッサ
(ARP)アーキテクチャの第4の欠点は、付加再構成
可能プロセッサ(ARP)装置を用いて利用するのが困
難な固有のデータ並列性を有するソフトウェアアプリケ
ーションが存在するために生じる。
<Fourth Disadvantage> A fourth disadvantage of the additively reconfigurable processor (ARP) architecture is that it has inherent data parallelism that is difficult to use with additively reconfigurable processor (ARP) devices. Caused by the presence of software applications.

【0019】きわめて大規模なネットリストのネットネ
ーム記号導出が必要とされるときには、ハードウェア記
述言語(HDL)コンパイルアプリケーションがこのよ
うな例の1つとして挙げられる。
A hardware description language (HDL) compilation application is one such example when very large netlists need to be deduced for netname symbols.

【0020】<第5の欠点>付加再構成可能プロセッサ
(ARP)アーキテクチャの第5の欠点は、これのアー
キテクチャが基本的にSIMD(Single Instruction S
tream Multiple Data Stream)コンピュータアーキテク
チャモデルである点である。
<Fifth Disadvantage> A fifth disadvantage of the additional reconfigurable processor (ARP) architecture is that its architecture is basically SIMD (Single Instruction S
(tream Multiple Data Stream) is a computer architecture model.

【0021】したがって、付加再構成可能プロセッサ
(ARP)アーキテクチャは、1つまたはそれ以上の革
新的先行技術の非再構成システムと比べ、アーキテクチ
ャとして効率的ではない。付加再構成可能プロセッサ
(ARP)システムは、各特定の構成例について、利用
できる再構成ハードウェアが提供できるのと同じ程度の
計算能力について、プログラム実行のプロセスのほんの
一部、主として算術計算のための演算ロジックしか反映
していない。これに対して、1971年のFairchildで
のSYMBOLマシンのシステム設計では、コンピュー
タ全体がプログラムの実行の各局面について一意的なハ
ードウェアコンテクストを使用している。結果として、
付加再構成可能プロセッサ(ARP)システムが開示し
ているホスト部分を含めて、SYMBOLはコンピュー
タのシステムアプリケーションについてのすべての構成
部分を含むこととなった。
Accordingly, the additively reconfigurable processor (ARP) architecture is not as efficient as an architecture as compared to one or more innovative prior art non-reconfigurable systems. An additive reconfigurable processor (ARP) system provides, for each particular configuration example, only a small part of the process of executing a program, primarily arithmetic, for the same amount of computing power that available reconfigurable hardware can provide. Only reflects the calculation logic. In contrast, in the system design of the SYMBOL machine at Fairchild in 1971, the entire computer uses a unique hardware context for each phase of program execution. as a result,
SYMBOL will include all components for computer system applications, including the host portion disclosed by the Additive Reconfigurable Processor (ARP) system.

【0022】<その他の欠点>付加再構成可能プロセッ
サ(ARP)アーキテクチャにはその他の欠点もある。
Other Disadvantages The additional reconfigurable processor (ARP) architecture has other disadvantages.

【0023】たとえば、付加再構成可能プロセッサ(A
RP)装置は多重再構成論理装置に独立したタイミング
を与えるための有効な手段を持っていない。同様に、カ
スケード接続された付加再構成可能プロセッサ(AR
P)装置には、独立してタイミング決定された装置を提
供するための有効なクロック分散手段を持っていない。
別の例としては、実行時間と、アクセラレーションを試
みるソースコード文とを正確に相関させることが困難な
ことがある。ネットシステムクロックレートを正確に算
出するためには、ハードウェア記述言語(HDL)コン
パイルのあと、コンピュータ支援設計(CAD:Comput
er‐Aided Design)手段で付加再構成可能プロセッサ
(ARP)装置をモデル化しなければならないが、この
ような基本パラメータへの到達は時間のかかるプロセス
である。
For example, an additional reconfigurable processor (A
RP) devices have no effective means to provide independent timing to multiple reconfigurable logic devices. Similarly, a cascaded additional reconfigurable processor (AR
P) Devices do not have effective clock distribution means to provide independently timed devices.
As another example, it may be difficult to accurately correlate execution time with the source code statement attempting to accelerate. In order to accurately calculate the net system clock rate, it is necessary to compile a hardware description language (HDL) and then execute a computer-aided design (CAD).
The er-Aided Design means must be used to model additional reconfigurable processor (ARP) devices, but reaching such basic parameters is a time consuming process.

【0024】従来のアーキテクチャで同様に重要な問題
は、それらが仮想または共有メモリを使用していること
である。この開示内容は統合されたアドレススペースを
使用するということであり、これによって、より複雑な
アドレス指定演算が必要となり、そのためメモリアクセ
スが遅くなり、効率が低下する。たとえば仮想メモリを
用いてシステム内のメモリ装置の個々のビットにアクセ
スするには、まずメモリの物理的アドレススペースを論
理アドレスに区分し、次に仮想アドレスをその論理アド
レスにマッピングしなければならない。このようにして
ようやくメモリの各ビットにアクセスすることができ
る。さらに共有メモリシステムでは、プロセッサは通常
はメモリにアクセスを許容する前にアドレス確認演算を
実行するため、メモリ演算はさらに複雑になる。最後に
プロセッサは、ある種の優先度決定システムを提供する
ことにより、メモリの同じ領域に同時にアクセスしよう
とする複数のプロセスの間で調整(仲裁)を行わなけれ
ばならない。
An equally important problem with conventional architectures is that they use virtual or shared memory. The disclosure discloses the use of a unified address space, which requires more complex addressing operations, which slows down memory access and reduces efficiency. For example, to access individual bits of a memory device in a system using virtual memory, the physical address space of the memory must first be partitioned into logical addresses, and then the virtual addresses must be mapped to the logical addresses. Thus, each bit of the memory can be finally accessed. Further, in shared memory systems, memory operations are further complicated because the processor typically performs address confirmation operations before allowing access to the memory. Finally, the processor must provide coordination (arbitration) between multiple processes attempting to simultaneously access the same area of memory by providing some sort of prioritization system.

【0025】共有メモリ及び仮想メモリを使用すること
により起こる多くの問題に対処するために、多くの従来
型のシステムはメモリ管理システム(MMU:Memory M
anagement Units)を用いて、論理アドレスの仮想アド
レスへの変換などのメモリ管理機能のほとんど実行して
いる。しかし、メモリ管理システム(MMU)/ソフト
ウェア相互作用により、メモリアクセス演算はさらに複
雑になる。さらにメモリ管理システム(MMU)は、実
行できる演算の種類がきわめて限定されている。メモリ
管理システム(MMU)は、割込みを扱うことができ
ず、メッセージを待ち行列に待機させることができず、
また複雑なアドレス指定演算を実行することができない
ため、すべてプロセッサが実行しなければならない。多
重並列プロセッサを有するコンピュータアーキテクチャ
で共有メモリまたは仮想メモリシステムを用いると、上
記のような欠点がさらに拡大される。ハードウェア/ソ
フトウェア相互作用が上に述べたように管理されなけれ
ばならないばかりでなく、共有メモリにアクセスしよう
とする多重プロセッサに応じてメモリ内のデータのコヒ
ーレント性と一致性を、ソフトウェア及びハードウェア
の両方によって維持しなければならない。プロセッサを
追加すると、仮想アドレスの論理アドレスへの変換はさ
らに困難となる。メモリアクセス演算におけるこうした
複雑性によってシステム能力が必然的に低下し、プロセ
ッサを追加しシステムの規模が大きくなればなるほどこ
の能力低下は大幅なものとなる。
To address many of the problems caused by using shared and virtual memory, many conventional systems use a memory management system (MMU).
Most of the memory management functions such as conversion of a logical address to a virtual address are performed by using an anagement unit. However, the memory management operation (MMU) / software interaction further complicates the memory access operation. Furthermore, the types of operations that can be performed by a memory management system (MMU) are extremely limited. The memory management system (MMU) cannot handle interrupts, cannot queue messages,
Also, since complex addressing operations cannot be performed, all must be performed by the processor. The use of a shared memory or virtual memory system in a computer architecture having multiple parallel processors further amplifies the disadvantages described above. Not only must the hardware / software interaction be managed as described above, but also the coherency and consistency of the data in memory depending on the multiple processors attempting to access the shared memory, software and hardware Must be maintained by both. With the addition of processors, the translation of virtual addresses to logical addresses becomes more difficult. Such complexity in memory access operations necessarily reduces system capacity, and the more processors are added and the size of the system increases, the greater the reduction in capacity.

【0026】従来型のシステムの一例は、キャッシュコ
ヒーレント、非一様メモリアクセス(ccNUMA:No
n-Uniform Memory Access)コンピュータアーキテクチ
ャである。非一様メモリアクセス(ccNUMA)マシ
ンは、キャッシュ制御装置やクロスバー切替装置などの
複雑で高価なハードウェアを使用し、このメモリは多重
プロセッサにより実際には共有されているとしても、個
々の独立したCPUについて単一のアドレススペースの
幻影(仮想スペース)を維持する。非一様メモリアクセ
ス(ccNUMA)はやや拡張性があるが、この拡張性
は、システム内でプロセッサを緊密に結合させるために
ハードウェアを追加することによって達成される。この
種のシステムは、科学的計算での有限要素グリッドの場
合のように、共有メモリ入出力演算のためきわめて広い
帯域幅を必要とする単一のプログラムイメージが共有さ
れている計算環境で用いられると一層有利である。さら
に非一様メモリアクセス(ccNUMA)は、プロセッ
サの特性が互いに類似していないようなシステムでは役
に立たない。非一様メモリアクセス(ccNUMA)ア
ーキテクチャでは、追加される各プロセッサが既存のプ
ロセッサと同種のものでなければならない。したがっ
て、プロセッサを異なる機能を実行させるために最適化
し、互いに異なった作動を行うシステムでは、非一様メ
モリアクセス(ccNUMA)アーキテクチャは有効な
解決策とはならない。最後に、従来型のシステムでは、
標準的メモリアドレススキームのみがシステム内のメモ
リをアドレス指定するのに用いられる。
One example of a conventional system is a cache coherent, non-uniform memory access (ccNUMA: No
n-Uniform Memory Access) computer architecture. Non-uniform memory access (ccNUMA) machines use complex and expensive hardware, such as cache controllers and crossbar switches, which are individually shared, even though they are actually shared by multiple processors. A single address space phantom (virtual space) is maintained for a given CPU. Non-uniform memory access (ccNUMA) is somewhat scalable, but this scalability is achieved by adding hardware to tightly couple processors in the system. This type of system is used in computing environments where a single program image is required that requires extremely high bandwidth for shared memory I / O operations, such as the case of finite element grids in scientific computing. This is more advantageous. Further, non-uniform memory access (ccNUMA) is useless in systems where the characteristics of the processors are not similar to each other. In a non-uniform memory access (ccNUMA) architecture, each processor added must be of the same type as an existing processor. Thus, in systems where processors are optimized to perform different functions and operate differently, a non-uniform memory access (ccNUMA) architecture is not a viable solution. Finally, in traditional systems,
Only standard memory addressing schemes are used to address memory in the system.

【0027】必要とされているのは、拡張性、平易性の
あるアドレス指定を提供し、またシステムの処理能力に
ほとんど影響を与えないような、並列計算環境でのメモ
リをアドレス指定するための手段である。
What is needed is a method for addressing memory in a parallel computing environment that provides scalable and easy addressing and has little effect on the processing power of the system. Means.

【0028】[0028]

【課題を解決するための手段】請求項1記載の動的再構
成計算のためのメタアドレスアーキテクチャの発明は、
動的再プログラマブル処理マシンのネットワークのため
の、データパケットのためのローカルメモリ宛先を指定
するメタアドレス指定アーキテクチャであって、それぞ
れ、割込みを実施し、地理アドレスとローカルアドレス
とを含むメタアドレスを生成し、伝送し、各メッセージ
を待機させるための一意的な地理アドレスを有する複数
のアドレス指定マシンと、それぞれ、少なくとも1個の
前記アドレス指定マシンに結合され、受取ったローカル
アドレスに応じてローカルメモリ装置からデータを記憶
し、検索し、処理する複数の動的再プログラマブル処理
マシンと、それぞれ、前記動的再プログラマブル処理マ
シンに関連している複数のメモリ装置と、前記アドレス
指定マシンに結合され、メタアドレスに含まれる地理ア
ドレスに応じて前記アドレス指定マシン相互間でデータ
をルーティングする相互結合装置と、を具備する。
According to the first aspect of the present invention, there is provided a meta-address architecture for dynamic reconfiguration calculation.
A meta-addressing architecture for specifying a local memory destination for data packets for a network of dynamically reprogrammable processing machines, each implementing an interrupt and generating a meta-address including a geographic address and a local address. A plurality of addressing machines having a unique geographical address for transmitting, waiting for each message, and a local memory device each coupled to at least one of said addressing machines and responsive to a received local address A plurality of dynamically reprogrammable processing machines for storing, retrieving, and processing data from a plurality of memory devices each associated with the dynamically reprogrammable processing machine; and Previous depending on the geographic address included in the address Comprising a mutual coupling device that routes data between addressing machines each other.

【0029】請求項2記載の発明は、請求項1記載の動
的再構成計算のためのメタアドレスアーキテクチャにお
いて、少なくとも1個の前記アドレス指定マシンが、受
取ったメタアドレスを地理アドレスとローカルアドレス
とに復号するためのアドレス復号器と、前記動的再プロ
グラマブル処理マシンと前記ローカルメモリ装置と前記
アドレス復号器とに結合され、前記動的再プログラマブ
ル処理マシンからの無条件命令の受領に応じて前記ロー
カルメモリからメタアドレス情報を検索し、検索したメ
タアドレスに応じてデータパケットを組立て、前記アド
レス復号器から地理アドレスとローカルアドレスとを受
取り、復号した地理アドレスが関連地理アドレスに対応
するとの決定に応じて前記動的再プログラマブル処理マ
シンにデータパケットを伝送するための制御装置と、を
具備する。
According to a second aspect of the present invention, in the meta-address architecture for dynamic reconfiguration calculation according to the first aspect, at least one of the addressing machines converts a received meta-address into a geographical address and a local address. An address decoder for decoding to the dynamic reprogrammable processing machine, the local memory device and the address decoder, and responsive to receipt of an unconditional instruction from the dynamic reprogrammable processing machine. Retrieving the meta address information from the local memory, assembling a data packet according to the retrieved meta address, receiving the geographic address and the local address from the address decoder, and determining that the decoded geographic address corresponds to the relevant geographic address. Data packet to the dynamic reprogrammable processing machine Comprising a control unit for transmitting and.

【0030】請求項3記載の発明は、請求項1記載の動
的再構成計算のためのメタアドレスアーキテクチャにお
いて、前記動的再プログラマブル処理マシンに結合さ
れ、結合されている前記動的再プログラマブル処理マシ
ンについての前記地理アドレスを記憶する複数のアーキ
テクチャ記述メモリ装置を具備する。
According to a third aspect of the present invention, in the meta-address architecture for dynamic reconfiguration calculation according to the first aspect, the dynamic reprogrammable processing is coupled to the dynamic reprogrammable processing machine. A plurality of architectural description memory devices for storing said geographic addresses for machines.

【0031】請求項4記載の発明は、請求項2記載の動
的再構成計算のためのメタアドレスアーキテクチャにお
いて、前記アドレス指定マシンが、入出力装置に結合さ
れた割込みハンドラーをさらに含み、この割込みハンド
ラーが、割込み要求を識別するための認識装置と、割込
み要求の有効性を検証するために、識別した割込み要求
を割込み要求の記憶されたリストと比較するためのコン
パレータと、記憶された割込み処理命令に従って有効性
が確認された割込み要求を処理するための割込みロジッ
クと、を具備する。
According to a fourth aspect of the present invention, in the meta-address architecture for dynamic reconfiguration calculation according to the second aspect, the addressing machine further includes an interrupt handler coupled to an input / output device. A handler for identifying the interrupt request, a comparator for comparing the identified interrupt request with a stored list of interrupt requests to verify the validity of the interrupt request, and a stored interrupt process Interrupt logic for processing an interrupt request that has been validated according to the instruction.

【0032】請求項5記載の発明は、請求項1記載の動
的再構成計算のためのメタアドレスアーキテクチャにお
いて、メタアドレスが80ビット幅であり、地理アドレ
スが16ビット幅であり、ローカルアドレスが64ビッ
ト幅である。
According to a fifth aspect of the present invention, in the meta-address architecture for dynamic reconfiguration calculation according to the first aspect, the meta-address is 80 bits wide, the geographic address is 16 bits wide, and the local address is It is 64 bits wide.

【0033】請求項6記載のアドレス指定方法の発明
は、ローカルアドレス指定マシンとローカルメモリとに
結合されたローカル処理マシンを用い、前記ローカルア
ドレス指定マシンが、一意的な地理識別によって識別さ
れ、相互結合装置によって相互結合されている並列プロ
セッサアーキテクチャ内で命令を処理するための方法で
あって、プログラム命令を受取る段階と、受取ったプロ
グラム命令が遠隔演算を要求しているかどうかを決定す
る段階と、要求されている遠隔演算に応じて、前記ロー
カルメモリに遠隔コンポーネント情報を記憶する段階
と、遠隔演算を開始するために、前記ローカルアドレス
指定マシンに無条件命令を発する段階と、を具備する。
[0033] The invention of an addressing method according to claim 6 uses a local processing machine coupled to a local addressing machine and a local memory, wherein the local addressing machine is identified by a unique geographical identification and is mutually exclusive. A method for processing instructions in a parallel processor architecture interconnected by a coupling device, the method comprising: receiving a program instruction; determining whether the received program instruction requires a remote operation; Storing remote component information in the local memory in response to the remote operation being requested; and issuing unconditional instructions to the local addressing machine to initiate the remote operation.

【0034】請求項7記載の発明は、請求項6記載のア
ドレス指定方法において、前記ローカルアドレス指定マ
シンは、前記ローカル処理マシンから無条件命令を受取
る段階と、ローカル地理アドレスと、遠隔地理アドレス
と、遠隔ローカルメモリアドレスとを含んでいる遠隔コ
ンポーネント情報を前記ローカルメモリから検索する段
階と、検索した遠隔コンポーネント情報に応じてメタア
ドレスを生成する段階と、生成したメタアドレスに応じ
てデータパケットを生成する段階と、データパケットを
相互結合装置に送る段階と、を実行する。
According to a seventh aspect of the present invention, in the addressing method according to the sixth aspect, the local addressing machine receives an unconditional instruction from the local processing machine; Retrieving remote component information from the local memory including a remote local memory address; generating a meta-address in response to the retrieved remote component information; and generating a data packet in response to the generated meta-address. And sending the data packet to the interconnection device.

【0035】請求項8記載のアドレス指定方法の発明
は、ローカル処理装置がローカルメモリとローカルアド
レスマシンと相互結合装置とに結合されている並列計算
環境でメモリをアドレス指定するためのアドレス指定方
法であって、前記ローカルアドレスマシンは、データパ
ケットを受取る段階と、データパケットを地理アドレス
とローカルアドレスとに復号する段階と、地理アドレス
を関連地理アドレスと比較する段階と、関連地理アドレ
スにマッチする地理アドレスに応じてデータパケットを
ローカルプロセッサに伝送する段階と、を実行する。
The invention of an addressing method according to claim 8 is an addressing method for addressing a memory in a parallel computing environment in which a local processing unit is connected to a local memory, a local address machine and an interconnecting unit. Wherein the local address machine receives a data packet, decodes the data packet into a geographical address and a local address, compares the geographical address with an associated geographical address, Transmitting the data packet to the local processor according to the address.

【0036】請求項9記載の発明は、請求項8記載のア
ドレス指定方法において、データパケットを前記ローカ
ルプロセッサに伝送する段階は、前記ローカルプロセッ
サによって処理するためにデータパケットを待ち行列に
記憶する段階を含む。
According to a ninth aspect of the present invention, in the addressing method according to the eighth aspect, the step of transmitting a data packet to the local processor includes the step of storing the data packet in a queue for processing by the local processor. including.

【0037】請求項10記載の発明は、請求項8記載の
アドレス指定方法において、前記ローカルプロセッサか
らデータを受取る段階と、受取ったデータに応じて前記
ローカルメモリから遠隔演算データを検索する段階と、
検索したデータからメタアドレスを生成する段階と、生
成したメタアドレスに応じてデータパケットを生成する
段階と、データパケットを前記相互結合装置に伝送する
段階と、を具備する。
According to a tenth aspect of the present invention, in the addressing method according to the eighth aspect, a step of receiving data from the local processor, and a step of retrieving remote operation data from the local memory in accordance with the received data.
Generating a meta-address from the retrieved data, generating a data packet according to the generated meta-address, and transmitting the data packet to the interconnection device.

【0038】請求項11記載の発明は、請求項10記載
のアドレス指定方法において、遠隔演算データを検索す
る段階は、遠隔地理アドレスと遠隔ローカルメモリアド
レスとを検索する段階を具備する。
In the eleventh aspect of the present invention, in the addressing method according to the tenth aspect, the step of retrieving the remote operation data includes the step of retrieving a remote geographical address and a remote local memory address.

【0039】請求項12記載の発明は、請求項11記載
のアドレス指定方法において、前記ローカルメモリから
ソース地理アドレスを検索する段階を具備する。
According to a twelfth aspect of the present invention, in the addressing method according to the eleventh aspect, a step of retrieving a source geographical address from the local memory is provided.

【0040】請求項13記載の発明は、請求項12記載
のアドレス指定方法において、各プロセッサに結合され
て結合されている前記ローカルプロセッサのための地理
アドレスを記憶するアーキテクチャ記述メモリを用い、
このアーキテクチャ記述メモリからソース地理アドレス
を検索する。
According to a thirteenth aspect of the present invention, in the addressing method according to the twelfth aspect, an architecture description memory for storing a geographical address for the local processor coupled to each processor is provided,
Retrieve the source geographic address from this architecture description memory.

【0041】請求項14記載のアドレス指定方法の発明
は、ローカルアドレス指定マシンとローカルメモリとに
結合されたローカル処理マシンを用い、前記ローカルア
ドレス指定マシンが、一意的な地理識別により識別さ
れ、相互結合装置によって相互結合されている並列プロ
セッサアーキテクチャ内で命令を処理するための方法で
あって、前記ローカルアドレス指定マシンは、前記ロー
カル処理マシンから無条件命令を受取る段階と、ローカ
ル地理アドレスと、遠隔地理アドレスと、遠隔ローカル
メモリアドレスとを含んでいる遠隔コンポーネント情報
を前記ローカルメモリから検索する段階と、検索した遠
隔コンポーネント情報に応じてメタアドレスを生成する
段階と、生成したメタアドレスに応じてデータパケット
を生成する段階と、データパケットを相互結合装置に送
る段階と、を具備する。
[0041] The invention of an addressing method according to claim 14 uses a local processing machine coupled to a local addressing machine and a local memory, wherein the local addressing machine is identified by a unique geographical identification, and A method for processing instructions in a parallel processor architecture interconnected by a coupling device, the local addressing machine receiving an unconditional instruction from the local processing machine; a local geographical address; Retrieving remote component information including a geographic address and a remote local memory address from the local memory; generating a metaaddress in response to the retrieved remote component information; and storing data in response to the generated metaaddress. Generating a packet; Comprising the steps of sending to the interconnecting device Tapaketto, the.

【0042】請求項15記載のアドレス指定方法の発明
は、ローカル処理装置がローカルメモリとローカルアド
レスマシンと相互結合装置とに結合されている並列計算
環境でメモリをアドレス指定するためのアドレス指定方
法であって、前記ローカルアドレスマシンは、ローカル
プロセッサからデータを受取る段階と、受取ったデータ
に応じて前記ローカルメモリから遠隔演算データを検索
する段階と、検索したデータからメタアドレスを生成す
る段階と、生成したメタアドレスに応じてデータパケッ
トを生成する段階と、データパケットを相互結合装置に
伝送する段階と、を実行する。
The invention of an addressing method according to claim 15 is an addressing method for addressing a memory in a parallel computing environment in which a local processing unit is connected to a local memory, a local address machine and an interconnecting unit. Receiving the data from a local processor, retrieving remote operation data from the local memory in accordance with the received data, generating a meta-address from the retrieved data; Generating a data packet according to the meta-address and transmitting the data packet to the interconnection device.

【0043】[0043]

【発明の実施の形態】<概要>本発明は、1組のSマシ
ンと、各Sマシンに対応するTマシンと、汎用相互結合
マトリックス(GPIM:General-Purpose Interconne
ct Matrix)と、1組の入出力Tマシンと、1組の入出
力装置と、マスタタイムベース装置とが、拡張性、並
列、動的再構成計算のためのシステムを形成する。各S
マシンは、メモリと、第1ローカルタイムベース装置
と、動的再構成処理装置(DRPU:Dynamically Reco
nfigurable Process unit)とを含む動的再構成コンピ
ュータである。動的再構成処理装置(DRPU)は、命
令取出し装置(IFU:InstructionFetch Unit)とし
て構成された再プログラマブル論理装置と、データ演算
装置(DOU:Data Operate unit)と、アドレス演算
装置(AOU:Address OperateUnit)とを用いて実装
され、これらはそれぞれ再構成割込みまたは1組のプロ
グラム命令に埋込まれた再構成命令の選択に応じてプロ
グラム実行中に選択的に再構成される。各再構成割込み
と各再構成命令は、特定の命令セットアーキテクチャ
(ISA:Instruction Set Architecture)の実装のた
めに最適化された動的再構成処理装置(DRPU)ハー
ドウェア編成を指定する構成データセットを引照する。
命令取出し装置(IFU)は、再構成演算と、命令取り
出し・復号演算と、メモリアクセス演算とを指示し、命
令の実行を容易にするために制御信号をデータ演算装置
(DOU)とアドレス演算装置(AOU)とに発する。
データ演算装置(DOU)はデータ演算を実行し、アド
レス演算装置(AOU)はアドレス演算を実行する。各
Tマシンは、共通インタフェース制御装置(CICU:
Common Interface and Control Unit)と、1個または
それ以上の相互結合入出力装置と、第2ローカルタイム
ベース装置とを含むデータ転送装置である。汎用相互結
合マトリックス(GPIM)は、Tマシン相互間の並列
通信を容易に行えるようにする拡張性相互結合ネットワ
ークである。この1組のTマシンと汎用相互結合マトリ
ックス(GPIM)によって、Sマシン間の並列通信が
容易に行われる。またTマシンは、ネットワークのSマ
シン相互間のデータの転送を制御し、要求されるアドレ
ス指定演算を提供する。メタアドレスは、各Sマシンに
拡張性ビットアドレス指定能力を提供するのに用いられ
る。
DESCRIPTION OF THE PREFERRED EMBODIMENTS <Overview> The present invention provides a set of S machines, a T machine corresponding to each S machine, and a general-purpose interconnect matrix (GPIM).
ct Matrix), a set of input / output T machines, a set of input / output devices, and a master timebase device form a system for scalable, parallel, dynamic reconfiguration calculations. Each S
The machine includes a memory, a first local time base device, and a dynamically reconfigurable processing device (DRPU).
nfigurable Process unit). The dynamic reconfiguration processor (DRPU) includes a reprogrammable logic device configured as an instruction fetch unit (IFU: Instruction Fetch Unit), a data operation unit (DOU: Data Operate unit), and an address operation unit (AOU: Address OperateUnit). ), Which are selectively reconfigured during program execution in response to selection of a reconfiguration interrupt or a reconfiguration instruction embedded in a set of program instructions, respectively. Each reconfiguration interrupt and each reconfiguration instruction is a configuration data set that specifies a dynamic reconfiguration processor (DRPU) hardware organization optimized for the implementation of a particular instruction set architecture (ISA). To illuminate.
An instruction fetch unit (IFU) instructs a reconfiguration operation, an instruction fetch / decode operation, and a memory access operation, and sends control signals to a data operation unit (DOU) and an address operation unit in order to facilitate execution of an instruction. (AOU).
The data operation unit (DOU) executes data operation, and the address operation unit (AOU) executes address operation. Each T machine has a common interface controller (CICU:
A data transfer device including a common interface and control unit, one or more interconnected input / output devices, and a second local time base device. The Generic Interconnect Matrix (GPIM) is an extensible interconnect network that facilitates parallel communication between T machines. This set of T machines and a general interconnect matrix (GPIM) facilitate parallel communication between S machines. The T machines also control the transfer of data between the S machines in the network and provide the required addressing operations. The meta-address is used to provide scalable bit addressability to each S-machine.

【0044】<具体的態様>図1は、本発明に基づいて
構築された、拡張性、並列、動的再構成計算のためのシ
ステム10の好ましい実施例の構成図である。システム
10は、少なくとも1個のSマシン12と、各Sマシン
12に対応するTマシン14と、汎用相互結合マトリッ
クス(GPIM)16と、少なくとも1個の入出力Tマ
シン18と、1個またはそれ以上の入出力装置20と、
マスタタイムベース装置22とを含んでいることが好ま
しい。好ましい実施例では、システム10は、多重Sマ
シン12と、したがって多重Tマシン14と、多重入出
力Tマシン18と、多重入出力装置20とを含んでい
る。
<Specific Embodiment> FIG. 1 is a block diagram of a preferred embodiment of a system 10 for scalable, parallel, dynamic reconfiguration calculation constructed according to the present invention. The system 10 includes at least one S machine 12, a T machine 14 corresponding to each S machine 12, a general interconnect matrix (GPIM) 16, at least one input / output T machine 18, and one or more With the above input / output device 20,
Preferably, a master time base device 22 is included. In a preferred embodiment, system 10 includes multiple S-machines 12, and thus multiple T-machines 14, multiple I / O T-machines 18, and multiple I / O devices 20.

【0045】Sマシン12と、Tマシン14と、入出力
Tマシン18とは、それぞれマスタタイムベース装置2
2のタイミング出力部に結合されたマスタタイミング入
力部を含んでいる。各Sマシン12は、それに対応する
Tマシン14に結合された入力部と出力部とを含んでい
る。各Tマシン14は、それに対応するSマシン12に
結合された入力部と出力部の他に、汎用相互結合マトリ
ックス(GPIM)16に結合されたルーティング入力
部とルーティング出力部とを含んでいる。同様に、各入
出力Tマシン18は、入出力装置20に結合された入力
部と出力部とを含み、また汎用相互結合マトリックス
(GPIM)16に結合されたルーティング入力部とル
ーティング出力部とを含んでいる。
The S machine 12, the T machine 14, and the input / output T machine 18 are connected to the master time base unit 2 respectively.
And a master timing input coupled to the second timing output. Each S-machine 12 includes an input and an output coupled to its corresponding T-machine 14. Each T machine 14 includes a routing input and a routing output coupled to a general interconnect matrix (GPIM) 16 in addition to an input and an output coupled to its corresponding S machine 12. Similarly, each input / output T machine 18 includes an input and an output coupled to an input / output device 20 and has a routing input and a routing output coupled to a general interconnect matrix (GPIM) 16. Contains.

【0046】下記に詳細に説明するように、各Sマシン
12は動的再構成コンピュータである。汎用相互結合マ
トリックス(GPIM)16は、Tマシン14間の通信
を容易に行えるようにする2点間並列相互結合手段を形
成している。Tマシン14と汎用相互結合マトリックス
(GPIM)16は、Sマシン12間のデータ転送のた
めの2点間並列相互結合手段を形成している。同様に、
汎用相互結合マトリックス(GPIM)16と、1組の
Tマシン14と、1組の入出力Tマシン18とは、Sマ
シン12と各入出力装置20との間の入出力転送のため
の2点間並列相互結合手段を形成している。マスタタイ
ムベース装置22は、各Sマシン12と各Tマシン14
にマスタタイミング信号を送る発振器を含んでいる。
As described in detail below, each S machine 12 is a dynamically reconfigurable computer. A general interconnect matrix (GPIM) 16 forms a point-to-point parallel interconnect that facilitates communication between T machines 14. The T machine 14 and the general interconnect matrix (GPIM) 16 form a point-to-point parallel interconnect for data transfer between the S machines 12. Similarly,
A general-purpose interconnect matrix (GPIM) 16, a set of T machines 14, and a set of input / output T machines 18 provide two points for input / output transfer between the S machine 12 and each input / output device 20. An inter-parallel interconnection means is formed. The master time base device 22 includes each S machine 12 and each T machine 14
And an oscillator for sending a master timing signal to the CPU.

【0047】模範実施例では、各Sマシン12は、64
メガバイトのランダムアクセスメモリ(RAM)に結合
されたXilinx XC4013(Xilinx, Inc., サ
ンノゼ,カリフォルニア)フィールドプログラマブルゲ
ートアレイ(FPGA:Field Programmable Gate Arra
y)を用いて実装されている。各Tマシン14は、各入
出力Tマシン18と同様に、Xilinx XC401
3フィールドプログラマブルゲートアレイ(FPGA)
の再構成ハードウェアリソースの約50%を用いて実装
されている。汎用相互結合マトリックス(GPIM)1
6は、環状体の相互結合メッシュとして実装されてい
る。マスタタイムベース装置22は、システム全体の周
波数基準を提示するクロック分散回路に結合されたクロ
ック発振器であり、米国に特許出願された「位相同期、
フレキシブル周波数クロッキングとメッセージングのた
めのシステムと方法(System and Method for Phase-Sy
nchronous, Flexible Frequency Clocking and Messagi
ng)」に記載されている。Tマシン14と、Sマシン1
2と、入出力Tマシン18とは、拡張性コヒーレントイ
ンタフェース(SCI)を定めたANSI/IEEE規
格1596−1992に従って情報を転送するのが好ま
しい。
In the exemplary embodiment, each S machine 12 has 64
Xilinx XC4013 (Xilinx, Inc., San Jose, Calif.) Field Programmable Gate Arra (FPGA) coupled to megabytes of random access memory (RAM)
y) is implemented. Each T machine 14 is, like the input / output T machine 18, a Xilinx XC401.
3-field programmable gate array (FPGA)
Implemented using about 50% of the reconfigured hardware resources. Generic interconnect matrix (GPIM) 1
6 is implemented as an interconnected mesh of annular bodies. The master time base unit 22 is a clock oscillator coupled to a clock distribution circuit that presents a frequency reference for the entire system, and is a U.S. patent application for "phase synchronization,
System and Method for Phase-Sy for Flexible Frequency Clocking and Messaging
nchronous, Flexible Frequency Clocking and Messagi
ng) ". T machine 14 and S machine 1
2 and the input / output T machine 18 preferably transfer information according to ANSI / IEEE standard 1596-1992 which defines an extensible coherent interface (SCI).

【0048】好ましい実施例では、システム10は並列
で機能する多重Sマシン12を含んでいる。個々のSマ
シン12の構造と機能については、図2から図17を用
いて下記に詳しく説明する。図2は、Sマシン12の好
ましい実施例の構成図である。Sマシン12は、第1ロ
ーカルタイムベース装置30と、プログラム命令を実行
するための動的再構成処理装置(DRPU)32と、メ
モリ34とを含んでいる。第1ローカルタイムベース装
置30は、Sマシンのマスタタイミング入力部を形成す
るタイミング入力部を含んでいる。また第1ローカルタ
イムベース装置30は、第1ローカルタイミング信号す
なわちクロックを、第1タイミング信号ライン40を経
て動的再構成処理装置(DRPU)32のタイミング入
力部に、またメモリ34のタイミング入力部に送るタイ
ミング出力部を含んでいる。動的再構成処理装置(DR
PU)32は、メモリ制御ライン42を経てメモリ34
の制御信号入力部に結合された制御信号出力部と、アド
レスライン44を経てメモリ34のアドレス入力部に結
合されたアドレス出力部と、メモリ入出力ライン46を
経てメモリ34の双方向データポートに結合された双方
向データポートとを含んでいる。さらに動的再構成処理
装置(DRPU)32は、外部制御ライン48を経てそ
の対応するTマシン14の双方向データポートに結合さ
れた双方向データポートを含んでいる。図2に示すよう
に、メモリ制御ライン42はXビットであり、アドレス
ライン44はMビットであり、メモリ入出力ライン46
は(N×k)ビットであり、外部制御ライン48はYビ
ットである。
In the preferred embodiment, system 10 includes multiple S machines 12 functioning in parallel. The structure and function of each S machine 12 will be described in detail below with reference to FIGS. FIG. 2 is a configuration diagram of a preferred embodiment of the S machine 12. The S machine 12 includes a first local time base device 30, a dynamic reconfiguration processor (DRPU) 32 for executing a program instruction, and a memory 34. The first local time base device 30 includes a timing input forming a master timing input of the S machine. The first local time base device 30 also applies a first local timing signal or clock to a timing input of a dynamic reconfiguration processor (DRPU) 32 via a first timing signal line 40 and to a timing input of a memory 34. And a timing output unit for sending to the user. Dynamic reconfiguration processor (DR
PU) 32 is connected to a memory 34 via a memory control line 42.
A control signal output coupled to a control signal input of the memory 34, an address output coupled to an address input of the memory 34 via an address line 44, and a bidirectional data port of the memory 34 via a memory input / output line 46. And a combined bidirectional data port. In addition, the dynamic reconfiguration processor (DRPU) 32 includes a bidirectional data port coupled via an external control line 48 to a corresponding bidirectional data port of the T-machine 14. As shown in FIG. 2, the memory control line 42 is X bits, the address line 44 is M bits, and the memory input / output lines 46
Are (N × k) bits, and the external control line 48 is Y bits.

【0049】好ましい実施例では、第1ローカルタイム
ベース装置30は、マスタタイムベース装置22からマ
スタタイミング信号を受取る。第1ローカルタイムベー
ス装置30は、マスタタイミング信号から第1ローカル
タイミング信号を生成し、第1ローカルタイミング信号
を動的再構成処理装置(DRPU)32とメモリ34に
送る。好ましい実施例では、第1ローカルタイミング信
号は個々のSマシン12ごとに異なる。したがって、所
定のSマシン12内の動的再構成処理装置(DRPU)
32とメモリ34は、他のSマシン12内の動的再構成
処理装置(DRPU)32とメモリ34とは独立したク
ロックレートで機能する。第1ローカルタイミング信号
は、マスタタイミング信号と位相同期であることが好ま
しい。好ましい実施例では、第1ローカルタイムベース
装置30は、再構成ハードウェアリソースを用いて実装
された位相ロック検出回路を含む位相ロック周波数変換
回路を用いて実動化される。当業者は、別の実施例で、
第1ローカルタイムベース装置30がクロック分散ツリ
ーの一部として実動化できることを認めるであろう。
In the preferred embodiment, first local time base device 30 receives a master timing signal from master time base device 22. The first local time base device 30 generates a first local timing signal from the master timing signal and sends the first local timing signal to a dynamic reconfiguration processor (DRPU) 32 and a memory 34. In the preferred embodiment, the first local timing signal is different for each individual S machine 12. Therefore, a dynamic reconfiguration processing device (DRPU) in a predetermined S machine 12
32 and the memory 34 operate at a clock rate independent of the dynamic reconfiguration processing unit (DRPU) 32 and the memory 34 in the other S machines 12. Preferably, the first local timing signal is in phase synchronization with the master timing signal. In a preferred embodiment, the first local time base device 30 is implemented using a phase locked frequency conversion circuit including a phase locked detection circuit implemented using reconfigured hardware resources. One skilled in the art will appreciate that in another embodiment,
It will be appreciated that the first local time base device 30 can be implemented as part of a clock distribution tree.

【0050】メモリ34は、RAMとして実動化され、
またプログラム命令と、プログラムデータと、動的再構
成処理装置(DRPU)32のための構成データとを記
憶することが好ましい。任意のSマシン12のメモリ3
4は、汎用相互結合マトリックス(GPIM)16を経
てシステム10内の他のSマシン12にアクセスできる
ことが好ましい。さらに各Sマシン12には、均一のメ
モリアドレススペースがあることが好ましい。好ましい
実施例では、メモリ34に記憶されたプログラム命令
は、動的再構成処理装置(DRPU)32へ向けられた
再構成指示を選択的に含んでいる。図3は、再構成指示
を含む模範プログラムリスト50である。図3に示すよ
うに、模範プログラムリスト50は1組の外部ループ部
分52と、第1内部ループ部分54と、第2内部ループ
部分55と、第3内部ループ部分56と、第4内部ルー
プ部分57と、第5内部ループ部分58とを含んでい
る。当業者は、「内部ループ」という用語が特定のセッ
トの関連演算を実行するプログラムの反復部分を指し、
また「外部ループ」という用語が、主として汎用演算を
実行し、及び/または一つの内部ループ部分からもう一
つの内部ループ部分へ制御を転送するプログラムの部分
を指すことを容易に認めるであろう。一般に、プログラ
ムの内部ループ部分54、55、56、57、58は、
潜在的に大きなデータセットについて特定の演算を実行
する。たとえば画像処理アプリケーションでは、第1内
部ループ部分54は画像データについてカラーフォーマ
ット変換演算を実行し、第2〜第5内部ループ部分5
4、55、56、57、58は、線形フィルタリング演
算、畳込み演算、パターン探索演算、及び圧縮演算を実
行することになる。当業者は、内部ループ部分55、5
6、57、58の連続シーケンスがソフトウェアパイプ
ラインとして考えられることを認めるであろう。各外部
ループ部分52は、データの入出力について責任を有
し、及び/または第1内部ループ部分54から第2内部
ループ部分55へのデータ及び制御の転送を指示する。
当業者は、さらに、所定の内部ループ部分54、55、
56、57、58が一つまたはそれ以上の再構成指示を
含むことを認めるであろう。一般に任意のプログラムに
ついて、プログラムリスト50の外部ループ部分52は
各種の汎用命令を含むが、プログラムリスト50の内部
ループ54、56は特定の命令セットを実行するのに用
いられる比較的種類の少ない命令で構成される。
The memory 34 is implemented as a RAM,
It is also preferable to store program instructions, program data, and configuration data for a dynamic reconfiguration processor (DRPU) 32. Memory 3 of any S machine 12
Preferably, 4 has access to other S machines 12 in system 10 via a general interconnect matrix (GPIM) 16. Further, each S machine 12 preferably has a uniform memory address space. In the preferred embodiment, the program instructions stored in memory 34 optionally include reconfiguration instructions directed to a dynamic reconfiguration processor (DRPU) 32. FIG. 3 is an exemplary program list 50 including a reconfiguration instruction. As shown in FIG. 3, the exemplary program list 50 includes a set of an outer loop portion 52, a first inner loop portion 54, a second inner loop portion 55, a third inner loop portion 56, and a fourth inner loop portion. 57 and a fifth inner loop portion 58. One skilled in the art will recognize that the term "inner loop" refers to an iterative portion of a program that performs a particular set of related operations,
It will also be readily appreciated that the term "outer loop" refers to a portion of a program that primarily performs general purpose operations and / or transfers control from one inner loop portion to another. Generally, the inner loop portions 54, 55, 56, 57, 58 of the program
Perform certain operations on potentially large data sets. For example, in an image processing application, the first inner loop portion 54 performs a color format conversion operation on image data, and the second to fifth inner loop portions 5
4, 55, 56, 57, and 58 perform a linear filtering operation, a convolution operation, a pattern search operation, and a compression operation. One skilled in the art will appreciate that the inner loop portions 55,5,
It will be appreciated that a continuous sequence of 6, 57, 58 can be considered as a software pipeline. Each outer loop portion 52 is responsible for inputting and outputting data and / or directs the transfer of data and control from the first inner loop portion 54 to the second inner loop portion 55.
Those skilled in the art will further appreciate that certain inner loop portions 54, 55,
It will be appreciated that 56, 57, 58 include one or more reconfiguration instructions. Generally, for any program, the outer loop portion 52 of the program list 50 contains various general-purpose instructions, while the inner loops 54, 56 of the program list 50 contain relatively few types of instructions used to execute a particular instruction set. It is composed of

【0051】模範プログラムリスト50では、第1再構
成指示は第1内部ループ部分54の開始部分に現れ、第
2再構成指示は第1内部ループ部分54の終了部分に現
れる。同様に、第3再構成指示は第2内部ループ部分5
5の開始部分に、また第4の再構成指示は第3内部ルー
プ部分56の開始部分に、第5再構成指示は第4内部ル
ープ部分57の開始部分に、第6及び第7再構成指示は
それぞれ第5内部ループ部分58の開始部分と終了部分
に現れる。各再構成指示は、特定の命令セットアーキテ
クチャ(ISA)を実動化するためのものであり、また
それに最適化された内部動的再構成処理装置(DRP
U)ハードウェア編成を指定する構成データセットを指
示することが好ましい。命令セットアーキテクチャ(I
SA)は、コンピュータをプログラムするのに用いるこ
とができる基本的なまたは中核となる命令セットであ
る。命令セットアーキテクチャ(ISA)は、命令フォ
ーマットと、操作コードと、データフォーマットと、ア
ドレス指定モードと、実行制御フラグと、プログラムア
クセス可能レジスタとを定義する。当業者は、これが命
令セットアーキテクチャ(ISA)の従来の定義に対応
することを認めるであろう。本発明では、各Sマシンの
動的再構成処理装置(DRPU)32は、各所望の命令
セットアーキテクチャ(ISA)について独自の構成デ
ータセットを用いて多重命令セットアーキテクチャ(I
SA)を直接実装するよう、迅速なランタイム構成とす
ることができる。すなわち各命令セットアーキテクチャ
(ISA)は、対応する構成データセットによって定め
られる独自の内部動的再構成処理装置(DRPU)ハー
ドウェア編成で実装される。したがって本発明では、第
1〜第5内部ループ部分54、55、56、57、58
はそれぞれ一意の命令セットアーキテクチャ(IS
A)、すなわち命令セットアーキテクチャ(ISA)
1、命令セットアーキテクチャ(ISA)2、命令セッ
トアーキテクチャ(ISA)3、命令セットアーキテク
チャ(ISA)4及び命令セットアーキテクチャ(IS
A)kに対応する。当業者は、連続命令セットアーキテ
クチャ(ISA)がそれぞれ一意である必要はないこと
を認めるであろう。したがって、命令セットアーキテク
チャ(ISA)kは命令セットアーキテクチャ(IS
A)1、命令セットアーキテクチャ(ISA)2、命令
セットアーキテクチャ(ISA)3、命令セットアーキ
テクチャ(ISA)4であってもよく、また異なる命令
セットアーキテクチャ(ISA)であっても良い。1組
の外部ループ部分52も、一意の命令セットアーキテク
チャ(ISA)、すなわち命令セットアーキテクチャ
(ISA)0に対応する。好ましい実施例では、プログ
ラムの実行中、連続した再構成指示の選択はデータ従属
的に行われる(データに応じて異なる)。特定の再構成
指示を選択すると、プログラム命令はその後、対応する
構成データセットによって指定された独自の動的再構成
処理装置(DRPU)ハードウェア構成により、対応す
る命令セットアーキテクチャ(ISA)に従って実行さ
れる。
In the exemplary program list 50, the first reconfiguration instruction appears at the start of the first inner loop portion 54, and the second reconfiguration instruction appears at the end of the first inner loop portion 54. Similarly, the third reconfiguration instruction is the second inner loop part 5
5, the fourth reconstruction instruction is at the beginning of the third inner loop part 56, the fifth reconstruction instruction is at the beginning of the fourth inner loop part 57, the sixth and seventh reconstruction instructions. Appear at the beginning and end of the fifth inner loop portion 58, respectively. Each reconfiguration instruction is for implementing a specific instruction set architecture (ISA), and an internal dynamic reconfiguration processor (DRP) optimized for it.
U) It is preferable to indicate a configuration data set that specifies the hardware organization. Instruction Set Architecture (I
SA) is a basic or core instruction set that can be used to program a computer. The instruction set architecture (ISA) defines an instruction format, an operation code, a data format, an addressing mode, an execution control flag, and a program accessible register. One skilled in the art will recognize that this corresponds to the traditional definition of an instruction set architecture (ISA). In the present invention, the dynamic reconfiguration processor (DRPU) 32 of each S machine uses a multiple instruction set architecture (I) using a unique configuration data set for each desired instruction set architecture (ISA).
A rapid runtime configuration can be implemented to implement SA) directly. That is, each instruction set architecture (ISA) is implemented with a unique internal dynamic reconfiguration processor (DRPU) hardware organization defined by a corresponding configuration data set. Therefore, in the present invention, the first to fifth inner loop portions 54, 55, 56, 57, 58
Are unique instruction set architectures (IS
A) Instruction Set Architecture (ISA)
1. Instruction Set Architecture (ISA) 2, Instruction Set Architecture (ISA) 3, Instruction Set Architecture (ISA) 4, and Instruction Set Architecture (IS)
A) Corresponds to k. Those skilled in the art will recognize that each successive instruction set architecture (ISA) need not be unique. Therefore, the instruction set architecture (ISA) k is
A) 1, an instruction set architecture (ISA) 2, an instruction set architecture (ISA) 3, an instruction set architecture (ISA) 4, or a different instruction set architecture (ISA). The set of outer loop portions 52 also corresponds to a unique instruction set architecture (ISA), ie, instruction set architecture (ISA) 0. In the preferred embodiment, during the execution of the program, the selection of successive reconfiguration instructions is made data-dependent (depending on the data). Upon selection of a particular reconfiguration instruction, the program instructions are then executed according to the corresponding instruction set architecture (ISA), with a unique Dynamic Reconfiguration Processor (DRPU) hardware configuration specified by the corresponding configuration data set. You.

【0052】本発明では、特定の命令セットアーキテク
チャ(ISA)は、命令セットアーキテクチャ(IS
A)が含む命令の数と種類に従って、内部ループ命令セ
ットアーキテクチャ(ISA)または外部ループ命令セ
ットアーキテクチャ(ISA)として分類することがで
きる。いくつかの命令を含み、汎用演算の実行に役立つ
命令セットアーキテクチャ(ISA)は外部ループ命令
セットアーキテクチャ(ISA)であり、一方、比較的
少ない命令を含み、特定の種類の命令の実行に向けられ
ている命令セットアーキテクチャ(ISA)は内部ルー
プ命令セットアーキテクチャ(ISA)である。外部ル
ープ命令セットアーキテクチャ(ISA)は汎用演算の
実行に向けられているので、プログラム命令の逐次実行
が望ましい場合に最も役に立つ。外部ループ命令セット
アーキテクチャ(ISA)の実行性能は、実行される命
令ごとのクロックサイクルで特徴付けられることが好ま
しい。これに対して、内部ループ命令セットアーキテク
チャ(ISA)は特定の種類の命令の実行に向けられて
いるので、プログラム命令の並列実行が望ましい場合に
最も役に立つ。内部ループ命令セットアーキテクチャ
(ISA)の実行性能は、クロックサイクル当たりで実
行される命令で、またはクロックサイクル当たり得られ
る計算結果で特徴付けられることが好ましい。
In the present invention, a particular instruction set architecture (ISA) is an instruction set architecture (IS).
According to the number and type of instructions included in A), they can be classified as inner loop instruction set architecture (ISA) or outer loop instruction set architecture (ISA). An instruction set architecture (ISA) that includes several instructions and is useful for performing general-purpose operations is an outer loop instruction set architecture (ISA), whereas it includes a relatively small number of instructions and is directed to executing certain types of instructions. The current instruction set architecture (ISA) is the inner loop instruction set architecture (ISA). Since the outer loop instruction set architecture (ISA) is directed to performing general purpose operations, it is most useful when sequential execution of program instructions is desired. The execution performance of the outer loop instruction set architecture (ISA) is preferably characterized by a clock cycle for each instruction executed. In contrast, the inner loop instruction set architecture (ISA) is most useful when parallel execution of program instructions is desired, as it is directed to the execution of certain types of instructions. The execution performance of the inner loop instruction set architecture (ISA) is preferably characterized by the instructions executed per clock cycle or by the computation results obtained per clock cycle.

【0053】当業者は、プログラム命令の逐次実行及び
並列実行に関するこれまでの説明が単一の動的再構成処
理装置(DRPU)32内でのプログラム命令の実行に
関連していることを認めるであろう。システム10に多
重Sマシン12が存在することによって、特定の動的再
構成処理装置(DRPU)32によって各プログラム命
令シーケンスが実行される場合、多重プログラム命令シ
ーケンスを任意の時間に並列実行することが容易にな
る。各動的再構成処理装置(DRPU)32は、特定の
時間にそれぞれ特定の内部ループ命令セットアーキテク
チャ(ISA)または外部ループ命令セットアーキテク
チャ(ISA)を実動化するための並列ハードウェアま
たは直列ハードウェアを含むように構成されている。任
意の動的再構成処理装置(DRPU)32の内部ハード
ウェア構成は、実行される一連のプログラム命令内に埋
込まれた1つまたはそれ以上の再構成指示の選択に従っ
て経時的に変化する。
Those skilled in the art will recognize that the preceding description of the sequential and parallel execution of program instructions relates to the execution of program instructions within a single dynamic reconfigurable processor (DRPU) 32. There will be. Due to the presence of multiple S-machines 12 in the system 10, if each program instruction sequence is executed by a specific dynamic reconfiguration processor (DRPU) 32, the multiple program instruction sequences can be executed in parallel at any time. It will be easier. Each dynamic reconfiguration processor (DRPU) 32 is a parallel or serial hardware for implementing a particular inner loop instruction set architecture (ISA) or outer loop instruction set architecture (ISA) at a particular time. It is configured to include hardware. The internal hardware configuration of any dynamic reconfiguration processor (DRPU) 32 changes over time according to the selection of one or more reconfiguration instructions embedded in the sequence of program instructions to be executed.

【0054】好ましい実施例では、各命令セットアーキ
テクチャ(ISA)とその対応する内部動的再構成処理
装置(DRPU)ハードウェア編成は、1組の利用可能
な再構成ハードウェアリソースに対して特定のクラスの
計算上の問題について最適の計算性能を備えるよう設計
されている。上に述べたように、また下記に詳しく説明
するように、外部ループ命令セットアーキテクチャ(I
SA)に対応する内部動的再構成処理装置(DRPU)
ハードウェア編成は、プログラム命令の逐次実行につい
て最適化されるのが好ましい。また内部ループ命令セッ
トアーキテクチャ(ISA)に対応する内部動的再構成
処理装置(DRPU)ハードウェア編成は、プログラム
命令の並列実行について最適化されるのが好ましい。模
範汎用外部ループ命令セットアーキテクチャ(ISA)
を参考資料Aに示し、畳込み演算専用の模範内部ループ
命令セットアーキテクチャ(ISA)を参考資料Bに示
す。
In the preferred embodiment, each instruction set architecture (ISA) and its corresponding internal dynamic reconfigurable processor (DRPU) hardware organization is specific to a set of available reconfigurable hardware resources. It is designed to provide optimal computational performance for class computational problems. As mentioned above and as described in more detail below, the outer loop instruction set architecture (I
Internal dynamic reconfiguration processor (DRPU) corresponding to SA)
The hardware organization is preferably optimized for the sequential execution of program instructions. Also, the internal dynamic reconfiguration processor (DRPU) hardware organization corresponding to the inner loop instruction set architecture (ISA) is preferably optimized for parallel execution of program instructions. Model Universal External Loop Instruction Set Architecture (ISA)
Is shown in Reference Material A, and Reference Material B shows an exemplary inner loop instruction set architecture (ISA) dedicated to convolution operation.

【0055】各再構成指示を除いて、図3の模範プログ
ラムリスト50は、従来の高レベル言語文、たとえばC
プログラミング言語に従って書かれた文で構成されてい
ることが好ましい。当業者は、一連のプログラム命令に
1つまたはそれ以上の再構成指示を含むには、再構成指
示に対応するために修正されたコンパイラが必要である
ことを認めるであろう。図4は、一連のプログラム命令
のコンパイル中に実行される先行技術コンパイル演算の
フローチャートである。ここで、先行技術のコンパイル
演算は、Free Software Foundation(Cambridge,マサ
チューセッツ)によって作成されたGNU Cコンパイ
ラ(GCC:GNU C Compiler)によって実行される
ものにほぼ相当している。当業者は、下記に説明する先
行技術コンパイル演算が他のコンパイラについて容易に
一般化できることを認めるであろう。先行技術コンパイ
ル演算はステップ500で始まり、コンパイラフロント
エンドが一連のプログラム命令から次の高レベル文を選
択する。次にステップ502で、コンパイラフロントエ
ンドは選択した高レベル文に対応する中間レベルのコー
ドを生成する。これは、GNU Cコンパイラ(GC
C)の場合には、レジスタ転送レベル(RTL:Regist
er Transfer Level)文に相当する。ステップ502の
あとステップ504で、コンパイラフロントエンドはさ
らに別の高レベル文を検討する必要があるかどうかを決
定する。検討する必要があれば、この好適な方法はステ
ップ500に戻る。
Except for each restructuring instruction, the exemplary program list 50 of FIG.
It is preferably composed of sentences written according to a programming language. Those skilled in the art will recognize that including one or more reconfiguration instructions in a sequence of program instructions requires a compiler modified to accommodate the reconfiguration instructions. FIG. 4 is a flowchart of a prior art compilation operation performed during compilation of a series of program instructions. Here, the compilation operation of the prior art substantially corresponds to that executed by a GNU C Compiler (GCC) created by the Free Software Foundation (Cambridge, Mass.). One skilled in the art will recognize that the prior art compilation operations described below can be easily generalized to other compilers. The prior art compilation operation begins at step 500, where the compiler front end selects the next higher level statement from a series of program instructions. Next, at step 502, the compiler front end generates intermediate-level code corresponding to the selected high-level statement. This is the GNU C compiler (GC
In the case of C), the register transfer level (RTL: Register)
er Transfer Level) statement. After step 502, at step 504, the compiler front end determines whether further high-level statements need to be considered. If so, the preferred method returns to step 500.

【0056】ステップ504でコンパイラフロントエン
ドが他のどの高レベル文も検討する必要がないと決定し
たときは、次にステップ506でコンパイラバックエン
ドが従来のレジスタ割当て演算を実行する。ステップ5
06のあとステップ508で、コンパイラバックエンド
は現在のレジスタ転送レベル(RTL)文グループ内で
検討するために次のレジスタ転送レベル(RTL)文を
選択する。次にステップ510でコンパイラバックエン
ドは現在のレジスタ転送レベル(RTL)文グループが
1組のアセンブリ言語文に翻訳することのできる方法を
定めるルールが存在するかどうかを決定する。このよう
なルールが存在しないときには、この好適な方法はステ
ップ508に戻り、現在のレジスタ転送レベル(RT
L)文グループに含めるためにさらに別のレジスタ転送
レベル(RTL)文を選択する。現在のレジスタ転送レ
ベル(RTL)文グループに対応するルールが存在する
ときには、ステップ512でコンパイラバックエンドは
そのルールに従って1組のアセンブリ言語文を生成す
る。ステップ512のあと、コンパイラバックエンドは
次のレジスタ転送レベル(RTL)文グループのコンテ
クストにおいて次のレジスタ転送レベル(RTL)文を
検討する必要があるかどうかを決定する。検討する必要
があるときには、この好適な方法はステップ508に戻
る。必要がなければ、この好適な方法は終了する。
If at step 504 the compiler front end determines that no other high level statements need to be considered, then at step 506 the compiler back end performs a conventional register allocation operation. Step 5
After 06, at step 508, the compiler backend selects the next register transfer level (RTL) statement for consideration within the current register transfer level (RTL) statement group. Next, at step 510, the compiler back end determines whether there are rules that define how the current register transfer level (RTL) statement group can be translated into a set of assembly language statements. If no such rule exists, the preferred method returns to step 508, where the current register transfer level (RT
L) Select yet another register transfer level (RTL) statement for inclusion in the statement group. If there is a rule corresponding to the current register transfer level (RTL) statement group, at step 512 the compiler back end generates a set of assembly language statements according to the rule. After step 512, the compiler backend determines whether the next register transfer level (RTL) statement needs to be considered in the context of the next register transfer level (RTL) statement group. When necessary, the preferred method returns to step 508. If not, the preferred method ends.

【0057】本発明は、動的再構成計算のためのコンパ
イラを含んでいることが好ましい。図5と図6は、動的
再構成計算のためのコンパイラによって実行される好ま
しいコンパイル演算のフローチャートである。好ましい
コンパイル演算はステップ600から始まり、動的再構
成計算のためのコンパイラのフロントエンドが一連のプ
ログラム命令内の次の高レベル文を選択する。次にステ
ップ602で動的再構成計算のためのコンパイラのフロ
ントエンドは、選択された高レベル文が再構成指示であ
るかどうかを決定する。再構成指示であるときには、ス
テップ604で動的再構成計算のためのコンパイラのフ
ロントエンドはレジスタ転送レベル(RTL)再構成文
を生成し、ステップ600に戻る。好ましい実施例で
は、レジスタ転送レベル(RTL)再構成文は命令セッ
トアーキテクチャ(ISA)識別を含む非標準レジスタ
転送レベル(RTL)文である。ステップ602で、選
択した高レベルプログラム文が再構成指示ではないとき
には、次にステップ606で動的再構成計算のためのコ
ンパイラのフロントエンドは従来の方法で1組のレジス
タ転送レベル(RTL)文を生成する。ステップ606
のあと、ステップ608で動的再構成計算のためのコン
パイラのフロントエンドはさらに別の高レベル文を検討
する必要があるかどうかを決定する。検討する必要があ
るときには、この好適な方法はステップ600に戻る。
そうでないときにはこの好適な方法はステップ610に
進み、バックエンド演算を開始する。
The present invention preferably includes a compiler for dynamic reconfiguration calculations. 5 and 6 are flowcharts of a preferred compile operation performed by a compiler for dynamic reconfiguration calculations. The preferred compilation operation begins at step 600, where the front end of the compiler for dynamic reconfiguration computation selects the next higher level statement in the sequence of program instructions. Next, in step 602, the front end of the compiler for the dynamic reconfiguration calculation determines whether the selected high-level statement is a reconfiguration instruction. If the instruction is a reconfiguration instruction, the front end of the compiler for the dynamic reconfiguration calculation generates a register transfer level (RTL) reconfiguration statement in step 604, and returns to step 600. In a preferred embodiment, the register transfer level (RTL) reconfiguration statement is a non-standard register transfer level (RTL) statement that includes an instruction set architecture (ISA) identification. If, at step 602, the selected high-level program statement is not a reconfiguration instruction, then at step 606 the front end of the compiler for dynamic reconfiguration computation uses a set of register transfer level (RTL) statements in a conventional manner. Generate Step 606
After, at step 608, the front end of the compiler for dynamic reconfiguration computation determines whether additional high-level statements need to be considered. When necessary, the preferred method returns to step 600.
Otherwise, the preferred method proceeds to step 610, where the back-end operation is started.

【0058】ステップ610で、動的再構成計算のため
のコンパイラのバックエンドはレジスタ割当て演算を実
行する。本発明の好ましい実施例では、各命令セットア
ーキテクチャ(ISA)は命令セットアーキテクチャ
(ISA)ごとのレジスタアーキテクチャが互いに一致
するように定められている。したがって、レジスタ割当
て演算は従来の方法で実行される。当業者は、一般に、
命令セットアーキテクチャ(ISA)ごとのレジスタア
ーキテクチャが互いに一致することが絶対的要件ではな
いことを認めるであろう。次にステップ612で動的再
構成計算のためのコンパイラのバックエンドは、現在検
討中のレジスタ転送レベル(RTL)文グループ内で次
のレジスタ転送レベル(RTL)文を選択する。次にス
テップ614で動的再構成計算のためのコンパイラのバ
ックエンドは、選択したレジスタ転送レベル(RTL)
文がレジスタ転送レベル(RTL)再構成文であるかど
うかを決定する。選択したレジスタ転送レベル(RT
L)文がレジスタ転送レベル(RTL)再構成文でない
ときには、ステップ618で動的再構成計算のためのコ
ンパイラのバックエンドは、現在検討中のレジスタ転送
レベル(RTL)文グループについてのルールが存在す
るかどうかを決定する。存在しなければ、この好適な方
法はステップ612に戻り、現在検討中のレジスタ転送
レベル(RTL)文グループに含めるために次のレジス
タ転送レベル(RTL)文グループを選択する。ステッ
プ618で現在検討中のレジスタ転送レベル(RTL)
文グループについてのルールが存在するときには、次に
ステップ620で動的再構成計算のためのコンパイラの
バックエンドはこのルールに従って現在検討中のレジス
タ転送レベル(RTL)文グループに対応する1組のア
センブリ言語文を生成する。ステップ620のあと、ス
テップ622で動的再構成計算のためのコンパイラのバ
ックエンドは、次のレジスタ転送レベル(RTL)文グ
ループのコンテクストにおいて、さらに別のレジスタ転
送レベル(RTL)文を検討する必要があるかどうかを
決定する。検討する必要があればこの好適な方法はステ
ップ612に戻り、そうでなければこの好適な方法は終
了する。
At step 610, the back end of the compiler for the dynamic reconfiguration calculation performs a register allocation operation. In the preferred embodiment of the present invention, each instruction set architecture (ISA) is defined such that the register architecture for each instruction set architecture (ISA) matches each other. Therefore, the register allocation operation is performed in a conventional manner. Those skilled in the art generally
It will be appreciated that it is not an absolute requirement that the register architectures per instruction set architecture (ISA) match each other. Next, at step 612, the back end of the compiler for dynamic reconfiguration computation selects the next register transfer level (RTL) statement in the register transfer level (RTL) statement group under consideration. Next, at step 614, the compiler back end for the dynamic reconfiguration calculation uses the selected register transfer level (RTL).
Determine whether the statement is a register transfer level (RTL) reconstructed statement. Selected register transfer level (RT
If the L) statement is not a register transfer level (RTL) reconstructed statement, then at step 618 the compiler back end for dynamic reconfiguration computations has rules for the register transfer level (RTL) statement group currently under consideration. Decide if you want to. If not, the preferred method returns to step 612 to select the next register transfer level (RTL) statement group to include in the currently considered register transfer level (RTL) statement group. Register transfer level (RTL) currently under consideration in step 618
If there are rules for the statement group, then in step 620 the compiler back end for dynamic reconfiguration computations will follow the rules to set the assembly corresponding to the register transfer level (RTL) statement group currently under consideration. Generate a language sentence. After step 620, the compiler backend for dynamic reconfiguration computation in step 622 needs to consider yet another register transfer level (RTL) statement in the context of the next register transfer level (RTL) statement group. Determine if there is. If so, the preferred method returns to step 612; otherwise, the preferred method ends.

【0059】ステップ614で、選択したレジスタ転送
レベル(RTL)文がレジスタ転送レベル(RTL)再
構成文であるときには、ステップ616で動的再構成計
算のためのコンパイラのバックエンドはレジスタ転送レ
ベル(RTL)再構成文内の命令セットアーキテクチャ
(ISA)識別に対応する1組のルールセットを選択す
る。本発明では、各命令セットアーキテクチャ(IS
A)について独自のルールが存在することが好ましい。
従って各ルールセットは、特定の命令セットアーキテク
チャ(ISA)に従ってレジスタ転送レベル(RTL)
文グループをアセンブリ言語文に変換するための1つま
たはそれ以上のルールを提供する。ステップ616のあ
と、好適な方法はステップ618に進む。任意の命令セ
ットアーキテクチャ(ISA)に対応するルールセット
は、レジスタ転送レベル(RTL)再構成文を、ソフト
ウェア割込みを生じるような1組のアセンブリ言語命令
に翻訳するためのルールを含んでいることが好ましい。
このソフトウェア割込みの結果、再構成ハンドラーが実
行されるが、これについては下記に詳しく説明する。
At step 614, when the selected register transfer level (RTL) statement is a register transfer level (RTL) reconstructed statement, at step 616, the compiler back end for the dynamic reconfiguration calculation uses the register transfer level (RTL). RTL) Select a set of rulesets corresponding to the instruction set architecture (ISA) identification in the reconstructed statement. In the present invention, each instruction set architecture (IS
Preferably, there is a unique rule for A).
Thus, each rule set has a register transfer level (RTL) according to a specific instruction set architecture (ISA).
Provide one or more rules for converting a sentence group into an assembly language sentence. After step 616, the preferred method proceeds to step 618. A rule set corresponding to any instruction set architecture (ISA) may include rules for translating a register transfer level (RTL) reconstructed statement into a set of assembly language instructions that cause a software interrupt. preferable.
As a result of this software interrupt, a reconfiguration handler is executed, which is described in more detail below.

【0060】上記に説明した方法では、動的再構成計算
のためのコンパイラは選択的にまた自動的にコンパイル
演算中に多重命令セットアーキテクチャ(ISA)に従
ってアセンブリ言語文を生成する。言い換えれば、コン
パイル中、動的再構成計算のためのコンパイラはそれぞ
れ異なる命令セットアーキテクチャ(ISA)に従って
1組のプログラム命令をコンパイルする。動的再構成計
算のためのコンパイラは、図5と図6を用いて上に説明
したような好ましいコンパイル演算を実行するよう修正
した従来型コンパイラであることが好ましい。当業者
は、必要とされる修正は複雑ではないが、このような修
正は先行技術コンパイル技術及び先行技術再構成計算技
術から見て自明ではないことを認めるであろう。
In the method described above, the compiler for dynamic reconfiguration computation selectively and automatically generates assembly language statements according to the multiple instruction set architecture (ISA) during the compilation operation. In other words, during compilation, the compiler for dynamic reconfiguration computation compiles a set of program instructions according to different instruction set architectures (ISAs). The compiler for the dynamic reconfiguration calculation is preferably a conventional compiler modified to perform the preferred compilation operation as described above with reference to FIGS. Those skilled in the art will recognize that the modifications required are not complex, but such modifications are not obvious from the prior art compilation and prior art reconstruction computation techniques.

【0061】図7は、動的再構成処理装置(DRPU)
32の好ましい実施例の構成図である。動的再構成処理
装置(DRPU)32は、命令取出し装置(IFU)6
0と、データ演算装置(DOU)62と、アドレス演算
装置(AOU)64とを含んでいる。命令取出し装置
(IFU)60と、データ演算装置(DOU)62と、
アドレス演算装置(AOU)64のそれぞれは、第1タ
イミング信号ライン40に結合されたタイミング入力部
を含んでいる。命令取出し装置(IFU)60は、メモ
リ制御ライン42に結合されたメモリ制御出力部と、メ
モリ入出力ライン46に結合されたデータ入力部と、外
部制御ライン48に結合された双方向制御ポートとを含
んでいる。命令取出し装置(IFU)60はさらに、第
1制御ライン70を経てデータ演算装置(DOU)62
の第1制御入力部に結合された第1制御出力部と、第2
制御ライン72を経てアドレス演算装置(AOU)64
の第1制御入力部に結合された第2制御出力部とを含ん
でいる。命令取出し装置(IFU)60は、第3制御ラ
イン74を経てデータ演算装置(DOU)62の第2制
御入力部とアドレス演算装置(AOU)64の第2制御
入力部に結合された第1制御出力部を含んでいる。デー
タ演算装置(DOU)62とアドレス演算装置(AO
U)64とは、それぞれメモリ入出力ライン46に結合
された双方向データポートを含んでいる。最後にアドレ
ス演算装置(AOU)64は、動的再構成処理装置(D
RPU)のアドレス出力部を形成するアドレス出力部を
含んでいる。
FIG. 7 shows a dynamic reconfiguration processor (DRPU).
FIG. 32 is a block diagram of a preferred embodiment of the present invention. The dynamic reconfiguration processor (DRPU) 32 includes an instruction fetch unit (IFU) 6
0, a data operation unit (DOU) 62, and an address operation unit (AOU) 64. An instruction fetch unit (IFU) 60, a data operation unit (DOU) 62,
Each of the address operation units (AOU) 64 includes a timing input coupled to the first timing signal line 40. An instruction fetch unit (IFU) 60 includes a memory control output coupled to the memory control line 42, a data input coupled to the memory input / output line 46, and a bidirectional control port coupled to the external control line 48. Includes The instruction fetch unit (IFU) 60 further includes a data operation unit (DOU) 62 via a first control line 70.
A first control output coupled to the first control input of the second
Address operation unit (AOU) 64 via control line 72
And a second control output coupled to the first control input. An instruction fetch unit (IFU) 60 is connected to a second control input of a data operation unit (DOU) 62 and a second control input of an address operation unit (AOU) 64 via a third control line 74. Includes output section. Data operation unit (DOU) 62 and address operation unit (AO)
U) 64 includes a bi-directional data port coupled to the memory input / output line 46, respectively. Finally, the address operation unit (AOU) 64 is a dynamic reconfiguration processing unit (D
RPU) to form an address output.

【0062】動的再構成処理装置(DRPU)32は、
再構成論理装置または再プログラマブル論理装置、たと
えばXilinx XC4013(Xilinx, Inc., サン
ノゼ,カリフォルニア)またはAT&T ORCA I
C07(AT&T Microelectronics, Allentown, ペ
ンシルバニア)などのフィールドプログラマブルゲート
アレイ(FPGA)を用いて実装されるのが好ましい。
再プログラマブル論理装置は、複数の、 1)選択的再プログラマブル論理ブロック、または構成
可能論理ブロック(CLB:Selectively Reprogramabl
e Logic Blocks or Configurable Logick Blocks)と、 2)選択的再プログラマブル入出力ブロック(IOB:
I/O Blocks)と、 3)選択的再プログラマブル相互結合構造と、 4)データ記憶リソースと、 5)3値バッファリソースと、 6)ワイヤード論理関数能力と、 を備えていることが好ましい。各論理ブロック(CL
B)は、論理関数を生成し、データを記憶し、信号のル
ーティングを行うための選択的再構成回路を含んでいる
ことが好ましい。当業者は、使用中の再プログラマブル
論理装置の正確な設計に応じて、再構成データ記憶回路
が論理ブロック(CLB)とは別の1個またはそれ以上
のデータ記憶ブロック(DSB:Data Storage Block)
に含まれることもあることを認めるであろう。ここで
は、フィールドプログラマブルゲートアレイ(FPG
A)内の再構成データ記憶回路は、論理ブロック(CL
B)内に取入れられている。すなわち、データ記憶ブロ
ック(DSB)の存在は想定されていない。当業者は、
上に説明した論理ブロック(CLB)ベース再構成デー
タ記憶回路を利用する1個またはそれ以上の構成部分
が、データ記憶ブロック(DSB)が存在する場合には
データ記憶ブロック(DSB)ベース回路も利用できる
ことを認めるであろう。各入出力ブロック(IOB)
は、論理ブロック(CLB)とフィールドプログラマブ
ルゲートアレイ(FPGA)出力ピンとの間でデータを
転送するための選択的再構成回路を含んでいることが好
ましい。構成データセットは、論理ブロック(CLB)
内で実行される関数を指定することによって動的再構成
処理装置(DRPU)ハードウェア構成または編成を定
め、また、 1)論理ブロック(CLB)内、 2)論理ブロック(CLB)相互間、 3)入出力ブロック(IOB)内、 4)入出力ブロック(IOB)相互間、及び、 5)論理ブロック(CLB)と入出力ブロック(IO
B)との間 の相互結合を定める。当業者は、構成データセットによ
って、メモリ制御ライン42と、アドレスライン44
と、メモリ入出力ライン46と、外部制御ライン48の
それぞれにおけるビット数が再構成可能であることを認
めるであろう。再構成データセットは、システム10の
中の1個またはそれ以上のSマシン34に記憶されるこ
とが好ましい。当業者は、動的再構成処理装置(DRP
U)32がフィールドプログラマブルゲートアレイ(F
PGA)ベース実装に限定されないことを認めるであろ
う。たとえば動的再構成処理装置(DRPU)32は、
1つまたはそれ以上のルックアップテーブルをおそらく
含むRAMベース状態マシンとして実装することができ
る。あるいは動的再構成処理装置(DRPU)32は、
複合プログラマブル論理装置(CPLD)を用いて実装
することができる。しかし当業者は、システム10のS
マシン12の一部が再構成可能ではない動的再構成処理
装置(DRPU)12を含むことができることを認める
であろう。
The dynamic reconfiguration processing unit (DRPU) 32
Reconfigurable or reprogrammable logic devices, such as Xilinx XC4013 (Xilinx, Inc., San Jose, CA) or AT & T ORCA I
It is preferably implemented using a field programmable gate array (FPGA) such as C07 (AT & T Microelectronics, Allentown, PA).
The reprogrammable logic device comprises a plurality of 1) selectively reprogrammable logic blocks or configurable logic blocks (CLBs).
e Logic Blocks or Configurable Logick Blocks) and 2) Selective reprogrammable input / output blocks (IOB:
I / O Blocks), 3) a selectively reprogrammable interconnect structure, 4) a data storage resource, 5) a ternary buffer resource, and 6) a wired logic function capability. Each logical block (CL
B) preferably includes selective reconfiguration circuitry for generating logic functions, storing data, and performing signal routing. Those skilled in the art will recognize that, depending on the exact design of the reprogrammable logic device in use, the reconfigurable data storage circuit may have one or more data storage blocks (DSBs) separate from logic blocks (CLBs).
Will also be included. Here, a field programmable gate array (FPG)
The reconstructed data storage circuit in A) is a logical block (CL)
B). That is, the existence of a data storage block (DSB) is not assumed. Those skilled in the art
One or more components utilizing the logic block (CLB) based reconfigurable data storage circuit described above also utilize a data storage block (DSB) based circuit if a data storage block (DSB) is present I will admit that I can do it. Each input / output block (IOB)
Preferably includes a selective reconfiguration circuit for transferring data between a logic block (CLB) and a field programmable gate array (FPGA) output pin. The configuration data set is a logical block (CLB)
A dynamic reconfigurable processor (DRPU) hardware configuration or organization is defined by specifying the functions to be executed within: 1) within a logical block (CLB); 2) between logical blocks (CLB); ) Within the input / output block (IOB), 4) between input / output blocks (IOB), and 5) logical block (CLB) and input / output block (IO)
And B). Those skilled in the art will recognize that depending on the configuration data set, the memory control line 42 and the address line 44
And that the number of bits in each of the memory input / output lines 46 and the external control lines 48 is reconfigurable. The reconstructed data set is preferably stored on one or more S machines 34 in the system 10. Those skilled in the art will recognize a dynamic reconfiguration processor (DRP).
U) 32 is a field programmable gate array (F)
It will be appreciated that it is not limited to PGA) based implementations. For example, a dynamic reconfiguration processor (DRPU) 32
It can be implemented as a RAM-based state machine, possibly containing one or more lookup tables. Alternatively, the dynamic reconfiguration processing device (DRPU) 32
It can be implemented using a composite programmable logic device (CPLD). However, those skilled in the art will recognize that the S
It will be appreciated that a portion of machine 12 may include a non-reconfigurable dynamic reconfigurable processor (DRPU) 12.

【0063】好ましい実施例では、命令取出し装置(I
FU)60と、データ演算装置(DOU)62と、アド
レス演算装置(AOU)64はそれぞれ動的に再構成可
能である。したがって、その内部ハードウェア構成はプ
ログラム実行中に選択的に変更することができる。命令
取出し装置(IFU)60は、命令取出し・復号演算
と、メモリアクセス演算と、動的再構成処理装置(DR
PU)再構成演算とを指示し、命令の実行を容易に行う
ためにデータ演算装置(DOU)62とアドレス演算装
置(AOU)64に制御信号を送る。データ演算装置
(DOU)62は、データ計算に関する演算を実行し、
アドレス演算装置(AOU)64はアドレス計算に関す
る演算を実行する。命令取出し装置(IFU)60と、
データ演算装置(DOU)62と、アドレス演算装置
(AOU)64のそれぞれの内部構造と演算については
下記に詳しく説明する。
In the preferred embodiment, the instruction fetch unit (I
The FU) 60, the data operation unit (DOU) 62, and the address operation unit (AOU) 64 are each dynamically reconfigurable. Therefore, the internal hardware configuration can be selectively changed during execution of the program. The instruction fetch unit (IFU) 60 includes an instruction fetch / decode operation, a memory access operation, and a dynamic reconfiguration processing unit (DR).
PU), and sends a control signal to a data operation unit (DOU) 62 and an address operation unit (AOU) 64 in order to easily execute the instruction. The data operation unit (DOU) 62 executes an operation related to data calculation,
The address operation unit (AOU) 64 executes an operation related to address calculation. An instruction fetch unit (IFU) 60;
The internal structures and operations of the data operation unit (DOU) 62 and the address operation unit (AOU) 64 will be described in detail below.

【0064】図8は、命令取出し装置(IFU)60の
好ましい実施例の構成図である。命令取出し装置(IF
U)60は、命令状態シーケンサ(ISS:Instructio
n State Sequencer)100と、アーキテクチャ記述メ
モリ101と、メモリアクセスロジック102と、再構
成ロジック104と、割込みロジック106と、取出し
制御装置108と、命令バッファ110と、復号制御装
置112と、命令復号器114と、操作コード記憶レジ
スタセット116と、レジスタファイル(RF:Regist
er File)アドレスレジスタセット118と、定数レジ
スタセット120と、プロセス制御レジスタセット12
2とを含んでいる。命令状態シーケンサ(ISS)10
0は、それぞれ命令取出し装置(IFU)60の第1及
び第2制御出力部を形成する第1及び第2制御出力部を
含んでおり、また命令取出し装置(IFU)60のタイ
ミング入力部を形成するタイミング入力部を含んでい
る。また命令状態シーケンサ(ISS)100は、取出
し/復号制御ライン130を経て取出し制御装置108
の制御入力部と復号制御装置112の制御入力部とに結
合された取出し/復号制御出力部を含んでいる。さらに
命令状態シーケンサ(ISS)100は、双方向制御ラ
イン132を経てメモリアクセスロジック102と、再
構成ロジック104と、割込みロジック106のそれぞ
れの第1双方向制御ポートに結合された双方向制御ポー
トを含んでいる。また命令状態シーケンサ(ISS)1
00は、操作コードライン142を経て、操作コード記
憶レジスタセット116の出力部に結合された操作コー
ド入力部を含んでいる。最後に命令状態シーケンサ(I
SS)100は、処理データライン144を経て、プロ
セス制御レジスタセット122の双方向制御ポートに結
合された双方向制御ポートを含んでいる。
FIG. 8 is a block diagram of a preferred embodiment of the instruction fetch unit (IFU) 60. Instruction fetch device (IF
U) 60 is an instruction state sequencer (ISS: Instructio).
n state sequencer) 100, an architecture description memory 101, a memory access logic 102, a reconfiguration logic 104, an interrupt logic 106, a fetch controller 108, an instruction buffer 110, a decoding controller 112, and an instruction decoder. 114, an operation code storage register set 116, and a register file (RF: Register)
er File) address register set 118, constant register set 120, process control register set 12
And 2. Instruction status sequencer (ISS) 10
0 includes first and second control outputs forming first and second control outputs of the instruction fetch unit (IFU) 60, respectively, and forms timing inputs of the instruction fetch unit (IFU) 60. It includes a timing input section. The instruction state sequencer (ISS) 100 also controls the fetch controller 108 via a fetch / decode control line 130.
And an extraction / decoding control output coupled to the control input of the decoding controller 112. The instruction state sequencer (ISS) 100 further includes a bi-directional control port coupled to a first bi-directional control port of each of the memory access logic 102, the reconfiguration logic 104, and the interrupt logic 106 via a bi-directional control line 132. Contains. Instruction status sequencer (ISS) 1
00 includes an operation code input coupled to the output of operation code storage register set 116 via operation code line 142. Finally, the instruction status sequencer (I
SS) 100 includes a bi-directional control port coupled to the bi-directional control port of process control register set 122 via processing data line 144.

【0065】メモリアクセスロジック102と、再構成
ロジック104と、割込みロジック106は、それぞれ
外部制御ライン48に結合された第2双方向制御ポート
を含んでいる。さらにメモリアクセスロジック102
と、再構成ロジック104と、割込みロジック106
は、それぞれ実装制御ライン131を経てアーキテクチ
ャ記述メモリ101のデータ出力部に結合されたデータ
入力部を含んでいる。メモリアクセスロジック102
は、さらに命令取出し装置(IFU)60のメモリ制御
出力部を形成する制御出力部を含み、また割込みロジッ
ク106はさらに処理データライン144に結合された
出力部を含んでいる。命令バッファ110は、命令取出
し装置(IFU)60のデータ入力部を形成するデータ
入力部と、取出し制御ライン134を経て取出し制御装
置108の制御出力部に結合された制御入力部と、命令
ライン136を経て命令復号器114の入力部に結合さ
れた出力部とを含んでいる。命令復号器114は、復号
制御ライン138を経て復号制御装置112の制御出力
部に結合された制御入力部と、復号命令ライン140を
経て、 1)操作コード記憶レジスタ116の入力部と、 2)レジスタファイル(RF)アドレスレジスタセット
118の入力部と、 3)定数レジスタセット120の入力部に結合された出
力部と、 を含んでいる。レジスタファイル(RF)アドレスレジ
スタセット118と定数レジスタセット120は、それ
ぞれ命令取出し装置(IFU)60の第3制御出力部7
4を形成する出力部を含んでいる。
The memory access logic 102, the reconfiguration logic 104, and the interrupt logic 106 each include a second bidirectional control port coupled to the external control line 48. Further, the memory access logic 102
, Reconstruction logic 104, interrupt logic 106
Each include a data input coupled to a data output of the architecture description memory 101 via an implementation control line 131. Memory access logic 102
Also includes a control output forming the memory control output of the instruction fetch unit (IFU) 60, and the interrupt logic 106 further includes an output coupled to the processing data line 144. The instruction buffer 110 includes a data input forming the data input of the instruction fetch unit (IFU) 60, a control input coupled to the control output of the fetch controller 108 via a fetch control line 134, and an instruction line 136. And an output coupled to the input of the instruction decoder 114 via The instruction decoder 114 has a control input coupled to a control output of the decoding controller 112 via a decoding control line 138, and, via a decoding instruction line 140: 1) an input of an operation code storage register 116; 3) an input of a register file (RF) address register set 118; and 3) an output coupled to the input of the constant register set 120. The register file (RF) address register set 118 and the constant register set 120 are respectively provided in the third control output unit 7 of the instruction fetch unit (IFU) 60.
4 is included.

【0066】アーキテクチャ記述メモリ101は、現在
の動的再構成処理装置(DRPU)構成を特徴付けるア
ーキテクチャ指定信号を記憶する。このアーキテクチャ
指定信号は、 1)デフォルト構成データセットに対する基準と、 2)許容される構成データセットリストに対する基準
と、 3)現在検討中の命令セットアーキテクチャ(ISA)
に対応する構成データセットに対する基準、すなわち現
在の動的再構成処理装置(DRPU)構成を定める構成
データセットに対する基準と、 4)命令取出し装置(IFU)60が存在するSマシン
12に関連したTマシン14内の1個またはそれ以上の
相互結合入出力装置304を識別する相互結合アドレス
リスト(これについては、図18を用いて下記に詳しく
説明する)と、 5)割込み待ち時間と、命令取出し装置(IFU)60
が割込みにどのように応答するかを定める割込み精度情
報とを指定する1組の割込み応答信号と、 6)アトミックメモリアドレスインクリメントを定める
メモリアクセス定数と、を含んでいることが好ましい。
好ましい実施例では、各構成データセットは、読出し専
用メモリ(ROM)として構成された1組の論理ブロッ
ク(CLB)としてアーキテクチャ記述メモリ101を
実動化する。アーキテクチャ記述メモリ101の内容を
定めるアーキテクチャ指定信号は、各構成データセット
に含まれることが好ましい。したがって、各構成データ
セットが特定の命令セットアーキテクチャ(ISA)に
対応するので、アーキテクチャ記述メモリ101の内容
は、現在検討中の命令セットアーキテクチャ(ISA)
によって異なる。所定の命令セットアーキテクチャ(I
SA)について、アーキテクチャ記述メモリ101の内
容へのプログラムアクセスは、命令セットアーキテクチ
ャ(ISA)にメモリ読出し命令を含めることによって
容易に行われることが好ましい。これによってプログラ
ム実行中に現在の動的再構成処理装置(DRPU)構成
に関する情報をプログラムが検索することができる。
The architecture description memory 101 stores an architecture designation signal characterizing the current dynamic reconfiguration processing unit (DRPU) configuration. The architecture specification signals include: 1) a criterion for the default configuration data set; 2) a criterion for the list of allowed configuration data sets; and 3) an instruction set architecture (ISA) currently under consideration.
A reference to the configuration data set corresponding to the above, i.e., a reference to the configuration data set defining the current dynamic reconfiguration processor (DRPU) configuration; An interconnect address list identifying one or more interconnect I / O devices 304 in machine 14 (which is described in greater detail below with reference to FIG. 18); 5) interrupt latency and instruction fetch. Equipment (IFU) 60
Preferably includes a set of interrupt response signals that specify how interrupts respond to interrupts, and 6) a memory access constant that defines atomic memory address increments.
In the preferred embodiment, each configuration data set implements the architecture description memory 101 as a set of logical blocks (CLBs) configured as read-only memory (ROM). Preferably, an architecture designating signal that determines the contents of the architecture description memory 101 is included in each configuration data set. Therefore, since each configuration data set corresponds to a specific instruction set architecture (ISA), the contents of the architecture description memory 101 are stored in the instruction set architecture (ISA) currently under consideration.
Depends on A given instruction set architecture (I
For SA), program access to the contents of the architecture description memory 101 is preferably facilitated by including a memory read instruction in the instruction set architecture (ISA). This allows the program to retrieve information about the current dynamic reconfiguration processor (DRPU) configuration during program execution.

【0067】本発明では、再構成ロジック104は一連
の再構成演算を制御する状態マシンであり、これによっ
て構成データセットに応じて動的再構成処理装置(DR
PU)32の再構成が容易に行われる。再構成ロジック
104は、再構成信号を受取り次第、再構成演算を開始
することが好ましい。下記に詳しく説明するように、再
構成信号は、外部制御ライン48で受取った再構成割込
みに応じて割込みロジック106が発生させた信号であ
るか、またはプログラムに埋込まれた再構成指示に応じ
て命令状態シーケンサ(ISS)100が発生させた信
号である。再構成演算によって、アーキテクチャ記述メ
モリ101によって参照されるデフォルト構成データを
用いて電源オン/リセット後の当初の動的再構成処理装
置(DRPU)構成が得られる。また再構成演算によっ
て、当初の動的再構成処理装置(DRPU)構成が確定
したあとの選択的動的再構成処理装置(DRPU)再構
成が得られる。再構成演算が完了すると再構成ロジック
104は完了信号を発する。好ましい実施例では、再構
成ロジック104は、再プログラマブル論理装置自体へ
の構成データセットのローディングを制御する非再構成
ロジックであり、したがって再構成演算のシーケンスは
再プログラマブル論理装置のメーカーによって定められ
る。したがって、再構成演算は当業者に既知である。
In the present invention, the reconstruction logic 104 is a state machine that controls a series of reconstruction operations, whereby the dynamic reconstruction processing unit (DR) is controlled according to the configuration data set.
PU) 32 is easily reconfigured. Preferably, the reconstruction logic 104 starts the reconstruction operation upon receiving the reconstruction signal. As will be described in greater detail below, the reconfiguration signal is a signal generated by interrupt logic 106 in response to a reconfiguration interrupt received on external control line 48, or in response to a reconfiguration instruction embedded in a program. This is a signal generated by the instruction status sequencer (ISS) 100. The reconfiguration operation results in an initial dynamic reconfiguration processor (DRPU) configuration after power on / reset using default configuration data referenced by the architecture description memory 101. Also, the reconfiguration operation provides a selective dynamic reconfiguration processor (DRPU) reconfiguration after the initial dynamic reconfiguration processor (DRPU) configuration is determined. When the reconstruction operation is completed, the reconstruction logic 104 issues a completion signal. In the preferred embodiment, the reconfiguration logic 104 is non-reconfiguration logic that controls the loading of a configuration data set into the reprogrammable logic device itself, so that the sequence of reconfiguration operations is determined by the manufacturer of the reprogrammable logic device. Therefore, reconstruction operations are known to those skilled in the art.

【0068】各動的再構成処理装置(DRPU)構成
は、対応する命令セットアーキテクチャ(ISA)の実
動化のための特定のハードウェア編成を定める構成デー
タセットによって与えられるのが好ましい。好ましい実
施例では、命令取出し装置(IFU)60は動的再構成
処理装置(DRPU)構成に関係なく、上記の各構成部
分を含んでいる。基本レベルでは、命令取出し装置(I
FU)60内の各構成部分によって与えられる機能性
は、現在検討中の命令セットアーキテクチャ(ISA)
とは無関係である。しかし、好ましい実施例では、命令
取出し装置(IFU)60の1個またはそれ以上の構成
部分の詳細な構造と機能性は、それが構成されている命
令セットアーキテクチャ(ISA)の特性に応じて異な
る。好ましい実施例では、アーキテクチャ記述メモリ1
01及び再構成ロジック104の構造と機能性は、それ
ぞれの動的再構成処理装置(DRPU)構成について一
定であることが好ましい。命令取出し装置(IFU)6
0のその他の構成部分の構造と機能性について、またこ
れらが命令セットアーキテクチャ(ISA)の種類によ
って異なることについては、下記に詳しく説明する。
Each Dynamic Reconfiguration Processor (DRPU) configuration is preferably provided by a configuration data set that defines the specific hardware organization for the implementation of the corresponding instruction set architecture (ISA). In the preferred embodiment, instruction fetch unit (IFU) 60 includes the components described above, regardless of the dynamic reconfiguration processor (DRPU) configuration. At the basic level, the instruction fetch unit (I
The functionality provided by each component within the FU) 60 is based on the instruction set architecture (ISA) currently under consideration.
Has nothing to do with. However, in the preferred embodiment, the detailed structure and functionality of one or more components of instruction fetch unit (IFU) 60 will depend on the characteristics of the instruction set architecture (ISA) in which it is configured. . In the preferred embodiment, the architecture description memory 1
Preferably, the structure and functionality of 01 and the reconfiguration logic 104 are constant for each dynamic reconfiguration processor (DRPU) configuration. Instruction fetch unit (IFU) 6
The structure and functionality of the other components of O.0 and how they vary with the type of instruction set architecture (ISA) are described in detail below.

【0069】プロセス制御レジスタセット122は、命
令実行中に命令状態シーケンサ(ISS)100によっ
て用いられる信号とデータを記憶する。好ましい実施例
では、プロセス制御レジスタセット122は、プロセス
制御ワードを記憶するためのレジスタと、割込みベクト
ルを記憶するためのレジスタと、構成データセットへの
参照を記憶するためのレジスタとを含んでいる。プロセ
ス制御ワードは、命令実行中に発生する状態にもとづい
て選択的に設定またはリセットすることができる複数の
条件フラグを含んでいることが好ましい。さらにプロセ
ス制御ワードは、割込みを実施できる1つまたはそれ以
上の方法を定める複数の遷移制御信号を含んでいる(こ
れについては、下記に詳しく説明する)。好ましい実施
例では、プロセス制御レジスタセット122は、データ
記憶及びゲーティングロジックのために構成された1組
の論理ブロック(CLB)として実装される。
The process control register set 122 stores signals and data used by the instruction status sequencer (ISS) 100 during instruction execution. In the preferred embodiment, the process control register set 122 includes a register for storing a process control word, a register for storing an interrupt vector, and a register for storing a reference to a configuration data set. . Preferably, the process control word includes a plurality of condition flags that can be selectively set or reset based on conditions that occur during instruction execution. Further, the process control word includes a plurality of transition control signals that define one or more ways in which an interrupt can be implemented (this is described in more detail below). In the preferred embodiment, the process control register set 122 is implemented as a set of logic blocks (CLBs) configured for data storage and gating logic.

【0070】命令状態シーケンサ(ISS)100は、
取出し制御装置108と復号制御装置112と、データ
演算装置(DOU)62と、アドレス演算装置(AO
U)64との演算を制御し、命令の実行を容易にするた
めにメモリ読出し信号とメモリ書込み信号をメモリアク
セスロジック102に発信する状態マシンであることが
好ましい。図9は、命令状態シーケンサ(ISS)10
0によって支援される1組の好ましい状態を示す状態図
である。電源オンまたはリセット後、または再構成が行
われた直後、命令状態シーケンサ(ISS)100は状
態Pで演算を開始する。再構成ロジック104により発
せられた完了信号に応じて、命令状態シーケンサ(IS
S)100は状態Sに進み、命令状態シーケンサ(IS
S)は電源オン/リセットまたは再構成が行われた場
合、それぞれプログラム状態情報を初期化するか、復元
する。命令状態シーケンサ(ISS)100は次に状態
Fに進み、命令取出し演算を実行する。命令取出し演算
では、命令状態シーケンサ(ISS)100はメモリ読
出し信号をメモリアクセスロジック102に発信し、取
出し信号を取出し制御装置108に発信し、次命令プロ
グラムアドレスレジスタ(NIPAR)232をインク
リメントするためにインクリメント信号をアドレス演算
装置(AOU)64に発信する(これについては、図1
5と図16を用いて下記に詳しく説明する)。状態Fの
後、命令状態シーケンサ(ISS)100は状態Dに進
み、命令復号演算を開始する。状態Dで、命令状態シー
ケンサ(ISS)100は復号信号を復号制御112に
発信する。状態Dで、命令状態シーケンサ(ISS)1
00はさらに復号命令に対応する操作コードを操作コー
ド記憶レジスタセット116から検索する。検索した操
作コードに基づいて、命令状態シーケンサ(ISS)1
00は状態Eまたは状態Mに進み、命令実行演算を実行
する。命令が1回のクロックサイクルで実行できるとき
には、命令状態シーケンサ(ISS)100は状態Eに
進む。それ以外の場合には、命令状態シーケンサ(IS
S)100は複数のサイクルで命令を実行するために状
態Mに進む。命令実行演算では、命令状態シーケンサ
(ISS)100はデータ演算装置(DOU)制御信号
と、アドレス演算装置(AOU)制御信号と、及び/ま
たは検索した操作コードに対応する命令の実行を容易に
するためのメモリアクセスロジック102専用の信号と
を生成する。状態EまたはMのあと、命令状態シーケン
サ(ISS)100は状態Wに進む。状態Wで、命令状
態シーケンサ(ISS)100は、データ演算装置(D
OU)制御信号と、アドレス演算装置(AOU)制御信
号と、及び/または命令実行の結果の記憶を容易にする
ためのメモリ書込み信号とを生成する。したがって、状
態Wはライトバック状態と呼ばれる。当業者は、状態
F、D、E、M、Wが完全な命令実行サイクルを含むこ
とを認めるであろう。状態Wのあと命令状態シーケンサ
(ISS)100は、命令の実行を中断する必要がある
ときには状態Yに進む。状態Yは、たとえばTマシン1
4がSマシンのメモリ34にアクセスしなくてはならな
いときに必要とされるようなアイドル状態に対応してい
る。状態Yのあと、または命令の実行を継続するときに
は状態Wの後、命令状態シーケンサ(ISS)100は
状態Fに戻り、さらに別の命令実行サイクルを開始す
る。
The instruction status sequencer (ISS) 100
Retrieval control unit 108, decoding control unit 112, data operation unit (DOU) 62, and address operation unit (AO
U) Preferably, the state machine transmits memory read and write signals to memory access logic 102 to control operations with 64 and facilitate instruction execution. FIG. 9 shows an instruction status sequencer (ISS) 10
FIG. 4 is a state diagram showing a set of preferred states supported by 0. After power-on or reset, or immediately after reconfiguration, the instruction state sequencer (ISS) 100 starts operation in state P. In response to the completion signal issued by the reconfiguration logic 104, the instruction status sequencer (IS
S) 100 proceeds to state S, where the instruction state sequencer (IS
S) initializes or restores the program state information when power on / reset or reconfiguration is performed. The instruction state sequencer (ISS) 100 then proceeds to state F and performs an instruction fetch operation. In an instruction fetch operation, the instruction status sequencer (ISS) 100 sends a memory read signal to the memory access logic 102, sends a fetch signal to the fetch controller 108, and increments the next instruction program address register (NIPAR) 232. An increment signal is transmitted to the address operation unit (AOU) 64 (this is shown in FIG. 1).
5 and FIG. 16 will be described in detail below). After state F, the instruction state sequencer (ISS) 100 proceeds to state D and starts the instruction decoding operation. In state D, instruction state sequencer (ISS) 100 sends a decode signal to decode control 112. In state D, instruction state sequencer (ISS) 1
00 further retrieves the operation code corresponding to the decoding instruction from the operation code storage register set 116. Instruction status sequencer (ISS) 1 based on the retrieved operation code
00 proceeds to the state E or the state M, and executes an instruction execution operation. The instruction state sequencer (ISS) 100 proceeds to state E when the instruction can be executed in one clock cycle. Otherwise, the instruction status sequencer (IS
S) 100 proceeds to state M to execute the instruction in multiple cycles. In an instruction execution operation, the instruction state sequencer (ISS) 100 facilitates execution of instructions corresponding to data operation unit (DOU) control signals, address operation unit (AOU) control signals, and / or retrieved operation codes. And a signal dedicated to the memory access logic 102 for the purpose. After state E or M, instruction state sequencer (ISS) 100 proceeds to state W. In the state W, the instruction state sequencer (ISS) 100 operates the data operation device (D
OU) control signal, an address operation unit (AOU) control signal, and / or a memory write signal for facilitating storage of the result of the instruction execution. Therefore, state W is called a write-back state. Those skilled in the art will recognize that states F, D, E, M, W include a complete instruction execution cycle. After state W, the instruction state sequencer (ISS) 100 proceeds to state Y when execution of the instruction needs to be interrupted. State Y is, for example, T machine 1
4 corresponds to an idle state as required when the memory 34 of the S machine has to be accessed. After state Y, or after state W when continuing execution of the instruction, instruction state sequencer (ISS) 100 returns to state F and begins another instruction execution cycle.

【0071】図9に示すように、状態図には状態Iも含
まれている。この状態は、割込み実施状態として定義さ
れる。本発明では、命令状態シーケンサ(ISS)10
0は割込みロジック106から割込み通知信号を受取
る。図10を用いて下記に詳しく説明するように、割込
みロジック106は遷移制御信号を生成し、プロセス制
御レジスタセット122内のプロセス制御ワード内に遷
移制御信号を記憶する。遷移制御信号は、状態F、D、
E、M、W、Yのどの状態が割込み可能かについて、ま
た各割込み可能状態で必要とされる割込み精度のレベル
について、また状態Iのあとも命令の実行を継続すべき
各割込み可能状態の次の状態を示すことが好ましい。命
令状態シーケンサ(ISS)100が所定の状態で割込
み通知信号を受取ったとき、遷移制御信号によって現在
の状態が割込み可能であることが示されている場合に
は、命令状態シーケンサ(ISS)100は状態Iに進
む。それ以外の場合には、命令状態シーケンサ(IS
S)100は割込み可能状態に達するまで割込み信号を
受取っていなかったかのように進む。
As shown in FIG. 9, the state diagram also includes the state I. This state is defined as an interrupt execution state. In the present invention, the instruction status sequencer (ISS) 10
0 receives an interrupt notification signal from the interrupt logic 106. As described in greater detail below with reference to FIG. 10, interrupt logic 106 generates a transition control signal and stores the transition control signal in a process control word in process control register set 122. The transition control signals are states F, D,
Which of E, M, W, and Y are interruptible, the level of interrupt accuracy required in each interruptible state, and the state of each interruptable state in which instruction execution should continue after state I. It is preferable to show the following state. When the instruction state sequencer (ISS) 100 receives the interrupt notification signal in a predetermined state, and the transition control signal indicates that the current state is interruptible, the instruction state sequencer (ISS) 100 Proceed to state I. Otherwise, the instruction status sequencer (IS
S) 100 proceeds as if no interrupt signal had been received until the interrupt enabled state was reached.

【0072】命令状態シーケンサ(ISS)100が状
態Iに進むと、命令状態シーケンサ(ISS)100は
割込みマスキングフラグを設定し、また割込みベクトル
を検索するために、プロセス制御レジスタセット122
にアクセスするのが好ましい。割込みベクトルを受取っ
た後、命令状態シーケンサ(ISS)100は、割込み
ベクトルによって指定される割込みハンドラーに従来の
ようなサブルーチンジャンプを行い現在の割込みを実施
するのが好ましい。
When the instruction state sequencer (ISS) 100 advances to state I, the instruction state sequencer (ISS) 100 sets an interrupt masking flag and retrieves the process control register set 122 to retrieve the interrupt vector.
It is preferable to access. After receiving the interrupt vector, the instruction state sequencer (ISS) 100 preferably performs a conventional subroutine jump to the interrupt handler specified by the interrupt vector to perform the current interrupt.

【0073】本発明では、動的再構成処理装置(DRP
U)32の再構成は、 1)外部制御ライン48で表明される再構成割込みか、
または、 2)一連のプログラム命令内の再構成指示の実行 に応じて開始される。好ましい実施例では、再構成割込
みを行っても、また再構成指示を実行しても、再構成ハ
ンドラーへのサブルーチンジャンプが行われる。再構成
ハンドラーはプログラム状態情報をセーブし、構成デー
タセットアドレスと再構成信号を再構成ロジック104
に発信することが好ましい。
In the present invention, the dynamic reconfiguration processor (DRP)
U) The reconfiguration of 32 may be 1) a reconfiguration interrupt asserted on external control line 48, or
Or 2) It is started in response to execution of a reconfiguration instruction in a series of program instructions. In a preferred embodiment, a subroutine jump to a reconfiguration handler is performed whether a reconfiguration interrupt or a reconfiguration instruction is performed. The reconfiguration handler saves program state information and reconfigures configuration data set addresses and reconfiguration signals to the reconfiguration logic 104.
It is preferred to send to

【0074】現在の割込みが再構成割込みでないときに
は、命令状態シーケンサ(ISS)100は、割込みが
実施された場合に遷移制御信号によって示される次の状
態に進み、これによって命令実行サイクルを再開し、完
了し、または開始する。
When the current interrupt is not a reconfiguration interrupt, the instruction state sequencer (ISS) 100 proceeds to the next state indicated by the transition control signal if the interrupt was performed, thereby restarting the instruction execution cycle, Complete or start.

【0075】好ましい実施例では、命令状態シーケンサ
(ISS)100により支援される1組の状態は、動的
再構成処理装置(DRPU)32が構成される命令セッ
トアーキテクチャ(ISA)の特性に応じて異なる。し
たがって、典型的な内部ループ命令セットアーキテクチ
ャ(ISA)での場合のように、1つまたはそれ以上の
命令が1回のクロックサイクルで実行できる命令セット
アーキテクチャ(ISA)について状態Mは存在しな
い。図に示すように、図9の状態図は、汎用外部ループ
命令セットアーキテクチャ(ISA)を実動化するため
に命令状態シーケンサ(ISS)によって支援される状
態を規定することが好ましい。内部ループ命令セットア
ーキテクチャ(ISA)の実動化については、命令状態
シーケンサ(ISS)100は複数の状態F、D、E、
Wを並列に支援するのが好ましい。これによって当業者
が容易に理解するような方法で命令実行のパイプライン
制御を容易に行うことができる。好ましい実施例では、
命令状態シーケンサ(ISS)100は現在検討中の命
令セットアーキテクチャ(ISA)に従って上記に述べ
た状態または状態のサブセットを支援する論理ブロック
(CLB)ベース状態マシンとして実動化される。
In the preferred embodiment, the set of states supported by the instruction state sequencer (ISS) 100 depends on the characteristics of the instruction set architecture (ISA) in which the dynamic reconfigurable processor (DRPU) 32 is configured. different. Thus, there is no state M for an instruction set architecture (ISA) where one or more instructions can execute in one clock cycle, as in a typical inner loop instruction set architecture (ISA). As shown, the state diagram of FIG. 9 preferably defines states supported by an instruction state sequencer (ISS) for implementing a general purpose external loop instruction set architecture (ISA). For an internal loop instruction set architecture (ISA) implementation, the instruction state sequencer (ISS) 100 includes a plurality of states F, D, E,
Preferably, W is supported in parallel. This facilitates pipeline control of instruction execution in a manner readily understood by those skilled in the art. In a preferred embodiment,
The instruction state sequencer (ISS) 100 is implemented as a logic block (CLB) based state machine that supports the states or subsets of states described above according to the instruction set architecture (ISA) under consideration.

【0076】割込みロジック106は、遷移制御信号を
生成し、外部制御ライン48を経て受取った割込み信号
に応じて割込み通知演算を実行する状態マシンを含んで
いることが好ましい。図10は、割込みロジック106
によって支援される1組の好ましい状態を示す状態図で
ある。割込みロジック106は状態Pで演算を開始す
る。状態Pは、電源オン、リセット、または再構成状態
に対応している。再構成ロジック104によって発せら
れた完了信号に応じて、割込みロジック106は状態A
に進み、アーキテクチャ記述メモリ101から割込み応
答信号を検索する。割込みロジック106は、次に割込
み応答信号から遷移制御信号を生成し、この遷移制御信
号をプロセス制御レジスタセット122に記憶する。好
ましい実施例では、割込みロジック106は、割込み応
答信号を受取り遷移制御信号を生成するための論理ブロ
ック(CLB)ベースプログラマブル論理アレイ(PL
A)を含んでいる。状態Aのあと、割込みロジック10
6は状態Bに進み割込み信号を待つ。割込み信号を受取
り、プロセス制御レジスタセット122内の割込みマス
キングフラグがリセットされた場合に割込みロジック1
06は状態Cに進む。状態Cでは、割込みロジック10
6は割込みの開始点と、割込み優先度と、割込みハンド
ラーアドレスとを決定する。割込み信号が再構成割込み
のときには、割込みロジック106は状態Rに進み、構
成データセットアドレスをプロセス制御レジスタセット
122に記憶する。状態Rのあと、または割込み信号が
再構成割込みではないときには状態Cのあと、割込みロ
ジック106は状態Nに進み、割込みハンドラーアドレ
スをプロセス制御レジスタセット122に記憶する。割
込みロジック106は次に状態Xに進み、割込み通知信
号を命令状態シーケンサ(ISS)100に発する。状
態Xのあと、割込みロジック106は状態Bに戻り、次
の割込み信号を待つ。
The interrupt logic 106 preferably includes a state machine that generates a transition control signal and performs an interrupt notification operation in response to an interrupt signal received via the external control line 48. FIG. 10 illustrates the interrupt logic 106
FIG. 4 is a state diagram showing a set of preferred states supported by the system. The interrupt logic 106 starts operation in state P. State P corresponds to a power on, reset, or reconfiguration state. In response to the completion signal issued by the reconfiguration logic 104, the interrupt logic 106
To retrieve an interrupt response signal from the architecture description memory 101. The interrupt logic 106 then generates a transition control signal from the interrupt response signal and stores the transition control signal in the process control register set 122. In a preferred embodiment, interrupt logic 106 includes a logic block (CLB) based programmable logic array (PLL) for receiving interrupt response signals and generating transition control signals.
A). After state A, interrupt logic 10
6 goes to state B and waits for an interrupt signal. When the interrupt signal is received and the interrupt masking flag in the process control register set 122 is reset, the interrupt logic 1
06 proceeds to state C. In state C, the interrupt logic 10
6 determines an interrupt start point, an interrupt priority, and an interrupt handler address. When the interrupt signal is a reconfiguration interrupt, the interrupt logic 106 proceeds to state R and stores the configuration data set address in the process control register set 122. After state R, or after state C when the interrupt signal is not a reconfiguration interrupt, the interrupt logic 106 proceeds to state N and stores the interrupt handler address in the process control register set 122. The interrupt logic 106 then proceeds to state X and issues an interrupt notification signal to the instruction state sequencer (ISS) 100. After state X, interrupt logic 106 returns to state B and waits for the next interrupt signal.

【0077】好ましい実施例では、割込み応答信号が、
したがって遷移制御信号が指定する割込み待ち時間のレ
ベルは、動的再構成処理装置(DRPU)32が構成さ
れている現在の命令セットアーキテクチャ(ISA)に
よって異なる。たとえば高性能リアルタイム動作制御用
の命令セットアーキテクチャ(ISA)では、迅速で予
測可能な割込み応答能力が求められる。したがって、こ
のような命令セットアーキテクチャ(ISA)に対応す
る構成データセットは、待ち時間の短い割込みが必要で
あることを示す割込み応答信号を含んでいることが好ま
しい。対応する遷移制御信号は、複数の命令状態シーケ
ンサ(ISS)状態を割込み可能として識別することが
好ましい。これにより、命令実行サイクルが完了する前
に割込みによって命令実行サイクルを中断することがで
きる。リアルタイム動作制御用の命令セットアーキテク
チャ(ISA)とは異なり、画像畳込み演算用の命令セ
ットアーキテクチャ(ISA)では、単位時間当たりに
実行される畳込み演算の回数が最大となるような割込み
応答能力が必要である。画像畳込み演算用命令セットア
ーキテクチャ(ISA)に対応する構成データセット
は、待ち時間の長い割込みが必要であることを指定する
割込み応答信号を含んでいることが好ましい。対応する
遷移制御信号は、状態Wを割込み可能として識別するこ
とが好ましい。画像畳込み演算用命令セットアーキテク
チャ(ISA)を実装するために構成され、命令状態シ
ーケンサ(ISS)100が複数の状態F、D、E、W
を並列に支援するときには、遷移制御信号はそれぞれ状
態Wを割込み可能として識別し、さらに各並列命令実行
サイクルがその状態W演算を完了するまで割込み実施を
遅延すべきであることを指定することが好ましい。これ
により、割込みが実施される前にすべての命令が実行さ
れることが保証され、これによって適切なパイプライン
実行能力レベルが維持される。
In a preferred embodiment, the interrupt response signal is:
Therefore, the level of the interrupt latency specified by the transition control signal differs depending on the current instruction set architecture (ISA) in which the dynamic reconfigurable processor (DRPU) 32 is configured. For example, instruction set architectures (ISAs) for high performance real-time operation control require fast and predictable interrupt response capabilities. Accordingly, the configuration data set corresponding to such an instruction set architecture (ISA) preferably includes an interrupt response signal indicating that a low latency interrupt is required. Preferably, the corresponding transition control signal identifies a plurality of instruction state sequencer (ISS) states as interruptible. Thus, the instruction execution cycle can be interrupted by an interrupt before the instruction execution cycle is completed. Unlike an instruction set architecture (ISA) for real-time operation control, an instruction set architecture (ISA) for image convolution operation has an interrupt response capability that maximizes the number of convolution operations executed per unit time. is necessary. Preferably, the configuration data set corresponding to the instruction set architecture for image convolution (ISA) includes an interrupt response signal that specifies that a high latency interrupt is required. Preferably, the corresponding transition control signal identifies state W as interruptible. An instruction state sequencer (ISS) 100 configured to implement an instruction convolution architecture (ISA) for image convolution comprises a plurality of states F, D, E, W
In parallel, the transition control signals may each identify state W as interruptible and further specify that interrupt execution should be delayed until each parallel instruction execution cycle has completed its state W operation. preferable. This ensures that all instructions are executed before the interrupt is serviced, thereby maintaining a proper pipeline execution capability level.

【0078】割込み待ち時間のレベルと同様に、割込み
応答信号によって指定される割込み精度のレベルも動的
再構成処理装置(DRPU)32が構成される命令セッ
トアーキテクチャ(ISA)によって異なる。たとえ
ば、状態Mが割込み可能なマルチサイクル演算を支援す
る外部ループ命令セットアーキテクチャ(ISA)につ
いて割込み可能状態であると定められた場合、割込み応
答信号は正確な割込みが必要であることを指定すること
が好ましい。したがって遷移制御信号は、マルチサイク
ル演算がうまく再スタートできるよう状態Mで受取った
割込みを正確な割込みとして扱うよう指定する。もう1
つの例として、無欠陥パイプライン算術演算を支援する
命令セットアーキテクチャ(ISA)については、割込
み応答信号は不正確な割込みが必要であると指定するこ
とが好ましい。次に遷移制御信号は、状態Wで受取った
割込みを不正確な割込みとして扱うことを指定する。
Like the interrupt latency level, the level of interrupt accuracy specified by the interrupt response signal also depends on the instruction set architecture (ISA) in which the dynamic reconfigurable processor (DRPU) 32 is configured. For example, if state M is defined as being interruptible for an external loop instruction set architecture (ISA) that supports interruptible multi-cycle operations, then the interrupt response signal specifies that a precise interrupt is required. Is preferred. Thus, the transition control signal specifies that the interrupt received in state M should be treated as an accurate interrupt so that the multi-cycle operation can be successfully restarted. Another one
As one example, for an instruction set architecture (ISA) that supports defect-free pipeline arithmetic, the interrupt response signal preferably specifies that an incorrect interrupt is required. The transition control signal then specifies that an interrupt received in state W should be treated as an incorrect interrupt.

【0079】任意の命令セットアーキテクチャ(IS
A)については、割込み応答信号は命令セットアーキテ
クチャ(ISA)の対応する構成データセットの一部に
よって定められ、またプログラムされる。プログラマブ
ル割込み応答信号によって、また対応する遷移制御信号
を生成することにより、本発明では、命令セットアーキ
テクチャ(ISA)ごとの最適の割込みスキームを実動
化することが容易となっている。当業者は、先行技術コ
ンピュータアーキテクチャのほとんどでは、割込み能
力、すなわちプログラマブル状態遷移の有効化、プログ
ラマブル割込み待ち時間、及びプログラマブル割込み精
度を柔軟に指定できないことを認めるであろう。好まし
い実施例では、割込みロジック106は上記のような状
態を支援する論理ブロック(CLB)ベース状態マシン
として実装される。
Any instruction set architecture (IS
For A), the interrupt response signal is defined and programmed by a portion of the corresponding configuration data set of the instruction set architecture (ISA). By means of a programmable interrupt response signal and the generation of a corresponding transition control signal, the present invention facilitates implementing an optimal interrupt scheme for each instruction set architecture (ISA). Those skilled in the art will appreciate that most of the prior art computer architectures do not provide flexibility in specifying interrupt capabilities, ie, enabling programmable state transitions, programmable interrupt latency, and programmable interrupt accuracy. In the preferred embodiment, the interrupt logic 106 is implemented as a logic block (CLB) based state machine that supports such states.

【0080】取出し制御装置108は、命令セットアー
キテクチャ(ISA)100によって発せられた取出し
信号に応じて命令バッファ110に命令をロードするよ
う指示する。好ましい実施例では、取出し制御装置10
8は1組の論理ブロック(CLB)内でフリップフロッ
プを用いた従来型のワンホット符号化状態マシンとして
実装される。当業者は、別の実施例で、取出し制御装置
108が従来型の符号化状態マシンとして、またはRO
Mベース状態マシンとして構成できることを認めるであ
ろう。命令バッファ110は、メモリ34からロードさ
れた命令を一時記憶する。外部ループ命令セットアーキ
テクチャ(ISA)の実装については、命令バッファ1
10は多重論理ブロック(CLB)を用いた従来型のR
AMベース先入れ先出し(FIFO)バッファとして実
装されるのが好ましい。内部ループ命令セットアーキテ
クチャ(ISA)の実装については、命令バッファ11
0は1組の入出力ブロック(IOB)内で複数のフリッ
プフロップを用いた、または入出力ブロック(IOB)
と論理ブロック(CLB)の両方で複数のフリップフロ
ップを用いた1組のフリップフロップレジスタとして実
装されるのが好ましい。
The fetch controller 108 instructs the instruction buffer 110 to load instructions in response to a fetch signal issued by the instruction set architecture (ISA) 100. In the preferred embodiment, the unload controller 10
8 is implemented as a conventional one-hot encoded state machine using flip-flops within a set of logic blocks (CLBs). One skilled in the art will appreciate that in other embodiments, the retrieval controller 108 may be configured to use a conventional encoding state machine or RO
It will be appreciated that it can be configured as an M-based state machine. The instruction buffer 110 temporarily stores the instruction loaded from the memory 34. For the implementation of the outer loop instruction set architecture (ISA), see instruction buffer 1
10 is a conventional R using multiple logic blocks (CLBs).
It is preferably implemented as an AM-based first-in-first-out (FIFO) buffer. For the implementation of the inner loop instruction set architecture (ISA), see the instruction buffer 11
0 indicates that a plurality of flip-flops are used in a set of input / output blocks (IOB) or input / output blocks (IOB)
And a logic block (CLB) are preferably implemented as a set of flip-flop registers using a plurality of flip-flops.

【0081】復号制御装置112は、命令セットアーキ
テクチャ(ISA)100によって発せられた復号信号
に応じて、命令を命令バッファ110から命令復号器1
14へ転送するよう指示する。内部ループ命令セットア
ーキテクチャ(ISA)については、復号制御装置11
2は論理ブロック(CLB)ベースレジスタに結合され
た論理ブロック(CLB)ベースROMを含むROMベ
ース状態マシンとして実装されるのが好ましい。外部ル
ープ命令セットアーキテクチャ(ISA)については、
復号制御装置112は論理ブロック(CLB)ベース符
号化状態マシンとして実装されるのが好ましい。入力と
して受取った各命令については、命令復号器114は、
従来の方法で対応する操作コードと、レジスタファイル
アドレスと、選択的に1つまたはそれ以上の定数とを出
力する。内部ループ命令セットアーキテクチャ(IS
A)については、命令復号器114は入力として受取っ
た一連の命令を復号するよう構成されていることが好ま
しい。好ましい実施例では、命令復号器114は現在検
討中の命令セットアーキテクチャ(ISA)に含まれる
各命令を復号するために構成された論理ブロック(CL
B)ベース復号器として実装される。
The decoding control unit 112 sends an instruction from the instruction buffer 110 to the instruction decoder 1 in accordance with the decoded signal issued by the instruction set architecture (ISA) 100.
14 to be transferred. For the inner loop instruction set architecture (ISA), the decoding controller 11
2 is preferably implemented as a ROM-based state machine that includes a logic block (CLB) based ROM coupled to a logic block (CLB) base register. For the outer loop instruction set architecture (ISA),
The decoding controller 112 is preferably implemented as a logical block (CLB) based encoding state machine. For each instruction received as input, the instruction decoder 114
The corresponding operation code, register file address, and optionally one or more constants are output in a conventional manner. Inner loop instruction set architecture (IS
For A), the instruction decoder 114 is preferably configured to decode a sequence of instructions received as input. In the preferred embodiment, the instruction decoder 114 is a logic block (CL) configured to decode each instruction in the instruction set architecture (ISA) under consideration.
B) Implemented as a base decoder.

【0082】操作コード記憶レジスタセット116は、
命令復号器114による各操作コード出力を一時記憶
し、また各操作コードを命令状態シーケンサ(ISS)
100に出力する。外部ループ命令セットアーキテクチ
ャ(ISA)を動的再構成処理装置(DRPU)32に
実装するとき、操作コード記憶レジスタセット116は
最適数のフリップフロップレジスタバンクを用いて実装
されることが好ましい。フリップフロップレジスタバン
クは、命令バッファ110を通りすでに待ち行例を形成
している命令の操作コードリテラルビットフィールドか
ら導出されるクラスコードまたはグループコードを表す
信号を命令復号器114から受取る。フリップフロップ
レジスタバンクは、命令状態シーケンサ(ISS)の複
雑性を最小限にとどめることのできる復号スキームに従
って、前述のクラスコードまたはグループコードを記憶
する。内部ループ命令セットアーキテクチャ(ISA)
の場合には、操作コード記憶レジスタセット116は、
命令復号器114による操作コードリテラルビットフィ
ールドから直接導出される操作コード指示信号を記憶す
る。内部ループ命令セットアーキテクチャ(ISA)は
小さい操作コードリテラルビットフィールドを必然的に
有し、これによってそれぞれ命令バッファ110と、命
令復号器114と、操作コード記憶レジスタセット11
6とによるバッファリングと、復号化と、命令シーケン
シング(順序づけ)のための操作コード表示とについて
の実装要件を最小限にとどめる。以上をまとめると、外
部ループ命令セットアーキテクチャ(ISA)について
は、操作コード記憶レジスタセット116は操作コード
リテラルサイズに等しいビット幅またはその一部として
特徴付けられるフリップフロップレジスタバンクの小さ
な組合わせとして実装されることが好ましい。内部ルー
プについては、操作コード記憶レジスタセット116は
外部ループ命令セットアーキテクチャ(ISA)の場合
よりもフリップフロップレジスタバンクが小さくまた統
合されていることが好ましい。内部ループで、フリップ
フロップレジスタバンクのサイズが小さくて済むのは、
外部ループ命令セットアーキテクチャ(ISA)と比較
して内部ループ命令セットアーキテクチャ(ISA)の
命令数がきわめて少ないためである。
The operation code storage register set 116 includes:
Each operation code output by the instruction decoder 114 is temporarily stored, and each operation code is stored in an instruction state sequencer (ISS).
Output to 100. When implementing an outer loop instruction set architecture (ISA) in a dynamic reconfigurable processor (DRPU) 32, the operation code storage register set 116 is preferably implemented using an optimal number of flip-flop register banks. The flip-flop register bank receives from the instruction decoder 114 a signal representing a class code or group code derived from the operation code literal bit field of the instruction that has already formed the queue through the instruction buffer 110. The flip-flop register bank stores the aforementioned class code or group code according to a decoding scheme that can minimize the complexity of the instruction state sequencer (ISS). Inner loop instruction set architecture (ISA)
In the case of the operation code storage register set 116,
An operation code indication signal directly derived from the operation code literal bit field by the instruction decoder 114 is stored. The inner loop instruction set architecture (ISA) necessarily has a small operation code literal bit field, which causes an instruction buffer 110, an instruction decoder 114, and an operation code storage register set 11 respectively.
6 minimizes implementation requirements for buffering, decoding, and operation code display for instruction sequencing. In summary, for the outer loop instruction set architecture (ISA), the operation code storage register set 116 is implemented as a small combination of flip-flop register banks characterized as a bit width equal to or part of the operation code literal size. Preferably. For the inner loop, the operation code storage register set 116 preferably has a smaller and integrated flip-flop register bank than in the outer loop instruction set architecture (ISA). The only reason why the size of the flip-flop register bank in the inner loop is small is that
This is because the number of instructions of the inner loop instruction set architecture (ISA) is extremely small compared to the outer loop instruction set architecture (ISA).

【0083】レジスタファイル(RF)アドレスレジス
タセット118と定数レジスタセット120は、それぞ
れ命令復号器114による各レジスタファイルと各定数
出力とを一時記憶する。好ましい実施例では、操作コー
ド記憶レジスタセット116と、レジスタファイル(R
F)アドレスレジスタセット118と、定数レジスタセ
ット120とはそれぞれデータ記憶のために構成された
1組の論理ブロック(CLB)として実装される。
The register file (RF) address register set 118 and the constant register set 120 temporarily store each register file and each constant output by the instruction decoder 114, respectively. In the preferred embodiment, the operation code storage register set 116 and the register file (R
F) Address register set 118 and constant register set 120 are each implemented as a set of logic blocks (CLBs) configured for data storage.

【0084】メモリアクセスロジック102は、アーキ
テクチャ記述メモリ122で指定されたアトミックメモ
リアドレスのサイズに従って、メモリ34と、データ演
算装置(DOU)62と、アドレス演算装置(AOU)
64との間でデータの転送を指示し同期させるメモリ制
御回路である。メモリアクセスロジック102はさら
に、Sマシン12と所定のTマシン14との間のデータ
とコマンドの転送を指示し同期させる。好ましい実施例
では、メモリアクセスロジック102はバーストメモリ
アクセスを支援し、論理ブロック(CLB)を用いた従
来型のRAMコントローラとして実装されることが好ま
しい。当業者は、再構成中に、再構成論理装置の入力ピ
ンと出力ピンが3値であり、抵抗停止によって非表明ロ
ジックレベルを定めることができ、したがってメモリ3
4を混乱させないことを認めるであろう。別の実施例で
は、メモリアクセスロジック102は動的再構成処理装
置(DRPU)32の外部に実装することができる。
The memory access logic 102 has a memory 34, a data operation unit (DOU) 62, and an address operation unit (AOU) according to the size of the atomic memory address specified in the architecture description memory 122.
64 is a memory control circuit for instructing and synchronizing data transfer with the H.64. The memory access logic 102 further directs and synchronizes the transfer of data and commands between the S machine 12 and a given T machine 14. In a preferred embodiment, memory access logic 102 supports burst memory access and is preferably implemented as a conventional RAM controller using logic blocks (CLBs). Those skilled in the art will recognize that during reconfiguration, the input and output pins of the reconfigurable logic device are ternary, and that a non-asserted logic level can be defined by a resistive stop, and thus the memory 3
Would admit not to confuse 4. In another embodiment, memory access logic 102 may be implemented external to dynamic reconfiguration processor (DRPU) 32.

【0085】図11は、データ演算装置62の好ましい
実施例の構成図である。データ演算装置(DOU)62
はデータ演算装置(DOU)制御信号と、レジスタファ
イル(RF)アドレスと、命令セットアーキテクチャ
(ISA)100から受取った定数とに従ってデータに
ついて演算を実行する。データ演算装置(DOU)62
は、データ演算装置(DOU)クロスバースイッチ15
0と、記憶/整列ロジック152と、データ演算ロジッ
ク154とを含んでいる。データ演算装置(DOU)ク
ロスバースイッチ150と、記憶/整列ロジック152
と、データ演算ロジック154とはそれぞれ第1制御ラ
イン70を経て命令取出し装置(IFU)60の第1制
御出力部に結合された制御入力部を含んでいる。データ
演算装置(DOU)クロスバースイッチ150は、デー
タ演算装置(DOU)の双方向データポートを形成する
双方向データポートと、第3制御ライン74に結合され
た定数入力部と、第1データライン160を経てデータ
演算ロジック154のデータ出力部に結合された第1デ
ータフィードバック入力部と、第2データライン164
を経て記憶/整列ロジック152のデータ出力部に結合
された第2データフィードバック入力部と、第3データ
ラインを経て記憶/整列ロジック152のデータ入力部
に結合されたデータ出力部とを含んでいる。記憶/整列
ロジック152は、そのデータ出力部の他に、第3制御
ライン74に結合されたアドレス入力部を含んでいる。
データ演算ロジック154は、さらに第2データライン
164を経て記憶/整列ロジックの出力部に結合された
データ入力部を含んでいる。
FIG. 11 is a block diagram of a preferred embodiment of the data arithmetic unit 62. Data operation unit (DOU) 62
Performs operations on data according to data operation unit (DOU) control signals, register file (RF) addresses, and constants received from instruction set architecture (ISA) 100. Data operation unit (DOU) 62
Is a data operation unit (DOU) crossbar switch 15
0, storage / alignment logic 152, and data operation logic 154. Data operation unit (DOU) crossbar switch 150 and storage / alignment logic 152
And the data operation logic 154 each include a control input coupled to a first control output of an instruction fetch unit (IFU) 60 via a first control line 70. The data operation unit (DOU) crossbar switch 150 includes a bidirectional data port forming a bidirectional data port of the data operation unit (DOU), a constant input unit coupled to the third control line 74, and a first data line. A first data feedback input coupled to a data output of data operation logic 154 via a second data line 164;
And a data output coupled to the data output of the storage / alignment logic 152 via a third data line and a data output coupled to the data input of the storage / alignment logic 152 via a third data line. . The storage / alignment logic 152 includes an address input coupled to the third control line 74 in addition to its data output.
Data operation logic 154 further includes a data input coupled via a second data line 164 to an output of the storage / alignment logic.

【0086】データ演算ロジック154は、その制御入
力部で受取ったデータ演算装置(DOU)制御信号に応
じて、そのデータ入力部で受取ったデータについて、算
術演算、シフト演算及び/または論理演算を実行する。
記憶/整列ロジック152は、それぞれそのアドレス入
力部と制御入力部とで受取ったレジスタファイル(R
F)アドレスとデータ演算装置(DOU)制御の指示に
従って、オペランドと、定数と、データ計算に関連した
部分的結果とを一時記憶するデータ記憶素子を含んでい
る。データ演算装置(DOU)クロスバースイッチ15
0は、その制御入力部で受取ったデータ演算装置(DO
U)制御信号に従って、メモリ34からのデータのロー
ディングと、データ演算ロジック154による結果出力
の記憶/整列ロジック152またはメモリ34への転送
と、命令取出し装置(IFU)60による定数出力の記
憶/整列ロジック152へのローディングとを容易にす
るような従来型のクロスバースイッチネットワークであ
ることが好ましい。好ましい実施例では、データ演算ロ
ジック154の詳細な構造は、現在検討中の命令セット
アーキテクチャ(ISA)によって支援される演算の種
類によって定まる。すなわち、データ演算ロジック15
4は、現在検討中の命令セットアーキテクチャ(IS
A)内のデータ処理命令によって指定された算術演算及
び/または論理演算を実行するための回路を含んでい
る。同様に、記憶/整列ロジック152とデータ演算装
置(DOU)クロスバースイッチ150の詳細な構造
は、現在検討中の命令セットアーキテクチャ(ISA)
によって定まる。命令セットアーキテクチャ(ISA)
の種類によるデータ演算ロジック154と、記憶/整列
ロジック152と、データ演算装置(DOU)クロスバ
ースイッチ150との詳細な構造は、図12及び図13
を参照して下記に詳しく説明する。
Data operation logic 154 performs arithmetic, shift, and / or logical operations on data received at the data input in response to a data operation unit (DOU) control signal received at the control input. I do.
The storage / alignment logic 152 receives the register file (R) at its address and control inputs, respectively.
F) It includes a data storage element for temporarily storing operands, constants, and partial results related to data calculation according to an instruction of an address and a data operation unit (DOU) control. Data operation unit (DOU) crossbar switch 15
0 is the data arithmetic unit (DO) received at the control input unit.
U) Loading of data from the memory 34 in accordance with the control signal, storage / alignment of the result output by the data operation logic 154 to the logic 152 or the memory 34, and storage / alignment of the constant output by the instruction fetch unit (IFU) 60. Preferably, it is a conventional crossbar switch network that facilitates loading into logic 152. In the preferred embodiment, the detailed structure of the data operation logic 154 depends on the type of operation supported by the instruction set architecture (ISA) currently under consideration. That is, the data operation logic 15
4 is an instruction set architecture (IS
It includes circuitry for performing the arithmetic and / or logical operations specified by the data processing instructions in A). Similarly, the detailed structures of the storage / alignment logic 152 and the data operation unit (DOU) crossbar switch 150 are described in the instruction set architecture (ISA) currently under consideration.
Is determined by Instruction Set Architecture (ISA)
The detailed structures of the data operation logic 154, the storage / alignment logic 152, and the data operation unit (DOU) crossbar switch 150 according to the type of the data operation are shown in FIGS.
The details will be described below with reference to FIG.

【0087】外部ループ命令セットアーキテクチャ(I
SA)については、データ演算装置(DOU)62はデ
ータに対して逐次演算を実行するよう構成されているこ
とが好ましい。図12は、汎用外部ループ命令セットア
ーキテクチャ(ISA)の実動化のために構成されたデ
ータ演算装置(DOU)61の第1模範実施例の構成図
である。汎用外部ループ命令セットアーキテクチャ(I
SA)では、乗算、加算、減算などの数学的演算と、A
ND、OR、NOTなどのブール演算と、シフト演算
と、回転演算とを実行するために構成されたハードウェ
アが必要である。したがって、汎用外部ループ命令セッ
トアーキテクチャ(ISA)の実装については、データ
演算ロジック154は第1入力部と、第2入力部と、制
御入力部と、出力部とを有する従来型の演算論理装置
(ALU)/シフタ184とを含んでいることが好まし
い。記憶/整列ロジック152は、第1RAM180と
第2RAM182とで構成されていることが好ましく、
これはそれぞれデータ入力部と、データ出力部と、アド
レス選択入力部と、イネーブル入力部とを含んでいる。
データ演算装置(DOU)クロスバースイッチ150
は、双方向及び単方向クロスバー結合部を有し、また図
11を用いてすでに説明したような入力部と出力部とを
有する従来型のクロスバースイッチネットワークを含ん
でいることが好ましい。当業者は、外部ループ命令セッ
トアーキテクチャ(ISA)のためのデータ演算装置
(DOU)クロスバースイッチ150の効率的な実動化
には、マルチプレクサと、3値バッファと、論理ブロッ
ク(CLB)ベースロジックと、直接配線と、または再
構成結合手段によって、いずれかの組合わせで結合され
た上記構成部分のサブセットが含まれることを認めるで
あろう。外部ループについては、データ演算装置(DO
U)クロスバースイッチ150は最短時間で逐次データ
移動を促進するよう実動化されるが、汎用外部ループ命
令を支援するために最大数の単一データ移動クロスバー
結合部も提供する。
External Loop Instruction Set Architecture (I
Regarding SA), it is preferable that the data operation unit (DOU) 62 is configured to execute a sequential operation on the data. FIG. 12 is a configuration diagram of a first exemplary embodiment of a data arithmetic unit (DOU) 61 configured for realizing a general-purpose external loop instruction set architecture (ISA). General-purpose external loop instruction set architecture (I
In SA), mathematical operations such as multiplication, addition, and subtraction, and A
Hardware configured to perform Boolean operations such as ND, OR, NOT, shift operations, and rotation operations is required. Thus, for a general-purpose outer loop instruction set architecture (ISA) implementation, the data operation logic 154 includes a conventional arithmetic logic device having a first input, a second input, a control input, and an output. ALU) / shifter 184. The storage / alignment logic 152 preferably comprises a first RAM 180 and a second RAM 182,
It includes a data input, a data output, an address selection input, and an enable input, respectively.
Data operation unit (DOU) crossbar switch 150
Preferably comprises a conventional crossbar switch network having bidirectional and unidirectional crossbar couplings and having inputs and outputs as already described with reference to FIG. Those skilled in the art will appreciate that efficient implementation of a data operation unit (DOU) crossbar switch 150 for an outer loop instruction set architecture (ISA) requires multiplexers, ternary buffers, and logic block (CLB) based logic. It will be appreciated that sub-sets of the above components coupled in any combination by direct wiring or by reconfiguration coupling means are included. For the outer loop, the data operation unit (DO
U) Crossbar switch 150 is implemented to facilitate sequential data movement in the shortest amount of time, but also provides the maximum number of single data movement crossbar couplings to support universal outer loop instructions.

【0088】第1RAM180のデータ入力部は第2R
AM182のデータ入力部と同様に、第3データライン
162を経てデータ演算装置(DOU)クロスバースイ
ッチ150のデータ出力部に結合されている。第1RA
M180と第2RAM182とのアドレス選択入力部
は、第3制御ライン74を経て命令取出し装置(IF
U)60からレジスタファイルアドレスを受取るよう結
合されている。同様に、第1RAM180と第2RAM
182とのイネーブル入力部は、第1制御ライン70を
経てデータ演算装置(DOU)制御信号を受取るよう結
合されている。第1RAM180と第2RAM182と
のデータ出力部は、それぞれALU/シフタ184の第
1入力部と第2入力部に結合されており、またデータ演
算装置(DOU)クロスバースイッチ150の第2デー
タフィードバック入力部にも結合されている。ALU/
シフタ184の制御入力部は、第1制御ライン70を経
てデータ演算装置(DOU)制御信号を受取るよう結合
されている。またALU/シフタ184の出力部は、デ
ータ演算装置(DOU)クロスバースイッチ150の第
1データフィードバック入力部に結合されている。デー
タ演算装置(DOU)クロスバースイッチ150の残り
の入力部と出力部への結合部は、図11を用いて上記に
説明したものと同一である。
The data input section of the first RAM 180 is the second R
Similar to the data input of the AM 182, it is coupled via a third data line 162 to the data output of a data operation unit (DOU) crossbar switch 150. 1st RA
An address selection input unit of the M180 and the second RAM 182 is connected to an instruction fetching device (IF
U) 60 to receive the register file address. Similarly, the first RAM 180 and the second RAM
An enable input to 182 is coupled to receive a data processing unit (DOU) control signal via a first control line 70. The data outputs of the first RAM 180 and the second RAM 182 are respectively coupled to the first input and the second input of the ALU / shifter 184, and the second data feedback input of the data operation unit (DOU) crossbar switch 150. The part is also joined. ALU /
The control input of shifter 184 is coupled to receive a data processing unit (DOU) control signal via first control line 70. Also, the output of ALU / shifter 184 is coupled to a first data feedback input of data arithmetic unit (DOU) crossbar switch 150. The connections to the remaining inputs and outputs of the data operation unit (DOU) crossbar switch 150 are the same as those described above with reference to FIG.

【0089】データ演算命令の実行を容易にするため
に、命令取出し装置(IFU)60は命令状態シーケン
サ(ISS)が状態EまたはMであるときに、データ演
算装置(DOU)制御信号と、レジスタファイル(R
F)アドレス信号と、定数信号とをデータ演算装置(D
OU)61に発する。第1RAM180と第2RAM1
82とは、それぞれ一時データ記憶のための第1及び第
2レジスタファイルを提供する。第1RAM180と第
2RAM182内の個々のアドレスは、各RAMのそれ
ぞれのアドレス選択入力部で受取ったレジスタファイル
(RF)アドレスに従って選択される。同様に、第1R
AM180と第2RAM182のローディングは、その
書込みイネーブル入力部で各第1RAM180と第2R
AM182とがそれぞれ受取るデータ演算装置(DO
U)制御信号によって制御される。好ましい実施例で
は、第1RAM180と第2RAM182の少なくとも
1個が、データ演算装置(DOU)クロスバースイッチ
150からALU/シフタ184へデータを直接転送す
るのを容易にするための伝達(引渡し)能力を含んでい
る。ALU/シフタ184は、その制御入力部で受取っ
たデータ演算装置(DOU)制御信号の指示に従って、
第1RAM180から受取った第1オペランドに基づい
て、及び/または第2RAM182から受取った第2オ
ペランドに基づいて、算術演算、論理演算、またはシフ
ト(桁送り)演算を実行する。データ演算装置(DO
U)クロスバースイッチ150は選択的に、 1)メモリ34と第1RAM180及び第2RAM18
2との間のデータのルーティングと、 2)ALU/シフタ184から第1RAM180及び第
2RAM182へ、またはメモリ34への結果のルーテ
ィングと、 3)第1RAM180または第2RAM182に記憶さ
れたデータのメモリ34へのルーティングと、 4)命令取出し装置(IFU)60から第1RAM18
0及び第2RAM182への定数のルーティングと、 を行う。すでに述べたように、第1RAM180か第2
RAM182のいずれかが伝達能力を有するときには、
データ演算装置(DOU)クロスバースイッチ150も
選択的にメモリ34からALU/シフタ184に、また
はALU/シフタの出力部からALU/シフタ184に
直接戻るようデータをルーティングする。データ演算装
置(DOU)クロスバースイッチ150は、その制御入
力部で受取ったデータ演算装置(DOU)制御信号に従
って、特定のルーティング演算を実行する。好ましい実
施例では、ALU/シフタ184は再構成論理装置内の
数学的演算用の1組の論理ブロック(CLB)と回路内
の論理関数発生器を用いて実装される。第1RAM18
0と第2RAM182は、それぞれ1組の論理ブロック
(CLB)内に存在するデータ記憶回路を用いて実装さ
れることが好ましい。データ演算装置(DOU)クロス
バースイッチ150は、すでに述べた方法で実装される
ことが好ましい。
To facilitate the execution of data operation instructions, instruction fetch unit (IFU) 60 includes a data operation unit (DOU) control signal and a register when the instruction state sequencer (ISS) is in state E or M. File (R
F) The address signal and the constant signal are converted into a data operation device (D
OU) 61. First RAM 180 and second RAM 1
82 provides first and second register files, respectively, for temporary data storage. Individual addresses in the first RAM 180 and the second RAM 182 are selected according to the register file (RF) address received at the respective address selection input of each RAM. Similarly, the first R
The loading of the AM 180 and the second RAM 182 is performed by the write enable input of each of the first RAM 180 and the second RAM 182.
AM182 and the data arithmetic unit (DO
U) Controlled by control signals. In a preferred embodiment, at least one of the first RAM 180 and the second RAM 182 has a transfer capability to facilitate the direct transfer of data from the data operation unit (DOU) crossbar switch 150 to the ALU / shifter 184. Contains. ALU / shifter 184 operates according to the instructions of the data operation unit (DOU) control signal received at its control input.
Perform an arithmetic, logical, or shift operation based on the first operand received from first RAM 180 and / or based on the second operand received from second RAM 182. Data arithmetic unit (DO
U) The crossbar switch 150 is selectively: 1) The memory 34, the first RAM 180, and the second RAM 18
2) routing of the results from ALU / shifter 184 to first RAM 180 and second RAM 182 or to memory 34; 3) to memory 34 of data stored in first RAM 180 or second RAM 182. 4) Instruction fetch unit (IFU) 60 to first RAM 18
0 and the routing of constants to the second RAM 182. As already mentioned, the first RAM 180 or the second
When any of the RAMs 182 has a transmission capability,
A data operation unit (DOU) crossbar switch 150 also selectively routes data from the memory 34 back to the ALU / shifter 184 or directly from the output of the ALU / shifter to the ALU / shifter 184. Data operation unit (DOU) crossbar switch 150 performs a specific routing operation according to a data operation unit (DOU) control signal received at its control input. In a preferred embodiment, ALU / shifter 184 is implemented using a set of logic blocks (CLBs) for mathematical operations in the reconfigurable logic and logic function generators in the circuit. First RAM 18
0 and the second RAM 182 are preferably implemented using data storage circuits, each of which resides in a set of logic blocks (CLBs). The data operation unit (DOU) crossbar switch 150 is preferably implemented in the manner already described.

【0090】図13は、内部ループ命令セットアーキテ
クチャ(ISA)の実動化のために構成されたデータ演
算装置(DOU)63の第2模範実施例の構成図であ
る。一般に内部ループ命令セットアーキテクチャ(IS
A)は比較的少ない専用演算を支援し、大きなデータセ
ットに対して共通した演算セットを実行するのに用いる
ことが好ましい。したがって、内部ループ命令セットア
ーキテクチャ(ISA)のための最適の計算性能は、演
算を並列に実行するために構成されたハードウェアによ
って得られる。したがってデータ演算装置(DOU)6
3の第2模範実施例では、データ演算ロジック154
と、記憶/整列ロジック152と、データ演算装置(D
OU)クロスバースイッチ150とはパイプライン計算
を実行するよう構成される。データ演算ロジック154
は、複数の入力部と、制御入力部と、出力部とを有する
パイプライン機能単位194を含んでいる。記憶/整列
ロジック152は、 1)1組の従来型のフリップフロップアレイ192(そ
れぞれがデータ入力部と、データ出力部と、制御入力部
とを含んでいる)と、 2)データセレクタ190(制御入力部と、データ入力
部と、フリップフロップアレイ192に対応する数のデ
ータ出力部とを含んでいる)と、 を含んでいる。データ演算装置(DOU)クロスバース
イッチ150は、二重単方向クロスバー結合部を有する
従来型のクロスバースイッチネットワークを含んでい
る。データ演算装置(DOU)63の第2模範実施例で
は、データ演算装置(DOU)クロスバースイッチ15
0は第2データフィードバック入力部を除き、図11を
用いてすでに説明した入力部と出力部とを含んでいるこ
とが好ましい。外部ループ命令セットアーキテクチャ
(ISA)の場合と同様に、内部ループ命令セットアー
キテクチャ(ISA)のためのデータ演算装置(DO
U)クロスバースイッチ150の効率的な実装には、マ
ルチプレクサと、3値バッファと、論理ブロック(CL
B)ベースロジックと、直接配線と、または再構成可能
な方法で結合された上記構成部分のサブセットとを含め
ることができる。内部ループ命令セットアーキテクチャ
(ISA)については、データ演算装置(DOU)クロ
スバースイッチ150は最短時間で並列データ移動を最
大にするよう実装されるのが好ましいが、高度パイプラ
イン化内部ループ命令セットアーキテクチャ(ISA)
命令を支援するために、最小数の単一データ動作クロス
バー結合部も提供する。
FIG. 13 is a configuration diagram of a second exemplary embodiment of the data arithmetic unit (DOU) 63 configured for realizing the inner loop instruction set architecture (ISA). Generally, the inner loop instruction set architecture (IS
A) preferably supports relatively few dedicated operations and is used to perform a common set of operations on large data sets. Thus, optimal computational performance for an inner loop instruction set architecture (ISA) is provided by hardware configured to execute operations in parallel. Therefore, the data operation unit (DOU) 6
In the second exemplary embodiment of FIG.
, Storage / alignment logic 152, and a data operation device (D
OU) crossbar switch 150 is configured to perform pipeline calculations. Data operation logic 154
Includes a pipeline functional unit 194 having a plurality of inputs, a control input, and an output. The storage / alignment logic 152 includes: 1) a set of conventional flip-flop arrays 192 (each including a data input, a data output, and a control input); and 2) a data selector 190 (control). An input section, a data input section, and a number of data output sections corresponding to the number of flip-flop arrays 192). Data operation unit (DOU) crossbar switch 150 includes a conventional crossbar switch network with dual unidirectional crossbar connections. In the second exemplary embodiment of the data operation unit (DOU) 63, the data operation unit (DOU) crossbar switch 15
0 preferably includes the input and output already described with reference to FIG. 11, except for the second data feedback input. As with the outer loop instruction set architecture (ISA), the data operation unit (DO) for the inner loop instruction set architecture (ISA)
U) Efficient implementation of crossbar switch 150 includes multiplexers, ternary buffers, and logic blocks (CL
B) It may include base logic, direct wiring, or a subset of the above components combined in a reconfigurable manner. For the inner loop instruction set architecture (ISA), the data operation unit (DOU) crossbar switch 150 is preferably implemented to maximize parallel data movement in the shortest amount of time, but with a highly pipelined inner loop instruction set architecture. (ISA)
A minimum number of single data operation crossbar connectors are also provided to support the instructions.

【0091】データセレクタ190のデータ入力部は、
第1データライン162を経てデータ演算装置(DO
U)クロスバースイッチ150のデータ出力部に結合さ
れている。データセレクタ190の制御入力部は、第3
制御ライン74を経てレジスタファイル(RF)アドレ
スを受取るよう結合されており、データセレクタ190
の各出力部は、対応するフリップフロップアレイデータ
入力部に結合されている。各フリップフロップアレイ1
92の制御入力部は、第1制御ライン70を経てデータ
演算装置(DOU)制御信号を受取るよう結合されてお
り、各フリップフロップアレイデータ出力部は機能単位
194の入力部に結合されている。機能単位194の制
御入力部は、第1制御ライン70を経てデータ演算装置
(DOU)制御信号を受取るよう結合されており、機能
単位194の出力部はデータ演算装置(DOU)クロス
バースイッチ150の第1データフィードバック入力部
に結合されている。データ演算装置(DOU)クロスバ
ースイッチ150の残りの入力部と出力部の結合部は、
図11を用いて既に説明したものと同一である。
The data input section of the data selector 190
Data operation device (DO) via first data line 162
U) It is coupled to the data output of the crossbar switch 150. The control input of the data selector 190 is
The data selector 190 is coupled to receive a register file (RF) address via control line 74.
Are coupled to corresponding flip-flop array data inputs. Each flip-flop array 1
A control input of 92 is coupled to receive a data operation unit (DOU) control signal via a first control line 70, and each flip-flop array data output is coupled to an input of a functional unit 194. The control input of the functional unit 194 is coupled to receive a data processing unit (DOU) control signal via the first control line 70, and the output of the functional unit 194 is connected to the data processing unit (DOU) crossbar switch 150. It is coupled to a first data feedback input. The remaining input section and output section of the data operation unit (DOU) crossbar switch 150 are
This is the same as that already described with reference to FIG.

【0092】演算では、機能単位194はその制御入力
部で受取ったデータ演算装置(DOU)制御信号に従っ
てそのデータ入力部で受取ったデータに対してパイプラ
イン演算を実行する。当業者は、機能単位194が乗算
/累算装置か、閾値決定装置か、画像回転装置か、エッ
ジ強調装置か、または区分されたデータに対してパイプ
ライン演算を実行するのに適したいずれかの種類の機能
単位であることを認めるであろう。データセレクタ19
0は、その制御入力部で受取ったレジスタファイル(R
F)アドレスに従ってデータ演算装置(DOU)クロス
バースイッチ150の出力部から所定のフリップフロッ
プアレイ192へデータをルーティング(経路決定)す
る。各フリップフロップアレイ192は、その制御入力
部で受取った制御信号の指示に従って、もう1個のフリ
ップフロップアレイ192のデータ内容に対してデータ
を空間的、時間的に整列させるために逐次結合されたデ
ータラッチを含んでいることが好ましい。データ演算装
置(DOU)クロスバースイッチ150は選択的に、 1)データをメモリ34からデータセレクタ190へル
ーティングし、 2)結果を乗算/累算装置194からデータセレクタ1
90またはメモリ34へルーティングし、 3)定数を命令取出し装置(IFU)60からデータセ
レクタ190へルーティングする。 当業者は、内部ループ命令セットアーキテクチャ(IS
A)が1組の「内蔵」定数を含んでいることを認めるで
あろう。このような内部ループ命令セットアーキテクチ
ャ(ISA)の実装では、記憶/整列ロジック154が
内蔵定数を有する論理ブロック(CLB)ベースROM
を含んでいることが好ましく、これによってデータ演算
装置(DOU)クロスバースイッチ150を経て命令取
出し装置(IFU)60から記憶/整列ロジック152
へ定数をルーティングする必要性をなくすことができ
る。好ましい実施例では、機能単位194は1組の論理
ブロック(CLB)内の数学的演算用の論理関数発生器
と回路とを用いて実装されるのが好ましい。各フリップ
フロップアレイ192は1組の論理ブロック(CLB)
内のフリップフロップを用いて実装されることが好まし
い。データセレクタ190は1組の論理ブロック(CL
B)内の論理関数発生器とデータ選択回路とを用いて実
装されることが好ましい。最後にデータ演算装置(DO
U)クロスバースイッチ150は、内部ループについて
すでに説明した方法で実装されることが好ましい。
In operation, functional unit 194 performs a pipeline operation on data received at its data input in accordance with a data operation unit (DOU) control signal received at its control input. One skilled in the art will recognize that the functional unit 194 is a multiply / accumulator, a threshold determiner, an image rotator, an edge enhancer, or any other suitable for performing pipeline operations on partitioned data. It will be appreciated that this is a type of functional unit. Data selector 19
0 is the register file (R
F) Data is routed (determined) from the output of the data operation unit (DOU) crossbar switch 150 to a predetermined flip-flop array 192 according to the address. Each flip-flop array 192 is sequentially coupled to spatially and temporally align data with the data content of another flip-flop array 192, as indicated by a control signal received at its control input. Preferably, it includes a data latch. The data operation unit (DOU) crossbar switch 150 selectively: 1) routes the data from the memory 34 to the data selector 190; 2) passes the result from the multiplication / accumulation unit 194 to the data selector 1
3) Route constants from instruction fetch unit (IFU) 60 to data selector 190. One skilled in the art will recognize the inner loop instruction set architecture (IS
It will be appreciated that A) contains a set of "built-in" constants. In such an internal loop instruction set architecture (ISA) implementation, the storage / alignment logic 154 has a logic block (CLB) based ROM with built-in constants.
, So that the storage / alignment logic 152 from the instruction fetch unit (IFU) 60 via the data operation unit (DOU) crossbar switch 150
This eliminates the need to route constants to In the preferred embodiment, the functional units 194 are preferably implemented using logic function generators and circuits for mathematical operations in a set of logic blocks (CLBs). Each flip-flop array 192 is a set of logic blocks (CLB).
It is preferably implemented using flip-flops within. The data selector 190 is a set of logical blocks (CL
It is preferably implemented using the logic function generator and the data selection circuit in B). Finally, the data operation device (DO
U) The crossbar switch 150 is preferably implemented in the manner already described for the inner loop.

【0093】図14は、アドレス演算装置(AOU)6
4の好ましい実施例の構成図である。アドレス演算装置
(AOU)64は、アドレス演算装置(AOU)制御信
号と、レジスタファイル(RF)アドレスと、命令取出
し装置(IFU)60から受取った定数とに従ってアド
レスに対して演算を実行する。アドレス演算装置(AO
U)64は、アドレス演算装置(AOU)クロスバース
イッチ200と、記憶/計数ロジック202と、アドレ
ス演算ロジック204と、アドレスマルチプレクサ20
6とを含んでいる。アドレス演算装置(AOU)クロス
バースイッチ200と、記憶/計数ロジック202と、
アドレス演算ロジック204と、アドレスマルチプレク
サ206とは、それぞれ第2制御ライン72を経て命令
取出し装置(IFU)60の第2制御出力部に結合され
た制御入力部を含んでいる。アドレス演算装置(AO
U)クロスバースイッチ200は、アドレス演算装置
(AOU)の双方向データポートを形成する双方向デー
タポートと、第1アドレスライン210を経てアドレス
演算ロジック204のアドレス出力部に結合されたアド
レスフィードバック入力部と、第3制御ライン74に結
合された定数入力部と、第2アドレスライン212を経
て記憶/計数ロジック202のアドレス入力部に結合さ
れたアドレス出力部とを含んでいる。記憶/計数ロジッ
ク202は、そのアドレス入力部と制御入力部の他に、
第3制御ライン74に結合されたレジスタファイル(R
F)アドレス入力部と、第3アドレスライン214を経
てアドレス演算ロジック204のアドレス入力部に結合
されたアドレス出力部とを含んでいる。アドレスマルチ
プレクサ206は、第1アドレスライン210に結合さ
れた第1入力部と、第3アドレスライン214に結合さ
れた第2入力部と、アドレス演算装置(AOU)64の
アドレス出力部を形成する出力部とを含んでいる。
FIG. 14 shows an address operation unit (AOU) 6
FIG. 4 is a configuration diagram of a fourth preferred embodiment. The address operation unit (AOU) 64 performs an operation on the address according to the address operation unit (AOU) control signal, the register file (RF) address, and the constant received from the instruction fetch unit (IFU) 60. Address arithmetic unit (AO
U) 64 is an address operation unit (AOU) crossbar switch 200, storage / counting logic 202, address operation logic 204, and address multiplexer 20.
6 is included. An address operation unit (AOU) crossbar switch 200, a storage / counting logic 202,
Address operation logic 204 and address multiplexer 206 each include a control input coupled to a second control output of instruction fetch unit (IFU) 60 via second control line 72. Address arithmetic unit (AO
U) The crossbar switch 200 includes a bidirectional data port forming a bidirectional data port of an address operation unit (AOU) and an address feedback input coupled to an address output of the address operation logic 204 via a first address line 210. And a constant input coupled to the third control line 74 and an address output coupled to the address input of the storage / counting logic 202 via a second address line 212. The storage / counting logic 202, in addition to its address and control inputs,
A register file (R) coupled to the third control line 74
F) Includes an address input and an address output coupled to the address input of address arithmetic logic 204 via third address line 214. Address multiplexer 206 has a first input coupled to first address line 210, a second input coupled to third address line 214, and an output forming an address output of address operation unit (AOU) 64. Department and contains.

【0094】アドレス演算ロジック204は、その制御
入力部で受取ったアドレス演算装置(AOU)制御信号
の指示に従ってそのアドレス入力部で受取ったアドレス
に対して算術演算を実行する。記憶/計数ロジック20
2は、アドレス及びアドレス計算結果を一時記憶する。
アドレス演算装置(AOU)クロスバースイッチ200
は、その制御入力部で受取ったアドレス演算装置(AO
U)制御信号に従って、メモリ34からのアドレスのロ
ーディングと、アドレス演算ロジック204の結果出力
の記憶/計数ロジック202またはメモリ34への転送
と、命令取出し装置(IFU)60による定数出力の記
憶/計数ロジック202へのローディングとを容易にす
る。アドレスマルチプレクサ206は、その制御入力部
で受取ったアドレス演算装置(AOU)制御信号の指示
に従って、記憶/計数ロジック202またはアドレスマ
ルチプレクサ206から受取ったアドレスをアドレス演
算装置(AOU)64のアドレス出力部に選択的に出力
する。好ましい実施例では、アドレス演算装置(AO
U)クロスバースイッチ200と、記憶/計数ロジック
202と、アドレス演算ロジック204との詳細な構造
は、図15と図16を用いて下記に説明するように、現
在検討中の命令セットアーキテクチャ(ISA)の種類
により定まる。
Address operation logic 204 performs an arithmetic operation on the address received at the address input according to the instruction of the address operation unit (AOU) control signal received at the control input. Storage / counting logic 20
2 temporarily stores the address and the address calculation result.
Address operation unit (AOU) crossbar switch 200
Is the address arithmetic unit (AO) received at the control input unit.
U) Loading of the address from the memory 34, transfer of the result output of the address operation logic 204 to the storage / counting logic 202 or the memory 34, and storage / counting of the constant output by the instruction fetch unit (IFU) 60 according to the control signal. Loading into the logic 202 is facilitated. The address multiplexer 206 transfers the address received from the storage / counting logic 202 or the address multiplexer 206 to the address output of the address arithmetic unit (AOU) 64 in accordance with the instruction of the address arithmetic unit (AOU) control signal received at its control input. Selectively output. In the preferred embodiment, the address arithmetic unit (AO
U) The detailed structure of the crossbar switch 200, the storage / counting logic 202, and the address operation logic 204 will be described below with reference to FIGS. ) Is determined by the type.

【0095】図15は、汎用外部ループ命令セットアー
キテクチャ(ISA)の実動化のために構成されたアド
レス演算装置(AOU)65の第1模範実施例の構成図
である。汎用外部ループ命令セットアーキテクチャ(I
SA)では、記憶/計数ロジック202に記憶されたプ
ログラムカウンタとアドレスの内容に対して加算、減
算、インクリメント、及びデクリメントなどの演算を実
行するためのハードウェアが必要である。アドレス演算
装置(AOU)65の第1模範実施例では、アドレス演
算ロジック204は、入力部と、出力部と、制御入力部
とを有する次命令プログラムアドレスレジスタ(NIP
AR)232と、第1入力部と、第2入力部と、第3入
力部と、制御入力部と、出力部とを有する演算装置23
4と、第1入力部と、第2入力部と、制御入力部と、出
力部とを有するマルチプレクサ230とを含んでいるこ
とが好ましい。記憶/計数ロジック202は、それぞれ
入力部と、出力部と、アドレス選択入力部と、イネーブ
ル入力部とを有する第3RAM220と第4RAM22
2とを含んでいることが好ましい。アドレスマルチプレ
クサ206は、第1入力部と、第2入力部と、第3入力
部と、制御入力部と、出力部とを有するマルチプレクサ
を含んでいることが好ましい。アドレス演算装置(AO
U)クロスバースイッチ200は、二重単方向クロスバ
ー結合部と、図14を用いてすでに説明した入力部と出
力部とを有する従来型クロスバースイッチネットワーク
を含んでいることが好ましい。アドレス演算装置(AO
U)クロスバースイッチ200の効率的な実動化には、
マルチプレクサと、3値バッファと、論理ブロック(C
LB)ベースロジックと、直接配線と、または再構成結
合部によって結合されたこのような構成部分のサブセッ
トが含まれる。外部ループ命令セットアーキテクチャ
(ISA)については、アドレス演算装置(AOU)ク
ロスバースイッチ200は最短時間で逐次データ移動を
最大化するよう実装されることが好ましいが、汎用外部
ループアドレス演算命令を支援するために最大数の一意
のアドレス移動クロスバー結合部も提供する。
FIG. 15 is a configuration diagram of a first exemplary embodiment of an address arithmetic unit (AOU) 65 configured for realizing a general-purpose external loop instruction set architecture (ISA). General-purpose external loop instruction set architecture (I
In SA), hardware for executing operations such as addition, subtraction, increment, and decrement on the contents of the program counter and the address stored in the storage / counting logic 202 is required. In a first exemplary embodiment of the address operation unit (AOU) 65, the address operation logic 204 includes a next instruction program address register (NIP) having an input, an output, and a control input.
AR) Arithmetic unit 23 having 232, first input unit, second input unit, third input unit, control input unit, and output unit
4, a multiplexer 230 having a first input, a second input, a control input, and an output. The storage / counting logic 202 includes a third RAM 220 and a fourth RAM 22 each having an input, an output, an address selection input, and an enable input.
And preferably 2. Address multiplexer 206 preferably includes a multiplexer having a first input, a second input, a third input, a control input, and an output. Address arithmetic unit (AO
U) The crossbar switch 200 preferably includes a conventional crossbar switch network having a dual unidirectional crossbar coupling and the inputs and outputs previously described with reference to FIG. Address arithmetic unit (AO
U) For efficient production of the crossbar switch 200,
A multiplexer, a ternary buffer, and a logic block (C
LB) Includes a subset of such components coupled by base logic, direct wiring, or reconfiguration coupling. For the external loop instruction set architecture (ISA), the address operation unit (AOU) crossbar switch 200 is preferably implemented to maximize sequential data movement in the shortest time, but supports general external loop address operation instructions. It also provides a maximum number of unique address move crossbar joiners.

【0096】第3RAM220の入力部と第4RAM2
22との入力部とは、それぞれ第2アドレスライン21
2を経てアドレス演算装置(AOU)クロスバースイッ
チ200の出力部に結合されている。第3RAM220
と第4RAM222とのアドレス選択入力部は、第3制
御ライン74を経て命令取出し装置(IFU)60から
レジスタファイル(RF)アドレスを受取るよう結合さ
れている。第3RAM220と第4RAM222とのイ
ネーブル入力部は、第2制御ライン72を経てアドレス
演算装置(AOU)制御信号を受取るよう結合されてい
る。第3RAM220の出力部は、マルチプレクサ23
0の第1入力部と、演算装置234の第1入力部と、ア
ドレスマルチプレクサ206の第1入力部とに結合され
ている。同様に、第4RAM222の出力部は、マルチ
プレクサ230の第2入力部と、演算装置234の第2
入力部と、アドレスマルチプレクサ206の第2入力部
とに結合されている。マルチプレクサ230と、NIP
AR232と、演算装置234との制御入力部は、それ
ぞれ第2制御ライン72に結合されている。演算装置2
34の出力部は、アドレス演算ロジック204の出力部
を形成しており、したがって、アドレス演算装置(AO
U)クロスバースイッチ200のアドレスフィードバッ
ク入力部とアドレスマルチプレクサ206の第3入力部
とに結合されている。アドレス演算装置(AOU)クロ
スバースイッチ200とアドレスマルチプレクサ206
との残りの入力部と出力部への結合部は、図14を用い
てすでに説明したものと同一である。
The input section of the third RAM 220 and the fourth RAM 2
22 are input to the second address line 21 respectively.
2 is coupled to the output of an address operation unit (AOU) crossbar switch 200. Third RAM 220
And an address selection input of the fourth RAM 222 are coupled to receive a register file (RF) address from the instruction fetch unit (IFU) 60 via a third control line 74. The enable inputs of the third RAM 220 and the fourth RAM 222 are coupled to receive an address arithmetic unit (AOU) control signal via a second control line 72. The output of the third RAM 220 is the multiplexer 23
0, a first input of the arithmetic unit 234, and a first input of the address multiplexer 206. Similarly, the output of the fourth RAM 222 is connected to the second input of the multiplexer 230 and the second input of the arithmetic unit 234.
An input and a second input of the address multiplexer 206 are coupled. Multiplexer 230 and NIP
The control inputs of AR 232 and arithmetic unit 234 are each coupled to a second control line 72. Arithmetic unit 2
34 form the output of the address arithmetic logic 204, and therefore the address arithmetic unit (AO)
U) is coupled to the address feedback input of crossbar switch 200 and to a third input of address multiplexer 206; Address operation unit (AOU) crossbar switch 200 and address multiplexer 206
The remaining connection parts to the input and output parts are the same as those already described with reference to FIG.

【0097】アドレス演算命令の実行を容易にするため
に、命令取出し装置(IFU)60は命令状態シーケン
サ(ISS)が状態EまたはMの時に、アドレス演算装
置(AOU)制御信号と、レジスタファイル(RF)ア
ドレスと、定数とをアドレス演算装置(AOU)64に
発する。第3RAM220と第4RAM222とは、そ
れぞれアドレスの一時記憶のための第1及び第2レジス
タファイルを提供する。第3RAM220と第4RAM
222内の各記憶位置は、各RAMのアドレス選択入力
部で受取ったレジスタファイル(RF)アドレスに従っ
て選択される。第3RAM220と第4RAM222と
のローディングは、その書込みイネーブル入力部で第3
RAM220と第4RAM222とがそれぞれ受取るア
ドレス演算装置(AOU)制御によって制御される。マ
ルチプレクサ230は、その制御入力部で受取ったアド
レス演算装置(AOU)制御信号の指示に従って、第3
RAM220と第4RAM222とによるアドレス出力
をNIPAR232に選択的にルーティングする。NI
PAR232は、マルチプレクサ230の出力部から受
取ったアドレスをロードしてその制御入力部で受取った
アドレス演算装置(AOU)制御信号に応じてその内容
をインクリメントする。好ましい実施例では、NIPA
R232は、実行すべき次のプログラム命令のアドレス
を記憶する。演算装置234は、第3RAM220と第
4RAM222とから受取ったアドレスに対して、及び
/またはNIPAR232の内容に対して加算、減算、
インクリメント、及びデクリメントを含む算術演算を実
行する。アドレス演算装置(AOU)クロスバースイッ
チ200は選択的に、 1)アドレスをメモリ34から第3RAM220と第4
RAM222とへルーティングし、 2)演算装置234によるアドレス計算出力の結果をメ
モリ34または第3RAM220と第4RAM222と
へルーティングする。 アドレス演算装置(AOU)クロスバースイッチ200
は、制御入力部で受取ったアドレス演算装置(AOU)
制御信号に従って特定のルーティング演算を実行する。
アドレスマルチプレクサ206は、この制御入力部で受
取ったアドレス演算装置(AOU)制御の指示に従って
第3RAM220によるアドレス出力と、第4RAM2
22によるアドレス出力と、または演算装置234によ
るアドレス計算出力の結果とをアドレス演算装置(AO
U)のアドレス出力部に選択的にルーティングする。
To facilitate the execution of the address operation instruction, the instruction fetch unit (IFU) 60 controls the address operation unit (AOU) control signal and the register file (IU) when the instruction state sequencer (ISS) is in the state E or M. An RF) address and a constant are issued to an address arithmetic unit (AOU) 64. The third RAM 220 and the fourth RAM 222 provide first and second register files for temporary storage of addresses, respectively. Third RAM 220 and Fourth RAM
Each storage location in 222 is selected according to the register file (RF) address received at the address selection input of each RAM. The loading of the third RAM 220 and the fourth RAM 222 is performed by the write enable input of the third RAM 220 and the fourth RAM 222.
The RAM 220 and the fourth RAM 222 are controlled by the control of an address arithmetic unit (AOU) received respectively. Multiplexer 230 responds to the instruction of the address operation unit (AOU) control signal received at its control input by a third
The address output from the RAM 220 and the fourth RAM 222 is selectively routed to the NIPAR 232. NI
The PAR 232 loads the address received from the output of the multiplexer 230 and increments its content in response to an address operation unit (AOU) control signal received at its control input. In a preferred embodiment, NIPA
R232 stores the address of the next program instruction to be executed. The arithmetic unit 234 adds, subtracts, and / or subtracts the address received from the third RAM 220 and the fourth RAM 222 and / or the content of the NIPAR 232.
Perform arithmetic operations including increment and decrement. The address operation unit (AOU) crossbar switch 200 may selectively: 1) transfer the address from the memory 34 to the third RAM 220 and the fourth RAM 220;
2) route the result of the address calculation output by the arithmetic unit 234 to the memory 34 or the third RAM 220 and the fourth RAM 222; Address operation unit (AOU) crossbar switch 200
Is the address arithmetic unit (AOU) received at the control input unit
Perform a specific routing operation according to the control signal.
The address multiplexer 206 outputs an address from the third RAM 220 according to the instruction of the address arithmetic unit (AOU) control received at the control input unit, and outputs the address from the fourth RAM 2.
22 and the result of the address calculation output by the arithmetic unit 234 are stored in the address arithmetic unit (AO
U) to selectively route to the address output.

【0098】好ましい実施例では、第3RAM220と
第4RAM222とはそれぞれ1組の論理ブロック(C
LB)内に存在するデータ記憶回路を用いて実動化され
る。マルチプレクサ230とアドレスマルチプレクサ2
06とは、それぞれ1組の論理ブロック(CLB)内に
存在するデータ選択回路を用いて実動化されるのが好ま
しく、NIPAR232は1組の論理ブロック(CL
B)内に存在するデータ記憶回路を用いて実装されるこ
とが好ましい。演算装置234は、1組の論理ブロック
(CLB)内の数学的演算用の論理関数発生器と回路と
を用いて実装されることが好ましい。最後に、アドレス
演算装置(AOU)クロスバースイッチ200は、すで
に説明した方法で実装されることが好ましい。
In the preferred embodiment, the third RAM 220 and the fourth RAM 222 each have a set of logical blocks (C
It is implemented using the data storage circuit existing in LB). Multiplexer 230 and address multiplexer 2
06 is preferably implemented using a data selection circuit that resides in each set of logic blocks (CLBs), and NIPAR 232 is implemented in a set of logic blocks (CLBs).
It is preferably implemented using the data storage circuit present in B). Arithmetic unit 234 is preferably implemented using logic function generators and circuits for mathematical operations within a set of logic blocks (CLBs). Finally, the address operation unit (AOU) crossbar switch 200 is preferably implemented in the manner already described.

【0099】図16は、内部ループ命令セットアーキテ
クチャ(ISA)の実装のために構成されたアドレス演
算装置(AOU)66の第2模範実施例の構成図であ
る。内部ループ命令セットアーキテクチャ(ISA)は
きわめて限られた数のアドレス演算を実行するためのハ
ードウェアを必要とし、また少なくとも1個のソースア
ドレスポインタと、対応する数の宛先アドレスポインタ
を維持するためのハードウェアを必要とする。きわめて
限られた数のアドレス演算または1個のアドレス演算が
必要な内部ループ処理の種類には、画像データのブロッ
ク演算、ラスター演算、またはサーペンタイン演算と、
ビットリバーサル演算と、環状バッファデータに対する
演算と、可変長データパーシング演算とが含まれる。こ
こでは、1回のアドレス演算すなわち、インクリメント
演算を検討する。当業者は、インクリメント演算を実行
するハードウェアが本来デクリメント演算も実行でき、
これによってさらに別のアドレス演算能力が得られるこ
とを認めるであろう。アドレス演算装置(AOU)66
の第2模範実施例では、記憶/計数ロジック202は、
入力部と、出力部と、制御入力部とを有する少なくとも
1個のソースアドレスレジスタ252と、入力部と、出
力部と、制御入力部とを有する少なくとも1個の宛先ア
ドレスレジスタ254と、入力部と、制御入力部と、現
存のソースアドレスレジスタ252及び宛先アドレスレ
ジスタ254の総数に等しい数の出力部とを有するデー
タセレクタ250とを含んでいる。ここでは、1個のソ
ースアドレスレジスタ252と、1個の宛先アドレスレ
ジスタ254を検討する。したがって、データセレクタ
250は、第1出力部と第2出力部とを含んでいる。ア
ドレス演算ロジック204は、入力部と、出力部と、制
御入力部とを有するNIPAR232と、データセレク
タと等しい数の入力部と、制御入力部と、出力部とを有
するマルチプレクサ260とを含んでいる。ここでマル
チプレクサ260は、第1入力部と第2入力部とを含ん
でいる。アドレスマルチプレクサ206は、データセレ
クタ出力部より1つ多い入力部と、制御入力部と、出力
部とを有するマルチプレクサを含んでいることが好まし
い。したがってここでは、アドレスマルチプレクサ20
6は、第1入力部と、第2入力部と、第3入力部とを含
んでいる。アドレス演算装置(AOU)クロスバースイ
ッチ200は、双方向及び単方向クロスバー結合部を有
し、また図14を用いてすでに説明した入力部と出力部
とを有する従来型のクロスバースイッチネットワークを
含んでいることが好ましい。アドレス演算装置(AO
U)クロスバースイッチ200の効率的な実動化には、
マルチプレクサと、3値バッファと、論理ブロック(C
LB)ベースロジックと、直接配線と、または再構成結
合部によって結合されたこのような構成部分のサブセッ
トが含まれる。内部ループ命令セットアーキテクチャ
(ISA)については、アドレス演算装置(AOU)ク
ロスバースイッチ200は最短時間で並列アドレス移動
を最大にするよう実動化されるのが好ましいが、内部ル
ープ操作コードを支援するために、最大数の一意のアド
レス移動クロスバー結合部も提供する。
FIG. 16 is a block diagram of a second exemplary embodiment of the address arithmetic unit (AOU) 66 configured for implementing the inner loop instruction set architecture (ISA). The inner loop instruction set architecture (ISA) requires hardware to perform a very limited number of address operations and to maintain at least one source address pointer and a corresponding number of destination address pointers. Requires hardware. Types of internal loop processing that require a very limited number of address operations or one address operation include block operations, raster operations, or serpentine operations on image data,
It includes a bit reversal operation, an operation on circular buffer data, and a variable-length data parsing operation. Here, one address operation, that is, an increment operation is considered. Those skilled in the art will recognize that hardware that performs an increment operation can inherently perform a decrement operation,
It will be appreciated that this provides yet another addressing capability. Address operation unit (AOU) 66
In a second exemplary embodiment of the storage / counting logic 202,
At least one source address register 252 having an input, an output, and a control input; at least one destination address register 254 having an input, an output, and a control input; And a data selector 250 having a control input and a number of outputs equal to the total number of existing source address registers 252 and destination address registers 254. Here, one source address register 252 and one destination address register 254 are considered. Therefore, the data selector 250 includes a first output unit and a second output unit. The address operation logic 204 includes a NIPAR 232 having an input, an output, and a control input, and a multiplexer 260 having an equal number of inputs as data selectors, a control input, and an output. . Here, the multiplexer 260 includes a first input unit and a second input unit. Address multiplexer 206 preferably includes a multiplexer having one more input than the data selector output, a control input, and an output. Therefore, here, the address multiplexer 20 is used.
6 includes a first input unit, a second input unit, and a third input unit. An address operation unit (AOU) crossbar switch 200 includes a conventional crossbar switch network having a bidirectional and a unidirectional crossbar coupling unit, and having an input unit and an output unit already described with reference to FIG. It is preferable to include. Address arithmetic unit (AO
U) For efficient production of the crossbar switch 200,
A multiplexer, a ternary buffer, and a logic block (C
LB) Includes a subset of such components coupled by base logic, direct wiring, or reconfiguration coupling. For the inner loop instruction set architecture (ISA), the address arithmetic unit (AOU) crossbar switch 200 is preferably implemented to maximize parallel address movement in the shortest amount of time, but supports inner loop opcodes. To this end, it also provides a maximum number of unique address move crossbar joiners.

【0100】データセレクタ250の入力部は、アドレ
ス演算装置(AOU)クロスバースイッチ200の出力
部に結合されている。データセレクタ250の第1及び
第2出力部は、それぞれソースアドレスレジスタ252
の入力部と宛先アドレスレジスタ254の入力部とに結
合されている。ソースアドレスレジスタ252と宛先ア
ドレスレジスタ254との制御入力部は、第2制御ライ
ン72を経てアドレス演算装置(AOU)制御信号を受
取るために結合されている。ソースアドレスレジスタ2
52の出力部は、マルチプレクサ260の第1入力部と
アドレスマルチプレクサ206の第1入力部とに結合さ
れている。同様に、宛先アドレスレジスタ254の出力
部は、マルチプレクサ260の第2入力部とアドレスマ
ルチプレクサ206の第2入力部とに結合されている。
NIPAR232の入力部は、マルチプレクサ260の
出力部に結合されており、NIPAR232の制御入力
部は第2制御ライン72を経てアドレス演算装置(AO
U)制御信号を受取るために結合されており、NIPA
R232の出力部はアドレス演算装置(AOU)クロス
バースイッチ200のアドレスフィードバック入力部と
アドレスマルチプレクサ206の第3入力部とに結合さ
れている。アドレス演算装置(AOU)クロスバースイ
ッチ200の残りの入力部と出力部とへの結合部は、図
14を用いて上記に説明したものと同一である。
The input of the data selector 250 is coupled to the output of an address operation unit (AOU) crossbar switch 200. The first and second output units of the data selector 250 are connected to the source address register 252, respectively.
And the input of the destination address register 254. The control inputs of the source address register 252 and the destination address register 254 are coupled via a second control line 72 to receive an address arithmetic unit (AOU) control signal. Source address register 2
The output of 52 is coupled to a first input of multiplexer 260 and a first input of address multiplexer 206. Similarly, the output of destination address register 254 is coupled to a second input of multiplexer 260 and a second input of address multiplexer 206.
The input of NIPAR 232 is coupled to the output of multiplexer 260, and the control input of NIPAR 232 is connected via a second control line 72 to an address arithmetic unit (AO).
U) NIPA coupled to receive control signals
The output of R232 is coupled to an address feedback input of an address operation unit (AOU) crossbar switch 200 and to a third input of an address multiplexer 206. The connection to the remaining inputs and outputs of the address operation unit (AOU) crossbar switch 200 is the same as that described above with reference to FIG.

【0101】演算では、データセレクタ250は、その
制御入力部で受取ったレジスタファイル(RF)アドレ
スに従ってアドレス演算装置(AOU)クロスバースイ
ッチから受取ったアドレスをソースアドレスレジスタ2
52または宛先アドレスレジスタ254にルーティング
する。ソースアドレスレジスタ252は、その制御入力
部に存在するアドレス演算装置(AOU)制御信号に応
じてその入力部に存在するアドレスをロードする。宛先
アドレスレジスタ254は、同様の方法でその入力部に
存在するアドレスをロードする。マルチプレクサ260
は、その制御入力部で受取ったアドレス演算装置(AO
U)制御信号に従ってソースアドレスレジスタ252ま
たは宛先アドレスレジスタ254から受取ったアドレス
をNIPAR232の入力部にルーティングする。NI
PAR232は、その制御入力部で受取ったアドレス演
算装置(AOU)制御信号に応じてその入力部に存在す
るアドレスをロードし、その内容をインクリメントする
か、またはデクリメントする。アドレス演算装置(AO
U)クロスバースイッチ200は選択的に、 1)アドレスをメモリ34からデータセレクタ250に
ルーティングし、 2)NIPAR232の内容をメモリ34またはデータ
セレクタ250にルーティングする。 アドレス演算装置(AOU)クロスバースイッチ200
は、その制御入力部で受取ったアドレス演算装置(AO
U)制御信号に従って特定のルーティング演算を実行す
る。アドレスマルチプレクサ206は、その制御入力部
で受取ったアドレス演算装置(AOU)制御信号の指示
に従って、ソースアドレスレジスタ252、宛先アドレ
スレジスタ254、またはNIPAR232の内容をア
ドレス演算装置(AOU)のアドレス出力部に選択的に
ルーティングする。
In the operation, the data selector 250 receives the address received from the address arithmetic unit (AOU) crossbar switch in accordance with the register file (RF) address received at its control input section, and outputs the address to the source address register 2.
52 or to the destination address register 254. Source address register 252 loads an address present at its input in response to an address operation unit (AOU) control signal present at its control input. Destination address register 254 loads the address present at its input in a similar manner. Multiplexer 260
Is the address arithmetic unit (AO) received at the control input unit.
U) Route the address received from source address register 252 or destination address register 254 to the input of NIPAR 232 according to the control signal. NI
PAR 232 loads the address present at its input in response to an address operation unit (AOU) control signal received at its control input and increments or decrements its contents. Address arithmetic unit (AO
U) Crossbar switch 200 selectively: 1) routes the address from memory 34 to data selector 250, and 2) routes the contents of NIPAR 232 to memory 34 or data selector 250. Address operation unit (AOU) crossbar switch 200
Is the address arithmetic unit (AO) received at the control input unit.
U) Perform a specific routing operation according to the control signal. The address multiplexer 206 transfers the contents of the source address register 252, the destination address register 254, or the NIPAR 232 to the address output unit of the address arithmetic unit (AOU) according to the instruction of the address arithmetic unit (AOU) control signal received at the control input unit. Selectively route.

【0102】好ましい実施例では、ソースアドレスレジ
スタ252と宛先アドレスレジスタ254とは、それぞ
れ1組の論理ブロック(CLB)内に存在するデータ記
憶回路を用いて実動化される。NIPAR232は、1
組の論理ブロック(CLB)内のインクリメント/デク
リメントロジック及びフリップフロップを用いて実動化
されることが好ましい。データセレクタ250と、マル
チプレクサ230と、アドレスマルチプレクサ206と
は、それぞれ1組の論理ブロック(CLB)内に存在す
るデータ選択回路を用いて実動化されることが好まし
い。最後にアドレス演算装置(AOU)クロスバースイ
ッチ200は、内部ループ命令セットアーキテクチャ
(ISA)についてすでに述べた方法で実動化されるこ
とが好ましい。当業者は、一部のアプリケーションで
は、外部ループデータ演算装置(DOU)構成を備えた
内部ループアドレス演算装置(AOU)構成に依存する
命令セットアーキテクチャ(ISA)を用いることが、
またはその逆(内部ループアドレス演算装置(AOU)
構成を備えた外部ループデータ演算装置(DOU)構
成)が有利であることを認めるであろう。たとえば連想
ストリング探索命令セットアーキテクチャ(ISA)
は、外部ループアドレス演算装置(AOU)構成を備え
た内部ループデータ演算装置(DOU)構成を利用する
と有利であろう。別の例として、ヒストグラム演算を実
行するための命令セットアーキテクチャ(ISA)は、
内部ループアドレス演算装置(AOU)構成を備えた外
部ループデータ演算装置(DOU)構成を利用すると有
利であろう。
In the preferred embodiment, source address register 252 and destination address register 254 are each implemented using data storage circuits residing in a set of logic blocks (CLBs). NIPAR232 is 1
It is preferably implemented using increment / decrement logic and flip-flops within a set of logic blocks (CLBs). It is preferable that the data selector 250, the multiplexer 230, and the address multiplexer 206 are each implemented by using a data selection circuit existing in a set of logic blocks (CLB). Finally, the address operation unit (AOU) crossbar switch 200 is preferably implemented in the manner already described for the inner loop instruction set architecture (ISA). Those skilled in the art will recognize that in some applications, using an instruction set architecture (ISA) that relies on an inner loop address arithmetic unit (AOU) configuration with an outer loop data arithmetic unit (DOU) configuration,
Or vice versa (Internal loop address arithmetic unit (AOU)
It will be appreciated that an outer loop data processing unit (DOU) configuration with a configuration is advantageous. For example, Associative String Search Instruction Set Architecture (ISA)
It would be advantageous to utilize an inner loop data arithmetic unit (DOU) configuration with an outer loop address arithmetic unit (AOU) configuration. As another example, an instruction set architecture (ISA) for performing histogram operations is:
It would be advantageous to utilize an outer loop data arithmetic unit (DOU) configuration with an inner loop address arithmetic unit (AOU) configuration.

【0103】有限の再構成ハードウェアリソースを、動
的再構成処理装置(DRPU)32の各構成部分間で割
当てなければならない。再構成ハードウェアリソースは
数が限られているので、たとえばこれらを命令取出し装
置(IFU)60に割当てるとデータ演算装置(DO
U)62及びアドレス演算装置(AOU)64によって
達成可能な最大計算性能レベルに影響を与える。再構成
ハードウェアリソースを、命令取出し装置(IFU)6
0と、データ演算装置(DOU)62と、アドレス演算
装置(AOU)64との間で割当てる方法は、任意の瞬
間で実装される命令セットアーキテクチャ(ISA)の
種類に応じて異なる。命令セットアーキテクチャ(IS
A)が複雑になると、次第に複雑になる復号演算及び制
御演算を容易に行うために、より多くの再構成ハードウ
ェアリソースを命令取出し装置(IFU)60に割当て
なければならなくなり、データ演算装置(DOU)62
とアドレス演算装置(AOU)64との間で利用できる
再構成ハードウェアリソースは少なくなる。したがっ
て、データ演算装置(DOU)62とアドレス演算装置
(AOU)64とによって達成可能な最大計算性能は、
命令セットアーキテクチャ(ISA)の複雑性が増すと
低下する。一般に、外部ループ命令セットアーキテクチ
ャ(ISA)は内部ループ命令セットアーキテクチャ
(ISA)より多くの命令を含み、したがってその実装
は、復号回路と制御回路においてかなり複雑となる。た
とえば汎用64ビットプロセッサを規定する外部ループ
命令セットアーキテクチャ(ISA)は、データ圧縮の
みに用いられる内部ループ命令セットアーキテクチャ
(ISA)より多くの命令を含むことになると考えられ
る。
A limited number of reconfigurable hardware resources must be allocated between the components of the dynamic reconfiguration processor (DRPU) 32. Since the number of reconfigurable hardware resources is limited, for example, when these are assigned to the instruction fetch unit (IFU) 60, the data arithmetic unit (DO)
U) 62 and the maximum computational performance level achievable by the address operation unit (AOU) 64. An instruction fetch unit (IFU) 6
The method of allocating between 0, data operation unit (DOU) 62, and address operation unit (AOU) 64 depends on the type of instruction set architecture (ISA) implemented at any given moment. Instruction Set Architecture (IS
As A) becomes more complex, more and more reconfigurable hardware resources must be allocated to the instruction fetch unit (IFU) 60 in order to facilitate increasingly complex decoding and control operations. DOU) 62
Reconfigurable hardware resources that can be used between the AOU 64 and the address arithmetic unit (AOU) 64 are reduced. Therefore, the maximum calculation performance achievable by the data operation unit (DOU) 62 and the address operation unit (AOU) 64 is:
Decreases with increasing instruction set architecture (ISA) complexity. In general, the outer loop instruction set architecture (ISA) contains more instructions than the inner loop instruction set architecture (ISA), and therefore its implementation is significantly more complex in decoding and control circuits. For example, an outer loop instruction set architecture (ISA) defining a general purpose 64-bit processor would include more instructions than an inner loop instruction set architecture (ISA) used only for data compression.

【0104】図17(a)は、外部ループ命令セットア
ーキテクチャ(ISA)のための、命令取出し装置(I
FU)60と、データ演算装置(DOU)62と、アド
レス演算装置(AOU)64との間での再構成ハードウ
ェアリソースの模範割当てを示す図である。外部ループ
命令セットアーキテクチャ(ISA)のための再構成ハ
ードウェアリソースの模範割当てでは、命令取出し装置
(IFU)60と、データ演算装置(DOU)62と、
アドレス演算装置(AOU)64はそれぞれ利用できる
再構成ハードウェアリソースの約3分の1を割当てられ
る。内部ループ命令セットアーキテクチャ(ISA)を
実装するために動的再構成処理装置(DRPU)32を
再構成すべきときには、内部ループ命令セットアーキテ
クチャ(ISA)によって支援される命令の数とアドレ
ス命令の種類が限られるため、命令取出し装置(IF
U)60とアドレス演算装置(AOU)64とを実装す
るのに必要な再構成ハードウェアリソースは少なくて済
む。図17(b)は、内部ループ命令セットアーキテク
チャ(ISA)のための、命令取出し装置(IFU)6
0と、データ演算装置(DOU)62と、アドレス演算
装置(AOU)64との間での再構成ハードウェアリソ
ースの模範割当てを示す図である。内部ループ命令セッ
トアーキテクチャ(ISA)のための再構成ハードウェ
アリソースの模範割当てでは、命令取出し装置(IF
U)60は再構成ハードウェアリソースの約5〜10%
を用いて実装され、アドレス演算装置(AOU)64は
再構成ハードウェアリソースの約10〜25%を用いて
実装される。したがって、再構成ハードウェアリソース
の約70〜80%はデータ演算装置(DOU)62の実
装に利用できる。このことは、内部ループ命令セットア
ーキテクチャ(ISA)に関連したデータ演算装置(D
OU)62の内部構造が、内部ループ命令セットアーキ
テクチャ(ISA)に関連したデータ演算装置(DO
U)62の内部構造より複雑であってもよく、したがっ
てはるかに高い性能を発揮できることを意味している。
FIG. 17A shows an instruction fetch unit (I) for an outer loop instruction set architecture (ISA).
FIG. 3 is a diagram showing an exemplary assignment of reconfigurable hardware resources among an FU) 60, a data arithmetic unit (DOU) 62, and an address arithmetic unit (AOU) 64. In an exemplary allocation of reconfigurable hardware resources for an outer loop instruction set architecture (ISA), an instruction fetch unit (IFU) 60, a data operation unit (DOU) 62,
Each address operation unit (AOU) 64 is allocated approximately one third of the available reconfigurable hardware resources. When the dynamic reconfiguration processor (DRPU) 32 is to be reconfigured to implement the inner loop instruction set architecture (ISA), the number of instructions and types of address instructions supported by the inner loop instruction set architecture (ISA) Instruction fetch device (IF
U) 60 and the address arithmetic unit (AOU) 64 require less reconfigurable hardware resources. FIG. 17B shows an instruction fetch unit (IFU) 6 for the inner loop instruction set architecture (ISA).
FIG. 4 is a diagram showing an exemplary assignment of reconfigurable hardware resources among a data operation unit (DOU) 62 and an address operation unit (AOU) 64. In an exemplary allocation of reconfigurable hardware resources for an inner loop instruction set architecture (ISA), an instruction fetch unit (IF
U) 60 is about 5-10% of reconfigured hardware resources
And the address operation unit (AOU) 64 is implemented using about 10 to 25% of the reconfigurable hardware resources. Therefore, about 70-80% of the reconfigured hardware resources are available for implementing the data processing unit (DOU) 62. This is because the data processing unit (D) associated with the inner loop instruction set architecture (ISA)
OU) 62 has a data processing unit (DO) associated with an inner loop instruction set architecture (ISA).
U) It can be more complex than the internal structure of 62, which means that it can exhibit much higher performance.

【0105】当業者は、別の実施例で動的再構成処理装
置(DRPU)32がデータ演算装置(DOU)62ま
たはアドレス演算装置(AOU)64を除外できること
を認めるであろう。たとえば別の実施例では、動的再構
成処理装置(DRPU)32はアドレス演算装置(AO
U)64を含まなくても良い。その場合、データ演算装
置(DOU)62はデータとアドレスの両方に対して演
算を実行することになる。(上記で)検討した特定の動
的再構成処理装置(DRPU)実施例とは無関係に、動
的再構成処理装置(DRPU)32の各構成部分を実装
するために有限数の再構成ハードウェアリソースを割当
てなければならない。再構成ハードウェアリソースは、
利用できる再構成ハードウェアリソースの全スペースに
対して現在検討中の命令セットアーキテクチャ(IS
A)について最適のまたは最適に近い能力が達成される
ように割当てるのが好ましい。
Those skilled in the art will recognize that in another embodiment, the dynamic reconfigurable processor (DRPU) 32 may exclude a data arithmetic unit (DOU) 62 or an address arithmetic unit (AOU) 64. For example, in another embodiment, the dynamic reconfiguration processor (DRPU) 32 includes an address arithmetic unit (AO).
U) 64 may not be included. In that case, the data operation unit (DOU) 62 performs an operation on both data and addresses. Regardless of the particular dynamic reconfiguration processor (DRPU) embodiment discussed (above), a finite number of reconfiguration hardware to implement each component of the dynamic reconfiguration processor (DRPU) 32 Resources must be allocated. Reconfigured hardware resources are
The instruction set architecture (IS) currently under consideration for the entire space of available reconfigurable hardware resources
Preferably, the allocation is such that optimal or near-optimal performance for A) is achieved.

【0106】当業者は、命令取出し装置(IFU)60
と、データ演算装置(DOU)62と、アドレス演算装
置(AOU)64との各構成部分の詳細な構造が上記に
説明した実施例に限定されないことを認めるであろう。
所定の命令セットアーキテクチャ(ISA)について、
対応する構成データセットは、命令取出し装置(IF
U)60と、データ演算装置(DOU)62と、アドレ
ス演算装置(AOU)64内の各構成部分の内部構造
が、利用できる再構成ハードウェアリソースに対して計
算性能を最大限にするように定められるのが好ましい。
Those skilled in the art will recognize that the instruction fetch unit (IFU) 60
It will be appreciated that the detailed structure of each component of the data operation unit (DOU) 62 and the address operation unit (AOU) 64 is not limited to the embodiment described above.
For a given instruction set architecture (ISA),
The corresponding configuration data set contains the instruction fetch device (IF
U) 60, data operation unit (DOU) 62, and internal structure of each component in address operation unit (AOU) 64 to maximize computational performance for available reconfigurable hardware resources. Preferably, it is determined.

【0107】図18は、Tマシンの好ましい実施例の構
成図である。Tマシン14は、第2ローカルタイムベー
ス装置300と、共用インタフェース制御装置(CIC
U:Common Interface and Control Unit)302と、
1組の相互結合入出力装置304とを含んでいる。第2
ローカルタイムベース装置300は、Tマシンのマスタ
タイミング入力部を形成するタイミング入力部を含んで
いる。共通インタフェース制御装置(CICU)302
は、第2タイミング信号ライン310を経て第2ローカ
ルタイムベース装置300のタイミング出力部に結合さ
れたタイミング入力部と、アドレスライン44に結合さ
れたアドレス出力部と、メモリ入出力ライン46に結合
された第1双方向制御ポートと、外部制御ライン48に
結合された双方向制御ポートと、メッセージ転送ライン
312を経て現存する各相互結合入出力装置304の双
方向データポートに結合された第2双方向データポート
とを含んでいる。各相互結合入出力装置304は、メッ
セージ入力ライン314を経て汎用相互結合マトリック
ス(GPIM)16に結合された入力部と、メッセージ
出力ライン316を経て汎用相互結合マトリックス(G
PIM)16に結合された出力部とを含んでいる。
FIG. 18 is a block diagram of a preferred embodiment of the T machine. The T machine 14 includes a second local time base device 300 and a shared interface control device (CIC).
U: Common Interface and Control Unit) 302,
A set of interconnected input / output devices 304. Second
The local time base device 300 includes a timing input forming the master timing input of the T machine. Common interface control unit (CICU) 302
Is coupled via a second timing signal line 310 to a timing output of the second local time base device 300, an address output coupled to the address line 44, and coupled to the memory input / output line 46. A first bidirectional control port, a bidirectional control port coupled to external control line 48, and a second bidirectional control port coupled to a bidirectional data port of each existing interconnected input / output device 304 via message transfer line 312. Data port. Each interconnect input / output device 304 has an input coupled to a general interconnect matrix (GPIM) 16 via a message input line 314, and a general interconnect matrix (G) via a message output line 316.
(PIM) 16.

【0108】Tマシン14内の第2ローカルタイムベー
ス装置300は、マスタタイムベース装置22からマス
タタイミング信号を受取り、第2ローカルタイミング信
号を生成する。第2ローカルタイムベース装置300
は、第2ローカルタイミング信号を共通インタフェース
制御装置(CICU)302に送り、これによってそれ
が存在するTマシン14についてのタイミング基準を提
供する。第2ローカルタイミング信号は、マスタタイミ
ング信号と位相同期であることが好ましい。システム1
0では、各Tマシンの第2ローカルタイムベース装置3
00は同一の周波数で作動することが好ましい。当業者
は、別の実施例では、1個またはそれ以上の第2ローカ
ルタイムベース装置300が異なる周波数で作動するこ
とを認めるであろう。第2ローカルタイムベース装置3
00は、論理ブロック(CLB)ベース位相ロック検出
回路を含む従来型の位相ロック周波数変換回路を用いて
実装されることが好ましい。当業者は、別の実施例では
第2ローカルタイムベース装置300がクロック分散ツ
リーの一部として実装できることを認めるであろう。
The second local time base device 300 in the T machine 14 receives a master timing signal from the master time base device 22 and generates a second local timing signal. Second local time base device 300
Sends a second local timing signal to a common interface controller (CICU) 302, thereby providing a timing reference for the T-machine 14 in which it resides. Preferably, the second local timing signal is in phase synchronization with the master timing signal. System 1
0, the second local time base device 3 of each T machine
00 preferably operate at the same frequency. Those skilled in the art will recognize that in another embodiment, one or more second local time base devices 300 operate at different frequencies. Second local time base device 3
00 is preferably implemented using a conventional phase locked frequency conversion circuit including a logic block (CLB) based phase lock detection circuit. Those skilled in the art will recognize that in another embodiment, the second local time base device 300 can be implemented as part of a clock distribution tree.

【0109】共通インタフェース制御装置(CICU)
302は、その対応するSマシン12と特定の相互結合
入出力装置304との間のメッセージの転送を指示し、
このメッセージにはコマンドとおそらくデータとが含ま
れる。好ましい実施例では、指定された相互結合入出力
装置304がシステム10の内部または外部にあるいず
れかのTマシン14または入出力Tマシン18内に存在
しても良い。好ましい実施例では、各相互結合入出力装
置304は相互結合入出力装置304を一意的に識別す
る相互結合アドレスを割当てられているのが好ましい。
所定のTマシン内の相互結合入出力装置304について
の相互結合アドレスは、対応するSマシンのアーキテク
チャ記述メモリ101に記憶される。
Common interface control unit (CICU)
302 directs the transfer of messages between its corresponding S-machine 12 and a particular interconnected I / O device 304;
This message contains the command and possibly data. In a preferred embodiment, the designated interconnect I / O device 304 may reside in any T-machine 14 or I / O T-machine 18 that is internal or external to system 10. In a preferred embodiment, each interconnection I / O device 304 is preferably assigned an interconnection address that uniquely identifies the interconnection I / O device 304.
The interconnection address for the interconnection I / O device 304 in a given T machine is stored in the architecture description memory 101 of the corresponding S machine.

【0110】共通インタフェース制御装置(CICU)
302は、それぞれメモリ入出力ライン46と外部制御
信号ライン48とを経てその対応するSマシン12から
データとコマンドとを受取る。受取った各コマンドは、
目的相互結合アドレスと実行すべき特定の種類の演算を
指定するコマンドコードとを含んでいることが好まし
い。好ましい実施例では、コマンドコードによって一意
的に識別される種類の演算には、 1)データ読出し演算と、 2)データ書込み演算と、 3)再構成割込み転送を含む割込み信号転送と、 を含んでいる。目的相互結合アドレスは、データとコマ
ンドとを転送すべき目的相互結合入出力装置304を識
別する。共通インタフェース制御装置(CICU)30
2は、従来の方法で1組のパケットベースメッセージと
して各コマンドと関連データを転送することが好まし
く、各メッセージには目的相互結合アドレスとコマンド
コードとが含まれている。
Common interface control unit (CICU)
302 receives data and commands from its corresponding S-machine 12 via memory input / output lines 46 and external control signal lines 48, respectively. Each command received
It preferably includes a target interconnect address and a command code that specifies the particular type of operation to be performed. In a preferred embodiment, the types of operations uniquely identified by the command code include: 1) a data read operation, 2) a data write operation, and 3) an interrupt signal transfer including a reconfigured interrupt transfer. I have. The destination interconnect address identifies the destination interconnect I / O device 304 to which data and commands should be transferred. Common interface control unit (CICU) 30
2, preferably transfers each command and associated data as a set of packet-based messages in a conventional manner, each message including a target interconnect address and a command code.

【0111】共通インタフェース制御装置(CICU)
302は、その対応するSマシン12からデータとコマ
ンドとを受取る他に、メッセージ転送ライン312に結
合された各相互結合入出力装置304からメッセージを
受取る。好ましい実施例では、共通インタフェース制御
装置(CICU)302は、関連メッセージグループを
単一のコマンドとデータシーケンスに変換する。コマン
ドがその対応するSマシン12内の動的再構成処理装置
(DRPU)32に向けられているときには、共通イン
タフェース制御装置(CICU)302は外部制御信号
ライン48を経てコマンドを発する。コマンドがその対
応するSマシン12内のメモリ34に向けられていると
きには、共通インタフェース制御装置(CICU)30
2は外部制御信号ライン48を経て適切なメモリ制御信
号を発し、またメモリアドレスライン44を経てメモリ
アドレス信号を発する。データは、メモリ入出力ライン
46を経て転送される。好ましい実施例では、共通イン
タフェース制御装置(CICU)302は、ANSI/
IEEE規格1596−1992に定められた従来型の
SCI切替装置によって実行される演算に類似した演算
を実行するための論理ブロック(CLB)ベース回路を
含んでいる。
Common interface control unit (CICU)
302 receives a message from each interconnected I / O device 304 coupled to the message transfer line 312, in addition to receiving data and commands from its corresponding S-machine 12. In a preferred embodiment, the common interface controller (CICU) 302 converts the associated message group into a single command and data sequence. When a command is directed to a dynamic reconfiguration processor (DRPU) 32 in its corresponding S-machine 12, the common interface controller (CICU) 302 issues the command via the external control signal line. When a command is directed to the memory 34 in the corresponding S machine 12, the common interface controller (CICU) 30
2 issues an appropriate memory control signal via an external control signal line 48 and a memory address signal via a memory address line 44. Data is transferred via the memory input / output line 46. In a preferred embodiment, the common interface controller (CICU) 302
Includes logic block (CLB) based circuitry for performing operations similar to those performed by conventional SCI switching devices as defined in IEEE Standard 1596-1992.

【0112】各相互結合入出力装置304は、共通イン
タフェース制御装置(CICU)302からメッセージ
を受取り、共通インタフェース制御装置(CICU)3
02から受取った制御信号の指示に従って、このメッセ
ージを汎用相互結合マトリックス(GPIM)16を経
て別の相互結合入出力装置304に転送する。好ましい
実施例では、相互結合入出力装置304は、ANSI/
IEEE規格1596−1992に定められたSCIノ
ードに基づいている。図19は、相互結合入出力装置3
04の好ましい実施例の構成図である。相互結合入出力
装置304は、アドレス復号器320と、入力FIFO
バッファ322と、バイパスFIFOバッファ324
と、出力FIFOバッファ326と、マルチプレクサ3
28とを含んでいる。アドレス復号器320は、相互結
合入出力装置の入力部を形成する入力部と、入力FIF
Oバッファ322に結合された第1出力部と、バイパス
FIFOバッファ324に結合された第2出力部とを含
んでいる。入力FIFOバッファ322は、メッセージ
を共通インタフェース制御装置(CICU)302に転
送するためのメッセージ転送ライン312に結合された
出力部を含んでいる。出力FIFOバッファ326は、
共通インタフェース制御装置(CICU)302からメ
ッセージを受取るためのメッセージ転送ライン312に
結合された入力部と、マルチプレクサ328の第1入力
部に結合された出力部とを含んでいる。バイパスFIF
Oバッファ324は、マルチプレクサ328の第2入力
部に結合された出力部を含んでいる。最後にマルチプレ
クサ328は、メッセージ転送ライン312に結合され
た制御入力部と、相互結合入出力装置の出力部を形成す
る出力部とを含んでいる。
Each mutual coupling input / output device 304 receives a message from the common interface control device (CICU) 302 and receives the message from the common interface control device (CICU) 3.
The message is transferred to another interconnection input / output device 304 via the general interconnection matrix (GPIM) 16 in accordance with the instruction of the control signal received from the communication device 02. In a preferred embodiment, the interconnected input / output device 304 comprises an ANSI /
It is based on the SCI node defined in IEEE Standard 1596-1992. FIG.
FIG. 4 is a configuration diagram of a preferred embodiment of the present invention. The interconnection input / output device 304 includes an address decoder 320 and an input FIFO.
Buffer 322 and bypass FIFO buffer 324
, Output FIFO buffer 326 and multiplexer 3
28. Address decoder 320 includes an input forming an input of the interconnected input / output device, and an input FIFO.
It includes a first output coupled to the O-buffer 322 and a second output coupled to the bypass FIFO buffer 324. The input FIFO buffer 322 includes an output coupled to a message transfer line 312 for transferring a message to a common interface controller (CICU) 302. The output FIFO buffer 326
It includes an input coupled to the message transfer line 312 for receiving a message from the common interface controller (CICU) 302, and an output coupled to a first input of the multiplexer 328. Bypass FIF
O-buffer 324 includes an output coupled to a second input of multiplexer 328. Finally, multiplexer 328 includes a control input coupled to message transfer line 312 and an output forming the output of the interconnected input / output device.

【0113】相互結合入出力装置304は、アドレス復
号器320の入力部でメッセージを受取る。アドレス復
号器320は、受取ったメッセージで指定されている目
的相互結合アドレスがそれが存在する相互結合入出力装
置304の相互結合アドレスと同一であるかどうかを決
定する。同一の場合には、アドレス復号器320はこの
メッセージを入力FIFOバッファ322にルーティン
グする。そうでなければアドレス復号器320は、メッ
セージをバイパスFIFOバッファ324にルーティン
グする。好ましい実施例では、アドレス復号器320は
入出力ブロック(IOB)と論理ブロック(CLB)を
用いて実装された復号器とデータセレクタとで構成され
る。
The interconnection input / output device 304 receives a message at the input of the address decoder 320. Address decoder 320 determines whether the target interconnect address specified in the received message is the same as the interconnect address of interconnect I / O device 304 in which it resides. If they are the same, the address decoder 320 routes this message to the input FIFO buffer 322. Otherwise, the address decoder 320 routes the message to the bypass FIFO buffer 324. In the preferred embodiment, the address decoder 320 comprises a decoder implemented using input / output blocks (IOB) and logic blocks (CLB) and a data selector.

【0114】入力FIFOバッファ322は、その入力
部で受取ったメッセージをメッセージ転送ライン312
に転送する従来型のFIFOバッファである。バイパス
FIFOバッファ324と出力FIFOバッファ326
とは、いずれもその入力部で受取ったメッセージをマル
チプレクサ328に転送する従来型のFIFOバッファ
である。マルチプレクサ328は、その制御入力部で受
取った制御信号に従って、バイパスFIFOバッファ3
24から受取ったメッセージまたは出力FIFOバッフ
ァ326から受取ったメッセージを汎用相互結合マトリ
ックス(GPIM)16にルーティングする従来型のマ
ルチプレクサである。好ましい実施例では、入力FIF
Oバッファ322と、バイパスFIFOバッファ324
と、出力FIFOバッファ326とはそれぞれ1組の論
理ブロック(CLB)を用いて実装される。マルチプレ
クサ328は、1組の論理ブロック(CLB)と入出力
ブロック(IOB)とを用いて実装されることが好まし
い。
The input FIFO buffer 322 transfers a message received at its input to the message transfer line 312.
Is a conventional FIFO buffer. Bypass FIFO buffer 324 and output FIFO buffer 326
Is a conventional FIFO buffer that forwards the message received at its input to the multiplexer 328. Multiplexer 328 controls the bypass FIFO buffer 3 according to the control signal received at its control input.
A conventional multiplexer that routes messages received from 24 or output FIFO buffer 326 to a general interconnect matrix (GPIM) 16. In the preferred embodiment, the input
O buffer 322 and bypass FIFO buffer 324
And the output FIFO buffer 326 are each implemented using a set of logic blocks (CLBs). The multiplexer 328 is preferably implemented using a set of logic blocks (CLB) and input / output blocks (IOB).

【0115】図20は、入出力Tマシン18の好ましい
実施例の構成図である。入出力Tマシン18は、第3ロ
ーカルタイムベース装置360と、共通カスタムインタ
フェース制御装置362と、相互結合入出力装置304
とを含んでいる。第3ローカルタイムベース装置360
は、入出力Tマシンのマスタタイミング入力部を形成す
るタイミング入力部を含んでいる。相互結合入出力装置
304は、メッセージ入力部ライン314を経て汎用相
互結合マトリックス(GPIM)16に結合された入力
部と、メッセージ出力ライン316を経て汎用相互結合
マトリックス(GPIM)16に結合された出力部とを
含んでいる。共通カスタムインタフェース制御装置36
2は、第3タイミング信号ライン370を経て第3ロー
カルタイムベース装置360のタイミング出力部に結合
されたタイミング入力部と、相互結合入出力装置304
の双方向データポートに結合された第1双方向データポ
ートと、入出力装置20への1組の結合部とを含んでい
る。好ましい実施例では、入出力装置20への1組の結
合部は、入出力装置20の双方向データポートに結合さ
れた第2双方向データポートと、入出力装置20のアド
レス入力部に結合されたアドレス出力部と、入出力装置
20の双方向制御ポートに結合された双方向制御ポート
とを含んでいる。当業者は、共通カスタムインタフェー
ス制御装置362が結合されている入出力装置20の種
類によって、入出力装置20への結合部が定まることを
容易に認めるであろう。
FIG. 20 is a block diagram of a preferred embodiment of the input / output T machine 18. As shown in FIG. The input / output T machine 18 includes a third local time base device 360, a common custom interface control device 362, and an interconnected input / output device 304
And Third local time base device 360
Include a timing input forming the master timing input of the input / output T machine. The interconnect input / output device 304 has an input coupled to the general interconnect matrix (GPIM) 16 via a message input line 314 and an output coupled to the general interconnect matrix (GPIM) 16 via a message output line 316. Department and contains. Common custom interface controller 36
2 is a timing input coupled to a timing output of a third local time base device 360 via a third timing signal line 370;
A first bidirectional data port coupled to the I / O device 20 and a set of couplings to the input / output device 20. In a preferred embodiment, a set of couplings to input / output device 20 is coupled to a second bidirectional data port coupled to the bidirectional data port of input / output device 20 and to an address input of input / output device 20. And a bidirectional control port coupled to the bidirectional control port of the input / output device 20. Those skilled in the art will readily recognize that the type of I / O device 20 to which the common custom interface controller 362 is coupled will determine the coupling to the I / O device 20.

【0116】第3ローカルタイムベース装置360は、
マスタタイムベース装置22からマスタタイミング信号
を受取り、第3ローカルタイミング信号を生成する。第
3ローカルタイムベース装置360は、第3ローカルタ
イミング信号を共通カスタムインタフェース制御装置3
62へ送り、それが配置されている入出力Tマシンにタ
イミング基準を提供する。好ましい実施例では、第3ロ
ーカルタイミング信号はマスタタイミング信号と位相同
期している。各入出力Tマシンの第3ローカルタイムベ
ース装置360は、同一の周波数で作動するのが好まし
い。別の実施例では、1個またはそれ以上の第3ローカ
ルタイムベース装置360は異なる周波数で作動するこ
とができる。第3ローカルタイムベース装置360は、
論理ブロック(CLB)ベース位相ロック検出回路を含
む従来型の位相ロック周波数変換回路を用いて実装する
のが好ましい。第1ローカルタイムベース装置30及び
第2ローカルタイムベース装置300と同様の方法で、
別の実施例では第3ローカルタイムベース装置360を
クロック分散ツリーの一部として実装することができ
る。
The third local time base device 360
A master timing signal is received from the master time base device 22, and a third local timing signal is generated. The third local time base device 360 transmits the third local timing signal to the common custom interface control device 3.
62 to provide a timing reference to the I / O T-machine in which it is located. In a preferred embodiment, the third local timing signal is phase synchronized with the master timing signal. The third local time base device 360 of each I / O T-machine preferably operates at the same frequency. In another embodiment, one or more third local time base devices 360 can operate at different frequencies. The third local time base device 360
Preferably, it is implemented using a conventional phase lock frequency conversion circuit including a logic block (CLB) based phase lock detection circuit. In the same manner as the first local time base device 30 and the second local time base device 300,
In another embodiment, the third local time base device 360 can be implemented as part of a clock distribution tree.

【0117】入出力Tマシン18内の相互結合入出力装
置304の構造と機能は、Tマシン14についてすでに
説明したものと同一であることが好ましい。入出力Tマ
シン18内の相互結合入出力装置304は、任意のTマ
シン14内の各相互接続入出力装置304の場合と類似
した方法でユニークな相互結合アドレスが割当てられ
る。
The structure and function of the interconnected input / output device 304 in the input / output T machine 18 are preferably the same as those already described for the T machine 14. The interconnected I / O devices 304 in the I / O T-machine 18 are assigned unique interconnect addresses in a manner similar to each interconnected I / O device 304 in any T-machine 14.

【0118】共通カスタムインタフェース制御装置36
2は、それに結合された入出力装置20と相互結合入出
力装置304との間のメッセージの転送を指示し、この
メッセージにはコマンドとおそらくデータとが含まれ
る。共通カスタムインタフェース制御装置362は、そ
の対応する入出力装置20からデータとコマンドとを受
取る。入出力装置20から受取った各コマンドは、目的
相互結合アドレスと実行すべき特定の種類の演算を指定
するコマンドコードとを含んでいることが好ましい。好
ましい実施例では、コマンドコードによって一意的に識
別される演算の種類には、 1)データ要求と、 2)データ転送確認と、 3)割込み信号転送と、 が含まれる。目的相互結合アドレスは、データとコマン
ドとを転送すべきシステム10内の目的相互結合入出力
装置304を識別する。共通カスタムインタフェース制
御装置362は、従来の方法で1組のパケットベースメ
ッセージとして各コマンドと関連データを転送すること
が好ましく、各メッセージには目的相互結合アドレスと
コマンドコードとが含まれている。
The common custom interface control device 36
2 directs the transfer of a message between the I / O device 20 coupled to it and the interconnected I / O device 304, the message including a command and possibly data. The common custom interface controller 362 receives data and commands from its corresponding input / output device 20. Each command received from input / output device 20 preferably includes a target interconnect address and a command code specifying a particular type of operation to be performed. In the preferred embodiment, the types of operations uniquely identified by the command code include: 1) data request, 2) data transfer confirmation, and 3) interrupt signal transfer. The destination interconnect address identifies the destination interconnect I / O device 304 in the system 10 to which data and commands are to be transferred. The common custom interface controller 362 preferably forwards each command and associated data as a set of packet-based messages in a conventional manner, each message including a target interconnect address and a command code.

【0119】共通カスタムインタフェース制御装置36
2は、その対応する入出力装置20からデータとコマン
ドとを受取る他に、その関連する入出力装置20からメ
ッセージを受取る。好ましい実施例では、共通カスタム
インタフェース制御装置362は、その対応する入出力
装置20に支援される通信プロトコルに従って、関連メ
ッセージグループを単一のコマンド及びデータシーケン
スに変換する。好ましい実施例では、共通カスタムイン
タフェース制御装置362は、ANSI/IEEE規格
1596−1992に定められた従来型のSCI切替装
置によって実行される演算と類似した演算を実行するた
めの論理ブロック(CLB)ベース回路に結合された論
理ブロック(CLB)ベース入出力装置コントローラを
含んでいる。
The common custom interface control device 36
2 receives a message from its associated I / O device 20 in addition to receiving data and commands from its corresponding I / O device 20. In a preferred embodiment, the common custom interface controller 362 converts the associated message group into a single command and data sequence according to the communication protocol supported by its corresponding input / output device 20. In the preferred embodiment, the common custom interface controller 362 is based on a logic block (CLB) for performing operations similar to those performed by conventional SCI switching devices as defined in ANSI / IEEE Standard 1596-1992. A logic block (CLB) based input / output device controller is coupled to the circuit.

【0120】汎用相互結合マトリックス(GPIM)1
6は、相互結合入出力装置304の間の2点間並列メッ
セージルーティングを容易に行えるようにする従来型の
相互結合メッシュである。好ましい実施例では、汎用相
互結合マトリックス(GPIM)16はワイヤーベース
でk−aryのnキューブの静的相互結合ネットワーク
である。図21は、汎用相互結合マトリックス(GPI
M)16の模範実施例の構成図である。図21では、汎
用相互結合マトリックス(GPIM)16は、複数の第
1通信チャネル380と、複数の第2通信チャネル38
2とを含む、k−aryの2キューブの環状体相互結合
メッシュである。各第1通信チャネル380は、複数の
ノード接続部384を含んでおり、各第2通信チャネル
382も同様に含んでいる。システム10の各相互結合
入出力装置304は、メッセージ入力ライン314と、
メッセージ出力ライン316とが、所定の第1通信チャ
ネル380と第2通信チャネル382内とで連続ノード
接続部384と接続するように汎用相互結合マトリック
ス(GPIM)16に結合されているのが好ましい。好
ましい実施例では、各Tマシン14は上記に説明した方
法で第1通信チャネル380に結合された相互結合入出
力装置304と、第2通信チャネル382に結合された
相互結合入出力装置304とを含んでいる。Tマシン1
4内の共通インタフェース制御装置(CICU)302
は、第1通信チャネル380に結合されたその相互結合
入出力装置304と、第2通信チャネル382に結合さ
れたその相互結合入出力装置304との間の情報のルー
ティングを容易に行えることが好ましい。したがって、
図21で380cと表記されている第1通信チャネル3
80に結合された相互結合入出力装置304と、382
cと表記されている第2通信チャネル382に結合され
た相互結合入出力装置304とを含むTマシン14につ
いては、このTマシンの共通インタフェース制御装置
(CICU)302は、第1通信チャネル380cと第
2通信チャネル382cとの間の情報ルーティングを容
易に行える。
General Interconnection Matrix (GPIM) 1
6 is a conventional interconnection mesh that facilitates point-to-point parallel message routing between interconnection input / output devices 304. In a preferred embodiment, the general interconnect matrix (GPIM) 16 is a wire-based k-ary n-cube static interconnect network. FIG. 21 shows a general interconnect matrix (GPI
M) is a block diagram of an exemplary embodiment of 16; In FIG. 21, a general interconnect matrix (GPIM) 16 includes a plurality of first communication channels 380 and a plurality of second communication channels 38.
2 is a k-ary 2-cube ring interconnected mesh comprising Each first communication channel 380 includes a plurality of node connections 384, and each second communication channel 382 as well. Each interconnected input / output device 304 of system 10 includes a message input line 314,
Preferably, the message output line 316 is coupled to a general interconnect matrix (GPIM) 16 to connect to the continuous node connection 384 within a predetermined first communication channel 380 and a second communication channel 382. In a preferred embodiment, each T machine 14 has an interconnected I / O device 304 coupled to the first communication channel 380 and an interconnected I / O device 304 coupled to the second communication channel 382 in the manner described above. Contains. T machine 1
4 common interface control unit (CICU) 302
Preferably facilitates routing information between its interconnected I / O devices 304 coupled to the first communication channel 380 and its interconnected I / O devices 304 coupled to the second communication channel 382. . Therefore,
The first communication channel 3 denoted by 380c in FIG.
Interconnect input / output device 304 coupled to 80;
For a T-machine 14 that includes an interconnected input / output device 304 coupled to a second communication channel 382 labeled c, the T-machine's common interface controller (CICU) 302 includes a first communication channel 380c and a Information routing to and from the second communication channel 382c can be easily performed.

【0121】したがって汎用相互結合マトリックス(G
PIM)16は、並列に配置された相互結合入出力装置
304間の複数のメッセージのルーティングを容易に行
える。図21の2次元汎用相互結合マトリックス(GP
IM)16については、各Tマシン14は第1通信チャ
ネル380について1個の相互結合入出力装置304
を、また第2通信チャネル382について1個の相互結
合入出力装置304を含んでいることが好ましい。当業
者は、汎用相互結合マトリックス(GPIM)16の次
元が2次元を越える実施例では、Tマシン14が2個を
超える相互結合入出力装置304を含んでいることが好
ましいことを認めるであろう。汎用相互結合マトリック
ス(GPIM)16は、16ビットデータパスを含むk
−aryの2キューブとして実装されることが好まし
い。
Therefore, the universal interconnection matrix (G
The PIM 16 facilitates routing of multiple messages between interconnected I / O devices 304 arranged in parallel. The two-dimensional general interconnection matrix (GP
IM) 16, each T-machine 14 has one interconnected I / O device 304 for the first communication channel 380.
, And one interconnected input / output device 304 for the second communication channel 382. Those skilled in the art will recognize that in embodiments where the dimensions of the general interconnect matrix (GPIM) 16 are greater than two dimensions, it is preferred that the T machine 14 include more than two interconnected input / output devices 304. . A general interconnect matrix (GPIM) 16 includes a 16 bit data path
Preferably implemented as -ary two cubes.

【0122】上記の説明では、本発明の各種構成部分
は、再構成ハードウェアリソースを用いて実装されるこ
とが好ましい。再構成論理装置のメーカーは、一般に再
プログラマブルハードウェアリソースまたは再構成ハー
ドウェアリソースを用いて従来型のデジタルハードウェ
アを実装するための指針を公表している。たとえば19
94年度のXilinxプログラマブル論理装置データ
ブック(xilinx, Inc.,サンノゼ,カリフォルニア)に
は、次のようなアプリケーションノートが含まれてい
る。すなわち、アプリケーションノートXAPP00
5.002「レジスタベースFIFO」、アプリケーシ
ョンノートXAPP044.00「高性能RAMベース
FIFO」、アプリケーションノートXAPP013.
001「XC4000での桁上げ専用ロジックの使
用」、アプリケーションノートXAPP018.00
「XC4000加算器とカウンタの性能の推定」、アプ
リケーションノートXAPP028.001「位相ロッ
クループのための周波数/位相コンパレータ」、アプリ
ケーションノートXAPP031.000「XC400
0RAMの使用」、アプリケーションノートXAPP0
36.001「4ポートDRAMコントロ−
ラ...」、アプリケーションノートXAPP039.
001「18ビットパイプライン累算器」の各アプリケ
ーションノートである。Xilinx社が公表している
資料には、さらにXilinxプログラマブルロジック
のユーザーのための季刊誌である「XCELL」に含ま
れる記事がある。たとえば1994年の第3号(通刊第
14号)には高速整数乗算器の実装に関する詳しい記事
が掲載されている。
In the above description, the various components of the present invention are preferably implemented using reconfigured hardware resources. Reconfigurable logic device manufacturers generally publish guidelines for implementing conventional digital hardware using reprogrammable or reconfigurable hardware resources. For example, 19
The 1994 Xilinx Programmable Logic Device Data Book (xilinx, Inc., San Jose, CA) includes the following application notes: That is, application note XAPP00
5.002 "Register based FIFO", application note XAPP044.00 "High performance RAM based FIFO", application note XAPP013.
001 "Use of carry-only logic in XC4000", application note XAPP018.00
"Estimation of XC4000 Adder and Counter Performance", Application Note XAPP028.0001, "Frequency / Phase Comparator for Phase Locked Loop", Application Note XAPP031.000, "XC400
Use of 0RAM ", Application Note XAPP0
36.001 "4-port DRAM control
La. . . Application Note XAPP039.
001 is an application note of “18-bit pipeline accumulator”. Materials published by Xilinx also include articles included in XCELL, a quarterly magazine for Xilinx programmable logic users. For example, the third issue of 1994 (the 14th edition) contains a detailed article on the implementation of a high-speed integer multiplier.

【0123】この明細書で説明しているシステム10
は、動的に実装される多重命令セットアーキテクチャ
(ISA)のための拡張性、並列コンピュータアーキテ
クチャである。どのSマシン12も、別のSマシン12
やホストコンピュータなどの外部ハードウェアリソース
とは無関係に、それだけでコンピュータプログラム全体
を実行することができる。どのSマシン12において
も、多重命令セットアーキテクチャ(ISA)は再構成
割込み及び/またはプログラムに埋込まれた再構成指示
に応じて、プログラム実行中に連続的に実装される。シ
ステム10は多重Sマシン12を含んでいるのが好まし
いので、複数のプログラムが同時に実行されるのが好ま
しく、各プログラムは独立したものでも良い。したがっ
て、システム10が多重Sマシン12を含んでいるのが
好ましいので、多重命令セットアーキテクチャ(IS
A)はシステム初期化または再構成中以外はいつでも同
時に(すなわち、並列に)実動化される。すなわち、任
意の時間に複数のセットのプログラム命令が同時に実行
され、プログラム命令の各セットは対応する命令セット
アーキテクチャ(ISA)に従って実行される。このよ
うな命令セットアーキテクチャ(ISA)は、それぞれ
一意なものである。
The system 10 described in this specification
Is an extensible, parallel computer architecture for dynamically implemented multiple instruction set architectures (ISAs). Every S machine 12 is another S machine 12
Independently of external hardware resources such as a computer and a host computer, it alone can execute the entire computer program. In any S-machine 12, a multiple instruction set architecture (ISA) is implemented continuously during program execution in response to reconfiguration interrupts and / or reconfiguration instructions embedded in the program. Since system 10 preferably includes multiple S-machines 12, it is preferred that multiple programs be executed simultaneously, and each program may be independent. Therefore, since the system 10 preferably includes multiple S machines 12, a multiple instruction set architecture (IS
A) is activated simultaneously (ie, in parallel) at any time except during system initialization or reconfiguration. That is, at any time, multiple sets of program instructions are executed simultaneously, and each set of program instructions is executed according to a corresponding instruction set architecture (ISA). Each such instruction set architecture (ISA) is unique.

【0124】Sマシン12は、(複数の)Tマシン14
と、汎用相互結合マトリックス(GPIM)16と、各
入出力Tマシン18とを経て、互いに、また入出力装置
20と通信する。各Sマシン12は、独立した演算を実
行できる、それ自体完全なコンピュータであるが、どの
Sマシン12もその他のSマシン12またはシステム1
0全体についてマスタSマシン12として機能すること
ができ、データ及び/またはコマンドをその他のSマシ
ン12に、1個またはそれ以上のTマシン16に、1個
またはそれ以上の入出力Tマシン18に、1個またはそ
れ以上の入出力装置22に送ることができる。
The S machine 12 is composed of a plurality of T machines 14
, A general interconnect matrix (GPIM) 16 and each input / output T machine 18 to communicate with each other and with input / output devices 20. Each S-machine 12 is itself a complete computer, capable of performing independent operations, but any S-machine 12 can be any other S-machine 12 or system 1
0 can function as a master S-machine 12 and transfer data and / or commands to other S-machines 12 to one or more T-machines 16 to one or more I / O T-machines 18 , To one or more input / output devices 22.

【0125】したがって、本発明のシステム10は、空
間的及び時間的に1つまたはそれ以上のデータ並列(サ
ブ)問題に分割できる問題、たとえば画像処理、医療用
データ処理、校正済みカラーマッチング、データベース
計算、ドキュメントの処理、連想探索エンジン、及びネ
ットワークサーバについて特に有用である。オペランド
列が多い計算問題については、並列計算法によって効率
的な計算の高速化が得られるようにアルゴリズムを適用
できるときには、データが並列していることになる。デ
ータ並列問題は既知の複雑さを含んでいて、これはO
(nk)で表される。kの値は問題によって定まる。た
とえば画像処理ではk=2であり、医療用データ処理で
はk=3である。本発明では、各Sマシン12はプログ
ラム命令グループのレベルでデータの並列性を活用する
のに用いられるのが好ましい。システム10は多重Sマ
シン12を含んでいるので、システム10はプログラム
全体のレベルでデータの並列性を活用するのに用いられ
るのが好ましい。
Thus, the system 10 of the present invention is a system that can be spatially and temporally divided into one or more data parallel (sub) problems, such as image processing, medical data processing, calibrated color matching, database It is particularly useful for calculations, document processing, associative search engines, and network servers. For a computation problem with many operand strings, data can be in parallel if the algorithm can be applied so that efficient computation can be speeded up by the parallel computation method. The data parallel problem has a known complexity, which is
(N k ). The value of k depends on the problem. For example, k = 2 in image processing and k = 3 in medical data processing. In the present invention, each S-machine 12 is preferably used to exploit data parallelism at the level of a program instruction group. Since system 10 includes multiple S machines 12, system 10 is preferably used to exploit data parallelism at the level of the entire program.

【0126】任意の瞬間で必要な計算に対して、このよ
うなハードウェアの計算性能を最適なものとするため
に、各Sマシン12の命令処理ハードウェアを完全に再
構成できるので、本発明のシステム10によって大規模
な計算力が得られる。各Sマシン12は、他のSマシン
12とは無関係に再構成することができる。システム1
0は、ソフトウェアと、この明細書で説明した再構成ハ
ードウェアとの間のプログラムされた境界、すなわちイ
ンタフェースとして各構成データセットを、したがって
各命令セットアーキテクチャ(ISA)を扱うのが有利
である。さらに本発明のアーキテクチャによって、本来
の場所で実際のシステムの問題を選択的に扱うために再
構成ハードウェアを高レベルに構築することが容易とな
り、こうした問題には、割込みが命令処理に影響する方
法と、リアルタイム処理とコンピュータ性能とを容易に
する決定待ち時間応答の必要性と、欠陥処理に対する選
択可能な応答の必要とが含まれる。
The present invention can completely reconfigure the instruction processing hardware of each S machine 12 in order to optimize the calculation performance of such hardware for the calculation required at any moment. The system 10 provides a large amount of computing power. Each S machine 12 can be reconfigured independently of the other S machines 12. System 1
0 advantageously treats each configuration data set as a programmed boundary, or interface, between software and the reconfiguration hardware described herein, and thus each instruction set architecture (ISA). Further, the architecture of the present invention facilitates building reconfigurable hardware at a high level to selectively address real system problems in situ, where interrupts affect instruction processing. Methods, including the need for a decision latency response that facilitates real-time processing and computer performance, and the need for a selectable response to defect processing.

【0127】その他のコンピュータアーキテクチャとは
異なり、本発明はいつでもシリコンリソースを最大限に
利用できることを開示している。本発明は、いつでも所
望のサイズに拡大できる並列コンピュータシステムを提
供し、その規模は数千個のSマシン12からなる大規模
な並列システムでも可能である。このようなアーキテク
チャの拡張性は、Sマシンベース命令処理がTマシンベ
ースデータ通信から意図的に分離されているので可能と
なっている。この命令処理/データ通信分離モデルは、
データ並列計算にきわめて適している。Sマシンハード
ウェアの内部構造は、命令のタイムフローについて最適
化されるのが好ましいが、Tマシンハードウェアの内部
構造は、有効なデータ通信について最適化されるのが好
ましい。Sマシン12のセットとTマシン14のセット
は、それぞれデータ並列計算の空間的・時間的区分にお
いて分離可能で構成可能なコンポーネントである。
[0127] Unlike other computer architectures, the present invention discloses that silicon resources can be utilized to the full at all times. The present invention provides a parallel computer system that can be expanded to a desired size at any time, and a large parallel system including thousands of S machines 12 is possible. Such scalability of the architecture is possible because S-machine based instruction processing is intentionally decoupled from T-machine based data communication. This instruction processing / data communication separation model is
Very suitable for data parallel computing. The internal structure of the S machine hardware is preferably optimized for instruction time flow, while the internal structure of the T machine hardware is preferably optimized for valid data communication. The set of S machines 12 and the set of T machines 14 are separable and configurable components in the spatial and temporal divisions of data parallel computation, respectively.

【0128】本発明を用いると、この明細書で説明した
全体的構造を維持しながらさらに優れた計算性能を有す
るシステムを構築するのに将来の再構成ハードウェアを
利用することができるかもしれない。言い換えれば、本
発明のシステム10は技術的に拡張可能である。現在用
いられているほとんどすべての再構成論理装置は、メモ
リベース相補型金属酸化膜半導体(CMOS)技術を用
いている。装置の能力の進歩は、半導体メモリ技術の流
れ(傾向)に追随している。将来のシステムでは、Sマ
シン12を構築するのに用いられる再構成論理装置は、
この明細書に説明した内部ループ及び外部ループ命令セ
ットアーキテクチャ(ISA)に従った内部ハードウェ
アリソースの1区分を含むことになるであろう。大規模
の再構成論理装置であっても、単一の装置内でより多く
のデータ並列計算を実行する能力を単に提供するにすぎ
ない。たとえば図13を用いて上記に説明したデータ演
算装置(DOU)63の第2模範実施例に含まれる機能
単位194が大きいと、より大きなサイズの画像処理カ
ーネルを含むことになるであろう。当業者は、本発明に
より提供される技術的拡張性がCMOSベース装置に限
定されず、またフィールドプログラマブルゲートアレイ
(FPGA)ベース実装にも限定されないことを認める
であろう。したがって、本発明は再構成可能性または再
プログラマブル性を得るために用いられる特定の技術と
は無関係に、技術的拡張性を提供する。
Using the present invention, it may be possible to utilize future reconfiguration hardware to build a system with better computational performance while maintaining the overall structure described in this specification. . In other words, the system 10 of the present invention is technically scalable. Nearly all currently used reconfigurable logic devices use memory-based complementary metal oxide semiconductor (CMOS) technology. Advances in device capabilities have been following the trends in semiconductor memory technology. In future systems, the reconfigurable logic used to build the S-machine 12 will be:
It would include a partition of internal hardware resources according to the inner loop and outer loop instruction set architecture (ISA) described herein. Even large-scale reconfigurable logic devices simply provide the ability to perform more data parallel computations within a single device. For example, a larger functional unit 194 included in the second exemplary embodiment of the data operation unit (DOU) 63 described above with reference to FIG. 13 would include a larger size image processing kernel. One skilled in the art will recognize that the technical scalability provided by the present invention is not limited to CMOS-based devices and is not limited to field-programmable gate array (FPGA) -based implementations. Thus, the present invention provides technical scalability independent of the particular technique used to achieve reconfigurability or reprogrammability.

【0129】図22は、拡張性、並列、動的再構成計算
のための好ましい方法のフローチャートである。図22
の方法は、システム10内の各Sマシン12内で実行さ
れるのが好ましい。この好適な方法は、図22のステッ
プ1000から始まり、再構成ロジック104が命令セ
ットアーキテクチャ(ISA)に対応する構成データセ
ットを検索する。次にステップ1002で、再構成ロジ
ック104はステップ1000で検索した構成データセ
ットに従って、命令取出し装置(IFU)60と、デー
タ演算装置(DOU)62と、アドレス演算装置(AO
U)64内の各構成部分を構成し、これによって現在検
討中の命令セットアーキテクチャ(ISA)の実装のた
めの動的再構成処理装置(DRPU)ハードウェア編成
が得られる。ステップ1002のあと、ステップ100
4で割込みロジック106はアーキテクチャ記述メモリ
101に記憶された割込み応答信号を検索し、現在の動
的再構成処理装置(DRPU)構成が割込みにどのよう
に応答するかを定める遷移制御信号の対応するセットを
生成する。その後、命令セットアーキテクチャ(IS
A)100はステップ1006でプログラム状態情報を
初期化する。その後命令セットアーキテクチャ(IS
A)100はステップ1008で命令実行サイクルを開
始する。
FIG. 22 is a flowchart of a preferred method for scalable, parallel, dynamic reconfiguration computation. FIG.
Is preferably executed in each S machine 12 in the system 10. The preferred method begins at step 1000 of FIG. 22, where the reconstruction logic 104 retrieves a configuration data set corresponding to an instruction set architecture (ISA). Next, in step 1002, the reconstruction logic 104 according to the configuration data set retrieved in step 1000, the instruction fetch unit (IFU) 60, the data arithmetic unit (DOU) 62, and the address arithmetic unit (AO)
U) 64, which provides a dynamic reconfigurable processor (DRPU) hardware organization for an instruction set architecture (ISA) implementation currently under consideration. After step 1002, step 100
At 4, the interrupt logic 106 retrieves the interrupt response signal stored in the architecture description memory 101 and corresponds to the transition control signal that determines how the current dynamic reconfiguration processor (DRPU) configuration responds to the interrupt. Generate a set. After that, the instruction set architecture (IS
A) 100 initializes program state information in step 1006. Then the instruction set architecture (IS
A) 100 starts an instruction execution cycle in step 1008.

【0130】次にステップ1010では、命令セットア
ーキテクチャ(ISA)100または割込みロジック1
06は再構成が必要かどうかを決定する。プログラム実
行中に再構成指示が選択されるときには、命令セットア
ーキテクチャ(ISA)100は再構成が必要であると
決定する。割込みロジック106は、再構成割込みに応
じて再構成が必要であると決定する。再構成が必要なと
きには、この優先的方法はステップ1012に進み、こ
こで再構成ハンドラーはプログラム状態情報をセーブす
る。プログラム状態情報は、現在の動的再構成処理装置
(DRPU)構成に対応した構成データセットへの引照
を含んでいることが好ましい。ステップ1012のあ
と、この優先的方法はステップ1000に戻り、再構成
指示または再構成割込みによって引照される次の構成デ
ータセットを検索する。
Next, at step 1010, the instruction set architecture (ISA) 100 or the interrupt logic 1
06 determines if reconstruction is needed. When a reconfiguration instruction is selected during program execution, instruction set architecture (ISA) 100 determines that reconfiguration is required. Interrupt logic 106 determines that reconfiguration is required in response to the reconfiguration interrupt. If reconfiguration is required, the preferred method proceeds to step 1012, where the reconfiguration handler saves program state information. Preferably, the program state information includes a reference to a configuration data set corresponding to a current Dynamic Reconfiguration Processor (DRPU) configuration. After step 1012, the preferred method returns to step 1000 to retrieve the next set of configuration data referenced by the reconfiguration instruction or reconfiguration interrupt.

【0131】ステップ1010で再構成が必要とされな
いときには、ステップ1014で割込みロジック106
は非再構成割込みを実施する必要があるかどうかを決定
する。必要な場合には、次にステップ1020で、命令
セットアーキテクチャ(ISA)100は命令実行サイ
クル内の現在の命令状態シーケンサ(ISS)状態から
の割込み実施状態への遷移が遷移制御信号に基づいて許
容されるかどうかを決定する。割込み実施状態への遷移
が許容されないときには、命令セットアーキテクチャ
(ISA)100は命令実行サイクルの次の状態に進
み、ステップ1020に戻る。遷移制御信号によって命
令実行サイクル内の現在の命令状態シーケンサ(IS
S)状態からの割込み実施状態への遷移が許容されると
きには、次にステップ1024で命令セットアーキテク
チャ(ISA)100は割込み実施状態へと進む。ステ
ップ1024で、命令セットアーキテクチャ(ISA)
100はプログラム状態情報をセーブし、割込みを実施
するためのプログラム命令を実行する。ステップ102
4の後、この優先的方法はステップ1008に戻り、現
在の命令実行サイクルが完了していなかったときにはこ
れを再開し、(完了していたときには)次の命令実行サ
イクルを開始する。
If no reconfiguration is required at step 1010, then at step 1014 the interrupt logic 106
Determines if a non-reconfiguration interrupt needs to be performed. If necessary, then, at step 1020, the instruction set architecture (ISA) 100 allows the transition from the current instruction state sequencer (ISS) state to the interrupt execution state in the instruction execution cycle based on the transition control signal. To determine if it is. When the transition to the interrupt execution state is not allowed, the instruction set architecture (ISA) 100 proceeds to the next state of the instruction execution cycle and returns to step 1020. The current instruction state sequencer (IS
When the transition from the S) state to the interrupt execution state is permitted, the instruction set architecture (ISA) 100 proceeds to the interrupt execution state in step 1024. At step 1024, the instruction set architecture (ISA)
100 saves program state information and executes program instructions to perform interrupts. Step 102
After 4, the preferred method returns to step 1008 to resume the current instruction execution cycle if it was not completed, and to start the next instruction execution cycle (if it was).

【0132】ステップ1014で非再構成割込みを実施
する必要がないときには、この優先的方法はステップ1
016に進み、現在のプログラムの実行が完了している
かどうかを決定する。現在のプログラムの実行を継続す
べきときには、この優先的方法はステップ1008に戻
り、別の命令実行サイクルを開始する。それ以外の場合
には、この優先的方法は終了する。
If it is not necessary to perform a non-reconfiguration interrupt at step 1014, this preferential method is
Proceeding to 016, it is determined whether the execution of the current program has been completed. If execution of the current program is to continue, the preferred method returns to step 1008 to begin another instruction execution cycle. Otherwise, the priority method ends.

【0133】本発明は、本発明のアーキテクチャにより
必要とされるメモリ演算を実行するためのメタアドレス
指定メカニズムを組入れている。本発明によれば、Tマ
シン14はアドレス指定マシンとして用いられる。Tマ
シン14は、割込み処理と、メッセージの待ち行列設定
と、メタアドレス生成と、データパケットの全体的転送
の制御とを実行する。図23は、本発明に基づくデータ
パケット1800の構成図である。データパケット18
00は、データ部分1824と、コマンド部分1820
と、ソース地理アドレス1816と、サイズ区切り記号
1812と、目的ローカルアドレスと、目的地理アドレ
ス1804とを含んでいる。メタアドレス1828は、
目的地理アドレス1804と、目的ローカルメモリアド
レス1808とを含んでいる。目的ローカルメモリアド
レス1808は、データパケット1800のデータをロ
ーカルメモリ34のどこに書込むかを指定する。目的地
理アドレス、すなわち相互結合アドレス1804は、ど
のTマシン14がデータパケット1800を受取るべき
かを指定する。ソース地理アドレス1816は、データ
パケット1800を生成したTマシン14を指定する。
The present invention incorporates a meta-addressing mechanism for performing the memory operations required by the architecture of the present invention. According to the invention, the T machine 14 is used as an addressing machine. The T-machine 14 performs interrupt handling, message queuing, meta-address generation, and control of the overall transfer of data packets. FIG. 23 is a configuration diagram of the data packet 1800 based on the present invention. Data packet 18
00 is a data part 1824 and a command part 1820
, A source geographic address 1816, a size separator 1812, a destination local address, and a destination geographic address 1804. The meta address 1828 is
A destination geographic address 1804 and a destination local memory address 1808 are included. Destination local memory address 1808 specifies where in local memory 34 the data of data packet 1800 is to be written. Destination geographic address, or interconnect address 1804, specifies which T-machine 14 should receive data packet 1800. Source geographic address 1816 specifies the T-machine 14 that generated the data packet 1800.

【0134】任意の2対のソース地理アドレス1816
及び宛先(目的)地理アドレス1804によって、26
4ビットのローカルアドレススペースへの1つの経路
(パス)が一意的に決定される。しかし、システムには
このような経路(パス)が2つ以上存在し、並列に作動
することができる。Sマシン12はそれに結合されたT
マシン14を含み、その数はローカルメモリ帯域幅に相
当する数まで、または持ち行列効果を考慮した任意の数
までを含むことができる。したがって、本発明では2の
不確定累乗分だけの拡張性が可能であり、またシステム
内のプロセッサが不均一であってもよく、さらに各Sマ
シン12へのユニークなパスの数を任意に拡張すること
ができる。この種の拡張性は、分散画像処理など多くの
アプリケーションで重要であり、動的再構成処理構成部
分のピラミッドまたはツリーは、このシステムの高いレ
ベルに対しさらに広い通信帯域幅を提供できるよう構成
できるかもしれない。望む場合には、より多くの等速度
Tマシン14がSマシン12のピラミッドの高いレベル
にアクセスできるようにすることによって、このピラミ
ッドアーキテクチャを実装し、アドレス指定能力を最も
必要とするSマシン12にこの能力を与える。これによ
って、システムリソースをほとんどの処理及び通信タス
クに集中させることができるので、対費用効果のすぐれ
たシステムが得られる。
Any two pairs of source geographic addresses 1816
And destination (destination) geographic address 1804, 26
One path to the 4-bit local address space is uniquely determined. However, there are two or more such paths in the system and can operate in parallel. S machine 12 has a T coupled to it.
The number of machines 14 may be included, up to a number corresponding to the local memory bandwidth, or any number taking account of the matrix effect. Therefore, in the present invention, scalability by an indeterminate power of 2 is possible, the processors in the system may be uneven, and the number of unique paths to each S machine 12 can be arbitrarily expanded. can do. This type of scalability is important in many applications, such as distributed image processing, and the pyramids or trees of the dynamic reconstruction component can be configured to provide more communication bandwidth for the higher levels of the system. Maybe. If desired, implement this pyramid architecture by allowing more constant-speed T-machines 14 to access the higher levels of the pyramids of S-machines 12 to provide the S-machines 12 with the greatest need for addressability. Give this ability. This results in a cost-effective system because system resources can be concentrated on most processing and communication tasks.

【0135】好ましい実施例では、メタアドレスは80
ビット幅である。この実施例では、地理アドレスは16
ビットであり、ローカルメモリアドレスは64ビット幅
である。16ビットの地理アドレスにより、65536
個の地理アドレスを指定することができる。64ビット
のローカルメモリアドレスにより、各ローカルメモリ3
4内に264の個別のアドレス可能ビットを指定すること
ができる。各Sマシン12は、特定のSマシン12につ
いて構成されるローカルメモリ34を含んでいる。Sマ
シン12とメモリ34が互いに分離しているので、各メ
モリのサイズや構造が均一である必要はなく、またメモ
リ全体のコヒーレント性や一致性を維持する必要もな
い。ソースSマシン12のプログラム命令が目的Sマシ
ン12のローカルメモリ34のアーキテクチャを意識し
て書かれたものであり、またこのプログラム命令がメモ
リ位置を正確に指定する限り、そのサイズやレイアウト
とは無関係に、目的Sマシン12のローカルメモリ34
に容易にアドレス指定することができる。こうしたモジ
ュール性を備えているため、問題の取扱いとは無関係
に、さまざまなコンポーネントを用いてこのアーキテク
チャのサイズを拡大・縮小することができる。新しいS
マシンを統合する方法も大幅に単純化されている。新し
いSマシン12をシステムに加えるときには、そのSマ
シン12について新しい地理アドレスを選択し、新しい
Sマシン12の使用を要求するプログラムに新しいアド
レスが与えられる。新しいSマシン12を利用するよう
設計されたプログラムに新しいアドレスがいったん組入
れられると、解決すべき問題は生じず、また計算を実行
する必要もなく、Sマシン12が統合される。
In the preferred embodiment, the metaaddress is 80
Bit width. In this example, the geographic address is 16
Bits, and the local memory address is 64 bits wide. 65536 with a 16 bit geographic address
Individual geographic addresses can be specified. Each local memory 3 has a 64-bit local memory address.
Within 4 2 64 individually addressable bits can be specified. Each S-machine 12 includes a local memory 34 configured for a particular S-machine 12. Since the S machine 12 and the memory 34 are separated from each other, the sizes and structures of the memories do not need to be uniform, and it is not necessary to maintain coherency and consistency of the entire memory. The source S machine 12 program instructions are written with the architecture of the local memory 34 of the destination S machine 12 in mind, and are independent of their size and layout as long as the program instructions specify memory locations accurately. The local memory 34 of the destination S machine 12
Can be easily addressed. This modularity allows the architecture to be scaled up and down using a variety of components, independent of the problem handling. New S
The way machines are integrated has also been greatly simplified. When a new S-machine 12 is added to the system, a new geographical address is selected for the S-machine 12 and the program requesting use of the new S-machine 12 is given the new address. Once the new address is incorporated into a program designed to take advantage of the new S-machine 12, the S-machine 12 is integrated without any problems to solve and without having to perform any calculations.

【0136】図24は、遠隔演算を要求するための本発
明のSマシン12の処理の流れを示すフローチャートで
ある。ステップ1900で、Sマシン12は命令を受取
る。ステップ1904でSマシン12は、この命令が遠
隔演算を要求しているかどうかを決定する。この命令が
遠隔演算を要求していないときには、ステップ1906
でこの命令が実行される。命令が遠隔演算を要求してい
るときには、ステップ1904で遠隔演算情報はローカ
ルメモリに記憶される。下記に説明するようにステップ
1920に進んだ後、Sマシン12は遠隔演算が要求さ
れているかどうかを示す命令コード内のフラグの状態を
調べることによって、命令が遠隔演算を要求していると
決定する。遠隔演算とは、結果を得るために異なるSマ
シン12を使用する必要がある演算である。遠隔演算情
報は、Sマシン12によって実行されるプログラムによ
り提供され、遠隔演算の実行が望まれる場合にローカル
メモリ34に記憶される。遠隔演算を記憶するにはロー
カルメモリ34の一定のメモリ位置を用いるのが好まし
く、このようにすれば、Tマシン14はただちに情報に
アクセスでき、最初にアドレスを取得する必要はない。
遠隔演算情報は、一般に遠隔Tマシン14の目的地理ア
ドレス1804と、遠隔Sマシン12にデータを記憶
し、または遠隔Sマシン12からデータを検索するため
の目的ローカルメモリアドレス1808と、コマンド情
報1820と、サイズ情報1812と、データ1824
とを含んでいる。命令が遠隔演算を必要とすると決定さ
れ次第、これらの情報はすべてSマシン12によってロ
ーカルメモリ34に記憶される。
FIG. 24 is a flowchart showing the flow of the processing of the S machine 12 of the present invention for requesting a remote operation. At step 1900, S machine 12 receives the instruction. In step 1904, S machine 12 determines whether the instruction requires remote computing. If this instruction does not require remote operation, step 1906
Executes this instruction. If the instruction requires remote operation, at step 1904 the remote operation information is stored in local memory. After proceeding to step 1920 as described below, the S-machine 12 determines that the instruction requires remote operation by examining the state of a flag in the instruction code that indicates whether remote operation is required. I do. A remote operation is an operation that requires the use of a different S-machine 12 to obtain a result. The remote operation information is provided by a program executed by the S machine 12 and stored in the local memory 34 when the execution of the remote operation is desired. Preferably, certain memory locations in local memory 34 are used to store remote operations, so that T-machine 14 has immediate access to information and does not need to obtain an address first.
The remote computing information generally includes a target geographic address 1804 of the remote T machine 14, a target local memory address 1808 for storing data on or retrieving data from the remote S machine 12, command information 1820, , Size information 1812 and data 1824
And All of this information is stored by the S-machine 12 in local memory 34 as soon as the instruction is determined to require remote operation.

【0137】1つの実施例では、ステップ1912でS
マシン12が、遠隔演算が必要であることを示すようT
マシンに無条件命令を発する。無条件命令は、Tマシン
14が認識するよう設計されている一意的なコマンド列
である。無条件命令は、一般に遠隔演算情報がローカル
メモリ34に納められているメモリアドレスと、アドレ
ス指定情報のサイズを示すサイズ区切り記号とを含んで
いる。これは遠隔演算情報の開始アドレスと一連のサイ
ズ区切り記号を単に指定するだけで、Sマシン12によ
って実行中のプログラムによって1度に複数の遠隔演算
を要求することができる。そのときTマシン14は、情
報について異なる要求を逐次処理することができる。次
にステップ1920で、Sマシン12は実行すべきその
他の命令があるかどうかを決定する。命令が存在すると
きには、次の命令を受取り実行する。したがって、Sマ
シン12は遠隔演算の要求があってもそれとは無関係
に、命令の実行をほぼ瞬間的に行うことができる。Tマ
シン14がデータの転送と検索を実行するので、Sマシ
ン12の処理能力は、命令の処理のみに集中することが
できる。図25は、Sマシン12から無条件命令を受取
るTマシン14の処理のフローチャートである。まずス
テップ2000でTマシン14は、制御ライン48上で
Sマシン12から受取ったコマンドが無条件命令である
かどうかを決定する。コマンドが無条件命令であると決
定したら、ステップ2004でTマシンはメモリ/デー
タライン46を経てローカルメモリ34から遠隔演算情
報を検索する。遠隔演算情報は、Tマシン14がデータ
を検索する際に、遠隔演算情報を検索するたびに新しい
メモリアドレスを決定する必要がないようにメモリ34
の一定の場所に納められるのが好ましい。遠隔演算情報
は、ローカルメモリ34の任意の場所に記憶することも
できる。しかしこの場合には、情報の場所は無条件命令
の一部として伝送されなければならない。遠隔演算情報
を検索した後、Tマシン14、特にTマシン14の共通
インタフェース制御装置(CICU)302コンポーネ
ントは、ステップ2008で情報からメタアドレス18
28を生成する。目的ローカルメモリアドレス1808
は、メタアドレス1828を形成するために、目的地理
アドレス1804に添付される。次にステップ2112
で、Tマシン14は残りの遠隔演算情報からデータパケ
ット1800を生成し、要求されている宛先に伝送する
ためにデータパケット1800を相互結合装置または汎
用相互結合マトリックス(GPIM)16に伝送する。
In one embodiment, at step 1912 S
Machine 12 sends T to indicate that remote computing is required.
Issue unconditional instructions to the machine. An unconditional instruction is a unique command sequence designed to be recognized by the T machine 14. The unconditional instruction generally includes a memory address where the remote operation information is stored in the local memory 34, and a size delimiter indicating the size of the addressing information. This allows multiple remote operations to be requested at once by the program running by the S-machine 12, simply by specifying the starting address of the remote operation information and a series of size delimiters. At that time, the T-machine 14 can sequentially process different requests for information. Next, in step 1920, the S machine 12 determines whether there are any other instructions to execute. When an instruction exists, the next instruction is received and executed. Therefore, the S machine 12 can execute the instruction almost instantaneously regardless of the request for the remote operation regardless of the request. Since the T machine 14 performs the data transfer and the search, the processing capability of the S machine 12 can be concentrated only on the processing of the instruction. FIG. 25 is a flowchart of the processing of the T machine 14 that receives an unconditional instruction from the S machine 12. First, at step 2000, T machine 14 determines whether the command received from S machine 12 on control line 48 is an unconditional command. If the command is determined to be an unconditional command, the T machine retrieves the remote computation information from local memory 34 via memory / data line 46 in step 2004. The remote operation information is stored in the memory 34 so that the T machine 14 does not need to determine a new memory address each time the remote operation information is searched when searching for data.
It is preferable to be stored in a certain place. The remote operation information can be stored in any location of the local memory 34. However, in this case, the location of the information must be transmitted as part of the unconditional command. After retrieving the telecomputed information, the T-machine 14, and particularly the Common Interface Controller (CICU) 302 component of the T-machine 14, in step 2008 retrieves the meta-address 18 from the information.
28 is generated. Destination local memory address 1808
Is attached to destination geographic address 1804 to form meta-address 1828. Next, step 2112
At T, the T-machine 14 generates a data packet 1800 from the remaining telecomputation information and transmits the data packet 1800 to an interconnect device or general interconnect matrix (GPIM) 16 for transmission to the required destination.

【0138】ソース地理アドレス1816は、プログラ
ム命令によって指定してもよく、したがってTマシン1
4による検索のためにローカルメモリ34に記憶しても
良い。またソース地理アドレス1816は、アーキテク
チャ記述メモリ(ADM:Architecture Description M
emory)101に記憶されるのが好ましい。アーキテク
チャ記述メモリ(ADM)101は、それが結合されて
いるTマシン14の地理アドレスを記憶する変更可能な
メモリである。アーキテクチャ記述メモリ(ADM)1
01を用いて、システム全体の地理アドレスを明白に変
更することができる。このシステムの実施例では、Tマ
シン14はアーキテクチャ記述メモリ(ADM)101
からソース地理アドレス1816を検索し、Tマシン1
4自体の最も新しいソース地理アドレス1816を用い
ていることを確かめる。多重共通インタフェース制御装
置(CICU)302が各Sマシン12に結合された実
施例では、各共通インタフェース制御装置(CICU)
302の地理アドレスはアーキテクチャ記述メモリ(A
DM)101に記憶される。
The source geographic address 1816 may be specified by a program instruction, thus
4 may be stored in the local memory 34 for retrieval. The source geographic address 1816 is stored in an architecture description memory (ADM).
emory) 101. The architecture description memory (ADM) 101 is a changeable memory that stores the geographic address of the T machine 14 to which it is coupled. Architecture description memory (ADM) 1
01 can be used to explicitly change the geographic address of the entire system. In an embodiment of this system, T machine 14 has an architecture description memory (ADM) 101.
From the T18 machine
4. Make sure it is using its own newest source geographic address 1816. In an embodiment where multiple common interface controllers (CICUs) 302 are coupled to each S machine 12, each common interface controller (CICU)
The geographic address of 302 is stored in the architecture description memory (A
DM) 101.

【0139】図26は、相互結合装置を経て伝送された
データパケットを受取るためのTマシン14の処理を示
すフローチャートである。ステップ2100でTマシン
14は、相互結合装置からデータパケットを受取る。ス
テップ2104でTマシン14は、メタアドレス182
8の目的地理アドレス1804コンポーネントを解析す
ることによって、データパケット1800を復号する。
上記に説明したようにTマシンのアドレス復号器320
は、データパケット1800を復号する。ステップ21
08でアドレス復号器320は、目的地理アドレス18
04と、関連する地理アドレスとを比較する。変更可能
なアーキテクチャ記述メモリ(ADM)101を用いる
実施例では、アドレス復号器320は受取った目的地理
アドレス1804とアーキテクチャ記述メモリ(AD
M)101内に記憶したアドレスとを比較する。ステッ
プ2112で、地理アドレスが一致するとアドレス復号
器320が決定したときには、データパケット1800
はローカルメモリアドレス1808によって指定された
メモリ34の場所に伝送される。データパケット180
0は解析され、データはメモリ/データライン46を経
て送られ、コマンドは制御ライン48を経て送られる。
アドレス情報は、アドレスライン44を経て送られる。
各アドレスが一致しないときには、エラーメッセージが
バイパスFIFO324と、MUX328と、汎用相互
結合マトリックス(GPIM)16とを通ってデータパ
ケット1800のソース地理アドレス1816コンポー
ネントによって識別されたTマシン14に伝送される。
誤ってアドレスされたデータパケット1800をTマシ
ン14が受取った場合も、上記に説明したのと同じプロ
セスを用いる。新しいデータパケット1800を受取っ
た際に、CICU304がデータパケット1800を組
立てているか解体しているときには、CICU304が
データを受取り処理できるようになるまでTマシン14
はデータパケット1800を入力FIFO322に送
り、待機させる。
FIG. 26 is a flowchart showing a process of the T machine 14 for receiving a data packet transmitted via the interconnection device. At step 2100, T machine 14 receives a data packet from the interconnection device. In step 2104, the T machine 14 sets the meta address 182
The data packet 1800 is decoded by analyzing the eight destination geographic address 1804 components.
As described above, the address decoder 320 of the T machine
Decrypts the data packet 1800. Step 21
At 08, the address decoder 320 sets the destination geographical address 18
04 and the associated geographic address. In an embodiment using a modifiable architecture description memory (ADM) 101, address decoder 320 receives received geographical address 1804 and architecture description memory (AD).
M) Compare with the address stored in 101. If the address decoder 320 determines in step 2112 that the geographic addresses match, the data packet 1800
Is transmitted to the location in memory 34 specified by local memory address 1808. Data packet 180
A 0 is parsed, the data is sent via a memory / data line 46, and the command is sent via a control line 48.
The address information is sent via an address line 44.
If the addresses do not match, an error message is transmitted through the bypass FIFO 324, the MUX 328, and the general interconnect matrix (GPIM) 16 to the T machine 14 identified by the source geographic address 1816 component of the data packet 1800.
The same process described above is used when the T-machine 14 receives an incorrectly addressed data packet 1800. When a new data packet 1800 is received and the CICU 304 is assembling or disassembling the data packet 1800, the T-machine 14 waits until the CICU 304 can receive and process the data.
Sends the data packet 1800 to the input FIFO 322 and waits.

【0140】別の実施例では、Tマシン14はメッセー
ジの優先度を認識するように設計されており、Sマシン
に新しいコマンドを処理させるのが適切であるときに
は、Sマシン12の処理に割込む。この実施例では、図
27に示すように、共通インタフェース制御装置(CI
CU)302は割込みロジック2200と、コンパレー
タ(比較器)2204と、認識装置2208とを含む追
加コンポーネントをさらに含んでいる。図28は、共通
インタフェース制御装置(CICU)302の割込み処
理能力を示すフローチャートである。ステップ2300
で認識装置2208は、アドレス復号320によってア
ドレスを確認したあと、データパケット1800を解析
し、パースコマンド1820を識別する。ステップ23
04で認識装置2208は、コマンド1820が割込み
要求であるかどうかを決定する。データパケット180
0が割込み要求であるときには、コマンド1820は割
込みIDを含むことになる。コマンド1820が割込み
IDを含んでいないときには、上記に説明したような処
理を行うためにステップ2308でデータパケットは共
通インタフェース制御装置(CICU)302に送られ
る。
In another embodiment, the T machine 14 is designed to recognize the priority of the message and interrupt the processing of the S machine 12 when it is appropriate to have the S machine process the new command. . In this embodiment, as shown in FIG. 27, a common interface control device (CI
The CU 302 further includes additional components including an interrupt logic 2200, a comparator 2204, and a recognizer 2208. FIG. 28 is a flowchart showing the interrupt processing capability of the common interface control device (CICU) 302. Step 2300
After recognizing the address by the address decoding 320, the recognizing device 2208 analyzes the data packet 1800 and identifies the parse command 1820. Step 23
At 04, the recognizer 2208 determines whether the command 1820 is an interrupt request. Data packet 180
If 0 is an interrupt request, command 1820 will include an interrupt ID. If the command 1820 does not include an interrupt ID, the data packet is sent to the common interface controller (CICU) 302 in step 2308 to perform the processing described above.

【0141】コマンド1820が割込みIDを含んでい
るときには、割込みIDはメモリ34に結合されている
コンパレータ2204に送られる。メモリ34は割込み
IDのリストを記憶する。各Sマシンには、その関連す
るローカルメモリ34に記憶するようSマシンが設計さ
れた割込みIDのリストを含むのが好ましい。このリス
トによって割込みを識別し、割込みの優先度を指定する
ことができ、またこのリストは割込みを実行するための
指示を含んでいる。ステップ2312で、コンパレータ
2204は受取ったコマンドの割込みIDと、記憶され
ているIDのリストとを比較する。コマンドにより指定
された割込みIDがリストのIDと一致しないときに
は、ステップ2320で、エラーメッセージがバイパス
FIFO324、MUX328を経てソース地理アドレ
ス1816により指定された宛先に伝送され、また信号
ライン314を経て汎用相互結合マトリックス(GPI
M)16に伝送される。割込みIDが記憶されたIDと
一致するときには、ステップ2324で割込みロジック
2200は記憶されたIDに関連するローカルメモリ3
4に含まれている情報に従って、またはデータパケット
1800に含まれている情報に従って割込みを処理し、
また得られたコマンドを制御ライン48を経てSマシン
12に送る。
When the command 1820 includes an interrupt ID, the interrupt ID is sent to a comparator 2204 coupled to the memory 34. The memory 34 stores a list of interrupt IDs. Each S-machine preferably includes a list of interrupt IDs for which the S-machine is designed to be stored in its associated local memory 34. The list identifies the interrupt, specifies the priority of the interrupt, and includes instructions for executing the interrupt. In step 2312, the comparator 2204 compares the interrupt ID of the received command with the stored list of IDs. If the interrupt ID specified by the command does not match the ID in the list, then at step 2320 an error message is transmitted via bypass FIFO 324, MUX 328 to the destination specified by source geographic address 1816, and a general purpose interconnect via signal line 314. Binding matrix (GPI
M) 16. If the interrupt ID matches the stored ID, then in step 2324 the interrupt logic 2200 determines whether the local memory 3 associated with the stored ID
Processing the interrupt according to the information contained in the data packet 4 or according to the information contained in the data packet 1800;
The obtained command is sent to the S machine 12 via the control line 48.

【0142】優先度の比較が可能なときには、割込みロ
ジック2200は、割込み要求の優先度と、現在入力F
IFO322にあるデータパケット1800の優先度と
を比較する。割込み要求の優先度がFIFO32のデー
タパケット1800より高いときには、割込み要求の優
先度の低いデータパケット1800の手前に置かれる。
場合によっては、割込み要求がSマシン12の実行を停
止するよう求めることもある。この場合、優先度レベル
はSマシン12で実行しているプロセスに割当てられ
る。割込み要求の優先度が現在実行しているプロセスの
優先度より高いときには、割込みロジック2200は、
Sマシン12が現在の処理を終了し割込み要求の処理を
開始する命令を制御ライン48を経てSマシン12に発
信する。したがって、完全な優先度比較と割込み処理ス
キームは、本発明のアーキテクチャに基づくTマシン1
4によって実動化され、Sマシン12が追加の処理を行
う必要はほとんどない。
When the priority can be compared, the interrupt logic 2200 determines the priority of the interrupt request and the current input F.
The priority of the data packet 1800 in the IFO 322 is compared. When the priority of the interrupt request is higher than the data packet 1800 of the FIFO 32, the interrupt request is placed before the data packet 1800 of the lower priority of the interrupt request.
In some cases, the interrupt request may require that the S machine 12 stop executing. In this case, the priority level is assigned to the process running on the S machine 12. When the priority of the interrupt request is higher than the priority of the currently executing process, the interrupt logic 2200
The S machine 12 sends a command to the S machine 12 via the control line 48 to terminate the current processing and start processing the interrupt request. Thus, a complete priority comparison and interrupt handling scheme is provided for the T machine 1 based on the architecture of the present invention.
4, the S machine 12 rarely needs to perform any additional processing.

【0143】したがって、Tマシン14がコンピュータ
システムによって要求されるすべてのメモリ演算機能を
実行するので、Sマシン12はプログラムの主命令を実
行することができる。メモリと命令実行演算を空間的・
時間的に分離することによって、マルチプロセッサで構
成される高度に並列のシステムの処理能力を大幅に最適
化することができる。仮想メモリや共用メモリを使用し
ないので、ハードウェア一致性及びコヒーレンス性演算
を行う必要はない。Sマシン12は異なるレートで作動
することができ、動的に再構成可能なSマシン12によ
って実現される命令セットアーキテクチャ(ISA)は
異なるものでも良い。さらにSマシン12を実動化する
フィールドプログラマブルゲートアレイ(FPGA)
も、特定のタスクについて最適化される。たとえば、埋
込まれた画像を計算する場合、フロントパネルLCD画
面コントローラを画像処理用に最適化したSマシン12
とする必要はない。しかし、システムのすべてのSマシ
ン12に対し、別のSマシンと通信する必要がある各S
マシン12が一様にアドレス指定できるようにすること
は、それでもきわめて望ましいことであり、これは上記
に説明したように本発明によって得られる。ソフトウェ
アは、システム全体のコヒーレント性また一致性を得る
ように用いられ、これにはSマシン12及びTマシン1
4のためのメッセージ伝達インタフェース(MPI)実
行時(ランタイム)ライブラリなど、また並列仮想マシ
ン(PVM)のための実行時ライブラリなどの従来の方
法が用いられる。MPIもPVMもハードウェア抽象化
層(HAL)として機能する。本発明によると、HAL
は動的に再構成可能なSマシン12と固定式Tマシン1
4のためのものである。メモリ演算はソフトウェアによ
って完全に制御されているので、このシステムは動的に
再構成可能であり複雑なハードウェア/ソフトウェア相
互作用の影響を受ない。したがって、独立して分離した
メモリを用い、また別個のアドレス指定マシンと処理マ
シンとを有する完全に拡張性がありアーキテクチャ的に
再構成可能なコンピュータシステムが、高度並列計算環
境で使用するために提供される。メタアドレスを用いる
ことにより、透過性で細かいアドレス指定が可能であ
り、またコンピュータシステムの通信経路をシステムの
要求に応じて割当てたり再割当てすることが可能であ
る。アドレス指定マシンと処理マシンとを分離すること
によって、処理マシンのリソースを処理のみに集中させ
ることができ、処理マシンに多様な命令セットアーキテ
クチャを利用したりさまざまなレートで作動させること
ができ、またそれぞれ最適化されたハードウェアを用い
て実動化することができる。これらのすべてによってシ
ステムの処理力が大幅に向上する。
Therefore, S machine 12 can execute the main instruction of the program because T machine 14 performs all the memory operation functions required by the computer system. Spatial memory and instruction execution operations
By separating in time, the processing power of a highly parallel system composed of multiple processors can be greatly optimized. Since no virtual memory or shared memory is used, there is no need to perform hardware consistency and coherence calculations. The S-machines 12 can operate at different rates, and the instruction set architecture (ISA) implemented by the dynamically reconfigurable S-machines 12 can be different. Further, a field programmable gate array (FPGA) for realizing the S machine 12
Are also optimized for specific tasks. For example, when calculating the embedded image, the S-machine 12 with the front panel LCD screen controller optimized for image processing
You don't have to. However, for every S machine 12 in the system, each S machine that needs to communicate with another S machine
Ensuring that the machine 12 is uniformly addressable is still highly desirable, and is obtained by the present invention as described above. The software is used to obtain coherency or consistency of the entire system, including the S machine 12 and the T machine 1
Conventional methods are used, such as a message transfer interface (MPI) run-time (run-time) library for H.4 and a run-time library for a parallel virtual machine (PVM). Both MPI and PVM function as a hardware abstraction layer (HAL). According to the present invention, HAL
Is a dynamically reconfigurable S machine 12 and a fixed T machine 1
For four. Since the memory operations are completely controlled by software, the system is dynamically reconfigurable and is not affected by complex hardware / software interactions. Thus, a fully scalable and architecturally reconfigurable computer system using independently separated memory and having separate addressing and processing machines is provided for use in highly parallel computing environments. Is done. By using meta-addresses, transparent and fine addressing is possible, and communication paths of a computer system can be assigned or reassigned as required by the system. By separating the addressing machine from the processing machine, the resources of the processing machine can be concentrated on processing only, the processing machine can utilize different instruction set architectures and operate at different rates, and Each of them can be implemented using optimized hardware. All of these significantly increase the processing power of the system.

【0144】本発明の開示内容は、再プログラマブル計
算または再構成計算のためのその他のシステムと著しく
異なっている。特に、ダウンロード可能なマイクロコー
ドアーキテクチャは一般に非再構成制御手段と非再構成
ハードウェアに依存しているので、本発明はこのような
アーキテクチャとは同等ではない。本発明は、1組の再
構成ハードウェアが非再構成ホストプロセッサまたはホ
ストシステムに結合された付加再構成プロセッサ(AR
P)システムとも明白に異なっている。付加再構成可能
プロセッサ(ARP)装置は、いくつかのプログラムを
実行するホストに従属している。したがって、ホストま
たは付加再構成可能プロセッサ(ARP)装置がそれぞ
れデータについて演算する際に、付加再構成可能プロセ
ッサ(ARP)装置またはホストのシリコンリソースが
アイドル状態であるかまたは非効率に用いられるので、
利用できるシリコンリソースはプログラム実行の時間枠
において最大限に利用されない。これに対して各Sマシ
ン12は、プログラム全体を容易に実行することができ
る独立したコンピュータである。多重Sマシン12は、
プログラムを同時に実行することが好ましい。したがっ
て本発明は、個々のSマシン12上で実行する各プログ
ラムとシステム10全体上で実行する多重プログラムと
の両方について、常にシリコンリソースを最大限に利用
することを開示している。
The disclosure of the present invention is significantly different from other systems for reprogrammable or reconstructed calculations. In particular, the present invention is not equivalent to a downloadable microcode architecture, as such architectures generally rely on non-reconfigurable control means and non-reconfigurable hardware. The present invention provides an additional reconfigurable processor (AR) in which a set of reconfigurable hardware is coupled to a non-reconfigurable host processor or host system.
P) It is clearly different from the system. Additional reconfigurable processor (ARP) devices are subordinate to hosts that execute some programs. Thus, the silicon resources of the additional reconfigurable processor (ARP) device or the host are idle or inefficiently used when the host or the additional reconfigurable processor (ARP) device respectively operate on the data,
Available silicon resources are not fully utilized in the time frame of program execution. In contrast, each S machine 12 is an independent computer that can easily execute the entire program. Multiple S machine 12
Preferably, the programs are executed simultaneously. Thus, the present invention discloses that silicon resources are always maximized for both each program running on an individual S machine 12 and for multiple programs running on the entire system 10.

【0145】付加再構成可能プロセッサ(ARP)装置
は、特定の時間で特定のアルゴリズムについて計算アク
セラレータを提供し、特定のアルゴリズムに関して最適
に相互結合された1組のゲートとして実装される。命令
実行の管理などの汎用演算のために再構成ハードウェア
リソースを使用することは、付加再構成可能プロセッサ
(ARP)システムでは避けられている。さらに付加再
構成可能プロセッサ(ARP)システムは、所定のセッ
トの相互結合を容易に再使用可能なリソースとしては扱
わない。これに対して、本発明は特定の時間における計
算の必要性に最も適した命令実行モデルによる、命令実
行の効率的管理のために構成された動的再構成処理手段
を開示している。Sマシン12は、複数の再使用可能な
リソース、たとえば命令状態シーケンサ(ISS)10
0と、割込みロジック106と、記憶/整列ロジック1
52とを含んでいる。本発明は、相互結合ゲートのレベ
ルではなく、論理ブロック(CLB)、入出力ブロック
(IOB)、及び再構成相互結合のレベルで再構成論理
リソースを使用することを開示している。したがって本
発明は、単一のアルゴリズムについて有用な単一のゲー
ト接続スキームを開示するのではなく、すべてのクラス
の計算問題について演算を実行するのに有用な再構成可
能な高レベル論理構成部品の使用を開示している。
An additively reconfigurable processor (ARP) device provides a computational accelerator for a particular algorithm at a particular time and is implemented as a set of gates that are optimally interconnected for a particular algorithm. The use of reconfigurable hardware resources for general purpose operations such as managing instruction execution has been avoided in additively reconfigurable processor (ARP) systems. Further, additive reconfigurable processor (ARP) systems do not treat a given set of interconnections as easily reusable resources. On the other hand, the present invention discloses a dynamic reconfiguration processing means configured for efficient management of instruction execution according to an instruction execution model most suitable for a calculation need at a specific time. The S-machine 12 includes a plurality of reusable resources, such as an instruction state sequencer (ISS) 10
0, interrupt logic 106, and store / align logic 1
52. The present invention discloses the use of reconfigurable logic resources at the level of logic blocks (CLBs), input / output blocks (IOBs), and reconfiguration interconnects, rather than at the level of interconnect gates. Thus, the present invention does not disclose a single gate connection scheme useful for a single algorithm, but rather reconfigurable high level logic components useful for performing operations on all classes of computational problems. Disclose use.

【0146】一般に付加再構成可能プロセッサ(AR
P)システムは、特定のアルゴリズムを1組の相互結合
ゲートに翻訳するためのものである。一部の付加再構成
可能プロセッサ(ARP)システムは、高レベル命令を
最適のゲートレベルハードウェア構成にコンパイルする
よう試みるが、これは一般にNPハード問題である。こ
れに対して本発明は、きわめて簡単な方法で、可変命令
セットアーキテクチャ(ISA)に従って高レベルプロ
グラム命令をアセンブリ言語命令にコンパイルする動的
再構成計算のためのコンパイラの使用を開示している。
Generally, an additional reconfigurable processor (AR)
The P) system is for translating a particular algorithm into a set of interconnected gates. Some additive reconfigurable processor (ARP) systems attempt to compile high-level instructions into an optimal gate-level hardware configuration, which is generally an NP hardware problem. In contrast, the present invention discloses the use of a compiler for dynamic reconfiguration computation that compiles high-level program instructions into assembly language instructions according to a variable instruction set architecture (ISA) in a very simple manner.

【0147】付加再構成可能プロセッサ(ARP)装置
は、一般にそのホストプログラムをデータとして扱うこ
とはできず、またそれ自体を計算環境に適合させること
もできない。これに対して、システム10の各Sマシン
12は、それ自体のプログラムをデータとして扱うこと
ができ、したがって、容易にそれ自体を計算環境に適合
させることができる。システム10はそれ自体のプログ
ラムを実行することにより、それ自体を容易にシミュレ
ートすることができる。本発明はさらに、それ自体のコ
ンパイラをコンパイルすることができる。
An additional reconfigurable processor (ARP) device generally cannot handle its host program as data, and cannot adapt itself to a computing environment. On the other hand, each S machine 12 of the system 10 can handle its own program as data, and thus can easily adapt itself to the computing environment. The system 10 can easily simulate itself by executing its own program. The present invention can also compile its own compiler.

【0148】本発明では、単一のプログラムには、第1
命令セットアーキテクチャ(ISA)に属する第1命令
グループと、第2命令セットアーキテクチャ(ISA)
に属する第2命令グループと、さらに別の命令セットア
ーキテクチャ(ISA)に属する第3命令グループ
と...を含んでいる。この明細書で開示したこのアー
キテクチャは、命令が属する命令セットアーキテクチャ
(ISA)を実装するためにランタイム構成されている
ハードウェアを用いて、このような命令グループをそれ
ぞれ実行する。先行技術のシステムや方法で同様の開示
内容を提示しているものはない。
According to the present invention, a single program includes the first program.
A first instruction group belonging to an instruction set architecture (ISA) and a second instruction set architecture (ISA)
And a third instruction group belonging to yet another instruction set architecture (ISA). . . Contains. The architecture disclosed herein executes each such instruction group using hardware that is configured at run time to implement the instruction set architecture (ISA) to which the instruction belongs. No prior art system or method provides a similar disclosure.

【0149】本発明はさらに、割込み待ち時間と、割込
み精度と、プログラマブル状態遷移イネイブリングと
が、現在検討中の命令セットアーキテクチャ(ISA)
に従って変化する再構成割込みスキームを開示してい
る。その他のコンピュータシステムでは、同様の開示内
容は認められない。本発明はさらに、先行技術コンピュ
ータシステムとは異なり、再構成データパスビット幅、
アドレスビット幅、及び再構成制御ライン幅を有するコ
ンピュータシステムを開示している。
The present invention further provides that the interrupt latency, interrupt accuracy, and programmable state transition enabling are provided by an instruction set architecture (ISA) currently under consideration.
Discloses a reconfiguration interrupt scheme that varies according to Other computer systems do not share the same disclosure. The present invention further differs from prior art computer systems in that the reconstructed data path bit width,
A computer system having an address bit width and a reconfiguration control line width is disclosed.

【0150】本発明はいくつかの好ましい実施例を用い
て説明してきたが、当業者は、さまざまな変形例が得ら
れることを認めるであろう。
Although the invention has been described using several preferred embodiments, those skilled in the art will recognize that various modifications may be made.

【0151】<参考資料A>命令セット0,汎用外部ル
ープ命令セットアーキテクチャ(ISA)1.0 プロ
グラマのアーキテクチャモデルこの節では、レジスタ、
メモリモデル、高レベル言語から呼出しコンベンション
及び割込みモデルを含む命令セットアーキテクチャ(I
SA)0アーキテクチャについてのプログラマの概略コ
ンセプトを示す。
<Reference Material A> Instruction set 0, general-purpose external loop instruction set architecture (ISA) 1.0 Programmer's architecture model In this section, registers,
Instruction set architecture (I) that includes memory models, call conventions and interrupt models from high-level languages
3 shows the schematic concept of the programmer for the SA) 0 architecture.

【0152】1.1 レジスタ 命令セットアーキテクチャ(ISA)0は、16個の1
6ビット汎用レジスタ、16個のアドレスレジスタ、2
個のプロセッサ状態レジスタ、及び1個の割込みベクト
ルレジスタを含んでいる。データ及びアドレスレジスタ
のニーモニックは16進数を用いており、したがって最
後のデータレジスタはdf.であり、最後のアドレスレジ
スタはaf.である。プロセッサ状態レジスタの1つであ
るnipar(Next Instruction Program Address Registe
r)は取出す(フェッチする)次命令のアドレスを指し
ている。もう一方の状態レジスタであるpcw(Processor
Control Word)はプログラムフローと割込み処理を行
うために用いられるフラグと制御ビットとを含んでい
る。そのビットは表2に定義されている。未定義のビッ
トは将来の使用のため保留される。さまざまな命令の副
作用として4つの条件フラグ、Z、N、V及びCが設定
される。どのフラグが各命令によって影響を受けるかの
概要については、2.0項を参照。
1.1 Registers The instruction set architecture (ISA) 0 consists of 16 1
6-bit general register, 16 address registers, 2
Processor status registers and one interrupt vector register. The mnemonics of the data and address registers use hexadecimal numbers, so the last data register is df. And the last address register is af. One of the processor status registers, nipar (Next Instruction Program Address Registe
r) indicates the address of the next instruction to be fetched (fetched). The other status register, pcw (Processor
Control Word) includes flags and control bits used to perform program flow and interrupt processing. The bits are defined in Table 2. Undefined bits are reserved for future use. Four condition flags, Z, N, V and C, are set as side effects of various instructions. See Section 2.0 for an overview of which flags are affected by each instruction.

【0153】T(Trace Mode)及びIM(Interrupt Ma
sk)フラグは、プロセッサが割込みに対してどのように
対応するか、またトラップがいつ取扱われるかを制御す
る。割込みベクトルレジスタivecは、割込みサービスル
ーチンの64ビットアドレスを保持する。割込みとトラ
ップについては後述する1.4項で述べる。
T (Trace Mode) and IM (Interrupt Ma
The sk) flag controls how the processor responds to interrupts and when traps are handled. The interrupt vector register ivec holds a 64-bit address of the interrupt service routine. Interrupts and traps are described in section 1.4 below.

【0154】[0154]

【表1】 [Table 1]

【0155】1.2 メモリアクセス 64ビットアドレスレジスタに記憶されている値は、1
6ビット及び64ビットインクリメントでメモリロード
/ストア命令アクセスメモリにより用いられる(表7参
照)。アドレスはビットアドレスである。つまり、アド
レス16はメモリ内のビット16で始まるワード(語)
を指す。ワードは16ビット境界上でのみ読出すことが
でき、したがってメモリを読出すときにはアドレスレジ
スタの4つのLSB(最下位ビット)は無視される。K
ISAのコンセプトの詳細については[1]を参照。64
ビット値は、リトルエンディアン順(最下位16ビット
が最も下位のアドレスに記憶される順序)の16ビット
ワードとして記憶される。
1.2 Memory Access The value stored in the 64-bit address register is 1
Used by memory load / store instruction access memory in 6-bit and 64-bit increments (see Table 7). The address is a bit address. That is, address 16 is a word (word) starting at bit 16 in the memory.
Point to. Words can only be read on 16-bit boundaries, so the four LSBs (least significant bits) of the address register are ignored when reading memory. K
See [1] for details of the ISA concept. 64
The bit values are stored as 16-bit words in little-endian order (the order in which the least significant 16 bits are stored at the least significant address).

【0156】[0156]

【表2】 [Table 2]

【0157】1.3 呼出しコンベンション コンベンションによって、レジスタafはCプログラムに
よりスタックポインタとして用いられ、レジスタaeはス
タックフレームポインタとして用いられる。ニーモニッ
クsp及びfpはこれらのレジスタのエイリアス(別名)と
して用いられることがある。他のすべてのレジスタは一
般用に自由に用いられる。スタックは下に向かって増大
する。
1.3 Call Convention By convention, register af is used by the C program as a stack pointer, and register ae is used as a stack frame pointer. The mnemonics sp and fp are sometimes used as aliases for these registers. All other registers are free for general use. The stack grows downward.

【0158】intは16ビットであり、longは64であ
り、aはボイド*である。int値はd0で復帰され、longと
ボイド*の値はa0で復帰される。d0-d4とa0-a3はファン
クションによってクロバーされ、他のすべての汎用レジ
スタはファンクションコール上で保持されなくてはなら
ない。ファンクションに入ると、スタックポインタは復
帰アドレスを指し、こうして最初の引数はアドレスsp+
64(10進)で始まる。
Int is 16 bits, long is 64, and a is void *. The int value is returned at d0, and the values of long and void * are returned at a0. d0-d4 and a0-a3 are clovered by the function, and all other general purpose registers must be kept on the function call. Upon entry to the function, the stack pointer points to the return address, and thus the first argument is the address sp +
It starts with 64 (decimal).

【0159】1.4 トラップと割込み 命令セットアーキテクチャ(ISA)0は1本の割込み
ラインに作用し、ソフトウエアは2つのソースからトラ
ップする。すべては下記に述べる同じ制御フロー(flow
-of-control)転送メカニズムを呼出す。
1.4 Trap and Interrupts Instruction Set Architecture (ISA) 0 operates on one interrupt line, and software traps from two sources. All are the same control flow (flow
-of-control) Invoke the transfer mechanism.

【0160】外部的には単一のINTR信号入力があ
り、1つのiack出力がある。pcw内の割込みマスクビッ
トが、xpcw命令でpcwをリセットすることにより、また
はrti命令で割込みから復帰してpcwをその当初の値へ戻
すことによってクリアされると同時に、iackはアクティ
ブ(能動的)となる。外部装置による割込みの信号発信
とプロセッサによる割込みのサービスの間の時間量は、
現在実行中の命令とソフトウエアトラップの存在に応じ
て定まる。
Externally, there is a single INTR signal input and one iack output. iack is active while the interrupt mask bit in pcw is cleared by resetting pcw with the xpcw instruction or by returning from the interrupt and returning pcw to its original value with the rti instruction. Becomes The amount of time between the signaling of the interrupt by the external device and the servicing of the interrupt by the processor is:
It depends on the currently executing instruction and the existence of the software trap.

【0161】ソフトウエアトラップは、明示トラップ命
令によって、またはT(トレース)フラッグセットで命
令を実行することによってトリガされる。この場合、T
の設定に続く最初の命令のあと、コントロール(制御
権)が割込みサービスルーチンへ移される。トラップ命
令が実行されるときは、プロセッサはTフラグを設定
し、あたかも命令を実行する前にTフラッグが設定され
ていたかのように割込みサービスルーチンに入る。Tフ
ラッグが設定されている間は割込みのサービスは行われ
ない。xpcw命令でpcwをリセットすることによって、ま
たはrti命令で割込みからの復帰によりスタックからリ
セットすることによってTフラグがクリアされるまでは
それ以上トラップは起こらない。
A software trap is triggered by an explicit trap instruction or by executing an instruction with the T (trace) flag set. In this case, T
After the first instruction following the setting of, control is transferred to the interrupt service routine. When the trap instruction is executed, the processor sets the T flag and enters the interrupt service routine as if the T flag had been set before executing the instruction. Interrupt service is not performed while the T flag is set. No more traps will occur until the T flag is cleared by resetting pcw with the xpcw instruction or resetting from the stack by returning from an interrupt with the rti instruction.

【0162】割込みは、intr外部信号でのアクティブ信
号の存在によって発生する。imフラグまたはTフラグが
設定されているときは、割込みはマスクされ、未決定の
割込みは無視される。imフラグとTフラグがクリアされ
ると、intrの表明に続く最初の命令のあと、コントロー
ルは割込みサービスルーチンに移される。割込みサービ
スルーチンに入ると、imフラグがプロセッサにより設定
される。xpcw命令でpcwがリセットされるか、またはrti
命令による割込みからの復帰によってスタックからリセ
ットされることによってimフラグがクリアされるまで
は、それ以上は割込みは起こらない。
An interrupt is generated by the presence of an active signal in the intr external signal. When the im flag or the T flag is set, interrupts are masked and undetermined interrupts are ignored. When the im and T flags are cleared, control is transferred to the interrupt service routine after the first instruction following the assertion of intr. Upon entering the interrupt service routine, the im flag is set by the processor. xpcw instruction resets pcw or rti
No further interrupts will occur until the im flag is cleared by being reset from the stack by return from interrupt by instruction.

【0163】割込みまたはトラップが起こるときに、プ
ロセッサがとるステップは次の通りである。 1.現在実行中のすべての命令を完了する。 2.16個のデータレジスタ(d0が先)、16個のアド
レスレジスタ(a0が先)、pcw、ivec及びniparが、この
順序で(レジスタafによりポイントされた)スタックに
押込まれる。スタックに押込まれるafの値は、割込みま
たはトラップのサービスが始まる前のその値である。 3.これが割込みであるときには、pcw内の割込みビッ
トが、それ以上の割込みをマスクするよう設定される。
これがトラップ命令であるときには、Tフラッグが設定
されるこれがTフラッグにより発生したトラップである
ときは、pcwは変更されない。 4.ivecレジスタ内の値をniperにロードする。 割込みハンドラ内での命令の実行が始まる。
When an interrupt or trap occurs, the steps taken by the processor are as follows. 1. Complete all currently executing instructions. 2. The 16 data registers (d0 first), 16 address registers (a0 first), pcw, ivec and nipar are pushed onto the stack (pointed to by register af) in this order. The value of af pushed onto the stack is its value before the interrupt or trap service begins. 3. When this is an interrupt, the interrupt bit in pcw is set to mask further interrupts.
If this is a trap instruction, the T flag is set. If this is a trap generated by the T flag, pcw is not changed. 4. Loads the value in the ivec register into nipper. Execution of the instruction in the interrupt handler begins.

【0164】rti命令の実行時には、下記の動作が行わ
れる。 1.レジスタは、それが書込まれたのと反対の順序でス
タックから回復される。 2.実行を再開する。
At the time of execution of the rti instruction, the following operation is performed. 1. A register is recovered from the stack in the reverse order that it was written. 2. Resume execution.

【0165】割込みマスクフラグがすでにクリアされて
いないときは、それはrti命令によってクリアされる。p
cwの値がスタック上で変更されない限り、それはサービ
スルーチンに入ったときにクリアされていたからであ
る。トラップ命令を実行することによってTフラグが設
定されるときは、同じ理由によってrtiの実行時にそれ
はクリアされる。サービスルーチンへ入る前に設定され
ていたTフラッグによってトラップが発生したときは、
トラップが発生したことを確認するために、それはサー
ビスルーチンによりクリアされなくてはならない。割込
みマスクフラグが何らかの手段によってクリアされると
きは、外部出力信号iackは割込みが行われている外部装
置に信号を送るために1クロックサイクルの間アクティ
ブとなる。
If the interrupt mask flag has not been cleared, it is cleared by the rti instruction. p
Unless the value of cw is changed on the stack, it was cleared when the service routine was entered. When the T flag is set by executing a trap instruction, it is cleared upon execution of rti for the same reason. If a trap occurs due to the T flag set before entering the service routine,
To confirm that a trap has occurred, it must be cleared by a service routine. When the interrupt mask flag is cleared by any means, the external output signal iack is active for one clock cycle to send a signal to the external device being interrupted.

【0166】2.0 機能による命令の分類 表記コンベンションは次の通りである。2.0 Classification of Instructions by Function Notation conventions are as follows.

【0167】[0167]

【表3】 [Table 3]

【0168】2.1 レジスタの動き2.1 Operation of Register

【0169】[0169]

【表4】 [Table 4]

【0170】2.2 論理演算2.2 Logical operation

【0171】[0171]

【表5】 [Table 5]

【0172】2.3 メモリ ロード/ストア2.3 Memory Load / Store

【0173】[0173]

【表6】 [Table 6]

【0174】2.4 算術演算2.4 Arithmetic Operations

【0175】[0175]

【表7】 [Table 7]

【0176】2.5 制御フロー2.5 Control Flow

【0177】[0177]

【表8】 [Table 8]

【0178】3.0 英字参照記号 命令セットアーキテクチャ(ISA)0のために設定さ
れた命令を下記にアルファベット順に示す。ニーモニッ
クは短い記述で示してある。その下は命令の2進コード
である。2進コードの各行は16ビットのワードであ
る。影響を受けるフラグを次にリストで示す。ほかに定
めのない限り、フラグは宛先レジスタに記憶されたデー
タを用いて設定する。niparは命令実行の開始時にすで
にインクリメントされたものと想定する。最後に命令の
意味についてのテキスト記述を示す。
3.0 Alphabetic Reference Symbols The instructions set for Instruction Set Architecture (ISA) 0 are listed below in alphabetical order. The mnemonics are shown in a short description. Below that is the binary code of the instruction. Each row of the binary code is a 16-bit word. The affected flags are listed below. Unless otherwise specified, flags are set using data stored in the destination register. nipar assumes that it has already been incremented at the start of instruction execution. Finally, a text description of the meaning of the instruction is shown.

【0179】2進コードに用いられている表記コンベン
ションを下記の表にまとめてある。条件コードは表59
に定義されている。
The notation conventions used for binary codes are summarized in the table below. Table 59 shows the condition codes.
Is defined in

【0180】[0180]

【表9】 [Table 9]

【0181】[0181]

【表10】 [Table 10]

【0182】2個のデータレジスタを加算し、結果を宛
先レジスタに残す。
The two data registers are added, and the result is left in the destination register.

【0183】[0183]

【表11】 [Table 11]

【0184】2個のデータレジスタと桁上げフラグを加
算し、結果を宛先レジスタに残す。
The two data registers and the carry flag are added, and the result is left in the destination register.

【0185】[0185]

【表12】 [Table 12]

【0186】8ビット符号つき(2の補数)定数をデー
タレジスタに加算し、結果をレジスタに残す。
An 8-bit signed (two's complement) constant is added to the data register and the result is left in the register.

【0187】[0187]

【表13】 [Table 13]

【0188】2個のデータレジスタのビットワイズAND
を実行し、結果を宛先レジスタに残す。
Bitwise AND of two data registers
And leave the result in the destination register.

【0189】[0189]

【表14】 [Table 14]

【0190】条件が真のときは、(offset << Kisa
をniparに加算する。
When the condition is true, (offset << K isa )
Is added to nipar.

【0191】[0191]

【表15】 [Table 15]

【0192】(offset << Kisa)をniparに加算する。(Offset << K isa ) is added to nipar.

【0193】[0193]

【表16】 [Table 16]

【0194】条件つきで8ビット右へシフトし、マスク
する。ワードオフセットから読出された8ビットデータ
を整列するためにロード命令のあとに用いられる。ソー
スアドレスレジスタに含まれるアドレスが8ビット境界
上にある(ビット2セットをもつ)ときには、データレ
ジスタ内の値を8ビット右へシフトする。アドレスが8
ビット境界上にないときは、レジスタの上流8ビットを
クリアする。
Shift to right by 8 bits conditionally and mask. Used after the load instruction to align the 8-bit data read from the word offset. When the address contained in the source address register is on an 8-bit boundary (having 2 bits set), the value in the data register is shifted right by 8 bits. Address is 8
If not on a bit boundary, the upper 8 bits of the register are cleared.

【0195】[註] 負のフラグは、ビット15でなく
ビット7で設定する。これによって8ビット量の符号延
長が容易となる。
[Note] The negative flag is set by bit 7 instead of bit 15. This facilitates code extension of an 8-bit amount.

【0196】[0196]

【表17】 [Table 17]

【0197】宛先レジスタからソースレジスタを差引く
ことによって、2個のデータレジスタの絶対値比較のた
めのフラグを設定し、フラグだけに影響を与える。
By subtracting the source register from the destination register, a flag for comparing the absolute values of the two data registers is set, and only the flag is affected.

【0198】[0198]

【表18】 [Table 18]

【0199】16ビット符号つき整数により32ビット
符号つき整数の符号つき除算を行い、16ビット符号つ
き商と剰余を戻す。32ビット被除数は、宛先レジスタ
のインデックスから始まる2個の連続するレジスタ内に
格納する(リトルエンディアン順)。16ビット除数は
ソースレジスタ内にある。剰余は宛先レジスタに戻し、
商は宛先レジスタ後のレジスタに戻す(モジュロ1
6)。商が16ビットを越えるときはオーバフローとな
る。
A signed division of a 32-bit signed integer is performed by a 16-bit signed integer, and a 16-bit signed quotient and remainder are returned. The 32-bit dividend is stored in two consecutive registers starting from the index of the destination register (little endian order). The 16-bit divisor is in the source register. The remainder is returned to the destination register,
The quotient returns to the register after the destination register (modulo 1
6). When the quotient exceeds 16 bits, an overflow occurs.

【0200】[0200]

【表19】 [Table 19]

【0201】データレジスタをアドレスレジスタに加算
し、結果をアドレスレジスタに残す。
The data register is added to the address register, and the result is left in the address register.

【0202】[0202]

【表20】 [Table 20]

【0203】8ビット符号つき定数をアドレスレジスタ
に加算し、結果をアドレスレジスタに残す。
The 8-bit signed constant is added to the address register, and the result is left in the address register.

【0204】[0204]

【表21】 [Table 21]

【0205】宛先レジスタからソースレジスタを差引く
ことによって、2個のアドレスレジスタの絶対値比較の
ためのフラグを設定し、フラグだけに影響を与える。
By subtracting the source register from the destination register, a flag for comparing the absolute values of the two address registers is set, and only the flag is affected.

【0206】[0206]

【表22】 [Table 22]

【0207】2個のアドレスレジスタを加算し、結果を
宛先レジスタに残す。
The two address registers are added, and the result is left in the destination register.

【0208】[0208]

【表23】 [Table 23]

【0209】宛先レジスタからソースレジスタを差引
き、結果を宛先レジスタに格納する。
The source register is subtracted from the destination register, and the result is stored in the destination register.

【0210】[0210]

【表24】 [Table 24]

【0211】ロードをアドレスレジスタ内に事後インク
リメントする。ソースレジスタによりポイントされたア
ドレスからメモリを読出し、宛先レジスタ内に入れる。
次にソースレジスタをインクリメントする。
The load is post-incremented in the address register. The memory is read from the address pointed to by the source register and placed in the destination register.
Next, the source register is incremented.

【0212】[0212]

【表25】 [Table 25]

【0213】アドレスレジスタを1ビット右へシフトす
る。
The address register is shifted right by one bit.

【0214】[0214]

【表26】 [Table 26]

【0215】アドレスレジスタから格納する。ソースレ
ジスタ内の64ビット値を、宛先レジスタによりポイン
トされたメモリ位置に書込む。この値はリトルエンディ
アン順に配置した4つの16ビットワードとして書込
む。
The data is stored from the address register. Write the 64-bit value in the source register to the memory location pointed to by the destination register. This value is written as four 16-bit words arranged in little endian order.

【0216】[0216]

【表27】 [Table 27]

【0217】アドレスレジスタからのストアを事前デク
リメントする。宛先レジスタをデクリメントし、次にソ
ースレジスタ内の値を、宛先レジスタによりポイントさ
れたメモリ位置に書込む。この値はリトルエンディアン
順に配置した4つの16ビットワードとして書込む。
The store from the address register is pre-decremented. Decrement the destination register, then write the value in the source register to the memory location pointed to by the destination register. This value is written as four 16-bit words arranged in little endian order.

【0218】[0218]

【表28】 [Table 28]

【0219】アドレスレジスタからデータレジスタを差
引き、結果をアドレスレジスタに残す。
The data register is subtracted from the address register, and the result is left in the address register.

【0220】[0220]

【表29】 [Table 29]

【0221】宛先レジスタへソースレジスタをビットご
とに反転配置する。
The source register is inverted and placed bit by bit in the destination register.

【0222】[0222]

【表30】 [Table 30]

【0223】絶対アドレスへ条件つきジャンプする。条
件コードビットの定義については、表59を参照。
A conditional jump is made to an absolute address. See Table 59 for the definition of the condition code bits.

【0224】[0224]

【表31】 [Table 31]

【0225】絶対アドレスへ無条件ジャンプする。条件
「常時」はjCCと同じ。
An unconditional jump to an absolute address is performed. The condition “always” is the same as jCC.

【0226】[0226]

【表32】 [Table 32]

【0227】宛先レジスタをまずインクリメントし、次
に宛先レジスタ(通常はスタックポインタ)によりポイ
ントされたアドレスに、(次命令を指す)現在のnipar
を格納する。次に、次命令を取出す前にソースレジスタ
内のアドレスでniparをロードする。
The destination register is first incremented and then the current nipar (pointing to the next instruction) is added to the address pointed to by the destination register (usually the stack pointer).
Is stored. Next, nipar is loaded with the address in the source register before fetching the next instruction.

【0228】[0228]

【表33】 [Table 33]

【0229】ビットの定数だけデータレジスタを左へシ
フトする。
Shift the data register to the left by a bit constant.

【0230】[0230]

【表34】 [Table 34]

【0231】ビットの定数だけデータレジスタを右へシ
フトする。
The data register is shifted right by a bit constant.

【0232】[0232]

【表35】 [Table 35]

【0233】メモリからデータレジスタをロードする。
ソースアドレスレジスタによりポイントされた値を宛先
データレジスタにロードする。
Load data register from memory.
Load the value pointed to by the source address register into the destination data register.

【0234】[0234]

【表36】 [Table 36]

【0235】データレジスタ内へロードを事後インクリ
メントする。ソースアドレスレジスタによりポイントさ
れたアドレスからメモリを読出し、宛先データレジスタ
に入れる。次にソースレジスタをインクリメントする。
The load into the data register is post-incremented. The memory is read from the address pointed to by the source address register and stored in the destination data register. Next, the source register is incremented.

【0236】[0236]

【表37】 [Table 37]

【0237】16ビット隣接値をデータレジスタ内にロ
ードする。
Load the 16-bit adjacent value into the data register.

【0238】[0238]

【表38】 [Table 38]

【0239】宛先レジスタを、ソースレジスタのビット
ワイズ反転で置換え、宛先レジスタを加える。
The destination register is replaced by the bitwise inversion of the source register, and the destination register is added.

【0240】[0240]

【表39】 [Table 39]

【0241】ソースデータレジスタ内の値を宛先データ
レジスタ内に入れる。
Put the value in the source data register into the destination data register.

【0242】[0242]

【表40】 [Table 40]

【0243】ソースレジスタ内の値を宛先レジスタ内の
値により乗算した結果を、宛先レジスタで始まる2つの
連続するレジスタ内に格納する(リトルエンディアン
順)。
The result of multiplying the value in the source register by the value in the destination register is stored in two consecutive registers starting with the destination register (little endian order).

【0244】[0244]

【表41】 [Table 41]

【0245】2つのデータレジスタのビットワイズORを
実行し、結果を宛先レジスタに残す。
Perform a bitwise OR of the two data registers and leave the result in the destination register.

【0246】[0246]

【表42】 [Table 42]

【0247】データレジスタを1ビット左へシフトす
る。LSB(最下位ビット)を桁上げフラグの値で置換
える。命令の終りに当初のMSB(最上位ビット)を桁
上げフラグ内に入れる。
The data register is shifted one bit to the left. Replace LSB (least significant bit) with the value of the carry flag. At the end of the instruction, the original MSB (most significant bit) is placed in the carry flag.

【0248】[0248]

【表43】 [Table 43]

【0249】前述した1.4項を参照。ソースレジスタ
をスタックポインタとして用いる。
See section 1.4 above. Use the source register as a stack pointer.

【0250】[0250]

【表44】 [Table 44]

【0251】サブルーチンからの復帰。宛先レジスタ
(通常はスタックポインタ)によりポイントされたメモ
リ位置からniparをロードする。次に、宛先レジスタを
インクリメントする。
Return from subroutine. Load nipar from the memory location pointed to by the destination register (usually the stack pointer). Next, the destination register is incremented.

【0252】[0252]

【表45】 [Table 45]

【0253】ソースレジスタ内の値により指定されたビ
ット数だけ、宛名レジスタを左へシフトする。
Shift the destination register to the left by the number of bits specified by the value in the source register.

【0254】[0254]

【表46】 [Table 46]

【0255】ソースレジスタ内の値により指定されたビ
ット数だけ、宛名レジスタを右へシフトする。
The destination register is shifted to the right by the number of bits specified by the value in the source register.

【0256】[0256]

【表47】 [Table 47]

【0257】データレジスタから格納(ストア)する。
ソース内の値を、宛先レジスタによりポイントされたメ
モリ位置に書込む。
Data is stored from the data register.
Write the value in the source to the memory location pointed to by the destination register.

【0258】[0258]

【表48】 [Table 48]

【0259】データレジスタからストアを事前デクリメ
ントする。宛先レジスタをデクリメントし、次に宛先レ
ジスタによりポイントされたメモリ位置にソースレジス
タ内の値を書込む。
The store is pre-decremented from the data register. Decrement the destination register, then write the value in the source register to the memory location pointed to by the destination register.

【0260】[0260]

【表49】 [Table 49]

【0261】宛先レジスタからソースレジスタを差引
き、結果を宛先レジスタに格納する。
The source register is subtracted from the destination register, and the result is stored in the destination register.

【0262】[0262]

【表50】 [Table 50]

【0263】宛先レジスタからソースレジスタを差引
き、次に桁上げビットを差引き、結果を宛先レジスタに
格納する。
The source register is subtracted from the destination register, then the carry bit is subtracted, and the result is stored in the destination register.

【0264】[0264]

【表51】 [Table 51]

【0265】割込みハンドラーを実行する。1.4項を
参照。宛先レジスタをスタックポインタとして用いる。
Execute the interrupt handler. See section 1.4. Use the destination register as a stack pointer.

【0266】[0266]

【表52】 [Table 52]

【0267】16ビット符号つき整数による32ビット
符号つき整数の符号なし除算を行い、16ビット符号つ
き商と剰余を戻す。宛先レジスタのインデックスから始
まる2つの連続するレジスタ内に32ビットを格納する
(リトルエンディアン順)。除数はソースレジスタ内に
ある。剰余は宛先レジスタへ戻し、商は宛先レジスタ後
の次レジスタへ戻す。商が16ビットを越えるときはオ
ーバフローとなる。
Unsigned division of a 32-bit signed integer by a 16-bit signed integer is performed, and a 16-bit signed quotient and remainder are returned. Store 32 bits in two consecutive registers starting from the index of the destination register (little endian order). The divisor is in the source register. The remainder is returned to the destination register, and the quotient is returned to the next register after the destination register. When the quotient exceeds 16 bits, an overflow occurs.

【0268】[0268]

【表53】 [Table 53]

【0269】宛先レジスタ内の値によりソースレジスタ
内の値を乗算した結果を、宛先レジスタで始まる2つの
連続するレジスタ内に格納する(リトルエンディアン
順)。
The result of multiplying the value in the source register by the value in the destination register is stored in two consecutive registers starting with the destination register (little endian order).

【0270】[0270]

【表54】 [Table 54]

【0271】ソースアドレスレジスタ内の値を、宛先レ
ジスタで始まる4つの連続するデータレジスタへ転送す
る。この値はリトルエンディアン順に格納し、宛先レジ
スタアドレスをモジュロ16で計算し、宛先レジスタが
どのレジスタでも良いようにする。
Transfer the value in the source address register to four consecutive data registers starting at the destination register. This value is stored in little endian order, and the destination register address is calculated by modulo 16 so that the destination register may be any register.

【0272】[0272]

【表55】 [Table 55]

【0273】4つの連続するデータレジスタ内のリトル
エンディアン順の64ビット値を宛先アドレスレジスタ
内へ転送する。ソースレジスタアドレスをモジュロ16
で計算し、宛先レジスタがどのレジスタでも良いように
する。
Transfer the little endian 64-bit values in four consecutive data registers into the destination address register. Modulo 16 source register address
And the destination register may be any register.

【0274】[0274]

【表56】 [Table 56]

【0275】2つのデータレジスタのビットワイズ排他
的ORを実行し、結果を宛先レジスタ内に残す。
Perform a bitwise exclusive OR of the two data registers and leave the result in the destination register.

【0276】[0276]

【表57】 [Table 57]

【0277】ソースデータレジスタ内の値をpcwレジス
タと交換する。
Exchange the value in the source data register with the pcw register.

【0278】[0278]

【表58】 [Table 58]

【0279】ソースアドレスレジスタ内の値をivecレジ
スタと交換する。
Exchange the value in the source address register with the ivec register.

【0280】4.0 条件コード 条件コード操作コード部分フィールドには、下記の表か
らの値を用いる。
4.0 Condition Code The values from the table below are used in the condition code operation code subfield.

【0281】[0281]

【表59】 [Table 59]

【0282】<参考資料B>命令セット1,パイプライ
ン乗算・累算命令セットアーキテクチャ(ISA)IS
A1 − XC4013のためのパイプライン畳込みエン
ジンはじめに命令セットアーキテクチャ(ISA)1
は、命令サイクルあたり4回の同時乗算・累算を行うこ
とのできるパイプライン乗算・累算アレイである。4個
の8ビット×8ビット乗算器への入力ごとに1個、つま
り、8個の8ビットデータレジスタ(xd0-xd3及びyd0-y
d3)がある。1つの最終16ビット合計が出るまで、パ
イプライン加算アレイを経由して、4つの乗算器出力が
合計され、4個までの16ビットレジスタが結果を記憶
できる(m0-m4)。命令セットアーキテクチャ(IS
A)1のアーキテクチャは、主メモリでフロースルーバ
ッチ処理サイクルを仮定している。累算結果を再循環さ
せるための乗算器累算器データパスを通るフィードバッ
クパスはない。これはメモリデータ流量に重点が置かれ
ているからである。オーバフロースケーリングまたは拡
張有限性累算のための用意はない。畳込みフィルタリン
グに用いられる係数は、すべてのデータセットについ
て、16ビットを超えない結果有限性を与えると、命令
セットアーキテクチャ(ISA)1は仮定している。乗
算アレイは、8ビットの2の補数データ入力を受け、1
6ビットの2の補数結果を出す。
<Reference Material B> Instruction Set 1, Pipeline Multiply / Accumulate Instruction Set Architecture (ISA) IS
A1-Pipeline Convolution Engine for XC4013 Introduction Instruction Set Architecture (ISA) 1
Is a pipeline multiply-accumulate array capable of performing four simultaneous multiplications / accumulations per instruction cycle. One for each input to the four 8-bit × 8-bit multipliers, ie, eight 8-bit data registers (xd0-xd3 and yd0-y
d3) There is. The four multiplier outputs are summed through the pipelined summation array until one final 16-bit sum is available, and up to four 16-bit registers can store the result (m0-m4). Instruction Set Architecture (IS
A) The 1 architecture assumes a flow-through batch processing cycle in main memory. There is no feedback path through the multiplier accumulator data path to recycle the accumulation results. This is because emphasis is placed on memory data flow. No provision is made for overflow scaling or extended finite accumulation. The instruction set architecture (ISA) 1 assumes that the coefficients used for convolutional filtering give a result finiteness not exceeding 16 bits for all data sets. The multiplication array receives an 8-bit two's complement data input,
Produce a 6-bit two's complement result.

【0283】メモリへのアクセスは、2個の16ビット
アドレスレジスタ(a0とa1)によって管理され、これら
は互換性のあるソース及び宛先ポインタと考えることが
できる。プログラムフローは、標準64ビットNIPARレ
ジスタにより管理され、64ビット割込みベクトルレジ
スタは、フレームまたはデータ実行可能割込みなどの単
独割込みについて支援される(IVEC)。
Access to memory is managed by two 16-bit address registers (a0 and a1), which can be considered compatible source and destination pointers. Program flow is managed by standard 64-bit NIPAR registers, with the 64-bit interrupt vector register being supported for single interrupts, such as frame or data ready interrupts (IVEC).

【0284】命令セットアーキテクチャ(ISA)1の
命令セットはきわめて小さく、16ビットのワードサイ
ズに整列され、汎用外部ループプロセッサ命令セットア
ーキテクチャ(ISA)0のためのKISA=4メモリ編成
に対応している。命令セットアーキテクチャ(ISA)
1での単一のクロックサイクルで7回までの算術演算を
例示することができ、実動化によってクロックの小ウィ
ンドウ上でクロックあたり1の割合で結果を保持し、新
しいソースまたは宛名アドレスをインデックスする能力
があり、計算と並行してメモリから、またメモリへ、レ
ジスタデータを移す。 命令セットアーキテクチャ(ISA)1命令セット データ移動 ld(reg−vector) 命令ワード内に右揃えされた14ビットのビットマップ
reg-vectorに従って、メモリから順次14個までのレジ
スタがロードされる。
The instruction set architecture (ISA) 1 instruction set is very small, aligned to a 16-bit word size, corresponding to a K ISA = 4 memory organization for the general purpose external loop processor instruction set architecture (ISA) 0. I have. Instruction Set Architecture (ISA)
Up to seven arithmetic operations can be instantiated in a single clock cycle at one, with production keeping the results at a rate of one per clock over a small window of clocks and indexing new source or destination addresses. To transfer register data from and to memory in parallel with calculations. Instruction set architecture (ISA) 1 instruction set Data move ld (reg-vector) 14-bit bitmap right justified in instruction word
According to the reg-vector, up to 14 registers are sequentially loaded from the memory.

【0285】st(reg-vector) 命令ワード内に右揃えされた14ビットのビットマップ
reg-vectorに従って、メモリへ順次14個までのレジス
タが記憶される。
St (reg-vector) 14-bit bitmap right-aligned in instruction word
According to the reg-vector, up to 14 registers are sequentially stored in the memory.

【0286】ld(ivec-data) この命令に続く64ビットのアドレスがIVECレジスタに
ロードされ、次命令をポイントするNIPAR+=5が実行さ
れる。
Ld (ivec-data) The 64-bit address following this instruction is loaded into the IVEC register, and NIPAR + = 5 pointing to the next instruction is executed.

【0287】プログラム制御 jmp(nipar-data) この命令に続く64ビットのアドレスがNIPARレジスタ
にロードされ、これによって次命令へのポインティング
が実行される。
Program control jmp (nipar-data) The 64-bit address following this instruction is loaded into the NIPAR register, and pointing to the next instruction is executed.

【0288】算術演算 mac(m-reg) 2ビットのm-regコードで示される乗算結果レジスタが
積と和(xd0*yd0) +(xd1*yd1)+(xd2*yd2)+(xd
3*yd3)を受取る。
Arithmetic operation mac (m-reg) The multiplication result register indicated by the 2-bit m-reg code is the product and the sum (xd0 * yd0) + (xd1 * yd1) + (xd2 * yd2) + (xd
3 * yd3) to receive.

【0289】macp(s-vec, d-vec) 4ビットd-vecコードの2ビットにより示される乗算結
果レジスタが積と和(xd0*yd0)+(xd1*yd1)+(xd2*
yd2)+(xd3*yd3)を受取る。d-vecコードの1つおき
のビットが選択的にこの結果レジスタのアドレス(a1)
へのメモリ書込みを可能にし、d-vecコードの残りのビ
ットが、アドレスレジスタa1が増分されるかどうかを選
択する。8ビットs-vecは4つの2ビットグループに分
けられ、データレジスタxd0-xd3について連続してアド
レス(a0)でのメモリからの読出しが行われるかどう
か、またアドレスレジスタa0が増分されるかどうかを指
定する。読出しまたは書込みが指定されるときは、乗算
に並行して行われる。ソフトウエアは、メモリから読出
され、メモリへ記憶されるデータの各バッチについて命
令処理のパイプライン整列を行わなければならない。
Macp (s-vec, d-vec) The multiplication result register indicated by the two bits of the 4-bit d-vec code is the product and the sum (xd0 * yd0) + (xd1 * yd1) + (xd2 *
yd2) + (xd3 * yd3). Every other bit of the d-vec code is selectively the result register address (a1)
And the remaining bits of the d-vec code select whether the address register a1 is incremented. The 8-bit s-vec is divided into four 2-bit groups, and whether data register xd0-xd3 is continuously read from memory at address (a0) and whether address register a0 is incremented Is specified. When reading or writing is designated, it is performed in parallel with the multiplication. The software must perform instruction processing pipeline alignment for each batch of data read from and stored in memory.

【0290】再構成 reconf(ISA-vector) 命令セットアーキテクチャ(ISA)1は脱コンテキス
トされ、Sマシンは命令内の命令セットアーキテクチャ
(ISA)ベクトルビットフィールドにより選択される
命令セットアーキテクチャ(ISA)について再構成さ
れる。
Reconfiguration reconf (ISA-vector) The instruction set architecture (ISA) 1 is de-contexted and the S machine reconfigures for the instruction set architecture (ISA) selected by the instruction set architecture (ISA) vector bit field in the instruction. Be composed.

【0291】表60に、ISA1のブロック構成とし
て、XC4013のためのパイプライン畳込みエンジン
を示す。
Table 60 shows a pipeline convolution engine for XC4013 as a block configuration of ISA1.

【0292】[0292]

【表60】 [Table 60]

【0293】[0293]

【発明の効果】本発明は、拡張性、並列、動的再構成計
算のためのシステム及び方法に関するものである。この
システムは、少なくとも1個のSマシンと、各Sマシン
に対応するTマシンと、汎用相互結合マトリックス(G
PIM)と、1組の入出力Tマシンと、1個またはそれ
以上の入出力装置と、マスタタイムベース装置とを含ん
でいる。好ましい実施例では、このシステムは多重Sマ
シンを含んでいる。各Sマシンは、対応するTマシンの
出力部と入力部とにそれぞれ結合された入力部と出力部
とを含んでいる。各Tマシンは、汎用相互結合マトリッ
クス(GPIM)に結合されたルーティング入力部とル
ーティング出力部とを含んでおり、各入出力Tマシンも
同様にこれらを含んでいる。入出力Tマシンはさらに、
入出力装置に結合された入力部と出力部とを含んでい
る。最後に、各Sマシンと、Tマシンと、入出力Tマシ
ンとは、マスタタイムベース装置のタイミング出力部に
結合されたマスタタイミング入力部を含んでいる。
The present invention relates to a system and method for scalable, parallel, dynamic reconfiguration computation. The system comprises at least one S machine, a T machine corresponding to each S machine, and a universal interconnect matrix (G
PIM), a set of I / O T-machines, one or more I / O devices, and a master timebase device. In the preferred embodiment, the system includes multiple S machines. Each S machine includes an input and an output respectively coupled to the output and the input of the corresponding T machine. Each T machine includes a routing input and a routing output coupled to a general interconnect matrix (GPIM), and each input / output T machine includes them as well. The input / output T machine further
An input and an output are coupled to the input / output device. Finally, each S machine, T machine, and input / output T machine include a master timing input coupled to the timing output of the master time base device.

【0294】本発明のメタアドレス指定システムは、プ
ロセッサ自体に処理集中アドレス操作機能を実行するよ
う要求することなしに、ネットワーク内のプロセッサに
ビットアドレス指定能力を提供する。割当てられた各機
能を実行するよう最適化された個別の処理マシン及びア
ドレス指定マシンが開示される。処理マシンは命令を実
行し、ローカルメモリにデータを記憶し、またローカル
メモリからデータを検索し、いつ遠隔演算が要求される
かを決定する。アドレス指定マシンは、伝送するための
データのパケットを組立て、このパケットの地理アドレ
スまたはネットワークアドレスを決定し、入ってくるパ
ケットに対してアドレスをチェックする。さらにアドレ
ス指定マシンは、割込み処理とその他のアドレス指定演
算を実行することができる。
The meta-addressing system of the present invention provides bit addressing capabilities to processors in a network without requiring the processors themselves to perform processing-intensive address manipulation functions. Disclosed are separate processing and addressing machines that are optimized to perform their assigned functions. The processing machine executes the instructions, stores the data in the local memory, and retrieves the data from the local memory to determine when a remote operation is required. The addressing machine assembles a packet of data for transmission, determines the geographical or network address of the packet, and checks the address against incoming packets. In addition, the addressing machine can perform interrupt handling and other addressing operations.

【0295】1つの実施例では、Tマシンはまた本発明
のメタアドレス指定メカニズムも提供する。メタアドレ
スは、システム内のTマシンの地理的位置を指定し、ロ
ーカルメモリ装置内のデータの位置を指定する。メタア
ドレスのローカルアドレスは、装置のアドレス指定可能
スペースがローカルアドレスのビット数以下である限り
は、装置の実際のメモリサイズとは関係なく、新しい装
置のメモリ内の各ビットをアドレス指定するのに用いら
れる。したがって、単一のメタアドレスを用いて異なる
メモリサイズと構造とを有する装置のアドレス指定を行
うことができる。さらに、メタアドレスを用いているの
で、マルチプロセッサ並列アーキテクチャ内のハードウ
ェアが、システム全体のコヒーレント性と一致性とを保
証する必要はない。
In one embodiment, the T machine also provides the meta-addressing mechanism of the present invention. The metaaddress specifies the geographic location of the T machine in the system and specifies the location of the data in the local memory device. The local address of the meta-address is used to address each bit in the new device's memory, regardless of the device's actual memory size, as long as the device's addressable space is less than or equal to the number of bits in the local address. Used. Thus, a single meta-address can be used to address devices having different memory sizes and structures. Furthermore, because of the use of meta-addresses, the hardware within the multiprocessor parallel architecture does not need to guarantee coherency and consistency of the entire system.

【0296】メタアドレスによって、完全な拡張性が得
られる。新しいSマシンまたは新しい入出力装置が加え
られると、新しい地理アドレスがこの新しい装置につい
て指定される。本発明では、拡張性は不規則であっても
よく、プロセッサの数の2乗の拡張を行わなければなら
ないという条件がない。利用できるローカルメモリ帯域
幅までの任意の数のアドレス指定マシンを各処理マシン
に結合する能力によって、拡張性はさらに高まる。これ
により、システム設計者は、各処理マシンへの経路の数
を任意に指定することができる。このような柔軟性によ
って、システムのより高いレベルにより広い帯域幅を提
供することができ、システムの最も重要な機能に最も広
い帯域幅を与えるよう最適化されたピラミッド型処理ア
ーキテクチャを構築することができる。
The meta-address provides complete extensibility. When a new S machine or a new I / O device is added, a new geographic address is specified for this new device. In the present invention, the scalability may be irregular, and there is no requirement that a square expansion of the number of processors must be performed. Scalability is further enhanced by the ability to couple any number of addressing machines to each processing machine up to the available local memory bandwidth. This allows the system designer to arbitrarily specify the number of paths to each processing machine. With this flexibility, you can provide more bandwidth at higher levels of the system, and you can build a pyramidal processing architecture that is optimized to provide the most bandwidth for the most important functions of the system. it can.

【0297】上に説明したように、好ましい実施例によ
ると、Tマシンはメタアドレスを生成し、割込みを扱
い、メッセージを待ち行列に待機させるアドレス指定マ
シンである。したがって、Sマシンはその処理能力をプ
ログラム命令の実行にのみ集中させることができ、本発
明のマルチプロセッサ並列アーキテクチャの全体的な効
率を大幅に最適化することができる。Sマシンは所望の
データを探し出すためのメタアドレスのローカルメモリ
コンポーネントにアクセスするだけでよく、地理アドレ
スは、Sマシンに対して透過性である。このアドレス指
定アーキテクチャは、分散メモリ/分散プロセッサ並列
計算システムときわめてよく相互作動する。ローカルメ
モリを分離するアーキテクチャ設計を選択することによ
り、ハードウェアを独立に、また並列に作動することが
できる。本発明によれば、各Sマシンは、1つの計算問
題にすべて並列に向けられていたとしても、実行時には
全く異なった再構成命令を有することができる。また、
動的再構成Sマシンにより実現される命令セットアーキ
テクチャ(ISA)が異なっていても良いばかりでな
く、Sマシンを実現するのに用いられる実際のハードウ
ェアが一定のタスクを実行するように最適化されていて
も良い。したがって、単一のシステム内のSマシンはす
べて異なるレートで作動してもよく、各Sマシンはシス
テムリソースの利用を最大限に高めながらその機能を最
適に実行することができる。
As described above, according to the preferred embodiment, the T machine is an addressing machine that generates meta-addresses, handles interrupts, and queues messages. Thus, the S machine can concentrate its processing power only on the execution of program instructions, and can greatly optimize the overall efficiency of the multiprocessor parallel architecture of the present invention. The S-machine only needs to access the local memory component of the meta-address to find the desired data, and the geographic address is transparent to the S-machine. This addressing architecture works very well with distributed memory / distributed processor parallel computing systems. By choosing an architectural design that separates local memory, the hardware can operate independently and in parallel. According to the present invention, each S-machine can have a completely different reconfiguration instruction at runtime, even if all S-machines are directed in parallel. Also,
Not only may the instruction set architecture (ISA) implemented by the dynamically reconfigurable S-machine be different, but the actual hardware used to implement the S-machine may be optimized to perform certain tasks. It may be. Thus, the S machines in a single system may all operate at different rates, and each S machine can optimally perform its function while maximizing utilization of system resources.

【0298】さらに、唯一のメモリ確認によって、正確
な地理アドレスが伝送されていることが確認され、ロー
カルメモリアドレスの確認は提供されない。さらに、こ
の確認は処理マシンではなくアドレス指定マシンによっ
て実行される。仮想アドレス指定は用いられないので、
仮想アドレスを論理アドレスに変換するためのハードウ
ェア/ソフトウェア相互作動は必要ではない。メタアド
レスのアドレスは、物理的アドレスである。このような
予防的及び保全的機能をすべてなくすることにより、シ
ステム全体の処理速度が大幅に向上する。したがって、
メタアドレス指定スキームと組合わせて、コンピュータ
システムの「スペース」管理を、別個の処理マシンによ
り提供されるコンピュータシステムの「時間」管理から
別のアドレス指定マシンに分離することにより、高度並
列計算システムのための一意的なメモリ管理及びアドレ
ス指定システムが提供される。本発明のアーキテクチャ
により、Sマシンの作動は優れた柔軟性を有することと
なり、Tマシンのレートを一定に保ったまま各Sマシン
はそれぞれに最適なレートで作動することができる。シ
ステム全体のデータ通信を最も遠いスペースにも達する
ようにし、きわめて短時間でローカル命令処理を均衡さ
せることができ、これによって高度並列コンピュータシ
ステムによる複雑な問題の解決へのアプローチが改善さ
れる。
In addition, a unique memory confirmation verifies that the correct geographic address is being transmitted, and does not provide confirmation of the local memory address. Further, this verification is performed by the addressing machine, not the processing machine. Since virtual addressing is not used,
No hardware / software interaction is required to translate virtual addresses to logical addresses. The address of the meta address is a physical address. Eliminating all such preventive and conservative functions greatly increases the overall system processing speed. Therefore,
In combination with a meta-addressing scheme, separating the "space" management of a computer system from the "time" management of a computer system provided by a separate processing machine to a separate addressing machine allows the A unique memory management and addressing system is provided. With the architecture of the present invention, the operation of the S-machines has great flexibility, and each S-machine can operate at its optimum rate while keeping the rate of the T-machine constant. Data communication throughout the system can reach farthest spaces and local instruction processing can be balanced in a very short time, thereby improving the approach to solving complex problems with highly parallel computer systems.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明に基づいて構築された、拡張性、並列、
動的再構成計算のためのシステムの好ましい構成例を示
すブロック図である。
FIG. 1 shows a scalable, parallel,
FIG. 2 is a block diagram showing a preferred configuration example of a system for dynamic reconfiguration calculation.

【図2】本発明のSマシンの好ましい構成例を示すブロ
ック図である。
FIG. 2 is a block diagram showing a preferred configuration example of an S machine of the present invention.

【図3】再構成指示を含む模範的プログラムリストの模
式図である。
FIG. 3 is a schematic diagram of an exemplary program list including a reconfiguration instruction.

【図4】一連のプログラム命令のコンパイル中に実行さ
れる先行技術コンパイル作業のフローチャートである。
FIG. 4 is a flowchart of a prior art compilation operation performed during compilation of a series of program instructions.

【図5】動的再構成計算のためにコンパイラによって実
行される好ましいコンパイル作業のフローチャートであ
る。
FIG. 5 is a flowchart of a preferred compilation operation performed by a compiler for dynamic reconfiguration calculations.

【図6】動的再構成計算のためにコンパイラによって実
行される好ましいコンパイル作業のフローチャートであ
る。
FIG. 6 is a flowchart of a preferred compilation operation performed by a compiler for dynamic reconfiguration calculations.

【図7】本発明の動的再構成処理装置(DRPU)の好
ましい構成例を示すブロック図である。
FIG. 7 is a block diagram showing a preferred configuration example of a dynamic reconfiguration processing device (DRPU) of the present invention.

【図8】本発明の命令取出し装置(IFU)の好ましい
構成例を示すブロック図である。
FIG. 8 is a block diagram showing a preferred configuration example of an instruction fetch unit (IFU) of the present invention.

【図9】本発明の命令状態シーケンサ(ISS)によっ
て支援される好ましい1組の状態を示す模式図である。
FIG. 9 is a schematic diagram illustrating a preferred set of states supported by the instruction state sequencer (ISS) of the present invention.

【図10】本発明の割込みロジックによって支援される
好ましい1組の状態を示す模式図である。
FIG. 10 is a schematic diagram illustrating a preferred set of states supported by the interrupt logic of the present invention.

【図11】本発明のデータ演算装置(DOU)の好まし
い構成例を示すブロック図である。
FIG. 11 is a block diagram showing a preferred configuration example of a data operation device (DOU) of the present invention.

【図12】汎用外部ループ命令セットアーキテクチャ
(ISA)を実動化するために構成されたデータ演算装
置(DOU)の第1模範実施例の構成図である。
FIG. 12 is a block diagram of a first exemplary embodiment of a data operation unit (DOU) configured to implement a general purpose external loop instruction set architecture (ISA).

【図13】内部ループ命令セットアーキテクチャ(IS
A)を実動化するために構成されたデータ演算装置(D
OU)の第2模範実施例の構成ブロック図である。
FIG. 13 shows an inner loop instruction set architecture (IS
A) A data processing device (D
(OU) is a configuration block diagram of a second exemplary embodiment.

【図14】本発明のアドレス演算装置(AOU)の好ま
しい構成例を示すブロック図である。
FIG. 14 is a block diagram showing a preferred configuration example of an address arithmetic unit (AOU) of the present invention.

【図15】汎用外部ループ命令セットアーキテクチャ
(ISA)を実動化するために構成されたアドレス演算
装置(AOU)の第1模範実施例の構成ブロック図であ
る。
FIG. 15 is a configuration block diagram of a first exemplary embodiment of an address arithmetic unit (AOU) configured to implement a general purpose external loop instruction set architecture (ISA).

【図16】内部ループ命令セットアーキテクチャ(IS
A)を実動化するために構成されたアドレス演算装置
(AOU)の第2模範実施例の構成ブロック図である。
FIG. 16 shows an inner loop instruction set architecture (IS
FIG. 4 is a block diagram showing a configuration of a second exemplary embodiment of an address arithmetic unit (AOU) configured to implement A).

【図17】(a)は、外部ループ命令セットアーキテク
チャ(ISA)のための命令取出し装置(IFU)と、
データ演算装置(DOU)と、アドレス演算装置(AO
U)との間での再構成ハードウェアリソースの模範的割
当てを示す模式図、(b)は、内部ループ命令セットア
ーキテクチャ(ISA)のための命令取出し装置(IF
U)と、データ演算装置(DOU)と、アドレス演算装
置(AOU)との間での再構成ハードウェアリソースの
模範的割当てを示す模式図である。
FIG. 17 (a) shows an instruction fetch unit (IFU) for an outer loop instruction set architecture (ISA);
A data operation unit (DOU) and an address operation unit (AO)
And (b) shows an instruction fetch unit (IF) for an inner loop instruction set architecture (ISA).
FIG. 2 is a schematic diagram showing an exemplary assignment of reconfigurable hardware resources among a U), a data operation unit (DOU), and an address operation unit (AOU).

【図18】本発明のTマシンの好ましい構成例を示すブ
ロック図である。
FIG. 18 is a block diagram illustrating a preferred configuration example of a T machine according to the present invention.

【図19】本発明の相互結合入出力装置の構成例を示す
ブロック図である。
FIG. 19 is a block diagram showing a configuration example of a mutual coupling input / output device of the present invention.

【図20】本発明の入出力Tマシンの好ましい構成例を
示すブロック図である。
FIG. 20 is a block diagram showing a preferred configuration example of an input / output T machine of the present invention.

【図21】本発明の汎用相互結合マトリックス(GPI
M)の好ましい構成例を示すブロック図である。
FIG. 21 shows a general interconnect matrix (GPI) of the present invention.
It is a block diagram which shows the preferable example of a structure of M).

【図22】本発明に基づく、拡張性、並列、動的再構成
計算のための好ましい方法のフローチャートである。
FIG. 22 is a flowchart of a preferred method for scalable, parallel, dynamic reconfiguration computation according to the present invention.

【図23】本発明に基づくデータパケットの好ましい構
成例を示す模式図である。
FIG. 23 is a schematic diagram showing a preferred configuration example of a data packet based on the present invention.

【図24】本発明に基づくデータ要求を発生させるため
の好ましい方法のフローチャートである。
FIG. 24 is a flowchart of a preferred method for generating a data request according to the present invention.

【図25】本発明に基づくデータを送るための好ましい
方法のフローチャートである。
FIG. 25 is a flowchart of a preferred method for sending data according to the present invention.

【図26】本発明に基づくデータを受取るための好まし
い方法のフローチャートである。
FIG. 26 is a flowchart of a preferred method for receiving data according to the present invention.

【図27】本発明に基づく割込み処理演算を実行する相
互結合入出力装置の好ましい構成例を示すブロック図で
ある。
FIG. 27 is a block diagram showing a preferred configuration example of an interconnected input / output device that executes an interrupt processing operation according to the present invention.

【図28】本発明に基づく割込みを扱うための好ましい
方法のフローチャートである。
FIG. 28 is a flowchart of a preferred method for handling interrupts according to the present invention.

【符号の説明】[Explanation of symbols]

12 動的プログラム処理マシン(Sマシン) 14 アドレス指定マシン(Tマシン) 16 相互結合装置(汎用相互結合マトリック
ス) 34 メモリ装置、ローカルメモリ(メモリ) 101 アーキテクチャ記述メモリ 106,2200 割込みロジック 320 アドレス復号器 1800 データパケット 1816 地理アドレス 2208 メタアドレス 2208 認識装置 2204 コンパレータ
12 dynamic program processing machine (S machine) 14 addressing machine (T machine) 16 interconnection device (general-purpose interconnection matrix) 34 memory device, local memory (memory) 101 architecture description memory 106, 2200 interrupt logic 320 address decoder 1800 Data packet 1816 Geographic address 2208 Meta address 2208 Recognition device 2204 Comparator

Claims (15)

【特許請求の範囲】[Claims] 【請求項1】 動的再プログラマブル処理マシンのネッ
トワークのための、データパケットのためのローカルメ
モリ宛先を指定するメタアドレス指定アーキテクチャで
あって、 それぞれ、割込みを実施し、地理アドレスとローカルア
ドレスとを含むメタアドレスを生成し、伝送し、各メッ
セージを待機させるための一意的な地理アドレスを有す
る複数のアドレス指定マシンと、 それぞれ、少なくとも1個の前記アドレス指定マシンに
結合され、受取ったローカルアドレスに応じてローカル
メモリ装置からデータを記憶し、検索し、処理する複数
の動的再プログラマブル処理マシンと、 それぞれ、前記動的再プログラマブル処理マシンに関連
している複数のメモリ装置と、 前記アドレス指定マシンに結合され、メタアドレスに含
まれる地理アドレスに応じて前記アドレス指定マシン相
互間でデータをルーティングする相互結合装置と、を具
備する動的再構成計算のためのメタアドレスアーキテク
チャ。
A meta-addressing architecture for specifying a local memory destination for data packets for a network of dynamically re-programmable processing machines, each implementing an interrupt and storing a geographic address and a local address. A plurality of addressing machines having a unique geographical address for generating, transmitting, and waiting for each message, including a meta-address, wherein each of the plurality of addressing machines is coupled to at least one of the addressing machines and receives a local address. A plurality of dynamically reprogrammable processing machines for storing, retrieving, and processing data from a local memory device in response; a plurality of memory devices each associated with the dynamically reprogrammable processing machine; and the addressing machine. To the geo-address included in the meta-address. Meta address architecture for dynamic reconfiguration calculation comprising a mutual coupling device for routing data between said addressing machine one another depending on the address.
【請求項2】 少なくとも1個の前記アドレス指定マシ
ンが、 受取ったメタアドレスを地理アドレスとローカルアドレ
スとに復号するためのアドレス復号器と、 前記動的再プログラマブル処理マシンと前記ローカルメ
モリ装置と前記アドレス復号器とに結合され、前記動的
再プログラマブル処理マシンからの無条件命令の受領に
応じて前記ローカルメモリからメタアドレス情報を検索
し、検索したメタアドレスに応じてデータパケットを組
立て、前記アドレス復号器から地理アドレスとローカル
アドレスとを受取り、復号した地理アドレスが関連地理
アドレスに対応するとの決定に応じて前記動的再プログ
ラマブル処理マシンにデータパケットを伝送するための
制御装置と、を具備する請求項1記載の動的再構成計算
のためのメタアドレスアーキテクチャ。
2. An address decoder for decoding at least one of the addressing machines into a geographical address and a local address, the dynamic reprogrammable processing machine; the local memory device; Coupled to an address decoder, retrieving meta-address information from the local memory in response to receipt of an unconditional instruction from the dynamic reprogrammable processing machine, assembling a data packet according to the retrieved meta-address, A controller for receiving a geographic address and a local address from a decoder and for transmitting a data packet to the dynamically reprogrammable processing machine in response to determining that the decoded geographic address corresponds to the associated geographic address. 2. A meta-addressing device for dynamic reconfiguration calculation according to claim 1. Architecture.
【請求項3】 前記動的再プログラマブル処理マシンに
結合され、結合されている前記動的再プログラマブル処
理マシンについての前記地理アドレスを記憶する複数の
アーキテクチャ記述メモリ装置を具備する請求項1記載
の動的再構成計算のためのメタアドレスアーキテクチ
ャ。
3. The system of claim 1, further comprising a plurality of architecture description memory devices coupled to said dynamically reprogrammable processing machine and storing said geographic address for said dynamically reprogrammable processing machine. Metaaddress architecture for dynamic reconstruction calculations.
【請求項4】 前記アドレス指定マシンが、入出力装置
に結合された割込みハンドラーをさらに含み、この割込
みハンドラーが、 割込み要求を識別するための認識装置と、 割込み要求の有効性を検証するために、識別した割込み
要求を割込み要求の記憶されたリストと比較するための
コンパレータと、 記憶された割込み処理命令に従って有効性が確認された
割込み要求を処理するための割込みロジックと、を具備
する請求項2記載の動的再構成計算のためのメタアドレ
スアーキテクチャ。
4. The addressing machine further comprises an interrupt handler coupled to the input / output device, the interrupt handler comprising: a recognition device for identifying the interrupt request; and for verifying the validity of the interrupt request. And a comparator for comparing the identified interrupt request with a stored list of interrupt requests, and interrupt logic for processing the validated interrupt request according to the stored interrupt processing instructions. 2. A meta-address architecture for dynamic reconfiguration calculations according to item 2.
【請求項5】 メタアドレスが80ビット幅であり、地
理アドレスが16ビット幅であり、ローカルアドレスが
64ビット幅である請求項1記載の動的再構成計算のた
めのメタアドレスアーキテクチャ。
5. The meta-address architecture for dynamic reconfiguration calculations according to claim 1, wherein the meta-address is 80 bits wide, the geographic address is 16 bits wide, and the local address is 64 bits wide.
【請求項6】 ローカルアドレス指定マシンとローカル
メモリとに結合されたローカル処理マシンを用い、前記
ローカルアドレス指定マシンが、一意的な地理識別によ
って識別され、相互結合装置によって相互結合されてい
る並列プロセッサアーキテクチャ内で命令を処理するた
めの方法であって、 プログラム命令を受取る段階と、 受取ったプログラム命令が遠隔演算を要求しているかど
うかを決定する段階と、 要求されている遠隔演算に応じて、前記ローカルメモリ
に遠隔コンポーネント情報を記憶する段階と、 遠隔演算を開始するために、前記ローカルアドレス指定
マシンに無条件命令を発する段階と、を具備するアドレ
ス指定方法。
6. A parallel processor using a local addressing machine and a local processing machine coupled to a local memory, wherein the local addressing machine is identified by a unique geographic identification and interconnected by an interconnecting device. A method for processing instructions in an architecture, comprising: receiving a program instruction; determining whether the received program instruction requires a remote operation; An addressing method comprising: storing remote component information in said local memory; and issuing an unconditional instruction to said local addressing machine to initiate a remote operation.
【請求項7】 前記ローカルアドレス指定マシンは、 前記ローカル処理マシンから無条件命令を受取る段階
と、 ローカル地理アドレスと、遠隔地理アドレスと、遠隔ロ
ーカルメモリアドレスとを含んでいる遠隔コンポーネン
ト情報を前記ローカルメモリから検索する段階と、 検索した遠隔コンポーネント情報に応じてメタアドレス
を生成する段階と、 生成したメタアドレスに応じてデータパケットを生成す
る段階と、 データパケットを相互結合装置に送る段階と、を実行す
る請求項6記載のアドレス指定方法。
7. The local addressing machine receives the unconditional instructions from the local processing machine, and stores the remote component information including a local geographic address, a remote geographic address, and a remote local memory address into the local addressing machine. Retrieving from a memory, generating a meta-address according to the retrieved remote component information, generating a data packet according to the generated meta-address, and sending the data packet to the interconnection device. 7. The method according to claim 6, wherein the method is performed.
【請求項8】 ローカル処理装置がローカルメモリとロ
ーカルアドレスマシンと相互結合装置とに結合されてい
る並列計算環境でメモリをアドレス指定するためのアド
レス指定方法であって、前記ローカルアドレスマシン
は、 データパケットを受取る段階と、 データパケットを地理アドレスとローカルアドレスとに
復号する段階と、 地理アドレスを関連地理アドレスと比較する段階と、 関連地理アドレスにマッチする地理アドレスに応じてデ
ータパケットをローカルプロセッサに伝送する段階と、
を実行するアドレス指定方法。
8. An addressing method for addressing a memory in a parallel computing environment in which a local processing device is coupled to a local memory, a local address machine, and an interconnecting device, the local address machine comprising: Receiving the packet; decoding the data packet into a geographical address and a local address; comparing the geographical address with the associated geographical address; and transmitting the data packet to the local processor according to the geographical address matching the associated geographical address. Transmitting,
Addressing method to perform.
【請求項9】 データパケットを前記ローカルプロセッ
サに伝送する段階は、前記ローカルプロセッサによって
処理するためにデータパケットを待ち行列に記憶する段
階を含む請求項8記載のアドレス指定方法。
9. The method of claim 8, wherein transmitting a data packet to the local processor includes storing the data packet in a queue for processing by the local processor.
【請求項10】 前記ローカルプロセッサからデータを
受取る段階と、 受取ったデータに応じて前記ローカルメモリから遠隔演
算データを検索する段階と、 検索したデータからメタアドレスを生成する段階と、 生成したメタアドレスに応じてデータパケットを生成す
る段階と、 データパケットを前記相互結合装置に伝送する段階と、
を具備する請求項8記載のアドレス指定方法。
10. Receiving data from the local processor; retrieving remote operation data from the local memory in accordance with the received data; generating a meta-address from the retrieved data; Generating a data packet in response to: transmitting the data packet to the interconnection device;
9. The addressing method according to claim 8, comprising:
【請求項11】 遠隔演算データを検索する段階は、遠
隔地理アドレスと遠隔ローカルメモリアドレスとを検索
する段階を具備する請求項10記載のアドレス指定方
法。
11. The addressing method of claim 10, wherein retrieving the remote computation data comprises retrieving a remote geographic address and a remote local memory address.
【請求項12】 前記ローカルメモリからソース地理ア
ドレスを検索する段階を具備する請求項11記載のアド
レス指定方法。
12. The method of claim 11, further comprising retrieving a source geographic address from said local memory.
【請求項13】 各プロセッサに結合されて結合されて
いる前記ローカルプロセッサのための地理アドレスを記
憶するアーキテクチャ記述メモリを用い、このアーキテ
クチャ記述メモリからソース地理アドレスを検索する請
求項12記載のアドレス指定方法。
13. The addressing of claim 12, further comprising using an architecture description memory coupled to each processor and storing a geographic address for the coupled local processor, and retrieving a source geographic address from the architecture description memory. Method.
【請求項14】 ローカルアドレス指定マシンとローカ
ルメモリとに結合されたローカル処理マシンを用い、前
記ローカルアドレス指定マシンが、一意的な地理識別に
より識別され、相互結合装置によって相互結合されてい
る並列プロセッサアーキテクチャ内で命令を処理するた
めの方法であって、前記ローカルアドレス指定マシン
は、 前記ローカル処理マシンから無条件命令を受取る段階
と、 ローカル地理アドレスと、遠隔地理アドレスと、遠隔ロ
ーカルメモリアドレスとを含んでいる遠隔コンポーネン
ト情報を前記ローカルメモリから検索する段階と、 検索した遠隔コンポーネント情報に応じてメタアドレス
を生成する段階と、 生成したメタアドレスに応じてデータパケットを生成す
る段階と、 データパケットを相互結合装置に送る段階と、を具備す
るアドレス指定方法。
14. A parallel processor using a local addressing machine and a local processing machine coupled to a local memory, wherein the local addressing machine is identified by a unique geographic identification and interconnected by an interconnecting device. A method for processing instructions in an architecture, wherein the local addressing machine receives an unconditional instruction from the local processing machine, and stores a local geographic address, a remote geographic address, and a remote local memory address. Retrieving the contained remote component information from the local memory; generating a meta-address according to the retrieved remote component information; generating a data packet according to the generated meta-address; Stage to send to interconnection device Addressing how to and, the provided.
【請求項15】 ローカル処理装置がローカルメモリと
ローカルアドレスマシンと相互結合装置とに結合されて
いる並列計算環境でメモリをアドレス指定するためのア
ドレス指定方法であって、前記ローカルアドレスマシン
は、 ローカルプロセッサからデータを受取る段階と、 受取ったデータに応じて前記ローカルメモリから遠隔演
算データを検索する段階と、 検索したデータからメタアドレスを生成する段階と、 生成したメタアドレスに応じてデータパケットを生成す
る段階と、 データパケットを相互結合装置に伝送する段階と、を実
行するアドレス指定方法。
15. An addressing method for addressing memory in a parallel computing environment in which a local processing unit is coupled to a local memory, a local address machine, and an interconnecting device, the local address machine comprising: Receiving data from a processor; retrieving remote operation data from the local memory according to the received data; generating a meta-address from the retrieved data; and generating a data packet according to the generated meta-address. And transmitting the data packet to the interconnection device.
JP2000034825A 1999-02-23 2000-02-14 Metaaddressing architecture for dynamic reconfiguration computation and metaaddressing method for dynamic reconfiguration computation Expired - Fee Related JP4285877B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/255,499 US6594752B1 (en) 1995-04-17 1999-02-23 Meta-address architecture for parallel, dynamically reconfigurable computing
US09/255499 1999-02-23

Publications (2)

Publication Number Publication Date
JP2000242613A true JP2000242613A (en) 2000-09-08
JP4285877B2 JP4285877B2 (en) 2009-06-24

Family

ID=22968594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000034825A Expired - Fee Related JP4285877B2 (en) 1999-02-23 2000-02-14 Metaaddressing architecture for dynamic reconfiguration computation and metaaddressing method for dynamic reconfiguration computation

Country Status (1)

Country Link
JP (1) JP4285877B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007522571A (en) * 2004-02-13 2007-08-09 シーメンス アクチエンゲゼルシヤフト A reconfigurable switching device for parallel computation of arbitrary algorithms
JP2008052750A (en) * 2005-04-12 2008-03-06 Matsushita Electric Ind Co Ltd Processor
JP2010539615A (en) * 2007-09-20 2010-12-16 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング Circuit device for receiving and forming signals and method of operating the circuit device
JP2011154023A (en) * 2010-01-25 2011-08-11 Advantest Corp Test device and test method
JP2016143307A (en) * 2015-02-04 2016-08-08 株式会社東芝 Storage system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147250A (en) * 1994-09-20 1996-06-07 Hitachi Ltd Mutual couple network and communicating method for the same
JPH08286908A (en) * 1995-04-17 1996-11-01 Ricoh Co Ltd Processing unit, system and method to be freely dynamically reset
JPH0916542A (en) * 1995-04-20 1997-01-17 Sun Microsyst Inc Method and apparatus for interrupt communication in packet switching computer system
JPH10105487A (en) * 1996-09-30 1998-04-24 Hitachi Ltd Computer network communication method and network computer system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147250A (en) * 1994-09-20 1996-06-07 Hitachi Ltd Mutual couple network and communicating method for the same
JPH08286908A (en) * 1995-04-17 1996-11-01 Ricoh Co Ltd Processing unit, system and method to be freely dynamically reset
JPH0916542A (en) * 1995-04-20 1997-01-17 Sun Microsyst Inc Method and apparatus for interrupt communication in packet switching computer system
JPH10105487A (en) * 1996-09-30 1998-04-24 Hitachi Ltd Computer network communication method and network computer system

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007522571A (en) * 2004-02-13 2007-08-09 シーメンス アクチエンゲゼルシヤフト A reconfigurable switching device for parallel computation of arbitrary algorithms
JP2012074051A (en) * 2004-02-13 2012-04-12 Siemens Ag Reconfigurable logic circuit device for parallel calculation of any particular algorithms
JP2008052750A (en) * 2005-04-12 2008-03-06 Matsushita Electric Ind Co Ltd Processor
JP2010539615A (en) * 2007-09-20 2010-12-16 ローベルト ボツシユ ゲゼルシヤフト ミツト ベシユレンクテル ハフツング Circuit device for receiving and forming signals and method of operating the circuit device
US8750294B2 (en) 2007-09-20 2014-06-10 Robert Bosch Gmbh Circuit arrangement for signal pick-up and signal generation and method for operating this circuit arrangement
JP2011154023A (en) * 2010-01-25 2011-08-11 Advantest Corp Test device and test method
JP2016143307A (en) * 2015-02-04 2016-08-08 株式会社東芝 Storage system
US10389808B2 (en) 2015-02-04 2019-08-20 Toshiba Memory Corporation Storage system and control method thereof

Also Published As

Publication number Publication date
JP4285877B2 (en) 2009-06-24

Similar Documents

Publication Publication Date Title
US7493472B2 (en) Meta-address architecture for parallel, dynamically reconfigurable computing
US6594752B1 (en) Meta-address architecture for parallel, dynamically reconfigurable computing
JP7210078B2 (en) Memory network processor with programmable optimization
CN108268278B (en) Processor, method and system with configurable spatial accelerator
US10469397B2 (en) Processors and methods with configurable network-based dataflow operator circuits
US11029958B1 (en) Apparatuses, methods, and systems for configurable operand size operations in an operation configurable spatial accelerator
EP1215569B1 (en) Data processor
CN111512292A (en) Apparatus, method and system for unstructured data flow in a configurable spatial accelerator
CN111868702A (en) Apparatus, method and system for remote memory access in a configurable spatial accelerator
JP2642039B2 (en) Array processor
KR101766183B1 (en) Functional unit having tree structure to support vector sorting algorithm and other algorithms
CN111767080A (en) Apparatus, method and system for operations in a configurable spatial accelerator
US6839831B2 (en) Data processing apparatus with register file bypass
US20220100680A1 (en) Apparatuses, methods, and systems for a configurable accelerator having dataflow execution circuits
CN112148647A (en) Apparatus, method and system for memory interface circuit arbitration
CN112148664A (en) Apparatus, method and system for time multiplexing in a configurable spatial accelerator
JP4285877B2 (en) Metaaddressing architecture for dynamic reconfiguration computation and metaaddressing method for dynamic reconfiguration computation
JP2005310168A (en) Method and device for parallel processing of multiprocessor pipeline
US6728741B2 (en) Hardware assist for data block diagonal mirror image transformation
KR100267092B1 (en) Single instruction multiple data processing of multimedia signal processor
WO2011151000A9 (en) Method and device for data processing
WO2021014017A1 (en) A reconfigurable architecture, for example a coarse-grained reconfigurable architecture as well as a corresponding method of operating such a reconfigurable architecture
Mayer-Lindenberg A modular processor architecture for high-performance computing applications on FPGA
KR20220139304A (en) Processor for Configurable Parallel Computing
Kim et al. Adaptive balanced computing (ABC) microprocessor using reconfigurable functional caches (RFCs)

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20051021

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060811

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081224

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090223

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090324

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

Free format text: PAYMENT UNTIL: 20120403

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130403

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140403

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees