(57)【要約】【課題】高速読み取りが可能であって、かつ、局所メモリ間のデータの不整合を防止すること。【解決手段】第１のプロセッシングエレメントと、その局所メモリである第1のメモリと、第１のプロセッシングエレメントとバスを介して接続された第２のプロセッシングエレメントと、その局所メモリである第２のメモリと、第1及び第２のメモリを含む共有メモリの論理アドレス空間において、１つの論理アドレスに対し、第1及び第２のメモリの物理アドレスが対応付けられた仮想的な共有メモリ領域と、第１のプロセッシングエレメントから前記仮想的な共有メモリ領域に対して書き込みアクセス要求があった場合、第２のプロセッシングエレメントからの前記仮想的な共有メモリ領域に対する書き込みアクセス要求の状況に応じて、第１のプロセッシングエレメントのアクセスを保留にするアービタと、を備える分散共有メモリ型マルチプロセッサ。【選択図】図１
2010055440.tif 000002
【特許請求の範囲】
【請求項１】
第１のプロセッシングエレメントと、
前記第１のプロセッシングエレメントの局所メモリである第1のメモリと、
前記第１のプロセッシングエレメントとバスを介して接続された第２のプロセッシングエレメントと、
前記第２のプロセッシングエレメントの局所メモリである第２のメモリと、
前記第1及び第２のメモリを含む共有メモリの論理アドレス空間において、１つの論理アドレスに対し、前記第1及び第２のメモリの物理アドレスが対応付けられた仮想的な共有メモリ領域と、
前記第１のプロセッシングエレメントから前記仮想的な共有メモリ領域に対して書き込みアクセス要求があった場合、前記第２のプロセッシングエレメントからの前記仮想的な共有メモリ領域に対する書き込みアクセス要求の状況に応じて、前記第１のプロセッシングエレメントのアクセスを保留にするアービタと、を備える分散共有メモリ型マルチプロセッサ。
【請求項２】
前記アービタは、前記第１のプロセッシングエレメントからアクセス要求があった前記仮想的な共有メモリ領域内のアドレスと、前記第２のプロセッシングエレメントからアクセス要求があった前記仮想的な共有メモリ領域内のアドレスとが一致した場合、前記第１のプロセッシングエレメントのアクセスを保留にすることを特徴とする請求項１に記載の分散共有メモリ型マルチプロセッサ。
【請求項３】
前記アービタは、
前記第１のプロセッシングエレメントからアクセス要求があった前記仮想的な共有メモリ領域内のアドレスを登録する第１のアドレスバッファと、
前記第２のプロセッシングエレメントからアクセス要求があった前記仮想的な共有メモリ領域内のアドレスを登録する第２のアドレスバッファと、を備えることを特徴とする請求項２に記載の分散共有メモリ型マルチプロセッサ。
【請求項４】
前記第１及び第２のアドレスバッファは、それぞれ複数のアドレスバッファからなることを特徴とする請求項３に記載の分散共有メモリ型マルチプロセッサ。
【請求項５】
前記第１及び第２のプロセッシングエレメントからのアクセス要求のうち少なくとも一方が、ロックを伴う場合、前記アドレスが一致したものみなすことを特徴とする請求項２〜４のいずれか一項に記載の分散共有メモリ型マルチプロセッサ。
【請求項６】
第１のプロセッシングエレメントと、
前記第１のプロセッシングエレメントの局所メモリである第1のメモリと、
前記第１のプロセッシングエレメントとバスを介して接続された第２のプロセッシングエレメントと、
前記第２のプロセッシングエレメントの局所メモリである第２のメモリと、
前記第1及び第２のメモリを含む共有メモリの論理アドレス空間において、１つの論理アドレスに対し、前記第1及び第２のメモリの物理アドレスが対応付けられた仮想的な共有メモリ領域と、を備える分散共有メモリ型マルチプロセッサのデータ処理方法であって、
前記第１のプロセッシングエレメントから前記仮想的な共有メモリ領域に対して書き込みアクセス要求があった場合、前記第２のプロセッシングエレメントからの書き込みアクセス要求の状況に応じて、前記第１のプロセッシングエレメントのアクセスを保留にするデータ処理方法。
【請求項７】
前記第１のプロセッシングエレメントからアクセス要求があった前記仮想的な共有メモリ領域内のアドレスと、前記第２のプロセッシングエレメントからアクセス要求があった前記仮想的な共有メモリ領域内のアドレスとが一致した場合、前記第１のプロセッシングエレメントのアクセスを保留にすることを特徴とする請求項６に記載のデータ処理方法。
【請求項８】
前記第１及び第２のプロセッシングエレメントからのアクセス要求のうち少なくとも一方が、ロックを伴う場合、前記アドレスが一致したものとすることを特徴とする請求項７に記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散共有メモリ型マルチプロセッサ及びそのデータ処理方法に関する。
【背景技術】
【０００２】
近年、単一のプロセッサでの処理速度には限界が見え始め、複数のプロセッサが並列処理を行うマルチプロセッサが脚光を浴び、すでに実用化されている。マルチプロセッサは、通常、複数のプロセッサが互いにアクセス可能な共有メモリを備えている。このようなマルチプロセッサは共有メモリ型マルチプロセッサと呼ばれる。また、共有メモリ型マルチプロセッサは、複数のプロセッサが１つの共有メモリに接続された集中共有メモリ型と、複数のプロセッサがそれぞれ局所メモリを備える分散共有メモリ型とに大別される。
【０００３】
図６は本発明の課題を説明するための図であって、分散共有メモリ型マルチプロセッサの模式図である。ＣＰＵを備えるプロセッサエレメントＰＥ１及びＰＥ２は各々局所メモリＬＭ１及びＬＭ２を備えている。また、プロセッサエレメントＰＥ１とプロセッサエレメントＰＥ２とは、バスを介して接続されている。そのため、プロセッサエレメントＰＥ１は局所メモリＬＭ２にもアクセスすることができ、プロセッサエレメントＰＥ２は局所メモリＬＭ１にもアクセスすることができる。
【０００４】
従って、局所メモリＬＭ１及びＬＭ２は、２つのプロセッサエレメントＰＥ１及びＰＥ２に共有され、１つの論理アドレス空間に配置されている。このような分散共有メモリ型マルチプロセッサでは、自己の局所メモリに対しては、高速にアクセスすることができる。一方、他のプロセッサエレメントの局所メモリに対しては、多段のブリッジを経由するため、アクセスに時間が掛かる。ここで、書き込みはポステッド・ライトによりある程度高速化されているため、読み取りに要する時間が特に問題となる。
【０００５】
これに対し、特許文献１には、論理アドレス空間にブロードキャスト領域を定義した分散共有メモリ型マルチプロセッサが開示されている。ブロードキャスト領域は、各プロセッサエレメントからは同一のアドレス領域として認識される領域である。他方、実体は、各局所メモリにおいて同一のデータが格納された領域である。ブロードキャスト領域に対する書き込み要求があった場合、各局所メモリに同一のデータが書き込まれる。また、ブロードキャスト領域に対する読み取り要求があった場合、自己の局所メモリからデータが読み取られる。そのため、高速読み取りが可能となる。
【特許文献１】特開平５−２９００００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示された分散共有メモリ型マルチプロセッサでは、自己の局所メモリへの書き込み完了と、他のプロセッサの局所メモリへの書き込み完了のタイミングがずれる。そのため、同一であるべき各局所メモリのデータに不整合が生じる恐れがあった。
【０００７】
例えば、ブロードキャスト領域の同一アドレスに対し、プロセッサエレメントＰＥ１からの書き込み要求と、プロセッサエレメントＰＥ２からの書き込み要求とがほぼ同時にあった場合を考える。その場合、プロセッサエレメントＰＥ１の要求は、まず局所メモリＬＭ１に到達し、次に局所メモリＬＭ２に到達する。また、プロセッサエレメントＰＥ２の要求は、まず局所メモリＬＭ２に到達し、次に局所メモリＬＭ１に到達する。
【０００８】
そのため、局所メモリＬＭ１へは、まずプロセッサエレメントＰＥ１により書き込まれ、次にプロセッサエレメントＰＥ２により書き変えられる。一方、局所メモリＬＭ２へは、まずプロセッサエレメントＰＥ２により書き込まれ、次にプロセッサエレメントＰＥ１により書き変えられる。従って、局所メモリＬＭ１とＬＭ２とに書き込まれたデータに不整合が生じることになる。
【０００９】
なお、上記の場合、メモリインターフェースＭＩＦ１及びＭＩＦ２では、各プロセッサエレメントからの書き込み要求は競合していない。そのため、上記のデータ不整合は、メモリインターフェースＭＩＦ１及びＭＩＦ２が備えるアービタ（不図示）により防止することはできない。
【課題を解決するための手段】
【００１０】
本発明の一態様は、
第１のプロセッシングエレメントと、
前記第１のプロセッシングエレメントの局所メモリである第1のメモリと、
前記第１のプロセッシングエレメントとバスを介して接続された第２のプロセッシングエレメントと、
前記第２のプロセッシングエレメントの局所メモリである第２のメモリと、
前記第1及び第２のメモリを含む共有メモリの論理アドレス空間において、１つの論理アドレスに対し、前記第1及び第２のメモリの物理アドレスが対応付けられた仮想的な共有メモリ領域と、
前記第１のプロセッシングエレメントから前記仮想的な共有メモリ領域に対して書き込みアクセス要求があった場合、前記第２のプロセッシングエレメントからの前記仮想的な共有メモリ領域に対する書き込みアクセス要求の状況に応じて、前記第１のプロセッシングエレメントのアクセスを保留にするアービタと、を備える分散共有メモリ型マルチプロセッサである。
【発明の効果】
【００１１】
本発明によれば、高速読み取りが可能であって、かつ、局所メモリ間のデータの不整合を防止した分散共有メモリ型マルチプロセッサを提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。ただし、本発明が以下の実施の形態に限定される訳ではない。また、説明を明確にするため、以下の記載及び図面は、適宜、簡略化されている。
【００１３】
実施の形態１
以下、図面を参照して本発明の実施形態について説明する。図１は、実施の形態１に係る分散共有メモリ型マルチプロセッサのブロック図である。図１に示すように、実施の形態１に係るマルチプロセッサは、プロセッサエレメントＰＥ１、プロセッサエレメントＰＥ２、局所メモリＬＭ１、局所メモリＬＭ２、同期ウィンドウアービタ１００を備えている。なお、当該実施の形態は、複数のマルチプロセッサと、各マルチプロセッサの局所メモリを備えた分散共有メモリ型マルチプロセッサを代表する例であって、マルチプロセッサ及び局所メモリの数が２つに限定されないことは言うまでもない。
【００１４】
プロセッサエレメントＰＥ１は、ＣＰＵ１、ＲＡＭインターフェースＭＩＦ１１、ＰＥ間ＲＡＭインターフェースＭＩＦ１２を備えている。ＣＰＵ１は、バスを介して、ＲＡＭインターフェースＭＩＦ１１及びＰＥ間ＲＡＭインターフェースＭＩＦ１２に接続されている。ＲＡＭインターフェースＭＩＦ１１は、バスを介して、プロセッサエレメントＰＥ１のローカルＲＡＭである局所メモリＬＭ１に接続されている。そのため、ＣＰＵ１は局所メモリＬＭ１にアクセスすることができる。
【００１５】
プロセッサエレメントＰＥ２は、ＣＰＵ２、ＲＡＭインターフェースＭＩＦ２１、ＰＥ間ＲＡＭインターフェースＭＩＦ２２を備えている。ＣＰＵ２は、バスを介して、ＲＡＭインターフェースＭＩＦ２１及びＰＥ間ＲＡＭインターフェースＭＩＦ２２に接続されている。ＲＡＭインターフェースＭＩＦ２１は、バスを介して、プロセッサエレメントＰＥ２のローカルＲＡＭである局所メモリＬＭ２に接続されている。そのため、ＣＰＵ２は局所メモリＬＭ２にアクセスすることができる。
【００１６】
また、プロセッサエレメントＰＥ１のＰＥ間ＲＡＭインターフェースＭＩＦ１２とプロセッサエレメントＰＥ２のＲＡＭインターフェースＭＩＦ２１とは、バスを介して接続されている。そのため、ＣＰＵ１は局所メモリＬＭ２にもアクセスすることができる。一方、プロセッサエレメントＰＥ２のＰＥ間ＲＡＭインターフェースＭＩＦ２２とプロセッサエレメントＰＥ１のＲＡＭインターフェースＭＩＦ１１も、バスを介して接続されている。そのため、ＣＰＵ２は局所メモリＬＭ１にもアクセスすることができる。
【００１７】
このように、局所メモリＬＭ１及びＬＭ２は、２つのプロセッサエレメントＰＥ１及びＰＥ２に共有され、１つの論理アドレス空間に配置されている。また、実施の形態１に係る分散共有メモリ型マルチプロセッサは、論理アドレス空間に各プロセッサエレメントＰＥ１、ＰＥ２から同一のアドレス領域として認識される仮想的な共有メモリ領域を備えている。本明細書では、当該領域を同期ウィンドウ領域と呼ぶ。なお、当該領域は特許文献１では、ブロードキャスト領域と呼ばれていたものである。
【００１８】
同期ウィンドウ領域の実体は、各局所メモリにおいて同一のデータが格納される領域である。同期ウィンドウ領域に対する書き込み要求があった場合、各局所メモリに同一のデータが書き込まれる。また、同期ウィンドウ領域に対する読み取り要求があった場合、自己の局所メモリからデータが読み取られる。そのため、高速読み取りが可能となる。
【００１９】
ここで、図２を用いて、同期ウィンドウ領域についてさらに詳細に説明する。図２（ａ）は実施の形態１に係る分散共有メモリ型マルチプロセッサにおける共有メモリのメモリマップイメージである。図２（ａ）に示すように、メモリマップには、プロセッサエレメントＰＥ１のローカルＲＡＭである局所メモリＬＭ１のメモリ領域（図中、ＰＥ１−ＲＡＭ）と、プロセッサエレメントＰＥ２のローカルＲＡＭである局所メモリＬＭ２のメモリ領域（図中、ＰＥ２−ＲＡＭ）に加え、同期ウィンドウ領域が定義されている。
【００２０】
図２（ａ）では、これら３つの領域の容量は、いずれも２ＭＢである。また、同期ウィンドウ領域は、論理アドレスＦＥＥ０００００〜ＦＥＦＦＦＦＦＦにより指定されている。局所メモリ領域ＰＥ１−ＲＡＭは、論理アドレスＦＥＣ０００００〜ＦＥＤＦＦＦＦＦにより指定されている。局所メモリ領域ＰＥ２−ＲＡＭは、論理アドレスＦＥＡ０００００〜ＦＥＢＦＦＦＦＦにより指定されている。
【００２１】
図２（ｂ）は、プロセッサエレメントＰＥ１からライト要求があった場合のイメージ図である。例えば、プロセッサエレメントＰＥ１から同期ウィンドウ領域の論理アドレスＦＥＥ００１００へのライト要求があった場合、局所メモリ領域ＰＥ１−ＲＡＭ及び局所メモリ領域ＰＥ２−ＲＡＭの物理アドレス００１００へ、同一データが書き込まれる。なお、プロセッサエレメントＰＥ２からのライト要求の場合も同様である。
【００２２】
図２（ｃ）は、プロセッサエレメントＰＥ１からリード要求があった場合のイメージ図である。例えば、プロセッサエレメントＰＥ１から同期ウィンドウ領域の論理アドレスＦＥＥ００１００へのリード要求があった場合、自己の局所メモリ領域ＰＥ１−ＲＡＭの物理アドレス００１００から読み取る。なお、プロセッサエレメントＰＥ２からのリード要求の場合も同様に、自己の局所メモリ領域ＰＥ２−ＲＡＭから読み取る。
【００２３】
同期ウィンドウアービタ１００は、プロセッサエレメントＰＥ１からの書き込みアクセスと、プロセッサエレメントＰＥ２からの書き込みアクセスとを、調停する役割を担っている。なお、読み取りアクセスの場合、各プロセッサエレメントは自己の局所メモリにアクセスするのみであるから調停は不要である。同期ウィンドウアービタ１００は、ＰＥ１制御部１１０、ＰＥ２制御部１２０を備える。また、ＰＥ１制御部１１０、ＰＥ２制御部１２０は各々ＰＥ１アドレスバッファ１１１、ＰＥ２アドレスバッファ１２１を備える。
【００２４】
図１を用いてプロセッサエレメントＰＥ１から書き込みアクセス要求があった場合の動作について説明する。書き込みアクセスの場合、アクセス要求が、ＲＡＭインターフェースＭＩＦ１１から同期ウィンドウアービタ１００のＰＥ１制御部１１０へ入力される。また、対象アドレス、ロック要求、アクセス種別（リード／ライト）などのアクセス情報も、ＲＡＭインターフェースＭＩＦ１１から同期ウィンドウアービタ１００のＰＥ１制御部へ入力される。ここで、対象アドレスはＰＥ１アドレスバッファ１１１に登録される。なお、読み取りアクセスのみの場合、ＲＡＭインターフェースＭＩＦ１１からアクセス要求は出力されないが、リードモディファイライトのような、読み取りと書込みが混在したアトミックアクセスの場合は、アクセス要求を出力する。
【００２５】
同期ウィンドウアービタ１００は、アクセス要求アドレスと同じアドレスがＰＥ２アドレスバッファ１２１に登録されていなければ、直ちに、プロセッサエレメントＰＥ１に対してアクセス許可を出力する。一方、アクセス要求アドレスと同じアドレスがＰＥ２アドレスバッファ１２１に登録されていれば、ＰＥ２アドレスバッファ１２１が開放されてから、プロセッサエレメントＰＥ１に対してアクセス許可を出力する。すなわち、先のアクセス要求が優先される。このアクセス許可は、ＲＡＭインターフェースＭＩＦ１１及びＰＥ間ＲＡＭインターフェースＭＩＦ１２に入力される。
【００２６】
そして、プロセッサエレメントＰＥ１のＰＥ間ＲＡＭインターフェースＭＩＦ１２からアクセス完了通知が入力されると、ＰＥ１アドレスバッファ１１１を開放する。プロセッサエレメントＰＥ２からのアクセス要求があった場合についても同様である。なお、プロセッサエレメントＰＥ１及びＰＥ２から同時にアクセス要求があった場合、所定の取り決めによりアクセス順序を決定すればよい。本実施の形態では、前回許可されたプロセッサエレメントが待たされる。
【００２７】
以上のように、各プロセッサエレメントからの書き込みアクセスは、同期ウィンドウアービタ１００に許可を得てから行われる。そのため、同一であるべきデータに不整合が生じることがない。
【００２８】
図３は、同期ウィンドウアービタ１００の詳細なブロック図である。同期ウィンドウアービタ１００は、ＰＥ１制御部１１０、ＰＥ２制御部１２０、ＰＥ間制御部１３０を備えている。また、ＰＥ１制御部１１０は、アドレスバッファ１１１、アクセス許可制御部１１２、保留判定部１１３、アドレスバッファ制御部１１４、比較器１１５を備えている。
【００２９】
アクセス許可制御部１１２は、保留判定部１１３及びアドレスバッファ制御部１１４と接続されている。アドレスバッファ制御部１１４はアドレスバッファ１１１に接続されている。図３では、アドレスバッファ１１１は３つ設けられている。また、比較器１１５も３つ設けられている。そして、各アドレスバッファ１１１が１つの比較器１１５に接続されている。アドレスバッファの段数は、ＰＥ間ＲＡＭインターフェースＭＩＦ１２、２２の有するバッファ段数と同数にするのが好ましい。また、３つに限定されるものではないが、複数のアドレスを登録可能とするために、複数段であることが好ましい。なお、ＰＥ２制御部１２０の詳細は、ＰＥ１制御部１１０と同様であるため、省略されている。
【００３０】
図３を用いて、同期ウィンドウアービタ１００の動作の詳細について説明する。最初に、プロセッサエレメントＰＥ１からのアクセス要求とプロセッサエレメントＰＥ２からのアクセス要求が同時でない場合について説明する。ロック（ｌｏｃｋ）を伴うアクセスについては後述する。プロセッサエレメントＰＥ１からのアクセス要求とプロセッサエレメントＰＥ２からのアクセス要求が同時でないため、ＰＥ間制御部１３０は関与しない。
【００３１】
まず、プロセッサエレメントＰＥ１からのアクセス要求信号とともに、リード／ライト信号、アドレス（ａｄｄｒｅｓｓ）信号が、ＰＥ１制御部１１０に入力される。アクセス要求はアクセス許可制御部１１２に入力される。リード／ライト信号は、アクセス許可制御部１１２及びアドレスバッファ制御部に入力される。アドレス信号は、アドレスバッファ１１１に入力される。また、このアドレス信号（ＰＥ１アドレス信号）はプロセッサエレメントＰＥ２にも入力される。
【００３２】
アクセス要求がアクセス許可制御部１１２に入力されると、アクセス許可制御部１１２は、アドレスバッファ制御部１１４及び保留判定部１１３に対し、バッファセット信号を出力する。バッファセット信号に基づき、アドレスバッファ制御部１１４はバッファ登録信号（ＰＥ１バッファ登録信号）をアドレスバッファ１１１に対して出力する。これにより、要求アドレスがアドレスバッファ１１１に登録される。また、アドレスバッファ制御部１１４から出力されたＰＥ１バッファ登録信号は、プロセッサエレメントＰＥ２の保留判定部１１３にも入力され、プロセッサエレメントＰＥ２における保留判定に用いられる。
【００３３】
他方、バッファセット信号がトリガーとなって、保留判定部１１３は、プロセッサエレメントＰＥ２から入力されるＰＥ２アドレス一致信号、ＰＥ２バッファ登録信号、ＰＥ２バッファ開放信号に基づいて、「許可」又は「保留」の保留判定信号を生成する。具体的には、プロセッサエレメントＰＥ２のアドレスバッファ１２１に登録されたアドレスとＰＥ１からのアクセス要求アドレスが一致している場合、「保留」となり、それ以外の場合は「許可」となる。この信号がアクセス許可制御部１１２に入力される。アクセスが許可されると、アクセス許可制御部１１２はアクセス許可信号をプロセッサエレメントＰＥ１に対して出力する。また、アクセス許可制御部１１２は許可状態通知をＰＥ間制御部１３０に対して出力する。
【００３４】
両方の局所メモリへのアクセスが完了すると、ＰＥ１からアクセス完了通知がアドレスバッファ制御部１１４へ入力される。アクセス完了通知に基づき、アドレスバッファ制御部１１４はバッファ開放信号（ＰＥ１バッファ開放信号）をアドレスバッファに対して出力する。これにより、アドレスが登録さていたアドレスバッファ１１１が開放される。また、アドレスバッファ制御部１１４から出力されたＰＥ１バッファ開放信号は、プロセッサエレメントＰＥ２の保留判定部１１３にも入力され、プロセッサエレメントＰＥ２における保留判定に用いられる。
【００３５】
アドレスバッファ１１１に登録されたアドレスは、比較器１１５に入力される。比較器１１５は、プロセッサエレメントＰＥ２のアクセス要求があった場合、そのアドレス（ＰＥ２アドレス信号）とアドレスバッファ１１１に登録されたアドレスとを比較して、ＰＥ１アドレス一致信号を生成する。この信号はプロセッサエレメントＰＥ２の保留判定部１１３に入力され、プロセッサエレメントＰＥ２における保留判定に用いられる。
【００３６】
次に、プロセッサエレメントＰＥ１からのアクセス要求とプロセッサエレメントＰＥ２からのアクセス要求が同時である場合について説明する。ロック（ｌｏｃｋ）を伴うアクセスについては後述する。プロセッサエレメントＰＥ１からのアクセス要求とプロセッサエレメントＰＥ２からのアクセス要求が同時であるため、ＰＥ間制御部１３０が関与する。
【００３７】
ＰＥ間制御部１３０には、ＰＥ１アドレス信号及びＰＥ２アドレス信号が入力されている。また、各プロセッサエレメントＰＥ１、ＰＥ２からバッファセット信号及び許可状態通知が入力されている。ＰＥ間制御部１３０は各プロセッサエレメントＰＥ１、ＰＥ２からバッファセット信号に基づき、同時のアクセスか否か判断できる。また、ＰＥ１アドレス信号及びＰＥ２アドレス信号からアクセス要求アドレスが一致しているか否か判断できる。
【００３８】
ＰＥ間制御部１３０は、同時かつアドレスが一致したアクセスの場合、プロセッサエレメントＰＥ１及びＰＥ２に対し、アドレス一致信号及びプライオリティ（ｐｒｉｏｒｉｔｙ）通知を出力する。プライオリティ通知は、いずれのプロセッサエレメントを優先して許可するかについての信号であって、許可状態通知に基づき生成される。本実施の形態の場合、前回許可されていたプロセッサエレメントが待たされ、他方が許可される。アドレス一致信号及びプライオリティ通知は各プロセッサエレメントの保留判定部１１３に入力される。これらの情報に基づき、保留判定部１１３が保留判定信号を生成する。その他の動作については、上述した同時でないアクセスの場合と同様である。
【００３９】
次に、ロック（ｌｏｃｋ）を伴うアクセスについて説明する。プロセッサエレメントＰＥ１からのロックを伴うアクセス要求があった場合、アクセス要求信号、リード／ライト信号、アドレス（ａｄｄｒｅｓｓ）信号に加え、ロック信号がＰＥ１制御部１１０に入力される。具体的には、ロック信号はアドレスバッファ制御部１１４へ入力される。これに基づき、アドレスバッファ制御部１１４はロック要求（ＰＥ１ロック要求）を出力する。ロック要求はアドレスバッファ１１１に入力される。この場合、比較器１１５からはアドレスの一致を示すアドレス一致信号が出力される。ＰＥ１ロック要求は、ＰＥ２制御部の比較器１１５にも入力される。
【００４０】
他方、プロセッサエレメントＰＥ２からのロックを伴うアクセス要求があった場合、ＰＥ２からのロック要求（ＰＥ２ロック要求）が、プロセッサエレメントＰＥ１の比較器１１５に入力される。この場合も、比較器１１５からはアドレスの一致を示すアドレス一致信号が出力される。
【００４１】
また、ＰＥ１ロック要求及びＰＥ２ロック要求はＰＥ間制御部１３０にも入力される。そのため、同時にアクセス要求があって、かつ、少なくともいずれかのアクセス要求がロックを伴う場合には、ＰＥ間制御部１３０はアドレスが一致したものとみなし、アドレス一致信号を出力する。
【００４２】
以上のように、ロックを伴う書き込みアクセス要求では、他方のプロセッサからのアクセス要求アドレスとアドレスが一致していなくても、アドレスが一致したものとして処理される。ロックを伴うアトミックなアクセスにおいて、関連するアクセスアドレスに対して競合判定を行なおうとすると、アドレス判定に要するハードウエアの構成が複雑となってしまうが、本実施の形態によれば、ハードウエア上、簡易な構成とすることができる。ロックを伴うアトミックなアクセスは元来、ロックにより他のプロセッサエレメントからのアクセスを保留させるため、上記のような処理による処理速度上のデメリットも少ない。
【００４３】
次に、図４及び５のタイミングチャート及び図１を用いて、動作について説明する。図５は、同期ウィンドウ領域の同一アドレスに対して、プロセッサエレメントＰＥ１がライト要求をし、プロセッサエレメントＰＥ２がリード要求をした場合である。リードの場合、自己の局所メモリのみへのアクセスであるため、アクセス許可を取得する必要がない。そのため、プロセッサエレメントＰＥ２のＣＰＵ２は待つことなく、ＲＡＭインターフェースＭＩＦ２１を介して、自己の局所メモリＬＭ２からデータを読み取り、動作が完了する。
【００４４】
一方、プロセッサエレメントＰＥ１のＣＰＵ１は、データバスを介して、同期ウィンドウアービタ１００にアクセス要求を行う。そして、プロセッサエレメントＰＥ１用のアドレスバッファ１１１にアクセス要求アドレスが登録される。図４の例では、プロセッサエレメントＰＥ２の要求がリードであるため、競合は起こらない。そのため、すぐに同期ウィンドウアービタ１００からアクセス許可が出力される。このアクセス許可に基づいて、ＣＰＵ１はＲＡＭインターフェースＭＩＦ１１を介して自己の局所メモリＬＭ１に書き込む。また、ＰＥ間ＲＡＭインターフェースＭＩＦ１２にポステッド・ライト方式によりライト要求を行う。これにより、ＣＰＵ１の動作は完了する。
【００４５】
その後、ＰＥ間ＲＡＭインターフェースＭＩＦ１２に保持されたデータは、プロセッサエレメントＰＥ２のＲＡＭインターフェースＭＩＦ２１を介して局所メモリＬＭ２に書き込まれる。これにより、ＰＥ間ＲＡＭインターフェースＭＩＦ１２の動作が完了する。そして、プロセッサエレメントＰＥ１用のアドレスバッファ１１１が開放される。
【００４６】
図５は、同期ウィンドウ領域の同一アドレスに対して、プロセッサエレメントＰＥ１及びＰＥ２がいずれもライト要求をした場合のタイミングチャートである。また、図５は、同時にアクセス要求があった場合であって、かつ、プロセッサエレメントＰＥ１が優先された場合である。なお、プロセッサエレメントＰＥ１からのアクセスが早い場合も同様の処理となる。
【００４７】
プロセッサエレメントＰＥ１のＣＰＵ１は、データバスを介して、同期ウィンドウアービタ１００にアクセス要求を行う。そして、プロセッサエレメントＰＥ１用のアドレスバッファ１１１にアクセス要求アドレスが登録される。一方、プロセッサエレメントＰＥ２のＣＰＵ２は、データバスを介して、同期ウィンドウアービタ１００にアクセス要求を行う。そして、プロセッサエレメントＰＥ２用のアドレスバッファ１２１にアクセス要求アドレスが登録される。
【００４８】
図５の例では、両プロセッサエレメントの要求がいずれもライトであるため、競合が起こる。まず、プロセッサエレメントＰＥ１に対し、同期ウィンドウアービタ１００からアクセス許可が出力される。このアクセス許可に基づいて、ＣＰＵ１はＲＡＭインターフェースＭＩＦ１１を介して自己の局所メモリＬＭ１に書き込む。また、ＰＥ間ＲＡＭインターフェースＭＩＦ１２にポステッド・ライト方式によりライト要求を行う。これにより、ＣＰＵ１の動作は完了する。
【００４９】
その後、ＰＥ間ＲＡＭインターフェースＭＩＦ１２に保持されたデータは、プロセッサエレメントＰＥ２のＲＡＭインターフェースＭＩＦ２１を介して局所メモリＬＭ２に書き込まれる。これにより、ＰＥ間ＲＡＭインターフェースＭＩＦ１２の動作が完了する。そして、プロセッサエレメントＰＥ１用のアドレスバッファ１１１が開放される。
【００５０】
上記アドレスバッファ１１１が開放されると、それまで保留されていたプロセッサエレメントＰＥ２に対するアクセス許可が、同期ウィンドウアービタ１００から出力される。このアクセス許可に基づいて、ＣＰＵ２はＲＡＭインターフェースＭＩＦ２１を介して自己の局所メモリＬＭ２に書き込む。また、ＰＥ間ＲＡＭインターフェースＭＩＦ２２にポステッド・ライト方式によりライト要求を行う。これにより、ＣＰＵ２の動作は完了する。
【００５１】
その後、ＰＥ間ＲＡＭインターフェースＭＩＦ２２に保持されたデータは、プロセッサエレメントＰＥ１のＲＡＭインターフェースＭＩＦ１１を介して局所メモリＬＭ１に書き込まれる。これにより、ＰＥ間ＲＡＭインターフェースＭＩＦ２２の動作が完了する。そして、プロセッサエレメントＰＥ２用のアドレスバッファ１２１が開放される。
【００５２】
以上のように、本発明に係る分散共有メモリ型マルチプロセッサは、同期ウィンドウを有しているため、高速読み取りが可能である。また、同期ウィンドウアービタ１００を備えているため、各局所メモリに格納された同一であるべきデータに不整合が生じることもない。また、アクセス要求アドレスが一致した書き込み要求同士の場合にのみ、競合と判断するため、保留の機会を最小限に留め、高速処理が可能となる。さらに、ロックを伴うアクセス要求はアドレスが一致したとみなすことにより、関連するアクセスのアドレス判定に必要なハードウエアを省略でき、簡易な構成とすることができる。
【図面の簡単な説明】
【００５３】
【図１】実施の形態１に係る分散共有メモリ型マルチプロセッサのブロック図である。
【図２】共有メモリのメモリマップイメージである。
【図３】同期ウィンドウアービタ１００の詳細なブロック図である。
【図４】実施の形態１に係る分散共有メモリ型マルチプロセッサの動作タイミングを示すタイミングチャートである。
【図５】実施の形態１に係る分散共有メモリ型マルチプロセッサの動作タイミングを示すタイミングチャートである。
【図６】本発明の課題を説明するための図である。
【符号の説明】
【００５４】
ＰＥ１、ＰＥ２  プロセッサエレメント
ＬＭ１、ＬＭ２  局所メモリ
ＣＰＵ１、ＣＰＵ２  ＣＰＵ
ＭＩＦ１１、ＭＩＦ２１  ＲＡＭインターフェース、
ＭＩＦ１２、ＭＩＦ２２  ＰＥ間ＲＡＭインターフェース
１００  同期ウィンドウアービタ
１１０  ＰＥ１制御部
１１１  ＰＥ１アドレスバッファ
１１２  アクセス許可制御部
１１３  保留判定部
１１４  アドレスバッファ制御部
１１５  比較器
１２０  ＰＥ２制御部
１２１  ＰＥ２アドレスバッファ
１３０  ＰＥ間制御部
【図１】
2010055440.tif 000003
【図２】
2010055440.tif 000004
【図３】
2010055440.tif 000005
【図４】
2010055440.tif 000006
【図５】
2010055440.tif 000007
【図６】
2010055440.tif 000008