JP2003029969A - 演算システム - Google Patents
演算システムInfo
- Publication number
- JP2003029969A JP2003029969A JP2002060515A JP2002060515A JP2003029969A JP 2003029969 A JP2003029969 A JP 2003029969A JP 2002060515 A JP2002060515 A JP 2002060515A JP 2002060515 A JP2002060515 A JP 2002060515A JP 2003029969 A JP2003029969 A JP 2003029969A
- Authority
- JP
- Japan
- Prior art keywords
- program module
- module
- program
- data
- call
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
- Executing Machine-Instructions (AREA)
- Microcomputers (AREA)
- Logic Circuits (AREA)
- Hardware Redundancy (AREA)
- Advance Control (AREA)
Abstract
グラムモジュールからなる大規模プログラムの実行をハ
ードウェアで直接的に実現する。 【解決手段】 ゲートアレイ42は、FPGAデータメ
モリ41に記憶されたFPGAデータモジュールに従っ
てゲート回路42a間の論理構成がなされ、ハードウェ
ア的に演算を行う。FPGAデータメモリ41に記憶さ
れたモジュールが他のモジュールを呼び出すものである
ことが呼び出し検出部43によって検出されると、フリ
ップフロップ42bに保持された演算の途中結果のデー
タが退避スタック44に退避され、呼び出し先のモジュ
ールに渡す引数が引数受け渡し部45に一時保存され
る。その後、呼び出し先のモジュールをローダ3にロー
ドさせ、呼び出し先のモジュールによる演算から呼び出
し元のモジュールに復帰する際には、退避スタック44
に退避されたデータがフリップフロップ42bに書き戻
される。
Description
をハードウェアで直接的に実現できる演算システムに関
し、特に大規模プログラムの実行に適した演算システム
に関する。
ntral Processing Unit)がメモリに記憶されたプログ
ラム中の命令を順次解釈しながら、演算を進めていく。
CPUは、プログラムで実行すべき演算をソフトウェア
で実現するものであり、必ずしもその演算に対して最適
なハードウェア構成となっていないため、最終的な演算
結果を得るまでに多くのオーバーヘッドが存在する。
ウェアで直接的に実現するための技術として、例えば、
特表平8−504285号公報(国際公開WO94/1
0627号公報)や特表2000−516418号公報
(国際公開WO98/08306号公報)に示されてい
るような、フィールドプログラマブルゲートアレイ(F
PGA)を利用した演算システムが知られている。
を与えることで論理回路間の結線論理を変更し、これに
よってハードウェア的に演算結果を得ることをできるよ
うにしたものである。FPGAを利用して演算を行うこ
とによって、特定の演算専用に構成されたハードウェア
回路ほどは高速ではないが、従来の汎用コンピュータの
ようなCPUによる演算に比べると、非常に高速で演算
結果を得ることができる。
コンピュータで実行されているプログラム、特に大規模
なプログラムは、複数のモジュールに分割して作成され
ている。そして、1のプログラムモジュールが他のプロ
グラムモジュールを呼び出しながら、全体としてのプロ
グラムの実行を進めていくようになっている。こうして
プログラムモジュール別に開発を進めたり、各プログラ
ムモジュールを部品として利用したりすることにより、
プログラムの開発期間を短縮することができる。
用いた演算システムでは、ハードウェアとしてのモジュ
ール分割は考えられていても、ソフトウェアとしてのモ
ジュール分割は考えられていなかった。つまり、ソフト
ウェアとして1のプログラムモジュールから他のプログ
ラムモジュールを呼び出し、呼び出したプログラムモジ
ュールの実行を終了した後、元のプログラムモジュール
に復帰するというように、複数のプログラムモジュール
を適時実行していくことにより大規模プログラムの実行
を可能とする仕組みは考えられていなかった。
ステムで実行可能なプログラムは、実質的に1のみのモ
ジュールで作成されたプログラムでなくてはならないと
いう制約があった。つまり、大規模プログラムの実行が
事実上不可能で、その適用範囲は限られるという問題が
あった。
消するためになされたものであり、汎用のCPUを用い
ることなく、複数のプログラムモジュールからなる大規
模プログラムの実行をハードウェアで直接的に実現した
演算システムを提供することを目的とする。
め、本発明の第1の観点に係る演算システムは、複数の
プログラムモジュールからなるプログラムを記憶するプ
ログラム記憶手段と、前記プログラム記憶手段に記憶さ
れたプログラムモジュールをメモリにロードするロード
手段と、複数の論理回路を含み、前記ロード手段によっ
てメモリにロードされたプログラムモジュール中の命令
に従った信号を前記複数の論理回路の1以上に入力する
ことで、該ロードされたプログラムモジュールに応じた
演算を実行する論理演算手段と、前記論理演算手段の内
部状態を退避する退避手段と、所定の条件が成立した場
合に、前記論理演算手段の内部状態を前記退避手段に退
避すると共に、他のプログラムモジュールを前記ロード
手段にロードさせ、該他のプログラムモジュールに応じ
た演算の実行を終了した後に前記退避手段に退避した内
部状態を前記論理演算手段に戻してから、元のプログラ
ムモジュールに応じた演算の実行に復帰させる制御手段
とを備えることを特徴とする。
るプログラムモジュールを切り替えるときに、論理演算
手段の内部状態を退避し、また、復元する仕組みを備え
ている。このため、複数のプログラムモジュールからな
る大規模なプログラムも、メモリにロードするプログラ
ムを切り替え、論理演算手段中の論理回路に入力する信
号を変えていくことで、ハードウェア的に高速に演算を
実行していくことができる。
ログラムモジュールのうちの少なくとも一部のプログラ
ムモジュールは、他のプログラムモジュールを呼び出す
機能を含むものであってもよい。この場合において、上
記演算システムは、前記論理演算手段で演算を実行して
いるプログラムモジュール中の命令における他のプログ
ラムモジュールの呼び出しを検出する呼び出し検出手段
をさらに備えるものとすることができ、前記制御手段
は、前記呼び出し検出手段が他のプログラムモジュール
の呼び出しを検出した場合に、前記論理演算手段の内部
状態を前記退避手段に退避すると共に、呼び出し先のプ
ログラムモジュールを前記ロード手段にロードさせ、呼
び出し先のプログラムモジュールに応じた演算の実行を
終了した後に前記退避手段に退避した内部状態を前記論
理演算手段に戻してから、呼び出し元のプログラムモジ
ュールに応じた演算の実行に復帰させるものとすること
ができる。
替えられるプログラムモジュール間において引数を受け
渡すための引数受け渡し手段をさらに備えていてもよ
い。
て、モジュールの呼び出しを含む大規模なプログラムを
ハードウェア的に高速に実行することが可能となる。
は、先入れ後出し方式のスタックによって構成されたも
のとすることができる。
により、例えば、別のプログラムモジュールから呼び出
されたプログラムモジュールが、さらに他のプログラム
モジュールを呼び出すといった処理も可能となる。ま
た、あるプログラムモジュールが、そのプログラムモジ
ュール自身を呼び出す再帰型のプログラムを実行するこ
とも可能となる。
テムは、自己に供給された第1のプログラムモジュール
をメモリにロードするロード手段と、複数の論理回路を
含み、前記ロード手段によってメモリにロードされた前
記第1のプログラムモジュール中の命令に従った信号を
前記複数の論理回路の1以上に入力することで、ロード
された当該第1のプログラムモジュールに応じた演算を
実行する論理演算手段と、前記論理演算手段の内部状態
を退避する退避手段と、所定の条件が成立した場合に、
自己に着脱可能に接続された外部の他の演算システムに
第2のプログラムモジュールをロードさせ、当該他の演
算システムが当該第2のプログラムモジュールに応じた
演算の実行を終了し、演算結果を自己に供給した後に、
前記論理演算手段を前記第1のプログラムモジュールに
応じた演算の実行に復帰させる制御手段とを備えること
を特徴とする。
ジュールが表す演算へと処理を切り替えるときに、外部
の他の演算システムに第2のプログラムモジュールをロ
ードさせる構成を備えている。このため、複数のプログ
ラムモジュールからなる大規模なプログラムも、単一の
演算システムでは短時間で完了できない演算や、並列処
理を要する演算も、ハードウェア的に高速に実行してい
くことができる。また、3個以上の演算システムを連鎖
的に接続することも可能であるから、演算の手順を柔軟
に構成することが可能である。
ログラムモジュールからなるプログラムを記憶し、当該
プログラムモジュールを前記ロード手段に供給するプロ
グラム記憶手段を備えることにより、ロード手段にロー
ドさせるプログラムモジュールを確保する。
ログラムモジュールは、前記第2のプログラムモジュー
ルを呼び出す機能を含むものであってもよい。この場合
において、上記演算システムは、前記論理演算手段が演
算を実行している前記第1のプログラムモジュール中の
命令における前記第2のプログラムモジュールの呼び出
しを検出する呼び出し検出手段をさらに備えるものとす
ることができ、前記制御手段は、前記呼び出し検出手段
が前記第2のプログラムモジュールの呼び出しを検出し
た場合に、第2のプログラムモジュールを外部の他の演
算システムにロードさせ、当該他の演算システムが当該
第2のプログラムモジュールに応じた演算の実行を終了
し、演算結果を自己に供給した後に、前記論理演算手段
を前記第1のプログラムモジュールに応じた演算の実行
に復帰させるものとすることができる。
ム記憶手段に記憶された各プログラムモジュール中の命
令は、前記論理演算手段を構成する論理回路に入力する
信号に応じたコードによって構成れたものであってもよ
い。
構成するコードは、ハードウェア記述が可能な言語で記
述されたソースプログラムをコンパイルすることによっ
て得ることができる。この場合、モジュール別にソース
プログラムを開発したり、モジュールの部品としての利
用が可能となり、プログラムの開発期間を短縮すること
が可能となる。
明の実施の形態について説明する。
テムの構成を示すブロック図である。図示するように、
この演算システム1は、FPGAデータ記憶部2と、ロ
ーダ3と、FPGAデバイス4とから構成されている。
FPGAデータ記憶部2には、複数のモジュールに分か
れたFPGAデータモジュール21〜2nを記憶してい
る。
それぞれハードウェア記述が可能なプログラム言語で記
述されている複数のモジュールに分かれたソースプログ
ラム51〜5nを、FPGAデバイス4の論理記述を行
うべくコンパイラ6がコンパイルしたモジュール毎のデ
ータである。ソースプログラム51〜5nのうちの少な
くとも1のモジュールは、他のモジュールのソースプロ
グラム51〜5nを呼び出す機能を含んでおり、FPG
Aデータモジュール21〜2nには、他のモジュールの
呼び出しのためのデータも含まれている。
り、FPGAデータ記憶部2に記憶されたFPGAデー
タモジュール21〜2nをモジュール単位でFPGAデ
バイス4に適時ロードする。ローダ3によるFPGAデ
ータモジュール21〜2nのロードの指示は、演算の実
行の開始時に外部から与えられる他、FPGAデバイス
4による演算の実行によっても与えられる。
ロードされたFPGAデータモジュール21〜2nに従
って論理構成を行い、外部からの入力データに所定の演
算を施して出力データとして出力するもので、FPGA
データメモリ41と、ゲートアレイ42と、呼び出し検
出部43と、退避スタック44と、引数受け渡し部45
と、制御部46とを備えている。呼び出し検出部43、
退避スタック44、引数受け渡し部45及び制御部46
は、論理回路等より構成されている。
ndom Access Memory)によって構成され、ローダ3がロ
ードしたFPGAデータモジュールを記憶する。ゲート
アレイ42は、AND、OR、NOTなどの複数のゲー
ト回路42aと、演算の途中結果を内部状態として保持
している複数のフリップフロップ42bとを含んでい
る。各ゲート回路42aの出力論理は、FPGAデータ
メモリ41に記憶されたFPGAデータモジュールに従
って変更される。また、各フリップフロップ42bは、
所望のデータを外部から書き込むことができるようにな
っている。
モリ41に記憶されたFPGAデータモジュールに含ま
れる他のモジュールの呼び出しのためのデータを検出す
る。退避スタック44は、呼び出し検出部43によって
他のモジュールの呼び出しのためのデータが検出された
とき、ゲートアレイ42中のフリップフロップ42bに
保持されているデータと、呼び出し元のFPGAデータ
モジュールの識別データとを、先入れ後出し方式で退避
するためのスタックである。
出し、復帰の際において呼び出し元と呼び出し先のFP
GAデータモジュール間における引数の受け渡しを行う
ものである。より詳細に説明すると、呼び出しの際に
は、呼び出し元のFPGAデータモジュールに従った演
算の途中結果としてフリップフロップ42bの所定のも
のに保持されていたデータを、呼び出し先のFPGAデ
ータモジュールに従った演算の入力(引数)として与え
る。復帰の際には、呼び出し先のFPGAデータモジュ
ールに従った演算結果(戻り値)の出力データを、ゲー
トアレイ42中のフリップフロップ42bの所定のもの
に書き込む。
モジュールの呼び出しのためのデータを検出した場合、
当該呼び出しのためのデータの前までのFPGAデータ
モジュールに従った演算の途中結果としてフリップフロ
ップ42bのそれぞれに保持されているデータと、呼び
出し元のデータモジュールの識別データとを退避スタッ
ク44に退避させると共に、呼び出し先のFPGAデー
タモジュールに従った演算で使用するデータを保持する
フリップフロップ42bのデータを、引数受け渡し部4
5に一時保持させる。その後、呼び出し先のFPGAデ
ータモジュールをローダ3にロードさせ、引数受け渡し
部45に一時保持したデータをゲートアレイ42に入力
データとして与える。
Aデータモジュールに従った演算が終了したときに、そ
の出力データを引数受け渡し部45に一時保持させる。
その後、退避スタック44に退避された呼び出し元のデ
ータモジュールの識別データに従ってローダ3にFPG
Aデータモジュールをロードさせ、退避スタック44に
退避されたデータをフリップフロップ42bに復帰させ
ると共に、引数受け渡し部45に一時保持させたデータ
をフリップフロップ42bの所定のものに書き込ませ
る。
される入力データは、キーボードなどの入力装置から入
力されるデータの他、磁気ディスク装置などの外部記憶
装置から読み出されたデータであってもよい。また、F
PGAデバイス4から外部に出力される出力データは、
ディスプレイ装置などの出力装置から出力する他、外部
記憶装置に書き込むものであってもよく、さらに、周辺
機器を制御するための制御データであってもよい。
ムにおける動作について、具体的な例に基づいて説明す
る。ここでは、FPGAデータモジュール21が最初に
ロードされるものとし、FPGAデータモジュール21
は、FPGAデータモジュール2nを呼び出すものとす
る。
ータメモリ41にロードされると、これに従ったレベル
の信号がゲート回路42aに入力され、ゲートアレイ4
2を構成するゲート回路42aが論理構成される。そし
て、ゲートアレイ42に外部からの入力データが入力さ
れることによって、FPGAデータモジュール21に応
じた演算がゲートアレイ42において実行される。
ータメモリ41にロードされたFPGAデータモジュー
ル21にFPGAデータモジュール2nを呼び出すため
のデータが含まれていることを検出し、その旨を制御部
46に通知する。制御部46は、その呼び出しにかかる
部分の直前までの演算の途中結果としてフリップフロッ
プ42bに保持されているデータ(ゲートアレイ42の
内部状態)を、呼び出し元のFPGAデータモジュール
21を識別するためのデータと共に退避スタック44の
一番上に退避させる。また、フリップフロップ42bに
保持されているデータのうちで呼び出し先のFPGAデ
ータモジュール2nに引数として渡すものを、引数受け
渡し部45に一時保存させる。
し、呼び出し先であるFPGAデータモジュール2nを
FPGAデータメモリ41にロードさせる。FPGAデ
ータモジュール2nがロードされると、これに従ったレ
ベルの信号がゲート回路42aに入力され、ゲートアレ
イ42を構成するゲート回路42aが論理構成される。
また、引数受け渡し部45に引数として一時保存された
データが、入力データとしてゲートアレイ42に入力さ
れ、FPGAデータモジュール2nに応じた演算がゲー
トアレイ42において実行される。
ートアレイ42からの出力データを呼び出し元のFPG
Aデータモジュール21に渡す引数として引数受け渡し
部45に一時保存させる。制御部46は、さらに退避ス
タック44の一番上に退避されたデータを参照すること
でローダ3を制御し、呼び出し元のFPGAデータモジ
ュール21をFPGAデータメモリ41に再びロードさ
せる。
1が再びロードされると、制御部46は、退避スタック
44の一番上に退避されていた内部状態のデータをフリ
ップフロップ42bのそれぞれに書き戻し、ゲートアレ
イ42の内部状態を復元させる。さらに、引数受け渡し
部45に引数として一時保存されていたデータをフリッ
プフロップ42bの所定のものに書き込む。この状態で
ゲートアレイ42においてFPGAデータモジュール2
1に従った演算が再開され、最終的な演算結果が出力デ
ータとして出力されることとなる。
呼び出されたFPGAデータモジュール2nが、さらに
他のFPGAデータモジュールを呼び出すものであって
も演算を実行することができる。FPGAデータモジュ
ール2nがさらに他のモジュールを呼び出すことを呼び
出し検出部43が検出した場合にも、制御部46は、上
記と同じような制御を行うものとすればよい。
かる演算システムでは、ゲートアレイ42の内部状態
(フリップフロップ42bが保持するデータ)を退避ス
タック44に退避した後に、ローダ3は、実行中のモジ
ュールとは異なるFPGAデータモジュールをFPGA
データメモリ41にロードするようにしている。また、
退避スタック44に退避した状態をゲートアレイ42に
復元してから元のモジュールに復帰することができるよ
うになっている。このため、各FPGAデータモジュー
ルをFPGAデータメモリ41に適時ロードしていくこ
とによって、複数のモジュールからなる大規模なプログ
ラムを、各モジュールに対応してゲート回路42a間の
論理構成を変化させてハードウェア的に実行することが
でき、従来のCPUを用いた演算システムに比べて高速
で演算を実行することができる。
nのうちの少なくとも1のモジュールが他のモジュール
を呼び出すためのデータを含んでいるが、このような他
のモジュールの呼び出しを含むFPGAデータモジュー
ルがFPGAデータメモリ41にロードされた場合に、
これを呼び出し検出部43が検出している。そして、こ
の検出結果に基づいて、退避スタック44へのゲートア
レイ42の内部状態(フリップフロップ42bが保持す
るデータ)の退避、引数受け渡し部45を介した引数の
受け渡しを行っている。また、呼び出し先のモジュール
に従った演算が終了したときに、退避スタック44に退
避した内部状態の復元、引数受け渡し部45を介した呼
び出し元のモジュールへの引数の受け渡しを行ってい
る。このような仕組みを備えることによって、モジュー
ルの呼び出しを含む大規模なプログラムをハードウェア
的に実行することが可能となる。
ルの呼び出しを検出したときに、ゲートアレイ42の内
部状態(フリップフロップ42bが保持するデータ)を
退避するのは、先入れ後出し方式の退避スタックであ
る。このため、他のモジュールから呼び出されたモジュ
ールがさらに他のモジュールを呼び出すようなプログラ
ムを実行することもできる。さらに、実行中のモジュー
ルが自身を呼び出す再帰型のプログラムを実行すること
もできる。
2nは、モジュール分割されたソースプログラム51〜
5nをそれぞれコンパイラ6によってコンパイルしたも
のである。以上のような特徴を有することによって、こ
の演算システムにおいて実行すべきプログラムは、モジ
ュール別にソースプログラムの開発を進めたり、ソース
プログラムの各モジュールを部品として利用したりする
ことが可能となり、その開発期間を短縮することができ
る。
種々の変形、応用が可能である。以下、本発明に適用可
能な上記の実施の形態の変形態様について説明する。
GAデータ記憶部2に記憶されたいずれかのFPGAデ
ータモジュール21〜2nを、そのままFPGAデータ
メモリ41にロードするものとしていた。これに対し
て、FPGAデータモジュール21〜2nがマクロを含
み、FPGAデータ記憶部2にマクロデータを記憶させ
ておき、ローダ3がFPGAデータメモリ41にロード
する際に、マクロ展開をするものとしてもよい。
51〜5nをそれぞれコンパイルしたFPGAデータモ
ジュール21〜2nを、FPGAデバイス4のFPGA
データメモリ41に適時ロードしていくものとしてい
た。これに対して、ソースプログラム51〜5nをその
ままロードするようにした演算システムを構成すること
もできる。図2は、このような場合の演算システムの構
成を示す。
御部46’からの指示に基づいて、プログラム記憶部5
に記憶されたモジュール別のソースプログラム51〜5
nを適時メモリ41’にロードする。インタプリタ47
は、メモリ41’にロードされたソースプログラム中の
命令を1命令ずつ順次解釈し、その解釈結果に従ってゲ
ートアレイ42’を構成するゲート回路42aに論理構
成を行わせるべく所定の信号を出力する。解釈の結果、
他のモジュールのソースプログラムを呼び出す命令であ
った場合には、その旨を制御部46’に通知する。
しが通知されると、ゲートアレイ42’の内部状態(フ
リップフロップ42bに保持されているデータ)と、呼
び出し元のソースプログラムのモジュールを識別するた
めのデータと、次に実行をすべき命令を示すデータを退
避スタック44に退避すると共に、フリップフロップ4
2bに保持されているデータのうち呼び出し先のモジュ
ールに引数として渡すものを、引数受け渡し部45に一
時保存させる。そして、ローダ3’に呼び出し先のソー
スプログラム51〜5nをロードさせ、引数受け渡し部
45に一時保存されたデータを入力データとしてゲート
アレイ42’に与える。
った演算が終了すると、ゲートアレイ42’からの出力
データを呼び出し元のモジュールに渡す引数として引数
受け渡し部45に一時保存させる。そして、退避スタッ
ク44に退避されたデータに従って呼び出し元のソース
プログラムを再びメモリ41’にロードさせ、退避スタ
ック44に退避された内部状態をフリップフロップ42
bに戻し、引数受け渡し部45に一時保存された引数を
フリップフロップ42bのうちの所定のものに書き込ま
せる。そして、退避スタック44に退避されたデータに
基づいて呼び出し元のモジュールのソースプログラムに
従った演算を再開させる。
回路の組み合わせによるハードウェアで構成することが
でき、その出力によってゲートアレイ42’に含まれる
ゲート回路42aの論理構成を、演算の実行速度にほと
んど影響を与えることなく高速に行うことができる。ま
た、ここでのゲートアレイ42’は、ソースプログラム
中の各命令を終了したときのデータをフリップフロップ
42bの所定のものに保持させることで、各命令を順次
実行していくことができる。
とすることによって、ソースプログラム51〜5nをモ
ジュール別に順次FPGAデバイス4’にロードしてい
くことが可能となる。このため、FPGAデバイス4’
の構成に合わせたコンパイラがなくても、複数のモジュ
ールからなる大規模なプログラムに従った演算を、ハー
ドウェア的に高速に行うことが可能となる。
いに連結可能な構成として、並列処理や分岐処理を、互
いに連結された複数の演算システムが分担して行うよう
にしてもよい。具体的には、この演算システムは、たと
えば、図3に演算システム1Aとして示す構成を有して
いてもよい。
1に示す演算システム1と実質的に同一の構成を備え、
更に、補助演算制御部7を備えるものとする。補助演算
制御部7は論理回路等より構成されており、他の演算シ
ステム(たとえば、図1あるいは図3に示す構成を有す
る演算システム)のローダ3、ゲートアレイ42及び引
数受け渡し部45に着脱可能に接続され、後述する動作
を行う。
テム1Aに接続されてもよい。具体的には、たとえば図
4に示すように、演算システム1B及び1Cのそれぞれ
のローダ3、ゲートアレイ42及び変数引き渡し部45
が、演算システム1Aの補助演算制御部7に接続されて
いてもよい。なお、演算システム1B及び1Cは、たと
えば、図1あるいは図3に示す構成と実質的に同一の構
成を有したものであればよい。ただし、FPGAデータ
記憶部2を必ずしも備えていなくてもよい。
ステム1と実質的に同一の動作を行う。そして、自己の
FPGAデータメモリ41にロードされたFPGAデー
タモジュールに、他の演算システムに実行させるべきF
PGAデータモジュールを呼び出すデータが含まれてい
ると、自己に接続された他の演算システムにこのFPG
Aデータモジュールをロードさせ、演算を行わせて、演
算結果を取得する。
ステム1B及び1Cに並列処理を行わせる動作を例とし
て、演算システム1Aが自己に接続された他の演算シス
テムにFPGAデータモジュールをロードさせ、演算を
行わせて演算結果を取得する動作を説明する。なお、以
下では、FPGAデータモジュール21が最初にロード
されるものとし、FPGAデータモジュール21は、F
PGAデータモジュール2xを呼び出し、演算システム
1Aは、演算システム1B及び1CにFPGAデータモ
ジュール2xをロードさせるものとする。
ム1AのFPGAデータメモリ41にロードされると、
演算システム1Aのゲート回路42aが論理構成され
る。そして、演算システム1Aのゲートアレイ42に外
部からの入力データが入力されると、FPGAデータモ
ジュール21に応じた演算が演算システム1Aのゲート
アレイ42において実行される。
43は、FPGAデータメモリ41にロードされたFP
GAデータモジュール21に、演算システム1B及び1
CにロードさせるべきFPGAデータモジュール2xを
呼び出すためのデータが含まれていることを検出し、そ
の旨を制御部46に通知する。
は、演算システム1Aのローダ3を制御し、呼び出し先
であるFPGAデータモジュール2xを演算システム1
AのFPGAデータメモリ41にロードさせる。FPG
Aデータモジュール2xがロードされると、演算システ
ム1Aのゲートアレイ42は、このFPGAデータモジ
ュール2xを取得する。そして、FPGAデータモジュ
ール21に応じた処理の一環として、このFPGAデー
タモジュール2xを演算システム1Aの補助演算制御部
7に供給し、演算を停止する。
演算システム1Aのフリップフロップ42bに保持され
ているデータのうちでFPGAデータモジュール2xに
引数として渡すデータ(演算システム1Bに供給するデ
ータ、及び、演算システム1Cに供給するデータ)を、
演算システム1Aの補助演算制御部7に供給する。
演算システム1B及び1Cのローダ3を制御し、FPG
Aデータモジュール2xを、演算システム1B及び1C
のFPGAデータメモリ41にそれぞれロードさせる。
この結果、演算システム1B及び1CにFPGAデータ
モジュール2xがロードされ、演算システム1B及び1
Cのゲート回路42aが論理構成される。
部7は、演算システム1Aの制御部46より引数として
供給されたデータのうち、演算システム1Bに供給すべ
きものを、入力データとして演算システム1Bのゲート
アレイ42に入力し、演算システム1Cに供給すべきも
のを、入力データとして演算システム1Cのゲートアレ
イ42に入力する。この結果、演算システム1B及び1
Cのゲートアレイは、FPGAデータモジュール2xに
応じた演算を、各自に供給されたデータが表す引数が与
えられたものとして実行する。
算が終了すると、演算システム1B(又は1C)の制御
部46は、演算システム1B(又は1C)のゲートアレ
イ42からの出力データを、呼び出し元のFPGAデー
タモジュール21に渡す引数として、演算システム1B
(又は1C)の引数受け渡し部45に一時保存させる。
演算システム1B及び1Cの引数受け渡し部45に出力
データが一時保存されたことを検知し、これらの出力デ
ータを、演算システム1B及び1Cの引数受け渡し部4
5より取得する。そして、取得した各出力データを、演
算システム1Aのフリップフロップ42bの所定のもの
に書き込む。この状態で、演算システム1Aのゲートア
レイ42は、FPGAデータモジュール21に従った演
算を再開する。この結果、最終的な演算結果が出力デー
タとして出力される。
3に示す構成を有していれば、単一の演算システムでは
短時間で完了できない演算や、並列処理を要する演算
も、必要に応じて演算システムを追加することにより、
短時間で完了させることが可能となる。
演算システムが図3に示す構成を有している場合、当該
他の演算システムは、自己の補助演算制御部7に接続さ
れた演算システムにFPGAデータモジュールをロード
させ、演算を行わせて演算結果を取得することが可能で
ある。従って演算の手順を柔軟に構成することが可能で
ある。
た他の演算システムにソースプログラムをロードさせ、
演算を行わせて演算結果を取得するようにしてもよい。
ただし、この場合、演算システム1Aに接続される他の
演算システムは、たとえば図2に示す構成を有している
ものとする。
数のプログラムモジュールからなる大規模なプログラム
であっても、各プログラムモジュールを適時メモリにロ
ードしていく仕組みを有するので、該プログラムに応じ
た演算の実行をハードウェアで実現することが可能とな
る。
成を示すブロック図である。
の構成を示すブロック図である。
の構成を示すブロック図である。
数連結されて用いられる場合の構成を示すブロック図で
ある。
Claims (8)
- 【請求項1】複数のプログラムモジュールからなるプロ
グラムを記憶するプログラム記憶手段と、 前記プログラム記憶手段に記憶されたプログラムモジュ
ールをメモリにロードするロード手段と、 複数の論理回路を含み、前記ロード手段によってメモリ
にロードされたプログラムモジュール中の命令に従った
信号を前記複数の論理回路の1以上に入力することで、
該ロードされたプログラムモジュールに応じた演算を実
行する論理演算手段と、 前記論理演算手段の内部状態を退避する退避手段と、 所定の条件が成立した場合に、前記論理演算手段の内部
状態を前記退避手段に退避すると共に、他のプログラム
モジュールを前記ロード手段にロードさせ、該他のプロ
グラムモジュールに応じた演算の実行を終了した後に前
記退避手段に退避した内部状態を前記論理演算手段に戻
してから、元のプログラムモジュールに応じた演算の実
行に復帰させる制御手段とを備えることを特徴とする演
算システム。 - 【請求項2】前記複数のプログラムモジュールのうちの
少なくとも一部のプログラムモジュールは、他のプログ
ラムモジュールを呼び出す機能を含み、 前記論理演算手段で演算を実行しているプログラムモジ
ュール中の命令における他のプログラムモジュールの呼
び出しを検出する呼び出し検出手段をさらに備え、 前記制御手段は、前記呼び出し検出手段が他のプログラ
ムモジュールの呼び出しを検出した場合に、前記論理演
算手段の内部状態を前記退避手段に退避すると共に、呼
び出し先のプログラムモジュールを前記ロード手段にロ
ードさせ、呼び出し先のプログラムモジュールに応じた
演算の実行を終了した後に前記退避手段に退避した内部
状態を前記論理演算手段に戻してから、呼び出し元のプ
ログラムモジュールに応じた演算の実行に復帰させるこ
とを特徴とする請求項1に記載の演算システム。 - 【請求項3】前記制御手段によって実行が切り替えられ
るプログラムモジュール間において引数を受け渡すため
の引数受け渡し手段をさらに備えることを特徴とする請
求項2に記載の演算システム。 - 【請求項4】前記退避手段は、先入れ後出し方式のスタ
ックによって構成されることを特徴とする請求項1乃至
3のいずれか1項に記載の演算システム。 - 【請求項5】自己に供給された第1のプログラムモジュ
ールをメモリにロードするロード手段と、 複数の論理回路を含み、前記ロード手段によってメモリ
にロードされた前記第1のプログラムモジュール中の命
令に従った信号を前記複数の論理回路の1以上に入力す
ることで、ロードされた当該第1のプログラムモジュー
ルに応じた演算を実行する論理演算手段と、 前記論理演算手段の内部状態を退避する退避手段と、 所定の条件が成立した場合に、自己に着脱可能に接続さ
れた外部の他の演算システムに第2のプログラムモジュ
ールをロードさせ、当該他の演算システムが当該第2の
プログラムモジュールに応じた演算の実行を終了し、演
算結果を自己に供給した後に、前記論理演算手段を前記
第1のプログラムモジュールに応じた演算の実行に復帰
させる制御手段とを備えることを特徴とする演算システ
ム。 - 【請求項6】複数のプログラムモジュールからなるプロ
グラムを記憶し、当該プログラムモジュールを前記ロー
ド手段に供給するプログラム記憶手段を備えることを特
徴とする請求項5に記載の演算システム。 - 【請求項7】前記第1のプログラムモジュールは、前記
第2のプログラムモジュールを呼び出す機能を含み、 前記論理演算手段が演算を実行している前記第1のプロ
グラムモジュール中の命令における前記第2のプログラ
ムモジュールの呼び出しを検出する呼び出し検出手段を
さらに備え、 前記制御手段は、前記呼び出し検出手段が前記第2のプ
ログラムモジュールの呼び出しを検出した場合に、第2
のプログラムモジュールを外部の他の演算システムにロ
ードさせ、当該他の演算システムが当該第2のプログラ
ムモジュールに応じた演算の実行を終了し、演算結果を
自己に供給した後に、前記論理演算手段を前記第1のプ
ログラムモジュールに応じた演算の実行に復帰させるこ
とを特徴とする請求項5又は6に記載の演算システム。 - 【請求項8】前記プログラム記憶手段に記憶された各プ
ログラムモジュール中の命令は、前記論理演算手段を構
成する論理回路に入力する信号に応じたコードによって
構成されていることを特徴とする請求項1乃至7のいず
れか1項に記載の演算システム。
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002060515A JP3561506B2 (ja) | 2001-05-10 | 2002-03-06 | 演算システム |
US10/477,374 US20050027836A1 (en) | 2001-05-10 | 2002-05-08 | Computing system |
PCT/JP2002/004461 WO2002093404A2 (en) | 2001-05-10 | 2002-05-08 | Computing system |
CNB028096444A CN100361119C (zh) | 2001-05-10 | 2002-05-08 | 计算系统 |
CNA2007100021370A CN101025731A (zh) | 2001-05-10 | 2002-05-08 | 计算系统 |
KR1020037014600A KR100776608B1 (ko) | 2001-05-10 | 2002-05-08 | 컴퓨팅 시스템 |
KR1020067021470A KR20060114722A (ko) | 2001-05-10 | 2002-05-08 | 컴퓨팅 시스템 |
EP02769545A EP1421511A2 (en) | 2001-05-10 | 2002-05-08 | Computing system |
TW091109783A TW561405B (en) | 2001-05-10 | 2002-05-10 | Computing system |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001139951 | 2001-05-10 | ||
JP2001-139951 | 2001-05-10 | ||
JP2002060515A JP3561506B2 (ja) | 2001-05-10 | 2002-03-06 | 演算システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003029969A true JP2003029969A (ja) | 2003-01-31 |
JP3561506B2 JP3561506B2 (ja) | 2004-09-02 |
Family
ID=26614885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002060515A Expired - Fee Related JP3561506B2 (ja) | 2001-05-10 | 2002-03-06 | 演算システム |
Country Status (7)
Country | Link |
---|---|
US (1) | US20050027836A1 (ja) |
EP (1) | EP1421511A2 (ja) |
JP (1) | JP3561506B2 (ja) |
KR (2) | KR100776608B1 (ja) |
CN (2) | CN100361119C (ja) |
TW (1) | TW561405B (ja) |
WO (1) | WO2002093404A2 (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005022380A1 (ja) * | 2003-08-29 | 2005-03-10 | Ipflex Inc. | データ処理装置 |
WO2005033939A1 (ja) * | 2003-09-30 | 2005-04-14 | Sanyo Electric Co., Ltd. | リコンフィギュラブル回路を備えた処理装置、集積回路装置およびそれらを利用した処理方法 |
WO2005081405A1 (en) * | 2004-02-19 | 2005-09-01 | Tokyo Electron Limited | Programmable logic circuit control apparatus, programmable logic circuit control method and program |
WO2006011232A1 (ja) * | 2004-07-30 | 2006-02-02 | Fujitsu Limited | リコンフィギュラブル回路およびリコンフィギュラブル回路の制御方法 |
JP2007128124A (ja) * | 2005-11-01 | 2007-05-24 | Hitachi Ltd | リコンフィギュラブルプロセッサまたは装置 |
US7941794B2 (en) | 2004-08-30 | 2011-05-10 | Sanyo Electric Co., Ltd. | Data flow graph processing method and processing apparatus provided with reconfigurable circuit |
JP2020525907A (ja) * | 2017-06-22 | 2020-08-27 | アイキャット・エルエルシー | 高スループットプロセッサ |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100412801C (zh) * | 2003-09-30 | 2008-08-20 | 三洋电机株式会社 | 备有可重构电路的处理装置、集成电路装置 |
US20060200603A1 (en) * | 2005-03-01 | 2006-09-07 | Naoto Kaneko | Dynamic resource allocation for a reconfigurable IC |
DE102005010477A1 (de) * | 2005-03-04 | 2006-09-07 | Daimlerchrysler Ag | Vorrichtung und Verfahren zur Abarbeitung priorisierter Steuerungsprozesse |
DE102005010476A1 (de) * | 2005-03-04 | 2006-09-07 | Daimlerchrysler Ag | Steuergerät mit konfigurierbaren Hardwaremodulen |
US20070139074A1 (en) * | 2005-12-19 | 2007-06-21 | M2000 | Configurable circuits with microcontrollers |
EP2523117B1 (en) * | 2011-05-11 | 2014-01-22 | Telefonaktiebolaget L M Ericsson (publ) | Interface module for HW block |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802290A (en) * | 1992-07-29 | 1998-09-01 | Virtual Computer Corporation | Computer network of distributed virtual computers which are EAC reconfigurable in response to instruction to be executed |
US5933642A (en) * | 1995-04-17 | 1999-08-03 | Ricoh Corporation | Compiling system and method for reconfigurable computing |
US6594752B1 (en) * | 1995-04-17 | 2003-07-15 | Ricoh Company, Ltd. | Meta-address architecture for parallel, dynamically reconfigurable computing |
US5778439A (en) * | 1995-08-18 | 1998-07-07 | Xilinx, Inc. | Programmable logic device with hierarchical confiquration and state storage |
US5706514A (en) * | 1996-03-04 | 1998-01-06 | Compaq Computer Corporation | Distributed execution of mode mismatched commands in multiprocessor computer systems |
US5838165A (en) * | 1996-08-21 | 1998-11-17 | Chatter; Mukesh | High performance self modifying on-the-fly alterable logic FPGA, architecture and method |
GB2317468B (en) * | 1996-09-23 | 2001-01-24 | Advanced Risc Mach Ltd | Digital signal processing integrated circuit architecture |
DE19651075A1 (de) * | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
JP3587095B2 (ja) * | 1999-08-25 | 2004-11-10 | 富士ゼロックス株式会社 | 情報処理装置 |
JP3621315B2 (ja) * | 1999-11-22 | 2005-02-16 | Necエレクトロニクス株式会社 | マイクロプロセッサシステム |
-
2002
- 2002-03-06 JP JP2002060515A patent/JP3561506B2/ja not_active Expired - Fee Related
- 2002-05-08 KR KR1020037014600A patent/KR100776608B1/ko not_active IP Right Cessation
- 2002-05-08 US US10/477,374 patent/US20050027836A1/en not_active Abandoned
- 2002-05-08 EP EP02769545A patent/EP1421511A2/en not_active Ceased
- 2002-05-08 CN CNB028096444A patent/CN100361119C/zh not_active Expired - Fee Related
- 2002-05-08 WO PCT/JP2002/004461 patent/WO2002093404A2/en active Application Filing
- 2002-05-08 CN CNA2007100021370A patent/CN101025731A/zh active Pending
- 2002-05-08 KR KR1020067021470A patent/KR20060114722A/ko active IP Right Grant
- 2002-05-10 TW TW091109783A patent/TW561405B/zh not_active IP Right Cessation
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005022380A1 (ja) * | 2003-08-29 | 2005-03-10 | Ipflex Inc. | データ処理装置 |
CN100580621C (zh) * | 2003-08-29 | 2010-01-13 | Ip菲力股份有限公司 | 数据处理装置、控制方法、自动控制装置、终端、生成方法 |
WO2005033939A1 (ja) * | 2003-09-30 | 2005-04-14 | Sanyo Electric Co., Ltd. | リコンフィギュラブル回路を備えた処理装置、集積回路装置およびそれらを利用した処理方法 |
WO2005081405A1 (en) * | 2004-02-19 | 2005-09-01 | Tokyo Electron Limited | Programmable logic circuit control apparatus, programmable logic circuit control method and program |
KR100791876B1 (ko) * | 2004-02-19 | 2008-01-07 | 동경 엘렉트론 주식회사 | 프로그램 가능한 논리 회로 제어 장치, 프로그램 가능한논리 회로 제어 방법 및 프로그램을 기록한 컴퓨터로 판독가능한 기록 매체 |
WO2006011232A1 (ja) * | 2004-07-30 | 2006-02-02 | Fujitsu Limited | リコンフィギュラブル回路およびリコンフィギュラブル回路の制御方法 |
US7849288B2 (en) | 2004-07-30 | 2010-12-07 | Fujitsu Limited | Alternately selecting memory units to store and retrieve configuration information in respective areas for a plurality of processing elements to perform pipelined processes |
US7941794B2 (en) | 2004-08-30 | 2011-05-10 | Sanyo Electric Co., Ltd. | Data flow graph processing method and processing apparatus provided with reconfigurable circuit |
JP2007128124A (ja) * | 2005-11-01 | 2007-05-24 | Hitachi Ltd | リコンフィギュラブルプロセッサまたは装置 |
JP4720436B2 (ja) * | 2005-11-01 | 2011-07-13 | 株式会社日立製作所 | リコンフィギュラブルプロセッサまたは装置 |
JP2020525907A (ja) * | 2017-06-22 | 2020-08-27 | アイキャット・エルエルシー | 高スループットプロセッサ |
JP7183197B2 (ja) | 2017-06-22 | 2022-12-05 | アイキャット・エルエルシー | 高スループットプロセッサ |
Also Published As
Publication number | Publication date |
---|---|
US20050027836A1 (en) | 2005-02-03 |
CN1529858A (zh) | 2004-09-15 |
KR100776608B1 (ko) | 2007-11-16 |
WO2002093404A2 (en) | 2002-11-21 |
CN100361119C (zh) | 2008-01-09 |
EP1421511A2 (en) | 2004-05-26 |
JP3561506B2 (ja) | 2004-09-02 |
TW561405B (en) | 2003-11-11 |
CN101025731A (zh) | 2007-08-29 |
KR20060114722A (ko) | 2006-11-07 |
KR20040004617A (ko) | 2004-01-13 |
WO2002093404A3 (en) | 2004-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102466984B1 (ko) | 중앙 프로세싱 유닛(cpu)과 보조 프로세서 사이의 개선된 함수 콜백 메커니즘 | |
US7134124B2 (en) | Thread ending method and device and parallel processor system | |
EP0644482B1 (en) | Dispatch of instructions to multiple execution units | |
US7082518B2 (en) | Interruptible digital signal processor having two instruction sets | |
US20090119671A1 (en) | Registers for data transfers | |
KR100681199B1 (ko) | 코어스 그레인 어레이에서의 인터럽트 처리 방법 및 장치 | |
JP2003029969A (ja) | 演算システム | |
US10031773B2 (en) | Method to communicate task context information and device therefor | |
US7032099B1 (en) | Parallel processor, parallel processing method, and storing medium | |
US20130247058A1 (en) | System for scheduling the execution of tasks based on logical time vectors | |
EP0614139A2 (en) | External procedure call for distributed processing environment | |
JP3540796B2 (ja) | 演算システム | |
US9021239B2 (en) | Implementation of multi-tasking on a digital signal processor with a hardware stack | |
US20070136564A1 (en) | Method and apparatus to save and restore context using scan cells | |
JP2021509510A (ja) | リアルタイムタスクスイッチに適合したフレキシブルロジックユニット | |
CN116088940A (zh) | 硬件加速系统、控制方法、芯片及电子设备 | |
JP2005322240A (ja) | インデックス付きレジスタアクセス用の方法および装置 | |
US7107478B2 (en) | Data processing system having a Cartesian Controller | |
US6687803B1 (en) | Processor architecture and a method of processing | |
JPS62159236A (ja) | 論理型言語処理装置 | |
JPH04264632A (ja) | 並列演算処理装置の実行トレース方式 | |
JPH0581047A (ja) | テストプログラム実行制御処理方式 | |
JPH01234938A (ja) | 論理型情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040224 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040412 |
|
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: 20040506 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040528 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |