(57)【要約】【課題】用途に応じて高い自由度をもってデータフロー型の演算を行うことが可能で、高速な演算処理を実現することが可能な演算装置を提供する。【解決手段】演算装置１は、各演算器ＯＰ１〜ＯＰ１６の各々が、複数の入力ポートおよび複数の出力ポートを含み、各入力ポートが演算データの入力ラインまたは前段の演算器の出力ポートに接続され、入力ポートから入力した演算データに対する演算結果が、出力ポートを通して後段に位置する演算器に順次流れていくようなデータフローを形成するように構成されている。【選択図】      図１
2006053687.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算器が一つの半導体集積回路に集積化され、
上記複数の演算器の各々は、
複数の入力ポートおよび複数の出力ポートを含み、
上記各入力ポートが演算データの入力ラインまたは前段の演算器の出力ポートに接続され、
上記入力ポートから入力した演算データに対する演算結果が、上記出力ポートを通して後段に位置する演算器に順次流れていくように形成されている
演算装置。
【請求項２】
上記入力ポートおよび出力ポートは、入力データおよび出力データを保持可能なラッチ回路を含む
請求項１記載の演算装置。
【請求項３】
データフローの上流に位置する演算器の出力ポートのラッチ回路と当該演算器の出力側に位置する演算器の入力ポートのラッチ回路が共用されている
請求項２記載の演算装置。
【請求項４】
上記各演算器の出力ポートのラッチ回路の入力段に、出力ポートのラッチ回路に入る入力信号を演算器の出力と演算器の入力とで切り替えることが可能なスイッチ回路を有する
請求項２記載の演算装置。
【請求項５】
上記ラッチ回路をバイパスすることが可能なスイッチ回路を有する
請求項２記載の演算装置。
【請求項６】
上記ラッチ回路をバイパスすることが可能なスイッチ回路を有する
請求項３記載の演算装置。
【請求項７】
上記ラッチ回路をバイパスすることが可能なスイッチ回路を有する
請求項４記載の演算装置。
【請求項８】
上記ラッチ回路のラッチの値を固定化させるスイッチ回路を有する
請求項２記載の演算装置。
【請求項９】
上記ラッチ回路のラッチの値を固定化させるスイッチ回路を有する
請求項７記載の演算装置。
【請求項１０】
入力ポートのラッチ回路には、決まった定数をラッチすることにより、所定の演算器の入力を固定値にすることが可能である
請求項２記載の演算装置。
【請求項１１】
各ラッチ回路をすべてチェーン状につないでシフトレジスタを構成し、外部からデータを送り込むことにより、これらのラッチ回路に固定値を入力することが可能である
請求項１０記載の演算装置。
【請求項１２】
上記各演算器は、マトリクス状に配置され、１つの演算器を矩形とし、４つの縁部のうち、互いに隣接する２つの縁部に入力ポートが形成され、他の隣接する演算に出力ポートが形成されている
請求項１記載の演算装置。
【請求項１３】
複数の演算器が一つの半導体集積回路に集積化され、
上記複数の演算器の各々は、
複数の入力ポートおよび複数の出力ポートを含み、
各演算器の上層部に互いに配線方向が異なる第１および第２の配線が複数形成され、当該第１および第２の配線を選択的に接続、切断可能な双方向スイッチを有する
演算装置。
【請求項１４】
上記各演算器の上層部に形成された第１または／および第２の配線が下層部にある演算器の入出力ポートと接続切断することが可能である
請求項１３記載の演算装置。
【請求項１５】
各隣接する演算器の上層部の配線同士を接続切断するスイッチを有する
請求項１３記載の演算装置。
【請求項１６】
上記各スイッチにより、一の演算器の入出力ポートが上層の配線を経由して他の任意の位置にある演算器の入出力ポートと任意に接続可能である
請求項１４記載の演算装置。
【請求項１７】
上記各スイッチにより、一の演算器の入出力ポートが上層の配線を経由して他の任意の位置にある演算器の入出力ポートと任意に接続可能である
請求項１５記載の演算装置。
【請求項１８】
上記入力ポートおよび出力ポートは、入力データおよび出力データを保持可能なラッチ回路を含む
請求項１３記載の演算装置。
【請求項１９】
データフローの上流に位置する演算器の出力ポートのラッチ回路と当該演算器の出力側に位置する演算器の入力ポートのラッチ回路が共用されている
請求項１８記載の演算装置。
【請求項２０】
上記各演算器の出力ポートのラッチ回路の入力段に、出力ポートのラッチ回路に入る入力信号を演算器の出力と演算器の入力とで切り替えることが可能なスイッチ回路を有する
請求項１８記載の演算装置。
【請求項２１】
上記ラッチ回路をバイパスすることが可能なスイッチ回路を有する
請求項１８記載の演算装置。
【請求項２２】
上記ラッチ回路のラッチの値を固定化させるスイッチ回路を有する
請求項１８記載の演算装置。
【請求項２３】
入力ポートのラッチ回路には、決まった定数をラッチすることにより、所定の演算器の入力を固定値にすることが可能である
請求項１８記載の演算装置。
【請求項２４】
各ラッチ回路をすべてチェーン状につないでシフトレジスタを構成し、外部からデータを送り込むことにより、これらのラッチ回路に固定値を入力することが可能である
請求項２３記載の演算装置。
【請求項２５】
上記各演算器は、マトリクス状に配置され、１つの演算器を矩形とし、４つの縁部のうち、互いに隣接する２つの縁部に入力ポートが形成され、他の隣接する演算に出力ポートが形成されている
請求項１３記載の演算装置。
【請求項２６】
複数の演算器が一つの半導体集積回路に集積化され、
上記複数の演算器の各々は、
複数の入力ポートおよび複数の出力ポートを含み、
上記各入力ポートが演算データの入力ラインまたは前段の演算器の出力ポートに接続され、
上記入力ポートから入力した演算データに対する演算結果が、上記出力ポートを通して後段に位置する演算器に順次流れていくように形成され、
上記各演算器間の出力ポートと入力ポートとの間にデータの伝搬方向を変更可能なスイッチを含む配線回路が配置されている
演算装置。
【請求項２７】
上記入力ポートおよび出力ポートは、入力データおよび出力データを保持可能なラッチ回路を含む
請求項２６記載の演算装置。
【請求項２８】
上記各演算器の出力ポートのラッチ回路の入力段に、出力ポートのラッチ回路に入る入力信号を演算器の出力と演算器の入力とで切り替えることが可能なスイッチ回路を有する
請求項２７記載の演算装置。
【請求項２９】
上記ラッチ回路をバイパスすることが可能なスイッチ回路を有する
請求項２７記載の演算装置。
【請求項３０】
上記ラッチ回路のラッチの値を固定化させるスイッチ回路を有する
請求項２７記載の演算装置。
【請求項３１】
入力ポートのラッチ回路には、決まった定数をラッチすることにより、所定の演算器の入力を固定値にすることが可能である
請求項２７記載の演算装置。
【請求項３２】
各ラッチ回路をすべてチェーン状につないでシフトレジスタを構成し、外部からデータを送り込むことにより、これらのラッチ回路に固定値を入力することが可能である
請求項３１記載の演算装置。
【請求項３３】
上記各演算器は、マトリクス状に配置され、１つの演算器を矩形とし、４つの縁部のうち、互いに隣接する２つの縁部に入力ポートが形成され、他の隣接する演算に出力ポートが形成されている
請求項２７記載の演算装置。
【請求項３４】
各演算器の上層部に互いに配線方向が異なる第１および第２の配線が複数形成され、当該第１および第２の配線を選択的に接続、切断可能な双方向スイッチを有する
請求項２６記載の演算装置。
【請求項３５】
上記各演算器の上層部に形成された第１または／および第２の配線が下層部にある演算器の入出力ポートと接続切断することが可能である
請求項３４記載の演算装置。
【請求項３６】
各隣接する演算器の上層部の配線同士を接続切断するスイッチを有する
請求項３４記載の演算装置。
【請求項３７】
複数の演算器がマトリクス状に集積化された複数の半導体チップを有し、
上記複数の演算器の各々は、
複数の入力ポートおよび複数の出力ポートを含み、
上記各入力ポートが演算データの入力ラインまたは前段の演算器の出力ポートに接続され、
上記入力ポートから入力した演算データに対する演算結果が、上記出力ポートを通して後段に位置する演算器に順次流れていくように形成され、
半導体チップの最外側の演算器の出力ポートと、他の半導体チップの最外側の演算器の入力ポートが接続されている
演算装置。
【請求項３８】
複数の演算器がマトリクス状に集積化された複数の半導体チップを有し、
上記複数の演算器の各々は、
複数の入力ポートおよび複数の出力ポートを含み、
各演算器の上層部に互いに配線方向が異なる第１および第２の配線を複数形成し、当該第１および第２の配線を選択的に接続、切断可能な双方向スイッチを有し、
半導体チップの最外側の演算器の出力ポートと、他の半導体チップの最外側の演算器の入力ポートが接続されている
演算装置。
【請求項３９】
複数の演算器がマトリクス状に集積化された複数の半導体チップを有し、
上記複数の演算器の各々は、
複数の入力ポートおよび複数の出力ポートを含み、
上記各入力ポートが演算データの入力ラインまたは前段の演算器の出力ポートに接続され、
上記入力ポートから入力した演算データに対する演算結果が、上記出力ポートを通して後段に位置する演算器に順次流れていくように形成され、
上記各演算器間の出力ポートと入力ポートとの間にデータの伝搬方向を変更可能なスイッチを含む配線回路が配置され、
半導体チップの最外側の演算器の出力ポートと、他の半導体チップの最外側の演算器の入力ポートが接続されている
演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の演算器を有し、再構成可能なデータフロー型の並列計算機として機能する演算装置に関するものである。
【背景技術】
【０００２】
現在、さまざまな並列コンピュータが提案されている。その多くは、ＣＰＵと呼ばれる逐次処理機能をもつプロセッサを複数配置し、これらをネットワークで結ぶ構成を基本としている。
また、複数の演算器を有し、入力データに応じて必要な演算器を選択して、選択したデータに対して所定の演算を実行するプロセッサが提案されている（たとえば特許文献１参照）。
これらのプロセッサにおいては、ＣＰＵが個別にメモリを持ち、あるいは共有のメモリを複数のＣＰＵが共有して使用することで並列処理が行われていくのが一般的である。
【０００３】
この場合、各ＣＰＵがアクセスするメモリには、逐次処理の内容が書かれているコードメモリと、処理をするデータが格納されているデータメモリがある。
そして、ＣＰＵはまずコードメモリからどういう処理をするかを読み込み、ここに書かれた内容をもとに、逐次、データが格納されているメモリをアクセスして、データをＣＰＵに取り込み、取り込んだデータに対する処理をし、その結果をデータメモリに格納するということを繰り返している。
【特許文献１】特開平７−７３０１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、計算をするときも一旦データメモリに格納されているデータを取り出してきて、ＣＰＵ内のバッファに一旦蓄え、そこで演算をしてから、結果をデータメモリに戻すため、そこで不必要な処理時間がかかることになる。
【０００５】
また、複数の演算器を有する場合であっても、入力データに対して使用する演算器を動的および静的に選択して演算を行うことができるものの、演算器数にも限りがあり、用途に応じて高い自由度をもってデータフロー型の演算を行うことは困難であり、しかも高速な演算処理を実現することが困難であるという不利益がある。
【０００６】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、用途に応じて高い自由度をもってデータフロー型の演算を行うことが可能で、高速な演算処理を実現することが可能な演算装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の第１の観点は、複数の演算器が一つの半導体集積回路に集積化され、上記複数の演算器の各々は、複数の入力ポートおよび複数の出力ポートを含み、上記各入力ポートが演算データの入力ラインまたは前段の演算器の出力ポートに接続され、上記入力ポートから入力した演算データに対する演算結果が、上記出力ポートを通して後段に位置する演算器に順次流れていくように形成されている。
【０００８】
好適には、上記入力ポートおよび出力ポートは、入力データおよび出力データを保持可能なラッチ回路を含む。
【０００９】
好適には、データフローの上流に位置する演算器の出力ポートのラッチ回路と当該演算器の出力側に位置する演算器の入力ポートのラッチ回路が共用されている。
【００１０】
好適には、上記各演算器の出力ポートのラッチ回路の入力段に、出力ポートのラッチ回路に入る入力信号を演算器の出力と演算器の入力とで切り替えることが可能なスイッチ回路を有する。
【００１１】
好適には、上記ラッチ回路をバイパスすることが可能なスイッチ回路を有する。
【００１２】
好適には、上記ラッチ回路のラッチの値を固定化させるスイッチ回路を有する。
【００１３】
好適には、入力ポートのラッチ回路には、決まった定数をラッチすることにより、所定の演算器の入力を固定値にすることが可能である。
【００１４】
好適には、各ラッチ回路をすべてチェーン状につないでシフトレジスタを構成し、外部からデータを送り込むことにより、これらのラッチ回路に固定値を入力することが可能である。
【００１５】
好適には、上記各演算器は、マトリクス状に配置され、１つの演算器を矩形とし、４つの縁部のうち、互いに隣接する２つの縁部に入力ポートが形成され、他の隣接する演算に出力ポートが形成されている。
【００１６】
本発明の第２の観点は、複数の演算器が一つの半導体集積回路に集積化され、上記複数の演算器の各々は、複数の入力ポートおよび複数の出力ポートを含み、各演算器の上層部に互いに配線方向が異なる第１および第２の配線が複数形成され、当該第１および第２の配線を選択的に接続、切断可能な双方向スイッチを有する。
【００１７】
好適には、上記各演算器の上層部に形成された第１または／および第２の配線が下層部にある演算器の入出力ポートと接続切断することが可能である。
【００１８】
好適には、各隣接する演算器の上層部の配線同士を接続切断するスイッチを有する。
【００１９】
好適には、上記各スイッチにより、一の演算器の入出力ポートが上層の配線を経由して他の任意の位置にある演算器の入出力ポートと任意に接続可能である。
【００２０】
本発明の第３の観点は、複数の演算器が一つの半導体集積回路に集積化され、上記複数の演算器の各々は、複数の入力ポートおよび複数の出力ポートを含み、上記各入力ポートが演算データの入力ラインまたは前段の演算器の出力ポートに接続され、上記入力ポートから入力した演算データに対する演算結果が、上記出力ポートを通して後段に位置する演算器に順次流れていくように形成され、上記各演算器間の出力ポートと入力ポートとの間にデータの伝搬方向を変更可能なスイッチを含む配線回路が配置されている。
【００２１】
本発明の第４の観点は、複数の演算器がマトリクス状に集積化された複数の半導体チップを有し、上記複数の演算器の各々は、複数の入力ポートおよび複数の出力ポートを含み、上記各入力ポートが演算データの入力ラインまたは前段の演算器の出力ポートに接続され、上記入力ポートから入力した演算データに対する演算結果が、上記出力ポートを通して後段に位置する演算器に順次流れていくように形成され、半導体チップの最外側の演算器の出力ポートと、他の半導体チップの最外側の演算器の入力ポートが接続されている。
【００２２】
本発明の第５の観点は、複数の演算器がマトリクス状に集積化された複数の半導体チップを有し、上記複数の演算器の各々は、複数の入力ポートおよび複数の出力ポートを含み、上記出力ポートを通して後段に位置する演算器に順次流れていくように形成され、各演算器の上層部に互いに配線方向が異なる第１および第２の配線を複数形成し、当該第１および第２の配線を選択的に接続、切断可能な双方向スイッチを有し、半導体チップの最外側の演算器の出力ポートと、他の半導体チップの最外側の演算器の入力ポートが接続されている。
【００２３】
本発明の第６の観点は、複数の演算器がマトリクス状に集積化された複数の半導体チップを有し、上記複数の演算器の各々は、複数の入力ポートおよび複数の出力ポートを含み、上記各入力ポートが演算データの入力ラインまたは前段の演算器の出力ポートに接続され、上記入力ポートから入力した演算データに対する演算結果が、上記出力ポートを通して後段に位置する演算器に順次流れていくように形成され、上記各演算器間の出力ポートと入力ポートとの間にデータの伝搬方向を変更可能なスイッチを含む配線回路が配置され、半導体チップの最外側の演算器の出力ポートと、他の半導体チップの最外側の演算器の入力ポートが接続されている。
【００２４】
本発明によれば、複数の演算器が１つの半導体集積回路に集積されており、それぞれの演算器が複数の入力ポートを持ち、また、複数の出力ポートを持ち、入力データがこれによって演算されその結果がほかの演算器に順次流れていく。
また、各演算器の入力出力それぞれのポートにラッチ回路をもち、データをここで蓄える。
また、入力側のラッチ回路に決まった定数をラッチすることにより、所定の演算器の入力を固定値にする。
また、各演算器の入力出力ポートにフリップフロップ等のラッチ回路を持つことにより、パイプライン処理が可能となっている。
また、各演算器の出力ポートのラッチ回路の入り口設けられたスイッチ回路により、出力ポートのラッチ回路へ入る入力信号を演算器の出力と演算器の入力とが切り替えられる。
また、スイッチ回路により、必要に応じてラッチ回路がバイパスされる。
また、スイッチ回路により、ラッチ回路のラッチの値が固定化される。
【発明の効果】
【００２５】
本発明によれば、用途に応じて高い自由度をもってデータフロー型の演算を行うことが可能で、高速な演算処理を実現することができる利点がある。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施形態について、図面に関連付けて説明する。
【００２７】
図１は、本発明に係る演算装置の第１の実施形態の基本的な構成を示す図である。
【００２８】
本実施形態に係る演算装置１は、図１に示すように、複数（図１の例では１６個）の矩形をなす演算器ＯＰ−１〜ＯＰ−１６が、ｍ×ｎ（本実施形態では４×４）のマトリクス状態に配置されている。
演算装置１は、各演算器ＯＰ１〜ＯＰ１６の各々が、複数の入力ポートおよび複数の出力ポートを含み、各入力ポートが演算データの入力ラインまたは前段の演算器の出力ポートに接続され、入力ポートから入力した演算データに対する演算結果が、出力ポートを通して後段に位置する演算器に順次流れていくようなデータフローを形成するように構成されている。
【００２９】
本実施形態においては、図１中、矩形をなす各演算器ＯＰ１〜ＯＰ１６の上縁部ＵＳＤおよび左縁部ＬＳＤに複数の入力ポートが形成され、右縁部ＲＳＤおよび底縁部ＢＳＤに複数の出力ポートが形成されている。
すなわち、図１の例では、各演算器ＯＰ１〜ＯＰ１６の左部および上部からデータが入力され、右および下部からデータが出力されるようになっている。
各演算器ＯＰ１〜ＯＰ１６に各入力ポートおよび出力ポートは、入力データおよび出力データを保持するフリップフロップＦＦからなるラッチ回路を含んでいる。
そして、データフローの上流に位置する演算器の出力ポートのラッチ回路と、この上流側に位置する演算器の出力側に位置する演算器の入力ポートのラッチ回路が共用されている。
具体的には、以下のように構成されている。
【００３０】
演算器ＯＰ１は、上縁部ＵＳＤに入力ポートＩＰ１Ｕが形成され、左縁部ＬＳＤに入力ポートＩＰ１Ｌが形成され、右縁部ＲＳＤに右側に隣接する演算器ＯＰ２とラッチ回路を共用する共用ポートＳＰ１２ＲＬが形成され、底縁部ＢＳＤに下側に隣接する演算器ＯＰ５とラッチ回路を共用する共用ポートＳＰ１５ＢＵが形成されている。
演算器ＯＰ２は、上縁部ＵＳＤに入力ポートＩＰ２Ｕが形成され、左縁部ＬＳＤに左側に隣接する演算器ＯＰ１と共用する共用ポートＳＰ１２ＲＬが形成され（配置され）、右縁部ＲＳＤに右側に隣接する演算器ＯＰ３とラッチ回路を共用する共用ポートＳＰ２３ＲＬが形成され、底縁部ＢＳＤに下側に隣接する演算器ＯＰ６とラッチ回路を共用する共用ポートＳＰ２６ＢＵが形成されている。
演算器ＯＰ３は、上縁部ＵＳＤに入力ポートＩＰ３Ｕが形成され、左縁部ＬＳＤに左側に隣接する演算器ＯＰ２と共用する共用ポートＳＰ２３ＲＬが形成され（配置され）、右縁部ＲＳＤに右側に隣接する演算器ＯＰ４とラッチ回路を共用する共用ポートＳＰ３４ＲＬが形成され、底縁部ＢＳＤに下側に隣接する演算器ＯＰ７とラッチ回路を共用する共用ポートＳＰ３７ＢＵが形成されている。
演算器ＯＰ４は、上縁部ＵＳＤに入力ポートＩＰ４Ｕが形成され、左縁部ＬＳＤに左側に隣接する演算器ＯＰ３と共用する共用ポートＳＰ３４ＲＬが形成され（配置され）、右縁部ＲＳＤに右側にラッチ回路を有する出力ポートＩＯ４Ｒが形成され、底縁部ＢＳＤに下側に隣接する演算器ＯＰ８とラッチ回路を共用する共用ポートＳＰ４８ＢＵが形成されている。
【００３１】
演算器ＯＰ５は、上縁部ＵＳＤに上側に隣接する演算器ＯＰ１とラッチ回路を共用する共用ポートＳＰ１５ＢＵが形成（配置）され、左縁部ＬＳＤに入力ポートＩＰ５Ｌが形成され、右縁部ＲＳＤに右側に隣接する演算器ＯＰ６とラッチ回路を共用する共用ポートＳＰ５６ＲＬが形成され、底縁部ＢＳＤに下側に隣接する演算器ＯＰ９とラッチ回路を共用する共用ポートＳＰ５９ＢＵが形成されている。
演算器ＯＰ６は、上縁部ＵＳＤに上側に隣接する演算器ＯＰ２とラッチ回路を共用する共用ポートＳＰ２６ＢＵが形成（配置）され、左縁部ＬＳＤに左側に隣接する演算器ＯＰ５と共用する共用ポートＳＰ５６ＲＬが形成され（配置され）、右縁部ＲＳＤに右側に隣接する演算器ＯＰ７とラッチ回路を共用する共用ポートＳＰ６７ＲＬが形成され、底縁部ＢＳＤに下側に隣接する演算器ＯＰ１０とラッチ回路を共用する共用ポートＳＰ６１０ＢＵが形成されている。
演算器ＯＰ７は、上縁部ＵＳＤに上側に隣接する演算器ＯＰ３とラッチ回路を共用する共用ポートＳＰ３７ＢＵが形成（配置）され、左縁部ＬＳＤに左側に隣接する演算器ＯＰ６と共用する共用ポートＳＰ６７ＲＬが形成され（配置され）、右縁部ＲＳＤに右側に隣接する演算器ＯＰ８とラッチ回路を共用する共用ポートＳＰ７８ＲＬが形成され、底縁部ＢＳＤに下側に隣接する演算器ＯＰ１１とラッチ回路を共用する共用ポートＳＰ７１１ＢＵが形成されている。
演算器ＯＰ８は、上縁部ＵＳＤに上側に隣接する演算器ＯＰ４とラッチ回路を共用する共用ポートＳＰ４８ＢＵが形成（配置）され、左縁部ＬＳＤに左側に隣接する演算器ＯＰ７と共用する共用ポートＳＰ７８ＲＬが形成され（配置され）、右縁部ＲＳＤにラッチ回路を有する出力ポートＩＯ８Ｒが形成され、底縁部ＢＳＤに下側に隣接する演算器ＯＰ１２とラッチ回路を共用する共用ポートＳＰ８１２ＢＵが形成されている。
【００３２】
演算器ＯＰ９は、上縁部ＵＳＤに上側に隣接する演算器ＯＰ５とラッチ回路を共用する共用ポートＳＰ５９ＢＵが形成（配置）され、左縁部ＬＳＤに入力ポートＩＰ９Ｌが形成され、右縁部ＲＳＤに右側に隣接する演算器ＯＰ１０とラッチ回路を共用する共用ポートＳＰ９１０ＲＬが形成され、底縁部ＢＳＤに下側に隣接する演算器ＯＰ１３とラッチ回路を共用する共用ポートＳＰ９１３ＢＵが形成されている。
演算器ＯＰ１０は、上縁部ＵＳＤに上側に隣接する演算器ＯＰ６とラッチ回路を共用する共用ポートＳＰ６１０ＢＵが形成（配置）され、左縁部ＬＳＤに左側に隣接する演算器ＯＰ９と共用する共用ポートＳＰ９１０ＲＬが形成され（配置され）、右縁部ＲＳＤに右側に隣接する演算器ＯＰ１１とラッチ回路を共用する共用ポートＳＰ１０１１ＲＬが形成され、底縁部ＢＳＤに下側に隣接する演算器ＯＰ１４とラッチ回路を共用する共用ポートＳＰ１０１４ＢＵが形成されている。
演算器ＯＰ１１は、上縁部ＵＳＤに上側に隣接する演算器ＯＰ７とラッチ回路を共用する共用ポートＳＰ７１１ＢＵが形成（配置）され、左縁部ＬＳＤに左側に隣接する演算器ＯＰ１０と共用する共用ポートＳＰ１０１１ＲＬが形成され（配置され）、右縁部ＲＳＤに右側に隣接する演算器ＯＰ１２とラッチ回路を共用する共用ポートＳＰ１１１２ＲＬが形成され、底縁部ＢＳＤに下側に隣接する演算器ＯＰ１５とラッチ回路を共用する共用ポートＳＰ１１１５ＢＵが形成されている。
演算器ＯＰ１２は、上縁部ＵＳＤに上側に隣接する演算器ＯＰ８とラッチ回路を共用する共用ポートＳＰ８１２ＢＵが形成（配置）され、左縁部ＬＳＤに左側に隣接する演算器ＯＰ１１と共用する共用ポートＳＰ１１１２ＲＬが形成され（配置され）、右縁部ＲＳＤにラッチ回路を有する出力ポートＩＯ１２Ｒが形成され、底縁部ＢＳＤに下側に隣接する演算器ＯＰ１６とラッチ回路を共用する共用ポートＳＰ１２１６ＢＵが形成されている。
【００３３】
演算器ＯＰ１３は、上縁部ＵＳＤに上側に隣接する演算器ＯＰ９とラッチ回路を共用する共用ポートＳＰ９１３ＢＵが形成（配置）され、左縁部ＬＳＤに入力ポートＩＰ１３Ｌが形成され、右縁部ＲＳＤに右側に隣接する演算器ＯＰ１４とラッチ回路を共用する共用ポートＳＰ１３１４ＲＬが形成され、底縁部ＢＳＤにラッチ回路を有する出力ポートＩＯ１３Ｂが形成されている。
演算器ＯＰ１４は、上縁部ＵＳＤに上側に隣接する演算器ＯＰ１０とラッチ回路を共用する共用ポートＳＰ１０１４ＢＵが形成（配置）され、左縁部ＬＳＤに左側に隣接する演算器ＯＰ１３と共用する共用ポートＳＰ１３１４ＲＬが形成され（配置され）、右縁部ＲＳＤに右側に隣接する演算器ＯＰ１５とラッチ回路を共用する共用ポートＳＰ１４１５ＲＬが形成され、底縁部ＢＳＤにラッチ回路を有する出力ポートＩＯ１４Ｂが形成されている。
演算器ＯＰ１５は、上縁部ＵＳＤに上側に隣接する演算器ＯＰ１１とラッチ回路を共用する共用ポートＳＰ１１１５ＢＵが形成（配置）され、左縁部ＬＳＤに左側に隣接する演算器ＯＰ１４と共用する共用ポートＳＰ１４１５ＲＬが形成され（配置され）、右縁部ＲＳＤに右側に隣接する演算器ＯＰ１６とラッチ回路を共用する共用ポートＳＰ１５１６ＲＬが形成され、底縁部ＢＳＤにラッチ回路を有する出力ポートＩＯ１５Ｂが形成されている。
演算器ＯＰ１６は、上縁部ＵＳＤに上側に隣接する演算器ＯＰ１２とラッチ回路を共用する共用ポートＳＰ１２１６ＢＵが形成（配置）され、左縁部ＬＳＤに左側に隣接する演算器ＯＰ１５と共用する共用ポートＳＰ１５１６ＲＬが形成され（配置され）、右縁部ＲＳＤにラッチ回路を有する出力ポートＩＯ１６Ｒが形成され、底縁部ＢＳＤにラッチ回路を有する出力ポートＩＯ１６Ｂが形成されている。
【００３４】
図２は、本実施形態に係る演算器と共用ポートの構成例を示す図である。
図２では、演算器ＯＰと、共用ポートＳＰ１２ＲＬ，ＳＰ１５ＢＵを例に説明するが、他の演算器および共用ポートも同様の構成を有する。基本的には、入力ポートＩＰおよび出力ポートＩＯは端子に直接的にラッチ回路が接続される構成をとることが可能であるが、以下に説明する共用ポートと同様の構成をとることも可能である。
また、図２においては、演算器ＯＰ１の各縁部に配置される端子は、４個としているがこの数については、仕様に応じて適宜設定される。また、図２の入力ポートに配置されるフリップフロップからなるラッチ回路は図面の簡単化のために省略している。
【００３５】
演算器ＯＰ１は、加減算、乗算、シフトその他ができるようになっており、切り替えて使用できるようになっている。
上述したように、演算器ＯＰ１は矩形状をなし、上縁部ＵＳＤに入力端子ＴＩＵ１〜ＴＩＵ４が形成され、左縁部ＬＳＤに入力端子ＴＩＬ１〜ＴＩＬ４が形成され、右縁部ＲＳＤに出力端子ＴＯＲ１〜ＴＯＲ４が形成され、底縁部ＢＳＤに出力端子ＴＯＢ１〜ＴＯＢ４が形成されている。
【００３６】
共用ポートＳＰ１２ＲＬは、演算器ＯＰ１の右縁部ＲＳＤの出力端子ＴＯＲ１〜ＴＯＲ４に対して、右側に隣接して配置される演算器（ＯＰ２）の左縁部ＬＳＤの入力端子ＴＩＬ１〜ＴＩＬ４に接続される、フリップフロップＦＦを含むセレクタＳＥＲ１〜ＳＥＲ４が配置されている。
【００３７】
セレクタＳＥＲ１〜ＳＥＲ４は、ラッチ回路としてのフリップフロップＦＦ１およびスイッチ回路ＳＷ１１，ＳＷ１２を有する。
スイッチ回路ＳＷ１１の固定接点ａがフリップフロップＦＦ１の入力端子Ｄに接続され、作動接点ｂが演算器ＯＰ１の出力端子ＴＯＲ１〜ＴＯＲ４に接続され、作動接点ｃがフリップフロップＦＦ１の出力端子Ｑに接続されている。
スイッチ回路ＳＷ１２の固定接点ａが右側に隣接して配置される演算器（ＯＰ２）の左縁部ＬＳＤの入力端子ＴＩＬ１〜ＴＩＬ４に接続され、作動接点ｂがフリップフロップＦＦ１の出力端子Ｑに接続され、作動接点ｃが演算器ＯＰ１の出力端子ＴＯＲ１〜ＴＯＲ４に接続されている。
スイッチ回路ＳＷ１１，ＳＷ１２の切り替えは図示しない制御系により制御され、たとえばスイッチ回路ＳＷ１１，ＳＷ１２の固定接点ａを作動接点ｂに接続すると、演算器ＯＰ１で演算され、あるいはそのまま通されたデータをフリップフロップＦＦ１に一旦保持した後に、次段の演算器（ＯＰ２）の入力端子ＴＩＬ１〜ＴＩＬ４に供給することが可能となる。
スイッチ回路ＳＷ１１の固定接点ａを作動接点ｃに接続すると、フリップフロップＦＦ１に同データをラッチし続けて（ラッチデータを固定化させて）次段の演算器に供給可能となる。
また、スイッチ回路ＳＷ１２の固定接点ａを作動接点ｃに接続すると、スイッチ回路ＳＷ１１の接続状態にかかわらず、演算器ＯＰ１で演算され、あるいはそのまま通されたデータをフリップフロップＦＦ１に一旦保持することなく、次段の演算器（ＯＰ２）の入力端子ＴＩＬ１〜ＴＩＬ４に供給することが可能となる。
すなわち、各演算器の出力はフリップフロップに接続されているが、セレクタにより、フリップフロップを経由しなくてもよい構造になっている。
【００３８】
共用ポートＳＰ１５ＢＵは、演算器ＯＰ１の底縁部ＢＳＤの出力端子ＴＯＢ１〜ＴＯＢ４に対して、下側に隣接して配置される演算器（ＯＰ５）の上縁部ＵＳＤの入力端子ＴＩＵ１〜ＴＩＵ４に接続される、フリップフロップＦＦを含むセレクタＳＥＢ１〜ＳＥＢ４が配置されている。
【００３９】
セレクタＳＥＢ１〜ＳＥＢ４は、ラッチ回路としてのフリップフロップＦＦ２およびスイッチ回路ＳＷ２１，ＳＷ２２を有する。
スイッチ回路ＳＷ２１の固定接点ａがフリップフロップＦＦ２の入力端子Ｄに接続され、作動接点ｂが演算器ＯＰ１の出力端子ＴＯＢ１〜ＴＯＢ４に接続され、作動接点ｃがフリップフロップＦＦ２の出力端子Ｑに接続されている。
スイッチ回路ＳＷ２２の固定接点ａが下側に隣接して配置される演算器（ＯＰ５）の上縁部ＵＳＤの入力端子ＴＩＵ１〜ＴＩＵ４に接続され、作動接点ｂがフリップフロップＦＦ２の出力端子Ｑに接続され、作動接点ｃが演算器ＯＰ１の出力端子ＴＯＢ１〜ＴＯＢ４に接続されている。
スイッチ回路ＳＷ２１，ＳＷ２２の切り替えは図示しない制御系により制御され、たとえばスイッチ回路ＳＷ２１，ＳＷ２２の固定接点ａを作動接点ｂに接続すると、演算器ＯＰ１で演算され、あるいはそのまま通されたデータをフリップフロップＦＦ２に一旦保持した後に、次段の演算器（ＯＰ２）の入力端子ＴＩＵ１〜ＴＩＵ４に供給することが可能となる。
スイッチ回路ＳＷ２１の固定接点ａを作動接点ｃに接続すると、フリップフロップＦＦ２に同データをラッチし続けて（ラッチデータを固定化させて）次段の演算器に供給可能となる。
また、スイッチ回路ＳＷ２２の固定接点ａを作動接点ｃに接続すると、スイッチ回路ＳＷ２１の接続状態にかかわらず、演算器ＯＰ１で演算され、あるいはそのまま通されたデータをフリップフロップＦＦ１に一旦保持することなく、次段の演算器（ＯＰ５）の入力端子ＴＩＵ１〜ＴＩＵ４に供給することが可能となる。
すなわち、各演算器の出力はフリップフロップに接続されているが、セレクタにより、フリップフロップを経由しなくてもよい構造になっている。
【００４０】
以上の共用ポートの構成は、図１の入力ポートおよび出力ポートに採用することが可能である。
このように、本実施形態においては、演算器の入力は左部、上部から入り、演算結果が右部および下部から出力されるように構成されている。右部、下部の出力は同じものが出力される場合もある。そして、これら出力はフリップフロップＦＦに接続されているが、セレクタが配置されており、このセレクタによって、フリップフロップＦＦはバイパス可能である。
【００４１】
以上のように、本実施形態によれば、各演算器の入出力それぞれのポートにフリップフロップ等からなるラッチ回路を設けることにより、データをここで蓄えることが可能となっている。
また、入力側のラッチ回路に決まった定数をラッチすることにより、所定の演算器の入力を固定値にすることが可能となっている。
また、各演算器の入力出力ポートにフリップフロップ等のラッチ回路を持つことにより、パイプライン処理が可能となっている。
また、各演算器の出力ポートのラッチ回路としてのフリップフロップＦＦ１，ＦＦ２の入り口にスイッチＳＷ１１，ＳＷ２１を設けることにより、出力ポートのラッチ回路としてのフリップフロップＦＦ１，ＦＦ２に入る入力信号を、演算器の出力と演算器の入力とで切り替えることが可能となっている。
また、スイッチ回路ＳＷ１２，ＳＷ２２により、ラッチ回路としてのフリップフロップＦＦ１，ＦＦ２をバイパスすることが可能となっている。
また、スイッチ回路ＳＷ１１，ＳＷ１２、ＳＷ２１，ＳＷ２２によりラッチする値を固定化させることが可能となっている。
すなわち、一旦格納されたラッチの値は以降固定されるように、スイッチ回路ＳＷ１１，ＳＷ１２、ＳＷ２１，ＳＷ２２によって外部からデータが入ってこないよう考慮されている。
各ラッチ回路に固定値を与える方法としては、各ラッチをすべてチェーン状につなぎ、これをシフトレジスタとして、外部からデータを送り込むことにより、これらのラッチ回路としてのフリップフロップＦＦ１，ＦＦ２に固定値を入力することが可能となる。
【００４２】
なお、本実施形態においては、演算器をマトリクス状に配置し、各演算器ＯＰ１〜ＯＰ１６の左部および上部からデータが入力され、右部および下（底）部からデータが出力されるように構成しているが、入出力する部位は、上下左右は特にこだわらない。
たとえば、演算器の右部および上部からデータが入力され、左部および下（底）部からデータが出力されるように構成することも可能である。
また、演算器の左部および下部からデータが入力され、右部および上部からデータが出力されるように構成することも可能である。
また、演算器の右部および下部からデータが入力され、左部および上部からデータが出力されるように構成することも可能である。
【００４３】
図３は、本発明に係る演算装置の他の特徴的な構成を示す図であって、本実施形態における演算器の上層部に複数の配線が縦横にマトリクス状（メッシュ状）に形成されている構成例を示す図である。
【００４４】
図３に示すように、本実施形態の演算装置１においては、各演算器ＯＰ（１〜１６）の上層部には配線が通っている。
具体的には、各演算器ＯＰの上層部に図示しない絶縁層を介して図中上縁部と下（底）縁部間にわたっていわゆる縦方向に複数の第１の配線ＬＩＮＣ１〜ＬＩＮＣｎ（ｎは整数で、たとえば３２）が所定間隔をおいて形成されている。
第１の配線ＬＩＮＣ１〜ＬＩＮＣｎのさらに上層に図示しない絶縁層を介して、図中左縁部と右縁部間にわたっていわゆる横方向に複数の第２の配線ＵＩＮＣ１〜ＵＩＮＣｎが所定間隔をおいて形成されている。
そして、第１の配線ＬＩＮＣ１〜ＬＩＮＣｎと第２の配線ＵＩＮＣ１〜ＵＩＮＣｎが電気的に絶縁されて交差する各交差部には、対応する第１の配線ＬＩＮＣ１〜ＬＩＮＣｎと第２の配線ＵＩＮＣ１〜ＵＩＮＣｎとを選択的に接続するための双方向スイッチＢＳＷ１１〜ＢＳＷ１ｎ、ＢＳＷ２１〜ＢＳＷ２ｎ、ＢＳＷ３１〜ＢＳＷ３ｎ、・・・、ＢＳＷｎ１〜ＢＳＷｎｎが形成されている。
これにより、第１の配線ＬＩＮＣ１〜ＬＩＮＣｎと第２の配線ＵＩＮＣ１〜ＵＩＮＣｎとを図示しない制御系の制御の下、任意に接続し、切断することが可能となっている。
【００４５】
また、隣接する演算器同士の配線間、図２の例では、演算器ＯＰ１の上層に形成された第２の配線ＵＩＮＣ１〜ＵＩＮＣｎの一端部（右端部）と右側に隣接する演算器ＯＰ２の上層に形成された第２の配線ＵＩＮＣ１〜ＵＩＮＣｎの一端部（左端部）との間に、双方向スイッチＢＳＷＯＰ１〜ＢＳＷＯＰｎが形成されている。
また、図示していないが、演算器ＯＰ１の上層に形成された第１の配線ＬＩＮＣ１〜ＬＩＮＣｎの一端部（下端部）と下側に隣接する演算器ＯＰ（５）の上層に形成された第１の配線ＬＩＮＣ１〜ＬＩＮＣｎの一端部（上端部）との間に、双方向スイッチＢＳＷＯＰを形成することも可能である。
また、第１の配線ＬＩＮＣ１〜ＬＩＮＣｎまたは／および第２の配線ＵＩＮＣ１〜ＵＩＮＣｎと下層の演算器の入力ポートおよび出力ポートとを接続する図示しないスイッチを形成することも可能である。
これにより、演算器から出力されたデータを、上層部にある第１の配線ＬＩＮＣ１〜ＬＩＮＣｎまたは／および第２の配線ＵＩＮＣ１〜ＵＩＮＣｎを通して、任意の位置にある演算器に接続することが可能になる。
【００４６】
以下に、上記構成を有する演算装置１０による演算処理例を説明する。
ここでは、たとえば、例として、ラプラス方程式を解くことを考える。
ラプラス方程式は、次式で表される。
【００４７】
【数１】
2006053687.tif 000003
【００４８】
これを直交格子系の有限要素法で解くことを考えると、ある格子点の次世代の値はその周りの４点の平均値になる。これを解くための一例として、図４を示す。
ここで各演算器はたとえば、６４ビットの浮動小数点の加減算、乗算器とする。これは、３２ビットの浮動小数点でもあるいは固定小数点、あるいは整数に関する演算器でもかまわない。
【００４９】
図４において、Ａ，Ｂ，Ｃ，Ｄ、および、１，２，３，４はそれぞれ各演算器を示す座標を表す。
【００５０】
４つの入力は左端の４つの各点ａ，ｂ，ｃ，ｄから入力される。そして、座標Ａ１にある演算器ＯＰ１は使用せず、演算器の上部にある配線層間で、横方向の第１の配線ＬＩＮＣと縦方向の第２の配線ＵＬＩＣが双方向スイッチＢＳＷで接続されるのみで、座標Ａ２にある演算器ＯＰ５にデータを送るのみである。
図４は概略図として示しているが、座標Ａ１の演算器ＯＰ１の上層部の接続の詳細を図５に示す。
図５に示すように、左部から入力されたデータ（信号）は、第２の配線ＵＩＮＣ１〜ＵＩＮＣｎを伝搬され、図示しない制御系により双方向スイッチＢＳＷ１１，ＢＳＷ２２，ＢＳＷ３３，・・・，ＢＳＷｎｎが導通する（オンする）にように制御される。これにより、第２の配線ＵＩＮＣ１〜ＵＩＮＣｎを伝搬される信号が第１の配線ＬＩＮＣ１〜ＬＩＮＣｎに乗り換えて、下側に隣接する演算器ＯＰ５に入力信号を伝達可能となる。
この際、座標Ａ１の下層部にある演算器ＯＰ１との接続はしない。
不使用の演算器ＯＰ１において、出力部にあるラッチ回路としてのフリップフロップＦＦを通すと、１クロック分データを送ることを遅らせることができ、レイテンシの調整が可能である。しかしここでは、座標Ａ１の下部にあるラッチ回路としてのフリップフロップＦＦはバイパスし使用しない。
【００５１】
座標Ａ２では、演算器ＯＰ５を加算器として使用する。座標Ａ２の演算器ＯＰ５には左部から入力ポートＩＰ５Ｌを介して入力されたデータｂと、上部から第１の配線ＬＩＮＣ、スイッチを介してデータａが入力されて加算され、演算器ＯＰ５の右部から、演算結果（a + b ）が、たとえば、共用ポートＳＰ５６ＲＬ、スイッチ、第２の配線ＵＩＮＣ、演算器間の双方向スイッチＢＳＷＯＰを介して座標Ｂ２に位置する演算部に出力される。
この場合、座標Ａ２の演算器ＯＰ５の下部から出力されるデータ、具体的には共用ポートＳＰ５９ＢＵからの出力データは使用されない。
【００５２】
同様に、座標Ａ３の演算器ＯＰ９は、座標Ａ１と同様に使用されず、演算器の上部にある配線層間で、横方向の第１の配線ＬＩＮＣと縦方向の第２の配線ＵＬＩＣが双方向スイッチＢＳＷで接続されるのみで、座標Ａ４にある演算器ＯＰ１３にデータを送るのみである。
左部から入力されたデータ（信号）は、図５に示すように、第２の配線ＵＩＮＣ１〜ＵＩＮＣｎを伝搬され、図示しない制御系により双方向スイッチＢＳＷ１１，ＢＳＷ２２，ＢＳＷ３３，・・・，ＢＳＷｎｎが導通する（オンする）にように制御される。これにより、第２の配線ＵＩＮＣ１〜ＵＩＮＣｎを伝搬される信号が第１の配線ＬＩＮＣ１〜ＬＩＮＣｎに乗り換えて、下側に隣接する演算器ＯＰ１３に入力信号を伝達可能となる。
この際、座標Ａ３の下層部にある演算器ＯＰ９との接続はしない。
不使用の演算器ＯＰ９において、出力部にあるラッチ回路としてのフリップフロップＦＦを通すと、１クロック分データを送ることを遅らせることができ、レイテンシの調整が可能である。しかしここでは、座標Ａ３の下部にあるラッチ回路としてのフリップフロップＦＦは使用しない。
【００５３】
座標Ａ４では、上部からは第１の配線ＬＩＮＣ、スイッチを介してｃのデータが入ってきて、座標Ａ４の左部から入力ポートＩＰ１３Ｌを介してデータｄが入ってくる。
そして、座標Ａ４の演算器ＯＰ１３にデータｃ，ｄが入力されて加算され、共用ポートＳＰ１４１５ＲＬを通して、演算結果（ｃ＋ｄ）のデータが右側に隣接する演算器ＯＰ１５に出力される。
座標Ａ２、Ａ４の演算器ＯＰ５，ＯＰ１３の出力部（共用ポートＳＰ５６ＲＬ、ＳＰ１３１４ＲＬ）にあるフリップフロップＦＦ１は使用し、一旦データをここで蓄える。そうすることにより、全体のクロック周波数を高め、処理速度を向上させることが可能になる。また、これにより、データのパイプライン処理化が可能になり、１クロック毎にデータ出力が可能になる。
【００５４】
座標Ｂ２の演算器ＯＰ６では、座標Ａ１の演算器ＯＰ１と同様に左から入ってきたデータ（信号）を、演算器の上部にある配線層間で、横方向の第１の配線ＬＩＮＣと縦方向の第２の配線ＵＬＩＣが双方向スイッチＢＳＷで接続されるのみで、座標Ｂ３にある演算器ＯＰ１０にデータを送るのみである。
この例では、座標Ｂ３の演算器ＯＰ１０も使用せずに、演算器の上部にある配線層間で、横方向の第１の配線ＬＩＮＣと縦方向の第２の配線ＵＬＩＣが双方向スイッチＢＳＷで接続されるのみで、座標Ｂ４にある演算器ＯＰ１４にデータを送るのみである。
この場合、それぞれ出力部（共用ポートＳＲ５９ＢＵ，ＳＲ１０１４ＢＵ）にあるフリップフロップＦＦ２はバイパスし、使用しない。
そして、座標Ｂ４にて上部からきたデータ（ a + b）と、左部からきたデータ（ c + d）が、演算器ＯＰ１４でさらに加算される。そして、演算結果（a+b+c+d）が座標Ｂ４の演算器ＯＰ１４の右部にある共用ポートＳＰ１４１５ＲＬから出力される。すなわち、座標Ｂ４の演算器ＯＰ１４の出力にあるフリップフロップＦＦ１は使用する。
【００５５】
座標Ｃ４の演算器ＯＰ１５は、乗算器として使用する。そして、左部の共用ポートＳＰ１４１５ＲＬから（a+b+c+d）の和が入力される。
この場合、演算器ＯＰ１５の入力側ポートとなる共用ポートＳＰ１１１５ＢＵのフリップフロップＦＦ２には、０．２５という固定値を与えている。
そして、演算器ＯＰ１５において、(a+b+c+d)/4の計算を行う。そして、座標Ｃ４の演算器ＯＰ１５の右部の共用ポートＳＰ１５１６ＲＬから(a+b+c+d)/4の演算結果が出力される。ここの座標Ｃ４の演算器ＯＰ１５の出力ポートにあるフリップフロップＦＦ１も使用する。そして、たとえばスイッチ、第２の配線ＵＩＮＣ、双方向スイッチＢＳＷＯＰ、座標Ｄ４の演算器ＯＰ１６の上層の第２の配線ＵＩＮＣを通して外部に出力する。
【００５６】
以上は、すべてパイプライン化されているため、すべて１クロック毎に新しいデータを入力し、１クロック毎のその結果を出力することが可能であるので、非常に高速に計算が可能になる。
そして、１つの集積回路にこのような演算器を多数集積し、同時並行的に演算を進めることが可能なので、並列処理の分、高速に計算を行うことが可能になる。
【００５７】
また、図６に示すように、このような集積回路（チップ）ＩＣの一番端にある演算器から入力ポート、出力ポートを外部へ端子として出すと、これら集積回路ＩＣを平面状に拡張可能となるため、複雑な計算でも複数の集積回路をいくらでも接続して計算可能となるため、拡張性が非常に高い回路となる。
【００５８】
図７は、本発明に係る演算装置の第２の実施形態の基本的な構成を示す図である。
第２の実施形態に係る演算装置１Ａは、以下のように構成されている。
加算器は乗算器に比べて１／１０程度と面積が小さいのが一般的である。
よって、演算器を配置する構成として、図７に示すように、乗算器と加算器を分けて別々に集積することも可能である。
図７の例では、図１の構成において、演算器ＯＰ１〜ＯＰ１６を乗算器として配置し、４つの乗算器の入出力ポートで囲まれた矩形領域に面積の小さい加算器ＯＰ２１〜ＯＰ２９を配置している。
また、図７の例では、各乗算器間において、入出力ポートをラッチ回路を共用する共用ポートを設ける代わりに、各演算器がラッチ回路としてのフリップフロップを含む２つの入力ポートと２つの出力ポートを持つように構成している。この場合の入出力ポートも、たとえば図２に示すスイッチ回路とフリップフロップＦＦを備え、バイパス機能、ラッチデータ固定機能を備えたセレクタを含む構成を採用することができる。
【００５９】
この場合も、各乗算器、加算器の上層部に配線層を設け、図５のように縦方向、横方向の配線を施設し、これらにスイッチを設ける。また、この場合には、さらに各乗算器の間の上層部にも同様の配線層を設け、ここにもスイッチを配置する。
【００６０】
図８は、本発明に係る演算装置の第３の実施形態の基本的な構成を示す図である。
本第３の実施形態において、各乗算器間において、入出力ポートをラッチ回路を共用する共用ポートを設ける代わりに、各演算器がラッチ回路としてのフリップフロップを含む２つの入力ポートと２つの出力ポートを持つように構成している。この場合の入出力ポートも、たとえば図２に示すスイッチ回路とフリップフロップＦＦを備え、バイパス機能、ラッチデータ固定機能を備えたセレクタを含む構成を有する。
そして、図８の例においては、各演算器間、具体的にはデータフローの上流側に位置する演算器の出力ポートＯＰと下流側に隣接して位置する演算器の入力ポート間にいわゆるスイッチを含む配線回路ＣＲＢを配置し、演算器間に配線を通すように構成している。
そして、配線回路ＣＲＢ間の配線にも、入出力ポートと同様の構成を有する、たとえば図２に示すスイッチ回路とフリップフロップＦＦを備え、バイパス機能、ラッチデータ固定機能を備えたセレクタを含むポートＰＴを配置している。
【００６１】
具体的には、図８の例においては、演算器ＯＰ１の出力ポートＩＯ１Ｒと演算器ＯＰ２の入力ポートＩＰ２Ｌとの間に配線回路ＣＲＢ１２を接続している。
演算器ＯＰ１の出力ポートＩＯ１Ｂと演算器ＯＰ３の入力ポートＩＰ３Ｕとの間に配線回路ＣＲＢ１３を接続している。
演算器ＯＰ３の出力ポートＩＯ３Ｒと演算器ＯＰ４の入力ポートＩＰ４Ｌとの間に配線回路ＣＲＢ３４を接続している。
演算器ＯＰ２の出力ポートＩＯ２Ｂと演算器ＯＰ４の入力ポートＩＰ４Ｕとの間に配線回路ＣＲＢ２４を接続している。
そして、配線回路ＣＲＢ１２，ＣＲＢ１３，ＣＲＢ３４，ＣＲＢ２４の中央部に全ての配線回路と接続した配線回路ＣＲＢ１４が配置されている。
配線回路ＣＲＢ１２とＣＲＢ１４との間にポートＰＴ１が接続され、配線回路ＣＲＢ１３とＣＲＢ１４との間にポートＰＴ２が接続され、配線回路ＣＲＢ３４とＣＲＢ１４との間にポートＰＴ３が接続され、配線回路ＣＲＢ２４とＣＲＢ１４との間にポートＰＴ４が接続されている。
【００６２】
なお、図８において、○はスイッチを表す。また、□はフリップフロップおよびスイッチを含むセレクタを表す。各セレクタにおいては、フリップフロップはバイパス可能である。また、各演算器においては、スイッチが配置しているが、この構成は、図３の構成と等価な構成で構成可能であり、また、各配線回路の部分も、図３の構成と等価な回路で構成することが可能である。
これらを接続、切断することで、非常に柔軟性の高い再構成可能な回路が可能になる。
この場合、演算器間にある配線の占める面積は演算器部に比べてきわめて小さい。
【００６３】
図８において、ここでは、ブロック図的に示しているため、図８に符号ａとｂで示す幅は同じに図示されているが、実際のレイアウト上での幅である、ａとｂを比べると、ａは演算器の幅で、６４ビット浮動小数点乗算器等なのでかなり大きいが、ｂの部分は、単なる配線に双方向のスイッチ等がついているだけなので、ｂの方がａよりもはるかに小さい。
よって、演算器間の配線ｂ部を６４ビット幅の配線を１セットと考えると、図８に示すように１セットのみでなく、図９に示すように複数セット配置することも可能であり、さらに柔軟性の高い集積回路が実現可能になる。
【００６４】
図９の演算装置１Ｃにおいては、演算器ＯＰ１の出力ポートＩＯ１Ｒと演算器ＯＰ２の入力ポートＩＰ２Ｌとの間に配線回路ＣＲＢ１２Ａ，ＣＲＢ１２Ｂを接続し、配線回路ＣＲＢ１２Ａ，ＣＲＢ１２Ｂ間にポートＰＴ５Ａを接続している。
演算器ＯＰ１の出力ポートＩＯ１Ｂと演算器ＯＰ３の入力ポートＩＰ３Ｕとの間に配線回路ＣＲＢ１３Ａ，ＣＲＢ１３Ｂを接続し、配線回路ＣＲＢ１３Ａ，ＣＲＢ１３Ｂ間にポートＰＴ６を接続している。
演算器ＯＰ３の出力ポートＩＯ３Ｒと演算器ＯＰ４の入力ポートＩＰ４Ｌとの間に配線回路ＣＲＢ３４Ａ，ＣＲＢ３４Ｂを接続し、配線回路ＣＲＢ３４Ａ，ＣＲＢ３４Ｂ間にポートＰＴ７を接続している。
演算器ＯＰ２の出力ポートＩＯ２Ｂと演算器ＯＰ４の入力ポートＩＰ４Ｕとの間に配線回路ＣＲＢ２４Ａ，ＣＲＢ２４Ｂを接続し、配線回路ＣＲＢ２４Ａ，ＣＲＢ２４Ｂ間にポートＰＴ８を接続している。
そして、配線回路ＣＲＢ１２，ＣＲＢ１３，ＣＲＢ３４，ＣＲＢ２４の中央部に全ての配線回路と接続した配線回路ＣＲＢ１４Ａ〜１４Ｄが配置されている。
配線回路ＣＲＢ１２ＡとＣＲＢ１４Ａとの間にポートＰＴ１Ａが接続され、配線回路ＣＲＢ１２ＢとＣＲＢ１４Ｂとの間にポートＰＴ１Ｂが接続され、配線回路ＣＲＢ１３ＡとＣＲＢ１４Ａとの間にポートＰＴ２Ａが接続され、配線回路ＣＲＢ１３ＢとＣＲＢ１４Ｃとの間にポートＰＴ２Ｂが接続され、配線回路ＣＲＢ３４ＡとＣＲＢ１４Ｃとの間にポートＰＴ３Ａが接続され、配線回路ＣＲＢ３４ＢとＣＲＢ１４Ｄとの間にポートＰＴ３Ｂが接続され、配線回路ＣＲＢ２４ＡとＣＲＢ１４Ｂとの間にポートＰＴ４Ａが接続され、配線回路ＣＲＢ２４ＢとＣＲＢ１４Ｄとの間にポートＰＴ４Ｂが接続されている。
そして、配線回路ＣＲＢ１４ＡとＣＲＢ１４Ｂ間にポートＰＴ９Ａが接続され、配線回路ＣＲＢ１４ＡとＣＲＢ１４Ｃ間にポートＰＴ９Ｂが接続され、配線回路ＣＲＢ１４ＣとＣＲＢ１４Ｄ間にポートＰＴ９Ｃが接続され、配線回路ＣＲＢ１４ＤとＣＲＢ１４Ｂ間にポートＰＴ９Ｄが接続されている。
【００６５】
図１０は実際に図９のレイアウトを使用した応用の例である。
第１の実施形態において図４で示したものと同じラプラス方程式を図９で実現した場合の例である。
【００６６】
この場合、演算器ＯＰ１，ＯＰ３，ＯＰ４が加算器として機能し、演算器ＯＰ２が乗算器として機能する。
演算器ＯＰ１にデータａ，ｂが入力され、その加算結果（ａ＋ｂ）が出力ポートＩＯ１Ｒから出力され、配線回路ＣＲＢ１２Ａ、ポートＰＴ１Ａ、配線回路ＣＲＢ１４Ａ、ポートＰＴ９Ｂ、配線回路ＣＲＢ１４Ｃ、ポートＰＴ９Ｃ、配線回路ＣＲＢ１４Ｄ、ポートＰＴ４Ｂ、配線回路ＣＲＢ２４、および入力ポートＩＰ４Ｕを通して演算器ＯＰ４に転送される。
演算器ＯＰ２にデータｃが配線回路ＣＲＢ１３Ｂ、入力ポートＩＰ３Ｕを通して入力され、同じく演算器ＯＰ２にデータｄが入力され、その加算結果（ｃ＋ｄ）が出力ポートＩＯ３Ｒから出力され、配線回路ＣＲＢ１２Ａ、ポートＰＴ１Ａ、配線回路ＣＲＢ１４Ａ、ポートＰＴ９Ｂ、配線回路ＣＲＢ３４Ａ、ポートＰＴ７、配線回路ＣＲＢ３４Ｂ、および入力ポートＩＰ４Ｌを通して演算器ＯＰ４に転送される。
【００６７】
演算器ＯＰ４では、入力データ（ a + b）と（ c + d）が、さらに加算される。そして、演算結果（a+b+c+d）が図示しない出力ポートＩＯ４Ｒや配線回路、を通し、さらに、配線回路ＣＲＢ２４Ａ、ポートＰＴ４Ａ、配線回路ＣＲＢ１４Ｂ、ポートＰＴ１Ｂ、配線回路ＣＲＢ１２Ｂ、および入力ポートＩＰ２Ｌを通して演算器ＯＰ４に入力される。
【００６８】
演算器ＯＰ４は、入力ポートＩＰ２ＵのフリップフロップＦＦ１に、０．２５という固定値が与えられている。
そして、演算器ＯＰ４において、(a+b+c+d)/4の計算を行う。そして、演算器ＯＰ４の図示しない出力ポートから(a+b+c+d)/4の演算結果が出力される。
【００６９】
図８では、演算器間に６４ビット幅の配線を１セットしていなかったが、図９の場合はこの図を見てわかるように、演算器間に６４ビット幅の配線を複数セットとおすことにより、演算器間の配線が非常に柔軟になり、演算器の使用効率が向上し、非常に柔軟性の高い再構成可能な回路が可能になる。
【００７０】
以上説明したように、本実施形態によれば、数学的な演算に関して、従来ＣＰＵによって行っていた計算を、演算部のみをＣＰＵから取り出し、演算器を多数ひとつのチップ上に集積化し、これらの演算器を集積回路内に設けたスイッチにより任意に接続させることを可能とすることで、さまざまな計算を、再構成が可能なデータフロー型の並列計算機として実現可能である。
このことにより、データ処理をパイプライン化させ、また、同時並列的に高速に計算させることが可能である。
データの流れに関しては、各演算器の上層部に縦横に配置した配線を任意に接続切断することが可能にしてあるため、任意の演算器から任意の演算器へ自在にデータを渡すことが可能になっている。
【００７１】
また、本実施形態においては、集積回路内部の演算器の入力ポート、出力ポートを集積回路の外部へ端子として出すことで、この集積回路をいくらでも２次元的に接続し、複雑な計算もできるように拡張可能になっている。
【図面の簡単な説明】
【００７２】
【図１】本発明に係る演算装置の第１の実施形態の基本的な構成を示す図である。
【図２】本実施形態に係る演算器と共用ポートの構成例を示す図である。
【図３】本発明に係る演算装置の他の特徴的な構成を示す図であって、本実施形態における演算器の上層部に複数の配線が縦横にマトリクス状（メッシュ状）に形成されている構成例を示す図である。
【図４】本実施形態の演算装置による演算処理例を説明するための図である。
【図５】本実施形態の演算装置による演算処理例を説明するための図であって、演算器の上層部に形成された第２の配線と第１の配線との信号伝達の形態を説明するための図である。
【図６】複数の演算器を集積化した半導体チップを複数配列した拡張構成を示す図でる。
【図７】本発明に係る演算装置の第２の実施形態の基本的な構成を示す図である。
【図８】本発明に係る演算装置の第３の実施形態の基本的な構成を示す図である。
【図９】図８の演算装置の変形例を示す図である。
【図１０】実際に図９のレイアウトを使用した応用例を説明するための図である。
【符号の説明】
【００７３】
１，１Ａ〜１Ｃ…演算装置、ＯＰ１〜ＯＰ１６…演算器、ＩＰ１〜ＩＰ１６…入力ポート、ＩＯ１〜ＩＯ１６…出力ポート、ＳＰ１２，ＳＰ２３，ＳＰ３４，・・・…共用ポート、ＦＦ１，ＦＦ２…フリップフロップ、ＳＷ１１，ＳＷ１２，ＳＷ２１，ＳＷ２２…スイッチ回路、ＳＥＬ、ＳＥＢ…セレクタ、ＬＩＮＣ１〜ｎ…第１の配線、ＵＩＮＣ１〜ｎ…第２の配線、ＢＳＷ１１〜ＢＳＷｎｎ…双方向スイッチ、ＢＳＷＯＰ１〜ｎ…双方向スイッチ。
【図１】
2006053687.tif 000004
【図２】
2006053687.tif 000005
【図３】
2006053687.tif 000006
【図４】
2006053687.tif 000007
【図５】
2006053687.tif 000008
【図６】
2006053687.tif 000009
【図７】
2006053687.tif 000010
【図８】
2006053687.tif 000011
【図９】
2006053687.tif 000012
【図１０】
2006053687.tif 000013