(57)【要約】【課題】複数の処理装置をメモリを介して効率よくスケーラブルに接続拡張することが可能な共有メモリ装置を提供する。【解決手段】複数の処理装置１２−０〜１２−１５と、処理装置によりアクセス可能な複数のメモリモジュール１４−０〜１４−６３と、複数の処理装置のうち、特定の処理装置のみが特定のメモリモジュールに接続可能な接続部１３と、を有し、複数の処理装置は、接続部を介して一または複数のメモリモジュールにより形成されるメモリシステムＭ０〜Ｍ１５をアクセス可能で、異なる処理装置によりアクセス可能なメモリシステムは、異なる処理装置でアクセスされるメモリモジュールを一部共有している。【選択図】図５
2008077152.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理装置と、
前記処理装置によりアクセス可能な複数のメモリモジュールと、
前記複数の処理装置のうち、特定の処理装置のみが特定のメモリモジュールに接続可能な接続部と、を有し、
前記複数の処理装置は、前記接続部を介して一または複数のメモリモジュールにより形成されるメモリシステムをアクセス可能で、
異なる処理装置によりアクセス可能な前記メモリシステムは、異なる処理装置でアクセスされるメモリモジュールを一部共有している
共有メモリ装置。
【請求項２】
前記共有メモリモジュールは、配置位置が近い処理装置同士がアクセス可能に、前記メモリシステムが形成されている
請求項１記載の共有メモリ装置。
【請求項３】
同じメモリモジュールに同時に複数の処理装置からアクセス要求があった場合には優先順位付け処理を実行し、その優先順位に従いアクセス制御を行う調停回路を有する
請求項１記載の共有メモリ装置。
【請求項４】
外部との通信が可能で、前記複数のメモリモジュールのアクセスを制御するコントローラを有し、
前記コントローラは、前記接続部を介して全てのメモリモジュールにアクセス可能である
請求項１記載の共有メモリ装置。
【請求項５】
複数の処理装置と、
複数のメモリモジュールと、
前記複数の処理装置のうち、特定の処理装置のみが特定のメモリモジュールに接続可能な接続部と、
外部との通信が可能で、前記複数のメモリモジュールのアクセスを制御するコントローラを有し、
前記複数の処理装置は、前記接続部を介して一または複数のメモリモジュールにより形成されるメモリシステムをアクセス可能で、
異なる処理装置によりアクセス可能な前記メモリシステムは、異なる処理装置でアクセスされるメモリモジュールを一部共有している
複数の共有メモリ装置を有し、
各共有メモリ装置のコントローラがバスにより接続されている
共有メモリ装置。
【請求項６】
前記共有メモリモジュールは、配置位置が近い処理装置同士がアクセス可能に、前記メモリシステムが形成されている
請求項５記載の共有メモリ装置。
【請求項７】
同じメモリモジュールに同時に複数の処理装置からアクセス要求があった場合には優先順位付け処理を実行し、その優先順位に従いアクセス制御を行う調停回路を有する
請求項５記載の共有メモリ装置。
【請求項８】
前記コントローラは、前記接続部を介して全てのメモリモジュールにアクセス可能である
請求項５記載の共有メモリ装置。
【請求項９】
複数の処理装置と、
前記処理装置によりアクセス可能な一または複数のメモリモジュールを含む複数のメモリシステムと、
前記処理装置および各メモリモジュールと接続される複数のメモリインタフェースと、を有し、
前記複数の処理装置は、前記一または複数のメモリモジュールにより形成されるメモリシステムをアクセス可能で、
異なる処理装置によりアクセス可能な前記メモリシステムは、異なる処理装置でアクセスされるメモリモジュールを一部共有し、
前記メモリシステム上にバス配線がマッピングされている
共有メモリ装置。
【請求項１０】
上記メモリインタフェースは、上記メモリシステムの配置領域を挟んで上記処理装置の配置位置と対向する位置に配置され、
上記複数のメモリシステムの各メモリモジュールは、上記処理装置の配置位置と対向配置されたメモリインタフェースとの接続方向である第１方向に略直交する第２方向に並列に配置され、
上記処理装置と、上記各メモリインタフェースと、各メモリモジュールとは、上記複数のメモリシステムの配置領域に第１方向および第２方向にマトリクス状に配線された接続配線により接続されている
請求項９記載の共有メモリ装置。
【請求項１１】
前記第２方向に配線された共通バスを有する
請求項９記載の共有メモリ装置。
【請求項１２】
前記第２方向に配線された共通バスを有する
請求項１０記載の共有メモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサエレメント（Processing Element：ＰＥ）等の処理装置を含む複数のメモリシステムを混載し、各システムのメモリを共有する共有メモリ装置に関するものである。
【背景技術】
【０００２】
複数のメモリシステムを混載するシステムにおいて、並列処理を重視したアーキテクチャを採用すると、たとえば図１に示すような構成となる。
図１の構成においては、ＰＥ（プロセッサエレメント）１−１〜１−４とメモリ２−１〜２−４は並列処理を優先するため、１対１で接続される。
図１の構成において、ＰＥ１とメモリ２は並列処理を優先するため１対１で接続されるが、ＰＥ１は隣接しているＰＥのデータを参照するためには、上位装置を介したパスを使う必要がある。
【０００３】
そこで、ＰＥ回路１から直接、隣接メモリまでの接続を、一般的に、図２に示すように、クロスバー（Ｘｂａｒ）３で行う構成が採用される。
【特許文献１】ＵＳＰ5,471,592
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前述した複数のＰＥをもつシステムにおいて、図３に示すように、メモリを介してデータの共有をおこない効率よくスケーラブルに接続拡張した場合にＰＥとメモリ間の接続がＰＥ数に対してリニアに増加しないという問題があった（要するに急激に増加する。）。
【０００５】
メモリの共有システムとしては、特許文献１（US5,471,592；Multi-Processor with crossbar link of processors and memories）以前は、ＳＩＭＤ,ＭＩＭＤのどちらかであったが、近年の複雑なアプリケーション実現のためにはその両方の機能を包含したメモリシステムが必要となる。そこで、その基本的方法が提案されている。
この場合、データを転送するのではなく、ＰＥとメモリの接続先を変更することで、効率的なマルチＰＥ処理を実現しており、次の３つの形態の接続を持つ。
【０００６】
メモリ全体をアクセスできるグローバル接続、
特定のＰＥに接続可能なローカル接続、
ＰＥの実行命令を転送する命令転送経路、
の３つである。
【０００７】
クロスバースイッチのそれぞれの縦方向(ひとつのメモリのつながる方向)(=メモリ毎と等価)にはプライオリティーをつけるための機構があり、ラウンドロビン（round-robin）方式で決定する。
【０００８】
しかしながら、この中では非常にたくさんのＰＥをクロスバー接続した場合の接続の巨大化に対してはまったく触れていないため、ＰＥ数を増加させた場合のクロスバー接続の急激な増大に対してはその対策方法はまったく考えられていない。
【０００９】
また、図４(Ａ)，(Ｂ)に示すように、ＰＥを増加させる場合のデータ転送路の増大を抑えるために、データ転送路の階層化も提案されているが、その場合には階層構造を構成するために接続ポート６の設置など、本来のデータ転送にとっては不要となる機構が必要となり、無駄が多い。
【００１０】
本発明は、複数の処理装置をメモリを介して効率よくスケーラブルに接続拡張することが可能な共有メモリ装置を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の第１の観点の共有メモリ装置は、複数の処理装置と、前記処理装置によりアクセス可能な複数のメモリモジュールと、前記複数の処理装置のうち、特定の処理装置のみが特定のメモリモジュールに接続可能な接続部と、を有し、前記複数の処理装置は、前記接続部を介して一または複数のメモリモジュールにより形成されるメモリシステムをアクセス可能で、異なる処理装置によりアクセス可能な前記メモリシステムは、異なる処理装置でアクセスされるメモリモジュールを一部共有している。
【００１２】
好適には、前記共有メモリモジュールは、配置位置が近い処理装置同士がアクセス可能に、前記メモリシステムが形成されている。
【００１３】
好適には、同じメモリモジュールに同時に複数の処理装置からアクセス要求があった場合には優先順位付け処理を実行し、その優先順位に従いアクセス制御を行う調停回路を有する。
【００１４】
好適には、外部との通信が可能で、前記複数のメモリモジュールのアクセスを制御するコントローラを有し、前記コントローラは、前記接続部を介して全てのメモリモジュールにアクセス可能である。
【００１５】
本発明の第２の観点の共有メモリ装置は、複数の処理装置と、複数のメモリモジュールと、前記複数の処理装置のうち、特定の処理装置のみが特定のメモリモジュールに接続可能な接続部と、外部との通信が可能で、前記複数のメモリモジュールのアクセスを制御するコントローラを有し、前記複数の処理装置は、前記接続部を介して一または複数のメモリモジュールにより形成されるメモリシステムをアクセス可能で、異なる処理装置によりアクセス可能な前記メモリシステムは、異なる処理装置でアクセスされるメモリモジュールを一部共有している複数の共有メモリ装置を有し、各共有メモリ装置のコントローラがバスにより接続されている。
【００１６】
本発明の第３の観点の共有メモリ装置は、複数の処理装置と、前記処理装置によりアクセス可能な一または複数のメモリモジュールを含む複数のメモリシステムと、前記処理装置および各メモリモジュールと接続される複数のメモリインタフェースと、を有し、前記複数の処理装置は、前記一または複数のメモリモジュールにより形成されるメモリシステムをアクセス可能で、異なる処理装置によりアクセス可能な前記メモリシステムは、異なる処理装置でアクセスされるメモリモジュールを一部共有し、前記メモリシステム上にバス配線がマッピングされている。
【００１７】
好適には、上記メモリインタフェースは、上記メモリシステムの配置領域を挟んで上記処理装置の配置位置と対向する位置に配置され、上記複数のメモリシステムの各メモリモジュールは、上記処理装置の配置位置と対向配置されたメモリインタフェースとの接続方向である第１方向に略直交する第２方向に並列に配置され、上記処理装置と、上記各メモリインタフェースと、各メモリモジュールとは、上記複数のメモリシステムの配置領域に第１方向および第２方向にマトリクス状に配線された接続配線により接続されている。
【００１８】
好適には、前記第２方向に配線された共通バスを有する。
【００１９】
本発明によれば、複数の処理装置は、メモリシステムのメモリモジュールに接続部を介してアクセスする。このとき、異なる処理装置によりアクセス可能なメモリシステムは、異なる処理装置でアクセスされるメモリモジュールを一部共有している。すなわち、部分共有している。
【発明の効果】
【００２０】
本発明によれば、複数の処理装置をメモリを介して効率よくスケーラブルに接続拡張することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施形態を図面に関連付けて説明する。
【００２２】
図５は、本発明の実施形態に係る共有メモリ装置のシステム構成図である。
【００２３】
図５の共有メモリ装置１０は、ダイレクトメモリアクセスコントローラ（ＤＭＡコントローラ）１１と、複数（図５では１６）のＰＥコア１２−０〜１２−１５、接続部としての一部重なったマルチポート(以下、オーバーラップマルチポートという)１３、複数（図５では６４個）のメモリモジュールとしてのメモリバンク(たとえばＳＲＡＭバンク)１４−０〜１４−６３、並びに調停回路１５を有する。
【００２４】
図５の共有メモリ装置１０において、メモリバンク１４−０〜１４−６３は隣接する８バンクにより形成される複数のメモリシステムＭ０〜Ｍ１５に区分けされている。
たとえば、メモリシステムＭ０は８個のメモリバンク１４−０〜１４−７により形成されている。
メモリシステムＭ０に隣接するメモリシステムＭ１は、メモリシステムＭ０の４個のメモリバンク１４−４〜１４−７を共有して８個のメモリバンク１４−４〜１４−１１により形成されている。
同様に、メモリシステムＭ１に隣接するメモリシステムＭ２は、メモリシステムＭ１の４個のメモリバンク１４−８〜１４−１１を共有して８個のメモリバンク１４−８〜１４−１５により形成されている。
以下、メモリシステムＭ３〜Ｍ１５は、隣接するメモリシステムの４つのメモリバンクを共有する形態で８つのメモリバンクにより形成されている。
ただし、メモリシステムＭ１５のみ４つのメモリバンクにより形成されている。
【００２５】
図５の共有メモリ装置１０において、各ＰＥコア１２−０〜１２−１５は、たとえば８バンク(16kByte)ずつアクセス可能となっていて、ＰＥコア１２−０〜１２−１５のアクセス可能バンクは隣同士など複数のＰＥ間で(8kByte)重なり合っている。
完全クロスバー接続ではなく、一部の接続を行わない。重なったＳＲＡＭバンクへのアクセス競合は調停により回避する。
一つのＰＥコアが直接接続領域を超えてのＳＲＡＭバンクに同時アクセスしたい場合に効率が低下するが、そのようなケースがレアケースとなるように共有バング数を設定することができるため、ここでの転送効率低下は全体のシステム効率の低下にはあまり関与しないようにできる。
【００２６】
図６は、本実施形態に係る共有メモリ装置の信号経路の接続例を示す図である。
なお、図６においては、理解を容易にするために、各メモリシステムは、４つのメモリバンクにより構成している。
【００２７】
メモリシステムＭ０はメモリバンク１４−０〜１４−３により形成され、メモリシステムＭ１はメモリバンク１４−２〜１４−５により形成され、メモリシステムＭ２はメモリバンク１４−４〜１４−７により形成され、メモリシステムＭ３はメモリバンク１４−６〜１４−９により形成されている。
【００２８】
図６の共有メモリ装置１０Ａは、各ＰＥコア１２−０〜１２−３が４個のメモリバンクにアクセスする経路が存在する。
各ＰＥコア同士は２個ずつのメモリバンクを共有する場合、ＰＥコア１２−ｎがアクセス可能なメモリバンクＭＥＭ（２×ｎ）、ＭＥＭ（２×ｎ＋１）、ＭＥＭ（２×ｎ＋２）、ＭＥＭ（２×ｎ＋３）であり、ＰＥコア１２−ｎと１２−ｎ＋１で共有されるメモリバンクはＭＥＭ（２×ｎ＋２）、ＭＥＭ（２×ｎ＋３）である。
【００２９】
図６の共有メモリ装置１０Ａにおいて、ＤＭＡコントローラ１１は、オーバーラップマルチポート１３を通して全てのメモリバンク１４−０〜１４−９に対してアクセス可能である。
ＰＥコア１２−０は、メモリバンク１４−０〜１４−３に対してアクセス可能である。
ＰＥコア１２−１は、メモリバンク１４−２〜１４−５に対してアクセス可能である。
ＰＥコア１２−２は、メモリバンク１４−４〜１４−７に対してアクセス可能である。
ＰＥコア１２−３は、メモリバンク１４−６〜１４−９に対してアクセス可能である。
【００３０】
本実施形態において、ＰＥコアが最初に処理する外部からのデータ転送は、ＤＭＡコントローラ１１により実現される。
図６において、ＤＭＡ１１を用いたデータ転送方法を説明する。
【００３１】
外部からのデータを特定のメモリバンクに転送または特定のメモリバンクのデータを外部に出力する場合、ＤＭＡコントローラ１１にＰＥコア１２−０〜１２−３から転送要求が入ると、ＤＭＡコントローラ１１は指定されたアドレスへの転送要求を調停回路１５に伝達して、転送許可を待つ。
転送許可が調停回路１５からおりたならば、外部データバスと特定のメモリを接続し、目的のアドレスを順に出力しながら外部データバスに対する転送制御などを行い、外部データバスとメモリの間でデータ伝送を実行する。
【００３２】
次に、ＰＥ間でのデータ共有と転送の例を説明する。
図６において、ＰＥコア１２−０の入力データがメモリバンク１４−０に置かれ、ＰＥコア１２−０はメモリバンク１４−０の内容を読んで処理を行い、メモリバンク１４−２とメモリバンク１４−３に結果を出力する。
有効なデータをメモリバンク１４−２またはメモリバンク１４−３に出力すると、ＰＥコア１２−０はメモリバンク１４−２の特定アドレスＡ−１の有効確認ビットをオンとする。
ＰＥコア１２−１は自分の処理が完了した時点でＰＥコア１２−０がアドレスＡ−１をオンにしているかどうかを検査して、オンであればメモリバンク１４−２またはメモリバンク１４−３からのデータ読み出しと演算処理を開始する。
ＰＥコア１２−１は、メモリバンク１４−２とメモリバンク１４−３に置かれたデータを入力として処理してその出力をメモリバンク１４−４に行う。ＰＥコア１２−２は処理が完了するとＤＭＡコントローラ１１に対して外部へのデータ転送要求を行い、ＤＭＡコントローラ１１はメモリバンク１４−４の有効データを外部バスを経由して出力する。
各ＰＥコア１２−０〜１２−３と各メモリバンクのデータ転送は、各ＰＥコアが調停回路１５にデータ転送要求アドレスを伝達して調停回路１５が他のＰＥコア、ＤＭＡコントローラとの優先順位をround-robin方式で決定して、ＰＥコアに対して転送許可を発行する。
【００３３】
図７は、ＰＥ(n)とＰＥ(n+1)におけるＭＥＭ（メモリバンク）(2n)へのアクセス調停のフローチャートである。
以下に、図７においてＰＥ(n)とＰＥ(n+1)におけるＭＥＭ(2n)へのアクセス調停処理方法を説明する。なお、ここではＰＥコアをＰＥとして記している。
【００３４】
チップのリセット直後スタートからはじまり、まずはＰＥ(n)のＭＥＭ(2n)に対するアクセス要求を確認する(ＳＴ１)。要求がない場合はＰＥ(n+1)のＭＥＭ(2n)へのアクセス要求を確認フェーズに移行する(2)。
ＰＥ(n)のＭＥＭ(2n)に対するアクセス要求があった場合には、ＰＥ(n)にＭＥＭ(2n)に対するアクセス許可を与え、ＰＥ(n+1)にはＭＥＭ(2n)に対するアクセス拒否を行う(ＳＴ２)。
一定の時間をカウントするタイマーに初期値を設定する(ＳＴ３)。タイマーはカウントダウンを開始する。再びＰＥ(n)のＭＥＭ(2n)に対するアクセス要求を確認し、要求がない場合には(2)に移行する。あいかわらずアクセス要求がある場合には、タイマーのカウント値を確認してタイムアウトしていない場合には再びＰＥ(n)のＭＥＭ(2n)に対するアクセス要求確認を繰り返す。タイムアウトしていた場合には(2)に移行する（ＳＴ４，ＳＴ５）。
【００３５】
(2)においても同様な処理を行う。ＰＥ(n+1)のＭＥＭ(2n)に対するアクセス要求を確認する（ＳＴ６）。要求がない場合はＰＥ(n)のＭＥＭ(2n)へのアクセス要求を確認フェーズに移行する(スタート)。
ＰＥ(n+1)のＭＥＭ(2n)に対するアクセス要求があった場合には、ＰＥ(n+1)にＭＥＭ(2n)に対するアクセス許可を与え、ＰＥ(n)にはＭＥＭ(2n)に対するアクセス拒否を行う(ＳＴ７)。
一定の時間をカウントするタイマーに初期値を設定する(ＳＴ８)。タイマーはカウントダウンを開始する。再びＰＥ(n+1)のＭＥＭ(2n)に対するアクセス要求を確認し、要求がない場合には(スタート)に移行する。あいかわらずアクセス要求がある場合には、タイマーのカウント値を確認してタイムアウトしていない場合には再びＰＥ(n+1)のＭＥＭ(2n)に対するアクセス要求確認を繰り返す。タイムアウトしていた場合には(スタート)に移行する（ＳＴ９，ＳＴ１０）。
【００３６】
図８は、一つのメモリバンクに３つ以上のＰＥコアがアクセス可能な場合の共有メモリ装置を示す図である。
次に、一つのメモリバンクに３つ以上のＰＥコアがアクセス可能な場合を説明する。
この例の共有メモリ装置１０Ｂでは、メモリシステムＭ０が６つのメモリバンク１４−０〜１４−５により形成されている。
【００３７】
メモリユニット（メモリバンク）側から見たアクセス可能なＰＥコアなどの演算ユニットの数は均一である必要はない。
この図８では、ＰＥコア１２−０はメモリバンク１４−０〜１４−５にアクセス可能である。
メモリバンク１４−１はＰＥコア１２−０，１２−１，１２−２の３つのＰＥコアからアクセス可能である。
メモリバンク１４−６は、ＰＥコア１４−２,１４−３からアクセス可能である。
このようにして、一つのメモリバンクなどのメモリユニットは、互いに二つずつのＰＥコアからのみアクセスされるような単一のオーバーラップ様式だけではない。
ここでは、ＰＥコアなどの処理ユニットが４個でメモリユニットが１０個の場合を示したが処理ユニットの数とメモリユニットの数を特定するものではなく、ここではあくまでも特定の数での例を示した。
【００３８】
図９は、部分共有マルチポート機構PEの階層単位増設方法を説明するための図である。  次に、ＤＭＡ転送のネックとなった場合の階層単位での増設方法を説明する。
【００３９】
ＰＥコア同士でのデータ転送に関しては、大量のデータ転送がぶつかることでの性能低下は大幅に減らすことが可能であるが、外部とメモリの間でのデータ転送はＰＥコアが複数の機能を同時に処理している場合には衝突する確率が増大する。
そのような場合には、図８に示すように、ＰＥアレーを階層化することにより対処する。
図５の基本構成と同様に、ＰＥアレーを１６個とＤＭＡコントローラ１個をひとつの階層としてＡＸＩバス(Advanced eXtensible Interfaceバス）２０を経由して接続するメモリ装置１００を構成する。
このようなAXIの階層が少しでもはいらないようにすることは重要であり、本発明では、この階層を極力減らすことに寄与するものである。
【００４０】
図１０は、メモリバンク上に物理的にバス配線をマッピングしたメモリ（以下、バスマッピングメモリと略す）における構成を示す図である。
図１１および図１２は、バスマッピングメモリにおける配線構成例を示す図であって、図１１はリード系の配線構成例を、図１２はライト系の配線構成例を示している。
【００４１】
次に、バスマッピングメモリの構成とアクセス可能な範囲について、図１０に関連付けて説明する。
【００４２】
一つ以上のバンクから構成されるメモリシステムＭ００〜Ｍ１５を構成単位（図のメモリバンク）として、メモリシステム上にバスを構成する。このバスはメモリ上の未使用配線層を利用して構成することになる。
このメモリシステムをメモリインタフェース（Ｉ／Ｆ）ＩＦ００〜ＩＦ０７を中心に対称に配置する。ＰＥコアはこのメモリシステムＭ００〜Ｍ１５の外側の両サイドに配置する。このＰＥ×２＋メモリシステム（バンク）×２＋メモリＩ／Ｆが最小構成になる。
このシステムは完全スケーラブルで、横方向に無限に拡張できる。図１０は最小構成を８個並べて構成した、１６ＰＥ(PE00〜PE15)のシステム例である。
【００４３】
メモリシステムＭ００，Ｍ０２，Ｍ０４，Ｍ０６，Ｍ０８，Ｍ１０，Ｍ１２，Ｍ１４は図１０中に設定した直交座標系のＸ方向（第２方向）に並列に配置されている。
同様に、メモリシステムＭ０１，Ｍ０３，Ｍ０５，Ｍ０７，Ｍ０９，Ｍ１１，Ｍ１３，Ｍ１５は図１０中に設定した直交座標系のＸ方向（第２方向）に並列に配置されている。
【００４４】
そして、図１０中に設定した直交座標系のＹ方向(第１方向)に、メモリＩ／ＦＩＦ００を挟んでメモリシステムＭ００とＭ０１が配置され、さらにメモリシステムＭ００のＹ方向に隣接してＰＥ００が配置され、メモリシステムＭ０１のＹ方向に隣接してＰＥ０１が配置されている。なお、ＩＦ００はメモリシステムＭ００とＭ０１とで共用するように構成することが可能である。
【００４５】
直交座標系のＹ方向(第１方向)に、メモリＩ／ＦＩＦ０１を挟んでメモリシステムＭ０２とＭ０３が配置され、さらにメモリシステムＭ０２のＹ方向に隣接してＰＥ０２が配置され、メモリシステムＭ０３のＹ方向に隣接してＰＥ０３が配置されている。なお、ＩＦ０１はメモリシステムＭ０２とＭ０３とで共用するように構成することが可能である。
【００４６】
直交座標系のＹ方向(第１方向)に、メモリＩ／ＦＩＦ０２を挟んでメモリシステムＭ０４とＭ０５が配置され、さらにメモリシステムＭ０４のＹ方向に隣接してＰＥ０４が配置され、メモリシステムＭ０５のＹ方向に隣接してＰＥ０５が配置されている。なお、ＩＦ０２はメモリシステムＭ０４とＭ０５とで共用するように構成することが可能である。
【００４７】
直交座標系のＹ方向(第１方向)に、メモリＩ／ＦＩＦ０３を挟んでメモリシステムＭ０６とＭ０７が配置され、さらにメモリシステムＭ０６のＹ方向に隣接してＰＥ０６が配置され、メモリシステムＭ０７のＹ方向に隣接してＰＥ０７が配置されている。なお、ＩＦ０３はメモリシステムＭ０６とＭ０７とで共用するように構成することが可能である。
【００４８】
直交座標系のＹ方向(第１方向)に、メモリＩ／ＦＩＦ０４を挟んでメモリシステムＭ０８とＭ０９が配置され、さらにメモリシステムＭ０８のＹ方向に隣接してＰＥ０８が配置され、メモリシステムＭ０９のＹ方向に隣接してＰＥ０９が配置されている。なお、ＩＦ０４はメモリシステムＭ０８とＭ０９とで共用するように構成することが可能である。
【００４９】
直交座標系のＹ方向(第１方向)に、メモリＩ／ＦＩＦ０５を挟んでメモリシステムＭ１０とＭ１１が配置され、さらにメモリシステムＭ１０のＹ方向に隣接してＰＥ１０が配置され、メモリシステムＭ１１のＹ方向に隣接してＰＥ１１が配置されている。なお、ＩＦ０５はメモリシステムＭ１０とＭ１１とで共用するように構成することが可能である。
【００５０】
直交座標系のＹ方向(第１方向)に、メモリＩ／ＦＩＦ０６を挟んでメモリシステムＭ１２とＭ１３が配置され、さらにメモリシステムＭ１２のＹ方向に隣接してＰＥ１２が配置され、メモリシステムＭ１３のＹ方向に隣接してＰＥ１３が配置されている。なお、ＩＦ０６はメモリシステムＭ１２とＭ１３とで共用するように構成することが可能である。
【００５１】
直交座標系のＹ方向(第１方向)に、メモリＩ／ＦＩＦ０７を挟んでメモリシステムＭ１４とＭ１５が配置され、さらにメモリシステムＭ１４のＹ方向に隣接してＰＥ１４が配置され、メモリシステムＭ１５のＹ方向に隣接してＰＥ１５が配置されている。なお、ＩＦ０７はメモリシステムＭ１４とＭ１５とで共用するように構成することが可能である。
【００５２】
次にアクセス範囲について図１０をもとに説明する。
各ＰＥは自ＰＥの縦方向（Ｙ方向、第１方向）のメモリバンクと左右の隣接メモリバンクにアクセス可能である。したがって、直接アクセス可能なメモリバンクは横方向(Ｘ方向、第２方向)の両端のＰＥ００，ＰＥ０１，ＰＥ１４，ＰＥ１５では４、それ以外ＰＥ０２〜ＰＥ１３は６となる。
これ以外のメモリシステムのメモリバンクへは共通の横バスＣＢＳＬを使ってアクセスする。共通の横バスＣＢＳＬへのアクセスはＤＭＡコントローラを用いてもよい。この共通の横バスＣＢＳＬを使うことにより、間接的に全メモリバンクに対してアクセスが可能である。
共通の横バスＣＢＳＬを使う場合は、全ＰＥ００〜ＰＥ１５からアクセスが集中するので、バス帯域が限られる。
しかしながら、多数のＰＥで構成されるマルチ（メニー）プロセッサ環境では各ＰＥが全ての領域をアクセスすることはレアケースで、各ＰＥに割り当てられたタスクを処理するために、限定された領域をアクセスすることが大部分である。
したがって、本構成はマルチプロセッサ環境の特徴を活かして、スケーラビリティと配線資源の使用を抑えることができるシステムといえる。
【００５３】
続いて、バスマッピングメモリにおける配線構成を図１１および図１２に関連付けて説明する。
【００５４】
前述の通り、メモリシステム（メモリバンク）上にバスを配置した構成をとっている。各メモリシステム（バンク）上の配線は偶数バンク（even bank）と奇数（odd bank）の２種類のメモリシステム（メモリバンク）から構成される。
下層のメモリ部分は共通であるが、上層のバス部分で“even”と“odd”に区別される。この２種類のバンクは横方向に交互に配置される。
“even”と“odd”の違いは横方向の配線をどこに配置するかで異なる。前述の通り本システムでは横方向（Ｘ方向）への隣接バンクへのアクセスが可能であるが、横方向へデータを渡すバスを同じ位置に配置するとバスが衝突する。このため、“even”と“odd”の２種類を用意して、交互に配置すればバスは衝突しない。
【００５５】
以上は基本構成であるが、バスの配線方法によって様々なバリエーションが考えられる。
たとえば、メモリI/Fの反対側へアクセスする場合はバスを共通化したシステムである。この場合、配線領域が減る。
たとえば、図１１および図１２に示すように、リード（read）系,ライト（write）系を複数系統持たせたシステムを実現可能である。この場合、バス性能が向上する。
図１１において、３０はセレクタ、４０はリードポート、５０はライトポート、６０はデータフローをそれぞれ示している。
本発明を適用するシステムのコスト、要求性能に応じたバリエーションが適用可能である。
【００５６】
以上説明したように、本実施形態によれば、複数のＰＥ（処理装置）１２−０〜１２−１５と、処理装置によりアクセス可能な複数のメモリモジュール１４−０〜１４−６３と、複数の処理装置のうち、特定の処理装置のみが特定のメモリモジュールに接続可能な接続部１３と、を有し、複数の処理装置は、接続部を介して一または複数のメモリモジュールにより形成されるメモリシステムＭ０〜Ｍ１５をアクセス可能で、異なる処理装置によりアクセス可能なメモリシステムは、異なる処理装置でアクセスされるメモリモジュールを一部共有し、さらに、同じメモリモジュールに同時に複数の処理装置からアクセス要求があった場合には優先順位付け処理を実行し、その優先順位に従いアクセス制御を行う調停回路１５を有することから、次のような効果が実現可能となっている。
【００５７】
各ＰＥが利用する作業用メモリモジュール（Memory Module）を使ってそのままＰＥ間のデータ転送に利用することで、通信のためのメモリモジュールを削減可能である。
メモリへのアクセス（Access）方向を変更するのみであり、通信時間が限りなくゼロになる。
ＰＥ数が増加してもＰＥとメモリ間の接続資源の量はＰＥの数にリニアに増加するため、必要なだけのＰＥを簡単にスケーラブル(Scalable)に増設可能である。
全てのＰＥが全てのメモリモジュールに接続可能とすることは資源を使ったわりには効果は少ないが、本実施形態では、限定的なＰＥ間のアクセス調停になるため、同一メモリへのアクセス競合調停が簡素になる。
【００５８】
また、バスマッピングメモリに本発明を適用しても、効果は同様に有効である。すなわち以下の特徴を有する。
完全にスケーラブルである。
ＰＥが増えるに従い大きく増大する配線量、消費電力を抑えられる。
ＰＥ数が増えても周波数が低下しない。
【図面の簡単な説明】
【００５９】
【図１】マルチプロセッサの一般的なアーキテクチャを示す図である。
【図２】クロスバーを用いたアーキテクチャを示す図である。
【図３】ＰＥ増設の課題を説明するための図である。
【図４】ＰＥを増加させる場合のデータ転送路の増大を抑えるためにポートを用いた構成例を示す図である。
【図５】本発明の実施形態に係る共有メモリ装置のシステム構成図である。
【図６】本実施形態に係る共有メモリ装置の信号経路の接続例を示す図である。
【図７】ＰＥ(n)とＰＥ(n+1)におけるＭＥＭ（メモリバンク）(2n)へのアクセス調停のフローチャートである。
【図８】一つのメモリバンクに３つ以上のＰＥコアがアクセス可能な場合の共有メモリ装置を示す図である。
【図９】部分共有マルチポート機構PEの階層単位増設方法を説明するための図である。
【図１０】メモリバンク上に物理的にバス配線をマッピングしたメモリ（バスマッピングメモリ）における構成を示す図である。
【図１１】バスマッピングメモリにおける配線構成例を示す図であって、リード系の配線構成例を示す図である。
【図１２】バスマッピングメモリにおける配線構成例を示す図であって、ライト系の配線構成例を示す図である。
【符号の説明】
【００６０】
１０，１０Ａ，１０Ｂ・・・共有メモリ装置、１１・・・ＤＭＡコントローラ、１２−０〜１２−１５・・・ＰＥコア（処理装置）、１３・・・一部重なりマルチポートおよびシフト冗長回路、１４−０〜１４−６３・・・メモリバンク（メモリモジュール）、１５・・・調停回路、２０・・・ＡＸＩバス、１００・・・メモリ装置、Ｍ０〜Ｍ１５、Ｍ００〜Ｍ１５・・・・メモリシステム、ＩＦ００〜ＩＦ０７・・・メモリインタフェース。
【図１】
2008077152.tif 000003
【図２】
2008077152.tif 000004
【図３】
2008077152.tif 000005
【図４】
2008077152.tif 000006
【図５】
2008077152.tif 000007
【図６】
2008077152.tif 000008
【図７】
2008077152.tif 000009
【図８】
2008077152.tif 000010
【図９】
2008077152.tif 000011
【図１０】
2008077152.tif 000012
【図１１】
2008077152.tif 000013
【図１２】
2008077152.tif 000014