(57)【要約】【課題】余計な処理サイクル数を削減でき、メモリアクセス性能を向上させることができ、また、ハードウェア規模の低減を図れる演算システムを提供する。【解決手段】アドレス相互接続網１５に、プロセッサ１４により生成されたアドレスＡｄｒを、Ａｄｒとメモリバンクの数に応じたあるいはメモリセット内のメモリバンクの数に応じた第１のパラメータＸ、並びにメモリバンクのアドレスの数に応じた第２のパラメータＹに基づいて所定の規則性を持つアドレスＡｄｒｎに変換し、かつ変換アドレスおよびメモリバンクのアドレスの数に基づいた第３のパラメータＺに基づいてバンク選択信号Ｓｅｌを生成し、データ相互接続網１６に出力するアドレス変換装置１５１を設け、データ相互接続網１６において、バンク選択信号Ｓｅｌに基づいてプロセッサ１４とメモリバンク１１−０〜１１−５とのデータ経路を選択的に設定する。【選択図】図１
2010073220.tif 000002
【特許請求の範囲】
【請求項１】
アドレス空間の所定範囲のアドレスが割り当てられ、演算に関するデータを記憶する複数のメモリバンクと、
連続するアドレスを生成する機能を有するプロセッサと、
少なくとも上記プロセッサと上記複数のメモリバンクとを相互に接続するアドレス相互接続網と
を有し、
上記アドレス相互接続網は、
上記プロセッサにより生成されたアドレスを、当該アドレスと少なくとも上記メモリバンクの数に応じたパラメータに基づいて所定の規則性を持つアドレスに変換するアドレス変換装置を有し、
上記アドレス変換装置による変換アドレスを、当該変換アドレスを含む上記メモリバンクに供給する
演算システム。
【請求項２】
上記複数のメモリバンクは、１または複数のメモリバンクを含む少なくとも複数のメモリセットに分割され、
上記アドレス変換装置は、上記プロセッサにより生成されたアドレスと、上記メモリセット内のメモリバンクの数に応じたパラメータに基づいてアドレス変換を行う
請求項１記載の演算システム。
【請求項３】
上記アドレス変換装置は、上記プロセッサにより生成されたアドレスと、上記メモリバンクの数に応じた第１のパラメータおよび上記メモリバンクのアドレスの数に基づいた第２のパラメータに基づいてアドレス変換を行う
請求項１記載の演算システム。
【請求項４】
少なくとも上記プロセッサと上記複数のメモリバンクとのデータ経路をバンク選択信号に基づいて選択的に接続するデータ相互接続網を有し、
アドレス変換装置は、上記変換アドレスおよび上記メモリバンクのアドレスの数に基づいた第３のパラメータに基づいて上記バンク選択信号を生成し、上記データ相互接続網に出力する
請求項３記載の演算システム。
【請求項５】
上記アドレス変換装置は、少なくとも上記第１のパラメータがセットされる第１のレジスタと、
少なくとも上記第２のパラメータがセットされる第２のレジスタと、
上記第１のレジスタにセットされた第１のパラメータ、上記第２のレジスタにセットされた第２のパラメータ、および上記プロセッサで生成されたアドレスに基づいて変換アドレスを計算するアドレス計算回路と
を有する請求項３記載の演算システム。
【請求項６】
上記アドレス変換装置は、少なくとも上記第１のパラメータがセットされる第１のレジスタと、
少なくとも上記第２のパラメータがセットされる第２のレジスタと、
上記第３のパラメータがセットされる第３のレジスタと、
上記第１のレジスタにセットされた第１のパラメータ、上記第２のレジスタにセットされた第２のパラメータ、および上記プロセッサで生成されたアドレスに基づいて変換アドレスを計算するアドレス計算回路と、
上記アドレス計算回路による変換アドレスおよび上記メモリバンクのアドレスの数に基づいた第３のパラメータに基づいて上記バンク選択信号を生成し、上記データ相互接続網に出力するバンク選択計算回路と
を有する請求項４記載の演算システム。
【請求項７】
上記アドレス計算回路が、上記第１のレジスタに設定される第１のパラメータの値をｘ、上記第２のレジスタに設定される第２のパラメータの値をｙとし、％がモジュロ演算、／が整数の除算を表すときに、変換アドレスＡｄｒｎを下記数１式に従って計算する
[数１]
Adrn = y * (Adr % x) + x*y* (Adr / (x*y)) + (Adr % (x*y)) / x 
請求項５記載の演算システム。
【請求項８】
上記アドレス計算回路が、上記第１のレジスタに設定される第１のパラメータの値をｘ、上記第２のレジスタに設定される第２のパラメータの値をｙとし、％がモジュロ演算、／が整数の除算を表すときに、上記変換アドレスＡｄｒｎを下記数２式に従って計算し、
上記バンク選択計算回路が、上記第３のレジスタに設定される第３のパラメータ３の値をｚとし、／が整数の除算を表すときに、上記バンク選択信号Ｓｅｌを下記数３式に従って計算する
[数２]
Adrn = y * (Adr % x) + x*y* (Adr / (x*y)) + (Adr % (x*y)) / x 
[数３]
Sel = Adrn / z 
請求項６記載の演算システム。
【請求項９】
上記アドレス計算回路は、上記第１のレジスタおよび第２のレジスタに上記アドレス空間に対して設定されるアドレス数に関するパラメータが設定されると、入力アドレスをそのまま出力する
請求項７記載の演算システム。
【請求項１０】
上記アドレス計算回路は、上記第１のレジスタおよび第２のレジスタに上記アドレス空間に対して設定されるアドレス数に関するパラメータが設定されると、入力アドレスをそのまま出力する
請求項８記載の演算システム。
【請求項１１】
上記アドレス相互接続網は、制御信号に応じて上記アドレス変換装置による変換アドレスまたは外部から供給されたアドレスのうちのいずれかを選択して、選択したアドレスを含む上記メモリバンクに供給する選択装置を有する
請求項１記載の演算システム。
【請求項１２】
上記データ相互接続網は、制御信号に応じて外部装置と上記複数のメモリバンクとのデータ経路を選択的に接続する選択装置を有する
請求項４記載の演算システム。
【請求項１３】
アドレス空間の所定範囲のアドレスが割り当てられ、演算に関するデータを記憶する複数のメモリバンクと、
連続するアドレスを生成する機能を有するプロセッサと、
少なくとも一つのアドレス生成装置と、
少なくとも一つの演算装置と、
上記プロセッサと上記複数のメモリバンクと上記アドレス生成装置を相互に接続するアドレス相互接続網と、
上記プロセッサと上記複数のメモリバンクと上記演算装置を相互に接続するデータ相互接続網と
を有し、
上記アドレス相互接続網は、
少なくとも上記プロセッサにより生成されたアドレスを、当該アドレスと少なくとも上記メモリバンクの数に応じたパラメータに基づいて所定の規則性を持つアドレスに変換し、上記変換アドレスおよび上記メモリバンクのアドレスの数に基づいたパラメータに基づいてバンク選択信号を生成し、上記データ相互接続網に出力するアドレス変換装置と、
第１の制御信号に応じて上記アドレス変換装置による変換アドレスまたは上記アドレス生成装置から供給されたアドレスのうちのいずれかを選択して、選択したアドレスを含む上記メモリバンクに供給する第１の選択装置と
を有し、
上記データ相互接続網は、
上記プロセッサと上記複数のメモリバンクとのデータ経路をバンク選択信号に基づいて選択的に接続する第２の選択装置と、
第２の制御信号に応じて上記演算装置と上記複数のメモリバンクとのデータ経路を選択的に接続する第３の選択装置と
を有する
演算システム。
【請求項１４】
上記複数のメモリバンクは、１または複数のメモリバンクを含む少なくとも複数のメモリセットに分割され、
上記アドレス変換装置は、少なくとも上記プロセッサにより生成されたアドレスと、上記メモリセット内のメモリバンクの数に応じたパラメータに基づいてアドレス変換を行う
請求項１３記載の演算システム。
【請求項１５】
上記アドレス変換装置は、少なくとも上記プロセッサにより生成されたアドレスと、上記メモリバンクの数に応じた第１のパラメータおよび上記メモリバンクのアドレスの数に基づいた第２のパラメータに基づいてアドレス変換を行う
請求項１３記載の演算システム。
【請求項１６】
上記アドレス変換装置は、少なくとも上記第１のパラメータがセットされる第１のレジスタと、
少なくとも上記第２のパラメータがセットされる第２のレジスタと、
第３のパラメータがセットされる第３のレジスタと、
上記第１のレジスタにセットされた第１のパラメータ、上記第２のレジスタにセットされた第２のパラメータ、および上記プロセッサで生成されたアドレスに基づいて変換アドレスを計算するアドレス計算回路と、
上記アドレス計算回路による変換アドレスおよび上記メモリバンクのアドレスの数に基づいた第３のパラメータに基づいて上記バンク選択信号を生成し、上記データ相互接続網に出力するバンク選択計算回路と
を有する請求項１５記載の演算システム。
【請求項１７】
上記アドレス計算回路が、上記第１のレジスタに設定される第１のパラメータの値をｘ、上記第２のレジスタに設定される第２のパラメータの値をｙとし、％がモジュロ演算、／が整数の除算を表すときに、上記変換アドレスＡｄｒｎを下記数４式に従って計算し、
上記バンク選択計算回路が、上記第３のレジスタに設定される第３のパラメータ３の値をｚとし、／が整数の除算を表すときに、上記バンク選択信号Ｓｅｌを下記数５式に従って計算する
[数４]
Adrn = y * (Adr % x) + x*y* (Adr / (x*y)) + (Adr % (x*y)) / x 
[数５]
Sel = Adrn / z 
請求項１６記載の演算システム。
【請求項１８】
上記アドレス計算回路は、上記第１のレジスタおよび第２のレジスタに上記アドレス空間に対して設定されるアドレス数に関するパラメータが設定されると、入力アドレスをそのまま出力する
請求項１７記載の演算システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算に関するデータを記憶する複数のメモリバンクと、プロセッサと、プロセッサと各メモリバンクを相互に接続するアドレス相互接続網を備えた演算システムに関するものである。
【背景技術】
【０００２】
プロセッサとアドレス生成装置をメモリと結合するアドレス相互接続網とプロセッサと演算装置をメモリと結合するデータ相互接続網を備える演算システムにおいて、たとえばメモリが、アドレスａｄｒ０〜７に割り当てたバンクＢＮＫ０, アドレスａｄｒ８〜１５に割り当てたバンクＢＮＫ１, アドレスａｄｒ１６〜２３に割り当てたバンクＢＮＫ２, アドレスａｄｒ２４〜３１に割り当てたバンクＢＮＫ３から構成される。
この場合、プロセッサからメモリにアクセスする場合のアドレスがａｄｒ０，８，１６，２４，１，９，１７，２５，…，７，１５，２３，３１である場合、たとえば特許文献１に記述されるようなメモリインタリーブ方式を用いることで所望のアクセス用アドレスを生成することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−１６３３１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、この方法ではアドレス変換のみが行われ、アドレスに対応したデータの選択は別の手段で行う必要があった。
さらに、プロセッサからメモリにアクセスする場合のアドレスが、たとえばａｄｒ０，８，１６，２４，１，９，１７，２５，…，７，１５，２３，３１である場合、特許文献１に示す方式では所望のアドレス変換が行われないため、プロセッサでアドレス計算を行う必要がある。
この場合、０，８，１６，２４，１，９，１７，２５，…，７，１５，２３，３１のようなアドレスは、プロセッサが持つ単純なアドレス自動生成機能を使っただけでは生成できない。
そのためプロセッサを使って演算とは別にアドレス計算を行う必要があり、処理サイクル数が演算に必要なサイクル数よりアドレス生成の分だけ余計にかかるという不利益がある。
【０００５】
この他にも、特許文献１に示す方式ではアドレス変換装置を２段設ける必要があるため、ハードウエア規模が大きくなり、コスト削減の観点からしても好ましいものではない。
【０００６】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、余計な処理サイクル数を削減でき、メモリアクセス性能を向上させることができ、また、ハードウェア規模の低減を図れ、ひいてはコスト削減を図ることができる演算システムを提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の第１の観点に係る演算システムは、アドレス空間の所定範囲のアドレスが割り当てられ、演算に関するデータを記憶する複数のメモリバンクと、連続するアドレスを生成する機能を有するプロセッサと、少なくとも上記プロセッサと上記複数のメモリバンクとを相互に接続するアドレス相互接続網とを有し、上記アドレス相互接続網は、上記プロセッサにより生成されたアドレスを、当該アドレスと少なくとも上記メモリバンクの数に応じたパラメータに基づいて所定の規則性を持つアドレスに変換するアドレス変換装置を有し、上記アドレス変換装置による変換アドレスを、当該変換アドレスを含む上記メモリバンクに供給する。
【０００８】
本発明では、上記複数のメモリバンクは、１または複数のメモリバンクを含む少なくとも複数のメモリセットに分割され、上記アドレス変換装置は、上記プロセッサにより生成されたアドレスと、上記メモリセット内のメモリバンクの数に応じたパラメータに基づいてアドレス変換を行う。
【０００９】
本発明では、上記アドレス変換装置は、上記プロセッサにより生成されたアドレスと、上記メモリバンクの数に応じた第１のパラメータおよび上記メモリバンクのアドレスの数に基づいた第２のパラメータに基づいてアドレス変換を行う。
【００１０】
好適には、少なくとも上記プロセッサと上記複数のメモリバンクとのデータ経路をバンク選択信号に基づいて選択的に接続するデータ相互接続網を有し、アドレス変換装置は、上記変換アドレスおよび上記メモリバンクのアドレスの数に基づいた第３のパラメータに基づいて上記バンク選択信号を生成し、上記データ相互接続網に出力する。
【００１１】
好適には、上記アドレス変換装置は、少なくとも上記第１のパラメータがセットされる第１のレジスタと、少なくとも上記第２のパラメータがセットされる第２のレジスタと、上記第１のレジスタにセットされた第１のパラメータ、上記第２のレジスタにセットされた第２のパラメータ、および上記プロセッサで生成されたアドレスに基づいて変換アドレスを計算するアドレス計算回路とを有する。
【００１２】
好適には、上記アドレス変換装置は、少なくとも上記第１のパラメータがセットされる第１のレジスタと、少なくとも上記第２のパラメータがセットされる第２のレジスタと、上記第３のパラメータがセットされる第３のレジスタと、上記第１のレジスタにセットされた第１のパラメータ、上記第２のレジスタにセットされた第２のパラメータ、および上記プロセッサで生成されたアドレスに基づいて変換アドレスを計算するアドレス計算回路と、上記アドレス計算回路による変換アドレスおよび上記メモリバンクのアドレスの数に基づいた第３のパラメータに基づいて上記バンク選択信号を生成し、上記データ相互接続網に出力するバンク選択計算回路とを有する。
【００１３】
本発明では、上記アドレス計算回路が、上記第１のレジスタに設定される第１のパラメータの値をｘ、上記第２のレジスタに設定される第２のパラメータの値をｙとし、％がモジュロ演算、／が整数の除算を表すときに、上記変換アドレスＡｄｒｎを下記数６式に従って計算し、上記バンク選択計算回路が、上記第３のレジスタに設定される第３のパラメータ３の値をｚとし、／が整数の除算を表すときに、上記バンク選択信号Ｓｅｌを下記数７式に従って計算する。
【００１４】
[数１]
Adrn = y * (Adr % x) + x*y* (Adr / (x*y)) + (Adr % (x*y)) / x 
【００１５】
[数２]
Sel = Adrn / z 
【００１６】
また、上記アドレス計算回路は、上記第１のレジスタおよび第２のレジスタに上記アドレス空間に対して設定されるアドレス数に関するパラメータが設定されると、入力アドレスをそのまま出力する。
【００１７】
好適には、上記アドレス相互接続網は、制御信号に応じて上記アドレス変換装置による変換アドレスまたは外部から供給されたアドレスのうちのいずれかを選択して、選択したアドレスを含む上記メモリバンクに供給する選択装置を有する。
【００１８】
また、上記データ相互接続網は、制御信号に応じて外部装置と上記複数のメモリバンクとのデータ経路を選択的に接続する選択装置を有する。
【００１９】
本発明の第２の観点は、アドレス空間の所定範囲のアドレスが割り当てられ、演算に関するデータを記憶する複数のメモリバンクと、連続するアドレスを生成する機能を有するプロセッサと、少なくとも一つのアドレス生成装置と、少なくとも一つの演算装置と、上記プロセッサと上記複数のメモリバンクと上記アドレス生成装置を相互に接続するアドレス相互接続網と、上記プロセッサと上記複数のメモリバンクと上記演算装置を相互に接続するデータ相互接続網とを有し、上記アドレス相互接続網は、少なくとも上記プロセッサにより生成されたアドレスを、当該アドレスと少なくとも上記メモリバンクの数に応じたパラメータに基づいて所定の規則性を持つアドレスに変換し、上記変換アドレスおよび上記メモリバンクのアドレスの数に基づいたパラメータに基づいてバンク選択信号を生成し、上記データ相互接続網に出力するアドレス変換装置と、第１の制御信号に応じて上記アドレス変換装置による変換アドレスまたは上記アドレス生成装置から供給されたアドレスのうちのいずれかを選択して、選択したアドレスを含む上記メモリバンクに供給する第１の選択装置とを有し、上記データ相互接続網は、上記プロセッサと上記複数のメモリバンクとのデータ経路をバンク選択信号に基づいて選択的に接続する第２の選択装置と、第２の制御信号に応じて上記演算装置と上記複数のメモリバンクとのデータ経路を選択的に接続する第３の選択装置とを有する。
【００２０】
本発明によれば、たとえばプロセッサにおいて連続するアドレスが生成され、アドレス相互接続網のアドレス変換装置に入力される。
アドレス変換装置においては、プロセッサにより生成されたアドレスが、当該アドレスと少なくともメモリバンクの数に応じたパラメータに基づいて、所定の規則性を持つアドレスに変換される。
この変換後のアドレスがアドレス相互接続網の接続網を介して、変換アドレスを含むメモリバンクに供給される。
たとえばアドレス変換装置においては、第１のレジスタにメモリバンクの数に応じた第１のパラメータが設定され、第２のレジスタにメモリバンクのアドレスの数に基づいた第２のパラメータが設定される。
そして、アドレス計算回路において、プロセッサにより生成されたアドレスが、当該アドレスと第１のレジスタに設定された第１のパラメータおよび第２のレジスタに設定された第２のパラメータを用いた所定の演算式に従って求められる。
また、アドレス変換装置においては、第３のレジスタにメモリバンクのアドレスの数に基づいた第３のパラメータが設定される。そして、バンク選択回路において、アドレス計算回路による変換アドレスおよび第３のレジスタに設定された第３のパラメータに基づいてバンク選択信号が生成されて、データ相互接続網に出力される。
データ相互接続網においては、バンク選択信号に基づいて、プロセッサと複数のメモリバンクとのデータ経路が選択的に接続される。
【発明の効果】
【００２１】
以上説明したように、本発明によれば、余計な処理サイクル数を削減でき、メモリアクセス性能を向上させることができる。
また、ハードウェア規模の低減を図れ、ひいてはコスト削減を図ることができる利点がある。
【図面の簡単な説明】
【００２２】
【図１】本発明に係る演算システムの第１の実施形態を示す構成図である。
【図２】本第１の実施形態に係るアドレス相互接続網の要部の具体的な構成例を示す図である。
【図３】本実施形態に係るアドレス変換装置の具体的に構成例を示すブロック図である。
【図４】演算式に基づくアドレス計算回路のアドレス変換例を示す図である。
【図５】本第１の実施形態に係るデータ相互接続網の具体的な構成例を示すブロック図である。
【図６】本発明に係る演算システムの第２の実施形態を示す構成図である。
【図７】本第２の実施形態に係るアドレス相互接続網の要部の具体的な構成例を示す図である。
【図８】本第２の実施形態に係るデータ相互接続網の具体的に構成例を示すブロック図である。
【発明を実施するための形態】
【００２３】
第１実施形態
図１は、本発明に係る演算システムの第１の実施形態を示す構成図である。
【００２４】
本演算システム１０は、図１に示すように、複数（本第１の実施形態では６）のメモリバンク（ＭＢＮＫ）１１−０〜１１−５、複数（本実施形態では６）のアドレス生成装置（ＡＤＲＧ）１２−０〜１２−５、複数（本実施形態では６）の演算装置（ＯＰ）１３−０〜１３−５、プロセッサ（ＰＲＣ）１４、アドレス変換装置（ＡＣＮＶ）１５１を含むアドレス相互接続網（ＡＣＮＣＴ）１５、およびデータ相互接続網（ＤＣＮＣＴ）１６を有している。
【００２５】
メモリバンク１１−０〜１１−５は、演算に関するデータを記憶し、たとえば本第１の実施形態においてアドレス空間がａｄｒ０〜ａｄｒ４７の４８個のアドレスを有するものであるとすると、それぞれ６等分した８アドレスずつ割り当てられて８アドレスを持ち、たとえば２個のメモリバンクで一つのメモリセットを構成し、全体で３個のメモリセットを構成している。
【００２６】
メモリバンク１１−０は、メモリアドレスＡｄｒｃ０としてａｄｒ０〜ａｄｒ７の８アドレスが割り当てられている。
メモリバンク１１−１は、メモリアドレスＡｄｒｃ１としてａｄｒ８〜ａｄｒ１５の８アドレスが割り当てられている。
メモリバンク１１−２は、メモリアドレスＡｄｒｃ２としてａｄｒ１６〜ａｄｒ２３の８アドレスが割り当てられている。
メモリバンク１１−３は、メモリアドレスＡｄｒｃ３としてａｄｒ２４〜ａｄｒ３１の８アドレスが割り当てられている。
メモリバンク１１−４は、メモリアドレスＡｄｒｃ４としてａｄｒ３２〜ａｄｒ３９の８アドレスが割り当てられている。
メモリバンク１１−５は、メモリアドレスＡｄｒｃ５としてａｄｒ４０〜ａｄｒ４７の８アドレスが割り当てられている。
【００２７】
アドレス生成装置１２−０は、たとえば図示しない制御系の指示に従ってメモリバンク１１−０のメモリアドレスＡｄｒｃ０（ａｄｒ０〜ａｄｒ７）に対応するアドレスＡｄｒ０を生成して、アドレス相互接続網１５に出力する。
アドレス生成装置１２−１は、たとえば図示しない制御系の指示に従ってメモリバンク１１−１のメモリアドレスＡｄｒｃ１（ａｄｒ８〜ａｄｒ１５）に対応するアドレスＡｄｒ１を生成して、アドレス相互接続網１５に出力する。
アドレス生成装置１２−２は、たとえば図示しない制御系の指示に従ってメモリバンク１１−２のメモリアドレスＡｄｒｃ２（ａｄｒ１６〜ａｄｒ２３）に対応するアドレスＡｄｒ２を生成して、アドレス相互接続網１５に出力する。
アドレス生成装置１２−３は、たとえば図示しない制御系の指示に従ってメモリバンク１１−３のメモリアドレスＡｄｒｃ３（ａｄｒ２４〜ａｄｒ３１）に対応するアドレスＡｄｒ３を生成して、アドレス相互接続網１５に出力する。
アドレス生成装置１２−４は、たとえば図示しない制御系の指示に従ってメモリバンク１１−４のメモリアドレスＡｄｒｃ４（ａｄｒ３２〜ａｄｒ３９）に対応するアドレスＡｄｒ４を生成して、アドレス相互接続網１５に出力する。
アドレス生成装置１２−５は、たとえば図示しない制御系の指示に従ってメモリバンク１１−５のメモリアドレスＡｄｒｃ５（ａｄｒ４０〜ａｄｒ４７）に対応するアドレスＡｄｒ５を生成して、アドレス相互接続網１５に出力する。
【００２８】
演算装置１３−０〜１３−５は、データ相互接続網１６を介して転送されたデータに対して、たとえば図示しない制御系の指示に従った演算を行い、演算結果をデータ相互接続網１６に出力する。
【００２９】
プロセッサ１４は、連続するアドレス、たとえばアドレス空間に対応したアドレスＡｄｒ（０，１，２，〜４６，４７）を生成して、アドレス相互接続網１５に出力する。
プロセッサ１４は、データ相互接続網１６を介して所望のメモリバンク１３−０〜１３−５から読み出したデータ、あるいは演算装置１３−０〜１３−５の演算結果を入力して所定の処理を行い、また、データ相互接続網１６を介して所定のデータを所望のメモリバンク１３−０〜１３−５、あるいは所望のデータを演算装置１３−０〜１３−５に転送する。
【００３０】
アドレス相互接続網１５は、プロセッサ１４によるアドレスａｄｒを所定の演算式に従って所定の規則性を有するアドレスに変換するアドレス変換装置１５１を含み、プロセッサ１４とアドレス生成装置１２−０〜１２−５をメモリバンク１１−０〜１１−５に相互に接続する。
【００３１】
図２は、本第１の実施形態に係るアドレス相互接続網の要部の具体的な構成例を示す図である。
【００３２】
このアドレス相互接続網１５は、図２に示すように、アドレス変換装置（ＡＣＮＶ）１５１および第１の選択装置（ＳＥＬ）１５２を有している。
【００３３】
アドレス変換装置１５１は、プロセッサ１４により生成されたアドレスＡｄｒを、このアドレスＡｄｒと、メモリバンクの数（本第１の実施形態では６）に応じたあるいはメモリセット内のメモリバンクの数（本第１の実施形態では２）に応じた第１のパラメータＸ、並びにメモリバンクのアドレスの数に応じた第２のパラメータＹに基づいて所定の規則性を持つアドレスＡｄｒｎに変換し、かつ変換アドレスおよびメモリバンクのアドレスの数に基づいた第３のパラメータＺに基づいてバンク選択信号Ｓｅｌを生成し、データ相互接続網１６に出力する。
【００３４】
また、アドレス変換装置１５１は、アドレス変換を行わないときは、第１のパラメータＸおよび第２パラメータＹとしてアドレス空間に対して設定されるアドレス数に関するパラメータ、具体的には、アドレス空間に設定される最小のアドレス数１が第１のパラメータＸとして設定され、アドレス空間に設定される最大のアドレス数４８が第２のパラメータＹとして設定され、入力アドレスＡｄｒをそのままＡｄｒｎとして出力する。
【００３５】
図３は、本実施形態に係るアドレス変換装置の具体的に構成例を示すブロック図である。
【００３６】
アドレス変換装置１５１は、図３に示すように、第１のパラメータＸがセットされる第１のレジスタ（ＲＥＧ１）１５１１と、第２のパラメータＹがセットされる第２のレジスタ（ＲＥＧ２）１５１２と、第３のパラメータＺがセットされる第３のレジスタ（ＲＥＧ３）１５１３と、第１のレジスタ１５１１にセットされた第１のパラメータＸ、第２のレジスタ１５１２にセットされた第２のパラメータＹ、およびプロセッサ１４で生成されたアドレスＡｄｒに基づいて変換アドレスを計算するアドレス計算回路（ＡＤＲＣ）１５１４と、アドレス計算回路１５１４による変換アドレスおよび第３のレジスタ１５１３に設定された第３のパラメータＺに基づいてバンク選択信号Ｓｅｌを生成し、データ相互接続網１６に出力するバンク選択計算回路（ＢＮＫＣ）１５１５とを有する。
なお、第１のレジスタ１５１１、第２のレジスタ１５１２、および第３のレジスタ１５１３は、第１のパラメータＸ、第２のパラメータＹ、および第３のパラメータＺを、外部からあるいはプロセッサ１４を介して任意に設定可能である。
【００３７】
アドレス計算回路１５１４は、上述した第１のレジスタ１５１１に設定される第１のパラメータＸの値をｘ、第２のレジスタに設定される第２のパラメータＹの値をｙとし、％がモジュロ演算、／が整数の除算を表すときに、変換アドレスＡｄｒｎを下記数８式に従って計算する。
【００３８】
[数３]
Adrn = y * (Adr % x) + x*y* (Adr / (x*y)) + (Adr % (x*y)) / x 
【００３９】
図４（Ａ）および（Ｂ）は、上記式に基づくアドレス計算回路１５１４のアドレス変換例を示す図であって、図４（Ａ）は変換前のプロセッサ１４が生成した連続するアドレＡｄｒを示し、図４（Ｂ）はアドレス計算回路１５１４の変換後のアドレスＡｄｒｎを示している。
【００４０】
図４（Ａ）に示すように、プロセッサ１４は、０〜４７までの４８個のアドレスＡｄｒを順番に連続して生成する。
この連続したアドレスＡｄｒは、アドレス計算回路１５１４により所定の規則性をもって図４（Ｂ）に示すようなアドレスＡｄｒｎに変換される。
この規則性は、各メモリセットＭＳ０，ＭＳ１，ＭＳ２を構成するメモリバンク１１−０と１１−１により構成されるメモリセットＭＳ０、メモリバンク１１−２と１１−３により構成されるメモリセットＭＳ１、メモリバンク１１−４と１１−５により構成されるメモリセットＭＳ２の各メモリセットにおいて、互いのメモリバンクの持つアドレスの小さい方からアドレスが交互に並ぶような関係をもつように規定されている。
【００４１】
具体的には、メモリセットＭＳ０においては、図４（Ａ），（Ｂ）に示すように、生成アドレスＡｄｒ０は変換後もアドレスＡｄｒｎ０となり、生成アドレスＡｄｒ１は変換後はアドレスＡｄｒｎ８となり、生成アドレスＡｄｒ２は変換後はアドレスＡｄｒｎ１となり、生成アドレスＡｄｒ３は変換後はアドレスＡｄｒｎ９となり、生成アドレスＡｄｒ４は変換後はアドレスＡｄｒｎ２となり、生成アドレスＡｄｒ５は変換後はアドレスＡｄｒｎ１０となり、生成アドレスＡｄｒ６は変換後はアドレスＡｄｒｎ３となり、生成アドレスＡｄｒ７は変換後はアドレスＡｄｒｎ１１となり、生成アドレスＡｄｒ８は変換後はアドレスＡｄｒｎ４となり、生成アドレスＡｄｒ９は変換後はアドレスＡｄｒｎ１２となり、生成アドレスＡｄｒ１０は変換後はアドレスＡｄｒｎ５となり、生成アドレスＡｄｒ１１は変換後はアドレスＡｄｒｎ１３となり、生成アドレスＡｄｒ１２は変換後はアドレスＡｄｒｎ６となり、生成アドレスＡｄｒ１３は変換後はアドレスＡｄｒｎ１４となり、生成アドレスＡｄｒ１４は変換後はアドレスＡｄｒｎ７となり、生成アドレスＡｄｒ１５は変換後もアドレスＡｄｒｎ１５となる。
【００４２】
メモリセットＭＳ１においては、図４（Ａ），（Ｂ）に示すように、生成アドレスＡｄｒ１６は変換後もアドレスＡｄｒｎ１６となり、生成アドレスＡｄｒ１７は変換後はアドレスＡｄｒｎ２４となり、生成アドレスＡｄｒ１８は変換後はアドレスＡｄｒｎ１７となり、生成アドレスＡｄｒ１９は変換後はアドレスＡｄｒｎ２５となり、生成アドレスＡｄｒ２０は変換後はアドレスＡｄｒｎ１８となり、生成アドレスＡｄｒ２１は変換後はアドレスＡｄｒｎ２６となり、生成アドレスＡｄｒ２２は変換後はアドレスＡｄｒｎ１９となり、生成アドレスＡｄｒ２３は変換後はアドレスＡｄｒｎ２７となり、生成アドレスＡｄｒ２４は変換後はアドレスＡｄｒｎ２０となり、生成アドレスＡｄｒ２５は変換後はアドレスＡｄｒｎ２８となり、生成アドレスＡｄｒ２６は変換後はアドレスＡｄｒｎ２１となり、生成アドレスＡｄｒ２７は変換後はアドレスＡｄｒｎ２９となり、生成アドレスＡｄｒ２８は変換後はアドレスＡｄｒｎ２２となり、生成アドレスＡｄｒ２９は変換後はアドレスＡｄｒｎ３０となり、生成アドレスＡｄｒ３０は変換後はアドレスＡｄｒｎ２３となり、生成アドレスＡｄｒ３１は変換後もアドレスＡｄｒｎ３１となる。
【００４３】
メモリセットＭＳ２においては、図４（Ａ），（Ｂ）に示すように、生成アドレスＡｄｒ３２は変換後もアドレスＡｄｒｎ３２となり、生成アドレスＡｄｒ３３は変換後はアドレスＡｄｒｎ４０となり、生成アドレスＡｄｒ３４は変換後はアドレスＡｄｒｎ３３となり、生成アドレスＡｄｒ３５は変換後はアドレスＡｄｒｎ４１となり、生成アドレスＡｄｒ３６は変換後はアドレスＡｄｒｎ３４となり、生成アドレスＡｄｒ３７は変換後はアドレスＡｄｒｎ４２となり、生成アドレスＡｄｒ３８は変換後はアドレスＡｄｒｎ３５となり、生成アドレスＡｄｒ３９は変換後はアドレスＡｄｒｎ４３となり、生成アドレスＡｄｒ４０は変換後はアドレスＡｄｒｎ３６となり、生成アドレスＡｄｒ４１は変換後はアドレスＡｄｒｎ４４となり、生成アドレスＡｄｒ４２は変換後はアドレスＡｄｒｎ３７となり、生成アドレスＡｄｒ４３は変換後はアドレスＡｄｒｎ４５となり、生成アドレスＡｄｒ４４は変換後はアドレスＡｄｒｎ３８となり、生成アドレスＡｄｒ４５は変換後はアドレスＡｄｒｎ４６となり、生成アドレスＡｄｒ４６は変換後はアドレスＡｄｒｎ３９となり、生成アドレスＡｄｒ４７は変換後もアドレスＡｄｒｎ４７となる。
【００４４】
バンク選択計算回路１５１５は、第３のレジスタ１５１３に設定される第３のパラメータＺの値をｚ、／が整数の除算を表すときに、バンク選択信号Ｓｅｌを下記数９式に従って計算する
【００４５】
[数４]
Ｓｅｌ = Adrn / z 
【００４６】
第１の選択装置１５２は、第１の制御信号ｃｔｒｌ１に応じてアドレス変換装置１５１による変換アドレスＡｄｒまたはアドレス生成装置１２−０〜１２−５から供給されたアドレスＡｄｒ０〜Ａｄｒ５のうちのいずれかを選択して、選択したアドレスをＡｄｒｃ０〜Ａｄｒｃ５のいずれかに設定して、設定したアドレスを含むメモリバンク１１−０〜１１−５に供給する。
【００４７】
データ相互接続網１６は、所望のメモリバンク１３−０〜１３−５から読み出したデータＤａｔｃ０〜Ｄａｔｃ５、あるいは演算装置１３−０〜１３−５の演算結果データＤａｔ０〜Ｄａｔ５のプロセッサ１４へのデータ経路を選択的に接続し、また、プロセッサ１４によるデータＤａｔの所望のメモリバンク１３−０〜１３−５、あるいは所望のデータを演算装置１３−０〜１３−５へのデータ経路を選択的に接続する。
【００４８】
図５は、本第１の実施形態に係るデータ相互接続網の具体的な構成例を示すブロック図である。
【００４９】
データ相互接続網１６は、図５に示すように、第２の選択装置（ＳＥＬ）１６１および第３の選択装置（ＳＥＬ）１６２を有している。
第１の選択装置１６１は、プロセッサ１４の入出力データＤａｔと第２の選択装置１６２（複数のメモリバンク１１−０〜１１−５の入出力データＤａｔｃ０〜Ｄａｔｃ５、演算装置１３−０〜１３−５の入出力データＤａｔ０〜Ｄａｔ５）とのデータ経路をアドレス変換装置１５１によるバンク選択信号Ｓｅｌに基づいて選択的に接続する。
第２の選択装置１６２は、第２の制御信号ｃｔｒｌに応じて演算装置１３−０〜１３−５の入出力データＤａｔ０〜Ｄａｔ５とメモリバンク１１−０〜１１−５の入出力データＤａｔｃ０〜Ｄａｔｃ５および／または第２の選択装置１６１（プロセッサ１４の入出力データＤａｔ）とのデータ経路を選択的に接続する。      
【００５０】
次に、上記構成による動作をプロセッサ１４がアドレスＡｄｒを生成する場合を例に、アドレス変換装置の上記構成による動作を中心に説明する。
【００５１】
まず、アドレス変換を行わない場合のアドレス生成について説明する。
この場合、外部の制御系により、あるいはプロセッサ１４により、第１パラメータＸが値ｘ＝１、第２パラメータＹが値ｙ＝４８、第３のパラメータＺが値ｚ＝８に設定されてアドレス変換装置１５１に供給される。
これにより、第１のレジスタ１５１１に１が設定され、第２のレジスタ１５１２に４８が設定され、第３のレジスタ１５１３に８が設定される。
第１のレジスタ１５１１に設定された第１のパラメータＸ（値ｘ＝１）および第２のレジスタ１５１２に設定された第２のパラメータＹ（値ｙ＝４８）がアドレス計算回路１５１４に供給される。また、第３のレジスタ１５１３に設定された第３のパラメータＺ（値ｚ＝８）がバンク選択計算回路１５１５に供給される。
【００５２】
アドレス計算回路１５１４においては、次式に従って変換後のアドレスが計算される。
【００５３】
[数５]
Adrn = 48 * (Adr % 1) + (Adr % 48) / 1+ 48 * (Adr / 48) = Adr 
【００５４】
プロセッサ１４からメモリへアクセスを行うために、アドレスＡｄｒが生成されてアドレス相互接続網１５に出力され、アドレス変換回路１５１に入力される。
このとき、たとえば生成Ａｄｒが０の場合、上式を使って計算するとＡｄｒｎ＝０となる。
そして、第１の制御信号ｃｔｒｌ１で変換アドレスＡｄｒｎを選択するよう第１の選択装置１５２に指定される。これにより、第１の選択装置１５１でこの値が選択され、メモリバンク１１−０のアドレスＡｄｒｃ０＝０にアクセスを行うことができる。
【００５５】
アドレス変換装置１５１は同時に、バンク選択計算回路１５１５において、次式に従って、バンク選択信号Ｓｅｌが計算され、データ相互接続網１６の第２の選択装置１６１に出力される。
【００５６】
[数６]
Ｓｅｌ = Adrn / 8 
【００５７】
このとき、バンク選択信号ＳｅｌはアドレスＡｄｒｎが０であることから０になる。データ相互接続網１６の第２の選択装置１６１においては、バンク選択信号Ｓｅｌに従い、メモリバンク１１−０とのデータ経路が選択される。
このとき、第２の制御信号ｃｔｒｌ２でメモリバンクとのデータ経路を選択するように第３の選択装置１６２に指定される。これにより、プロセッサ１４からメモリバンク１１−０のＡｄｒｃ０＝０に該当するデータにアクセスできる。
【００５８】
上記の例のほかに、たとえばプロセッサ１４で生成され転送されるアドレスＡｄｒが８の場合、アドレス変換装置１５１のアドレス計算回路１５１４においてＡｄｒｎ＝８が計算される。
そして、第１の制御信号ｃｔｒｌ１で変換アドレスＡｄｒｎを選択するよう第１の選択装置１５２に指定される。これにより、第１の選択装置１５１でこの値が選択され、メモリバンク１１−１のアドレスＡｄｒｃ１＝８にアクセスできる。
バンク選択計算回路１５１５において計算されるバンク選択信号Ｓｅｌ＝１となり、データ相互接続網１６の第２の選択装置１６１においては、バンク選択信号Ｓｅｌに従い、メモリバンク１１−１とのデータ経路が選択される。
このとき、第２の制御信号ｃｔｒｌ２でメモリバンクとのデータ経路を選択するように第３の選択装置１６２に指定される。これにより、プロセッサ１４からメモリバンク１１−１のＡｄｒｃ１＝８に該当するデータにアクセスできる。
【００５９】
次に、アドレス変換を行う場合のアクセスについて説明する。
ここでは、プロセッサ１４が連続アドレスＡｄｒ０，１，２，３，…，４７を生成するだけで、メモリへアクセスするアドレスＡｄｒｃ０，８，１，９，…，１６，２４，１７，２５，…，３１，３２，…，３９，４７にできるためのアドレス変換について説明する。
【００６０】
この場合、外部の制御系により、あるいはプロセッサ１４により、第１パラメータＸが値ｘ＝２、第２パラメータＹが値ｙ＝８、第３のパラメータＺが値ｚ＝８に設定されてアドレス変換装置１５１に供給される。
これにより、第１のレジスタ１５１１に２が設定され、第２のレジスタ１５１２に８が設定され、第３のレジスタ１５１３に８が設定される。
第１のレジスタ１５１１に設定された第１のパラメータＸ（値ｘ＝１）および第２のレジスタ１５１２に設定された第２のパラメータＹ（値ｙ＝８）がアドレス計算回路１５１４に供給される。また、第３のレジスタ１５１３に設定された第３のパラメータＺ（値ｚ＝８）がバンク選択計算回路１５１５に供給される。
【００６１】
アドレス計算回路１５１４においては、次式に従って変換後のアドレスが計算される。
【００６２】
[数７]
Adrn = 8 * (Adr % 2) + (Adr % 16) / 2+ 16 * (Adr / 16)
【００６３】
その結果、アドレス計算回路１５１４では、たとえばＡｄｒ＝０のときＡｄｒｎ＝０、Ａｄｒ＝１のときＡｄｒｎ＝８、Ａｄｒ＝１６のときＡｄｒｎ＝１６、Ａｄｒ＝１７のときＡｄｒｎ＝２４などといった変換が行われる。
すなわち、プロセッサ１４がＡｄｒとして連続アドレス０，１，２，３，…，４７を生成するだけで、メモリへアクセスするアドレスを０，８，１，９，…，１６，２４，１７，２５，…，３１，３２，…，３９，４７に変換することができる。
そして、第１の制御信号ｃｔｒｌ１で変換アドレスＡｄｒｎを選択するよう第１の選択装置１５２に指定される。これにより、第１の選択装置１５１でこの値が選択され、メモリバンク１１−０のアドレスＡｄｒｃ０＝０、メモリバンク１１−１のアドレスＡｄｒｃ１＝８、メモリバンク１１−０のアドレスＡｄｒｃ０＝１、メモリバンク１１−１のアドレスＡｄｒｃ１＝９、以下同様にして、メモリバンク１１−４のアドレスＡｄｒｃ４＝３９、メモリバンク１１−５のアドレスＡｄｒｃ５＝４７にアクセスできる。
【００６４】
アドレス変換装置１５１は同時に、バンク選択計算回路１５１５において、次式に従って、バンク選択信号Ｓｅｌが計算され、データ相互接続網１６の第２の選択装置１６１に出力される。
【００６５】
[数８]
Ｓｅｌ = Adrn / 8 
【００６６】
このとき、たとえば生成アドレスＡｄｒが１のとき変換アドレスＡｄｒｎは８となり、バンク選択信号Ｓｅｌは１となる。
そのため、データ相互接続網１６の第２の選択装置１６１においては、バンク選択信号Ｓｅｌに従い、メモリバンク１１−１とのデータ経路が選択される。
このとき、第２の制御信号ｃｔｒｌ２でメモリバンクとのデータ経路を選択するように第３の選択装置１６２に指定される。これにより、プロセッサ１４からメモリバンク１１−１のＡｄｒｃ１＝８に該当するデータにアクセスできる。
【００６７】
なお、アドレス生成装置１２−０〜１２−５がアドレス生成を行う場合、Ａｄｒ０〜Ａｄｒ５がアドレス生成装置１２−０〜１２−５で生成される。
そして、第１の制御信号ｃｔｒｌ１でアドレスＡｄｒ０〜Ａｄｒ５を選択するよう第１の選択装置１５２に指定される。これにより、第１の選択装置１５１でこの値が選択され、所望のメモリバンク１１−０〜１１−５の所望のアドレスＡｄｒｃ０＝０〜Ａｄｒｃ５＝４７にアクセスを行うことができる。
【００６８】
以上説明したように、本第１の実施形態によれば、プロセッサ１４とアドレス生成装置１２−０〜１２−５を、メモリバンク１１−０〜１１−５を選択的に接続するアドレス相互接続網１５に、プロセッサ１４により生成されたアドレスＡｄｒを、このアドレスＡｄｒと、メモリバンクの数に応じたあるいはメモリセット内のメモリバンクの数に応じた第１のパラメータＸ、並びにメモリバンクのアドレスの数に応じた第２のパラメータＹに基づいて所定の規則性を持つアドレスＡｄｒｎに変換し、かつ変換アドレスおよびメモリバンクのアドレスの数に基づいた第３のパラメータＺに基づいてバンク選択信号Ｓｅｌを生成し、データ相互接続網１６に出力するアドレス変換装置１５１を設け、データ相互接続網１６において、バンク選択信号Ｓｅｌに基づいてプロセッサ１４とメモリバンク１１−０〜１１−５とのデータ経路を選択的に設定するようにしたので、以下の効果を得ることができる。
【００６９】
すなわち、本第１の実施形態によれば、演算システムにおけるメモリアクセス性能を向上させることができる。
たとえば、プロセッサ１４からメモリバンク１１−０〜１１−５にアクセスする場合のアドレスが、０，８，１６，２４，１，９，１７，２５，…，７，１５，２３，３１である場合、アドレス変換装置１５１を用いることで所望のアクセス用アドレスを生成することができ、アドレス変換に加えてさらにアドレスに対応したデータの選択を行うことができる。
さらに、プロセッサ１４からメモリバンク１１−０〜１１−５にアクセスする場合のアドレスが、たとえば０，８，１，９，２，１０，…，７，１５，１６，２４，１７，２５，…，２３，３１である場合、アドレス変換装置１５１が所望のアドレス変換を行うことができるため、プロセッサ１４でアドレス変換を行う必要がない。そのため、プロセッサを使った演算とは別にアドレス計算を行っていた余計なサイクルを削減することが可能になる。
さらに、アドレス変換装置を１段設けるだけですむため、ハードウェア規模を削減することができ、コストを削減することも可能になる。
【００７０】
第２実施形態
図６は、本発明に係る演算システムの第２の実施形態を示す構成図である。
【００７１】
本第２の実施形態が上述第１の実施形態と異なる点は、メモリバンク１１の要素数、アドレス生成装置１２の要素数、演算装置１３の要素数を６個ではなく、ｌ×ｍに一般化した構成を有する点にある。
【００７２】
本第２の実施形態においては、メモリバンク１１−０〜１１−ｌ×ｍ−１はｎアドレスを持ち、ｍ個のバンクでメモリセットＭＳを構成し、全部でｌ個のメモリセットから構成される。アドレス空間は０〜ｌ×ｍ×ｎ−1 となる。
【００７３】
アドレス相互接続網１５Ａは、図７に示すように、基本的には、図２と同様に、アドレス変換装置１５１および第１の選択装置１５２を有する。
すなわち、アドレス相互接続網１５Ａは、プロセッサ１４からのアドレスＡｄｒ、アドレス生成装置１２−０〜１２−ｌ×ｍ−１からのアドレスＡｄｒ０〜Ａｄｒ（ｌ×ｍ−１）を入力アドレスとし、第１の選択装置１５１で選択されるＡｄｒｃ０〜Ａｄｒｃ（ｌ×ｍ−１）を出力アドレスとし、アドレス変換装置１５１で生成されたバンク選択信号Ｓｅｌをデータ相互接続網１６に出力する。
アドレス相互接続網１５Ａは、プロセッサ１４の生成アドレスＡｄｒをアドレス変換装置１５１で変換し、その結果を第１の選択装置１５２に出力する。
そして、第１の制御信号ｃｔｒｌ１に従って変換アドレスＡｄｒｎまたはアドレス生成装置１２−０〜１２−ｌ×ｍ−１からのアドレスＡｄｒ０〜Ａｄｒ(m*n-1) を選択して、各メモリバンク１１−０〜１１−ｌ×ｍ−１への出力アドレスＡｄｒｃ０〜Ａｄｒｃ（ｌ×ｍ−１）を得る。
アドレス変換装置１５１は、図３と同様の構成、機能を有する。
【００７４】
データ相互接続網１６Ａは、図８に示すように、基本的には、図５と同様に、第２の選択装置１６１および第３の選択装置１６２を有する。
すなわち、アドレス相互接続網１５Ａの第１の選択装置１６１は、プロセッサ１４の入出力データＤａｔと第２の選択装置１６２（複数のメモリバンク１１−０〜１１−ｌ×ｍ−１の入出力データＤａｔｃ０〜Ｄａｔｃｌ×ｍ−１、演算装置１３−０〜１３−ｌ×ｍ−１の入出力データＤａｔ０〜Ｄａｔｌ×ｍ−１）とのデータ経路をアドレス変換装置１５１によるバンク選択信号Ｓｅｌに基づいて選択的に接続する。
第２の選択装置１６２は、第２の制御信号ｃｔｒｌに応じて演算装置１３−０〜１３−ｌ×ｍ−１の入出力データＤａｔ０〜Ｄａｔｌ×ｍ−１とメモリバンク１１−０〜１１−ｌ×ｍ−１の入出力データＤａｔｃ０〜Ｄａｔｃｌ×ｍ−１および／または第２の選択装置１６１（プロセッサ１４の入出力データＤａｔ）とのデータ経路を選択的に接続する。
【００７５】
次に、上記構成による動作をプロセッサ１４がアドレスＡｄｒを生成する場合を例に、アドレス変換装置の上記構成による動作を中心に説明する。
【００７６】
まず、アドレス変換を行わない場合のアドレス生成について説明する。
この場合、外部の制御系により、あるいはプロセッサ１４により、第１パラメータＸが値ｘ＝１、第２パラメータＹが値ｙ＝ｌ＊ｍ＊ｎ、第３のパラメータＺが値ｚ＝ｎに設定されてアドレス変換装置１５１に供給される。
これにより、第１のレジスタ１５１１に１が設定され、第２のレジスタ１５１２に（ｌ＊ｍ＊ｎ）が設定され、第３のレジスタ１５１３にｎが設定される。
第１のレジスタ１５１１に設定された第１のパラメータＸ（値ｘ＝１）および第２のレジスタ１５１２に設定された第２のパラメータＹ（値ｙ＝ｌ＊ｍ＊ｎ）がアドレス計算回路１５１４に供給される。また、第３のレジスタ１５１３に設定された第３のパラメータＺ（値ｚ＝ｎ）がバンク選択計算回路１５１５に供給される。
【００７７】
アドレス計算回路１５１４においては、次式に従ってアドレス計算が行われるが、この式によりアドレス変換は行われないことが分かる。
【００７８】
[数９]
Adrn = l*m*n*(Adr % 1) + l*m*n*(Adr/(l*m*n)) + (Adr % (l*m*n))/1 = Adr
【００７９】
プロセッサ１４からメモリへアクセスを行うために、アドレスＡｄｒが生成されてアドレス相互接続網１５Ａに出力され、アドレス変換回路１５１に入力される。
このとき、たとえば生成Ａｄｒが０の場合、上式を使って計算するとＡｄｒｎ＝０となる。
そして、第１の制御信号ｃｔｒｌ１で変換アドレスＡｄｒｎを選択するよう第１の選択装置１５２に指定される。これにより、第１の選択装置１５１でこの値が選択され、メモリバンク１１−０のアドレスＡｄｒｃ０＝０にアクセスを行うことができる。
【００８０】
アドレス変換装置１５１は同時に、バンク選択計算回路１５１５において、次式に従って、バンク選択信号Ｓｅｌが計算され、データ相互接続網１６の第２の選択装置１６１に出力される。
【００８１】
[数１０]
Ｓｅｌ = Adrn / n 
【００８２】
このとき、バンク選択信号ＳｅｌはアドレスＡｄｒｎが０であることから０になる。データ相互接続網１６の第２の選択装置１６１においては、バンク選択信号Ｓｅｌに従い、メモリバンク１１−０とのデータ経路が選択される。
このとき、第２の制御信号ｃｔｒｌ２でメモリバンクとのデータ経路を選択するように第３の選択装置１６２に指定される。これにより、プロセッサ１４からメモリバンク１１−０のＡｄｒｃ０＝０に該当するデータにアクセスできる。
【００８３】
次にアドレス変換を行う場合について説明する。
ここでは、プロセッサ１４が、
連続アドレス〔0,1,…n-1, n, …, (m-1)*n, (m-1)*n+1, …(m-1)*n+n-1,…,
(l-1)*m*n,1+(l-1)*m*n,…n-1+(l-1)*m*n,…(m-1)*n+(l-1)*m*n,(m-1)*n+1+(l-1)*m*n,…(m-1)*n+n-1+(l-1)*m*n 〕
を生成するだけで、メモリへアクセスするアドレスを
〔0,…(m-1)*n, 1, …(m-1)*n+1,…n-1,…(m-1)*n+n-1 ，…，(l-1)*m*n,…(m-1)*n+(l-1)*m*n, 1+(l-1)*m*n, …(m-1)*n+1+(l-1)*m*n,…n-1+(l-1)*m*n,…(m-1)*n+n-1+(l-1)*m*n 〕
にできるためのアドレス変換について説明する。
【００８４】
この場合、外部の制御系により、あるいはプロセッサ１４により、第１パラメータＸが値ｘ＝ｍ、第２パラメータＹが値ｙ＝ｎ、第３のパラメータＺが値ｚ＝ｎに設定されてアドレス変換装置１５１に供給される。
これにより、第１のレジスタ１５１１にｍが設定され、第２のレジスタ１５１２にｎが設定され、第３のレジスタ１５１３にｎが設定される。
第１のレジスタ１５１１に設定された第１のパラメータＸ（値ｘ＝ｍ）および第２のレジスタ１５１２に設定された第２のパラメータＹ（値ｙ＝ｎ）がアドレス計算回路１５１４に供給される。また、第３のレジスタ１５１３に設定された第３のパラメータＺ（値ｚ＝ｎ）がバンク選択計算回路１５１５に供給される。
【００８５】
アドレス計算回路１５１４においては、次式に従ってアドレス計算が行われる。
【００８６】
[数１１]
Adrn = n * (Adr % m) + (Adr % (m*n)) / m+ (m*n) * (Adr / (m*n)) 
【００８７】
その結果、たとえばＡｄｒ＝０のときＡｄｒｎ＝０、Ａｄｒ=1のときＡｄｒｎ＝ｎn 、Ａｄｒ=m*nのときＡｄｒn=m*n 、Ａｄｒ=m*n+1のときＡｄｒn=n+m*n 、Ａｄｒ=(l-1)*m*nのときＡｄｒn=(l-1)*m*n 、Ａｄｒ=(l-1)*m*n+1のときＡｄｒn=n+(l-1)*m*n などといった変換が行われる。
まとめると連続アドレス
0,1,…n-1, n, …, (m-1)*n, (m-1)*n+1, …(m-1)*n+n-1,…, (l-1)*m*n,1+(l-1)*m*n,…n-1+(l-1)*m*n,…(m-1)*n+(l-1)*m*n,(m-1)*n+1+(l-1)*m*n,…(m-1)*n+n-1+(l-1)*m*n 
を生成するだけで、メモリへアクセスするアドレスＡｄｒｎを
0,…(m-1)*n, 1, …(m-1)*n+1,…n-1,…(m-1)*n+n-1 ，…，(l-1)*m*n,…(m-1)*n+(l-1)*m*n, 1+(l-1)*m*n, …(m-1)*n+1+(l-1)*m*n,…n-1+(l-1)*m*n,…(m-1)*n+n-1+(l-1)*m*n 
に変換できる。
【００８８】
そして、第１の制御信号ｃｔｒｌ１で変換アドレスＡｄｒｎを選択するよう第１の選択装置１５２に指定される。これにより、第１の選択装置１５１でこの値が選択され、該当するメモリのアドレスＡｄｒｃ０  〜Ａｄｒｃ(l*m-1) を生成できる。
【００８９】
アドレス変換装置１５１は同時に、バンク選択計算回路１５１５において、次式に従って、バンク選択信号Ｓｅｌが計算され、データ相互接続網１６の第２の選択装置１６１に出力される。
【００９０】
[数１２]
Ｓｅｌ = Adrn / n 
【００９１】
このとき、Ａｄｒ＝１のときＡｄｒｎ＝ｎとなりバンク選択信号Ｓｅｌは１となる。データ相互接続網１６の第２の選択装置１６１においては、バンク選択信号Ｓｅｌに従い、メモリバンク１１−１とのデータ経路が選択される。
このとき、第２の制御信号ｃｔｒｌ２でメモリバンクとのデータ経路を選択するように第３の選択装置１６２に指定される。これにより、プロセッサ１４からメモリバンク１１−１のＡｄｒｃ＝ｎに該当するデータにアクセスできる。
【００９２】
なお、アドレス生成装置１２−０〜１２−ｌ×ｍ−１がアドレス生成を行う場合、Ａｄｒ０〜Ａｄｒ５がアドレス生成装置１２−０〜１２−ｌ×ｍ−１で生成される。
そして、第１の制御信号ｃｔｒｌ１でアドレスＡｄｒ０〜Ａｄｒｌ×ｍ−１５を選択するよう第１の選択装置１５２に指定される。これにより、第１の選択装置１５１でこの値が選択される。
たとえばＡｄｒ０＝０のときＡｄｒｃ０＝０であり、Ａｄｒ１＝８のときＡｄｒｃ８＝８となる。
【００９３】
本第２の実施形態によれば、上述した第１の実施形態の効果と同様の効果を得ることができる。
【００９４】
なお、第１および第２の実施形態においては、プロセッサ数が１で、プロセッサ１４の生成するアドレスを変換する場合について説明しているが、アドレス生成装置の生成するアドレスを変換する場合や、プロセッサ数が複数の場合についても相互接続網の構成を変更するだけで、本発明を適用できることは明らかである。
【符号の説明】
【００９５】
１０，１０Ａ…演算システム、１１−０〜１１−５…メモリバンク（ＭＢＮＫ）、１２−０〜１２−５…アドレス生成装置（ＡＤＲＧ）、１３−０〜１３−５…演算装置（ＯＰ）、１４…プロセッサ（ＰＲＣ）、１５，１５Ａ…アドレス相互接続網（ＡＣＮＣＴ）、１５１…アドレス変換装置（ＡＣＮＶ）、１５２…第１の選択装置（ＳＥＬ）、１６，１６Ａ…データ相互接続網（ＤＣＮＣＴ）、１６１…第２の選択装置（ＳＥＬ）、１６２…第３の選択装置（ＳＥＬ）。
【図１】
2010073220.tif 000003
【図２】
2010073220.tif 000004
【図３】
2010073220.tif 000005
【図４】
2010073220.tif 000006
【図５】
2010073220.tif 000007
【図６】
2010073220.tif 000008
【図７】
2010073220.tif 000009
【図８】
2010073220.tif 000010
【手続補正書】
【提出日】平成22年1月27日(2010.1.27)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、演算に関するデータを記憶する複数のメモリバンクと、プロセッサと、プロセッサと各メモリバンクを相互に接続するアドレス相互接続網を備えたアドレス変換回路、アドレス変換方法、および演算システムに関するものである。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、余計な処理サイクル数を削減でき、メモリアクセス性能を向上させることができ、また、ハードウェア規模の低減を図れ、ひいてはコスト削減を図ることができるアドレス変換回路、アドレス変換方法、および演算システムを提供することにある。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリバンク数および各メモリバンク内のアドレス数の一方をｘ、他方をｙとし、％がモジュロ演算、／が整数の除算を表すときに、元のアドレスＡｄｒに基づいて、変換アドレスＡｄｒｎを下記数１式に従って計算する機能を有する
［数１］
Adrn = y * (Adr % x) + x*y* (Adr / (x*y)) + (Adr % (x*y)) / x 
アドレス変換回路。
【請求項２】
上記変換アドレスおよび上記メモリバンクのアドレスの数に基づいたパラメータｚに基づいて上記バンク選択信号を生成するバンク選択計算機能を有し、
バンク選択信号Ｓｅｌを下記数２に従って計算する
請求項１記載のアドレス変換回路。
［数２］
Sel = Adrn / z 
【請求項３】
メモリバンク数および各メモリバンク内のアドレス数の一方をｘ、他方をｙとし、％がモジュロ演算、／が整数の除算を表すときに、元のアドレスＡｄｒに基づいて、変換アドレスＡｄｒｎを下記数３式に従って計算する
［数３］
Adrn = y * (Adr % x) + x*y* (Adr / (x*y)) + (Adr % (x*y)) / x 
アドレス変換方法。
【請求項４】
アドレス空間の所定範囲のアドレスが割り当てられ、演算に関するデータを記憶する複数のメモリバンクと、
連続するアドレスを生成する機能を有するプロセッサと、
少なくとも上記プロセッサと上記複数のメモリバンクとを相互に接続するアドレス相互接続網と
を有し、
上記アドレス相互接続網は、
上記プロセッサにより生成されたアドレスを、当該アドレスと少なくとも上記メモリバンクの数に応じて所定の規則性を持つアドレスに変換するアドレス変換装置を有し、
上記アドレス変換装置による変換アドレスを、当該変換アドレスを含む上記メモリバンクに供給し、
上記アドレス変換装置は、
上記プロセッサにより生成されたアドレスと、上記メモリバンクの数および上記メモリバンクのアドレスの数に基づいてアドレス変換を行うことが可能で、かつ、アドレス変換方式が上記メモリバンク数および上記メモリバンクのアドレス数の設定に応じて変更可能であり、
上記メモリバンク数および上記メモリバンクのアドレス数、および上記プロセッサで生成されたアドレスに基づいて変換アドレスを計算するアドレス計算回路を含み、
上記アドレス計算回路が、
メモリバンク数および各メモリバンク内のアドレス数の一方をｘ、他方をｙとし、％がモジュロ演算、／が整数の除算を表すときに、元のアドレスＡｄｒに基づいて、変換アドレスＡｄｒｎを下記数４式に従って計算する機能を有する
［数４］
Adrn = y * (Adr % x) + x*y* (Adr / (x*y)) + (Adr % (x*y)) / x 
演算システム。
【請求項５】
少なくとも上記プロセッサと上記複数のメモリバンクとのデータ経路をバンク選択信号に基づいて選択的に接続するデータ相互接続網を有し、
アドレス変換装置は、
上記アドレス計算回路による変換アドレスおよび上記メモリバンクのアドレスの数に基づいたパラメータｚに基づいて上記バンク選択信号を生成し、上記データ相互接続網に出力するバンク選択計算回路を有し、
上記バンク選択計算回路は、
上記バンク選択信号Ｓｅｌを下記数５に従って計算する
請求項４記載の演算システム。
［数５］
Sel = Adrn / z 
【請求項６】
上記データ相互接続網は、制御信号に応じて外部装置と上記複数のメモリバンクとのデータ経路を選択的に接続する選択装置を有する
請求項４または５記載の演算システム。
【請求項７】
上記アドレス計算回路は、
上記ｘおよびｙの値として、上記アドレス空間に対して設定されるアドレス数に関する値が設定されると、入力アドレスをそのまま出力する
請求項４から６のいずれか一に記載の演算システム。
【請求項８】
上記アドレス相互接続網は、
制御信号に応じて上記アドレス変換装置による変換アドレスまたは外部から供給されたアドレスのうちのいずれかを選択して、選択したアドレスを含む上記メモリバンクに供給する選択装置を有する
請求項４から７のいずれか一に記載の演算システム。
【請求項９】
アドレス空間の所定範囲のアドレスが割り当てられ、演算に関するデータを記憶する複数のメモリバンクと、
連続するアドレスを生成する機能を有するプロセッサと、
少なくとも一つのアドレス生成装置と、
少なくとも一つの演算装置と、
上記プロセッサと上記複数のメモリバンクと上記アドレス生成装置を相互に接続するアドレス相互接続網と、
上記プロセッサと上記複数のメモリバンクと上記演算装置を相互に接続するデータ相互接続網と
を有し、
上記アドレス相互接続網は、
少なくとも上記プロセッサにより生成されたアドレスを、当該アドレスと少なくとも上記メモリバンクの数に応じて所定の規則性を持つアドレスに変換し、上記変換アドレスおよび上記メモリバンクのアドレスの数に基づいてバンク選択信号を生成し、上記データ相互接続網に出力するアドレス変換装置と、
第１の制御信号に応じて上記アドレス変換装置による変換アドレスまたは上記アドレス生成装置から供給されたアドレスのうちのいずれかを選択して、選択したアドレスを含む上記メモリバンクに供給する第１の選択装置と
を有し、
上記アドレス変換装置は、
上記プロセッサにより生成されたアドレスと、上記メモリバンクの数および上記メモリバンクのアドレスの数にアドレス変換を行うことが可能で、かつ、アドレス変換方式が上記メモリバンク数および上記メモリバンクのアドレス数の設定に応じて変更可能であり、
上記データ相互接続網は、
上記プロセッサと上記複数のメモリバンクとのデータ経路をバンク選択信号に基づいて選択的に接続する第２の選択装置と、
第２の制御信号に応じて上記演算装置と上記複数のメモリバンクとのデータ経路を選択的に接続する第３の選択装置と、を有し、
上記アドレス変換装置は、
上記メモリバンク数および上記メモリバンクのアドレス数、および上記プロセッサで生成されたアドレスに基づいて変換アドレスを計算するアドレス計算回路と、
上記アドレス計算回路による変換アドレスおよび上記メモリバンクのアドレスの数に基づいたパラメータに基づいて上記バンク選択信号を生成し、上記データ相互接続網に出力するバンク選択計算回路と、を含み、
上記アドレス計算回路が、
メモリバンク数および各メモリバンク内のアドレス数の一方をｘ、他方をｙとし、％がモジュロ演算、／が整数の除算を表すときに、元のアドレスＡｄｒに基づいて、変換アドレスＡｄｒｎを下記数６式に従って計算し、
上記バンク選択計算回路が、
上記アドレス計算回路による変換アドレスおよび上記メモリバンクのアドレスの数に基づいたパラメータをｚとし、／が整数の除算を表すときに、上記バンク選択信号Ｓｅｌを下記数７式に従って計算する
［数６］
Adrn = y * (Adr % x) + x*y* (Adr / (x*y)) + (Adr % (x*y)) / x 
［数７］
Sel = Adrn / z 
演算システム。
【請求項１０】
上記アドレス計算回路は、
上記ｘおよびｙの値として、上記アドレス空間に対して設定されるアドレス数に関する値が設定されると、入力アドレスをそのまま出力する
請求項９記載の演算システム。