(57)【要約】【課題】並列演算回路において、局所的な性能劣化が生じたときの影響が少ない自律的演算回路を提供する。【解決手段】並列演算を行う複数の単位非同期式演算回路７１と、単位非同期式演算回路７１に非演算データ供給部１０からの被演算データを分配する被演算データ分配部６０を備え、被演算データ分配部６０は、出力レジスタ６３を備え、出力レジスタ６３のデータ更新を制御して、最も早く演算完了信号を返した単位非同期式演算回路７１に被演算データが分配されるように構成する。【選択図】図３
2010238003.tif 000002
【特許請求の範囲】
【請求項１】
演算要求信号により演算を開始し、演算を終了した時に演算完了信号を送出する回路であって、それらの演算内容が同一である複数の単位非同期式演算回路を有する演算部と；
複数の被演算データ入力ポート、複数の被演算データ出力ポートを有し、被演算データ供給部から前記被演算データ入力ポートへ入力された各々の被演算データを前記被演算データ出力ポートから前記複数の単位非同期式演算回路の各々の入力ポートに分配する被演算データ分配部；を備え、
該被演算データ分配部は、
前記被演算データを格納し、該被演算データが前記出力ポートに出力される出力レジスタを有し、
被演算データ供給部からの分配要求信号に基づき、
各入力ポートへ入力された被演算データが分配される出力ポートに対して２以上の単位非同期式演算回路から演算完了信号が送出されている場合はその内の任意の出力レジスタの内容を前記被演算データで更新し、単位非同期式演算回路のうち１つのみから演算完了信号が送出されている場合は前記被演算データで当該単位非同期式演算回路に対応する出力レジスタの内容を更新し、
前記更新した出力レジスタに接続された単位非同期式演算回路に演算要求信号を送出した後、当該出力レジスタの更新を禁止し、
前記被演算データ供給部に分配処理完了信号を送出し、当該出力レジスタの格納データを保持した後、前記演算完了信号を受け取った時に、対応する出力レジスタの内容の更新を許可する、
自律式並列演算回路。
【請求項２】
前記被演算データは当該被演算データの終了を示すデリミタ信号を含み、
前記被演算データ分配部は前記デリミタ信号の検出手段を有し、該デリミタ信号が検出された時に、前記被演算データ供給部に前記分配処理完了信号を送出し、前記デリミタ信号を含む当該出力レジスタの更新を禁止し、
前記被演算データ入力ポートに入力された全てのデリミタ信号が検出された後、全ての前記演算完了信号を受け取った時に前記デリミタ信号の受入れを要求する要求信号を前記単位非同期式演算回路に同時に送出し、当該単位非同期式演算回路から演算完了信号を受け取った後、前記出力レジスタのデータ更新を許可する、
請求項１記載の自律式並列演算回路。
【請求項３】
ｍ，ｎを２以上の自然数とし、
前記被演算データ分配部の被演算データ入力ポート及び被演算データ出力ポートは２ｎ個であり、該被演算データ分配部は、
入力ポートの数が２、出力ポートの数が２である、ｎ個の単位被演算データ分配回路を有するｍ個の被演算データ分配回路群の従属接続で構成され、
第１の被演算データ分配回路群の２ｎ個の入力ポートは前記被演算分配部の被演算データ入力ポートであり、第ｍの被演算データ分配回路群の２ｎ個の出力ポートは前記被演算分配部の被演算データ出力ポートであり、
前記第１の被演算データ分配回路群の２ｎ個の入力ポートは前記第ｍの被演算データ分配回路群の２ｎ個の出力ポートの全てに連通可能である、
請求項１又は請求項２に記載の自律式並列演算回路。
【請求項４】
更に、複数の前記単位非同期式演算回路の演算結果から更に所定の演算を行う演算ツリーを含む、
請求項１乃至請求項３に記載の自律式並列演算回路。
【請求項５】
前記演算部は、前記単位非同期式演算回路の演算結果の累積値を保持する演算レジスタと、前記デリミタ信号を検出する手段を含み、
該デリミタ信号が検出された時に前記演算レジスタへの演算結果の受入れを後段に要求する処理要求信号を送出し、前記後段から処理完了信号を受け取ったときに前記演算レジスタの内容をリセットする手段を有する、
請求項２乃至請求項４に記載の自律式並列演算回路。
【請求項６】
前記単位非同期式演算回路は、２線式論理回路である、
請求項１乃至請求項５のいずれかに記載の自律式並列演算回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は同一の演算回路を複数有し、これらの演算回路が互いに並列に動作する並列演算回路に関し、特に、各演算回路の遅延時間の増加等の特性劣化等を検出することなく演算データを自律的に最適に配分し、耐劣化性を有するようにした自律式並列演算回路に関する。
【背景技術】
【０００２】
ＬＳＩの微細化・大規模化の進展に伴い、ＬＳＩコア内の局所的な性能劣化が問題となってきた。これらの局所的な性能劣化は、例えば、ＮＢＴＩ（Negative Bias Temperature Instability）のような素子の物理的な劣化、電源電圧の低下、温度の上昇によって顕在化する。このような劣化が一旦生じると、ＬＳＩが突然誤動作を起こすことがある。特に、所定のクロック信号を基準にＬＳＩ全体が動作する同期式回路では、局所的な性能劣化がＬＳＩ全体に及ぶため大きな問題となる。これに対し、隣接する演算回路とハンドシェイクを取りながら演算を進める非同期式演算回路が提案されている（例えば、特許文献１）。一方、シミュレータ等では特定の計算（例えば、大規模な連立一次方程式の解法）を高速に行うことを要求される場合がある。このような用途向けに専用ＬＳＩも開発されている。このような用途では同じ計算を並列に、また、繰り返して実行するようなものがある。従って、演算内容が同一である演算回路を多数並列に動作する並列演算回路を導入し、高速化を図ることが行われている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１７４３６５（例えば、段落００３０、図２）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記並列演算回路で、多数の演算回路の一部に遅延時間増大のような劣化があると、その部分が全体のネックとなって演算速度が低下することがあり、そのような影響の少ない耐劣化性を有する演算回路の実現が待たれていた。更に、このような演算回路の実現に際し、システムの簡易化等の観点から特別な外部からの制御を必要としない自律的動作をすることが要請されていた。
【０００５】
本発明は上述の課題に鑑み、並列演算回路において、局所的な性能劣化が生じた時の影響が少ない自律的演算回路を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の第１の態様に係る自律的並列演算回路は、例えば、図３、図５に示すように、演算要求信号in_req_c（out_req）により演算を開始し、演算を終了した時に演算完了信号in_ack_c（out_ack）を送出する回路であって、それらの演算内容が同一である複数の単位非同期式演算回路７１（以下、単に「単位演算回路」ということがある）を有する演算部７０と、複数の被演算データ入力ポートin、複数の被演算データ出力ポートoutを有し、被演算データ供給部１０から被演算データ入力ポートinへ入力された各々の被演算データを被演算データ出力ポートoutから複数の単位非同期式演算回路７１の各々の入力ポートに分配する被演算データ分配部６０、を備え、被演算データ分配部６０は、前記被演算データを格納し、該被演算データが出力ポートoutに出力される出力レジスタ６３（図５参照）を有し、被演算データ供給部１０からの分配要求信号in_reqに基づき、各入力ポートinへ入力された被演算データが分配される出力ポートoutに対して２以上の単位非同期式演算回路７１から演算完了信号out_ackが送出されている場合はその内の任意の出力レジスタ６３の内容を前記被演算データで更新し、単位非同期式演算回路７１のうち１つのみから演算完了信号が送出されている場合は前記被演算データで当該単位非同期式演算回路７１に対応する出力レジスタ６３の内容を更新し、前記更新した出力レジスタ６３に接続された単位非同期式演算回路７１に演算要求信号out_req（in_req_c）を送出した後、当該出力レジスタ６３の更新を禁止し、被演算データ供給部１０に分配処理完了信号in_ackを送出し、当該出力レジスタ６３の格納データを保持した後、演算完了信号out_ack（in_ack_c）を受け取った時に、対応する出力レジスタ６３の内容の更新を許可するように構成されている。
【０００７】
ここにおいて、「演算内容が同一」とは、演算式が同一の意味であり、演算回路構成が同一であることに限定されない。「被演算データ入力ポート」、「被演算データ出力ポート」とは、例えば、２乗計算を行う場合のような被演算データが一つの場合と、例えば、加算や乗算計算を行う被演算データが複数の場合を含む。
【０００８】
このように構成すると、複数の単位非同期式演算回路のうちで最も早く演算完了信号を返した演算回路に被演算データが分配されるので演算時間待ちが減少する。また、特性劣化が生じているが動作が可能な演算回路に他の演算回路がビジー状態であるときにも演算を行わせることができ、リソースの有効利用を図ることができる。このような動作を全て自律的に行わせることができ、耐劣化性を備えた高速な並列演算回路を実現することができる。
【０００９】
上記目的を達成するために、本発明の第２の態様に係る自律的並列演算回路は、例えば、図９、図１１に示すように、本発明の第１の態様において、被演算データは当該被演算データの終了を示すデリミタ信号delimを含み、被演算データ分配部６０はデリミタ信号delimの検出手段８１、８２（図１１参照）を有し、デリミタ信号delimが検出された時に、被演算データ供給部１０（図３参照）に分配処理完了信号in_ackを送出し、デリミタ信号delimを含む当該出力レジスタ６３（図５参照）の更新を禁止し、被演算データ入力ポートin（図３参照）に入力された全てのデリミタ信号delimが検出された後、全ての演算完了信号out_ack（図３参照）を受け取った時にデリミタ信号delimの受入れを要求する要求信号out_reqを単位非同期式演算回路７１に同時に送出し、当該単位非同期式演算回路７１から演算完了信号out_ackを受け取った後、出力レジスタ６３（図５参照）のデータ更新を許可する。
【００１０】
このように構成すると、被演算データ供給部から順次出力される被演算データの終了等を演算部が認識することができる。
【００１１】
上記目的を達成するために、本発明の第３の態様に係る自律的並列演算回路は、例えば、図４に示すように、本発明の第１又は第２の態様において、ｍ，ｎを２以上の自然数とし、被演算データ分配部６０の被演算データ入力ポートin及び被演算データ出力ポートは２ｎ個であり、被演算データ分配部６０は、入力ポートの数が２、出力ポートの数が２である、ｎ個の単位被演算データ分配回路６１を有するｍ個の被演算データ分配回路群６１Ｇの従属接続で構成され、第１の被演算データ分配回路群６１Ｇ１の２ｎ個の入力ポートinは被演算分配部の被演算データ入力ポートinであり、第ｍの被演算データ分配回路群６１Ｇｍの２ｎ個の出力ポートoutは被演算分配部６０の被演算データ出力ポートoutであり、第１の被演算データ分配回路群６１Ｇ１の２ｎ個の入力ポートは前記第ｍの被演算データ分配回路群６１Ｇｍの２ｎ個の出力ポートoutの全てに連通可能である。
【００１２】
ここにおいて、「全てに連通可能」とは任意の入力ポートに受入れられた被演算データまたは被演算データの組がいずれの出力ポートにも転送することが可能であり、特定の入力ポートと特定の出力ポートの組み合わせで所謂転送ブロックが生じない意味である。
【００１３】
このように構成すると、比較的単純な構成の２×２単位被演算データ分配回路を複数組み合わせることにより、より規模の大きな被演算データ分配部を構成することができ設計が単純化される。  
【００１４】
上記目的を達成するために、本発明の第４の態様に係る自律的並列演算回路は、例えば、図３に示すように、本発明の第１乃至第３の態様において、複数の単位非同期式演算回路７１の演算結果から更に所定の演算を行う演算ツリー３０を含む。
【００１５】
ここにおいて、「所定の演算」とは加算、減算、乗算、除算を含む全ての演算であり、回路への仕様に応じて適宜決定される。「ツリー」とは、二つ以上の被演算データから新たな被演算データを演算し、最終的に一つの演算データを得るものを言う。
【００１６】
このように構成すると、単位演算回路で並列に演算された結果を一つにまとめることができる。
【００１７】
上記目的を達成するために、本発明の第５の態様に係る自律的並列演算回路は、例えば、図９、図３、図１１に示すように、本発明の第２乃至第４の態様において、演算部７０は、単位非同期式演算回路７１の演算結果の累積値を保持する演算レジスタ７４と、デリミタ信号delimを検出する手段８１，８２（図１１参照）を含み、デリミタ信号delimが検出された時に演算レジスタ７４への演算結果の受入れを後段３０に要求する処理要求信号out_req_c（図３参照）を送出し、後段３０から処理完了信号out_ack_c（図３参照）を受け取ったときに演算レジスタ７４の内容をリセットする手段を有する。
【００１８】
ここにおいて、「後段」とは、従属する他の単位演算回路、演算ツリーの双方を含む。「リセット」とは、演算レジスタの格納内容を初期値に戻し新たな演算結果を格納する準備を行う意味である。
【００１９】
このように構成すると、被演算データに付加されたデリミタ信号を元に一つの演算に区切りをつけ、例えば繰り返し計算を自律的に実行することができる。
【００２０】
上記目的を達成するために、本発明の第６の態様に係る自律的並列演算回路は、例えば、図２に示すように、本発明の第１乃至第５の態様において、単位非同期式演算回路７１は、２線式論理回路である。
【００２１】
このように構成すると、非同期式論理回路による演算を自律的に行うことができる。
【発明の効果】
【００２２】
本発明に係る並列演算回路によれば、複数の単位非同期式演算回路のうちで最も早く演算完了信号を返した演算回路に被演算データが分配されるので演算時間待ちが減少する。また、特性劣化が生じているが動作が可能な演算回路に他の演算回路がビジー状態であるときにも演算を行わせることができる。このような動作を全て自律的に行わせることができ、高速な並列演算回路を実現することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明のハンドシェイクの様子を示す図である。（ａ）はリクエスト信号req、アクノレッジ信号ackと演算回路の関係、（ｂ）はリクエスト信号req、アクノレッジ信号ackの波形を示す。
【図２】２線式論理回路の概念を示す図である。（ａ）は１線式符号から２線式符号への変換を示す図、（ｂ）は２線式論理における処理を示した図である。
【図３】本発明の基本構成を示す図である。
【図４】２×２単位ルータで、被演算データ分配部を構成したときの図である。
【図５】２×２単位被演算データ分配回路（２×２単位ルータ）の模式的な構成を示した図である。
【図６】アービタの構成を示したものである。（ａ）は入線と出線の関係、（ｂ）は入線と出線の信号波形、（ｃ）はアービタの具体的回路を示した図である。
【図７】２×２単位ルータのハンドシェイク信号処理回路を示した図である。
【図８】デリミタ信号を説明する図である。
【図９】本発明におけるデリミタ信号のタイミング関係を示す図である。
【図１０】２×２単位ルータで被演算データ分配部を構成したときのデリミタ信号を説明する図である。
【図１１】デリミタ信号検出回路の構成を示す図である。
【図１２】デリミタ信号が付加された場合の２×２単位ルータのハンドシェイク信号処理回路を示した図である。
【図１３】単位演算回路の構成を示す図である。
【図１４】Ｃ素子を説明する図である。（ａ）は回路構成、（ｂ）は入力ポート数が２のときの真理値表である。
【図１５】本発明の特性を従来の技術と比較した図である。
【図１６】従来の並列演算回路の構成図である
【発明を実施するための形態】
【００２４】
以下、図面を参照して本発明の実施の形態について説明する。なお、各図において互いに同一又は相当する部分には同一あるいは類似の符号を付し、重複した説明は省略する。また、同一のものが複数ある場合には同一の符号を付与し、これにつづく英小文字、または下付文字で複数の各部を区別する。
【００２５】
本発明の構成を詳細に説明する前に本発明が適用される典型的な演算について説明する。言うまでもなく、本発明はこの演算にのみ適用されるものではなく、単に本発明の理解の一助とするものに過ぎない。始めに、本発明が使用する前提技術について以下に簡単に説明する。
【００２６】
典型的な演算として、ｎ元連立一次方程式  A・x = bの解を求める例を挙げる。このような演算は有限要素法や画像処理内部で頻繁に使用され、専用回路で実現されることが多い。ここで、Aｉ，ｊはn×nのマトリクス要素、x = (x0, x1, …,xｎ-1)はｎ次元の未知数ベクトル、b= (b0, b1, …,bｎ-1)はｎ次元の定数ベクトルである。この方程式の解法として、ハードウェア化に適する、即ち、ハードウェアが単純で効率的な演算が可能なものとして、反復近似計算を用いたガウス・ザイデル（Gauss-Seidel）法がよく知られている。この方法は、xｉ（ｋ＋１）を（k+1）番目の逐次値とし、
【数１】
2010238003.tif 000003
より、xｉ（ｋ＋１）とxｉ（ｋ）を求め、その差が所定値以下となったときに収束したと判断するものである。即ち、二つのデータ（ａｉ，ｊとｘｉ）の積の総和を繰り返し計算するので同じ回路が並列に、又は繰り返して使用でき、ハードウェアが単純となる利点がある。
【００２７】
図１６に上記演算を実行する演算回路の一例を示す。被演算データ供給部１０は被演算データを格納するメモリ（ＭＥＭ）を含み、上記被演算データａ，ｂ，ｘが格納される。被演算データを並列演算を行う演算部２０の個数ｋに対応したｋ個のブロックに分割して格納すると、被演算データ供給部１０は一般的にはｘに対してはｋ個のＲＡＭ、ａ，ｂに対しては２ｋ個のＲＯＭを含む。図１６ではｋ＝４である。これらｋ組の被演算データは順次演算部２０（本図では乗算器）に出力され、ａｉ，ｊとｘｉの積が計算される。演算結果は演算ツリー３０（この場合は加算ツリー）で累積され、式（１）の右辺第２〜第３項の級数部分が計算される。尚、上記式（１）の定数項ｂｉはｂｉと１の積と考えればａｉ，ｊとｘｉと同じ乗算器で処理が可能である。このようにして、最終的に演算レジスタ７４を含む最終演算部４０で式（１）の右辺が計算される。このようにして求まったｘの値で以前のｘの値を置き換え、被演算データ供給部１０のｘｉの値が更新される。この処理を繰り返し、一定範囲値内に収束した時のｘｉが解となる。
【００２８】
ところで、図１６の回路は複数の乗算部２０を使う並列演算回路であり、演算速度の向上には有効な構成であるが、一つの乗算器に特性の劣化、例えば、演算速度の低下があると当該乗算器の演算速度で全体の演算速度が決定される欠点がある。
【００２９】
本発明は、前述した非同期式回路を使用することを前提とするものである。非同期式回路は一つのグローバルクロックで回路全体が動作する同期式回路と相違し、クロックを使用しない演算回路であり、クロックに代わるタイミング制御として、隣接する回路とのタイミングをハンドシェイクのタイミングで行う。
【００３０】
図１（ａ）は、このようなハンドシェイクの様子を模式的に示したものである。図１（ａ）は、被演算データａ，ｂから（ａ＋ｂ）２を計算する例を示したもので、二つの演算単位５０１，５０２で、各々、ａ＋ｂ、（ａ＋ｂ）２を計算する。演算単位５０１はリクエスト信号req1に基づき演算を開始し、演算が終了するとリクエスト信号req2を演算単位５０２に送出すると共に、前段の演算単位にアクノレッジ信号ack1を返す。演算単位５０２で演算が終了するとアクノレッジ信号ack2を演算単位５０１に返す。このようにして次々とリクエスト信号とアクノレッジ信号でハンドシェイクすることにより種々の演算を実行する。このような構成になっているので、所謂グローバルクロック信号を必要とせず、自律的な動作ができるという利点がある。
【００３１】
図１（ｂ）は、具体的なリクエスト信号req、及びアクノレッジ信号ackの例を示したものである。図のようにリクエスト／アクノレッジのタイミングは各信号が反転する時点（図の矢印時点）としている。以降で説明する本発明においてもこのようなリクエスト／アクノレッジ信号を例にその動作を説明する。尚、以降の説明において、図１（ｂ）のように、０から１に反転するリクエスト信号reqに対するアクノレッジ信号ackはこれと同様に０から１に反転して応答する場合で説明する。ただし、この関係はこれに限定されるものではなく、他の形態でもリクエスト／アクノレッジ信号のある旨が明確であればどのような形式であってもよい。
【００３２】
上述した非同期式回路では、アクノレッジ信号ackの送出タイミングは当該演算回路の演算所要時間を元にリクエスト信号の受信タイミングから一定の遅延時間後に送出するものが多い。このような構成ではいかなる場合も演算終了前にアクノレッジ信号ackを送出しないように、種々の環境変化を考慮し、十分なマージンを持つ遅延時間を設定する必要がある。従って、このマージン確保のために全体の演算時間が長くなる欠点がある。これに対して、以下に述べる２線式論理回路は、演算回路への入力信号にタイミング情報を持たせたもので実際の演算終了タイミングに合わせてアクノレッジ信号ackを送出できる利点がある。
【００３３】
図２（ａ）は、２線式論理回路の概念を示したものである。（ａ）のように、２線式データは２本のラインＡ，Ｂで一つの符号を表すもので、０に対してはラインＡが０、ラインＢが１とし、１に対してはラインＡが１、ラインＢが０とすると共に、各符号間にラインＡ，Ｂが共に０（共に１でも良い）となるような無効符号語を挿入するものである。図２（ａ）の矢印で表した部分が無効符号語部分である。図２（ｂ）は、２線式論理回路で十進数の「２」と「３」の足し算を行う例で、各々４対の入力データａ，ｂ（各対ごとに、各々、ａ１〜ａ４、ｂ１〜ｂ４とする）において、１対を構成する各線の何れもが共に０を含まない時（図中「Ｔ」と示す）の演算結果が正しい結果を与える。従って、演算結果で一対を構成する２線の各線のデータ値の論理和を各対（ｃ１〜ｃ４）で取り、全ての論理和が１であれば演算が完了したと判断できる。このような判定を行うのはいわゆるＣ素子で実現できる。Ｃ素子の出力はアクノレッジ信号として前段に戻される。尚、Ｃ素子については後述する。
【００３４】
２線式論理回路はこのように特別のデータパス回路を必要とするので１線式論理回路より回路規模が大きくなるが、演算完了時点が演算データから自律的に判断出来るので無駄な時間マージンを省くことができ、演算を高速化することが出来る。また、誤動作のない確実な動作を行うことが出来る特徴がある。
【００３５】
図３に本発明の基本回路構成を示す。被演算データ供給部１０は図１６の被演算データ供給部と同じ構成である。メモリ回路１１は例えば被演算データa, x , bを格納するメモリである。データ生成回路１２は被演算データとなるべきデータ（例えば、aとxの組み合わせ）を次段に出力すると共に、次段に対するリクエス信号in_reqを送出し、次段からのアクノリッジ信号in_ackを受信する。被演算データ供給部１０には外部からのインターフェース信号ｉｎｔｆが入力され、各種の制御やデータが入力される。メモリ回路１０の出力データは１線式データである。
【００３６】
被演算データ分配部６０（以降、「ルータ部」と言うことがある）は、被演算データ分配部１０の出力データを次段の演算部７０内のいずれかの単位非同期式演算回路７１に分配するものである。分配先の単位演算回路非同期式としてはアクノレッジ信号out_ackを送信しているものの内最先のものを優先的に選択する。これにより性能劣化を来たしている演算回路の選択を回避出来る。被演算データ供給部６０は複数の単位被演算データ分配回路６１（以降、「単位ルータ」と言うことがある）（例えば、入力ポート及び出力ポートの数が２の２×２単位ルータ）の並列多段接続により構成することができる。並列多段接続については図４を用いて後述する。尚、性能劣化を来たしている単位演算回路が全て回避されるわけではない。性能劣化があっても演算機能を有している場合があるからであり、このような場合は選択した方が全体の演算時間は短縮される。これらの分配制御は全てアクノレッジ信号の有無で判断され、性能劣化を検出するための特別の検出回路を必要としない。被演算データ供給部６０でのデータの分配は被演算データとなるべきデータ（例えば、aとxの組み合わせ）を単位として行う。被演算データ供給部６０でのデータは１線式データである。以上の処理は前段（被演算データ供給部１０）と次段（演算部７０）との間でハンドシェイク信号（リクエスト信号及びアクノレッジ信号）に基づいて行う。尚、被演算データ供給部６０の詳細については後述する。
【００３７】
演算部７０は、同一の演算内容の複数個の単位非同期式演算回路７１で構成される。各単位非同期式演算回路７１は、前記aとxの乗算等を行う乗算器７２、演算レジスタ７４（図中「ＡＣＣ」と表示することがある）と協働し、乗算器７２での演算結果を累積加算を行う加算器７３で構成される。即ち、初期状態において単位非同期式演算回路（乗算器）７１の出力は演算レジスタ７４に一旦格納され、次の被演算データにおける乗算結果と加算してその値を演算レジスタ７４に格納する。以上の処理は前段（被演算データ分配部６０）とのハンドシェイク信号に基づいて行う。
【００３８】
以上により、式（１）の右辺が計算できるが、このままでは演算部７０は入力されるデータを乗算・累積加算するのみであり被演算データの終了を検出してxの修正値を求めることができない。このため、本発明では、被演算データの終了を示す信号（デリミタ信号）を被演算データに付加しておき、デリミタ信号を検出したときは単位非同期式演算回路７１への被演算データの転送を保留するとともに、それまで累積した演算結果を同一のタイミングで演算ツリー３０へ出力するように構成する。デリミタ信号を用いる処理については後述する。
【００３９】
演算ツリー３０は複数の単位非同期式演算回路７１１〜７１４の演算累積結果（演算レジスタ７４）から、それらの総和xｉｔｅｒを得る回路であり、図１６の演算ツリー（加算ツリー）３０と同じ構成である。xｉｔｅｒの値はxの新しい逐次近似値となる。求められたxｉｔｅｒはメモリ回路１１にフィードバックされ格納されているxと比較されその差が所定誤差値より大きいときはメモリ回路１１のxの値を更新する。
【００４０】
図４は、被演算データ分配部６０を２×２単位被演算データ分配回路（単位ルータ６１）の並列多段接続で構成した例を示す。図のようにｎ個の単位ルータ（６１１〜６１ｎ）を入力ポートinに対応して並列に配列した被演算データ分配回路群６１Ｇを構成する。入力ポート及び出力ポートの数は２ｎである。更に、ｍ個の被演算データ分配回路群６１Ｇを従属に接続し、１段目の被演算データ分配回路群６１Ｇ１を入力ポートinに接続し、最終段の被演算データ分配回路群６１Ｇｍを出力ポートoutに接続する。このような構成において、一つの２×２単位ルータ６１の出力ポートは互いに次段の２×２単位ルータ６１の入力ポートに接続するようにし、任意の入力ポートに受入れられた被演算データまたは被演算データの組がいずれの出力ポートにも転送することが可能であり、特定の入力ポートと特定の出力ポートの組み合わせで転送ブロックが生じないように接続されるようにする。このように構成すると、比較的単純な構成の２×２単位ルータ６１を複数組み合わせることにより、より規模の大きな被演算データ分配部６０を構成することができ設計が単純化される。
【００４１】
図５は、２×２単位ルータ６１の構成を模式的に示したものである。図のように、二つの入力データ（in0／in1）を選択する入力セレクタ６２、選択された入力データを格納する二つの出力レジスタ６３０、６３１で構成される。二つの入力データのうち、in0はc0_sel信号が１のとき、in1はc1_sel信号が１のときに選択される。尚、後述するように、c0_sel信号及びc1_sel信号は、前段（被演算データ供給部１０又は当該単位ルータの前段に接続される２×２単位ルータ６１）からのリクエスト信号reqを元に生成される。c0_sel信号及びc1_sel信号が同時に１になることがないように構成されている。この機能は入力アービタ６４（図６参照）を使って実現できる。詳細は後述する。
【００４２】
出力レジスタ６３０、６３１は、各々、g0及びg1で制御され、g0（g1）が０のときは以前格納したデータを保持し、新しいデータによる更新を拒否する。g0（g1）が１のときはデータの更新を行う。出力レジスタ６３０、６３１の内容はg0、g1の値に関係なく出力ポートout0、out1から出力される。更に詳しく説明すると、次段からのアクノレッジ信号out_ackが返っている側の出力レジスタ６３を被演算データで更新する。out0及びout1の双方からアクノレッジ信号out_ackが返っている場合は任意の出力レジスタ（６３０又は６３１、実際には最先のアクノレッジ信号ackに対応するレジスタを選択するのがよい）を更新し、双方ともアクノレッジ信号ackが返っていなければレジスタ６３の更新を禁止する。これは、後述する出力アービタ６５（図６参照）により実現できる。
【００４３】
図６（ａ）にアービタ（ＭＥ）の入線及び出線の関係、図６（ｂ）にアービタ６４（６５）の機能を説明する図を示す。アービタの出線は二つの入線のうち、最も早く１に反転した入線（例えば、図６（ｂ）では、入線０）に対応する出線０の出力を１とし、入線０が０となったときに出線０を０に戻す。一方、他方の出線１については、入線１が１になった後、入線０が０になった後に１となるような回路である。アービタを用いることにより互いに競合する二つの信号を調整することができる。図６（ｃ）は、アービタの具体的回路であり、ＲＳフリップフロップ回路を基本としＣＭＯＳで構成した例である。
【００４４】
図７は、２×２単位ルータ６１のうちハンドシェイク信号を処理する回路の構成を示したものである。図５のデータ処理系の構成を参照しつつ図７を説明する。入力信号制御回路６６は排他的論理和回路、ＴＦＦ及びＡＮＤ回路で構成され、前段からのリクエスト信号in0_req（in1_req）を受け、出力レジスタ６３に被演算データを格納した後in0_ack（in1_ack）信号を返す。この時、入力アービタ６４へのリクエスト信号in0_req（in1_req）を断として、他方のリクエス信号in1_req（in0_req）を受け付ける。入力アービタ６４は図６で説明した回路（ＭＥ）であり、c0及びc1が二つの入線（入線０，入線１）、c0_sel及びc1_selが二つの出線（出線０，出線１）に相当する。
【００４５】
出力信号制御回路６７は、排他的論理和回路EX-OR01，EX-OR02，EX-OR11，EX-OR12，ＤＦＦ（DFF0，DFF1）で構成される。EX-OR01とDFF0（EX-OR11とDFF1）の組合せ回路は、g0_sel又はg1_selが１のときにc_clkが０から１に反転すると、ＤＦＦの出力Ｑが反転し、g0_sel又はg1_selが０のときは、c_clkが反転してもＤＦＦの出力Ｑが反転しない。このような構成となっているので、対応する出力レジスタ６３が更新されたときに次段または演算部７０へリクエスト信号out0_req（out1_req）を送出した後、当該出力レジスタ６３の更新を禁止する信号（g0／g1=0）を生成する。更に、次段からのアクノレッジ信号out0_ack（out1_ack）を受けて当該出力レジスタ６３の更新を許可する信号g0／g1を１に反転させる。
【００４６】
出力アービタ６５は出力レジスタ６３の更新可否を次段からのアクノレッジ信号out0_ack，out1_ackを元に調整するするアービタであり、図６で説明した回路（ＭＥ）と同一の回路である。g0及びg1が二つの入線、g0_sel及びg1_selが二つの出線に該当する。
【００４７】
ラッチ信号生成回路６８は、被演算データの選択の反転（c0_sel，c1_selのいずれかが１に反転）があり、かつ更新許可を与える信号（g0_sel，g1_selのいずれかが１）に反転があったときに０から１に反転するラッチ信号（c_clk）を生成するもので、ＯＲ回路（OR_c）、ＯＲ回路（OR_ｇ）、ＡＮＤ回路（AND_c）、及び遅延素子Ｄ１で構成される。ラッチ信号（c_clk）は、入力信号制御回路６６及び出力信号制御回路６７に送られ、各々、前段へのアクノリッジ信号in0_ack（in1_ack）、次段等へのリクエスト信号out0_req（out1_req）の送出タイミングを与える。
【００４８】
遅延素子Ｄ１は、本単位ルータ６１の動作が完全に行われてから前段及び次段へのハンドシェイク信号を送出するようにするもので動作の安定化を目的としたものである。図では、Ｄ１はAND_cの出力に接続されているが、ＯＲ回路（OR_c，OR_g）の入力側又は出力側に設けてもよく、また、AND_cの出力と、ＯＲ回路（OR_c，OR_g）の入力側の双方に設けてもよい。このようにすると、c0_selとc1_sel、又は、g0_selとg1_selの反転が殆ど同時に起きてもc_clkの０への復帰が確実に行われ回路の動作が安定する。
【００４９】
図７及び図５を参照して、本単位ルータ６１の動作を説明する。尚、論理ルールとして所謂正論理の場合を例に説明する。負論理ルールで本発明の構成を変更することは当業者にとっては容易である。また、部分的に正論理／負論理とすることも符号変換手段を要するが可能であり、本発明の本質を変更するものではない。
【００５０】
（１）初期状態１（電源投入直後）：
図７の回路において、ＮＯＴ回路を有する論理回路を除いてた全ての論理ゲート（ＯＲ、ＡＮＤ、ＥＸ−ＯＲ、ＤＦＦ、ＴＦＦ）の出力を０とし、出力ポートにＮＯＴ論理を有するものを１とする。従って、out0_req，out1_req，in0_ack，in1_ackは全て０である。g0,  g1は１である。前段及び次段から信号、out0_ack，out1_ack，in0_req，in1_reqについても０とする。
【００５１】
（２）初期状態２：
上記のように、初期状態１で、g0=1、g1=1となるが、前述した出力アービタ６５の競合調整機能によりg0_sel又はg1_selのいずれか一つが１、他は０となる。例えば、g0の方がg1より早く１になったとしてg0_sel=1，g1_sel=0とする。従って、DFF0のD0=1，DFF1のD1=0である。しかし、この時、c0_sel及びc1_selは共に０（in0_req、in1_reqが共に０）であるのでc_clk=0のままでありDFF0の出力Q0は０であり、DFF1の出力Q1も０である。この時、出力レジスタ６３の更新は許可された状態であるがセレクタ６２（図５参照）のいずれの入力ポートも選択されていないので初期データを保持したままである。
【００５２】
（３）前段からのリクエスト信号in0_reqを受信した場合：
ここで、前段からリクエスト信号（ここではin0_reqのみとする）を受け取ったとする。c0_sel信号が１となり、in0ポートから被演算データが出力レジスタ６３０及び６３１の双方に格納される。尚、被演算データが出力レジスタ６３０及び６３１の双方に格納されるのは、初期状態直後のみであり、通常の動作能時はいずれか一方に格納される点に注意されたい。
【００５３】
（４）データ更新禁止：
c0_selが１に反転するので、ラッチ信号c_clkが所定の時間後（遅延要素Ｄ１の遅延時間に相当）に１に反転する。これによりDFF0のQ0が１に反転し、同時にout0_reqが１に反転し、次段に対して演算等（並列多段構成のルータ部では分配処理）の実行を要求する。これに伴い、g0が０に反転し、出力レジスタ６３０が格納したデータを保持してデータの更新を禁止する。
【００５４】
（５）前段へのアクノレッジ信号送出：
ラッチ信号c_clk が１になったので入力信号制御回路６６０のＡＮＤ回路AND01の出力tog0が１に反転し、TFF0の出力Qを０から１に反転する。そして、前段にin0_ackを返す。また、c0を０に反転することによりc0_selを０にする。
【００５５】
（６）他方の出力レジスタ６３の状態：
上記（４）でg0が０に反転したので、g0_selは０となり、出力アービタ６５の競合調整処理により、g1_selは１となる。尚、出力アービタ６５の出力が切り替わった場合、一旦ラッチ信号c_clkが０となり、c0_sel信号又はc1_sel信号が１であれば所定の時間を置いて再び１に反転するように構成されている。これは前述したように、ラッチ信号生成回路６８のＯＲ回路の二つの入力ポートには図示しない遅延回路を挿入することにより実現できる。尚、この例の場合、c0_sel信号は上記（５）で０に反転しており、また、in1_req信号は受信されていないのでc1_sel信号は０であるのでラッチ信号c_clkは１に反転せず、出力信号制御回路６７１のDFF1のQ1は０のままである。即ち、次段へのリクエスト信号out1_reqは送出されない。
【００５６】
（７）in1_reqが受信されたとき：
このようなときにin1_reqが受信されたとき、c1_selが１に反転し、セレクタがin1ポートの被演算データを選択する。この時、出力レジスタ６３１のみが更新可能となっているので出力レジスタ６３１が当該被演算データで更新される。
【００５７】
（８）次段へのリクエスト信号の送出：
所定遅延時間後ラッチ信号c_clk信号が１に反転し、Q1が１に反転して次段に対してリクエスト信号out1_reqを送出する。その後、g1が０となり、出力レジスタ６３１に格納したデータを保持し、新たなデータ更新を禁止する。
【００５８】
（９）前段へのアクノレッジ信号：
上記（５）と同様に前段へのアクノレッジ信号in1_ackを送出する。また、c１が０に反転することによりc0_selが０になる。
【００５９】
（１０）次段からのアクノレッジ信号受信：
次段からのアクノレッジ信号、例えばout0_ackを受信した時、g0は１に反転し再び出力レジスタ６３０は更新可能となり、例えばin0_reqが反転（１から０へ反転）した時。c0_selは１になり、新たな被演算データを選択し、出力レジスタ６３０を更新する。
【００６０】
以上は、in0_req  →  out0_req  →  in0_ack  →  in1_req  →  out1_req  →  out0_ackの順で外部回路からの要求や応答があった場合についての単位ルータ６１の動作であるが、要求と応答の順序については種々のものがある。全ての場合について説明することは冗長となるのでこの程度に留める。当業者であれば、図７の回路を基にトレースすれば全ての場合についての動作が容易に理解できるであろう。また、ここでは、２×２の単位ルータを用いた場合について説明したが、２×２の単位ルータを並列多段に接続した場合も前後に接続された単位ルータとの間でハンドシェイク動作を行うことによって複数の入出力ポートを持つ被演算データ供給部６０で同様の機能を持たせることができる。
【００６１】
図８はデリミタ信号を説明する図である。前述したように、非演算データの終了を示すデリミタ信号を検出し、各単位非同期式演算回路７１への被演算データの転送を保留するとともに、出力ポートから同じタイミングでリクエスト信号を送出する。また、各単位非同期式演算回路７１では演算レジスタ７４を制御して、各単位非同期式演算回路７１からのリクエスト信号を同じタイミングで送出し、累積演算結果をタイミングを合わせて演算ツリー３０に送出する。被演算データは複数のデータライン（例えば３２本、＃１〜＃３２）で被演算データ供給部１０からパラレル信号として送られる。この内１本（例えばＭＳＢ）にデリミタラインを割り当てdelimをデータラインの終了タイミングに合わせて送出する。
【００６２】
図９はデリミタ信号delimの、被演算データ供給部６０、及び単位演非同期式算回路７１の各ポートにおけるタイミング関係を示したものである。図のように、被演算データ供給部６０の入力ポートには種々のタイミングでデリミタ信号delimが到達する。そこで、被演算データ供給部６０の出力ポートにおいて同じタイミングで出力されるよう調整される。具体的には被演算データ供給部６０から単位非同期式演算回路７１へのデリミタ信号delimを含む被演算データの転送が保留され、各ポートが同じタイミングでリクエスト信号out_reqを送出する。このようにすると上記出力ポートにおけるデリミタ信号delimは同時に単位非同期式演算回路７１に受入れられる。単位非同期式演算回路７１ではデリミタ信号delimにより演算レジスタ７４を制御してデリミタ信号が検出されるまで累積演算された結果を演算ツリー３０に送出する。演算レジスタ７４の内容はその後リセットされる。
【００６３】
図１０は被演算データ供給部６０を４つの２×２単位ルータ６１１〜６１４で構成したときの各単位ルータ６１１〜６１４の入出力ポートにおけるデリミタ信号を示したものである。図のように前段の単位ルータ６１１及び６１２において、各々の出力ポートでデリミタ信号（delim0とdelim1、及び、delim2とdelim3）のタイミングが合わせられる。図のように、後段の単位ルータ６１３、６１４には、各々、デリミタ信号delim0とデリミタ信号delim2、及び、デリミタ信号delim1とデリミタ信号delim4が入力され、単位ルータ６１３、６１４で出力タイミングが合わせられる。その結果、後段の単位ルータでは全部の出力ポートでデリミタ信号delim1〜delim4のタイミングが一致する。以上のように、２×２単位ルータを並列多段接続することにより入力／出力ポート数が増加してもデリミタ信号delimのタイミング合わせが行われる。
【００６４】
図１１にデリミタ検出回路の具体的な構成を示す。図１１は２×２単位ルータに適用した場合の構成である。尚、図１１の回路は次に説明する図１２と協働して動作する。符号は図７と共通である。
【００６５】
以下に動作を説明する。例えば、入力ポートin0側において、デリミタ信号delim0が０で、c0_selが１のときはd0_selは０、c0_sel_normalは１となる。c0_sel_normalは、デリミタ信号がないときの図７におけるc0_selに相当するものである。即ち、この場合、通常の被演算データの処理が行われる。デリミタ信号delim0が１で、c0_selが１のとき、d0_selは１、c0_sel_normalは０となる。即ち、この場合はルータの処理がデリミタ信号の処理に切り替わる。入力ポートin1側においても同様の動作が行われる。
【００６６】
信号d0_sel及び信号d1_selは遅延要素D01とD02により遅延される（遅延された信号がd0_sel_d及びd1_sel_dである）。遅延要素D01とD02を介するのは、これにつづく処理の時間的動作マージンを確保するためである。d0_sel_d及びd1_sel_dは前段へのアクノレッジ信号のトリガとなるtog0及びtog1を生成するのに用いられる。d0_sel_d及びd1_sel_dとはＯＲ回路OR_d1で論理和が取られ、TFF_d1に入力される。TFF_d1では入力パルスの立ち上がりで出力が反転する。従って、二つのデリミタ信号（ここでは、d0_sel_d及びd1_sel_dが対応する信号）が時間を置いて入力されたとき、TFF_d1の出力は１発目のデリミタ信号で１に反転し、２発目のデリミタ信号で０に復帰する。そして、ＡＮＤ回路AND_d1と遅延要素D03が組み合わされた回路によりパルス幅が遅延要素D03の遅延時間に相当する第１デリミタ制御信号first_delimが生成される。
【００６７】
TFF_d1の出力はTFF_d2に入力され、TFF_d2はTFF_d1の１から０への反転時にその出力を１に反転する。１から０への反転は２発目のデリミタ信号の検出を表しているので、この時２発目のデリミタ信号の到達を示す第２デリミタ制御信号second_delimが生成される。ＡＮＤ回路AND_d2はラッチ信号c_clkでTFF_d2をリセットし、第２デリミタ制御信号second_delimを再び０に復帰させる。
【００６８】
図１２は、デリミタ信号による処理を行う２×２単位ルータの構成とその動作を示すものである。本図は図７の回路にデリミタ処理用の回路を一部追加したものである。尚、符号６６Ａ１は６６Ａ０と同じ構成である。符号６７１は６７０と同じ構成である。
【００６９】
入力信号制御回路６６Ａ０は、図７の入力信号制御回路６６０に信号デリミタＯＲ回路0R01、ＡＮＤ回路AND02を追加したものである。ラッチ信号生成回路６８にはＯＲ回路OR04及び３入力のＡＮＤ回路AND01dが追加されている。入力信号制御回路６６Ａ１も同様の構成である。ここでは説明を省略する。
【００７０】
入力アービタ６４とラッチ信号生成回路６８の間には図１１で説明したデリミタ信号検出回路８１が挿入されている。また、デリミタ制御信号発生回路８２は図１１で説明した回路である。図７の回路ではg0_sel及びg1_selは、各々、EX-OR01及びEX-OR11の入力に直結されていたが、本図ではＯＲ回路OR02及びOR03を介して接続されている。以上のとおり、デリミタ処理用の回路は図７に示した通常データ処理用の回路にＯＲ回路（OR01、OR02、OR03、OR04）を介して接続されている。従って、デリミタ信号がないときは図７の回路と同じ動作を行う。
【００７１】
以下にデリミタ信号が入力されたときの動作を図１２及び図１１を参照し、順を追って説明する。  
（１）第１発目のデリミタ信号を含む被演算データがin0から出力レジスタ６３０に取り込まれたとき：
d0_sel_dが１に反転し、第1デリミタ制御信号first_delimであるパルスが生成される（図１１参照）。これによりtog0が１に反転し、前段にアクノレッジ信号in0_ackを返す。c0_sel（c0_sel_normal）信号が０となり、前段からのリクエスト信号がない限り前段からの被演算データの入力が遮断される。この場合、c0_sel_normal信号、及びc1_sel_normal信号は共に０であるのでc_clkは１に反転しないためout0_reqは出力されない。
【００７２】
（２）続いて最初のデリミタに遅れてデリミタ信号を含む被演算データがin1から取り込まれたとき：
上記（１）と同様の手順で、被演算データが出力レジスタ６３１に取り込まれる。次に、前段へアクノレッジ信号in1_ackを返し、新たな被演算データの入力を遮断する。尚、この時のデリミタ信号は２発目のデリミタ信号であるので、図１１で説明したように、被演算データの取り込み時に第２デリミタ制御信号second_delimが生成され、出力信号制御回路６７の排他的論理和EX-OR01及びEX-OR11（図７参照）に１が入力される。やがて、次段の双方からアクノレッジ信号が返ってくるとg1、g1が共に１となり，第２デリミタ制御信号second_delimが生成された時点でＡＮＤ回路AND01dの出力が１に反転し、この時生成されるラッチ信号c_clkをトリガにして二つのリクエスト信号out0_req、out1_reqが同時に送出される。このようにして、デリミタ信号が２つの出力ポートから同時に出力される。
【００７３】
図１３は、単位非同期式演算回路７１の構成の詳細を示したものである。本回路は被演算データ供給部６０の出力ポートごとに設けられる。本回路は二つの被演算データポートdata_in0及びdata_in1を有する。data_in0及びdata_in1に入力されるのは、例えば、式（１）のaｉｊとxである。第１演算ユニット９０はdata_in0及びdata_in1から入力した被演算データの乗算を行うユニットであり（以下乗算ユニットと言うことがある）、第２演算ユニット１００は上記乗算結果の累積を計算し、演算レジスタ７４に格納する累積加算器である。即ち、第１演算ユニット９０、第２演算ユニット１００により式（１）の右辺を計算する。第１演算ユニット９０及び第２演算ユニット１００は共に前述した２線式論理回路である。単位非同期式演算回路７１には、その他の回路として前段／後段とのハンドシェイク信号の処理を行う回路を備えるがここでは説明を省略する。
【００７４】
第１演算ユニット（乗算器）９０は、被演算データを格納する入力レジスタ９１、入力レジスタ９１の１線式データを２線式データに変換する１線／２線変換回路９２、２線式乗算器９３、及び演算終了検出回路９４Ａを有する。
【００７５】
入力レジスタ９１は演算フェーズに応じて制御信号EN_inにより入力データでの更新が制御される。例えば、演算が完了しデータ待ちのときはEN_inが１となり更新が許可され、演算が完了していないときはEN_inが０となり更新が禁止されて現データを保持する。
【００７６】
１線／２線変換回路９２は破線の枠内９２に示すように二つのＡＮＤ回路で構成されている。１線データはＡＮＤ回路AND_f1の一つの入力ポートには直接接続され、ＡＮＤ回路AND_f2の一つの入力ポートにはＮＯＴ回路を通じて接続される。またスペーサ制御信号spacer_contlがAND_f1及びAND_f2の他方の入力ポートに入力される。このような構成になっているので、AND_f1の出力C1，AND_f2の出力C2の組み合わせを（C1，C2）と表示した場合、spacer_contlが１のときは、１線式でのデータ０及びデータ１は、各々、（０，１）、（１，０）となる。spacer_contlが０のときは、全て（０，０）となる。このようにして、spacer_contlが１のとき２線式データが得られ、spacer_contlが０のとき無効符号データが得られる。
【００７７】
２線式乗算器９３の出力も無効符号で区切られた信号となる。演算終了検出回路９４Ａは無効符号で区切られた並列信号について演算が終了したことを検出するもので、具体的には演算結果である一対の各ラインを入力とするＯＲ回路OR_f1〜OR_fnと所謂Ｃ素子c_elmで構成される。各ＯＲ回路OR_fiの出力は、データ部分では１、無効符号部分では０となる。Ｃ素子c_elmは全ての入力が１のときに１を出力し、全ての入力が０のときは０を出力し、これ以外のときは前の値を保持する回路であり、具体的には図１４（ａ）のような構成（２入力に場合）で実現できる。図１４（ｂ）は図１４（ａ）の回路の真理値表である。乗算器が正しい演算結果を得たとき、Ｃ素子c_elmの出力は１となるので、この時に演算が完了していると判断することが出来る。
【００７８】
２線式乗算器９３の２本のラインのうちラインＡが第２演算ユニットの入力となっており、次段である第２演算ユニットの入力レジスタ１０１に入力される。ラインＡは、丁度１線式のデータとなっている。尚、他方のラインＢは上記データＡが反転した１線式データとなっている。
【００７９】
入力レジスタ１０１の出力は１線／２線変換回路１０２の一方の入力ポートに接続されている。他方の入力ポートは演算レジスタ７４の格納データが入力されている。１線／２線変換回路１０２は第１演算ユニット９０の１線／２線変換回路９２と同じ構成である。２線式加算器１０３で加算されたデータは、１線式データに変換され演算レジスタ７４に出力され、レジスタの内容が更新される。更新されたデータ内容は前回の値に第１演算ユニット９０で演算された値が加えられている。従ってこの処理を繰り返せば累積値が求まる。演算終了検出回路９４Ｂは第１演算ユニット９０の９４Ａと同じ構成である。
【００８０】
第２演算ユニット１００は第１演算ユニット９０にないデリミタ検出回路１０４を備える。デリミタ検出回路１０４はデリミタラインに接続され、デリミタ信号の有無を検出する。デリミタ信号が検出された時のデータは累積すべきデータの最終のデータであるので、デリミタ信号が検出された時には次段である演算ツリー３０に対してリクエスト信号を送出すると共に、演算レジスタ７４の更新を禁止するように構成されている。そして、演算ツリー３０からのアクノレッジ信号を待って演算レジスタの初期化を行う。
【００８１】
単位非同期式演算回路７１の動作を順を追って説明する。
（１）前段からのリクエスト信号in_req_cが検出され、演算実行要求があると、前段（出力レジスタ６３）からのデータを受け入れ、入力レジスタ９１のデータを更新し、第１演算ユニット９０がアイドル（前のデータに対する演算が完了）になるまで待機する。この時、レジスタ制御信号EN_inは１である。次に第１演算ユニットがアイドルとなると前段に対してアクノレッジ信号in_ack_cを返す。
（２）レジスタ制御信号EN_inを０に反転し、入力レジスタ９１を保持してデータ更新を禁止する。同時に１線／２線変換回路９２の制御信号spacer_cntlを１とする。これにより、１線式符号から２線式符号への変換が行われる。
（３）２線式乗算器９３において乗算を行う。得られた結果は演算終了検出回路９４で演算が終了したかを判定し、終了したと判定したときは演算終了信号compl1を１にする。
（４）演算終了信号compl1を元に第２演算ユニット１００に対するリクエスト信号を生成し、EN_mulを１にして入力レジスタ１０１を更新許可の状態にする。
（５）第２演算ユニット１００で、上記（１）〜（３）と同様の処理を行い、演算結果が演算レジスタ７４に格納されると、不図示のmul_ack信号が送出される。これによりspacer_cnt1が０となり第１演算ユニット（乗算ユニット）９０が初期化される。
（６）compl1が0となった時、２線式データの各ビットは（０，０）となる。これにより、EN_inは１となる。
【００８２】
演算レジスタ７４と第２演算ユニットの制御は次段へのリクエスト信号out_req_cがデリミタ検出信号delimの検出により送出される点を除いて入力レジスタ１０１の場合と同じである。
【００８３】
以上説明した本発明の構成でガウス・ザイデル法によるソルバを構成し、図１６に示した従来の構成と比較した。未知数の数を３２、単位演算回路の数（ｋ）は共に４である。各単位演算回路に付加した遅延時間を劣化要素として繰り込み、計算機シミュレーションを行った。その結果を図１５に示す。縦軸は本発明の構成により単位演算回路での劣化による遅延がないときの演算時間を基準にしたソルバの演算時間の相対値である。図のように、劣化要素が全くないとしたときには本発明による演算時間は従来の構成のものより若干長くなる。これは被演算データ供給部６０等での処理に処理時間を要するためである。しかし、単位演算回路の劣化要素が増加すると従来の構成の演算時間が急激に増加するのに対して、本発明の構成によれば殆ど演算時間が増加しない。このため、本発明と従来の構成によるものとの差は大きくなる。
【００８４】
以上の説明では、本発明の適用例を多元連立一次方程式のソルバで説明したが、これに限定されるものではなく、同一の計算を並列に又は繰り返して行うものに適用することが出来ることは明らかである。
【００８５】
以上の説明では、演算回路として２線式論理回路を例に説明したが、これに限定されるものではなく、１線式論理回路に適用することも出来、更に、その他非同期式回路に適する回路全般に適用することが出来る。
【００８６】
以上の説明では、正論理を前提として説明したが、これに限定されるものではなく、負論理で構成することはできる。正論理と不論理の相違による具体的回路の相違は本発明の技術的範囲に属する。また、レジスタの制御信号についても、１で更新を許可し、０で更新を禁止する例で説明したがこれに限定されるものではない。
【００８７】
本明細書で説明した回路構成は本発明の思想を具体化する１例であり、種々の変形がある。本発明の思想を同じとする具体的回路の変形は本発明の技術的範囲に含まれる。
【符号の説明】
【００８８】
１０  被演算データ供給部（メモリ部）
３０  演算ツリー
６０  被演算データ分配部（ルータ部）
６１  ２×２単位被演算データ分配回路（２×２単位ルータ）
６２  被演算データ分配回路群
６３  出力レジスタ
６４  入力アービタ
６５  出力アービタ
７０  演算部
７１  単位演算回路
７４  演算レジスタ
【図１】
2010238003.tif 000004
【図２】
2010238003.tif 000005
【図３】
2010238003.tif 000006
【図４】
2010238003.tif 000007
【図５】
2010238003.tif 000008
【図６】
2010238003.tif 000009
【図７】
2010238003.tif 000010
【図８】
2010238003.tif 000011
【図９】
2010238003.tif 000012
【図１０】
2010238003.tif 000013
【図１１】
2010238003.tif 000014
【図１２】
2010238003.tif 000015
【図１３】
2010238003.tif 000016
【図１４】
2010238003.tif 000017
【図１５】
2010238003.tif 000018
【図１６】
2010238003.tif 000019