(57)【特許請求の範囲】
【請求項１】
複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
前記複数のプロセッサそれぞれから発せられた、前記共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部と、
前記アクセスバッファを検索して、該アクセスバッファ内に、前記入力バッファ内に存在するリード要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索部と、
前記検索部により、前記アクセスバッファ内に、前記入力バッファ内に存在するリード要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、該アクセスバッファ内の該同一アドレスのライト要求リクエストパケットにより前記共有メモリに書き込まれるデータを該アクセスバッファから取り出して、前記複数のプロセッサのうちの、該同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、該同一アドレスのリード要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とするメモリアクセス制御装置。
【請求項２】
複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
前記複数のプロセッサそれぞれから発せられた、前記共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部と、
前記アクセスバッファを検索して、該アクセスバッファ内に、前記入力バッファ内に存在するライト要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索部と、
前記検索部により、前記アクセスバッファ内に、前記入力バッファ内に存在するライト要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、該アクセスバッファ内の該同一アドレスのライト要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とするメモリアクセス制御装置。
【請求項３】
複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
前記複数のプロセッサそれぞれから発せられた、前記共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部と、
前記複数の入力バッファに跨って該入力バッファに蓄積されているリクエストパケットを検索して、該複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、前記調停部によって該リード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索部と、
前記検索部により、前記複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、前記調停部によって該リード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在することが検出された場合に、該同一アドレスのライト要求リクエストパケットにより前記共有メモリに書き込まれるデータを該入力バッファから取り出して、前記複数のプロセッサのうちの、該同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、該同一アドレスのリード要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とするメモリアクセス制御装置。
【請求項４】
複数のプロセッサそれぞれから発せられた、該複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
前記アクセスバッファを検索して、該アクセスバッファ内に、前記入力バッファ内に存在するリード要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
前記検索ステップにより、前記アクセスバッファ内に、前記入力バッファ内に存在するリード要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、該アクセスバッファ内の該同一アドレスのライト要求リクエストパケットにより前記共有メモリに書き込まれるデータを該アクセスバッファから取り出して、前記複数のプロセッサのうちの、該同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、該同一アドレスのリード要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とするメモリアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置およびメモリアクセス制御方法に関する。
【背景技術】
【０００２】
スーパーコンピュータ等の分野では、複数のプロセッサを使って１つのタスクを分散・並列処理させることにより、システム全体としての処理の高速化を図る並列プロセッサシステムが広く適用されている。この並列プロセッサシステムでは、複数のプロセッサ間で１つの共有メモリを共有し、その共有メモリにデータを書き込んだり、共有メモリに記憶されているデータを読み取ることによって、データの整合が図られている。また、並列プロセッサシステムにおいては、複数のプロセッサが１本の共通バスを介して共有メモリに接続される共通バス構成が一般的であったが、近年では、複数のプロセッサそれぞれが個別のバスを介して共有メモリに接続される１対ｎ型の接続構成が採用されてきている。
【０００３】
図１は、１対ｎ型の接続構成を有する並列プロセッサシステムの概略構成図である。
【０００４】
図１に示す並列プロセッサシステム１００は、共有メモリ１１０を含む共有メモリ装置１０１と、それぞれが個別のバスで共有メモリ装置１０１に接続された複数のプロセッサ１０２＿０，１０２＿１，…，１０２＿ｎとで構成されている。
【０００５】
プロセッサ１０２＿０，１０２＿１，…，１０２＿ｎは、共有メモリ１１０のアドレスと共有メモリ１１０にデータを書き込むライト要求とを含むライト要求リクエストパケットと、共有メモリ１１０のアドレスと共有メモリ１１０に記憶されたデータを読み取るリード要求とを含むリード要求リクエストパケットとのうちのいずれかのリクエストパケット１０３を共有メモリ装置１０１に向けて送信する。尚、図１では、リクエストパケット１０３内に示された数字のうちの前の数字が各プロセッサ１０２＿０，１０２＿１，…，１０２＿ｎを表しており、後の数字が各プロセッサ１０２＿０，１０２＿１，…，１０２＿ｎから送信されたリクエストパケットの通し番号を表している。
【０００６】
共有メモリ装置１０１には、複数のプロセッサ１０２＿０，１０２＿１，…，１０２＿ｎそれぞれに対応する送受信部１０４＿０，１０４＿１，…，１０４＿ｎ、および入力バッファ１０５＿０，１０５＿１，…，１０５＿ｎと、複数のプロセッサ１０２＿０，１０２＿１，…，１０２＿ｎ間で共有されるアービトレーション回路１０６、アクセスバッファ１０７、アクセスレジスタ１０８、キャッシュメモリ１０９、および共有メモリ１１０が備えられている。
【０００７】
送受信部１０４＿０，１０４＿１，…，１０４＿ｎは、各プロセッサ１０２＿０，１０２＿１，…，１０２＿ｎから送信されてきたリクエストパケット１０３を受信するとともに、受信したリクエストパケット１０３を入力バッファ１０５＿０，１０５＿１，…，１０５＿ｎに蓄積する。
【０００８】
アービトレーション回路１０６は、入力バッファ１０５＿０，１０５＿１，…，１０５＿ｎに蓄積された複数のリクエストパケット１０３を、予め決められているアービトレーション規則に従って１つずつ順次に選択し、選択したリクエストパケット１０３をアクセスバッファ１０７に蓄積する。アクセスバッファ１０７に蓄積されたリクエストパケット１０３は、順次にアクセスレジスタ１０８に送り出される。
【０００９】
アクセスレジスタ１０８では、格納されたリクエストパケット１０３に含まれるリード要求あるいはライト要求が実行される。アクセスレジスタ１０８にライト要求リクエストパケットが格納された場合には、共有メモリ１１０の、リクエストパケット１０３中のアドレスが示す記憶領域に対象データが書き込まれる。また、アクセスレジスタ１０８にリード要求リクエストパケットが格納された場合には、共有メモリ１１０よりも先に、キャッシュメモリ１０９にアクセスされる。キャッシュメモリ１０９に対象データが記憶されている場合には、キャッシュメモリ１０９に記憶されたデータが読み出されて、リード要求リクエストパケットを送信したプロセッサ１０２＿１，１０２＿２，…，１０２＿ｎに返信される。キャッシュメモリ１０９に対象データが記憶されていない場合には、共有メモリ１１０の、リクエストパケット１０３中のアドレスが示す記憶領域に記憶されているデータが読み出され、リード要求リクエストパケットを送信したプロセッサ１０２＿１，１０２＿２，…，１０２＿ｎに返信される。
【００１０】
このように、１対ｎ型の接続構成を有する並列プロセッサシステムによると、１つのプロセッサによって共有バスが占有されてしまって、システム全体の処理が停止してしまう不具合を回避することができるとともに、１本のバスにかかる電気的負荷を増加させずにプロセッサを増設することができ、分散・並列処理の効率を向上させることができる。さらに、各プロセッサ１０２＿１，１０２＿２，…，１０２＿ｎと共有メモリ装置１０１とを接続している複数のバスのうちいくつかのバスで不具合が発生した場合であっても、他のバスで接続されたプロセッサでは共有メモリ１１０にアクセスすることができるため、障害の切り分けが容易になるという利点もある。
【００１１】
また、共有メモリには、どのプロセッサからもアクセスすることが可能な記憶領域と、特定のプロセッサからのアクセスのみが許可された記憶領域とが用意されることが多い。この点に関し、特許文献１には、各プロセッサの動作開始時に、共有メモリに対して他のプロセッサからのアクセスを禁止するアクセス不可領域を設定しておき、他のプロセッサからアクセス不可領域へのアクセス要求が伝えられた場合には、そのアクセス要求の実行を停止する共有メモリのアクセス方法について記載されている。この特許文献１に記載されたアクセス方法を適用することによって、共有メモリに接続されるプロセッサが増設されたり、変更された場合であっても、アクセスが許可されていない記憶領域のデータを誤って上書きしてしまうなどといった不具合を回避することができる。
【特許文献１】特開平０８−１６５２９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
ところで、近年では、プロセッサの性能向上に伴って、並列プロセッサシステム全体の処理速度も向上してきている。一方で、複数のプロセッサ１０２＿１，１０２＿２，…，１０２＿ｎそれぞれから送信されるリクエストパケット１０３が集中してしまった場合などには、アービトレーション回路１０６によるリクエストパケット１０３の調停処理が追いつかなくなり、送受信部１０４＿１，１０４＿２，…，１０４＿ｎで次々に受信されるリクエストパケット１０３が入力バッファ１０５＿１，１０５＿２，…，１０５＿ｎに蓄積しきれずに溢れてしまうことがある。この場合、各プロセッサ１０２＿１，１０２＿２，…，１０２＿ｎに向けてリクエストパケット１０３の停止要求（Ｂａｃｋ  Ｐｒｅｓｓｕｒｅ信号１１６）が発せられて、各プロセッサ１０２＿１，１０２＿２，…，１０２＿ｎの処理が抑制されることとなり、システム全体の処理速度が低下してしまう。さらに、バースト的なトラフィックが継続すると、入力バッファ１０５＿１，１０５＿２，…，１０５＿ｎやアクセスバッファ１０７＿１，１０７＿２，…，１０７＿ｎで溢れてしまったリクエストパケット１０３が処理しきれずに破棄されてしまうこともあり、並列プロセッサシステムの信頼性が低下してしまうという問題もある。
【００１３】
本発明は、上記事情に鑑み、プロセッサの処理抑制やリクエストパケットの破棄を回避し、効率よく、かつ確実に処理を実行することができるメモリアクセス制御装置およびメモリアクセス制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成する本発明のメモリアクセス制御装置は、複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
複数のプロセッサそれぞれから発せられた、共有メモリのアクセスを要求する、ライト要求とリード要求との別と共有メモリのアドレスとを含むリクエストパケットを、複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを入力バッファからアクセスバッファに移動させる調停部と、
アクセスバッファを検索して、アクセスバッファ内に、入力バッファ内に存在するリード要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索部と、
検索部により、アクセスバッファ内に、入力バッファ内に存在するリード要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、アクセスバッファ内の同一アドレスのライト要求リクエストパケットにより共有メモリに書き込まれるデータをアクセスバッファから取り出して、複数のプロセッサのうちの、同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、同一アドレスのリード要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とする。
【００１５】
このメモリアクセス制御装置によると、アクセスバッファ内に、入力バッファに蓄積されたリード要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在する場合には、ライト要求リクエストパケットによって共有メモリに書き込まれるデータがリード要求リクエストパケットの実行結果としてプロセッサに送られるとともに、入力バッファ中のリード要求リクエストパケットがキャンセルされる。このため、アクセスバッファに蓄積されたライト要求リクエストパケットによって共有メモリにデータが書き込まれた後で、さらに、調停部によって入力バッファに蓄積されたリード要求リクエストパケットが選択されてアクセスバッファに格納され、先のライト要求リクエストパケットによって書き込まれた同じデータが共有メモリから読み出される一連の処理を省くことができ、処理速度および処理効率を向上させることができる。また、処理効率や処理速度の向上によって、入力バッファやアクセスバッファに蓄積されるリクエストパケットが減少するため、リクエストパケットが溢れてしまって処理しきれないリクエストパケットが破棄されてしまう不具合を回避することができ、装置全体の信頼性も向上させることができる。
【００１６】
また、上記目的を達成する本発明のメモリアクセス制御装置は、複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
複数のプロセッサそれぞれから発せられた、共有メモリのアクセスを要求する、ライト要求とリード要求との別と共有メモリのアドレスとを含むリクエストパケットを、複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファからアクセスバッファに移動させる調停部と、
アクセスバッファを検索して、アクセスバッファ内に、入力バッファ内に存在するライト要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索部と、
検索部により、アクセスバッファ内に、入力バッファ内に存在するライト要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、アクセスバッファ内の同一アドレスのライト要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とする。
【００１７】
このメモリアクセス制御装置によると、アクセスバッファ内に、入力バッファに蓄積されたライト要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在する場合には、アクセスバッファ内のライト要求リクエストパケットがキャンセルされる。同一のアドレスにデータを書き込む複数のライト要求リクエストパケットが検出された場合には、先のライト要求リクエストパケットがキャンセルされて後のライト要求リクエストパケットのみが実行されることによって、無駄な処理を省いて処理速度を高速化することができる。
【００１８】
また、上記目的を達成する本発明のメモリアクセス制御装置は、複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
複数のプロセッサそれぞれから発せられた、共有メモリのアクセスを要求する、ライト要求とリード要求との別と共有メモリのアドレスとを含むリクエストパケットを、複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを入力バッファからアクセスバッファに移動させる調停部と、
複数の入力バッファに跨って入力バッファに蓄積されているリクエストパケットを検索して、複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、調停部によってリード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索部と、
検索部により、複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、調停部によってリード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在することが検出された場合に、同一アドレスのライト要求リクエストパケットにより共有メモリに書き込まれるデータを入力バッファから取り出して、複数のプロセッサのうちの、同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、同一アドレスのリード要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とする。
【００１９】
このメモリアクセス制御装置によると、複数の入力バッファに跨って、同一のアドレスであり、リード要求リクエストパケットの前に選択されるライト要求リクエストパケットが検索され、そのライト要求リクエストパケットによって共有メモリに書き込まれるデータがリード要求リクエストパケットの実行結果としてプロセッサに送られるとともに、リード要求リクエストパケットがキャンセルされる。このように、複数の入力バッファ間で、共有メモリへのアクセスを省略可能なリード要求リクエストパケットがキャンセルされるため、調停部における処理の負荷を軽減し、システム全体の処理性能を向上させることができる。
【００２０】
また、上記目的を達成する本発明のメモリアクセス制御装置は、複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
複数のプロセッサそれぞれから発せられた、共有メモリのアクセスを要求する、ライト要求とリード要求との別と共有メモリのアドレスとを含むリクエストパケットを、複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを入力バッファからアクセスバッファに移動させる調停部と、
複数の入力バッファに跨って入力バッファに蓄積されているリクエストパケットを検索して、複数の入力バッファのうちのいずれかの入力バッファに蓄積されているライト要求リクエストパケットと同一アドレスであって、調停部によってライト要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索部と、
検索部により、複数の入力バッファのうちのいずれかの入力バッファに蓄積されているライト要求リクエストパケットと同一アドレスであって、調停部によってそのライト要求リクエストパケットよりも先に選択される第２のライト要求リクエストパケットが存在することが検出された場合に、第２のライト要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とする。
【００２１】
このメモリアクセス制御装置によると、複数の入力バッファに跨って、同一のアドレスに対する複数のライト要求リクエストパケットが検索された場合に、それらのライト要求リクエストパケットのうち先に選択される第２のライト要求リクエストパケットがキャンセルされるため、無駄な処理を確実に省くことができる。
【００２２】
また、上記目的を達成する本発明のメモリアクセス制御方法は、複数のプロセッサそれぞれから発せられた、複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを入力バッファからアクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
アクセスバッファを検索して、アクセスバッファ内に、入力バッファ内に存在するリード要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
検索ステップにより、アクセスバッファ内に、入力バッファ内に存在するリード要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、アクセスバッファ内の同一アドレスのライト要求リクエストパケットにより共有メモリに書き込まれるデータをアクセスバッファから取り出して、複数のプロセッサのうちの、同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、同一アドレスのリード要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とする。
【００２３】
このメモリアクセス制御方法によると、アクセスバッファに蓄積されたライト要求リクエストパケットを使って、入力バッファ内のリード要求リクエストパケットの実行結果が予め確認され、入力バッファ内のリード要求リクエストパケットがキャンセルされるため、システム全体の処理効率を向上させることができる。
【００２４】
また、上記目的を達成する本発明のメモリアクセス制御方法は、複数のプロセッサそれぞれから発せられた、複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と共有メモリのアドレスとを含むリクエストパケットを、複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを入力バッファからアクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
アクセスバッファを検索して、アクセスバッファ内に、入力バッファ内に存在するライト要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
検索ステップにより、アクセスバッファ内に、入力バッファ内に存在するライト要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、アクセスバッファ内の同一アドレスのライト要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とする。
【００２５】
このメモリアクセス制御方法によると、アクセスバッファと入力バッファの双方に同一アドレスのライト要求リクエストパケットが存在する場合には、先に選択されたアクセスバッファ内のライト要求リクエストパケットがキャンセルされるため、先行処理部における処理の負荷を軽減することができる。
【００２６】
また、上記目的を達成する本発明のメモリアクセス制御方法は、複数のプロセッサそれぞれから発せられた、複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と共有メモリのアドレスとを含むリクエストパケットを、複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを入力バッファからアクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
複数の入力バッファに跨って入力バッファに蓄積されているリクエストパケットを検索して、複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、調停部によってリード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
検出ステップにより、複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、調停部によってリード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在することが検出された場合に、同一アドレスのライト要求リクエストパケットにより共有メモリに書き込まれるデータを入力バッファから取り出して、複数のプロセッサのうちの、同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、同一アドレスのリード要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とする。
【００２７】
このメモリアクセス制御方法によると、複数の入力バッファに跨って省略可能なリード要求リクエストパケットが検索され、検索されたリード要求リクエストパケットがキャンセルされるため、調停部による処理の負荷を軽減することができ、システム全体の処理速度を高速化することができる。
【００２８】
また、上記目的を達成する本発明のメモリアクセス制御方法は、複数のプロセッサそれぞれから発せられた、複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と共有メモリのアドレスとを含むリクエストパケットを、複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを入力バッファからアクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
複数の入力バッファに跨って入力バッファに蓄積されているリクエストパケットを検索して、複数の入力バッファのうちのいずれかの入力バッファに蓄積されているライト要求リクエストパケットと同一アドレスであって、調停部によってライト要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
検出ステップにより、複数の入力バッファのうちのいずれかの入力バッファに蓄積されているライト要求リクエストパケットと同一アドレスであって、調停部によってそのライト要求リクエストパケットよりも先に選択される第２のライト要求リクエストパケットが存在することが検出された場合に、第２のライト要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とする。
【００２９】
このメモリアクセス制御方法によると、複数の入力バッファに跨って省略可能なライト要求リクエストパケットが存在するか否かが検索されて、第２のライト要求リクエストパケットがキャンセルされるため、システム全体の処理効率を向上させることができる。
【発明の効果】
【００３０】
本発明によれば、プロセッサの処理抑制やリクエストパケットの破棄を回避し、効率よく、かつ確実に処理を実行することができる。
【発明を実施するための最良の形態】
【００３１】
以下、図面を参照して本発明の実施の形態を説明する。
【００３２】
図２は、本発明の一実施形態が適用された並列プロセッサシステムの概略構成図である。
【００３３】
図２に示す並列プロセッサシステム２００は、１つの共有メモリに複数のプロセッサそれぞれが個別のバスで接続された１対ｎ型の接続構成を有する並列プロセッサシステムである。この並列プロセッサシステム２００は、共有メモリ装置２０１と、複数のプロセッサ２０２＿０，２０２＿１，…，２０２＿ｎとで構成されており、共有メモリ装置２０１には、複数のプロセッサ２０２＿０，２０２＿１，…，２０２＿ｎそれぞれに対応する複数の送受信部２０４＿０，２０４＿１，…，２０４＿ｎ、複数の入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎ、および複数の入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎと、複数のプロセッサ２０２＿０，２０２＿１，…，２０２＿ｎ間で共有されるアービトレーション部２２１、バッファ検索制御部２３０、アクセスバッファ２２２、アクセスレジスタ２２３、キャッシュメモリ２２４、および共有メモリ２４０が備えられている。
【００３４】
プロセッサ２０２＿０，２０２＿１，…，２０２＿ｎは、共有メモリ２４０にデータを書き込むライト要求や、共有メモリ２４０に記憶されたデータを読み取るリード要求を含むリクエストパケット３００（図３参照）を共有メモリ装置２０１に向けて送信する。
【００３５】
図３は、リクエストパケットの概念的な構成図である。
【００３６】
リクエストパケット３００は、初期値として「０（共有メモリ２４０へのアクセス待ち）」が設定され、リード要求やライト要求がキャンセルされた場合に「１（Ｒ／Ｗ要求キャンセル）」が設定されるキャンセルフラグ３０１と、このリクエストパケット３００を送信したプロセッサ２０２＿０，２０２＿１，…，２０２＿ｎの識別番号であるＣＰＵＩＤ３０２と、リード要求（Ｒ）とライト要求（Ｗ）のうちのいずれかを示すＲ／Ｗ情報３０３と、共有メモリ２４０の記憶領域を示すアドレス３０４と、ライト要求によって書き込まれる書込データやリード要求によって読み取られた読取データが設定されるデータ３０５とで構成されている。リクエストパケット３００は、本発明にいうリクエストパケットの一例に相当する。尚、図２では、リクエストパケット３００内に示された数字のうちの前の数字が各プロセッサ２０２＿０，２０２＿１，…，２０２＿ｎを表しており、後の数字が各プロセッサ２０２＿０，２０２＿１，…，２０２＿ｎから送信されたリクエストパケットの通し番号を表している。
【００３７】
プロセッサ２０２＿０，２０２＿１，…，２０２＿ｎから送信されたリクエストパケット３００は、共有メモリ装置２０１内の送受信部２０４＿０，２０４＿１，…，２０４＿ｎで受信される。
【００３８】
送受信部２０４＿０，２０４＿１，…，２０４＿ｎで受信されたリクエストパケット３００は、入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎに一旦蓄積される。入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎに蓄積されたリクエストパケット３００は、入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎ、およびバッファ検索制御部２３０に伝えられる。入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎは、本発明にいう入力バッファの一例に相当する。
【００３９】
バッファ検索制御部２３０には、検索要求部４０１と、結果判定部５０１と、アドレス比較部２３４とが備えられており、アドレス比較部２３４は、アクセスバッファ２２２を構成する複数の蓄積バッファ２２２＿０，２２２＿１，…，２２２＿ＸＸそれぞれに対応する複数の比較部６０１＿０，６０１＿１，…，６０１＿ＸＸで構成されている。
【００４０】
検索要求部４０１は、入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎから取得した複数のリクエストパケット３００をアドレス比較部２３４に伝える。
【００４１】
アドレス比較部２３４は、アクセスバッファ２２２を構成する複数の蓄積バッファ２２２＿０，２２２＿１，…，２２２＿ＸＸ内に蓄積されたリクエストパケット３００と、入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎ内に蓄積されたリクエストパケット３００とのうち、共有メモリ２４０へのアクセスを省略可能なリクエストパケット３００を検索する。検索結果は、結果判定部５０１に伝えられる。
【００４２】
結果判定部５０１は、アドレス比較部２３４で検索されたリクエストパケット３００のキャンセルフラグ３０１に「１（Ｒ／Ｗ要求キャンセル）」を設定し、入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎから取得されたリクエストパケット３００を入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎに送るとともに、アクセスバッファ２２２から伝えられたリクエストパケット３００を、アクセスバッファ２２２に送る。
【００４３】
バッファ検索制御部２３０は、本発明にいう先行処理部の一例に相当する。尚、バッファ検索制御部２３０における処理については、後で詳しく説明する。
【００４４】
入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎは、図３に示すキャンセルフラグ３０１に「１（Ｒ／Ｗ要求キャンセル）」が設定されたリクエストパケット３００を対応するプロセッサ２０２＿０，２０２＿１，…，２０２＿ｎに向けて返信するとともに、そのリクエストパケット３００をキャンセルする。
【００４５】
アービトレーション部２２１は、複数の入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎ内に格納されたリクエストパケット３００を、予め決められている選択規則に従って順に選択してアクセスバッファ２２２に格納する。本実施形態では、選択規則として、複数の入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎに格納されたリクエストパケット３００が図の左側から順に１つずつ選択されていくラウンドロビン方式が適用される。アービトレーション部２２１は、本発明にいう調停部の一例に相当する。
【００４６】
アクセスバッファ２２２は、複数の蓄積バッファ２２２＿１，２２２＿２，…，２２２＿ＸＸで構成されており、アービトレーション部２２１で選択されたリクエストパケット３００が順次に格納される。アクセスバッファ２２２に格納されたリクエストパケット３００は、先に格納されたものから先に取り出されてアクセスレジスタ２２３に送り出される。アクセスバッファ２２２は、本発明にいうアクセスバッファの一例に相当する。
【００４７】
アクセスレジスタ２２３は、格納されているリクエストパケット３００のキャンセルフラグ３０１に「１（Ｒ／Ｗ要求キャンセル）」が設定されている場合、そのリクエストパケット３００をキャンセルする。また、リクエストパケット３００のキャンセルフラグ３０１が「０（共有メモリ２４０へのアクセス待ち）」である場合には、そのリクエストパケット３００を実行することにより、共有メモリ２４０へのアクセスを行う。すなわち、リクエストパケット３００中の、図３に示すＲ／Ｗ情報３０３がライト要求「Ｗ」である場合、共有メモリ２４０の、リクエストパケット３００に含まれるアドレス３０４に、データ部３０５に設定された書込データが書き込まれる。また、リクエストパケット３００中の、図３に示すＲ／Ｗ情報３０３がリード要求「Ｒ」である場合、共有メモリ２４０よりも先に、キャッシュメモリ２２４にアクセスされる。キャッシュメモリ２２４に、共有メモリ２４０の、リクエストパケット３００に含まれるアドレス３０４のデータが記憶されている場合には、キャッシュメモリ２２４に記憶されたデータが読み出され、キャッシュメモリ２２４に対象データが記憶されていない場合には、共有メモリ２４０の、リクエストパケット３００に含まれるアドレス３０４のデータが読み出される。読み出されたデータは、リクエストパケット３００中のデータ部３０５に設定され、読取データが設定されたリクエストパケット３００は、ＣＰＵＩＤ３０２が示すプロセッサ２０２＿０，２０２＿１，…，２０２＿ｎに向けて送られる。
【００４８】
基本的には、以上のようにして共有メモリ２４０へのアクセスが実行される。
【００４９】
ここで、本実施形態では、バッファ検索制御部２３０が、共有メモリ２４０へのアクセスを省略可能なリクエストパケット３００のキャンセルフラグ３０１に「１（Ｒ／Ｗ要求キャンセル）」を設定することにより、そのリクエストパケット３００がキャンセルされる。
【００５０】
図４は、検索要求部４０１の機能ブロック図であり、図５は、結果判定部５０１の機能ブロック図であり、図６は、比較部６０１＿０，６０１＿１，…，６０１＿ＸＸの機能ブロック図である。
【００５１】
また、図７は、リクエストパケット３００をキャンセルする一連の処理の流れを示すフローチャート図である。
【００５２】
以下では、図７のフローチャート図に従い、図４、図５、および図６も使ってバッファ検索制御部２３０の構成要素について説明することにより、リクエストパケット３００をキャンセルする一連の処理について説明する。
【００５３】
図４に示すように、バッファ検索制御部２３０の検索要求部４０１は、検索要求セレクタ４０２と、アドレス抽出部４０３と、検索アービトレーション部４０４としての機能を有している。
【００５４】
検索アービトレーション部４０４では、図２に示すアービトレーション部２２１から、入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎからリクエストパケット３００を選択する選択規則を示すアービトレーション信号２３１が取得される（図７のステップＳ１１）。取得されたアービトレーション信号２３１は、検索要求セレクタ４０２に伝えられるとともに、検索アービトレーション信号２３２として結果判定部５０１にも伝えられる。
【００５５】
検索要求セレクタ４０２では、アービトレーション部２２１に先立って、入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎから、アービトレーション信号２３１が示す選択規則に従った順番で１つずつリクエストパケット３００が取り出される（図７のステップＳ１２）。選択されたリクエストパケット３００は、アドレス抽出部４０３に伝えられる。
【００５６】
アドレス抽出部４０３では、検索要求セレクタ４０２から伝えられたリクエストパケット３００中の、Ｒ／Ｗ情報３０３とアドレス３０４とが抽出される。抽出後リクエストパケット３００＿１は、図２に示すアドレス比較部２３４に伝えられる。
【００５７】
図６に示すように、アドレス比較部２３４を構成する各比較部６０１＿０，６０１＿１，…，６０１＿ＸＸには、アドレス比較・Ｒ／Ｗ確認部６０２と、キャンセルフラグ付加部６０３としての機能が搭載されている。
【００５８】
アドレス比較・Ｒ／Ｗ確認部６０２では、図４に示す検索要求部４０１のアドレス抽出部４０３から１つずつ順次に抽出後リクエストパケット３００＿１が伝えられるとともに、アクセスバッファ２２２中の、各比較部６０１＿０，６０１＿１，…，６０１＿ＸＸに対応する蓄積バッファ２２２＿０，２２２＿１，…，２２２＿ＸＸからリクエストパケット３００が伝えられる（図７のステップＳ１３）。
【００５９】
さらに、アドレス比較・Ｒ／Ｗ確認部６０２では、アクセスバッファ２２２から取得されたリクエストパケット３００と、アドレス抽出部４０３から伝えられた抽出後リクエストパケット３００＿１それぞれのアドレス３０４が同一であるか否かが判定される（図７のステップＳ１４）。
【００６０】
リクエストパケット３００と抽出後リクエストパケット３００＿１のアドレス３０４が一致しない場合は（図７のステップＳ１４：不一致）、検索要求部４０１のアドレス抽出部４０３から次の抽出後リクエストパケット３００＿１が取得されるとともに、アクセスバッファ２２２から改めてリクエストパケット３００が取得され（図７のステップＳ１３）、新たな抽出後リクエストパケット３００＿１と新たなリクエストパケット３００それぞれのアドレス３０４が比較される（図７のステップＳ１４）。
【００６１】
リクエストパケット３００と抽出後リクエストパケット３００＿１のアドレス３０４が一致した場合は（図７のステップＳ１４：一致）、リクエストパケット３００中のＲ／Ｗ情報３０３が確認される（図７のステップＳ１３）。
【００６２】
アクセスバッファ２２２から取得したリクエストパケット３００中のＲ／Ｗ情報３０３が「Ｒ（リード要求）」である場合には（図７のステップＳ１５：Ｒｅａｄ）、再び、新たな抽出後リクエストパケット３００＿１と新たな複数のリクエストパケット３００が取得されて（図７のステップＳ１３）、アドレス３０４の比較（図７のステップＳ１４）、およびＲ／Ｗ情報３０３の確認（図７のステップＳ１５）が実行される。
【００６３】
また、アクセスバッファ２２２から取得したリクエストパケット３００中のＲ／Ｗ情報３０３が「Ｗ（ライト要求）」であり（図７のステップＳ１５：Ｗｒｉｔｅ）、さらに抽出後リクエストパケット３００＿１中のＲ／Ｗ情報３０３が「Ｒ（リード要求）」である場合には（図７のステップＳ１６：Ｒｅａｄ）、抽出後リクエストパケット３００＿１の元となった入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎ中のリード要求リクエストパケット３００による共有メモリ２４０へのアクセスが省略される。すなわち、ライト要求リクエストパケットによってデータが書き込まれた後で、同じアドレスのデータを読み取ることとなるリード要求リクエストパケットがキャンセルされる。
【００６４】
まず、図６に示すアドレス比較・Ｒ／Ｗ確認部６０２では、アクセスバッファ２２２から伝えられたライト要求リクエストパケット３００中のデータ部３０５に設定された書込データが取得され、抽出後リクエストパケット３００＿１に書込データを付加した応答リクエストパケット３００＿２が生成される。生成された応答リクエストパケット３００＿２は、図５に示す結果判定部５０１に伝えられる（図７のステップＳ１７）。
【００６５】
図５に示すように、結果判定部５０１は、最新データ選択部５０２と、キャンセルフラグ付加部５０３と、要求元選択部５０４としての機能を有している。
【００６６】
アドレス比較・Ｒ／Ｗ確認部６０２から伝えられた応答リクエストパケット３００＿２は、最新データ選択部５０２で取得される。本実施形態においては、アクセスバッファ２２２に蓄積された複数のリクエストパケット３００それぞれと抽出後リクエストパケット３００＿１との比較処理が並列に実行されているため、最新データ選択部５０２には、１つの抽出後リクエストパケット３００＿１に対して複数の比較部６０１＿１，６０１＿２，…，６０１＿ＸＸから応答リクエストパケット３００＿２が伝えられることがある。最新データ選択部５０２では、１つの抽出後リクエストパケット３００＿１に対して複数の応答リクエストパケット３００＿２が取得された場合には、それら複数の応答リクエストパケット３００＿２のうち最新の応答リクエストパケット３００＿２（最も最後に実行される応答リクエストパケット３００＿２）が選択される。選択された応答リクエストパケット３００＿２は、キャンセルフラグ付加部５０３に伝えられる。
【００６７】
キャンセルフラグ付加部５０３では、応答リクエストパケット３００＿２にキャンセルフラグ３０１が付加され、キャンセルフラグ３０１に「１（Ｒ／Ｗ要求キャンセル）」が設定される。キャンセルフラグ３０１が付加された応答リクエストパケット３００＿２は、要求元選択部５０４に伝えられる。
【００６８】
要求元選択部５０４では、抽出リクエストパケット３００＿１の元となったリクエストパケット３００に応答リクエストパケット３００＿２が上書きされ、新たなリクエストパケット３００が、そのリクエストパケット３００中のＤＰＵＩＤ３０２が示すプロセッサ２０２＿０，２０２＿１，…，２０２＿ｎに対応する入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎに伝えられる（図７のステップＳ１８）。
【００６９】
この時点で、入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎに格納されたリクエストパケット３００のうち、アクセスバッファ２２２に同じアドレスへのライト要求リクエストパケットが存在するリード要求リクエストパケットについては、キャンセルフラグ３０１に「１（Ｒ／Ｗ要求キャンセル）」が設定され、データ部３０５にライト要求リクエストパケットの書込データが設定されている。
【００７０】
入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎでは、キャンセルフラグ３０１に「１（Ｒ／Ｗ要求キャンセル）」が設定されたリクエストパケット３００が送受信部２０４＿０，２０４＿１，…，２０４＿ｎに伝えられる。送受信部２０４＿０，２０４＿１，…，２０４＿ｎでは、入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎから伝えられたリクエストパケット３００が、共有メモリ２４０へのアクセス結果であるアンサーパケットデータとしてプロセッサ部２０２＿０，２０２＿１，…，２０２＿ｎに返信される（図７のステップＳ１９）。
【００７１】
また、入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎでは、キャンセルフラグ３０１に「１（Ｒ／Ｗ要求キャンセル）」が設定されたリクエストパケット３００が破棄されることにより、リクエストパケット３００の実行がキャンセルされる（図７のステップＳ２０）。
【００７２】
図８は、リード要求リクエストパケットがキャンセルされるまでのリクエストパケットの流れを示す概念図である。
【００７３】
各プロセッサ２０２＿０，２０２＿１，…，２０２＿ｎから送信されて入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎに蓄積されたリクエストパケット３００（１）は、入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎと検索要求部４０１に転送される。また、アービトレーション部２２１から取得されたアービトレーション信号２３１（２）は、検索要求部４０１を介して結果判定部５０１に伝えられる。
【００７４】
検索要求部４０１で受信されたリクエストパケット３００（３）は、アービトレーション信号２３１（２）に従った順序で１つずつ比較部６０１＿０，６０１＿１，…，６０１＿ＸＸに伝えられる。また、比較部６０１＿０，６０１＿１，…，６０１＿ＸＸでは、アクセスバッファ２２２の蓄積バッファ２２２＿０，２２２＿１，…，２２２＿ＸＸに格納されているリクエストパケット３００（４）が取得され、「入力バッファ中のリード要求リクエストパケットと同一のアドレスを有するアクセスバッファ中のライト要求リクエストパケット」が検索される。図８に示す例では、左側の入力バッファ２０５＿０に蓄積されたリクエストパケット３１０のＲ／Ｗ情報３０３が「Ｒ（リード要求）」であり、アドレス３０４が「アドレスＡ」である。このリード要求リクエストパケット３１０に対し、アクセスバッファ２２２中の２番目のバッファ２２２＿０２に蓄積されたリクエストパケット３３０のＲ／Ｗ情報３０３が「Ｗ（ライト要求）」であり、アドレス３０４が「アドレスＡ」であり、検索条件に合致するライト要求リクエストパケット３３０と判定される。
【００７５】
検索結果である応答リクエストパケット（５）は結果判定部５０１に伝えられる。さらに、応答リクエストパケット（５）に基づいて生成されたリード要求アンサーデータ３２０は、入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎを介して送受信部２０４＿０，２０４＿１，…，２０４＿ｎに伝えられ、さらにプロセッサ２０２＿０，２０２＿１，…，２０２＿ｎに返信される。図８の例では、結果判定部５０１において、キャンセルフラグ３０１に「１（Ｒ／Ｗ要求キャンセル）」が設定され、データ部３０５にライト要求リクエストパケット３３０のデータ部３０５に設定されている「データＩ」が設定されたリード要求アンサーデータ３２０が生成され、リード要求アンサーデータ３２０が入力レジスタ２０６＿０を介して送受信部２０４＿０に伝えられ、プロセッサ２０２＿０に返信される。
【００７６】
以上のように、本実施形態によると、アクセスバッファに蓄積されているリクエストパケット中に、入力バッファに蓄積されているリード要求リクエストパケットと同じアドレスにデータを書き込むライト要求リクエストパケットが存在する場合には、そのリード要求リクエストパケットの返信データとしてライト要求リクエストパケットによって書き込まれる書込データが返信されて、リード要求リクエストパケットがキャンセルされるため、共有メモリ２４０へのアクセスを省略することができる。また、リード要求リクエストパケットのキャンセルを入力レジスタで実行することによって、アービトレーション部２２１における選択処理の負荷も軽減することができるとともに、システム全体の処理速度を高速化することができる。
【００７７】
以上のようにして、リード要求リクエストパケットのキャンセルが行われる。
【００７８】
また、図７のステップＳ１５において、アクセスバッファ２２２から取得したリクエストパケット３００中のＲ／Ｗ情報３０３が「Ｗ（ライト要求）」であり（図７のステップＳ１５：Ｗｒｉｔｅ）、さらに抽出後リクエストパケット３００＿１中のＲ／Ｗ情報３０３も「Ｗ（ライト要求）」である場合には（図７のステップＳ１６：Ｗｒｉｔｅ）、アクセスバッファ２２２から取得したライト要求リクエストパケット３００による共有メモリ２４０へのアクセスが省略される。すなわち、同じアドレスにデータを書き込む複数のライト要求リクエストパケットのうち、先に実行されるライト要求リクエストパケットがキャンセルされる。
【００７９】
まず、図６に示すアドレス比較・Ｒ／Ｗ確認部６０２では、アクセスバッファ２２２から取得したライト要求リクエストパケット３００がキャンセルフラグ付加部６０３に伝えられる。
【００８０】
キャンセルフラグ付加部６０３では、アドレス比較・Ｒ／Ｗ確認部６０２から伝えられたライト要求リクエストパケット３００のキャンセルフラグ３０１に「１（Ｒ／Ｗ要求キャンセル）」が設定され（図７のステップＳ２１）、新たなライト要求リクエストパケット３００がアクセスバッファ２２２に伝えられる。
【００８１】
この時点で、アクセスバッファ２２２の複数の蓄積バッファ２２２＿０，２２２＿１，…，２２２＿ＸＸに格納されたリクエストパケット３００のうち、入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎ内に同じアドレス３０４へのライト要求リクエストパケットが存在するライト要求リクエストパケットについては、キャンセルフラグ３０１に「１（Ｒ／Ｗ要求キャンセル）」が設定されている。
【００８２】
アクセスレジスタ２２３には、アクセスバッファ２２２に蓄積されたリクエストパケット３００が１つずつ送られてくる。アクセスレジスタ２２３では、キャンセルフラグ３０１に「０（共有メモリ２４０へのアクセス待ち）」が設定されたリクエストパケット３００が実行されるとともに、キャンセルフラグに「１（Ｒ／Ｗ要求キャンセル）」が設定されたリクエストパケット３００は破棄されて、リクエストパケット３００の実行がキャンセルされる（図７のステップＳ２２）。
【００８３】
図９は、ライト要求リクエストパケットがキャンセルされるまでのリクエストパケットの流れを示す概念図である。
【００８４】
まずは、図８に示すリード要求リクエストパケットをキャンセルする場合と同様に、検索要求部４０１において、入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎ中のリクエストパケット３００（１）と、アービトレーション信号２３１（２）とが取得される。比較部６０１＿０，６０１＿１，…，６０１＿ＸＸでは、入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎ中のリクエストパケット３００と（３）、アクセスバッファ２２２中のリクエストパケット３００（４）が取得される。ライト要求リクエストパケットをキャンセルするときには、比較部６０１＿０，６０１＿１，…，６０１＿ＸＸにおいて、「入力バッファ中のライト要求リクエストパケットと同一のアドレスを有するアクセスバッファ中のライト要求リクエストパケット」が検索される。図９に示す例では、左側の入力バッファ２０５＿０に蓄積されたリクエストパケット３４０のＲ／Ｗ情報３０３が「Ｗ（ライト要求）」であり、アドレス３０４が「アドレスＡ」である。このリード要求リクエストパケット３１０に対し、アクセスバッファ２２２中の２番目のバッファ２２２＿０２に蓄積されたリクエストパケット３３０のＲ／Ｗ情報３０３が「Ｗ（ライト要求）」であり、アドレス３０４が「アドレスＡ」であり、検索条件に合致するライト要求リクエストパケット３３０と判定される。
【００８５】
ライト要求リクエストパケット３３０が検索された比較部６０１＿２では、ライト要求リクエストパケット３３０のキャンセルフラグに「１（Ｒ／Ｗ要求キャンセル）」が設定され、新たなライト要求リクエストパケット３３０がバッファ２２２＿２に上書きされる。
【００８６】
以上のように、本実施形態によると、アクセスバッファに蓄積されているリクエストパケット中に、入力バッファに蓄積されているライト要求リクエストパケットと同じアドレスにデータを書き込むライト要求リクエストパケットが存在する場合には、先に実行されるアクセスバッファ中のライト要求リクエストパケットがキャンセルされるため、無駄な処理を省いて処理効率を向上させることができる。また、処理効率の向上によって、アクセスバッファや入力バッファに溜まっているリクエストパケットが減少するため、リクエストパケットが溢れてしまって処理しきれないリクエストパケットが破棄されてしまう不具合を回避することができ、確実に処理を実行することができる。
【００８７】
以上で、本発明の第１実施形態の説明を終了し、本発明の第２実施形態について説明する。本発明の第２実施形態は、バッファ検索制御部の構成が第１実施形態と異なるが、それ以外は第１実施形態と同様の構成を有しているため、図２を第２実施形態の説明でも流用し、第１実施形態との相違点についてのみ説明する。
【００８８】
図１０は、本実施形態におけるバッファ検索制御部の構成図である。
【００８９】
本実施形態におけるバッファ検索制御部１００１には、図２に示す第１実施形態のバッファ検索制御部２３０と同様に、検索要求部１１０１、結果判定部１００３、アドレス比較部１００４が備えられており、アドレス比較部１００４には、アクセスバッファ２２２を構成する複数の蓄積バッファ２２２＿０，２２２＿１，…，２２２＿ＸＸそれぞれに対応する複数の比較部１３０１＿０，１３０１＿１，…，１３０１＿ＸＸが備えられているが、本実施形態では、結果判定部１００３に、複数の入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎそれぞれに対応する複数の判定部１４０１＿０，１４０１＿１，…，１４０１＿ｎが備えられている点が第１実施形態とは異なる。
【００９０】
図１１は、検索要求部１１０１の機能ブロック図である。
【００９１】
本実施形態の検索要求部１１０１には、アドレス比較・Ｒ／Ｗ確認部１２０１と、複数の入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎそれぞれに対応する複数のアドレス抽出部１１０３＿０，１１０３＿１，…，１１０３＿ｎとしての機能が備えられている。
【００９２】
複数の入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎそれぞれから１つずつ取得された複数のリクエストパケット３００は、各入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎに対応する各アドレス抽出部１１０３＿０，１１０３＿１，…，１１０３＿ｎに伝えられるとともに、アドレス比較・Ｒ／Ｗ確認部１２０１にも伝えられる。
【００９３】
アドレス抽出部１１０３＿０，１１０３＿１，…，１１０３＿ｎでは、リクエストパケット３００中の、Ｒ／Ｗ情報３０３とアドレス３０４とが抽出された抽出後リクエストパケット３００＿１が生成される。生成された抽出後リクエストパケット３００＿１は、各アドレス抽出部１１０３＿０，１１０３＿１，…，１１０３＿ｎからアドレス比較部１００４を構成する複数の比較部１３０１＿０，１３０１＿１，…，１３０１＿ＸＸそれぞれに向けて一斉に送られる。すなわち、各比較部１３０１＿０，１３０１＿１，…，１３０１＿ＸＸに、複数の入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎから取得された複数の抽出後リクエストパケット３００＿１が伝えられることとなる。
【００９４】
図１２は、本実施形態における比較部１３０１＿０，１３０１＿１，…，１３０１＿ＸＸの機能ブロック図である。
【００９５】
各比較部１３０１＿０，１３０１＿１，…，１３０１＿ＸＸには、キャンセルフラグ付加部１３０３と、複数のアドレス抽出部１１０３＿０，１１０３＿１，…，１１０３＿ｎそれぞれに対応する複数のアドレス比較・Ｒ／Ｗ確認部１３０２＿０，１３０２＿１，…，１３０２＿ｎとしての機能が備えられている。
【００９６】
各比較部１３０１＿０，１３０１＿１，…，１３０１＿ＸＸでは、アクセスバッファ２２２中の、対応する蓄積バッファ２２２＿０，２２２＿１，…，２２２＿ＸＸに蓄積されているリクエストパケット３００が取得されるとともに、図１１に示すアドレス抽出部１１０３＿０，１１０３＿１，…，１１０３＿ｎから伝えられた複数の抽出後リクエストパケット３００＿１も取得される。アクセスバッファから伝えられたリクエストパケット３００は、全てのアドレス比較・Ｒ／Ｗ確認部１３０２＿０，１３０２＿１，…，１３０２＿ｎで取得され、アドレス抽出部１１０３＿０，１１０３＿１，…，１１０３＿ｎから伝えられた複数の抽出後リクエストパケット３００＿１は、対応するアドレス比較・Ｒ／Ｗ確認部１３０２＿０，１３０２＿１，…，１３０２＿ｎで取得される。
【００９７】
アドレス比較・Ｒ／Ｗ確認部１３０２＿０，１３０２＿１，…，１３０２＿ｎでは、リクエストパケット３００と抽出後リクエストパケット３００＿１それぞれのアドレス３０４に設定されたアドレスが一致するか否かが判定される。尚、本実施形態においては、アクセスバッファ２２２を構成する複数の蓄積バッファ２２２＿０，２２２＿１，…，２２２＿ＸＸそれぞれに対応する複数の比較部１３０１＿０，１３０１＿１，…，１３０１＿ＸＸが備えられており、各比較部１３０１＿０，１３０１＿１，…，１３０１＿ＸＸに、複数の入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎそれぞれに対応する複数のアドレス比較・Ｒ／Ｗ確認部１３０２＿０，１３０２＿１，…，１３０２＿ｎが備えられている。このため、アドレス比較部１００４全体では、アクセスバッファ２２２に蓄積された複数のリクエストパケット３００と、入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎに蓄積された複数のリクエストパケット３００（実際には、リクエストパケット３００の一部が抽出された抽出後リクエストパケット３００＿１が利用される）とが一斉に比較される。
【００９８】
アドレス比較・Ｒ／Ｗ確認部１３０２＿０，１３０２＿１，…，１３０２＿ｎにおいて、アクセスバッファ２２２から取得されたリクエストパケット３００と、アドレス抽出部１１０３＿０，１１０３＿１，…，１１０３＿ｎから伝えられた抽出後リクエストパケット３００＿１それぞれのアドレスが一致した場合には、リクエストパケット３００と抽出後リクエストパケット３００＿１それぞれのＲ／Ｗ情報３０３が確認される。
【００９９】
リクエストパケット３００のＲ／Ｗ情報３０３が「Ｗ（ライト要求）」で、抽出後リクエストパケット３００＿１のＲ／Ｗ情報３０３が「Ｗ（ライト要求）」の場合には、リクエストパケット３００がキャンセルフラグ付加部１３０３に伝えられる。キャンセルフラグ付加部１３０３では、第１実施形態と同様にして、リクエストパケット３００のキャンセルフラグ３０１に「１（Ｒ／Ｗ要求キャンセル）」が設定され、新たなリクエストパケット３００がアクセスバッファ２２２に伝えられる。
【０１００】
図２に示すアクセスレジスタ２２３では、キャンセルフラグ３０１に「０（共有メモリ２４０へのアクセス待ち）」が設定されたリクエストパケット３００が実行されるとともに、キャンセルフラグに「１（Ｒ／Ｗ要求キャンセル）」が設定されたリクエストパケット３００は破棄されて、リクエストパケット３００の実行がキャンセルされる。
【０１０１】
また、アドレス比較・Ｒ／Ｗ確認部１３０２＿０，１３０２＿１，…，１３０２＿ｎにおいて、アクセスバッファ２２２から取得されたリクエストパケット３００と、アドレス抽出部１１０３＿０，１１０３＿１，…，１１０３＿ｎから伝えられた抽出後リクエストパケット３００＿１それぞれのアドレスが一致し、さらにリクエストパケット３００のＲ／Ｗ情報３０３が「Ｗ（ライト要求）」で、抽出後リクエストパケット３００＿１のＲ／Ｗ情報３０３が「Ｒ（リード要求）」の場合には、抽出後リクエストパケット３００＿１にリクエストパケット３００中のデータ部３０５に設定された書込データが付加された応答リクエストパケット３００＿２が生成される。生成された応答リクエストパケット３００＿２は、図１０に示す結果判定部１００３の、各アドレス比較・Ｒ／Ｗ確認部１３０２＿０，１３０２＿１，…，１３０２＿ｎに対応する判定部１４０１＿０，１４０１＿１，…，１４０１＿ｎに伝えられる。
【０１０２】
図１３は、結果判定部１００３を構成する判定部１４０１＿０，１４０１＿１，…，１４０１＿ｎの機能ブロック図である。
【０１０３】
結果判定部１００３を構成する各判定部１４０１＿０，１４０１＿１，…，１４０１＿ｎには、アンサーデータ選択部１４０２と、キャンセルフラグ付加部１４０３としての機能が備えられている。
【０１０４】
アンサーデータ選択部１４０２では、複数の比較部１３０１＿０，１３０１＿１，…，１３０１＿ＸＸそれぞれから伝えられた応答リクエストパケット３００＿２が取得される。また、複数の応答リクエストパケット３００＿２が取得された場合には、それら複数の応答リクエストパケット３００＿２のうち最新の応答リクエストパケット３００＿２（最も最後に実行される応答リクエストパケット３００＿２）が選択されて、キャンセルフラグ付加部１４０３に伝えられる。
【０１０５】
キャンセルフラグ付加部１４０３では、応答リクエストパケット３００＿２の元となったリクエストパケット３００のデータ部３０５に応答リクエストパケット３００＿２のデータ部３０５に設定されたデータが設定され、キャンセルフラグ３０１に「１（Ｒ／Ｗ要求キャンセル）」が設定され、新たなリクエストパケット３００が対応する入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎに伝えられる。
【０１０６】
入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎでは、キャンセルフラグ３０１に「１（Ｒ／Ｗ要求キャンセル）」が設定されたリクエストパケット３００が送受信部２０４＿０，２０４＿１，…，２０４＿ｎに伝えられ、送受信部２０４＿０，２０４＿１，…，２０４＿ｎでは、リクエストパケット３００がアンサーパケットデータとして対応するプロセッサ部２０２＿０，２０２＿１，…，２０２＿ｎに返信される。さらに、入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎでは、送受信部２０４＿０，２０４＿１，…，２０４＿ｎに送信されたリクエストパケット３００がキャンセルされる。
【０１０７】
以上のように、本実施形態によると、複数の入力バッファそれぞれに蓄積された複数のリクエストパケットと、複数のアクセスバッファそれぞれに蓄積された複数のリクエストパケットとが一斉に比較されて省略可能なリクエストパケットが検索されるため、処理を高速化することができる。
【０１０８】
ここで、上記では、図１１に示す検索要求部１１０１において、入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎに蓄積されたリクエストパケット３００がアドレス抽出部１１０３＿０，１１０３＿１，…，１１０３＿ｎで取得され、抽出リクエストパケット３００＿１がアドレス比較部１００４の比較部１３０１＿０，１３０１＿１，…，１３０１＿ｎに伝えられて、アクセスバッファ２２２に蓄積されたリクエストパケット３００と比較される一連の流れについて説明したが、検索要求部１１０１では、入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎから伝えられたリクエストパケット３００がアドレス比較・Ｒ／Ｗ確認部１２０１でも取得される。
【０１０９】
図１４は、アドレス比較・Ｒ／Ｗ確認部１２０１における処理の流れを示す図である。
【０１１０】
アドレス比較・Ｒ／Ｗ確認部１２０１には、複数の入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎそれぞれから１つずつ伝えられた複数のリクエストパケット３００が取得されるとともに、図２に示すアービトレーション部２２１から、入力バッファ２０５＿０，２０５＿１，…，２０５＿ｎからリクエストパケット３００を選択する選択規則を示すアービトレーション信号２３１も取得される。
【０１１１】
アドレス比較・Ｒ／Ｗ確認部１２０１では、取得された複数のリクエストパケット３００がアービトレーション信号２３１が示す選択規則に従った順序で比較され、アドレス３０４に設定されたアドレスが同一であり、選択規則によって先に選択されるリクエストパケット３００のＲ／Ｗ情報３０３がライト要求であるリクエストパケット３００の組が検索される。図１４に示す例では、入力バッファ２０５＿０に蓄積されていたライト要求リクエストパケット１２０２＿０と、入力バッファ２０５＿１に蓄積されていたリード要求リクエストパケット１２０２＿１の組（１）と、入力バッファ２０５＿０に蓄積されていたライト要求リクエストパケット１２０２＿０と、入力バッファ２０５＿ｎに蓄積されていたライト要求リクエストパケット１２０２＿ｎの組（２）とが検索される。
【０１１２】
続いて、検索されたリクエストパケット３００の組のうち、後で選択されるリクエストパケット３００がリード要求リクエストパケットである場合には、そのリード要求リクエストパケットのデータ部３０５に先に選択されるライト要求リクエストパケット３００のデータ部３０５に設定された書込データが設定され、さらに、リード要求リクエストパケットのキャンセルフラグ３０１に「１（Ｒ／Ｗ要求キャンセル）」が設定される。図４に示す例では、リード要求リクエストパケット１２０２＿１のデータ部３０５に、ライト要求リクエストパケット１２０２＿０のデータ部３０５に設定された「データＩ」が設定され、リード要求リクエストパケット１２０２＿１のキャンセルフラグ３０１に「１」が設定される。
【０１１３】
また、検索されたリクエストパケット３００の組のうち、後で選択されるリクエストパケット３００がライト要求リクエストパケットである場合には、先に選択されるライト要求リクエストパケット３００のキャンセルフラグ３０１に「１（Ｒ／Ｗ要求キャンセル）」が設定される。図４に示す例では、入力バッファ２０５＿０に蓄積されていたライト要求リクエストパケット１２０２＿０の後で、入力バッファ２０５＿ｎに蓄積されていたライト要求リクエストパケット１２０２＿ｎが選択されるため、先に選択されるライト要求リクエストパケット１２０２＿０のキャンセルフラグ３０１に「１」が設定される。
【０１１４】
アドレス比較・Ｒ／Ｗ確認部１２０１によって比較処理が終了すると、リクエストパケット３００は図１０に示す結果判定部１００３に伝えられる。
【０１１５】
結果判定部１００３に伝えられたリクエストパケット３００は、図１３に示す判定部１４０１＿０，１４０１＿１，…，１４０１＿ｎで取得され、さらに、対応する入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎに伝えられる。
【０１１６】
入力レジスタ２０６＿０，２０６＿１，…，２０６＿ｎでは、キャンセルフラグ３０１に「１（Ｒ／Ｗ要求キャンセル）」が設定されたリクエストパケット３００のキャンセル処理が実行される。
【０１１７】
このように、本実施形態においては、アクセスバッファと入力バッファとの間で共有メモリへのアクセスが重複するリクエストパケットだけではなく、複数の入力バッファ間で省略可能なリクエストパケットもキャンセルされるため、さらに高速で効率的な処理を実現することができる。
【０１１８】
ここで、上記では、アービトレーション部において、ラウンドロビン方式が適用され、複数の入力レジスタに格納されたリクエストパケットが番号順に１つずつ選択される例について説明したが、本発明にいう調停部は、例えば、処理の負荷が大きいプロセッサに対応する入力バッファに蓄積されたリクエストパケットを優先的に選択するものであってもよい。
【０１１９】
また、上記では、入力バッファに蓄積されたリクエストパケットのキャンセルを入力レジスタで行う例について説明したが、本発明のメモリアクセス制御装置は、入力レジスタではキャンセルフラグの確認を行わず、リクエストパケットのキャンセルを全てアクセスレジスタで行うものであってもよい。しかし、入力バッファに蓄積されたリクエストパケットのキャンセルを入力レジスタで行うことにより、共有メモリへのアクセスだけではなく、アービトレーション部における調停処理も省略することができる。
【０１２０】
以下、本発明の各種形態について付記する。
【０１２１】
（付記１）
複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
前記複数のプロセッサそれぞれから発せられた、前記共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部と、
前記アクセスバッファを検索して、該アクセスバッファ内に、前記入力バッファ内に存在するリード要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索部と、
前記検索部により、前記アクセスバッファ内に、前記入力バッファ内に存在するリード要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、該アクセスバッファ内の該同一アドレスのライト要求リクエストパケットにより前記共有メモリに書き込まれるデータを該アクセスバッファから取り出して、前記複数のプロセッサのうちの、該同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、該同一アドレスのリード要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とするメモリアクセス制御装置。
【０１２２】
（付記２）
複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
前記複数のプロセッサそれぞれから発せられた、前記共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部と、
前記アクセスバッファを検索して、該アクセスバッファ内に、前記入力バッファ内に存在するライト要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索部と、
前記検索部により、前記アクセスバッファ内に、前記入力バッファ内に存在するライト要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、該アクセスバッファ内の該同一アドレスのライト要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とするメモリアクセス制御装置。
【０１２３】
（付記３）
複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
前記複数のプロセッサそれぞれから発せられた、前記共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部と、
前記複数の入力バッファに跨って該入力バッファに蓄積されているリクエストパケットを検索して、該複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、前記調停部によって該リード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索部と、
前記検索部により、前記複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、前記調停部によって該リード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在することが検出された場合に、該同一アドレスのライト要求リクエストパケットにより前記共有メモリに書き込まれるデータを該入力バッファから取り出して、前記複数のプロセッサのうちの、該同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、該同一アドレスのリード要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とするメモリアクセス制御装置。
【０１２４】
（付記４）
複数のプロセッサで共有される共有メモリへのアクセスを制御するメモリアクセス制御装置において、
前記複数のプロセッサそれぞれから発せられた、前記共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部と、
前記複数の入力バッファに跨って該入力バッファに蓄積されているリクエストパケットを検索して、該複数の入力バッファのうちのいずれかの入力バッファに蓄積されているライト要求リクエストパケットと同一アドレスであって、前記調停部によって該ライト要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索部と、
前記検索部により、前記複数の入力バッファのうちのいずれかの入力バッファに蓄積されているライト要求リクエストパケットと同一アドレスであって、前記調停部によって該ライト要求リクエストパケットよりも先に選択される第２のライト要求リクエストパケットが存在することが検出された場合に、該第２のライト要求リクエストパケットをキャンセルする先行処理部とを備えたことを特徴とするメモリアクセス制御装置。
【０１２５】
（付記５）
複数のプロセッサそれぞれから発せられた、該複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
前記アクセスバッファを検索して、該アクセスバッファ内に、前記入力バッファ内に存在するリード要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
前記検索ステップにより、前記アクセスバッファ内に、前記入力バッファ内に存在するリード要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、該アクセスバッファ内の該同一アドレスのライト要求リクエストパケットにより前記共有メモリに書き込まれるデータを該アクセスバッファから取り出して、前記複数のプロセッサのうちの、該同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、該同一アドレスのリード要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とするメモリアクセス制御方法。
【０１２６】
（付記６）
複数のプロセッサそれぞれから発せられた、該複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
前記アクセスバッファを検索して、該アクセスバッファ内に、前記入力バッファ内に存在するライト要求リクエストパケットと同一のアドレスのライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
前記検索ステップにより、前記アクセスバッファ内に、前記入力バッファ内に存在するライト要求リクエストパケットと同一アドレスのライト要求リクエストパケットが存在することが検出された場合に、該アクセスバッファ内の該同一アドレスのライト要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とするメモリアクセス制御方法。
【０１２７】
（付記７）
複数のプロセッサそれぞれから発せられた、該複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
前記複数の入力バッファに跨って該入力バッファに蓄積されているリクエストパケットを検索して、該複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、前記調停部によって該リード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
前記検出ステップにより、前記複数の入力バッファのうちのいずれかの入力バッファに蓄積されているリード要求リクエストパケットと同一アドレスであって、前記調停部によって該リード要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在することが検出された場合に、該同一アドレスのライト要求リクエストパケットにより前記共有メモリに書き込まれるデータを該入力バッファから取り出して、前記複数のプロセッサのうちの、該同一アドレスのリード要求リクエストパケットを発したプロセッサに送るとともに、該同一アドレスのリード要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とするメモリアクセス制御方法。
【０１２８】
（付記８）
複数のプロセッサそれぞれから発せられた、該複数のプロセッサによって共有される共有メモリのアクセスを要求する、ライト要求とリード要求との別と該共有メモリのアドレスとを含むリクエストパケットを、該複数のプロセッサそれぞれについて蓄積しておく複数の入力バッファと、
リクエストパケットを前記共有メモリへのアクセスの順に蓄積しておくアクセスバッファと、
前記入力バッファに蓄積されているリクエストパケットを、所定のアービトレーション規則に従って順次に選択して、選択したリクエストパケットを該入力バッファから前記アクセスバッファに移動させる調停部とを備えたメモリアクセス制御装置におけるメモリアクセス制御方法であって、
前記複数の入力バッファに跨って該入力バッファに蓄積されているリクエストパケットを検索して、該複数の入力バッファのうちのいずれかの入力バッファに蓄積されているライト要求リクエストパケットと同一アドレスであって、前記調停部によって該ライト要求リクエストパケットよりも先に選択されるライト要求リクエストパケットが存在するか否かを検出する検索ステップと、
前記検出ステップにより、前記複数の入力バッファのうちのいずれかの入力バッファに蓄積されているライト要求リクエストパケットと同一アドレスであって、前記調停部によって該ライト要求リクエストパケットよりも先に選択される第２のライト要求リクエストパケットが存在することが検出された場合に、該第２のライト要求リクエストパケットをキャンセルする実行処理ステップとを有することを特徴とするメモリアクセス制御方法。
【図面の簡単な説明】
【０１２９】
【図１】１対ｎ型の接続構成を有する並列プロセッサシステムの概略構成図である。
【図２】本発明の一実施形態が適用された並列プロセッサシステムの概略構成図である。
【図３】リクエストパケットの概念的な構成図である。
【図４】検索要求部の機能ブロック図である。
【図５】結果判定部の機能ブロック図である。
【図６】比較の機能ブロック図である。
【図７】リクエストパケットをキャンセルする一連の処理の流れを示すフローチャート図である。
【図８】リード要求リクエストパケットがキャンセルされるまでのリクエストパケットの流れを示す概念図である。
【図９】ライト要求リクエストパケットがキャンセルされるまでのリクエストパケットの流れを示す概念図である。
【図１０】本発明の第２実施形態におけるバッファ検索制御部の構成図である。
【図１１】本発明の第２実施形態における検索要求部の機能ブロック図である。
【図１２】本発明の第２実施形態におけるにおける比較部の機能ブロック図である。
【図１３】本発明の第２実施形態における判定部の機能ブロック図である。
【図１４】アドレス比較・Ｒ／Ｗ確認部における処理の流れを示す図である。
【符号の説明】
【０１３０】
２００    並列プロセッサシステム
２０１    共有メモリ装置
２０２＿０，２０２＿１，…，２０２＿ｎ    プロセッサ
２０４＿０，２０４＿１，…，２０４＿ｎ    送受信部
２０５＿０，２０５＿１，…，２０５＿ｎ    入力バッファ
２０６＿０，２０６＿１，…，２０６＿ｎ    入力レジスタ
２２１    アービトレーション部
２２２    アクセスバッファ
２２２＿０，２２２＿１，…，２２２＿ＸＸ    蓄積バッファ
２２３    アクセスレジスタ
２２４    キャッシュメモリ
２３０，１００１    バッファ検索制御部
２３４，１００４    アドレス比較部
２４０    共有メモリ
３００    リクエストパケット
４０１，１１０１    検索要求部
５０１，１００３    結果判定部
６０１＿０，６０１＿１，…，６０１＿ＸＸ，１００４＿０，１００４＿１，…，１００４＿ＸＸ    比較部
【図１】
0004900219.tif 000002
【図２】
0004900219.tif 000003
【図３】
0004900219.tif 000004
【図４】
0004900219.tif 000005
【図５】
0004900219.tif 000006
【図６】
0004900219.tif 000007
【図７】
0004900219.tif 000008
【図８】
0004900219.tif 000009
【図９】
0004900219.tif 000010
【図１０】
0004900219.tif 000011
【図１１】
0004900219.tif 000012
【図１２】
0004900219.tif 000013
【図１３】
0004900219.tif 000014
【図１４】
0004900219.tif 000015