(57)【要約】共同利用コンピュータシステムは、取り付けられたＮ個の機能ユニット（１．１，．．．，１．Ｎ）、Ｎ個の入力および２＊Ｎ個の出力を持つ単一方向のイーチトゥイーチ交換機（２）を含み、各ユニットはそれ自身のプログラム（一連の二項および単項演算）を実行する。演算の結果は交換機に送られ、他の機能ユニットによってオペランドとして使用される。計算の最終結果は機能ユニット（１．１，．．．，１．Ｎ）のプログラムされた座標の相互作用（共同利用）の結果として形成される。二つの演算モードは同期及び非同期である。同期モードは２段階パイプラインモードを使用し、それぞれの演算の持続時間はコードを書き込むとき考慮されなければならない。もう一つの命令の結果を使用をする命令はこの結果の発生後即座にサイクルの実行を始めるべきである。非同期モードでは、プログラミングは命令持続時間を説明することを必要とせず演算はオペランド可用性に基づいて実行される。非同期実行は命令、オペランド及び演算結果に対して割り当てられたそれぞれの同一タグをダイナミックに導入することによって、およびシステムにおける同時工程の間の情報交換のバッファリングとともに、結果、オペランド及び命令に対して使用可能状態フラグを用いることによって達成される。【選択図】図１
2004503872.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ個の機能ユニット（１．１，．．．，１．Ｎ）と、Ｎ個のデータ入力（ｉ１，．．．，ｉｋ，．．．，ｉＮ）、２Ｎ個のアドレス入力（ａ１，ａ２，．．．，ａ２ｋ−１，ａ２ｋ，．．．，ａ２Ｎ−１，ａ２Ｎ）および２Ｎ個のデータ出力（ｉ１，ｉ２，．．．，ｉ２ｋ−１，ｉ２ｋ，．．．，ｉ２Ｎ−１，ｉ２Ｎ）を持つイーチトゥイーチ交換機（２）を含む共同利用コンピュータシステムにおいて、各機能ユニット（１．１，．．．，１．Ｎ）は制御装置（３）、プログラムメモリ（４）、ならびに単項および２項演算を実現する演算装置（５）を含み、２つのデータ入力（Ｉ１，Ｉ２）、２つのアドレス出力（Ａ１，Ａ２）、および１つのデータ出力（Ｏ）を有し、ここではｋ番目の機能ユニット（ｋ＝１，．．．，Ｎ）の第１データ入力（Ｉ１）は交換機の（２ｋ−１）番目のデータ出力（ｏ２ｋ−１）に接続され；第２データ入力は交換機の２ｋ番目のデータ出力（ｏ２ｋ）に接続され；第１アドレス出力（Ａ１）は交換機の（２ｋ−１）番目のアドレス入力（ａ２ｋ−１）に接続され；第２アドレス出力（Ａ２）は交換機の２ｋ番目のアドレス入力（ａ２ｋ）に接続され；ｋ番目の機能ユニットのデータ出力（Ｏ）は交換機のｋ番目のデータ入力（ｉｋ）に接続され；機能ユニット（１．Ｋ）のデータ入力（Ｉ１，Ｉ２）は制御装置（３）のデータ入力であり；機能ユニットのアドレス出力（Ａ１，Ａ２）はそれぞれ制御装置（３）の第１および第２アドレス出力であり；制御装置（３）の第３アドレス出力はプログラムメモリ（４）のアドレス入力に接続され；制御装置（３）の命令入力／出力はプログラムメモリ（４）の命令入力／出力に接続され；制御装置（３）の制御出力は演算装置（５）の制御入力に接続され；制御装置（３）の第１および第２データ出力はそれぞれ演算装置（５）の第１および第２データ入力に接続され；演算装置（５）のデータ出力は機能ユニット（１．Ｋ）のデータ出力であり；演算装置（５）は入力／出力装置（５．１）および／または算術論理演算ユニット（５．２）および／またはデータメモリ（５．３）を含み、ここで演算装置（５）の第１データ入力はＩ／Ｏ装置（５．１）、ＡＬＵ（５．２）およびデータメモリ（５．３）のデータ入力であり；演算装置（５）の第２データ入力はＩ／Ｏ装置（５．１）およびデータメモリ（５．３）のアドレス入力およびＡＬＵ（５．２）の第２データ入力であり；演算装置（５）の制御入力はＩ／Ｏ装置（５．１）、ＡＬＵ（５．２）およびデータメモリ（５．３）の制御入力であり；Ｉ／Ｏ装置（５．１）、ＡＬＵ（５．２）およびデータメモリ（５．３）のデータ出力は演算装置（５）のデータ出力であることを特徴とする共同コンピュータシステム。
【請求項２】
各機能ユニット（１．１，．．．，１．Ｋ，．．．，１．Ｎ）は２つのオペランドタグ入力（ＭＡ１，ＭＡ２）、２つのオペランド可用性フラグ入力（ＳＡ１，ＳＡ２）、オペランドタグ出力（Ｍ）、２つのオペランド要求フラグ出力（Ｓ１，Ｓ２）、結果タグ出力（ＭＲ）、結果可用性フラグ出力（ＳＲ）、論理数出力（ＬＮ）、Ｎ個の命令取出し許可フラグ入力（ｓｋ１，．．．，ｓｋｋ，．．．，ｓｋＮ）、および命令取出し許可フラグ出力（ＳＫ）を有し、交換機（２）は、Ｎ個の結果タグ入力（ｍｒ１，．．．，ｍｒｋ，．．．，ｍｒＮ）、Ｎ個の結果可用性フラグ入力（ｓｒ１，．．．，ｓｒｋ，．．．，ｓｒＮ）、Ｎ個のオペランドタグ入力（ｍ１，．．．，ｍｋ，．．．，ｍＮ）、２Ｎ個のオペランド要求フラグ入力（ｓ１，ｓ２，．．．，ｓ２ｋ−１，ｓ２ｋ，．．．，ｓ２Ｎ−１，ｓ２Ｎ）、Ｎ個の論理数入力（ｌｎ１，．．．，ｌｎｋ，．．．，ｌｎＮ）、２Ｎ個のオペランドタグ出力（ｍａ１，ｍａ２，．．．，ｍａ２ｋ−１，ｍａ２ｋ，．．．，ｍａ２Ｎ−１，ｍａ２Ｎ）、２Ｎ個のオペランド可用性フラグ出力（ｓａ１，ｓａ２，．．．，ｓａ２ｋ−１，ｓａ２ｋ，．．．、ｓａ２Ｎ−１，ｓａ２Ｎ）を持ち、ここでｋ番目の機能ユニット（ｋ＝１，．．．，Ｎ）に対し、第１および第２オペランドタグ入力（ＭＡ１，ＭＡ２）は、交換機の（２ｋ−１）番目および２ｋ番目のオペランドタグ出力（ｍａ２ｋ−１，ｍａ２ｋ）にそれぞれ接続され；第１および第２オペランド可用性フラグ入力（ＳＡ１，ＳＡ２）は、交換機の（２ｋ−１）番目および２ｋ番目のオペランド可用性フラグ出力（ｓａ２ｋ−１，ｓａ２ｋ）にそれぞれ接続され；オペランドタグ出力（Ｍ）は、交換機のｋ番目のオペランドタグ入力（ｍｋ）に接続され；第１および第２オペランド要求フラグ出力（Ｓ１，Ｓ２）は、交換機の（２ｋ−１）番目および２ｋ番目のオペランド要求フラグ入力（ｓ２ｋ−１，ｓ２ｋ）にそれぞれ接続され；結果タグ出力（ＭＲ）は、交換機のｋ番目の結果タグ入力（ｍｒｋ）に接続され；結果可用性フラグ出力（ＳＲ）は交換機のｋ番目の結果可用性フラグ入力（ｓｒｋ）に接続され；命令取出し許可フラグ出力（ＳＫ）は全機能ユニット（１．１，．．．，１．Ｋ，．．．，１．Ｎ）のｋ番目の命令取出し許可フラグ入力（ｓｋｋ）に接続され、さらに機能ユニット（１．Ｋ）のオペランドタグ入力（ＭＡ１，ＭＡ２）およびオペランド可用性フラグ入力（ＳＡ１，ＳＡ２）は制御装置（３）の入力に対応し；機能ユニット（１．Ｋ）のオペランドタグ出力（Ｍ）およびオペランド要求フラグ出力（Ｓ１，Ｓ２）は、制御装置（３）のそれぞれの出力であり；制御装置（３）のタグ出力は演算装置（５）のタグ入力に接続され；演算装置（５）の結果タグ出力（ＭＲ）および結果可用性フラグ出力（ＳＲ）は機能ユニット（１．Ｋ）のそれぞれの出力であり；機能ユニット（１．Ｋ）の論理数出力（ＬＮ）、Ｎ個の命令取出し許可フラグ入力（ｓｋ１，．．．，ｓｋｋ，．．．，ｓｋＮ）、および命令取出し許可フラグ出力（ＳＫ）は、制御装置（３）のそれぞれの出力および入力であり；制御装置（３）は命令取出器（３．１）、命令復号器（３．２）、命令アセンブラ（３．３）、命令実行コントローラ（３．４）、命令取出しゲート（３．５）、Ｎビット幅データ相互接続レジスタ（６）、ビジータグメモリ（７）、オペランド可用性メモリ（８）、オプコードバッファ（９）、第１オペランドバッファ（１０）、第２オペランドバッファ（１１）から成り、後者の５つの実体はＬ語の大きさであり；命令取出器（３．１）のアドレス出力は制御装置（３）の第３アドレス出力であり；命令取出器（３．１）の命令出力は制御装置（３）の命令出力であり；命令取出器（３．１）の第１タグ出力はビジータグメモリ（７）の読出しアドレス入力に接続され；命令取出器（３．１）のタグビジーフラグ入力はビジータグメモリ（７）のデータ出力に接続され；命令取出器（３．１）の第２タグ出力は命令復号器（３．２）のタグ入力およびビジータグメモリ（７）の書込みアドレス入力に接続され；命令取出器（３．１）のタグビジーフラグ出力はビジータグメモリ（７）のデータ入力に接続され；命令取出器（３．１）の制御入力は命令復号器（３．２）の制御出力に接続され；命令取出器（３．１）のデータ入力は命令実行コントローラ（３．４）の第３データ出力に接続され；命令取出器（３．１）の命令取出許可フラグ出力（ＳＫ）は制御装置（３）の対応する出力であり、命令復号器（３．２）の命令入力は制御装置（３）の命令入力であり；命令復号器（３．２）のオペランドタグ出力（Ｍ）、オペランド要求フラグ出力（Ｓ１，Ｓ２）、およびアドレス出力（Ａ１，Ａ２）は制御装置（３）のそれぞれの出力であり；命令復号器（３．２）のデータ／制御出力は命令アセンブラ（３．３）のデータ／制御入力に接続され；命令アセンブラ（３．３）のオペランドタグ入力（ＭＡ１，ＭＡ２）、オペランド可用性フラグ入力（ＳＡ１，ＳＡ２）、およびデータ入力（Ｉ１，Ｉ２）は制御装置（３）の対応する入力であり；命令アセンブラ（３．３）の第１タグ出力はオペランド可用性メモリ（８）のアドレス入力に接続され；命令アセンブラ（３．３）の第２、第３および第４タグ出力はオプコードバッファ（９）、第１オペランドバッファ（１０）および第２オペランドバッファ（１１）の書込みアドレス入力にそれぞれ接続され；命令アセンブラ（３．３）の第１データ入力／出力はオペランド可用性メモリ（８）のデータ入力／出力に接続され；命令アセンブラの第２、第３および第４データ出力はオプコードバッファ（９）、第１オペランドバッファ（１０）および第２オペランドバッファ（１１）のデータ入力にそれぞれ接続され；命令アセンブラ（３．３）の命令使用可能状態フラグ出力は、命令実行コントローラ（３．４）の命令使用可能状態フラグ入力に接続され；命令アセンブラ（３．３）の第５タグ出力は命令実行コントローラ（３．４）のタグ入力に接続され；命令実行コントローラ（３．４）の第１、第２および第３タグ出力はオプコードバッファ（９）、第１オペランドバッファ（１０）および第２オペランドバッファ（１１）の読出しアドレス入力にそれぞれ接続され；命令実行コントローラ（３．４）の第１、第２および第３データ入力はオプコードバッファ（９）、第１オペランドバッファ（１０）および第２オペランドバッファ（１１）のデータ出力にそれぞれ接続され；命令実行コントローラ（３．４）の論理数出力（ＬＮ）は、制御装置（３）の出力であり；命令実行コントローラ（３．４）の第４タグ出力はビジータグメモリ（７）の書込みアドレス入力に接続され；命令実行コントローラ（３．４）のタグビジーフラグ出力はビジータグメモリ（７）のデータ入力に接続され；命令実行コントローラ（３．４）のデータ相互接続出力はデータ相互接続レジスタ（６）の入力に接続され；命令実行コントローラ（３．４）の第５タグ出力は制御装置（３）のタグ出力であり；命令実行コントローラ（３．４）の制御出力、第１および第２データ出力は制御装置（３）のそれぞれの出力であり；データ相互接続レジスタ（６）の出力は命令取出しゲート（３．５）のデータ相互接続入力に接続され；命令取出しゲート（３．５）の命令取出し許可出力は命令取出器（３．１）の命令取出し許可入力に接続され；命令取出しゲート（３．５）のＮ個の命令取出し許可フラグ入力（ｓｋ１，．．．，ｓｋｋ，．．．，ｓｋＮ）は、制御装置（３）の対応する入力であり；演算装置（５）のタグ入力はＩ／Ｏ装置（５．１）、ＡＬＵ（５．２）およびデータメモリ（５．３）のタグ入力であり；Ｉ／Ｏ装置（５．１）、ＡＬＵ（５．２）およびデータメモリ（５．３）の結果タグ出力および結果可用性フラグ出力はそれぞれ、演算装置（５）の結果タグ出力（ＭＲ）および結果可用性フラグ出力（ＳＲ）であり；交換機（２）はＮ個の交換ノード（２．１，．．．，２．Ｋ，．．．，２．Ｎ）から成り、各ノードはＮ個のセレクタ（２．Ｋ．１，．．．，２．Ｋ．Ｋ，．．．，２．Ｋ．Ｎ）を含み、各セレクタは］ｌｏｇ２Ｎ［ビット論理数レジスタ（１２）、要求フラグ発生器（１３）、Ｌ語要求フラグメモリ（１４）、および２つのＦＩＦＯバッファ（１５，１６）を含み、ここで全ての交換ノードで、ｋ番目のセレクタ（ｋ＝１，．．．，Ｎ）に対し、交換機のｋ番目のデータ入力（ｉｋ）がＦＩＦＯバッファ（１５，１６）の第１データ入力に接続され；ｋ番目の結果タグ入力（ｍｒｋ）はＦＩＦＯバッファ（１５，１６）の第２データ入力及び要求フラグメモリ（１４）の読出しアドレス入力に接続され；ｋ番目の結果可用性フラグ入力（ｓｒｋ）は要求フラグメモリ（１４）の読出しゲート入力に接続され；ｋ番目の交換ノードの全てのセレクタ（２．Ｋ．１，．．．，２．Ｋ．Ｋ，．．．，２．Ｋ．Ｎ）に対し、交換機の（２ｋ−１）番目のアドレス入力（ａ２ｋ−１）は要求フラグ発生器（１３）の第１オペランドアドレス入力に接続され；交換機の２ｋ番目のアドレス入力（ａ２ｋ）は要求フラグ発生器（１３）の第２オペランドアドレス入力に接続され；（２ｋ−１）番目のオペランド要求フラグ入力（ｓ２ｋ−１）は要求フラグ発生器（１３）の第１オペランド要求フラグ入力に接続され；２ｋ番目のオペランド要求フラグ入力（ｓ２ｋ）は要求フラグ発生器（１３）の第２オペランド要求フラグ入力に接続され；ｋ番目の論理数入力（ｌｎｋ）は論理数レジスタ（１２）の入力に接続され；ｋ番目のオペランドタグ入力（ｍｒｋ）は要求フラグメモリ（１４）の書込みアドレス入力に接続され；全てのセレクタ（２．Ｋ．１，．．．，２．Ｋ．Ｋ，．．．，２．Ｋ．Ｎ）において、論理数レジスタ出力（１２）は要求フラグ発生器（１３）の論理数入力に接続され；要求フラグ発生器（１３）のオペランド有りフラグ出力は要求フラグメモリ（１４）の書込みゲート入力に接続され；要求フラグ発生器（１３）の第１および第２オペランド有りフラグ出力は要求フラグメモリ（１４）の第１および第２データ入力にそれぞれ接続され；要求フラグメモリ（１４）の第１データ出力は第１ＦＩＦＯバッファ（１５）の書込みゲート入力に接続され；要求フラグメモリ（１４）の第２データ出力は第２ＦＩＦＯバッファ（１６）の書込みゲート入力に接続され；ｋ番目交換ノードの全ての第１ＦＩＦＯバッファ（１５）は、ラウンドロビン方式で読出しゲートを使用して周期的にポーリングされ；第１ＦＩＦＯバッファ（１５）の第１データ出力は一まとめに接続されて交換機の（２ｋ−１）番目のデータ出力（ｏ２ｋ−１）を形成し；第１ＦＩＦＯバッファ（１５）の第２データ出力は一まとめに接続されて交換機の（２ｋ−１）番目のオペランドタグ出力（ｍａ２ｋ−１）を形成し；第１ＦＩＦＯバッファ（１５）のオペランド可用性フラグ出力は一まとめに接続されて交換機の（２ｋ−１）番目のオペランド可用性フラグ出力（ｓａ２ｋ−１）を形成し；ｋ番目の交換ノードの全ての第２ＦＩＦＯバッファ（１６）もラウンドロビン方式で読出しゲートを使用して周期的にポーリングされ；第２ＦＩＦＯバッファ（１６）の第１データ出力は一まとめに接続されて交換機の２ｋ番目のデータ出力（ｏ２ｋ）を形成し；第２ＦＩＦＯバッファ（１６）の第２データ出力は一まとめに接続されて交換機の２ｋ番目のオペランドタグ出力（ｍａ２ｋ）を形成し；第２ＦＩＦＯバッファ（１６）のオペランド可用性フラグ出力は一まとめに接続されて交換機の２ｋ番目のオペランド可用性フラグ出力（ｓａ２ｋ）を形成することを特徴とする請求項１に記載のシステム。
【発明の詳細な説明】
【０００１】
発明の分野
本発明はコンピュータシステム、すなわち高性能並列コンピュータシステムのアーキテクチャに関する。
【０００２】
先行技術
超長命令語（ＶＬＩＷ）概念を使用して命令レベルで並列計算を実現する、ＩＡ−６４マイクロプロセッサという名前の装置が知られている（Ｉ．Ｓｈａｋｈｎｏｖｉｃｈ，　Ｅｌｅｋｔｒｏｎｉｋａ：　Ｎａｕｋａ，　Ｔｅｋｈｎｏｌｏｇｉｙａ，　Ｂｉｚｎｅｓ，　１９９９，　Ｎｏ．６，　ｐ．８−１１）。この装置は第１レベル命令キャッシュ、第１レベルデータキャッシュ、第２および第３レベル共通キャッシュ、制御装置、専門レジスタファイル（整数、浮動小数点、分岐および述語レジスタ）、ならびに４種類の機能ユニットのグループすなわち４つの整数算術演算ユニット、２つの浮動小数点算術演算ユニット、３つの分岐ユニット、および１つのデータメモリアクセスユニットから成る。機能ユニットは、３つの異なる機能ユニットの演算を指定する３つの単純命令を各々含む固定サイズ倍長命令語を使用して、集中制御下で作動する。語内の単純演算の実行の順序および語間の相互依存性は、語のマスクフィールドで指定される。
【０００３】
この装置には次の欠点がある。
固定命令語長によって生じるプログラムコードのための追加メモリ費用。
機能ユニットの最適に及ばない使用およびそれ故の、機能ユニットの数と命令語内の単純命令の数との間の不均衡、機能ユニットおよびレジスタの特殊化、ならびに整数および浮動小数点算術演算ユニットの容量に適合するのに不充分なメモリアクセスユニット（最大１サイクル当たり１個）のスループットによる性能の低下。
【０００４】
別の周知の装置Ｅ２Ｋマイクロプロセッサ（Ｍ．Ｋｕｚｍｉｎｓｋｙ，　Ｒｕｓｓｉａｎ　ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ：　Ｅｌｂｒｕｓ　２Ｋ，　Ｏｔｋｒｙｔｙｅ　ｓｉｓｔｅｍｙ，　１９９９，　Ｎｏ．５−６，　ｐ．８−１３）は、同じＶＬＩＷ概念を使用して並列アーキテクチャを実現する。この装置は第１レベル命令キャッシュ、第１レベルデータキャッシュ、第２レベル共通キャッシュ、先取りバッファ、制御ユニット、汎用レジスタファイル、および２つのクラスタに分類される同一ＡＬＵベース機能ユニットのグループから成る。機能ユニットの演算を制御する命令語は可変長を有する。
【０００５】
この装置の欠点は、第１レベル命令キャッシュのリローディングによる（命令取出速度とキャッシュ充填速度との間の不一致のため）、または第２レベル共通キャッシュまたは主メモリからのデータの集中的使用状態におけるスループットの低下である。
【０００６】
同じくＶＬＩＷ概念を使用して実現された他の周知の装置として、ＶｅｌｏｃｉＴＩアーキテクチャを持つＴＭＳ３２０Ｃ６ｘファミリのデジタル信号プロセッサ（ＤＳＰ）（Ｖ．Ｋｏｒｎｅｙｅｖ，　Ａ．Ｋｉｓｅｌｙｏｖ，　Ｍｏｄｅｒｎ　ｍｉｃｒｏｐｒｏｃｅｓｓｏｒｓ，　Ｍｏｓｃｏｗ，　２０００，　ｐ．２１７−２２０）およびＭａｎＡｒｒａｙアーキテクチャＤＳＰ（米国特許第６０２３７５３号；米国特許第６１０１５９２号）がある。
【０００７】
上記装置の欠点は、
プログラムメモリ資源の最適に及ばない使用、
性能の低下を導く主データメモリアクセスレートと演算ユニット（ＡＬＵ、乗算器等）の容量との間の不一致
である。
【０００８】
全ての上記装置の共通する欠点は、最低レベルでのみの同時並行処理の実現、単一線形範囲のプログラムコードのそれである。ＶＬＩＷ概念は、関連の無いコード範囲または別個のプログラムを同時に実行させることができない。
【０００９】
より高レベルのマルチシーケンシングは、基本ブロックレベルの並行処理を実現する別の既知の装置、Ｋｉｎマルチスカラマイクロプロセッサ（Ｖ．Ｋｏｒｎｅｙｅｖ，　Ａ．Ｋｉｓｅｌｙｏｖ，　Ｍｏｄｅｒｎ　ｍｉｃｒｏｐｒｏｃｅｓｓｏｒｓ，　Ｍｏｓｃｏｗ，　２０００，　ｐ．７５−７６）によって提供される。基本ブロックはレジスタおよびメモリ内のデータを処理する一連の命令であり、分岐命令すなわち線形範囲のコードで終了する。マイクロプロセッサは様々な機能ユニット、すなわち分岐命令インタプリタ、算術演算、論理、および桁移動命令インタプリタ、およびメモリアクセスユニットから成る。機能ユニット間のデータ交換は非同期であり、ＦＩＦＯ待ち行列を介して行なわれる。各ユニットは、要素が到着するとその入力待ち行列からそれを取り出し、演算を実行し、結果を出力待ち行列に入れる。この編成では、命令の流れは、タグと機能ユニットを制御するのに必要な他の情報とを含む一連のパケットとして、ユニット間で分散される。
【００１０】
命令の取出しおよび復号は集中化され、所与の基本ブロックの復号された命令は、復号済み命令キャッシュに配置される。そうした配置後、各命令に一意の動的タグが割り当てられる。レジスタ再命名ユニットが命令間の異質のＷＡＲおよびＷＡＷ依存性を除去した後、それらはアウトオブライン（ｏｕｔ−ｏｆ−ｌｉｎｅ）実行コントローラに送られる。
【００１１】
アウトオブライン実行コントローラから、命令は予約ステーションに送られ、それらのオペランドが利用可能になるのを待って実行を開始する。
【００１２】
オペランドが利用できる命令は、実行のために予約ステーションによって機能ユニットに送られ、結果は予約ステーション、アウトオブライン実行コントローラ、および分岐の場合は命令先取りユニットに送り返される。
【００１３】
この装置の欠点は、
アウトオブライン実行の複雑な論理、および命令の相互依存性に対するハードウェア検査が、非生産的な遅延および動的マルチシーケンシングをサポートするハードウェアの量を増大させること、
基本ブロック内のマルチシーケンシング実行時に動的に行なわれ、命令間の情報リンクを分析して最適化するだけの充分な時間が無いため、効率的なマルチシーケンシングが実際には線形コード範囲（基本ブロック）のレベルに制限されること、
幾つかの異なるプログラムに対する同時実行可能性の欠如、
誤って予測された分岐の場合に熱心な命令先取りによって生じる著しい非生産的損失
である。
【００１４】
その技術的本質および完成の点でクレームに最も近い装置はＱＡ−２コンピュータである（原型はＴ．Ｍｏｔｏｏｋａ，　Ｓ．Ｔｏｍｉｔａ，　Ｈ．Ｔａｎａｋａら、ＶＬＳＩ−ｂａｓｅｄ　ｃｏｍｐｕｔｅｒｓ；　Ｒｕｓｓｉａｎ　ｖｅｒｓｉｏｎ：　Ｍｏｓｃｏｗ，　１９８８，　ｐｐ．６５−６６，　１５５−１５８に記載されている）。該装置は制御ユニット、専門レジスタの共用配列、交換網、Ｎ個の同一汎用ＡＬＵベース機能ユニット（上述の原型の実現の場合Ｎ＝４）から成る。交換網はイーチトゥイーチ（ｅａｃｈ−ｔｏ−ｅａｃｈ）原理で作動し、Ｎ個の入力および２Ｎ個の出力を持ち、どのＡＬＵの出力でも他のＡＬＵの入力に直接接続することができる。
【００１５】
該装置は集中制御下で作動する。固定長倍長命令語は、ＡＬＵを制御するための４つのフィールド（単純命令）、主メモリの４つの異なるバンクにアクセスするためのフィールド、および単純命令の実行の順序を制御するフィールドを含む。単純命令は演算コード、オペランド長、オペランドソースレジスタアドレス、宛先レジスタアドレスを含む。
【００１６】
この装置の欠点は次の通りである。対応するＡＬＵが使用されるか否かにかかわらず命令にはフィールドが存在するので、固定命令語長はメモリ資源の最適に及ばない使用を導く。他の性能低下要因は、データを最初に共用レジスタ配列に配置しなければならないため、メモリ内のデータへの直接ＡＬＵアクセスが欠如していること、および同一命令語で異なる持続時間の演算の使用である。後者の場合、短い演算は最も長いものが完了するのを待たなければならない。この装置は、コード範囲またはプログラムレベルのどちらでもマルチシーケンシングを実現しない。
【００１７】
発明の開示
本発明は、演算装置の遊休時間を低減することにより、かつ任意の組合せで命令レベルおよび／または線形コード範囲およびプログラムレベルのマルチシーケンシングを行なうことにより、コンピュータシステムの性能を高める問題に関連する。
【００１８】
該問題は、Ｎ個の機能ユニット、Ｎ個のデータ入力、２Ｎ個のアドレス入力および２Ｎ個のデータ出力を持つイーチトゥイーチ交換機を含む共同利用コンピュータシステムによって解決される。本発明によると、各機能ユニットは制御装置、プログラムメモリ、ならびに単項および２項演算を実現する演算装置を含み、２つのデータ入力、２つのアドレス出力、および１つのデータ出力を有する。ｋ番目の機能ユニット（ｋ＝１，．．．，Ｎ）の第１データ入力は交換機の（２ｋ−１）番目のデータ出力に接続され、第２データ入力は交換機の２ｋ番目のデータ出力に、交換機の第１アドレス出力は（２ｋ−１）番目のアドレス入力に、第２アドレス出力は交換機の２ｋ番目のアドレス入力に、データ出力は交換機のｋ番目のデータ入力に接続される。機能ユニットのデータ入力は制御装置のデータ入力であり、機能ユニットのアドレス出力はそれぞれ制御装置の第１および第２アドレス出力であるのに対して、制御装置の第３アドレス出力はプログラムメモリのアドレス入力に接続され、制御装置の命令入力／出力はプログラムメモリの命令入力／出力に接続され、制御装置の制御出力は演算装置の制御入力に接続され、制御装置の第１および第２データ出力はそれぞれ演算装置の第１および第２データ入力に接続され、演算装置のデータ出力は機能ユニットのデータ出力である。演算装置は入力／出力（Ｉ／Ｏ）装置および／または算術論理演算ユニット（ＡＬＵ）および／またはデータメモリを含み、ここで演算装置の第１データ入力はＩ／Ｏ装置、ＡＬＵおよびデータメモリのデータ入力であり、演算装置の第２データ入力はＩ／Ｏ装置およびデータメモリのアドレス入力であり、演算装置の制御入力はＩ／Ｏ装置、ＡＬＵおよびデータメモリの制御入力であり、Ｉ／Ｏ装置、ＡＬＵまたはデータメモリのデータ出力は演算装置のデータ出力である。
【００１９】
本発明の第２変形、非同期共同利用コンピュータシステムの場合、各機能ユニットは２つのオペランドタグ入力、２つのオペランド可用性フラグ入力、オペランドタグ出力、２つのオペランド要求フラグ出力、結果タグ出力、結果フラグ出力、論理数出力、Ｎ個の命令取出し許可フラグ入力、および命令取出し許可フラグ出力をも含むものとする。この場合の交換機は、Ｎ個の結果タグ入力、Ｎ個の結果可用性フラグ入力、Ｎ個のオペランドタグ入力、２Ｎ個のオペランド要求フラグ入力、Ｎ個の論理数入力、２Ｎ個のオペランドタグ出力、２Ｎ個のオペランド可用性フラグ出力を持つものとする。入力および出力は次の通り相互接続される。ｋ番目の機能ユニット（ｋ＝１，…，Ｎ）の第１および第２オペランドタグ入力は、交換機の（２ｋ−１）番目および２ｋ番目のオペランドタグ出力にそれぞれ接続される。第１および第２オペランド可用性フラグ入力は、交換機の（２ｋ−１）番目および２ｋ番目のオペランド可用性フラグ出力にそれぞれ接続される。ｋ番目の機能ユニットのオペランドタグ出力は、交換機のｋ番目のオペランドタグ入力に接続される。第１および第２オペランド要求フラグ出力は、交換機の（２ｋ−１）番目および２ｋ番目のオペランド要求フラグ入力にそれぞれ接続される。ｋ番目の機能ユニットの結果タグ出力は、交換機のｋ番目の結果タグ入力に接続され、結果可用性フラグ出力は交換機のｋ番目の結果可用性フラグ入力に接続される。命令取出し許可フラグ出力は全機能ユニットのｋ番目の命令取出し許可フラグ入力に接続される。機能ユニットのオペランドタグ入力およびオペランド可用性フラグ入力は制御装置のそれぞれの入力である。機能ユニットのオペランドタグ出力およびオペランド要求フラグ出力は、制御装置のそれぞれの出力である。制御装置のタグ出力は演算装置のタグ入力に接続される。演算装置の結果タグ出力および結果可用性フラグ出力は機能ユニットのそれぞれの出力である。機能ユニットの論理数出力、Ｎ個の命令取出し許可フラグ入力、および命令取出し許可フラグ出力は、制御装置のそれぞれの出力（入力）である。制御装置は命令取出器、命令復号器、命令アセンブラ、命令実行コントローラ、命令取出しゲート、Ｎビットデータ相互接続レジスタ、ビジータグメモリ、オペランド可用性メモリ、演算コードバッファ、第１オペランドバッファ、第２オペランドバッファから成り、後者の５つのメモリユニットは各々Ｌ個のセルから成る。命令取出器のアドレス出力は制御装置の第３アドレス出力であり、命令取出器の命令出力は制御装置の命令出力であり、命令取出器の第１タグ出力はビジータグメモリの読出しアドレス入力に接続される。命令取出器のタグビジーフラグ入力はビジータグメモリのデータ出力に接続され、命令取出器の第２タグ出力は命令復号器のタグ入力およびビジータグメモリの書込みアドレスタグ入力に接続され、命令取出器のタグビジーフラグ出力はビジータグメモリのデータ入力に接続される。命令取出器の制御入力は命令復号器の制御出力に接続され、命令取出器のデータ入力は命令実行コントローラの第３データ出力に接続され、命令取出器の命令取出許可フラグ出力は制御装置の対応する出力である。命令復号器の命令入力は制御装置の命令入力であり、そのオペランドタグ出力、オペランド要求フラグ出力、およびアドレス出力は制御装置のそれぞれの出力である。命令復号器のデータ／制御出力は命令アセンブラのデータ／制御入力に接続され、そのオペランドタグ入力、オペランド可用性フラグ入力、およびデータ入力は制御装置の対応する入力である。命令アセンブラの第１タグ出力はオペランド可用性メモリのアドレス入力に接続され、命令アセンブラの第２、第３および第４タグ出力はオプコードバッファ、第１オペランドバッファおよび第２オペランドバッファの書込みアドレス入力にそれぞれ接続される。命令アセンブラの第１データ入力／出力はオペランド可用性メモリのデータ入力／出力に接続され、命令アセンブラの第２、第３および第４データ出力はオプコードバッファ、第１オペランドバッファおよび第２オペランドバッファのデータ入力にそれぞれ接続される。命令アセンブラの命令使用可能状態フラグ出力は、命令実行コントローラの命令使用可能状態フラグ入力に接続される。命令アセンブラの第５タグ出力は命令実行コントローラのタグ入力に接続され、その第１、第２および第３タグ出力はオプコードバッファ、第１オペランドバッファおよび第２オペランドバッファの読出しアドレス入力にそれぞれ接続され、その第１、第２および第３データ入力はオプコードバッファ、第１オペランドバッファおよび第２オペランドバッファのデータ出力にそれぞれ接続される。命令実行コントローラの論理数出力は、制御装置の対応する出力である。命令実行コントローラの第４タグ出力はビジータグメモリの書込みアドレス入力に接続され、命令実行コントローラのタグビジーフラグ出力はビジータグメモリのデータ入力に接続される。命令実行コントローラのデータ相互接続出力はデータ相互接続レジスタの入力に接続される。命令実行コントローラの第５タグ出力は制御装置のタグ出力であり、命令実行コントローラの制御出力、第１および第２データ出力は制御装置のそれぞれの出力である。データ相互接続レジスタの出力は命令取出しゲートのデータ相互接続入力に接続され、その取出し許可フラグ出力は命令取出器の対応する入力に接続される。命令取出しゲートのＮ個の命令取出し許可フラグ入力は、制御装置の対応する入力である。演算装置のタグ入力はＩ／Ｏ装置、ＡＬＵおよびデータメモリのタグ入力である。Ｉ／Ｏ装置、ＡＬＵおよびデータメモリの結果タグ出力および結果可用性フラグ出力はそれぞれ、演算装置の結果タグ出力および結果可用性フラグ出力である。交換機はＮ個の交換ノードから成り、各ノードはＮ個のセレクタを含み、各セレクタは］ｌｏｇ２Ｎ［ビット論理数レジスタ、要求フラグ発生器、Ｌ語要求フラグメモリ、および２つのＦＩＦＯバッファを含む。全ての交換ノードで、ｋ番目のセレクタ（ｋ＝１，．．．，Ｎ）に対し、交換機のｋ番目のデータ入力がＦＩＦＯバッファの第１データ入力に接続され、ｋ番目の結果タグ入力はＦＩＦＯバッファの第２データ入力に接続され、ｋ番目の結果可用性フラグ入力は要求フラグメモリの読出しゲート入力に接続される。ｋ番目の交換ノード（ｋ＝１，．．．，Ｎ）の全てのセレクタで、交換機の（２ｋ−１）番目のアドレス入力は要求フラグ発生器の第１オペランドアドレス入力に接続され、交換機の２ｋ番目のアドレス入力は要求フラグ発生器の第２オペランドアドレス入力に接続され、（２ｋ−１）番目のオペランド要求フラグ入力は要求フラグ発生器の第１オペランド要求フラグ入力に接続され、２ｋ番目のオペランド要求フラグ入力は要求フラグ発生器の第２オペランド要求フラグ入力に接続され、ｋ番目の論理数入力は論理数レジスタの入力に接続され、ｋ番目のオペランドタグ入力は要求フラグメモリの書込みアドレス入力に接続される。全てのセレクタに対して、論理数レジスタ出力は要求フラグ発生器の論理数入力に接続され、要求フラグ発生器のオペランド有りフラグ出力は要求フラグメモリの書込みゲート入力に接続され、第１および第２オペランド要求フラグ出力は要求フラグメモリの第１および第２データ入力にそれぞれ接続される。要求フラグメモリの第１データ出力は第１ＦＩＦＯバッファの書込みゲート入力に接続され、要求フラグメモリの第２データ出力は第２ＦＩＦＯバッファの書込みゲート入力に接続される。ｋ番目交換ノードの全ての第１ＦＩＦＯバッファは、ラウンドロビン方式で読出しゲートを使用してポーリングされ、第１ＦＩＦＯバッファの全ての第１データ出力は一まとめに接続されて交換機の（２ｋ−１）番目のデータ出力を形成する。第１ＦＩＦＯバッファの全ての第２データ出力は一まとめに接続されて（２ｋ−１）番目のオペランドタグ出力を形成し、第１ＦＩＦＯバッファのオペランド可用性フラグ出力は一まとめに接続されて交換機の（２ｋ−１）番目のオペランド可用性フラグ出力を形成する。ｋ番目の交換ノードの全ての第２ＦＩＦＯバッファもラウンドロビン方式で読出しゲートを使用してポーリングされ、第２ＦＩＦＯバッファの第１データ出力は一まとめに接続されて交換機の２ｋ番目のデータ出力を形成する。第２ＦＩＦＯバッファの第２データ出力は一まとめに接続されて交換機の２ｋ番目のオペランドタグ出力を形成し、第２ＦＩＦＯバッファのオペランド可用性フラグ出力は一まとめに接続されて交換機の２ｋ番目のオペランド可用性フラグ出力を形成する。
【００２０】
本装置の設計の特徴が重要であり、それらの組合せがシステム性能の向上を導く。これに対する理由は、入力／出力およびデータ読出し／書込み動作を実現する機能ユニットが、共同利用システムの他のユニットと同様にイーチトゥイーチ交換機に接続され、それによって中間データ記憶装置（レジスタ配列）を排除することができ、したがってデータアクセス時間を短縮することができることである。機能ユニットの種類間の比率を選択することによって、データの流れをシステムの全処理能力まで引き上げ、所与のアルゴリズムの特徴およびシステム内の機能ユニットの数に対する制限によってのみ制限されるようにすることが可能である。各機能ユニットにおける制御装置およびプログラムメモリの上述の配置構成によって実現される共同利用コンピュータシステムの命令の流れの分散制御は、制御装置のアドレス出力に接続されたアドレス入力を介しての交換機の分散制御と共に、命令語の長さが実質的に小さくなるので、キャッシュの再充填によって生じる計算プロセスの遅延を除去することを可能にする。したがって、１６ユニットのシステムの場合、大半の命令は長さ１６ビットであり、それは先行システムにおけるより数倍短く、命令キャッシュの必要が無くなる。必要な命令取出し速度は、単純に並列アクセス（幾つかの連続命令語の同時取出し）によって提供することができる。分散制御はまた、コードを書きながら、命令、線形コード範囲、またはプログラムの間における機能ユニットの適切な分配によってどのレベルでも同時並行処理を実現することを可能にする。
【００２１】
非同期共同利用コンピュータシステムでは、命令、オペランド、および結果のタグの使用、システム内の同時並行処理間のデータ交換のバッファリング、ならびに結果、オペランド、および命令の「使用可能状態」フラグの使用により、オペランドが利用可能になり次第命令を操作して実行してその完了後即座に結果を転送する命令の非同期実行を達成する。（オペランドが利用可能になり次第行なわれる）命令のデータ駆動型実行は、コンパイル時のマルチシーケンシングにおける個々の命令遅延時間を無視し、パイプライン方式アーキテクチャに比較して機能ユニットの遊休時間を低減することを可能にする。
【００２２】
さらに、ユニット間のシステム内リンクの標準化が、異なる動作能力を持つシステム内の異なる型の機能ユニットを使用する可能性と共に、特殊用途におけるハードウェアの量およびその電力消費を最適化することを可能にする点にも注意すべきである。該アーキテクチャの特徴であるデータ相互接続レジスタは、データによって関連付けられないタスクの同時独立実行を計画することを可能にする。論理数レジスタは、待機ユニットを提供し、個別機能ユニットの故障時にシステムを効率的に再構成することを可能にする。
【００２３】
図面の説明
本発明を添付の図面によって詳説する。
図１は、共同利用コンピュータシステムの構造を示す。
図２は、命令語の主フォーマットを示す。
図３は、多層形の数式Ｆ．１をグラフで表わす。
図４は、多層形の数式Ｆ．２をグラフで表わす。
図５は、非同期の共同利用コンピュータシステムのｋ番目の機能ユニットの構造を表わす。
図６は、非同期の共同利用コンピュータシステムの交換機の構造を表わす。
図７は、ｋ番目の交換ノードの構造を表わす。
【００２４】
発明の最適の実施形態
共同利用コンピュータシステム（図１）は、機能ユニット１．１，．．．，１．Ｋ，．．．，１．Ｎと、Ｎ個のデータ入力ｉ１，．．．，ｉｋ，．．．，ｉＮ、２Ｎ個のアドレス入力ａ１，ａ２，．．．，ａ２ｋ−１，ａ２ｋ，．．．，ａ２Ｎ−１，ａ２Ｎ、２Ｎ個のデータ出力ｏ１，ｏ２，．．．，ｏ２ｋ−１，ｏ２ｋ，．．．，ｏ２Ｎ−１，ｏ２Ｎを持つイーチトゥイーチ交換機２とを含む。各機能ユニットは制御装置３、プログラムメモリ４、ならびに二項および単項演算を実現する演算装置５から成り、それは２つのデータ入力Ｉ１およびＩ１、２つのアドレス出力Ａ１およびＡ２、ならびにデータ出力Ｏを有する。ｋ番目の機能ユニット（ｋ＝１，．．．，Ｎ）のデータ入力Ｉ１は交換機のデータ出力ｏ２ｋ−１に接続され、データ入力Ｉ２は交換機のデータ出力ｏ２ｋに接続される。アドレス出力Ａ１は交換機のアドレス入力ａ２ｋ−１に接続され、アドレス出力Ａ２は交換機のアドレス入力ａ２ｋに接続され、ｋ番目の機能ユニットのデータ出力Ｏは交換機のデータ入力ｉｋに接続される。機能ユニットのデータ入力は制御装置３のデータ入力であり、機能ユニットのアドレス出力はそれぞれ制御装置３の第１および第２アドレス出力であり、制御装置３の第３アドレス出力はプログラムメモリ４のアドレス入力に接続され、制御装置３の命令入力／出力はプログラムメモリ４の命令入力／出力に接続され、制御装置３の制御出力は演算装置５の制御入力に接続され、制御装置の第１および第２データ出力は演算装置５の第１および第２データ入力にそれぞれ接続され、演算装置５のデータ出力は機能ユニットのデータ出力である。演算装置５はＩ／Ｏ装置５．１および／またはＡＬＵ５．２および／またはデータメモリ５．３を含み、ここで演算装置５の第１データ入力はＩ／Ｏ装置５．１、ＡＬＵ５．２、およびデータメモリ５．３のデータ入力であり、演算装置５の第２データ入力は、Ｉ／Ｏ装置５．１およびデータメモリ５．３のアドレス入力ならびにＡＬＵ５．２の第２データ入力である。演算装置５の制御入力はＩ／Ｏ装置５．１、ＡＬＵ５．２、およびデータメモリ５．３の制御入力であり、Ｉ／Ｏ装置５．１、ＡＬＵ５．２、およびデータメモリ５．３のデータ出力は演算装置５のデータ出力である。
【００２５】
共同利用コンピュータシステムは次の通り作動する。
【００２６】
プログラムメモリおよびデータメモリの初期状態は、それぞれ命令語およびデータ語のシーケンスの形でＩ／Ｏ操作を実現するユニットを通して入力される。入力（ブートストラップ）コードは、別個の不揮発性メモリデバイス（チップ）として物理的に実現されるプログラムメモリの特定のバンクを占有する。
【００２７】
命令語（図２）は２つのフォーマットを有する。第１フォーマットはオプコードフィールドおよび２つのオペランドアドレスフィールドを含む。第２フォーマットはオプコードフィールド、オペランドアドレスフィールド、および命令、データ、または周辺装置のアドレスのフィールドから成る。オプコードフィールドのサイズは命令セットによって決定され、少なくとも］ｌｏｇ２Ｐ［ビットでなければならない。ここでＰはセット内の命令の個数である。オペランドアドレスフィールドのサイズはシステム内のユニットの個数によって決定され、それらは各々少なくとも］ｌｏｇ２Ｎ［ビット長でなければならない。命令、データ、または周辺装置のアドレスのフィールドのサイズおよび構造は、効果的なアドレス計算法によるだけでなく、最大アドレス指定可能なプログラムメモリ、データメモリ、および周辺装置の数によっても決定される。
【００２８】
データ語長はシステムの実現によって、すなわちデータ表現の型、形式、および精度によって決定される。
【００２９】
共同利用コンピュータシステム（図１）の全ての機能ユニットは、それらのプログラムメモリ内のプログラムコードに従って同時に、並列に、かつ独立して作動する。全ての命令は二項または単項演算を実現し、任意の整数のクロックサイクル数の間に２段階パイプラインモードで実行される。完了すると、結果は交換機２に送られる。命令実行の第１段階で、機能ユニットの制御装置３はプログラムメモリ４から命令語を取り出し、それをアンパックし、演算コードに従って演算装置５用の適切な制御信号を生成し、適切なフィールドからオペランドアドレスＡ１およびＡ２を得て、それらをアドレス出力を介して交換機２へ送る。第２段階で、交換機２は機能ユニットの第１および第２データ入力を、第１および第２オペランドアドレス入力を介してアドレス指定された機能ユニットの出力に直接接続し、こうして機能ユニット出力からの前の演算の結果を他のユニットの入力に転送する。第２段階中、データは演算装置５によって二項または単項演算のオペランドとして使用され、その結果は次の命令のために交換機２へ送られる。フォーマット２の命令（図２）からの命令、データ、または周辺装置のアドレスは、このユニットのデータメモリに存在する１つのオペランドによる演算のみならず、分岐命令、データ読出し／書込みおよび入力／出力命令を実行するときに、制御装置によって直接処理される。共同利用コンピュータシステムの演算の２例を以下に提示する。次の２つの数式を例として使用する。
【数式１】
2004503872.tif 000003
【数式２】
2004503872.tif 000004
【００３０】
該数式の演算の順序およびそれらの同時並行処理を説明するデータグラフを、図３および４に多層の形で提示する。
【００３１】
上記の例の場合、共同利用コンピュータシステムが１６個の機能ユニットから成り、そのうちユニット１ないし７はそれらの演算装置内にデータメモリだけを有し、ユニット８ないし１５は純粋に計算用であり（ＡＬＵだけを有し）、ユニット１６はＩ／Ｏユニットであると仮定する。
【００３２】
メモリユニットは、１クロックサイクル長であるフォーマット２のデータ読出し（ｒｄ）および書込み（ｗｒ）命令を実現する。読出しは、命令語に示されるアドレスのメモリからデータを取り出す単項演算である。書込みは、交換機から来る第１オペランド（データ）および命令語に指定された第２オペランド（データメモリのアドレス）による二項演算である。
【００３３】
計算ユニットは次の演算、すなわち１サイクル長の加算（＋）および減算（−）、２サイクル長の乗算（＊）、４サイクル長の除算（／）を実現する。全ての計算命令は二項演算にフォーマット１を使用する。減数および被除数はそれぞれの命令の第１オペランドである。
【００３４】
ユニットの調和した相互作用を確実にするために、１またはそれ以上のクロックサイクル間ユニットの出力に結果を維持する必要がある。これは、前の命令の結果をユニットの出力にｔクロックサイクルだけ維持する遅延命令（ｄ、フォーマット２）によって行なわれる。結果はまた、それをスクラッチ位置に書き込むことによっても１サイクルだけ遅延させることができる。書込み動作が完了すると、データはデータメモリに書き込まれるだけでなく、命令の結果として出力にも現れる。長い演算では、前の命令の結果は、現在の長い演算の最後のクロックサイクルまで機能ユニットの出力に維持される。
【００３５】
命令に対して次の表記法を想定する。
2004503872.tif 000005
ここで＜オプコード＞は演算ニモーニックであり、＜ユニット＞はその結果を命令のオペランドとして使用する機能ユニットを参照する１から１６までの間の数字であり、＜ラベル＞はメモリに存在するオペランドのラベルであり、コードのアセンブリおよびローディングによりそのアドレスがアドレスフィールドに生成される。
【００３６】
遅延命令は、ラベルの代わりにサイクル数を使用する。
【００３７】
行列要素（ａ１１，ａ１２，ａ１３，ａ２１，ａ２２，ａ２３，ａ３１，ａ３２，ａ３３）はメモリユニット１〜３に縦列方向に配置される。ベクトル（ｂ１，ｂ２，ｂ３）および（ｃ１，ｃ２，ｃ３）はメモリユニット４〜６に１要素ずつに配置される。変数ｅ、ｚ、およびｖはメモリユニット４に存在する。変数ｄ、ｙはユニット５および６にそれぞれ存在する。変数ｘ、ｗはユニット７に存在する。
【００３８】
スクラッチ位置ｒ１およびｒ３は中間結果を格納するためにユニット７に割り当てられる。結果を１サイクルだけ遅延させ、機能ユニットを解放するために、仮想オペランドｒ２がユニット４に割り当てられる。（このセルは書き込まれるが、読み取られることはない）
【００３９】
数式を計算するコードおよび機能ユニットによるその実行を表１に提示する。
【表１】
2004503872.tif 000006
【００４０】
各ユニットについて、命令が縦方向に上から下に、その実行順に示されている。命令が占めるセルの長さは持続時間に対応する。クロックサイクルは左欄に通し番号が付いている。
【００４１】
表の最後の横行は、機能ユニットの各々によって実行される命令の個数を示す。
【００４２】
共同利用コンピュータシステムのさらなる展開は、非同期の共同利用コンピュータシステムである（図５、６、７）。システムの各ユニットは２つのオペランドタグ入力ＭＡ１およびＭＡ２、２のオペランド可用性フラグ入力ＳＡ１およびＳＡ２、オペランドタグ出力Ｍ、２つのオペランド要求フラグ出力Ｓ１およびＳ２、結果タグ出力ＭＲ、結果可用性フラグ出力ＳＲ、論理数出力ＬＮ、Ｎ個の命令取出し許可フラグ入力ｓｋ１，．．．，ｓｋｋ，．．．，ｓｋＮ、命令取出し許可フラグ出力ＳＫを有する。図５はｋ番目の機能ユニットの相互接続および構造を示す。交換機（図６）はＮ個の結果タグ入力ｍｒ１，．．．，ｍｒｋ，．．．，ｍｒＮ、Ｎ個の結果可用性フラグ入力ｓｒ１，．．．，ｓｒｋ，．．．，ｓｒＮ、Ｎ個のオペランドタグ入力ｍ１，．．．，ｍｋ，．．．，ｍＮ、２Ｎ個のオペランド要求フラグ入力ｓ１，ｓ２，．．．，ｓ２ｋ−１，ｓ２ｋ，．．．，ｓ２Ｎ−１，ｓ２Ｎ、Ｎ個の論理数入力ｌｎ１，．．．，ｌｎｋ，．．．，ｌｎＮ、２Ｎ個のオペランドタグ出力ｍａ１，ｍａ２，．．．，ｍａ２ｋ−１，ｍａ２ｋ，．．．，ｍａ２Ｎ−１，ｍａ２Ｎ、２Ｎ個のオペランド可用性フラグ出力ｓａ１，ｓａ２，．．．，ｓａ２ｋ−１，ｓａ２ｋ，．．．，ｓａ２Ｎ−１，ｓａ２Ｎを有する。ｋ番目の機能ユニット（ｋ＝１，．．．，Ｎ）の第１および第２オペランドタグ入力ＭＡ１およびＭＡ２は、交換機の（２ｋ−１）番目および２ｋ番目のオペランドタグ出力ｍａ２ｋ−１およびｍａ２ｋにそれぞれ接続され、第１および第２オペランド可用性フラグ入力ＳＡ１およびＳＡ２は交換機の（２ｋ−１）番目および２ｋ番目のオペランド可用性フラグ出力ｓａ２ｋ−１およびｓａ２ｋにそれぞれ接続される。オペランドタグ出力Ｍは、交換機のｋ番目のオペランドタグ入力ｍｋに接続され、第１および第２オペランド要求フラグ出力Ｓ１およびＳ２は交換機の（２ｋ−１）番目および２ｋ番目のオペランド要求フラグ入力ｓ２ｋ−１およびｓ２ｋにそれぞれ接続される。結果タグ出力ＭＲは交換機のｋ番目の結果タグ入力ｍｒｋに接続され、結果可用性フラグ出力ＳＲは交換機のｋ番目の結果可用性フラグ入力ｓｒｋに接続される。命令取出し許可フラグ出力ＳＫは全ての機能ユニットのｋ番目の命令取出し許可フラグ入力ｓｋｋに接続される。機能ユニットのオペランドタグ入力ＭＡ１およびＭＡ２ならびにオペランド可用性フラグ入力ＳＡ１およびＳＡ２は、制御装置３の対応する入力である。機能ユニットのオペランドタグ出力Ｍ、オペランド要求フラグ出力Ｓ１およびＳ２は、制御装置３のそれぞれの出力である。制御装置３のタグ出力は演算装置５のタグ入力に接続される。演算装置５の結果タグ出力ＭＲおよび結果可用性フラグ出力ＳＲは、機能ユニットのそれぞれの出力である。機能ユニットの論理数出力ＬＮ、Ｎ個の命令取出し許可フラグ入力ｓｋ１，．．．，ｓｋｋ，．．．，ｓｋＮ、および命令取出し許可フラグ出力ＳＫは、制御装置３のそれぞれの出力（入力）である。非同期の共同利用コンピュータシステムの制御装置は、命令取出器３．１、命令復号器３．２、命令アセンブラ３．３、命令実行コントローラ３．４、命令取出しゲート３．５、データ相互接続レジスタ６、ビジータグメモリ７、オペランド可用性メモリ８、オプコードバッファ９、第１オペランドバッファ１０、および第２オペランドバッファ１１から成る。命令取出器３．１のアドレス出力は制御装置３の第３アドレス出力であり、命令取出器３．１の命令出力は制御装置３の命令出力である。命令取出器３．１の第１タグ出力はビジータグメモリ７の読出しアドレス入力に接続され、命令取出器３．１のタグビジーフラグ入力はビジータグメモリ７のデータ出力に接続される。命令取出器３．１の第２タグ出力は命令復号器３．２のタグ入力およびビジータグメモリ７の書込みアドレス入力に接続され、命令取出器３．のタグビジーフラグ出力はビジータグメモリ７のデータ入力に接続される。命令取出器３．１の制御入力は命令復号器３．２の制御出力に接続され、命令取出器３．１のデータ入力は命令実行コントローラ３．４の第３データ出力に接続され、命令取出器３．１の命令取出し許可フラグ出力ＳＫは制御装置３の出力である。命令復号器３．２の命令入力は制御装置３の命令入力であり、命令復号器３．２のオペランドタグ出力は制御装置３のオペランドタグ出力Ｍであり、命令復号器３．２の第１オペランド要求フラグ出力、第１アドレス出力、第２オペランド要求フラグ出力、および第２アドレス出力は、制御装置３のそれぞれの出力Ｓ１、Ａ１、Ｓ２、Ａ２であり、命令復号器３．２のデータ／制御出力は命令アセンブラ３．３のデータ／制御入力に接続される。命令アセンブラ３．３のオペランドタグ入力、オペランド可用性フラグ入力、およびデータ入力は、制御装置３のそれぞれの入力ＭＡ１、ＭＡ２、ＳＡ１、ＳＡ２、Ｉ１、Ｉ２である。命令アセンブラ３．３の第１タグ出力はオペランド可用性メモリ８のアドレス入力に接続される。命令アセンブラ３．３の第２、第３および第４タグ出力は、書込みアドレス入力オプコードバッファ９、第１オペランドバッファ１０および第２オペランドバッファ１１にそれぞれ接続される。命令アセンブラ３．３の第１データ入力／出力はオペランド可用性メモリ８のデータ入力／出力に接続される。その第２、第３および第４データ出力はオプコードバッファ９、第１オペランドバッファ１０、および第２オペランドバッファ１１のデータ入力にそれぞれ接続される。命令アセンブラ３．３の命令使用可能状態フラグ出力は、命令実行コントローラ３．４の命令使用可能状態フラグ入力に接続される。命令アセンブラ３．３の第５タグ出力は命令実行コントローラ３．４のタグ入力に接続され、第１、第２および第３タグ出力はオプコードバッファ９、第１オペランドバッファ１０、および第２オペランドバッファ１１の読出しアドレス入力にそれぞれ接続される。命令実行コントローラ３．４の第１、第２および第３データ入力は、データ出力オプコードバッファ９、第１オペランドバッファ１０および第２オペランドバッファ１１にそれぞれ接続される。命令実行コントローラ３．４の論理数出力は制御装置のＬＮ出力である。命令実行コントローラ３．４の第４タグ出力はビジータグメモリ７の書込みアドレス入力に接続され、命令実行コントローラ３．４のタグビジーフラグ出力はビジータグメモリ７のデータ入力に接続される。命令実行コントローラ３．４のデータ相互接続出力はデータ相互接続レジスタ６の入力に接続される。命令実行コントローラ３．４の第５タグ出力は制御装置３のタグ出力である。命令実行コントローラ３．４の制御出力は制御装置３の制御出力である。命令実行コントローラ３．４の第１および第２データ出力はそれぞれ制御装置３の第１および第２データ出力である。データ相互接続レジスタ６の出力は命令取出しゲート３．５のデータ相互接続入力に接続され、その取出し許可フラグ出力は命令取出器３．１の取出し許可入力に接続される。命令取出しゲート３．５のＮ個の命令取出し許可フラグ入力は、制御装置３の入力ｓｋ１，．．．，ｓｋｋ，．．．，ｓｋＮである。演算装置５のタグ入力はＩ／Ｏ装置５．１、ＡＬＵ５．２およびデータメモリ５．３のタグ入力である。Ｉ／Ｏ装置５．１、ＡＬＵ５．２およびデータメモリ５．３の結果タグ出力および結果可用性フラグ出力はそれぞれ、演算装置５の結果タグ出力ＭＲおよび結果可用性フラグ出力ＳＲである。交換機２はＮ個の交換ノード２．１，．．．，２．Ｋ，．．．，２．Ｎ（図６）から成り、各ノードはＮ個のセレクタ２．Ｋ．１，．．．，２．Ｋ．Ｋ，．．．，２．Ｋ．Ｎ（図７）を含み、各セレクタは論理数レジスタ１２、要求フラグ発生器１３、要求フラグメモリ１４、および２つのＦＩＦＯバッファ１５および１６を含む。全ての交換ノード（２．１．Ｋ，．．．，２．Ｎ．Ｋ）のｋ番目のセレクタにおいて、交換機のｋ番目のデータ入力ｉＫがＦＩＦＯバッファ１５および１６の第１データ入力に接続され、ｋ番目の結果タグ入力ｍｒｋはＦＩＦＯバッファ１５および１６の第２データ入力および要求フラグメモリ１４の読出しアドレス入力に接続される。ｋ番目の結果可用性フラグ入力ｓｒｋは要求フラグメモリ１４の読出しゲート入力に接続される。ｋ番目の交換ノード（２．Ｋ．１，．．．，２．Ｋ．Ｎ）の全てのセレクタで、交換機の（２ｋ−１）番目のアドレス入力ａ２ｋ−１は要求フラグ発生器１３の第１オペランドアドレス入力に接続され、交換機の２ｋ番目のアドレス入力ａ２ｋは要求フラグ発生器１３の第２オペランドアドレス入力に接続され、（２ｋ−１）番目のオペランド要求フラグ入力ｓ２ｋ−１は要求フラグ発生器１３の第１オペランド要求フラグ入力に接続され、２ｋ番目のオペランド要求フラグ入力ｓ２ｋは要求フラグ発生器１３の第２オペランド要求フラグ入力に接続され、ｋ番目の論理数入力ｌｎｋは論理数レジスタ１２の入力に接続され、ｋ番目のオペランドタグ入力ｍｋは要求フラグメモリ１４の書込みアドレス入力に接続される。全てのセレクタ２．１．１，．．．，２．Ｎ．Ｎにおいて、論理数レジスタ出力１２は要求フラグ発生器１３の論理数入力に接続され、要求フラグ発生器１３のオペランド有りフラグ出力は要求フラグメモリ１４の書込みゲート入力に接続され、要求フラグ発生器１３の第１および第２オペランド有りフラグ出力は要求フラグメモリ１４の第１および第２データ入力にそれぞれ接続される。要求フラグメモリ１４の第１データ出力は第１ＦＩＦＯバッファ１５の書込みゲート入力に接続され、要求フラグメモリ１４の第２データ出力は第２ＦＩＦＯバッファ１６の書込みゲート入力に接続される。ｋ番目交換ノード２．Ｋの全ての第１ＦＩＦＯバッファ１５は、ラウンドロビン方式で読出しゲートを使用してポーリングされ、第１ＦＩＦＯバッファの全ての第１データ出力は一まとめに接続されて交換機の（２ｋ−１）番目のデータ出力ｏ２ｋ−１を形成する。第１ＦＩＦＯバッファの全ての第２データ出力は一まとめに接続されて交換機の（２ｋ−１）番目のオペランドタグ出力ｍａ２ｋ−１を形成し、第１ＦＩＦＯバッファ１５のオペランド可用性フラグ出力は一まとめに接続されて交換機の（２ｋ−１）番目のオペランド可用性フラグ出力ｓａ２ｋ−１を形成する。ｋ番目の交換ノード２．Ｋの全ての第２ＦＩＦＯバッファ１６もラウンドロビン方式で読出しゲートを使用してポーリングされ、第２ＦＩＦＯバッファの第１データ出力は一まとめに接続されて交換機の２ｋ番目のデータ出力ｏ２ｋを形成する。第２ＦＩＦＯバッファ１６の第２データ出力は一まとめに接続されて交換機の２ｋ番目のオペランドタグ出力ｍａ２ｋを形成し、第２ＦＩＦＯバッファ１６のオペランド可用性フラグ出力は一まとめに接続されて交換機の２ｋ番目のオペランド可用性フラグ出力ｓａ２ｋを形成する。
【００４３】
非同期共同計算システムの命令実行は５つの連続的段階を含む。
【００４４】
第１段階は命令語の取出し、オプコードの復号、要求フラグメモリにおけるフラグのセッティング（必要ならば−−演算によって異なる）、ならびにオペランド可用性メモリ内の適切なフラグおよびオプコードバッファ内のオプコードをはじめとする「生」の命令の生成を含む。
【００４５】
第２段階で、前の演算の結果が交換機によって受け取られ、適切なＦＩＦＯバッファに書き込まれて、現在の命令のオペランドとして役立つ。
【００４６】
第３段階で、オペランドがＦＩＦＯバッファから読出され、第１または第２オペランドバッファに記録される。
【００４７】
第４段階で、アセンブルされた生の命令がオプコードバッファならびに第１および第２オペランドバッファから取り出され、実行のために転送される。
【００４８】
第５段階は適切な演算の実行および結果の交換機への転送である。
【００４９】
全ての段階は持続時間が異なることができる。各機能ユニットで、最高Ｌ個までの命令を異なる実行段階で進めることができる。実行の初期（第１段階）だけがユニット間で同期される。他の段階は全て、結果、オペランド、および命令の可用性に応じて、非同期で行なわれる。
【００５０】
実行すべき最初の命令のアドレスは、実行可能コードのローディングによりハードウェアまたはソフトウェアによって設定される。非同期の共同利用コンピュータシステムの機能ユニット１．１，．．．，１．Ｎ（図５）および交換機セレクタ（図７）の初期状態は次の通りである。
ビジータグメモリ７、要求フラグメモリ１４、ならびにＦＩＦＯバッファ１５および１６はクリアされる。
結果可用性フラグＳＲ、オペランド可用性フラグＳＡ１およびＳＡ２および命令可用性フラグはクリアされる（非使用可能）。
データ相互接続レジスタ６はクリアされる。
命令取出し許可フラグＳＫは零である（取出し許可）。
論理数レジ１２、オペランド可用性メモリ８、オプコードバッファ９、第１オペランドバッファ１０および第２オペランドバッファ１１は任意の状態である。
【００５１】
非同期の共同コンピュータシステムでは、命令、オペランド、および計算結果は、識別タグを使用して命令取出器３．１によって識別される。タグの初期値は零である。
【００５２】
取出器３．１による命令取出しは、命令取出しゲート３．５からの取出し許可フラグの試験で始まる。この信号がアクティブ（取出し禁止）である場合、命令取出器３．１は信号が零（取出し許可）に戻るまで待ち、次いで、ビジータグメモリ７からタグ値に等しいアドレスの語を読み出すことによって、次の識別タグの可用性を検査する。この語がクリアされると、タグが利用可能であり、命令取出器３．１は命令アドレスをプログラムメモリ４に送り、非零語をビジータグメモリ７に書き込んでタグが今使用中であることを示し、第２タグ出力を介してタグ値を命令復号器３．２に送る。ビジータグメモリから読み出された語が非零値（タグ使用中）である場合、命令取出器は取出し許可フラグＳＫを１にセットし、タグが利用可能になるまで待ち、利用可能になった後、ＳＫフラグをクリアし、取出し許可フラグの検査から取出しプロセスを繰り返す。
【００５３】
プログラムメモリ４に命令アドレスを発行し、タグを使用中とマーク付けし、命令復号器３．２にタグ値を発行した後、命令取出器は、古い値を１だけ増分することによって（タグの場合、増分はモジュロＬで実行される）新しい命令アドレスおよびタグを生成する。
【００５４】
命令復号器３．２はプログラムメモリ４から命令語を受け取り、それをアンパックし、演算コードを分析する。命令が交換機２から１つまたは２つのオペランドを要求している場合には、復号器３．２はタグ、１つまたは２つのオペランド要求フラグ、および１つまたは２つのオペランドアドレスを生成し、それらをそれぞれ出力Ｍ、Ｓ１、Ｓ２、Ａ１およびＡ２を介して交換機２に転送する。タグ値は命令取出器３．１から受け取ったものに等しく、アドレス値は命令語から得られ、オペランド要求フラグは次のように生成される。命令が交換機からのオペランドを使用する場合、オペランドが存在することを示すために、対応する要求フラグがセットされる。そうでない場合、それはクリアされる。データ、命令、または周辺アドレスを得るためにプログラムメモリ４から余分の語を取り出さなければならないフォーマット２の命令の場合、この目的のための信号が命令取出器３．１にその制御入力を介して送られる。この場合、命令取出器は、タグ値を変化することなく追加の命令語を取り出し、他の機能ユニットの命令取出しを抑制するために取出し許可フラグ（ＳＫ）は読出しサイクルの持続中アクティブにセットされる。
【００５５】
タグ、オプコード、およびデータ／命令／周辺装置アドレスは、データ／制御出力を介して命令アセンブラ３．３に転送される。タグ値をアドレスとして使用して、命令アセンブラ３．３はオペランド可用性メモリ８内の対応する語をクリアし、受け取ったオプコードをオプコードバッファ９に書き込み、フォーマット２命令の場合にはデータ／命令／周辺装置アドレスも第２オペランドバッファ１１に書き込み、オペランド可用性メモリ８に第２オペランド可用性フラグを立てる。他の機能ユニットから到着したオペランドは、アクティブオペランド可用性フラグＳＡ１およびＳＡ２の検知により、バッファに記録される（オペランドは使用可能状態である）。ＭＡ１およびＭＡ２入力を介して受け取ったタグ値は、オペランド値Ｉ１およびＩ２をそれぞれ書き込むために第１オペランドバッファ１０および第２オペランドバッファ１１のアドレスとして使用される。システムは非同期であるので、オペランド値は必ずしも同時に到着しない。オペランドバッファにおけるオペランド値の記録と同時に、対応するフラグがオペランド可用性メモリ８にセットされる。オペランド可用性メモリから語が読出され、到着するオペランドに対応するビットが１にセットされ、次いで両方のオペランドの可用性が検査される。変形された語がオペランド可用性メモリ８に書き戻される。両方のオペランドが使用可能状態であることが分かると、命令使用可能フラグが命令使用可能フラグ出力に生成され、受け取った最後のオペランドのタグ値が第５タグ出力に生成される。それらは命令実行コントローラ３．４に送られる。後者は、受け取ったタグ値をアドレスとして使用して、オプコードバッファ９からオプコードを、第１オペランドバッファ１０から第１オペランド値を、第２オペランドバッファ１１から第２オペランド値を読み出す。タグは、ビジータグメモリ内の同じアドレスの語をクリアすることによって利用可能とマーク付けられ、オプコードが分析される。命令がデータメモリ５．３、ＡＬＵ５．２、またはＩ／Ｏ装置５．１を使用しない場合、すなわち交換機２のための結果を生成しない場合には、命令実行コントローラ３．４によって命令が直接実行される（分岐命令、論理数をセットし、プログラムメモリ４にロードし、データ相互接続レジスタ６をセット命令など）。さもなければ、命令実行コントローラ３．４は古いタグ値を１（モジュロＬ）だけ増分することによって新しいタグ値を生成し、新しいタグ値、オプコード、および両方のオペランド値を第５タグ出力、制御出力、ならびに第１および第２データ出力をそれぞれ介して演算装置５に転送する。
【００５６】
演算装置５は命令を実行し、結果可用性フラグＳＲ、結果タグ（結果タグ出力ＭＲに）、および結果事態（データ出力Ｏに）を生成する。
【００５７】
命令が装置で競合しない場合、それらは同時並列で実行することができる（例えば、ＡＬＵによるデータメモリアクセスと演算の実行、またはＡＬＵの加算器および乗算器が同時にかつ独立して作動できる場合の加算と乗算）。結果が同時に生成された場合、それらは命令取出しの順序で交換機２に送られる。
【００５８】
データ相互接続レジスタ６はＮビット幅であり、どの機能ユニットが命令を同期して取り出さなければならないかを決定する。データ関連機能ユニットは１でマーク付けられる（ｋ番目の機能ユニットはｋビット目のレジスタに対応する）。データ相互接続レジスタ６の値は、命令取出しゲート３．５によって命令取出器３．１に送られる取出し許可フラグを生成するために使用される。データ相互接続レジスタ６のｉ番目のビットがセットされ、ｓｋｉもセットされている場合には、命令取出し許可フラグはアクティブである（取出しは禁止される）。
【００５９】
交換機は命令実行の第２および第３段階に関与する。
【００６０】
第２段階では、要求ビットが要求フラグメモリ１４にセットされる。要求フラグ生成器１３はオペランド要求フラグｓ２ｋ−１およびｓ２ｋを分析する。ｓ２ｋ−１がセットされている場合、論理数レジスタ１２の値が第１オペランドアドレスａ２ｋ−１と比較される。それらが一致すると、第１オペランド要求ビットがセットされ（オペランド有り）、そうでない場合にはクリアされる（オペランド無し）。第２オペランド要求ビットは同様の方法で生成される。２ビット語は要求フラグメモリ１４に、オペランドタグ入力ｍｋを介して受け取ったタグ値に等しいアドレスに書き込まれる。
【００６１】
交換機２がデータ入力ｉｋを介して受け取った結果は、結果可用性フラグｓｒｋおよび結果タグｍｒｋを随伴する。アクティブ結果可用性フラグを受け取ると、所与のデータ入力に接続された全てのセレクタ（２．１．Ｋ，２．２．Ｋ，．．．，２．Ｎ．Ｋ）で、受け取ったタグに等しいアドレスの語が要求フラグメモリ１４から読み出され、次いでクリアされる。この語の第１ビットは第１ＦＩＦＯバッファ１５用の書込みゲート信号として使用され、第２ビットは第２ＦＩＦＯバッファ１６用に使用される。対応するビットが立てられている場合、データ入力ｉｋからの結果およびタグ入力ｍｒｋからのタグが対応するＦＩＦＯバッファにラッチされる。
【００６２】
ＦＩＦＯバッファ１５および１６への書込みと同時並行して、それらは前に送られた情報をポーリングされ、それは命令アセンブラに転送される。ポーリングは、交換ノード２．Ｋの全ての第１ＦＩＦＯバッファ１５およびこのノードの全ての第２ＦＩＦＯバッファに対して別々に、ラウンドロビン方式で行なわれる。データはセレクタ２．Ｋ．Ｎの第１バッファから、次いで２．Ｋ．Ｎ−１から順次２．Ｋ．１へと続き、再び２．Ｋ．Ｎに戻って、連続的に読み出される。第２ＦＩＦＯバッファについても同じである。
【００６３】
所与の第１ＦＩＦＯバッファが空である場合、次のバッファがポーリングされる。そうでない場合、オペランド可用性フラグｓａ２ｋ−１が生成され、結果およびタグがデータ出力ｏ２ｋ−１およびオペランドタグ出力ｍａ２ｋ−１にそれぞれ出力される。現在のＦＩＦＯバッファが空になるまでデータが繰り返し取り出されて転送され、次いで次のバッファがポーリングされる。
【００６４】
数式Ｆ．１およびＦ．２で非同期の共同利用コンピュータシステムの動作を考察しよう。
【００６５】
非同期の共同利用コンピュータシステムが１６個の機能ユニットを持ち、ユニット１ないし１５がデータメモリおよびＡＬＵを含み、ユニット１６がＩ／Ｏユニットであると想定する。使用する命令セット、命令タイミング、ニモーニック、および表の表記法は、前の例の場合と同じである。
【００６６】
行列要素（ａ１１，ａ１２，ａ１３，ａ２１，ａ２２，ａ２３，ａ３１，ａ３２，ａ３３）はユニット１〜９のデータメモリに１ユニットにつき１要素ずつ配置される。ベクトル（ｂ１，ｂ２，ｂ３）および（ｃ１，ｃ２，ｃ３）はユニット１０〜１２に１ユニットにつき１要素ずつ配置される。変数ｅ、ｄ、ｘはユニット１０、１１、１２にそれぞれ配置され、ｙおよびｖはユニット１３に、ｚおよびｗはユニット１４に配置される。
【００６７】
中間結果はユニット１４の場所ｒ１に格納される。
【００６８】
数式（Ｆ．１）および（Ｆ．２）を計算するコードの実行を表２に提示する。
【００６９】
表の最下行は、機能ユニットの各々によって実行される命令の個数を示す。
【００７０】
非同期の共同利用コンピュータシステムのコードを書くときに、全ての命令は１サイクルかかると想定されている。それらの実際の持続時間は実行時に明らかになる。表３はシステムがコードを実行するときの実際の命令のタイミングを提示する。
【００７１】
産業上の利用可能性
本発明は、計算集約的な科学的問題、マルチメディア、およびデジタル信号処理など様々な目的の高性能並列コンピュータシステムを設計するときに使用することができる。本発明はまた、電気通信システムにおける高速交換機にも使用することができる。
【表２】
2004503872.tif 000007
【表３】
2004503872.tif 000008
【図面の簡単な説明】
【図１】
共同利用コンピュータシステムの構造を示す。
【図２】
命令語の主フォーマットを示す。
【図３】
多層形の数式Ｆ．１をグラフで表わす。
【図４】
多層形の数式Ｆ．２をグラフで表わす。
【図５】
非同期の共同利用コンピュータシステムのｋ番目の機能ユニットの構造を表わす。
【図６】
非同期の共同利用コンピュータシステムの交換機の構造を表わす。
【図７】
ｋ番目の交換ノードの構造を表わす。
【図１】
2004503872.tif 000009
【図２】
2004503872.tif 000010
【図３】
2004503872.tif 000011
【図４】
2004503872.tif 000012
【図５】
2004503872.tif 000013
【図６】
2004503872.tif 000014
【図７】
2004503872.tif 000015
【国際公開パンフレット】
2004503872.tif 000016
2004503872.tif 000017
2004503872.tif 000018
2004503872.tif 000019
2004503872.tif 000020
2004503872.tif 000021
2004503872.tif 000022
2004503872.tif 000023
2004503872.tif 000024
2004503872.tif 000025
2004503872.tif 000026
2004503872.tif 000027
2004503872.tif 000028
2004503872.tif 000029
2004503872.tif 000030
2004503872.tif 000031
2004503872.tif 000032
2004503872.tif 000033
2004503872.tif 000034
2004503872.tif 000035
2004503872.tif 000036
2004503872.tif 000037
2004503872.tif 000038
2004503872.tif 000039
2004503872.tif 000040
2004503872.tif 000041
2004503872.tif 000042
2004503872.tif 000043
2004503872.tif 000044
2004503872.tif 000045
2004503872.tif 000046
2004503872.tif 000047
2004503872.tif 000048
2004503872.tif 000049
2004503872.tif 000050
2004503872.tif 000051
2004503872.tif 000052
【国際公開パンフレット（コレクトバージョン）】
2004503872.tif 000053
2004503872.tif 000054
【手続補正書】
【提出日】平成14年11月14日(2002.11.14)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
Ｎ個の機能ユニット１．１，．．．，１．Ｎと、Ｎ個のデータ入力ｉ１，．．．，ｉｋ，．．．，ｉＮ、２Ｎ個のアドレス入力ａ１，ａ２，．．．，ａ２ｋ−１，ａ２ｋ，．．．，ａ２Ｎ−１，ａ２Ｎおよび２Ｎ個のデータ出力ｏ１，ｏ２，．．．，ｏ２ｋ−１，ｏ２ｋ，．．．，ｏ２Ｎ−１，ｏ２Ｎ（図１参照）を持つイーチトゥイーチ交換機（２）を含む共同利用コンピュータシステムにおいて、各機能ユニット１．１，．．．，１．Ｎは制御装置（３）、プログラムメモリ（４）、ならびに単項および２項演算を実現する演算装置（５）を含み、２つのデータ入力Ｉ１，Ｉ２、２つのアドレス出力Ａ１，Ａ２、および１つのデータ出力ｏを有し、ここではｋ番目の機能ユニット（ｋ＝１，．．．，Ｎ）の第１データ入力Ｉ１は交換機の２ｋ−１番目のデータ出力ｏ２ｋ−１に接続され；第２データ入力は交換機の２ｋ番目のデータ出力ｏ２ｋに接続され；第１アドレス出力Ａ１は交換機の２ｋ−１番目のアドレス入力ａ２ｋ−１に接続され；第２アドレス出力Ａ２は交換機の２ｋ番目のアドレス入力ａ２ｋに接続され；ｋ番目の機能ユニットのデータ出力ｏは交換機のｋ番目のデータ入力ｉｋに接続され；機能ユニット１．Ｋのデータ入力Ｉ１，Ｉ２は制御装置（３）のデータ入力であり；機能ユニットのアドレス出力Ａ１，Ａ２はそれぞれ制御装置（３）の第１および第２アドレス出力であり；制御装置（３）の第３アドレス出力はプログラムメモリ（４）のアドレス入力に接続され；制御装置（３）の命令入力／出力はプログラムメモリ（４）の命令入力／出力に接続され；制御装置（３）の制御出力は演算装置（５）の制御入力に接続され；制御装置（３）の第１および第２データ出力はそれぞれ演算装置（５）の第１および第２データ入力に接続され；演算装置（５）のデータ出力は機能ユニット１．Ｋのデータ出力であり；演算装置（５）は入力／出力装置（５．１）および／または算術論理演算ユニット（５．２）および／またはデータメモリ（５．３）を含み、ここで演算装置（５）の第１データ入力はＩ／Ｏ装置（５．１）、ＡＬＵ（５．２）およびデータメモリ（５．３）のデータ入力であり；演算装置（５）の第２データ入力はＩ／Ｏ装置（５．１）およびデータメモリ（５．３）のアドレス入力およびＡＬＵ（５．２）の第２データ入力であり；演算装置（５）の制御入力はＩ／Ｏ装置（５．１）、ＡＬＵ（５．２）およびデータメモリ（５．３）の制御入力であり；Ｉ／Ｏ装置（５．１）、ＡＬＵ（５．２）およびデータメモリ（５．３）のデータ出力は演算装置（５）のデータ出力であることを特徴とする共同コンピュータシステム。
【請求項２】
各機能ユニット１．１，．．．，１．Ｋ，．．．，１．Ｎは２つのオペランドタグ入力ＭＡ１，ＭＡ２、２つのオペランド可用性フラグ入力ＳＡ１，ＳＡ２、オペランドタグ出力Ｍ、２つのオペランド要求フラグ出力Ｓ１，Ｓ２、結果タグ出力ＭＲ、結果可用性フラグ出力ＳＲ、論理数出力ＬＮ、Ｎ個の命令取出し許可フラグ入力ｓｋ１，．．．，ｓｋｋ，．．．，ｓｋＮ、および命令取出し許可フラグ出力ＳＫを含むものとし、交換機（２）は、Ｎ個の結果タグ入力ｍｒ１，．．．，ｍｒｋ，．．．，ｍｒＮ、Ｎ個の結果可用性フラグ入力ｓｒ１，．．．，ｓｒｋ，．．．，ｓｒＮ、Ｎ個のオペランドタグ入力ｍ１，．．．，ｍｋ，．．．，ｍＮ、２Ｎ個のオペランド要求フラグ入力ｓ１，ｓ２，．．．，ｓ２ｋ−１，ｓ２ｋ，．．．，ｓ２Ｎ−１，ｓ２Ｎ、Ｎ個の論理数入力ｌｎ１，．．．，ｌｎｋ，．．．，ｌｎＮ、２Ｎ個のオペランドタグ出力ｍａ１，ｍａ２，．．．，ｍａ２ｋ−１，ｍａ２ｋ，．．．，ｍａ２Ｎ−１，ｍａ２Ｎ、２Ｎ個のオペランド可用性フラグ出力ｓａ１，ｓａ２，．．．，ｓａ２ｋ−１，ｓａ２ｋ，．．．，ｓａ２Ｎ−１，ｓａ２Ｎを持ち、ここでｋ番目の機能ユニット（ｋ＝１，．．．，Ｎ）に対し、第１および第２オペランドタグ入力ＭＡ１，ＭＡ２は、交換機の２ｋ−１番目および２ｋ番目のオペランドタグ出力ｍａ２ｋ−１，ｍａ２ｋにそれぞれ接続され；第１および第２オペランド可用性フラグ入力ＳＡ１，ＳＡ２は、交換機の２ｋ−１番目および２ｋ番目のオペランド可用性フラグ出力ｓａ２ｋ−１，ｓａ２ｋにそれぞれ接続され；オペランドタグ出力Ｍは、交換機のｋ番目のオペランドタグ入力ｍｋに接続され；第１および第２オペランド要求フラグ出力Ｓ１，Ｓ２は、交換機の２ｋ−１番目および２ｋ番目のオペランド要求フラグ入力ｓ２ｋ−１，ｓ２ｋにそれぞれ接続され；結果タグ出力ＭＲは、交換機のｋ番目の結果タグ入力ｍｒｋに接続され；結果可用性フラグ出力ＳＲは交換機のｋ番目の結果可用性フラグ入力ｓｒｋに接続され；命令取出し許可フラグ出力ＳＫは全機能ユニット１．１，．．．，１．Ｋ，．．．，１．Ｎのｋ番目の命令取出し許可フラグ入力ｓｋｋに接続され、さらに機能ユニット１．Ｋのオペランドタグ入力ＭＡ１，ＭＡ２およびオペランド可用性フラグ入力ＳＡ１，ＳＡ２は制御装置（３）の入力に対応し；機能ユニット１．Ｋのオペランドタグ出力Ｍおよびオペランド要求フラグ出力Ｓ１，Ｓ２は、制御装置（３）のそれぞれの出力であり；制御装置（３）のタグ出力は演算装置（５）のタグ入力に接続され；演算装置（５）の結果タグ出力ＭＲおよび結果可用性フラグ出力ＳＲは機能ユニット１．Ｋのそれぞれの出力であり；機能ユニット１．Ｋの論理数出力ＬＮ、Ｎ個の命令取出し許可フラグ入力ｓｋ１，．．．，ｓｋｋ，．．．，ｓｋＮ、および命令取出し許可フラグ出力ＳＫは、制御装置（３）のそれぞれの出力および入力であり；制御装置（３）は命令取出器（３．１）、命令復号器（３．２）、命令アセンブラ（３．３）、命令実行コントローラ（３．４）、命令取出しゲート（３．５）、Ｎビット幅データ相互接続レジスタ（６）、ビジータグメモリ（７）、オペランド可用性メモリ（８）、オプコードバッファ（９）、第１オペランドバッファ（１０）、第２オペランドバッファ（１１）から成り、後者の５つの実体はＬ語の大きさであり；命令取出器（３．１）のアドレス出力は制御装置（３）の第３アドレス出力であり；命令取出器（３．１）の命令出力は制御装置（３）の命令出力であり；命令取出器（３．１）の第１タグ出力はビジータグメモリ（７）の読出しアドレス入力に接続され；命令取出器（３．１）のタグビジーフラグ入力はビジータグメモリ（７）のデータ出力に接続され；命令取出器（３．１）の第２タグ出力は命令復号器（３．２）のタグ入力およびビジータグメモリ（７）の書込みアドレス入力に接続され；命令取出器（３．１）のタグビジーフラグ出力はビジータグメモリ（７）のデータ入力に接続され；命令取出器（３．１）の制御入力は命令復号器（３．２）の制御出力に接続され；命令取出器（３．１）のデータ入力は命令実行コントローラ（３．４）の第３データ出力に接続され；命令取出器（３．１）の命令取出許可フラグ出力ＳＫは制御装置（３）の対応する出力であり、命令復号器（３．２）の命令入力は制御装置（３）の命令入力であり；命令復号器（３．２）のオペランドタグ出力Ｍ、オペランド要求フラグ出力Ｓ１，Ｓ２、およびアドレス出力Ａ１，Ａ２は制御装置（３）のそれぞれの出力であり；命令復号器（３．２）のデータ／制御出力は命令アセンブラ（３．３）のデータ／制御入力に接続され；命令アセンブラ（３．３）のオペランドタグ入力ＭＡ１，ＭＡ２、オペランド可用性フラグ入力ＳＡ１，ＳＡ２、およびデータ入力Ｉ１，Ｉ２は制御装置（３）の対応する入力であり；命令アセンブラ（３．３）の第１タグ出力はオペランド可用性メモリ（８）のアドレス入力に接続され；命令アセンブラ（３．３）の第２、第３および第４タグ出力はオプコードバッファ（９）、第１オペランドバッファ（１０）および第２オペランドバッファ（１１）の書込みアドレス入力にそれぞれ接続され；命令アセンブラ（３．３）の第１データ入力／出力はオペランド可用性メモリ（８）のデータ入力／出力に接続され；命令アセンブラの第２、第３および第４データ出力はオプコードバッファ（９）、第１オペランドバッファ（１０）および第２オペランドバッファ（１１）のデータ入力にそれぞれ接続され；命令アセンブラ（３．３）の命令使用可能状態フラグ出力は、命令実行コントローラ（３．４）の命令使用可能状態フラグ入力に接続され；命令アセンブラ（３．３）の第５タグ出力は命令実行コントローラ（３．４）のタグ入力に接続され；命令実行コントローラ（３．４）の第１、第２および第３タグ出力はオプコードバッファ（９）、第１オペランドバッファ（１０）および第２オペランドバッファ（１１）の読出しアドレス入力にそれぞれ接続され；命令実行コントローラ（３．４）の第１、第２および第３データ入力はオプコードバッファ（９）、第１オペランドバッファ（１０）および第２オペランドバッファ（１１）のデータ出力にそれぞれ接続され；命令実行コントローラ（３．４）の論理数出力ＬＮは、制御装置（３）の出力であり；命令実行コントローラ（３．４）の第４タグ出力はビジータグメモリ（７）の書込みアドレス入力に接続され；命令実行コントローラ（３．４）のタグビジーフラグ出力はビジータグメモリ（７）のデータ入力に接続され；命令実行コントローラ（３．４）のデータ相互接続出力はデータ相互接続レジスタ（６）の入力に接続され；命令実行コントローラ（３．４）の第５タグ出力は制御装置（３）のタグ出力であり；命令実行コントローラ（３．４）の制御出力、第１および第２データ出力は制御装置（３）のそれぞれの出力であり；データ相互接続レジスタ（６）の出力は命令取出しゲート（３．５）のデータ相互接続入力に接続され；命令取出しゲート（３．５）の命令取出し許可出力は命令取出器（３．１）の命令取出し許可入力に接続され；命令取出しゲート（３．５）のＮ個の命令取出し許可フラグ入力ｓｋ１，．．．，ｓｋｋ，．．．，ｓｋＮは、制御装置（３）の対応する入力であり；演算装置（５）のタグ入力はＩ／Ｏ装置（５．１）、ＡＬＵ（５．２）およびデータメモリ（５．３）のタグ入力であり；Ｉ／Ｏ装置（５．１）、ＡＬＵ（５．２）およびデータメモリ（５．３）の結果タグ出力および結果可用性フラグ出力はそれぞれ、演算装置（５）の結果タグ出力ＭＲおよび結果可用性フラグ出力ＳＲであり；交換機（２）はＮ個の交換ノード２．１，．．．，２．Ｋ，．．．，２．Ｎから成り、各ノードはＮ個のセレクタ２．Ｋ．１，．．．，２．Ｋ．Ｋ，．．．，２．Ｋ．Ｎを含み、各セレクタはｌｏｇ２Ｎビット論理数レジスタ（１２）、要求フラグ発生器（１３）、Ｌ語要求フラグメモリ（１４）、および２つのＦＩＦＯバッファ（１５，１６）を含み、ここで全ての交換ノードで、ｋ番目のセレクタ（ｋ＝１，．．．，Ｎ）に対し、交換機のｋ番目のデータ入力ｉｋがＦＩＦＯバッファ（１５，１６）の第１データ入力に接続され；ｋ番目の結果タグ入力ｍｒｋはＦＩＦＯバッファ（１５，１６）の第２データ入力及び要求フラグメモリ（１４）の読出しアドレス入力に接続され；ｋ番目の結果可用性フラグ入力ｓｒｋは要求フラグメモリ（１４）の読出しゲート入力に接続され；ｋ番目の交換ノードの全てのセレクタ２．Ｋ．１，．．．，２．Ｋ．Ｋ，．．．，２．Ｋ．Ｎに対し、交換機の２ｋ−１番目のアドレス入力ａ２ｋ−１は要求フラグ発生器（１３）の第１オペランドアドレス入力に接続され；交換機の２ｋ番目のアドレス入力ａ２ｋは要求フラグ発生器（１３）の第２オペランドアドレス入力に接続され；２ｋ−１番目のオペランド要求フラグ入力ｓ２ｋ−１は要求フラグ発生器（１３）の第１オペランド要求フラグ入力に接続され；２ｋ番目のオペランド要求フラグ入力ｓ２ｋは要求フラグ発生器（１３）の第２オペランド要求フラグ入力に接続され；ｋ番目の論理数入力ｌｎｋは論理数レジスタ（１２）の入力に接続され；ｋ番目のオペランドタグ入力ｍｒｋは要求フラグメモリ（１４）の書込みアドレス入力に接続され；全てのセレクタ２．Ｋ．１，．．．，２．Ｋ．Ｋ，．．．，２．Ｋ．Ｎにおいて、論理数レジスタ出力（１２）は要求フラグ発生器（１３）の論理数入力に接続され；要求フラグ発生器（１３）のオペランド有りフラグ出力は要求フラグメモリ（１４）の書込みゲート入力に接続され；要求フラグ発生器（１３）の第１および第２オペランド有りフラグ出力は要求フラグメモリ（１４）の第１および第２データ入力にそれぞれ接続され；要求フラグメモリ（１４）の第１データ出力は第１ＦＩＦＯバッファ（１５）の書込みゲート入力に接続され；要求フラグメモリ（１４）の第２データ出力は第２ＦＩＦＯバッファ（１６）の書込みゲート入力に接続され；ｋ番目交換ノードの全ての第１ＦＩＦＯバッファ（１５）は、ラウンドロビン方式で読出しゲートを使用して周期的にポーリングされ；第１ＦＩＦＯバッファ（１５）の第１データ出力は一まとめに接続されて交換機の２ｋ−１番目のデータ出力ｏ２ｋ−１を形成し；第１ＦＩＦＯバッファ（１５）の第２データ出力は一まとめに接続されて交換機の２ｋ−１番目のオペランドタグ出力ｍａ２ｋ−１を形成し；第１ＦＩＦＯバッファ（１５）のオペランド可用性フラグ出力は一まとめに接続されて交換機の２ｋ−１番目のオペランド可用性フラグ出力ｓａ２ｋ−１を形成し；ｋ番目の交換ノードの全ての第２ＦＩＦＯバッファ（１６）もラウンドロビン方式で読出しゲートを使用して周期的にポーリングされ；第２ＦＩＦＯバッファ（１６）の第１データ出力は一まとめに接続されて交換機の２ｋ番目のデータ出力ｏ２ｋを形成し；第２ＦＩＦＯバッファ（１６）の第２データ出力は一まとめに接続されて交換機の２ｋ番目のオペランドタグ出力ｍａ２ｋを形成し；第２ＦＩＦＯバッファ（１６）のオペランド可用性フラグ出力は一まとめに接続されて交換機の２ｋ番目のオペランド可用性フラグ出力ｓａ２ｋを形成することを特徴とする請求項１に記載のシステム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
該問題は、Ｎ個の機能ユニット、Ｎ個のデータ入力、２Ｎ個のアドレス入力および２Ｎ個のデータ出力を持つイーチトゥイーチ交換機を含む請求項１による共同利用コンピュータシステムによって解決される。本発明によると、各機能ユニットは制御装置、プログラムメモリ、ならびに単項および２項演算を実現する演算装置を含み、２つのデータ入力、２つのアドレス出力、および１つのデータ出力を有する。ｋ番目の機能ユニット（ｋ＝１，．．．，Ｎ）の第１データ入力は交換機の（２ｋ−１）番目のデータ出力に接続され、第２データ入力は交換機の２ｋ番目のデータ出力に、交換機の第１アドレス出力は（２ｋ−１）番目のアドレス入力に、第２アドレス出力は交換機の２ｋ番目のアドレス入力に、データ出力は交換機のｋ番目のデータ入力に接続される。機能ユニットのデータ入力は制御装置のデータ入力であり、機能ユニットのアドレス出力はそれぞれ制御装置の第１および第２アドレス出力であるのに対して、制御装置の第３アドレス出力はプログラムメモリのアドレス入力に接続され、制御装置の命令入力／出力はプログラムメモリの命令入力／出力に接続され、制御装置の制御出力は演算装置の制御入力に接続され、制御装置の第１および第２データ出力はそれぞれ演算装置の第１および第２データ入力に接続され、演算装置のデータ出力は機能ユニットのデータ出力である。演算装置は入力／出力（Ｉ／Ｏ）装置および／または算術論理演算ユニット（ＡＬＵ）および／またはデータメモリを含み、ここで演算装置の第１データ入力はＩ／Ｏ装置、ＡＬＵおよびデータメモリのデータ入力であり、演算装置の第２データ入力はＩ／Ｏ装置およびデータメモリのアドレス入力であり、演算装置の制御入力はＩ／Ｏ装置、ＡＬＵおよびデータメモリの制御入力であり、Ｉ／Ｏ装置、ＡＬＵまたはデータメモリのデータ出力は演算装置のデータ出力である。


【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
請求項２に規定された本発明の第２変形、非同期共同利用コンピュータシステムの場合、各機能ユニットは２つのオペランドタグ入力、２つのオペランド可用性フラグ入力、オペランドタグ出力、２つのオペランド要求フラグ出力、結果タグ出力、結果フラグ出力、論理数出力、Ｎ個の命令取出し許可フラグ入力、および命令取出し許可フラグ出力をも含むものとする。この場合の交換機は、Ｎ個の結果タグ入力、Ｎ個の結果可用性フラグ入力、Ｎ個のオペランドタグ入力、２Ｎ個のオペランド要求フラグ入力、Ｎ個の論理数入力、２Ｎ個のオペランドタグ出力、２Ｎ個のオペランド可用性フラグ出力を持つものとする。入力および出力は次の通り相互接続される。ｋ番目の機能ユニット（ｋ＝１，…，Ｎ）の第１および第２オペランドタグ入力は、交換機の（２ｋ−１）番目および２ｋ番目のオペランドタグ出力にそれぞれ接続される。第１および第２オペランド可用性フラグ入力は、交換機の（２ｋ−１）番目および２ｋ番目のオペランド可用性フラグ出力にそれぞれ接続される。ｋ番目の機能ユニットのオペランドタグ出力は、交換機のｋ番目のオペランドタグ入力に接続される。第１および第２オペランド要求フラグ出力は、交換機の（２ｋ−１）番目および２ｋ番目のオペランド要求フラグ入力にそれぞれ接続される。ｋ番目の機能ユニットの結果タグ出力は、交換機のｋ番目の結果タグ入力に接続され、結果可用性フラグ出力は交換機のｋ番目の結果可用性フラグ入力に接続される。命令取出し許可フラグ出力は全機能ユニットのｋ番目の命令取出し許可フラグ入力に接続される。機能ユニットのオペランドタグ入力およびオペランド可用性フラグ入力は制御装置のそれぞれの入力である。機能ユニットのオペランドタグ出力およびオペランド要求フラグ出力は、制御装置のそれぞれの出力である。制御装置のタグ出力は演算装置のタグ入力に接続される。演算装置の結果タグ出力および結果可用性フラグ出力は機能ユニットのそれぞれの出力である。機能ユニットの論理数出力、Ｎ個の命令取出し許可フラグ入力、および命令取出し許可フラグ出力は、制御装置のそれぞれの出力（入力）である。制御装置は命令取出器、命令復号器、命令アセンブラ、命令実行コントローラ、命令取出しゲート、Ｎビットデータ相互接続レジスタ、ビジータグメモリ、オペランド可用性メモリ、演算コードバッファ、第１オペランドバッファ、第２オペランドバッファから成り、後者の５つのメモリユニットは各々Ｌ個のセルから成る。命令取出器のアドレス出力は制御装置の第３アドレス出力であり、命令取出器の命令出力は制御装置の命令出力であり、命令取出器の第１タグ出力はビジータグメモリの読出しアドレス入力に接続される。命令取出器のタグビジーフラグ入力はビジータグメモリのデータ出力に接続され、命令取出器の第２タグ出力は命令復号器のタグ入力およびビジータグメモリの書込みアドレスタグ入力に接続され、命令取出器のタグビジーフラグ出力はビジータグメモリのデータ入力に接続される。命令取出器の制御入力は命令復号器の制御出力に接続され、命令取出器のデータ入力は命令実行コントローラの第３データ出力に接続され、命令取出器の命令取出許可フラグ出力は制御装置の対応する出力である。命令復号器の命令入力は制御装置の命令入力であり、そのオペランドタグ出力、オペランド要求フラグ出力、およびアドレス出力は制御装置のそれぞれの出力である。命令復号器のデータ／制御出力は命令アセンブラのデータ／制御入力に接続され、そのオペランドタグ入力、オペランド可用性フラグ入力、およびデータ入力は制御装置の対応する入力である。命令アセンブラの第１タグ出力はオペランド可用性メモリのアドレス入力に接続され、命令アセンブラの第２、第３および第４タグ出力はオプコードバッファ、第１オペランドバッファおよび第２オペランドバッファの書込みアドレス入力にそれぞれ接続される。命令アセンブラの第１データ入力／出力はオペランド可用性メモリのデータ入力／出力に接続され、命令アセンブラの第２、第３および第４データ出力はオプコードバッファ、第１オペランドバッファおよび第２オペランドバッファのデータ入力にそれぞれ接続される。命令アセンブラの命令使用可能状態フラグ出力は、命令実行コントローラの命令使用可能状態フラグ入力に接続される。命令アセンブラの第５タグ出力は命令実行コントローラのタグ入力に接続され、その第１、第２および第３タグ出力はオプコードバッファ、第１オペランドバッファおよび第２オペランドバッファの読出しアドレス入力にそれぞれ接続され、その第１、第２および第３データ入力はオプコードバッファ、第１オペランドバッファおよび第２オペランドバッファのデータ出力にそれぞれ接続される。命令実行コントローラの論理数出力は、制御装置の対応する出力である。命令実行コントローラの第４タグ出力はビジータグメモリの書込みアドレス入力に接続され、命令実行コントローラのタグビジーフラグ出力はビジータグメモリのデータ入力に接続される。命令実行コントローラのデータ相互接続出力はデータ相互接続レジスタの入力に接続される。命令実行コントローラの第５タグ出力は制御装置のタグ出力であり、命令実行コントローラの制御出力、第１および第２データ出力は制御装置のそれぞれの出力である。データ相互接続レジスタの出力は命令取出しゲートのデータ相互接続入力に接続され、その取出し許可フラグ出力は命令取出器の対応する入力に接続される。命令取出しゲートのＮ個の命令取出し許可フラグ入力は、制御装置の対応する入力である。演算装置のタグ入力はＩ／Ｏ装置、ＡＬＵおよびデータメモリのタグ入力である。Ｉ／Ｏ装置、ＡＬＵおよびデータメモリの結果タグ出力および結果可用性フラグ出力はそれぞれ、演算装置の結果タグ出力および結果可用性フラグ出力である。交換機はＮ個の交換ノードから成り、各ノードはＮ個のセレクタを含み、各セレクタは］ｌｏｇ２Ｎ［ビット論理数レジスタ、要求フラグ発生器、Ｌ語要求フラグメモリ、および２つのＦＩＦＯバッファを含む。全ての交換ノードで、ｋ番目のセレクタ（ｋ＝１，．．．，Ｎ）に対し、交換機のｋ番目のデータ入力がＦＩＦＯバッファの第１データ入力に接続され、ｋ番目の結果タグ入力はＦＩＦＯバッファの第２データ入力に接続され、ｋ番目の結果可用性フラグ入力は要求フラグメモリの読出しゲート入力に接続される。ｋ番目の交換ノード（ｋ＝１，．．．，Ｎ）の全てのセレクタで、交換機の（２ｋ−１）番目のアドレス入力は要求フラグ発生器の第１オペランドアドレス入力に接続され、交換機の２ｋ番目のアドレス入力は要求フラグ発生器の第２オペランドアドレス入力に接続され、（２ｋ−１）番目のオペランド要求フラグ入力は要求フラグ発生器の第１オペランド要求フラグ入力に接続され、２ｋ番目のオペランド要求フラグ入力は要求フラグ発生器の第２オペランド要求フラグ入力に接続され、ｋ番目の論理数入力は論理数レジスタの入力に接続され、ｋ番目のオペランドタグ入力は要求フラグメモリの書込みアドレス入力に接続される。全てのセレクタに対して、論理数レジスタ出力は要求フラグ発生器の論理数入力に接続され、要求フラグ発生器のオペランド有りフラグ出力は要求フラグメモリの書込みゲート入力に接続され、第１および第２オペランド要求フラグ出力は要求フラグメモリの第１および第２データ入力にそれぞれ接続される。要求フラグメモリの第１データ出力は第１ＦＩＦＯバッファの書込みゲート入力に接続され、要求フラグメモリの第２データ出力は第２ＦＩＦＯバッファの書込みゲート入力に接続される。ｋ番目交換ノードの全ての第１ＦＩＦＯバッファは、ラウンドロビン方式で読出しゲートを使用してポーリングされ、第１ＦＩＦＯバッファの全ての第１データ出力は一まとめに接続されて交換機の（２ｋ−１）番目のデータ出力を形成する。第１ＦＩＦＯバッファの全ての第２データ出力は一まとめに接続されて（２ｋ−１）番目のオペランドタグ出力を形成し、第１ＦＩＦＯバッファのオペランド可用性フラグ出力は一まとめに接続されて、交換機の（２ｋ−１）番目のオペランド可用性フラグ出力を形成する。ｋ番目の交換ノードの全ての第２ＦＩＦＯバッファもラウンドロビン方式で読出しゲートを使用してポーリングされ、第２ＦＩＦＯバッファの第１データ出力は一まとめに接続されて交換機の２ｋ番目のデータ出力を形成する。第２ＦＩＦＯバッファの第２データ出力は一まとめに接続されて交換機の２ｋ番目のオペランドタグ出力を形成し、第２ＦＩＦＯバッファのオペランド可用性フラグ出力は一まとめに接続されて交換機の２ｋ番目のオペランド可用性フラグ出力を形成する。




【国際調査報告】
2004503872.tif 000055
2004503872.tif 000056
2004503872.tif 000057