(57)【特許請求の範囲】
【請求項１】
（ｎ−１）入力１出力のプロセッサの構成において、前記プロセッサに接続するｎ個の入出力データ格納用メモリのうち（ｎ−１）個を前記プロセッサの（ｎ−１）入力に接続し、１個の入出力データ格納用メモリを１出力に接続し、
プロセッサの１プロセス毎にプロセッサと入出力データ格納用メモリとの接続を順次１入出力データ格納用メモリ毎に循環させて切替接続するに際し、
１プロセス前に出力と接続していた入出力データ格納用メモリをプロセッサの第１番目の入力に接続し、
順次入出力データ格納用メモリを第２〜（ｎ−１）番目の入力に順次切替接続すると同時に、
第（ｎ−１）番目の入力に接続していた入出力データ格納用メモリをプロセッサの出力に切替接続するようにしたことを特徴とするシンクロナイズドスタックメモリを用いた計算機。
【請求項２】
プロセッサがプログラム可能であり、各ステップでの演算内容を示し、ステップ毎に切り替え可能とするセグメントを有するセグメント構造としたことを特徴とする請求項１に記載のシンクロナイズドスタックメモリを用いた計算機。
【請求項３】
プロセッサに接続し、静的なデータを格納するためのパラメータ設定メモリを有することを特徴とする請求項１又は２のいずれかに記載のシンクロナイズドスタックメモリを用いた計算機。
【請求項４】
選択されたパラメータ設定メモリから複数の静的データをプロセッサのセグメントに入力する選択手段を備えたことを特徴とする請求項３に記載のシンクロナイズドスタックメモリを用いた計算機。
【請求項５】
入出力データ格納用メモリへのプロセッサ出力の書き込みは、連続アドレスにより行うことを特徴とする請求項１〜４のいずれか１に記載のシンクロナイズドスタックメモリを用いた計算機。
【請求項６】
プロセッサに接続する入出力データ格納用メモリは、アドレス毎に複数の段数を持ち、それぞれについて独立した計算をセグメントにおいて実施することを特徴とした請求項１〜５のいずれか１に記載のシンクロナイズドスタックメモリを用いた計算機。
【請求項７】
入出力データ格納用メモリの段数を可変としたことを特徴とする請求項１〜６のいずれか１に記載のシンクロナイズドスタックメモリを用いた計算機。
【請求項８】
入出力データ格納用メモリの要素数（Ｍ×Ｎ）を任意に設定することを特徴とする請求項１〜７のいずれか１に記載のシンクロナイズドスタックメモリを用いた計算機。
【請求項９】
パラメータ設定メモリは、アドレス毎に複数の段数を持つことを特徴とする請求項３〜８のいずれか１に記載のシンクロナイズドスタックメモリを用いた計算機。
【請求項１０】
パラメータ設定メモリの段数を可変としたことを特徴とする請求項３〜９のいずれか１に記載のシンクロナイズドスタックメモリを用いた計算機。
【請求項１１】
パラメータ設定メモリの要素数（Ｍ×Ｎ）を任意に設定することを特徴とする請求項３〜１０のいずれか１に記載のシンクロナイズドスタックメモリを用いた計算機。
【請求項１２】
請求項１〜１１のいずれか１に記載の計算機を構成する複数プロセッサを備え、分割した処理領域を前記各プロセッサのそれぞれに分担させ、当該複数プロセッサが並行処理することを特徴とするシンクロナイズドスタックメモリを用いた計算機システム。
【請求項１３】
請求項１〜１１のいずれか１に記載の計算機を構成する複数プロセッサを備え、独立に処理可能な処理を前記各プロセッサのそれぞれに分担させ、当該複数プロセッサが並行処理することを特徴とするシンクロナイズドスタックメモリを用いた計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストリームプロセッサアーキテクチャにおいて、処理を高速化する計算機に関し、シンクロナイズドスタックメモリを用いた計算機に関するものである。
【背景技術】
【０００２】
現在汎用ＣＰＵは、次のような制限を受け、性能向上を阻んでいる。
（１）  ＡＬＵは非常に高速に処理できるが、メモリとのやりとりにおいて、データ読み出し、書き込みに時間がかかるため、全体として演算能力が制限される。
（２）  遅いデータ転送をカバーするためのキャッシュの増加がコントロール回路を複雑にしてオーバーヘッドを増加させている。
【０００３】
これらＣＰＵの欠点を防ぐ新しいアーキテクチャとして、ＳＴＲＥＡＭ  ＰＲＯＣＥＳＳＯＲが提案されており、これは処理のパイプライン化、並列化、メモリアクセスの制御、ストリームデータ等を特徴とするものである。
これは、特定の単純計算を高速に処理することは有利であるが、しかし、プロセッサがメモリに対しランダムにデータを書き込み読み出しすることができなく、やや複雑な処理では、計算の中間データを保持することができず、処理能力を低下させてしまう場合がある。
メモリアクセスを高速に行うためには、メモリに制限（ランダムにリード、ライトできないようにする）を持たせることが考えられるが、あるプロセスの計算結果を、現在のプロセスの入力として使う場合、出力結果を入力メモリにコピーする処理が必要となっている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、汎用のプロセッサ（フォンノイマンアーキテクチャ）に比較して、高い計算能力を持つストリームプロセッサアーキテクチャにおいて、計算結果であるストリームデータを複数ステップ（プロセッサ動作の時刻方向の１区切り単位）分保持することにより、処理を高速化することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するため請求項１に係るシンクロナイズドスタックメモリを用いた計算機は、（ｎ−１）入力１出力のプロセッサの構成において、前記プロセッサに接続するｎ個の入出力データ格納用メモリのうち（ｎ−１）個を前記プロセッサの（ｎ−１）入力に接続し、１個の入出力データ格納用メモリを１出力に接続し、プロセッサの１プロセス毎にプロセッサと入出力データ格納用メモリとの接続を順次１入出力データ格納用メモリ毎に循環させて切替接続するに際し、１プロセス前に出力と接続していた入出力データ格納用メモリをプロセッサの第１番目の入力に接続し、順次入出力データ格納用メモリを第２〜（ｎ−１）番目の入力に順次切替接続すると同時に、第（ｎ−１）番目の入力に接続していた入出力データ格納用メモリをプロセッサの出力に切替接続するようにしたことを特徴とするものである。
【０００６】
請求項２に係るシンクロナイズドスタックメモリを用いた計算機は、請求項１に記載のものにおいて、プロセッサがプログラム可能であり、各ステップでの演算内容を示し、ステップ毎に切り替え可能とするセグメントを有するセグメント構造としたことを特徴とするものである。
【０００７】
請求項３に係るシンクロナイズドスタックメモリを用いた計算機は、請求項１又は２のいずれかに記載のものにおいて、プロセッサに接続し、静的なデータを格納するためのパラメータ設定メモリを有することを特徴とするものである。
【０００８】
請求項４に係るシンクロナイズドスタックメモリを用いた計算機は、請求項３に記載のものにおいて、選択されたパラメータ設定メモリから複数の静的データをプロセッサのセグメントに入力する選択手段を備えたことを特徴とするものである。
【０００９】
請求項５に係るシンクロナイズドスタックメモリを用いた計算機は、請求項１〜４のいずれか１に記載のものにおいて、入出力データ格納用メモリへのプロセッサ出力の書き込みは、連続アドレスにより行うことを特徴とするものである。
【００１０】
請求項６に係るシンクロナイズドスタックメモリを用いた計算機は、請求項１〜５のいずれか１に記載のものにおいて、プロセッサに接続する入出力データ格納用メモリは、アドレス毎に複数の段数を持ち、それぞれについて独立した計算をセグメントにおいて実施することを特徴とするものである。
【００１１】
請求項７に係るシンクロナイズドスタックメモリを用いた計算機は、請求項１〜６のいずれか１に記載のものにおいて、入出力データ格納用メモリの段数を可変としたことを特徴とするものである。
【００１２】
請求項８に係るシンクロナイズドスタックメモリを用いた計算機は、請求項１〜７のいずれか１に記載のものにおいて、入出力データ格納用メモリの要素数（Ｍ×Ｎ）を任意に設定することを特徴とするものである。
【００１３】
請求項９に係るシンクロナイズドスタックメモリを用いた計算機は、請求項３〜８のいずれか１に記載のものにおいて、パラメータ設定メモリは、アドレス毎に複数の段数を持つことを特徴とするものである。
【００１４】
請求項１０に係るシンクロナイズドスタックメモリを用いた計算機は、請求項３〜９のいずれか１に記載のものにおいて、パラメータ設定メモリの段数を可変としたことを特徴とするものである。
【００１５】
請求項１１に係るシンクロナイズドスタックメモリを用いた計算機は、請求項３〜１０のいずれか１に記載のものにおいて、パラメータ設定メモリの要素数（Ｍ×Ｎ）を任意に設定することを特徴とするものである。
【００１６】
請求項１２に係るシンクロナイズドスタックメモリを用いた計算機システムは、請求項１〜１１のいずれか１に記載の計算機を構成する複数プロセッサを備え、分割した処理領域を前記各プロセッサのそれぞれに分担させ、当該複数プロセッサが並行処理することを特徴とするものである。
【００１７】
請求項１３に係るシンクロナイズドスタックメモリを用いた計算機システムは、請求項１〜１１のいずれか１に記載の計算機を構成する複数プロセッサを備え、独立に処理可能な処理を前記各プロセッサのそれぞれに分担させ、当該複数プロセッサが並行処理することを特徴とするものである。
【発明の効果】
【００１８】
請求項１に係るシンクロナイズドスタックメモリを用いた計算機によると、入力側に接続する入出力データ格納用メモリへプロセッサの処理結果をコピーすることなく、出力側に接続する入出力データ格納用メモリへの接続を仮想的に回転させてプロセス毎に順次循環的に切り替え、入出力データ格納用メモリの書き込みを順次変更し、これに伴い残りの入出力データ格納用メモリを読み込み用にしてその内容をプロセッサの入力とする。このようにして、出力を順次複数ステップ分保持して１プロセス毎に、複数分フィードバックして次のプロセスの入力にするようにして簡単に高速処理の計算機構成を実現することができる。
過去のストリームデータを複数保持することができ、これを現プロセスの入力して得ることができる。
【００１９】
請求項２に係るシンクロナイズドスタックメモリを用いた計算機によると、プロセッサをプログラム可能とし、ステップ毎にセグメントすなわち演算内容を変えることができる。
【００２０】
請求項３に係るシンクロナイズドスタックメモリを用いた計算機によると、プロセッサ内の演算においてパラメータ設定メモリに格納する静的なデータを変更して、演算内容の変更に対応することができる。
【００２１】
請求項４に係るシンクロナイズドスタックメモリを用いた計算機によると、プロセッサ内の演算においてパラメータ設定メモリに格納する静的なデータを設定又は変更するに際し、選択手段により選択することができる。
【００２２】
請求項５に係るシンクロナイズドスタックメモリを用いた計算機によると、入出力データ格納用メモリへのプロセッサ出力の書き込みは、連続アドレスにより行うことにより、書き込み、読み出し処理を高速にすることができる。
【００２３】
請求項６に係るシンクロナイズドスタックメモリを用いた計算機によると、プロセッサに接続する入出力データ格納用メモリは、アドレス毎に複数の段数を持ち、それぞれについて独立した計算をセグメントにおいて実施することができる。
【００２４】
請求項７に係るシンクロナイズドスタックメモリを用いた計算機によると、入出力データ格納用メモリの段数を可変とし、入出力データの性質に応じて格納することができる。
【００２５】
請求項８に係るシンクロナイズドスタックメモリを用いた計算機によると、入出力データ格納用メモリの要素数（Ｍ×Ｎ）を任意に設定して、入出力データの大きさに応じて格納することができる。
【００２６】
請求項９に係るシンクロナイズドスタックメモリを用いた計算機によると、パラメータ設定メモリは、アドレス毎に複数の段数を持ち、複数段数が必要なパラメータ設定用の静的データを格納することができる。
【００２７】
請求項１０に係るシンクロナイズドスタックメモリを用いた計算機によると、パラメータ設定メモリの段数を可変とし、パラメータ設定用の静的データに応じて格納することができる。
【００２８】
請求項１１に係るシンクロナイズドスタックメモリを用いた計算機によると、パラメータ設定メモリの要素数（Ｍ×Ｎ）を任意に設定して、パラメータ設定用の静的データの大きさに応じて格納することができる。
【００２９】
請求項１２に係るシンクロナイズドスタックメモリを用いた計算機システムによると、複数プロセッサを備え、分割した処理領域を前記各プロセッサのそれぞれに分担させ、当該複数プロセッサが並行処理して、大きな処理領域を同時に処理することができる。
【００３０】
請求項１３に係るシンクロナイズドスタックメモリを用いた計算機システムによると、複数プロセッサを備え、独立に処理可能な処理を前記各プロセッサのそれぞれに分担させ、当該複数プロセッサが並行処理して、各プロセッサが独立かつ同時に処理させることができる。
【実施例１】
【００３１】
図１は、本発明の実施例１としてシンクロナイズドスタックメモリを用いた計算機の一実施例の機能ブロック図である。図１において、１０１は（ｎ−１）入力１出力のプロセッサ、１０２は入出力データ格納用メモリ、１０３１，１０３２，１０３３…１０３ｎはパラメータ設定メモリ、１０４は前記パラメータ設定メモリ１０３１，１０３２，１０３３，１０３４を読み出すためのアドレス生成部、１０５は例えば本発明を連立一次方程式解法に適応した場合に用いるベクトル要素のアドレス部である。
【００３２】
プロセッサ１０１は、以下のような特徴を持つ。
（１）高速処理のため、パイプライン処理となっている。（ｎ−１）の入力データを所定の手順により演算処理して１個の出力とする。
（２）処理のプログラムは可能であり、複数種類の計算処理を実装することができる。
（３）これら複数種類の処理は、切り替え可能である。
（４）プロセッサから見ると入出力データ格納用メモリは、読み込み専用、書き込み専用となる。
【００３３】
入出力データ格納用メモリ１０２は、以下のような特徴を持つ。
（１）入出力データ格納用メモリ１０２は複数すなわちｎ個のメモリを仮想的なリング状に配置する。
（２）そのうちの１個をプロセッサ１０１の出力１０１ＯＵＴに接続して、その出力を受けて接続されているメモリ部分の内容を書き替える。言い換えれば、プロセッサ１０１の出力１０１ＯＵＴに接続する入出力データ格納用メモリは書き込み専用として設定される。
（３）残りの（ｎ−１）個をプロセッサ１０１の入力１０１ＩＮ１〜１０１ＩＮ（ｎ−１）に、前記出力１０１ＯＵＴに接続した入出力データ格納用メモリの隣から順次接続して、当該入出力データ格納用メモリ内容を読み出しプロセッサ１０１に入力する。言い換えれば、プロセッサ１０１の入力１０１ＩＮ１〜１０１ＩＮ（ｎ−１）に接続する入出力データ格納用メモリは読み出し専用として設定される。
（４）プロセッサ１０１に接続される各入出力データ格納用メモリ１０２はプロセッサ１０１の１プロセス（各ステップの中での計算処理）毎に仮想的に回転させるように接続を同時に切り替え、循環させる。すなわち、プロセッサ１０１の出力１０１ＯＵＴに接続しているメモリ部分をプロセッサ１０１の入力１０１ＩＮ１に接続を切り替え、プロセッサ１０１の入力１０１ＩＮ１に接続しているメモリ部分をプロセッサ１０１の入力１０１ＩＮ２に接続を切り替え、以下同様にして、プロセッサ１０１の入力１０１ＩＮ（ｎ−１）に接続しているメモリ部分をプロセッサ１０１の出力１０１ＯＵＴに接続を切り替える。言い換えれば、各入出力データ格納用メモリは書き込み専用、読み込み専用が１プロセス毎に同時に切り替える。このプロセッサ１０１への接続切替は、入出力データ格納用メモリ１０２の各メモリにおいて「同時」にすなわち「同期（シンクロナイズド）」して行う。
図１において、各入出力データ格納用メモリ１０２は、０から（ｎ−１）のｎ個で構成していて、このｎは任意に設定可能である。また、入出力データ格納用メモリ１０２の各々がアドレス毎に４段に構成されている場合は、これは例えば、各段に画像データのＲＧＢ及び透明度データを入力するものである。但し、この段数（データの深さ）は任意に設定可能であり、そのアドレス毎に複数の段数（データの深さ）を持つように設定可能であり、変更可能である。また、各入出力データ格納用メモリの要素数（Ｍ×Ｎ）は扱うデータの大きさ等により任意に変更することができる。これら各入出力データ格納用メモリ１０２の数（０から（ｎ−１）のｎ）ｎ、段数、要素数（Ｍ×Ｎ）の変更は、プログラムにより変え、大容量が必要な場合は仮想記憶方式により実現することができる。
【００３４】
パラメータ設定メモリ１０３１，１０３２，１０３３，…１０３ｎには、静的なデータすなわち演算処理する際の書き替えが必要のない数あるいはパラメータ例えば定数を予め入力しておき、そのデータは演算処理の途中で必要に応じて読み出される。その数ｎは、処理計算に必要な数に応じて任意の数を設定することができ、そのアドレス毎に複数の段数（データの深さ）を持つように設定可能であり、変更可能である。また、パラメータ設定メモリ１０３１，１０３２，１０３３，…１０３ｎの要素数（Ｍ×Ｎ）は任意に設定可能である。これらパラメータ設定メモリ１０３１，１０３２，１０３３，…１０３ｎの数ｎ、段数、要素数（Ｍ×Ｎ）の変更は、プログラムにより変え、大容量が必要な場合は仮想記憶方式により実現することができる。
【００３５】
図２は、入出力データ格納用メモリ１０２が３個のリング状に構成した場合に、３ステップについて、その接続の切り替えを説明する図である。
時刻Ｔ＝０において、
入出力データ格納用メモリ１０２Ｍ０はプロセッサ１０１の出力１０１ＯＵＴに接続し、
入出力データ格納用メモリ１０２Ｍ１はプロセッサ１０１の入力１０１ＩＮ２に接続し、
入出力データ格納用メモリ１０２Ｍ２はプロセッサ１０１の入力１０１ＩＮ１に接続し、
プロセッサ１０１は、入出力データ格納用メモリ１０２Ｍ２，Ｍ１が読み出したデータを各入力１０１ＩＮ１，１０１ＩＮ２より得て、Ｔ＝０における計算処理をし、その結果を出力１０１ＯＵＴに出力する。
入出力データ格納用メモリ１０２Ｍ０はこのデータを書き込む。
この処理が終了すると、時刻Ｔ＝１において、入出力データ格納用メモリ１０２が仮想的に回転して、
入出力データ格納用メモリ１０２Ｍ０はプロセッサ１０１の入力１０１ＩＮ１に接続し、
入出力データ格納用メモリ１０２Ｍ１はプロセッサ１０１の出力１０１ＯＵＴに接続し、
入出力データ格納用メモリ１０２Ｍ２はプロセッサ１０１の入力１０１ＩＮ２に接続し、
プロセッサ１０１は、入出力データ格納用メモリ１０２Ｍ０が読み出したデータ（１ステップ前の計算処理結果）と、入出力データ格納用メモリ１０２Ｍ２が読み出したデータを各入力１０１ＩＮ１，１０１ＩＮ２より得て、Ｔ＝１における計算処理をし、その結果を出力１０１ＯＵＴに出力する。
入出力データ格納用メモリ１０２Ｍ１はこのデータを書き込む。
この処理が終了すると、時刻Ｔ＝２において、入出力データ格納用メモリ１０２が仮想的に回転して、
入出力データ格納用メモリ１０２Ｍ０はプロセッサ１０１の入力１０１ＩＮ２に接続し、
入出力データ格納用メモリ１０２Ｍ１はプロセッサ１０１の入力１０１ＩＮ１に接続し、
入出力データ格納用メモリ１０２Ｍ２はプロセッサ１０１の出力１０１ＯＵＴに接続し、
プロセッサ１０１は、入出力データ格納用メモリ１０２Ｍ１が読み出したデータ（１ステップ前（Ｔ＝１のとき）の計算処理結果）と、入出力データ格納用メモリ１０２Ｍ０が読み出したデータ（２ステップ前（Ｔ＝０のとき）の計算処理結果）を各入力１０１ＩＮ１，１０１ＩＮ２より得て、Ｔ＝２における計算処理をし、その結果を出力１０１ＯＵＴに出力する。
入出力データ格納用メモリ１０２Ｍ２はこのデータを書き込む。
プロセッサ１０１出力の入出力データ格納用メモリ１０２における所定メモリ部分への書き込みは、連続アドレスによるものとして、高速アクセスを可能としている。
【００３６】
図３にある処理の計算過程を示す。図３にある「セグメント（エントリ名）」は、図２において説明した時刻あるいはステップに相当し、特定のプロセス（各ステップの中での計算処理）を与えられた１ステップについていい、それぞれ独立した計算を各セグメントにおいて実施する。プログラム可能なプロセッサにより、セグメント構造を可能としている。各セグメントはステップ毎に切り替えている。
セグメント１において入出力データ格納用メモリ１０２Ｍ０に処理結果を書き込み、次のセグメント２において入出力データ格納用メモリ１０２Ｍ１にその処理結果を書き込む。セグメント３においては、入力１０１ＩＮ２から入力したセグメント１の結果と入力１０１ＩＮ１から入力したセグメント２の結果とにより計算された処理結果を入出力データ格納用メモリ１０２Ｍ２に書き込む。さらにセグメント４において入出力データ格納用メモリ１０２Ｍ０に処理結果を書き込み、セグメント５においては、入力１０１ＩＮ２から入力したセグメント３の結果と入力１０１ＩＮ１から入力したセグメント４の結果とにより計算された処理結果を入出力データ格納用メモリ１０２Ｍ１に書き込む。以下所定の手順に従って処理が進行する。
【実施例２】
【００３７】
図４は、本発明の実施例２としてシンクロナイズドスタックメモリを用いた計算機の一実施例の機能ブロック図である。図４は、パラメータ設定メモリ１０３１，１０３２，１０３３，１０３４…１０３ｎとプロセッサ１０１との間に選択手段として読込元メモリ選択スイッチ４０１を設けたものであり、その他は、図１に示したものと同様である。
読込元メモリ選択スイッチ４０１はパラメータ設定メモリ１０３１，１０３２，１０３３，１０３４…１０３ｎを選択し、それらに格納されている複数の静的データを同時にプロセッサ１０１のセグメントに入力する。
【実施例３】
【００３８】
図５は、本発明の実施例３としてシンクロナイズドスタックメモリを用いた計算機システムの一実施例の説明図である。図５において、５０１１，５０１２，５０１３，５０１４は実施例１又は実施例２として説明した計算機を４台用いた場合における各計算機１、計算機２、計算機３及び計算機４の処理経過を示す。５０２は処理領域全体を示し、例えば、移動体シミュレータの当該移動体から見た１画面の情景データを示す。処理領域全体を計算機１〜４の台数分だけ４分割し、計算機１に分割領域５０２１、計算機２に分割領域５０２２、計算機３に分割領域５０２３及び計算機４に分割領域５０２４を分担させ、それぞれを並列処理させる。各計算機１〜４はそれぞれの処理経過においてそれぞれのセグメント１〜ｌ、セグメント１〜ｍ、セグメント１〜ｎ、セグメント１〜ｏを処理する。これらの処理過程において、各計算機１〜４はそれぞれが担当する領域の境界データについての処理を、隣接する領域を担当する計算機間で調整する。統合処理５０３においては、計算機で処理した画像データの境界部分の表示が自然になるようにする。このとき、例えば、計算機１においてこの統合処理を行う。
【実施例４】
【００３９】
図６は、本発明の実施例４としてシンクロナイズドスタックメモリを用いた計算機システムを説明する一実施例の説明図であり、順次実施する必要のない処理を複数計算機に並列処理するものである。１個のプロセッサを備える計算機を用いた場合、図６（ａ）に示すように各処理を行う。すなわち、まず、例えば、セグメント１、セグメント２の一連の処理により結果を得てこの結果データをメモリ６０１に格納しておく。ついで、セグメントＡ、セグメントＢの一連の処理により結果を得てこの結果データをメモリ６０２に格納しておく。さらに、セグメントａ、セグメントｂの一連の処理により結果を得てこの結果データをメモリ６０３に格納しておく。また、セグメントα、セグメントβの一連の処理により結果を得てこの結果データをメモリ６０４に格納しておく。統合処理６０５ａにおいて各メモリ６０１，６０２，６０３，６０４の結果データを統合して、次の処理に用いる。
この場合において、各一連の処理は他の一連の処理の結果に依存せず独立して処理するが、他の一連の処理が済んでから順次処理するものがあり、高速処理を実現することができない。
図６（ｂ）においては、実施例１，実施例２として説明した計算機を複数（図６において４台であるが任意の複数台数で構成することができる。）用いる。
例えば、計算機１において、セグメント１、セグメント２の一連の処理により結果を得る。一方、計算機２において、セグメントＡ、セグメントＢの一連の処理により結果を得る。また、計算機３において、セグメントａ、セグメントｂの一連の処理により結果を得る。同様に、計算機４において、セグメントα、セグメントβの一連の処理により結果を得る。統合処理６０５ｂにおいて各計算機１〜４の処理結果データを統合して、次の処理を行う。
このように各計算機１，２，３，４において各独立に処理を行い、他の計算機処理の遂行状況によらず処理することができ、高速処理を実現することができる。
【実施例５】
【００４０】
図７は、実施例１を実現する前に検討したシンクロナイズドスタックメモリを用いた計算機の一実施例の機能ブロック図である。図７において、７０１は（ｎ−１）入力１出力のプロセッサ、７０２１，７０２２は入出力データ格納用メモリ、７０３１，７０３２，７０３３，７０３４はパラメータ設定メモリ、７０４は前記パラメータ設定メモリ７０３を読み出すためのアドレス生成部、７０５は例えば本発明を連立一次方程式解法に適応した場合に用いるベクトル要素のアドレス部である。
入出力データ格納用メモリ７０２１，７０２２は、以下のような特徴を持つ。
（１）入出力データ格納用メモリ７０２１，７０２２のそれぞれは複数すなわちｎ個のメモリを仮想的なリング状に配置する。
（２）入出力データ格納用メモリ７０２２のｎ個のなかから１個をプロセッサ７０１の出力７０１ＯＵＴに接続して、その出力を受けて接続されているメモリ部分の内容を書き替える。言い換えれば、プロセッサ７０１の出力側に位置する入出力データ格納用メモリ７０２２は書き込み専用として設定される。
（３）入出力データ格納用メモリ７０２１のｎ個のなかから（ｎ−１）個をプロセッサ７０１の入力７０１ＩＮ１〜７０１ＩＮ（ｎ−１）に順次接続して、当該メモリ内容を読み出しプロセッサ７０１に入力する。言い換えれば、プロセッサ７０１の入力側に位置する入出力データ格納用メモリ７０２１は読み出し専用として設定される。
（４）プロセッサ７０１に接続される各入出力データ格納用メモリ７０２１，７０２２はプロセッサ７０１の１プロセス毎に同期して仮想的に回転させるように接続を切り替え、循環させる。
すなわち、プロセッサ７０１の出力７０１ＯＵＴに接続している入出力データ格納用メモリ７０２２を回転させるとともに、入力側の入出力データ格納用メモリ７０２１を同期して回転させて、その部分をプロセッサ７０１の入力７０１ＩＮ１に接続を切り替え、
プロセッサ７０１の入力７０１ＩＮ１に接続している入出力データ格納用メモリ７０２１の部分をプロセッサ７０１の入力７０１ＩＮ２に接続を切り替え、
以下同様にして、プロセッサ７０１のプロセッサ７０１の入力７０１ＩＮ（ｎ−１）に接続しているメモリ部分をプロセッサ７０１への接続を離す。このようにして、入出力データ格納用メモリ７０２１，７０２２の各メモリは１プロセス毎にその接続を切り替える。
【００４１】
図８は、入出力データ格納用メモリ７０２１，７０２２のそれぞれが３個のリング状に構成した場合に、３ステップについて、その接続の切り替えを説明する図である。
時刻Ｔ＝０において、
入出力データ格納用メモリ７０２２Ｍ０はプロセッサ７０１の出力７０１ＯＵＴに接続し、入出力データ格納用メモリ７０２１Ｍ０はプロセッサ７０１の入力に接続せず、
入出力データ格納用メモリ７０２２Ｍ１，７０２２Ｍ２はプロセッサ７０１の出力７０１ＯＵＴに接続せず、
入出力データ格納用メモリ７０２１Ｍ１はプロセッサ７０１の入力７０１ＩＮ２に接続し、
入出力データ格納用メモリ７０２１Ｍ２はプロセッサ７０１の入力７０１ＩＮ１に接続し、
プロセッサ７０１は、入出力データ格納用メモリ７０２２Ｍ２より転送され入出力データ格納用メモリ７０２１Ｍ２が読み出したデータ、入出力データ格納用メモリ７０２２Ｍ１より転送され７０２１Ｍ１が読み出したデータを各入力７０１ＩＮ１，７０１ＩＮ２より得て、Ｔ＝０における計算処理をし、その結果を出力７０１ＯＵＴに出力する。
入出力データ格納用メモリ７０２２Ｍ０はこのデータを書き込む。
この処理が終了すると、時刻Ｔ＝１において、入出力データ格納用メモリ７０２１，７０２２が同期して仮想的に回転して、
入出力データ格納用メモリ７０２１Ｍ０はプロセッサ７０１の入力７０１ＩＮ１に接続し、
入出力データ格納用メモリ７０２１Ｍ１はプロセッサ７０１の入力に接続せず、
入出力データ格納用メモリ７０２１Ｍ２はプロセッサ７０１の入力７０１ＩＮ２に接続し、
入出力データ格納用メモリ７０２２Ｍ０はプロセッサ７０１の出力に接続せず、
入出力データ格納用メモリ７０２２Ｍ１はプロセッサ７０１の出力７０１ＯＵＴに接続し、
入出力データ格納用メモリ７０２２Ｍ２はプロセッサ７０１の出力に接続せず、
プロセッサ７０１は、入出力データ格納用メモリ７０２２Ｍ０より転送され入出力データ格納用メモリ７０２１Ｍ０が読み出したデータ（１ステップ前の計算処理結果）と、入出力データ格納用メモリ７０２２Ｍ２より転送され入出力データ格納用メモリ７０２１Ｍ２が読み出したデータを各入力７０１ＩＮ１，７０１ＩＮ２より得て、Ｔ＝１における計算処理をし、その結果を出力７０１ＯＵＴに出力する。
入出力データ格納用メモリ７０２２Ｍ１はこのデータを書き込む。
この処理が終了すると、時刻Ｔ＝２において、入出力データ格納用メモリ７０２１，７０２２が同期して仮想的に回転して、
入出力データ格納用メモリ７０２１Ｍ０はプロセッサ７０１の入力７０１ＩＮ２に接続し、
入出力データ格納用メモリ７０２１Ｍ１はプロセッサ７０１の入力７０１ＩＮ１に接続し、
入出力データ格納用メモリ７０２１Ｍ２はプロセッサ７０１の入力に接続せず、
入出力データ格納用メモリ７０２２Ｍ０，入出力データ格納用メモリ７０２２Ｍ１はプロセッサ７０１の出力に接続せず、
入出力データ格納用メモリ７０２２Ｍ２はプロセッサ７０１の出力７０１ＯＵＴに接続し、
プロセッサ７０１は、入出力データ格納用メモリ７０２２Ｍ１より転送され入出力データ格納用メモリ７０２１Ｍ１が読み出したデータ（１ステップ前（Ｔ＝１のとき）の計算処理結果）と、入出力データ格納用メモリ７０２２Ｍ０より転送され入出力データ格納用メモリ７０２１Ｍ０が読み出したデータ（２ステップ前（Ｔ＝０のとき）の計算処理結果）を各入力７０１ＩＮ１，７０１ＩＮ２より得て、Ｔ＝２における計算処理をし、その結果を出力７０１ＯＵＴに出力する。
入出力データ格納用メモリ７０２２Ｍ２はこのデータを書き込む。
実施例１において、図３により説明した計算について同様に動作する。
【図面の簡単な説明】
【００４２】
【図１】シンクロナイズドスタックメモリを用いた計算機の構成を示した機能ブロック図である。（実施例１）
【図２】入出力データ格納用メモリの接続切替を説明する図である。（実施例１）
【図３】処理の計算過程を説明する図である。（実施例１）
【図４】シンクロナイズドスタックメモリを用いた計算機の構成を示した機能ブロック図である。（実施例２）
【図５】シンクロナイズドスタックメモリを用いた計算機システムを説明する説明図である。（実施例３）
【図６】シンクロナイズドスタックメモリを用いた計算機システムを説明する説明図である。（実施例４）
【図７】シンクロナイズドスタックメモリを用いた計算機の構成を示した機能ブロック図である。（実施例５）
【図８】入出力データ格納用メモリの接続切替を説明する図である。（実施例５）
【符号の説明】
【００４３】
１０１…（ｎ−１）入力１出力のプロセッサ、１０２…入出力データ格納用メモリ、１０３…パラメータ設定メモリ、１０４…アドレス生成部、１０５…画素のアドレス部。
【図１】
0004724031.tif 000002
【図２】
0004724031.tif 000003
【図３】
0004724031.tif 000004
【図４】
0004724031.tif 000005
【図５】
0004724031.tif 000006
【図６】
0004724031.tif 000007
【図７】
0004724031.tif 000008
【図８】
0004724031.tif 000009