JPWO2005098612A1 - 重要成分優先計算方式ならびに装置 - Google Patents

重要成分優先計算方式ならびに装置 Download PDF

Info

Publication number
JPWO2005098612A1
JPWO2005098612A1 JP2006511939A JP2006511939A JPWO2005098612A1 JP WO2005098612 A1 JPWO2005098612 A1 JP WO2005098612A1 JP 2006511939 A JP2006511939 A JP 2006511939A JP 2006511939 A JP2006511939 A JP 2006511939A JP WO2005098612 A1 JPWO2005098612 A1 JP WO2005098612A1
Authority
JP
Japan
Prior art keywords
data
component
importance
important
arithmetic processing
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
JP2006511939A
Other languages
English (en)
Other versions
JP4310500B2 (ja
Inventor
藤田 修
修 藤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of JPWO2005098612A1 publication Critical patent/JPWO2005098612A1/ja
Application granted granted Critical
Publication of JP4310500B2 publication Critical patent/JP4310500B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

従来、物理現象や社会現象など多数の成分からなるシステムのシミュレーションを行なう場合、成分数が増加すると膨大な計算時間を要するという問題があった。この問題を解決するため、本発明は、シミュレーション計算において重要度の高い成分を選び出す重要成分選択装置を設け、それが示す重要度の高い成分から優先的に演算処理装置で計算処理を行い、更新された成分の重要度をすぐに再評価してその後の計算に反映させる。高速性が要求される場合には重要成分の順位付け計算をハードウェアで実現する。また、記憶装置において複数個の成分データの一つ一つに対して複数個の候補値データを保持し、演算処理装置において候補値を一つ一つ更新する際に、候補値のばらつきの大きさをその成分データの重要度とみなして、この値の大きい成分の計算を優先することにより、変化の少ない成分の計算を省略してシミュレーションの高速化を図ることもできる。

Description

高速なディジタル計算によるシミュレーション、特に、主として局所的相互作用が重要となる物理モデル、ネットワーク上の信号伝搬、高分子の立体構造予測などを対象とした高速シミュレーションを低コストで効率よく実行するための装置に関するものである。
従来、物理現象や社会現象など多数の成分からなるシステムのシミュレーションにおいては、システムの時間変化やエネルギー最小化、自己矛盾性の緩和などを計算するために、すべての成分の状態値とそれに関する条件式や状態遷移式を順番に逐一計算し、それを何度も繰り返して、状態値を少しずつ更新することにより、正しい数値を求めることを行なっていた。そのため、全成分数のべき乗に比例する程の計算時間を要し、成分数が膨大になると計算時間がかかり過ぎて結果を得る事が困難になるという欠点があった。
特に、物理系の時間変化のシミュレーションの場合には、一つの時刻における全ての状態値を決めるためだけでも、エネルギー最小化や自己矛盾性の緩和計算が要求され、各状態値の修正計算を何度も繰り返して行なう必要があった。そのような計算を各時刻毎に繰り返し計算するため、膨大な計算時間を要した。全ての成分が大きく変動するようなシステムであったり、非常に精密な計算結果を得るためのものである場合など、どうしてもそれだけの計算時間が必要となることもあるが、そうではない場合においてさえも、従来の計算方式ではいつも同じ程度の計算時間を要するという欠点があった。
探索や最適化問題の計算機による解法においては、分枝限定法のように、成分の全てを順番に計算せずに、計算の優先順位を表す成分リストを設けて、このリストに従って計算を進める手法がある。しかし、この手法は正確な演算を目指したもので、成分データの計算過程と優先順位リストの更新はソフトウェアのアルゴリズムとして逐次的に処理されるため、リストの更新に時間がかかり、その分、全体の処理時間も長くなるという欠点があった。また、このようなソフト的な工夫を前述の物理シミュレーションのように各成分の演算処理が比較的単純な場合に適用しようとすると、各成分の演算処理コストに比べて優先順位の計算にかかるコストの比率が大きく、計算効率があまり改善されないという欠点があった。なお、並列計算の仕組みとしては、例えば特許文献1の並列計算機システムのように、複数の演算装置の処理内容を制御するためにスケジューラ計算機を設ける発明がなされているが、負荷分散のための発明であるため、シミュレーション計算の各成分の計算を細かく振り分ける処理には適用できない。また、特許文献2のソート装置のように、データの整列をハードウェアで高速に行う装置がすでに発明されているが、各データを重要度によって再整列する仕組みがなく、本発明の目的では使用できない。
特開平11−3321号公報 特開平11−305993号公報
例えば、実際の物理現象や社会現象などでは、ある時刻においてほんの一部の成分のみが変化し、それ以外の大多数の成分はほとんど変化しない場合がある。また、もともとシステム内外のノイズが大きい場合や、外部条件が種々雑多で統計的、確率的に取り扱うべき場合など、もともとの数値データの精度が低いものに対して必要以上に精密な計算をすることが無意味な場合もある。このような場合、従来技術の計算処理においては最終結果にあまり影響を与えないような無駄な計算の繰り返しが多く含まれていた。本発明はこのような無駄な計算を省き、シミュレーション計算を低コストで効率よく行なうためのものである。
本発明では計算の重要度の高い成分を選択し、重要度の高い成分から優先的に計算を行い、計算対象となった成分の重要度を再評価して、その結果をその後の重要成分の選択に反映させる。重要度の低い成分に対する計算は後回しにするか、または一定の基準で無視することにより、できるだけ早く効率よく概算結果を獲得し、その後は必要に応じて時間をかけて計算精度を向上させる。
そのため、各成分の値の計算以外に各成分の重要度を計算する過程を加え、それを処理するための専用装置として重要成分選択装置を設け、その装置によって各成分をその重要度に応じて順位付ける。また、各成分の状態値の計算においては重要成分選択装置の指示する最重要成分を優先して計算処理を行なう。各成分の状態値の計算を独立に行なってもよいとする計算モデルに対しては、一つの共有メモリにアクセスできる複数個の演算処理装置を設け、演算処理を同時並列化し、さらなる高速化を実現する。なお、演算処理装置と重要成分選択装置とはそれぞれ同時並列に動けるようにしておく。演算処理装置は一つの成分に関する処理が終わるとすぐに次の重要成分を読み出してその処理を実行するようにしておく。重要成分選択装置もその内部処理は独立に動作できるようにしておく。応用事例によっては、一つの成分のみが連続して最重要成分となってその計算処理が繰り返されることを防ぐために、重要度の更新において一定の時間遅れを設定したり、可変に調整できるようにしておく。
重要成分選択装置において最高速の処理を要求される計算モデルに対しては、重要成分の順位付け計算をハードウェアで実現する。具体的には、データの重要度を表す重要度データ部とそれがどのデータのものであるかを指し示す成分識別子を保持するレジスタを設け、それを複数個、上位から下位へ順番に並べる。各レジスタは隣接レジスタ同士でデータをシフトできるようにしておく。また、各レジスタに付属する比較器を置き、各レジスタのデータと入力データを同時に比較して、その結果に従って入力データを重要度の順位を満たす位置に挿入する。ただし、入力データの成分識別子と同じものがすでに記憶されている場合には、入力データの重要度の方が記憶されているものより大きい場合のみ挿入され、重要度の値が低いデータは削除する。初期値として整列した状態に設定しておけば、その後に順次入力されるデータは常に重要度の順位に整列して保持される。また、同じ成分識別子のデータが2個以上記憶される事はない。このハードウェアを使えば、入力データの挿入動作と出力動作を1マシンサイクルで同時に処理できるので、重要度によるデータの整列を高速に実行することができる。
重要成分選択装置において、重要度の高いデータは次々に出力されて処理され、重要度の低いデータは最下位レベルの方向へ押し出されていくが、重要度が中程度のデータが長い期間残留し、なかなか演算対象にならない場合が出てくる。そのような古いデータの残留を防ぐ必要がある場合には、各レジスタの重要度データに対する演算処理を施すことができる演算器を設ける。この演算器を利用して各データに対して定期的に一定値を加算またはビットシフトや乗算することにより、各データの順序関係を壊さないように重要度データを大きな値に書き換えると、古いデータの重要度が増して演算処理がなされるように調整できる。逆に重要度データを定期的に小さな値に書き換えることにより、古いデータをできるだけ早く消去するように調整することもできる。
変化の少ない成分に関する無駄な演算処理を省略するため、記憶装置において複数個の成分データの一つ一つに対して複数個の候補値データを保持するものとする。演算処理装置ではその複数個の候補値の統計量を代表値として成分データの値とみなし、各成分データについて計算処理を行ってその更新値を算出し、その更新値と最も大きく異なる候補値をその更新値で置き換える。この場合の統計量としては平均値や中央値などを用いる。そして、重要成分選択装置では候補値のばらつきの大きさをその成分データの重要度とみなして、候補値のばらつきの大きさの順位で重要成分を選択する。候補値のばらつきを重要度とみなす理由は、そのことによりシミュレーションにおいて成分データの値が十分に収束していない状況や時間変化が大きい状況を表すことができ、変動の少ない成分データよりも変動の大きい成分データの計算処理を優先させることができるためである。これにより、計算の最終結果に対して影響の少ない計算過程を省略することができ、より高速に概算結果を得ることが可能になる。
なお、一部の成分のみが重要度が高くなり、それらの計算処理に偏る可能性がある場合には、他の成分が大きな重要度をもつように調節する機能を入れておく。例えば、演算処理のプログラムの一部に、乱数によって選ばれた成分に大きな重要度を与えて重要成分選択装置に送る処理を加える方法、一定時間ごとに全成分を計算する処理を割り込ませる方法などを加えてソフトウェアで調整する。あるいは、重要成分選択装置において重要度をすべて一斉に最大値にセットし、そこに記憶されている成分の全てを順番に計算処理する方法などを用いる。
シミュレーションの対象となる物理現象や社会現象において、ノイズが大きいとか初期値依存性が小さいなど、高精度の演算を必要としない場合に、重要度の高い計算を優先して、無駄な計算を無視または後回しにすることにより、少ない計算資源で効率良く概算結果を得ることができ、計算時間が短縮され、計算コストが削減されるという効果がある。
本発明の第1の実施形態を示す基本ブロック構成図 第1の実施形態の動作の概要説明図 本発明の第2の実施形態を示す基本ブロック構成図 第2の実施形態の動作の概要説明図 本発明の第3の実施形態を示す基本ブロック構成図 第3の実施形態のためのデータ記憶装置の一例を示すブロック回路図 本発明の第4の実施形態である重要成分選択装置用ハードウェアの基本ブロック構成図 第4の実施形態の基本回路構成の具体例を示すブロック回路図 第4の実施形態の比較器の一例を示すブロック回路図 第4の実施形態のバイパス配線用比較器の一例を示すブロック回路図 第4の実施形態のバイパス配線の具体例による説明図 第4の実施形態のバイパス配線方法の一例に関する説明図 第4の実施形態のセレクタ・演算処理器の一例を示すブロック回路図 第4の実施形態のセレクタ・演算処理器の制御信号と出力の関係表 第4の実施形態のPUSHの動作例を示す説明図 第4の実施形態のPOPの動作例1を示す説明図 第4の実施形態のPOPの動作例2を示す説明図 成分データの記憶と演算処理方法に関する本発明の第5の実施形態図 成分データの記憶と演算処理方法に関する本発明の第6の実施形態図 第6の実施形態における成分データと処理事項の関係の説明図
符号の説明
11,21,31,41,51,61 データ記憶装置
12,22,32,42,52,62 演算処理装置
13,23,33,43,53,63 重要成分選択装置
34 メモリ入出力制御回路
35 データ転送制御回路
36 FIFOバッファレジスタ
37 後書き込み制御回路
38 記憶素子
39 データセレクタ
410 レジスタ
420 データ整列制御回路
421 比較器
422 セレクタ・演算処理器
423 大小比較器
424 一致比較器
425 データセレクタ
426 演算処理器
427 出力セレクタ
以下、本発明の実施の形態を図1〜図20に基づいて説明する。
本発明の装置の第一の実施形態の基本ブロック構成図を図1に示す。また、各ブロックの動作の概要を図2に示す。本装置は主としてデータ記憶装置11と演算処理装置12と重要成分選択装置13とで構成される。データ記憶装置11は成分1から成分Nまでの N個のデータを記憶する。演算処理装置12は各成分に対応した処理内容を実行する。処理内容はプログラムで設定する。重要成分選択装置13は、各成分の重要度とそれが1からNまでのどの成分のものかを表す成分識別子を記憶し、その中で最も重要度の高い成分を選択する機能を有する。重要成分選択装置13に一つの成分の重要度と成分識別子が入力されると、その度に、重要度の大きさの順序に重要度と成分識別子を整列させる。この場合の処理は、一つの成分が入力される時にはその前にすでに入力された成分は整列している状態なので、重要度の大小関係を満たす位置を探してそこに挿入する処理となる。なお、この実施形態においては、成分識別子として成分番号を用いている。
本装置を動作させるには、まず各成分データに初期値を設定し、演算処理装置12は初期化ルーチンを実行する。初期化ルーチンとしては全成分に関する演算を順番に逐次実行する方法、一部成分についてランダムに演算を実行する方法などにより、演算に必要な成分の値をデータ記憶装置11から読み出し、各成分に関する演算処理を実行して、成分の更新値を求める。また、各成分の重要度を計算し、重要成分選択装置13に各成分の重要度と成分識別子(成分番号)を入力する。そして、各成分の更新値をデータ記憶装置11に記憶させる。
初期化ルーチンの代わりに、重要成分選択装置13のM個のレジスタに各成分に対応する成分識別子と重要度データを初期値として代入しておいてもよい。それらの重要度全てに最大値を設定しておけば、初期値として設定した成分すべてが優先され、それらが成分識別子(成分番号)の並び順に従って順番に演算処理される。
初期化処理後の主要な実行処理内容の概要を図2に示す。演算処理装置12はまず重要成分選択装置13から重要度が最大の成分識別子(成分番号)を読出す。その成分番号をiとすると、次に演算処理装置12は成分iをデータ記憶装置11から読み出し、成分iに関する処理を実行する。具体的処理内容は応用目的に応じて演算処理装置12のソフトウェアとして最適なプログラムを組むことを可能としておく。この処理において、成分iのみならず、その他の一つ以上の成分、例えば成分jについても更新することができるものとし、更新する成分についてはその成分の重要度を計算する。この後、更新する成分に関して、その重要度と成分番号を重要成分選択装置13に送出し、成分の更新値をデータ記憶装置11に送出する。この一連の処理が終わると、直ちに重要成分選択装置13から最重要成分を読み出して同様の処理を繰り返す。演算処理装置12はこのープ処理をプログラムで設定された終了条件に達するまで続ける。
重要成分選択装置13は演算処理装置12によって最重要度の成分識別子(成分番号)が読み出されると、そのデータを削除し、その他の成分識別子の順位をそれぞれ一つ上げる。演算処理装置12から重要度と成分番号の一組の入力データが入力されると、その度毎に重要度の順序に従うように整列させる。整列の順位がk番目のデータの重要度の値をP(k)で表すと、整列によりP(k)≧P(k+1)となっているので、入力データの重要度をPinとすると、P(k)≧Pin>P(k+1)となるk番目の位置を探し、k+1番目以降のデータのすべてについて順位を一つ下げて、入力データをk+1番目におく。最下位のM番目にあったデータは捨てられる。ただし、もし記憶データの中に入力データの成分識別子と同じ成分識別子をもつデータがある場合は、両者の重要度を比較して、入力データの重要度の方が小さいときには挿入はしない。逆に入力データの重要度の方が大きいときには上述のように挿入し、記憶されていた方のデータは削除する。この入れ替えのため、記憶されていたデータよりも重要度の低いデータの順位は変わらない。
第2の実施形態を図3に、その主要な動作概要を図4に示す。第1の実施形態と異なる点は、データ記憶装置21に成分データとともに各成分データが選択されたときに実行すべき処理事項を記憶させ、演算装置22においてその情報を利用して実行処理内容を制御するようにしておく点である。こうすることにより、成分データの内容に応じて処理事項を適宜変更する必要がある場合に、効率良く演算処理が出来る。処理事項として記憶すべきデータは、例えば、同時に計算処理すべき他の成分データの識別子のリストであるとか、その成分が属するクラスの名称または識別子などである。
第3の実施形態を図5に示す。重要成分選択装置33、演算処理装置32、データ記憶装置31についてそれぞれ複数個を並列化して、各装置が同時並行してそれぞれの処理を実行することで、全体の演算処理を高速化する。複数個の演算処理装置32と複数個の重要成分選択装置33との間のデータ転送はデータ転送制御回路35によって制御する。また、複数個の演算処理装置32と複数個のデータ記憶装置31との間のデータ転送もメモリ入出力制御回路34によって制御する。なお、演算処理装置32を複数個にし、それぞれが、一つの共通の重要成分選択装置に時分割でアクセスするようにしてもよい。
データ転送制御回路35の制御の方法としては様々な方法が適用可能である。例えば、データ転送制御回路35にスイッチングマトリクスを利用し、任意の演算処理装置32から任意の重要成分選択装置33へデータ転送できるようにしておき、その接続の対応関係を適宜変更可能なようにしておく。ただし、演算処理装置32から重要成分選択装置33へデータ転送する場合のみ接続の組み合わせを替え、重要成分装置33から演算処理装置32へのデータ転送では常に同じ組み合わせの接続に固定しておいてもよい。逆に、演算処理装置32から重要成分選択装置33へのデータ転送の接続組み合わせを固定し、重要成分装置33から演算処理装置32へのデータ転送の接続の組み合わせを変化させてもよい。また、一つの重要成分装置33への入力データが同時に多数集中する可能性がある場合には、各演算処理装置側にFIFOバッファレジスタを設置して、演算処理装置32に無駄な待ち時間が生じないようにする。
メモリ入出力制御回路34の制御は分散共有メモリのための入出力に関する従来技術を使用する。さらに、データの読出し効率を上げる場合には記憶装置のデータ出力をマルチポートにして異なる複数のデータを同時に出力できるように並列化する。このためのデータ記憶装置34の実施形態を図6に示す。複数個の記憶素子38のデータを複数個のデータセレクタ39で同時並列に読み出せるようになっている。この場合、書込みデータは一時的にFIFOバッファレジスタ36に保存し、その後書き込み制御回路37によって順番に記憶素子38に書込みを行なう。複数の演算処理装置から書込みデータが同時に多数集中する可能性がある場合には、さらに各演算処理装置側にFIFOバッファレジスタを設置して、演算処理装置に無駄な待ち時間が生じないようにする。
重要成分選択装置をハードウェアで実現する場合の第4の実施形態における重要成分選択装置の基本ブロック構成図を図7に示す。この装置はデータ整列制御回路420とn個のデータを保持するn個のレジスタ410とからなる。各レジスタ410のデータをR(1)、R(2)、・・・R(n)と表すと、データ整列制御回路420はデータに含まれる重要度が最も高いデータをR(1)に、次に高いデータをR(2)に、というように大小の順番に従って、データを整列してレジスタに保持する。入力データがある場合はデータ整列制御回路420に制御信号としてPUSHを入力する。入力データをDinと表すと、入力データDinの重要度PinがR(n)の重要度P(n)より高ければ、適切なレジスタに入力データを挿入して、全体の大小の順序関係を保つようにレジスタのデータを並べ替える。また、出力からはR(1)のデータを読み出すことができる。読出しの場合にはデータ整列制御回路420に制御信号としてPOPを入力する。すると、各データは順位を一つ上げ、R(k+1)はR(k)へとシフトする。ただし、R(n)に対しては重要度が最低の値、たとえば、全ビットに0を入力する。なお、番号が小さい程、重要度が高いので、番号が小さい方のレジスタを上位のレジスタ、番号が大きい方のレジスタを下位のレジスタとみなす。
データ整列制御回路420の詳細な構造を説明するため、n=4の場合の例を図8に示す。各レジスタ410に対応して比較器421とセレクタ・演算処理器422を備えている。制御信号は各回路ブロックを制御するレジスタ制御信号と比較制御信号と選択・演算制御信号とからなる。レジスタ制御信号はレジスタのデータ取り込みを制御する。レジスタkに対応する比較器kは入力データDinとレジスタkのデータR(k)を比較して、その結果を出力する。セレクタ・演算処理器kはレジスタkに保存すべきデータとして入力データDin、レジスタのデータR(k‐1),R(k),R(k+1)の4つのいずれかを選択して出力することができる。どのデータを選択するかは比較器k、(k−1)、(k+1)の比較出力によって制御される。また、セレクタ・演算処理器kはR(k)のデータに対して加減乗除、ビットシフト等の演算処理を施した値を出力する。
比較器421のさらに詳細な構成を図9に示す。入力データならびにレジスタに保持されるデータは重要度と成分識別子を含む。比較制御信号はデータに含まれる重要度と成分識別子の部分を抽出するための情報としてそれぞれのビット構成を設定するマスクデータを含み、大小比較および一致比較すべきデータを制御する。大小比較器423では入力データDinの重要度Pinとレジスタkのデータの重要度P(k)を比較して、入力データの方が大きい場合、すなわちPin>P(k)のときにG(k)=1を出力し、それ以外の場合にはG(k)=0を出力する。一致比較器424は入力データの成分識別子とレジスタkのデータの成分識別子を比較して、両方が一致する場合にS(k)=1を出力し、それ以外の場合にはS(k)=0を出力する。また、上位の比較器のうち一つでもS(k)=1となる場合はLS(k)=1を出力し、それ以外の場合はLS(k)=0を出力する。そのため、S(k)=1の出力を下位の比較器すべてに伝達する回路が設けられている。すなわち、比較器(k−1)の出力SD(k−1)を比較器kの入力SU(k)に入力し、その信号をLS(k)として出力するとともに、SU(k)とS(k)の論理和をSD(k)に出力して、下位の比較器(k+1)のSU(k+1)に接続する。
レジスタ数が多い場合は、LS(k)出力の下位比較器への伝播に時間がかかり、処理速度を低下させる原因になることがあるので、伝播時間を短縮するため、信号の伝播回路にバイパスを設ける。バイパス回路を使用する場合の実施形態を図10に示す。3入力ORの入力の一つには入力端子B(k)を接続する。入力端子B(k)には(k−1)よりも上位の比較器hの出力SD(h)を接続する。ORの入力数を4以上にしてさらに上位の比較器と接続してもよい。
図11はレジスタ数が19個の場合に3入力のORを利用したバイパス配線の実施形態を示す。LS(2)からLS(19)までの出力を生成するために論理素子ORがOR(1)からOR(18)まで18個使用されている。ただし、最上位の比較器には上位からの入力はなく、OR(1)の入力S(0)は常に0に固定する。従って、OR(1)を省略してS(1)を直接OR(2)とLS(2)に接続しても良い。バイパス配線については、全部のORをほぼ3等分して、上位から約2/3の位置にあるOR(13)を3入力とし、この一つの入力に上位から約1/3の位置にあるOR(6)の出力をバイパス配線として接続する。これにより、入力Sから出力LSまでの最長論理段数は18から12へと短縮される。更に最長論理段数を低減するためには、OR(1)からOR(6)までをブロックB(1,1)、OR(7)からOR(12)までをブロックB(1,2)、OR(14)からOR(18)までをブロックB(1,3)とし、各ブロック内でバイパス配線を行なう。各ブロックを上位と下位のほぼ同規模のサブブロックに分け、ブロックの最下位と中間のORを3入力としてそれぞれのすぐ上位のサブブロックをバイパスする配線を設ける。例えば、ブロックB(1,2)の場合、サブブロックB(2,3)とB(2,4)に分け、OR(9)とOR(12)を3入力としてそれぞれにOR(6)の出力とOR(9)の出力を接続する。ただし、最上位のサブブロックB(2,1)と最下位のサブブロックB(2,6)に対してはバイパス配線を設ける効果はほとんどないので省略している。サブブロックのバイパス配線を追加した結果、最長論理段数は8に改善される。
レジスタ数が更に多い場合には図12に示すようにサブブロックB(i、j)内をさらにほぼ2等分してサブブロックB(i+1,2j−1)とB(i+1,2j)に分け、それぞれのバイパス線を設けることによりサブブロック内の最長論理段数は約半分に短縮される。この方法を一般的に適用して、最小のサブブロック内の論理段数をすべてNb、サブブロックの階層数(すなわちバイパス線の階層数)をMhとすると、バイパス線の総本数が 3(2Mh−1)−2Mh で、最長論理段数が 2Nb+3Mh−2 で、レジスタ数が 3Nb2(Mh−1)+3(2Mh−1)−Mh となる回路を構成する事が出来る。なお、図11の場合はNb=2、Mh=2であり、バイパス線の総数は5、最長論理段数は8、レジスタ数は19である。
レジスタkに対応するセレクタ・演算処理器kの詳細な構造を図13に示す。レジスタkに入力するデータを選択するデータセレクタ425とレジスタkのデータR(k)に演算処理を施してその結果を出力する演算処理器426とデータセレクタ425の出力と演算処理器426の出力のどちらかを選択する出力セレクタ427から構成されている。データセレクタ425は入力データDin、レジスタのデータR(k-1)、R(k)、R(k+1)の4つのいずれかを選択して出力する。選択・演算制御信号は出力セレクタ427の選択制御を行うとともに、加数、ビットシフト数などの演算パラメータを含み、演算処理も制御する。制御信号はデータを入力処理するPUSH、データを出力処理するPOP、加算処理をするADD、MSB方向へのビットシフトSFTL、LSB方向へのビットシフトSFTRの5種類の動作を制御する。
セレクタ・演算処理器kの制御信号とセレクタ・演算処理出力の関係を図14に表形式で示す。詳細条件として重要度と同一成分順位に関する条件により出力は異なる。各条件は比較器出力の組み合わせ論理で表される。ただし、記号*は無条件または論理値としてのドントケアを表す。Ksは入力データDinと同じ成分識別子のデータがレジスタに記録されている場合のレジスタ番号を表す。すなわちS(Ks)=1である。入力データと同じ成分識別子のデータがレジスタに記録されていない場合はすべてのkにおいてS(k)=0で、LS(n)=0となるので、便宜上、Ks=n+1とみなしてよい。
PUSHの場合、レジスタkのデータR(k)の重要度の値P(k)よりも入力データDinの重要度の値Pinが以上となる条件、すなわち、P(k)≧Pinの場合はR(k)を変更する必要がないので、セレクタ・演算処理出力はR(k)となる。この条件は比較器出力G(k)=0のみで表され、他の比較器出力には依存せず、G(k−1)=*、G(k+1)=*、S(k)=*、LS(k)=*である。条件がP(K−1)≧Pin>P(k)かつk≦KsというのはDinの挿入位置の条件である。すなわち、G(k−1)=0、G(k)=1、G(k+1)=*、S(k)=*、LS(k)=0で表され、このkに対してセレクタ・演算処理出力はDinとなる。条件がPin>P(k−1)≧P(k)かつk≦KsというのはDinよりも重要度が低いデータで、かつ、P(k)≧P(Ks)なので、Dinの挿入により順位が一つ下がるR(k)を意味しており、G(k−1)=1、G(k)=1、G(k+1)=*、S(k)=*、LS(k)=0の条件で、一つ上の順位のR(k−1)をR(k)に代入するため、セレクタ・演算処理出力はR(k−1)となる。また、k>Ksの場合はDinを挿入してもR(Ks)が削除されるので順位が変わらない条件を表す。Dinが挿入されない場合も順位は変わらないので、これは重要度の値によらず、G(k−1)=*、G(k)=*、G(k+1)=*、S(k)=*、LS(k)=1の条件でセレクタ・演算処理出力はR(k)となる。
POPの場合、P(k)≧P(k+1)≧Pin、すなわち、G(k−1)=*、G(k)=0、G(k+1)=0、S(k)=*、LS(k)=*の条件においてR(k+1)は入力データの影響を受けないので、R(1)の読出し後に順位が一つ上がり、R(k+1)はR(k)に移動する。すなわち、R(k)には一つ下位のR(k+1)が代入されるので、セレクタ・演算処理出力はR(k+1)となる。P(k)≧Pin>P(k+1)かつk<Ks、すなわち、G(k−1)=*、G(k)=0、G(k+1)=1、S(k)=0、LS(k)=0の条件はDinを挿入する条件でセレクタ・演算処理出力はDinとなる。Pin>P(k)かつk<Ks、すなわち、G(k−1)=*、G(k)=1、G(k+1)=*、S(k)=0、LS(k)=0の条件はR(1)を読出してもDinが挿入されるので順位が変わらないことを表す条件で、セレクタ・演算処理出力はR(k)となる。最後に、k=KsすなわちS(k)=1またはk>KsすなわちLS(k)=1の条件は他の条件によらず、この位置のkでは上位においてDinの挿入があったとしても上位のR(Ks)が削除されるので、Dinの挿入の有無にかかわらず、R(1)の読出し後に下位の順位を一つ上げるため、セレクタ・演算処理出力はR(k+1)となる。
演算処理はR(k)に含まれる重要度P(k)に対して施される。ADDは選択・演算制御信号に含まれる演算パラメータaをP(k)に加算する。SFTLはaビットだけMSB方向にビットシフトする。SFTRはaビットだけLSB方向にビットシフトする。これらの処理により、重要度P(k)の値を変化させ、記憶されたデータが出力される可能性を高めたり、あるいは逆に削除される可能性を高めることにより、古いデータが長時間にわたってレジスタに留まることを防止することができる。
次に、図7の重要成分選択装置の動作について以下に説明する。最初に全レジスタに一定値を記憶させ、新しいデータが入力されると、その入力データの重要度データと各レジスタの記憶データの重要度データとを即時に比較し、重要度データ部の値が入力データより大きいかまたは等しいレジスタの記憶データはそのままの状態とし、重要度データ部の値が入力データより小さいレジスタの記憶データはすべて下位方向へシフトさせ、記憶データが入力データより大きいレジスタ群と小さいレジスタ群との間に一つ空いたレジスタに入力データを挿入する。ただし、入力データの成分識別子と同じデータがレジスタに記憶されている場合にはこのレジスタに保持されている重要度が入力データの重要度より大きい場合には挿入されない。逆に入力データの重要度より小さい場合にはこのレジスタのデータを削除し、入力データを適切な位置に挿入する。同じ成分識別子のデータが重複して記憶されることはない。このようにして順次入力データを追加していくと、上位から下位へ重要度の高いものから低いデータへと整列して保持される。重要度が最高のデータは上位のレジスタから読み出され、その際、全レジスタを上位方向に一つシフトして、次に重要なデータを出力できるように準備する。入力データの挿入動作と出力動作を1マシンサイクルで同時に処理できるので、重要度によるデータの整列を高速に実行することができる。
このような場合の動作の具体例を図15、16、17に示す。いずれも図14の規則に従う。図15はPUSHの場合で、入力データDin(Pin=60)をP(3)=60とP(4)=33の間に挿入するため、DinはR(4)に代入され、R(4)、R(5)はそれぞれR(5)、R(6)に移動する。R(6)の成分識別子555は入力データの成分識別子と同じで、重要度がPin=15と低いので、R(6)は削除される。R(7)、R(8)は変化しない。図16は同じ入力データがあるときのPOPの場合で、R(1)が読出された後に重要度が60以上のR(2)、R(3)はそれぞれ順位を一つ上げる。R(4)の重要度Pin=30は入力データより低いので、DinがR(3)に挿入され、R(4)の順位は変化しない。R(5)も変化しない。R(6)は入力データの成分識別子と同じで重要度が低いので削除されるため、下位のR(7)、R(8)がそれぞれR(6)、R(7)に移動する。最下位のR(8)はデータがクリアされる。これは重要度が最小値0で、成分識別子がNULLであることに相当する。図17はPOPの場合であるが、入力データの重要度がPin=7で、同じ成分識別子555を記憶するR(6)の重要度P(6)=15より低いので入力データが挿入される事はなく、R(1)の読み出し直後に全てのレジスタのデータが順位を一つ上げる。すなわち、k>1についてR(k)はR(k−1)に移動し、R(8)はクリアされる。
図18は変化の少ない成分に関する無駄な演算処理を省略するための成分データの表現方式に関する説明図で、本発明の第5の実施形態を示す。データ記憶装置51において、1つの成分に対して複数個の候補値データを保持しておく。例えば、i番目の成分y(i)の候補値としてx(i,1),x(i,2),...x(i,m)のm個を保持する。演算処理装置52では、この複数の候補値の代表値をy(i)とみなして演算処理を行なう。代表値としてはx(i,1),x(i,2),...x(i,m)の統計量として、例えば、平均値、中央値などを用いる。演算処理はプログラムによって制御される。この演算処理の結果、y(i)の更新値としてz(i)が得られると、候補値の中で更新値z(i)からもっとも距離の遠い候補値を更新値z(i)で置き換える。なお、更新された値を使って、再度代表値y(i)を計算しなおし、これをデータ記憶装置51に記憶しておけば、次回の計算ですぐに利用できるので、計算効率が良くなる場合がある。
各成分の重要度としては、x(i,1),x(i,2),...x(i,m)のばらつきの大きさを△x(i)と表し、これを成分iの重要度とみなす。ばらつきの大きさとしては、例えば、候補値x(i,1),x(i,2),...x(i,m)の最大値と最小値の差の絶対値max{|x(i,u)−x(i,v)|}や標準偏差などを用いる。成分データの候補値のばらつきが大きい成分は、演算処理による更新値の変動が大きい事を意味しており、シミュレーションなどにおいては成分データの値が十分に収束していない状況や時間変化が大きい状況を表している。ばらつきの大きさを重要度とみなす事により、変動の少ない成分データよりも変動の大きい成分データの計算処理を優先させて演算処理を進める事になる。これにより、変化の少ない計算過程を省略することができ、より高速に概算結果を得ることが可能になる。
重要成分選択装置53で△x(i)が最も大きいとして成分iが出力されると、演算処理装置52はプログラムに従ってi成分に関する演算処理を実行するが、必要に応じてプログラムによりi成分と関連性の深い他の成分についても演算処理を行い、これを更新する。他の成分として例えばh成分も演算処理すると、更新の結果としてi成分とh成分の候補値を更新するとともに、演算処理装置52はi成分の重要度とh成分の重要度を重要成分選択装置53に送る。演算処理装置は、一つの演算処理ループを終了すると、直ちに重要成分選択装置53からその時点の最重要成分の出力を読み出して、次のループ処理に入る。もし重要成分選択装置53の処理時間に遅れがあったとしても、それを待たずに実行できるようにしておく。
図19は成分データの表現方式に関する説明図で、本発明の第6の実施形態を示す。成分iの値の変化に伴って、成分iに関して演算処理すべき内容が変化する場合に、各成分に付属する情報として処理事項の情報を各成分毎にデータ記憶装置61に保持しておく。図19においては、処理事項をa、b、cなどで表している。具体的には、例えば、成分iの処理事項hは成分識別子hを表しており、成分iに関する演算処理において参照する必要のある他の成分識別子である。この処理で成分hの値を更新してもよい。あるいは、成分2の処理事項dを成分2が属するクラスの名称または識別子名としてもよい。クラスに属している成分全てを同時に演算処理する必要があるときなどに用いる事が出来る。
応用例として、多粒子系の物理学的シミュレーションの場合を以下に説明する。ある一つの粒子の位置座標を一つの成分として表し、各粒子に働く相互作用がある一定距離以内の粒子のみに働く物理系とする。粒子が運動する空間を複数の領域に分割し、各領域をそれぞれ一つのクラスとする。例えば、空間が一次元の場合、図20に示すように、長さLの等間隔の5つの領域に分割し、各領域に位置する粒子をそれぞれクラスC(1)、C(2), ...C(5)に属するとする。C(j)の境界位置をb(j)、b(j+1)とし、粒子の位置座標がY(i)で表されるとすると、b(j)≦Y(i)<b(j+1)ならば粒子が属するクラスはi∈C(j)ということになり、一意に決定されるので、各クラスの所属粒子に関する情報は容易に決定でる。また、位置座標の更新により所属粒子を変更する事も容易である。この情報を記憶しておけば、あるクラスにどのような粒子が所属しているかがすぐにわかる。そこで成分iの処理事項として所属クラスC(j)を記憶しておく。もし、相互作用が及ぶ距離がLであるとすると、自分が属するクラスと隣り合うクラス以外のクラスに属する粒子との相互作用を計算する必要はなく、隣り合うクラスに属する粒子のみを考慮して計算すればよい。従って、最重要成分として成分iが演算処理される場合には、3つのクラスC(j−1)、C(j)、C(j+1)に属する成分のみを対象として計算すればよい。このことは三次元空間の場合にも拡張できる。その場合、粒子の三次元座標を表す三次元ベクトルを一つの成分とみなして処理する。
本発明を利用する計算処理問題としては以下の事例が考えられる。多数のパラメータを含むエネルギー関数を最小化するような最適化問題において準最適解を求める問題の数値解法。熱揺らぎのある溶媒中におけるタンパク質の一次構造から立体構造が形成されるフォールディングのシミュレーション。確率的変動のある大規模ネットワーク上の部分的信号伝搬のシミュレーション。以上のように、確率的な変動があっても、状態値が急激に発散することなく、最終的にある収束状態の付近に落ち着く傾向のあるシステムのシミュレーションを行なう場合に、効率良く、低コストで結果を得ることが出来る。

【0002】
次的に処理されるため、リストの更新に時間がかかり、その分、全体の処理時間も長くなるという欠点があった。また、このようなソフト的な工夫を前述の物理シミュレーションのように各成分の演算処理が比較的単純な場合に適用しようとすると、各成分の演算処理コストに比べて優先順位の計算にかかるコストの比率が大きく、計算効率があまり改善されないという欠点があった。なお、本発明の類似技術分野においては、例えば特許文献1の並列計算機システムのように、複数の演算装置の処理内容を制御するためにスケジューラ計算機を設ける発明がなされているが、負荷分散のための発明であるため、シミュレーション計算の各成分の計算を細かく振り分ける処理には適用できない。また、特許文献2のソート装置のように、データの整列をハードウェアで高速に行う装置がすでに発明されているが、各データを重要度によって再整列する仕組みがなく、本発明の目的では使用できない。
【特許文献1】特開平11−3321号公報
【特許文献2】特開平11−305993号公報
【発明の開示】
【発明が解決しようとする課題】
[0005] 例えば、実際の物理現象や社会現象などでは、ある時刻においてほんの一部の成分のみが変化し、それ以外の大多数の成分はほとんど変化しない場合がある。また、もともとシステム内外のノイズが大きい場合や、外部条件が種々雑多で統計的、確率的に取り扱うべき場合など、もともとの数値データの精度が低いものに対して必要以上に精密な計算をすることが無意味な場合もある。このような場合、従来技術の計算処理においては最終結果にあまり影響を与えないような無駄な計算の繰り返しが多く含まれていた。本発明はこのような無駄な計算を省き、シミュレーション計算を低コストで効率よく行なうためのものである。
【課題を解決するための手段】
[0006] 本発明では計算の重要度の高い成分を選択し、重要度の高い成分から優先的に計算を行い、計算対象となった成分の重要度を再評価して、その結果をその後の重要成分の選択に反映させる。重要度の低い成分に対する計算は後回しにするか、または一定の基準で無視することにより、できるだけ早く効率よく概算結果を獲得し、そ


【0004】
[0009]重要成分選択装置において、重要度の高いデータは次々に出力されて処理され、重要度の低いデータは最下位レベルの方向へ押し出されていくが、重要度が中程度のデータが長い期間残留し、なかなか演算対象にならない場合が出てくる。そのような古いデータの残留を防ぐ必要がある場合には、各レジスタの重要度データに対する演算処理を施すことができる演算器を設ける。この演算器を利用して各データに対して一定値を加算またはビットシフトや乗算することにより、各データの順序関係を壊さないように重要度データを大きな値に書き換えると、古いデータの重要度が増して演算処理がなされるように調整できる。逆に重要度データを小さな値に書き換えることにより、古いデータをできるだけ早く消去するように調整することもできる。
[0010] 変化の少ない成分に関する無駄な演算処理を省略するため、記憶装置において複数個の成分データの一つ一つに対して複数個の候補値データを保持するものとする。演算処理装置ではその複数個の候補値の統計量を代表値として成分データの値とみなし、各成分データについて計算処理を行ってその更新値を算出し、その更新値と最も大きく異なる候補値をその更新値で置き換える。この場合の統計量としては平均値や中央値などを用いる。そして、重要成分選択装置では候補値のばらつきの大きさをその成分データの重要度とみなして、候補値のばらつきの大きさの順位で重要成分を選択する。候補値のばらつきを重要度とみなす理由は、そのことによりシミュレーションにおいて成分データの値が十分に収束していない状況や時間変化が大きい状況を表すことができ、変動の少ない成分データよりも変動の大きい成分データの計算処理を優先させることができるためである。これにより、計算の最終結果に対して影響の少ない計算過程を省略することができ、より高速に概算結果を得ることが可能になる。
[0011]なお、一部の成分のみが重要度が高くなり、それらの計算処理に偏る可能性がある場合には、他の成分が大きな重要度をもつように調節する機能を入れておく。例えば、演算処理のプログラムの一部に、乱数によって選ばれた成分に大きな重要度を与えて重要成分選択装置に送る処理を加える方法、一定時間ごとに全成分を計算する処理を割り込ませる方法などを加えてソフトウェアで調整する。あるいは、重要成分選


【0006】
[図19]成分データの記憶と演算処理方法に関する本発明の第6の実施形態図
[図20]第6の実施形態における成分データと処理事項の関係の説明図
【符号の説明】
[0014] 11,21,31,41,51,61 データ記憶装置
12,22,32,42,52,62 演算処理装置
13,23,33,43,53,63 重要成分選択装置
34 メモリ入出力制御回路
35 データ転送制御回路
36 FIFOバッファレジスタ
37 書き込み制御回路
38 記憶素子
39 データセレクタ
410 レジスタ
420 データ整列制御回路
421 比較器
422 セレクタ・演算処理器
423 大小比較器
424 一致比較器
425 データセレクタ
426 演算処理器
427 出力セレクタ
【発明を実施するための最良の形態】
[0015] 以下、本発明の実施の形態を図1〜図20に基づいて説明する。
[0016] 本発明の装置の第一の実施形態の基本ブロック構成図を図1に示す。また、各ブロックの動作の概要を図2に示す。本装置は主としてデータ記憶装置11と演算処理装置12と重要成分選択装置13とで構成される。データ記憶装置11は成分1から成分NまでのN個のデータを記憶する。演算処理装置12は各成分に対応した処理内容を実行する。処理内容はプログラムで設定する。重要成分選択装置13は、各成分の


【0008】
す。演算処理装置12はこのループ処理をプログラムで設定された終了条件に達するまで続ける。
[0020]重要成分選択装置13は演算処理装置12によって最重要度の成分識別子(成分番号)が読み出されると、そのデータを削除し、その他の成分識別子の順位をそれぞれ一つ上げる。演算処理装置12から重要度と成分番号の一組の入力データが入力されると、その度毎に重要度の順序に従うように整列させる。整列の順位がk番目のデータの重要度の値をP(k)で表すと、整列によりP(k)≧P(k+1)となっているので、入力データの重要度をPinとすると、P(k)≧Pin>P(k+1)となるk番目の位置を探し、k+1番目以降のデータのすべてについて順位を一つ下げて、入力データをk+1番目におく。最下位のM番目にあったデータは捨てられる。ただし、もし記憶データの中に入力データの成分識別子と同じ成分識別子をもつデータがある場合は、両者の重要度を比較して、入力データの重要度の方が小さいときには挿入はしない。逆に入力データの重要度の方が大きいときには上述のように挿入し、記憶されていた方のデータは削除する。この入れ替えのため、記憶されていたデータよりも重要度の低いデータの順位は変わらない。
[0021]第2の実施形態を図3に、その主要な動作概要を図4に示す。第1の実施形態と異なる点は、データ記憶装置21に成分データとともに各成分データが選択されたときに実行すべき処理事項を記憶させ、演算装置22においてその情報を利用して実行処理内容を制御するようにしておく点である。こうすることにより、成分データの内容に応じて処理事項を適宜変更する必要がある場合に、効率良く演算処理が出来る。処理事項として記憶すべきデータは、例えば、同時に計算処理すべき他の成分データの識別子のリストであるとか、その成分が属するクラスの名称または識別子などである。
[0022]第3の実施形態を図5に示す。重要成分選択装置33、演算処理装置32、データ記憶装置31についてそれぞれ複数個を並列化して、各装置が同時並行してそれぞれの処理を実行することで、全体の演算処理を高速化する。複数個の演算処理装置32と複数個の重要成分選択装置33との間のデータ転送はデータ転送制御回路35によって制御する。また、複数個の演算処理装置32と複数個のデータ記憶装置31との間のデータ転送もメモリ入出力制御回路34によって制御する。なお、演算処理装置


【0013】
てのkにおいてS(k)=0で、LS(n)=0となるので、便宜上、Ks=n+1とみなしてよい。
[0033]PUSHの場合、レジスタkのデータR(k)の重要度の値P(k)よりも入力データDinの重要度の値Pinが以下となる条件、すなわち、P(k)≧Pinの場合はR(k)を変更する必要がないので、セレクタ・演算処理出力はR(k)となる。この条件は比較器出力G(k)=0のみで表され、他の比較器出力には依存せず、G(k−1)=*、G(k+1)=*、S(k)=*、LS(k)=*である。条件がP(K−1)≧Pin>P(k)かつk≦KsというのはDinの挿入位置の条件である。すなわち、G(k−1)=0、G(k)=1、G(k+1)=*、S(k)=*、LS(k)=0で表され、このkに対してセレクタ・演算処理出力はDinとなる。条件がPin>P(k−1)≧P(k)かつk≦KsというのはDinよりも重要度が低いデータで、かつ、P(k)≧P(Ks)なので、Dinの挿入により順位が一つ下がるR(k)を意味しており、G(k−1)=1、G(k)=1、G(k+1)=*、S(k)=*、LS(k)=0の条件で、一つ上の順位のR(k−1)をR(k)に代入するため、セレクタ・演算処理出力はR(k−1)となる。また、k>Ksの場合はDinを挿入してもR(Ks)が削除されるので順位が変わらない条件を表す。Dinが挿入されない場合も順位は変わらないので、これは重要度の値によらず、G(k−1)=*、G(k)=*、G(k+1)=*、S(k)=*、LS(k)=1の条件でセレクタ・演算処理出力はR(k)となる。
[0034]POPの場合、P(k)≧P(k+1)≧Pin、すなわち、G(k−1)=*、G(k)=0、G(k+1)=0、S(k)=*、LS(k)=*の条件においてR(k+1)は入力データの影響を受けないので、R(1)の読出し後に順位が一つ上がり、R(k+1)はR(k)に移動する。すなわち、R(k)には一つ下位のR(k+1)が代入されるので、セレクタ・演算処理出力はR(k+1)となる。P(k)≧Pin>P(k+1)かつk<Ks、すなわち、G(k−1)=*、G(k)=0、G(k+1)=1、S(k)=0、LS(k)=0の条件はDinを挿入する条件でセレクタ・演算処理出力はDinとなる。Pin>P(k)かつk<Ks、すなわち、G(k−1)=*、G(k)=1、G(k+1)=*、S(k)=0、LS(k)=0の条件はR(1)を読出してもDinが挿入されるので順位が変わらないことを表す条件で、セレクタ・演算処理出力はR(k)となる。最後に、k=KsすなわちS(k)=1またはk>KsすなわちLS(k)=1の条件は他の条件によらず、この位置のkでは上位においてDinの挿入があったとしても


13
【0015】
がP(6)=15と低いので、R(6)は削除される。R(7)、R(8)は変化しない。図16は同じ入力データがあるときのPOPの場合で、R(1)が読出された後に重要度が60以上のR(2)、R(3)はそれぞれ順位を一つ上げる。R(4)の重要度P(4)=33は入力データより低いので、DinがR(3)に挿入され、R(4)の順位は変化しない。R(5)も変化しない。R(6)は入力データの成分識別子と同じで重要度が低いので削除されるため、下位のR(7)、R(8)がそれぞれR(6)、R(7)に移動する。最下位のR(8)はデータがクリアされる。これは重要度が最小値0で、成分識別子がNULLであることに相当する。図17はPOPの場合であるが、入力データの重要度がPin=7で、同じ成分識別子555を記憶するR(6)の重要度P(6)=15より低いので入力データが挿入される事はなく、R(1)の読み出し直後に全てのレジスタのデータが順位を一つ上げる。すなわち、k>1についてR(k)はR(k−1)に移動し、R(8)はクリアされる。
[0038]図18は変化の少ない成分に関する無駄な演算処理を省略するための成分データの表現方式に関する説明図で、本発明の第5の実施形態を示す。データ記憶装置51において、1つの成分に対して複数個の候補値データを保持しておく。例えば、i番目の成分y(i)の候補値としてx(i,1),x(i,2),...x(i,m)のm個を保持する。演算処理装置52では、この複数の候補値の代表値をy(i)とみなして演算処理を行なう。代表値としてはx(i,1),x(i,2),...x(i,m)の統計量として、例えば、平均値、中央値などを用いる。演算処理はプログラムによって制御される。この演算処理の結果、y(i)の更新値としてz(i)が得られると、候補値の中で更新値z(i)からもっとも距離の遠い候補値を更新値z(i)で置き換える。なお、更新された値を使って、再度代表値y(i)を計算しなおし、これをデータ記憶装置51に記憶しておけば、次回の計算ですぐに利用できるので、計算効率が良くなる場合がある。
[0039]各成分の重要度としては、x(i,1),x(i,2),...x(i,m)のばらっきの大きさを△x(i)と表し、これを成分の重要度とみなす。ばらつきの大きさとしては、例えば、候補値x(i,1),x(i,2),...x(i,m)の最大値と最小値の差の絶対値max{|x(i,u)−x(i,v)|}や標準偏差などを用いる。成分データの候補値のばらつきが大きい成分は、演算処理による更新値の変動が大きい事を意味しており、シミュレーションなどにおいては成分データの値が十分に収束していない状況や時間変化が大きい状況を表


15

Claims (4)

  1. 複数の成分からなるデータを記憶するデータ記憶装置と、重要度の高い成分を選別する重要成分選択装置と、各成分に関してプログラムされた演算処理を行う演算処理装置とで構成されるものであって、重要成分選択装置はある成分の重要度とそれがどの成分であるかを表す成分識別子を一組として、その複数組を重要度が高いものから順位付けして記憶する機能と重要度が最も高い成分の成分識別子を優先して出力する機能とを備え、演算処理装置は重要成分選択装置が指し示す重要度の高い成分に関係する成分について演算処理し、その結果に従ってデータ記憶装置の成分のデータを更新するとともに、変更された成分に関する重要度を再評価して、その更新値を重要成分選択装置に送出する機能を備え、各装置はこれらの機能をそれぞれ同時並列に実行可能であることを特徴とする重要成分優先計算方式ならびに装置。
  2. 上記第1項の重要成分選択装置において、複数個のレジスタと各レジスタに付属する比較器と、レジスタへのデータ入出力と各レジスタ間のデータのシフト動作を制御する制御回路を備え、各レジスタのデータは重要度データと成分識別子を含み、重要度の大きさの順にデータを整列して保持するとともに、最重要データを出力し、その最重要データが読み出されると、残りの各データの重要度の順位を1つ上げる機能を備え、各比較器は対応する各レジスタの重要度データ部と入力データの重要度データ部とを大小比較するとともに、対応する各レジスタのデータの成分識別子と入力データの成分識別子とを一致比較し、入力データ制御回路はその比較結果を基に、成分識別子について入力データと同じものがどのレジスタにも存在しない場合は、入力データよりも重要度が高いデータと低いデータとの間の順位に入力データを追加挿入し、入力データの成分識別子と同じ成分識別子を保持するレジスタが存在し、かつ、そのレジスタの重要度データが入力データの重要度よりも低い場合は、そのレジスタのデータを削除するとともに、入力データよりも重要度が高いデータと低いデータとの間の順位に入力データを挿入することを特徴とする重要成分優先計算方式ならびに装置。
  3. 上記第2項の重要成分選択装置において、各レジスタの重要度データ部のデータに対して演算処理を実行する演算回路を付加したことを特徴とする重要成分優先計算方式ならびに装置。
  4. 上記第1項のデータ記憶装置において、複数個の成分データの一つ一つに対して複数個の候補値データを保持し、演算処理装置ではその複数個の候補値の統計量をその成分の代表値とみなして各成分データについてプログラムで指定された演算処理を行い、各成分データの新しい更新値を算出し、その更新値と最も大きく異なる候補値をその更新値で置き換えるとともに、成分データの複数個の候補値のばらつきの大きさをその成分データの重要度とみなして、重要成分選択装置において候補値のばらつきの大きさの順位に基づいて重要成分を選択することを特徴とする重要成分優先計算方式ならびに装置。

JP2006511939A 2004-03-30 2005-03-14 重要成分優先計算方式ならびに装置 Active JP4310500B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2004132206 2004-03-30
JP2004132206 2004-03-30
PCT/JP2005/004452 WO2005098612A1 (ja) 2004-03-30 2005-03-14 重要成分優先計算方式ならびに装置

Publications (2)

Publication Number Publication Date
JPWO2005098612A1 true JPWO2005098612A1 (ja) 2008-07-31
JP4310500B2 JP4310500B2 (ja) 2009-08-12

Family

ID=35125257

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006511939A Active JP4310500B2 (ja) 2004-03-30 2005-03-14 重要成分優先計算方式ならびに装置

Country Status (3)

Country Link
US (1) US7734456B2 (ja)
JP (1) JP4310500B2 (ja)
WO (1) WO2005098612A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5271699B2 (ja) * 2005-04-19 2013-08-21 ディ.イー.ショー リサーチ,エルエルシー 粒子の相互作用の計算のためのゾーン法
US10510087B2 (en) 2005-07-07 2019-12-17 Sermo, Inc. Method and apparatus for conducting an information brokering service
US10083420B2 (en) 2007-11-21 2018-09-25 Sermo, Inc Community moderated information
US9043684B2 (en) * 2012-03-22 2015-05-26 Lsi Corporation Systems and methods for variable redundancy data protection
US10078651B2 (en) 2015-04-27 2018-09-18 Rovi Guides, Inc. Systems and methods for updating a knowledge graph through user input
CN104794310B (zh) * 2015-05-14 2018-05-18 广联达软件股份有限公司 一种获得结构力学数据的方法及装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274809A (en) * 1988-05-26 1993-12-28 Hitachi, Ltd. Task execution control method for a multiprocessor system with enhanced post/wait procedure
US5247677A (en) * 1992-05-22 1993-09-21 Apple Computer, Inc. Stochastic priority-based task scheduler
JPH1091450A (ja) * 1996-09-11 1998-04-10 Nippon Telegr & Teleph Corp <Ntt> 推論処理方法
JPH113321A (ja) 1997-06-12 1999-01-06 Hitachi Ltd 並列計算機システム
JPH11259444A (ja) * 1998-03-12 1999-09-24 Toshiba Corp 関数近似モデル学習装置及び方法並びに関数近似モデル学習用プログラムを記録した記録媒体
JPH11305993A (ja) 1998-04-24 1999-11-05 Matsushita Electric Ind Co Ltd ソート装置
JP3471637B2 (ja) * 1998-11-30 2003-12-02 三菱電機株式会社 並列分散シミュレーションシステム、シミュレーションマネージャおよび並列分散シミュレータ制御方法
US7614053B2 (en) * 2004-02-20 2009-11-03 Sony Computer Entertainment Inc. Methods and apparatus for task management in a multi-processor system

Also Published As

Publication number Publication date
US7734456B2 (en) 2010-06-08
WO2005098612A1 (ja) 2005-10-20
JP4310500B2 (ja) 2009-08-12
US20080052496A1 (en) 2008-02-28

Similar Documents

Publication Publication Date Title
CN109710981B (zh) Fpga的布线方法及系统
CN110826719A (zh) 一种量子程序的处理方法、装置、存储介质和电子装置
CN110516810B (zh) 一种量子程序的处理方法、装置、存储介质和电子装置
EP2891053A1 (en) Results generation for state machine engines
US9558306B2 (en) Retiming a design for efficient parallel simulation
CN112131813B (zh) 基于端口交换技术的用于提升布线速度的fpga布线方法
Li et al. BLASTP-ACC: parallel architecture and hardware accelerator design for BLAST-based protein sequence alignment
JP4310500B2 (ja) 重要成分優先計算方式ならびに装置
CN113779924A (zh) 超导集成电路的布线优化方法和装置、存储介质和终端
JP2018200692A (ja) ベクトルプロセッサの配列ソート方法
US20230176999A1 (en) Devices for time division multiplexing of state machine engine signals
CN108875914B (zh) 对神经网络数据进行预处理和后处理的方法和装置
CN110738317A (zh) 基于fpga的可变形卷积网络运算方法、装置和系统
Vasicek et al. How to evolve complex combinational circuits from scratch?
US9570125B1 (en) Apparatuses and methods for shifting data during a masked write to a buffer
US9135984B2 (en) Apparatuses and methods for writing masked data to a buffer
US6460166B1 (en) System and method for restructuring of logic circuitry
US20050229124A1 (en) Distributed BDD reordering
US20060085173A1 (en) Science and engineering simulator using numerical analysis of simultaneous linear equations
Abdelrasoul et al. FPGA based hardware accelerator for sorting data
US7516059B2 (en) Logical simulation device
US6282695B1 (en) System and method for restructuring of logic circuitry
Mrazek et al. Automatic design of arbitrary-size approximate sorting networks with error guarantee
JP3803283B2 (ja) 集積回路のテストのための圧縮テストプランの生成、テスト系列生成およびテスト
CN111915014B (zh) 人工智能指令的处理方法及装置、板卡、主板和电子设备

Legal Events

Date Code Title Description
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: 20090407

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

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

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4310500

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

R154 Certificate of patent or utility model (reissue)

Free format text: JAPANESE INTERMEDIATE CODE: R154

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

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140522

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250