(57)【要約】【課題】マルチプロセッサシステムにおいて、スヌープ等を用いずにデータのコヒーレンシを維持するため、データの送信側が、メモリにデータが書き込まれるのに要する時間だけ待って受信側プロセッサコアに書き込み済みメッセージを送信するとシステムの処理能力の低下を招く。【解決手段】第１のプロセッサコアは、第１のバス接続部に対し、第２のプロセッサコアへの送信データのメモリへの書き込み要求を送信した後に、書き込み済みメッセージの第２のプロセッサコアへの送信要求を送信し、第１のバス接続部は、書き込み要求に応じてメモリインタフェース部に書き込み要求を送信し、その後、送信要求に応じて、メモリインタフェース部に応答要求を送信し、第１のバス接続部は、メモリインタフェース部から所定の応答を受信した場合に、書き込み済みメッセージを第２のプロセッサコアに対して送信するマルチプロセッサシステム。【選択図】図１
2007148748.tif 000002
【特許請求の範囲】
【請求項１】
第１のプロセッサコアと、第２のプロセッサコアと、メモリと、内部バスと、前記第１のプロセッサコアを前記内部バスに接続するための第１のバス接続部と、前記メモリを前記内部バスに接続するためのメモリインタフェース部と、を備えており、前記第１のプロセッサコアと前記第２のプロセッサコアとでデータを送受信する場合に前記メモリを介して行うマルチプロセッサシステムであって、
前記第１のプロセッサコアは、前記第２のプロセッサコア宛に送ろうとする送信データの前記メモリへの書き込み要求を、前記第１のバス接続部に送信した後に、前記送信データを前記メモリに書き込み済みであることを示す書き込み済みメッセージの、前記第２のプロセッサコアへの送信要求を前記第１のバス接続部に送信し、
前記第１のバス接続部は、前記第１のプロセッサコアから送信された前記書き込み要求に応じて、前記メモリインタフェース部に対して、前記送信データの書き込み要求を、前記内部バスを介して送信し、その後、前記第１のプロセッサコアから送信された前記送信要求に応じて、前記メモリインタフェース部に対して、前記送信データの書き込み要求に対する処理の完了後に所定の応答を返すことを要求する応答要求を、前記内部バスを介して送信し、
前記第１のバス接続部は、前記メモリインタフェース部から、前記内部バスを介して前記所定の応答を受信した場合に、前記書き込み済みメッセージを、前記第２のプロセッサコアに対して、前記内部バスを介して送信することを特徴とするマルチプロセッサシステム。
【請求項２】
請求項１に記載のマルチプロセッサシステムであって、さらに、
前記第２のプロセッサコアを前記内部バスに接続するための第２のバス接続部と、
前記第２のプロセッサコアと前記第２のバス接続部とを接続する専用割り込み信号線と、
を備え、
前記書き込み済みメッセージが、前記第２のプロセッサコアに対して、前記内部バスを介して送信された場合に、前記第２のバス接続部は、前記書き込み済みメッセージを受信すると共に、前記第２のプロセッサコアに対して、前記専用割り込み信号線を介して割り込み信号を送信する、
マルチプロセッサシステム。
【請求項３】
請求項２に記載のマルチプロセッサシステムにおいて、
前記第１のバス接続部は、前記書き込み済みメッセージを前記第２のプロセッサコアに対して前記内部バスを介して送信する場合に、前記送信データの前記メモリにおける書き込み位置を示す位置情報を、前記書き込み済みメッセージに含めて送信し、
前記第２のバス接続部は、前記書き込み済みメッセージを受信した場合に、受信した前記書き込み済みメッセージから前記位置情報を取得し、
前記第２のプロセッサコアは、前記第２のバス接続部から前記割り込み信号を受信した場合に、前記第２のバス接続部から前記位置情報を取得する、
マルチプロセッサシステム。
【請求項４】
請求項１ないし請求項３のいずれかに記載のマルチプロセッサシステムにおいて、
前記応答要求は、ＷＲ−ＡＣＫ要求であり、
前記所定の応答は、ＷＲ−ＡＣＫである、
マルチプロセッサシステム。
【請求項５】
請求項１ないし請求項４のいずれかに記載のマルチプロセッサシステムであって、
１つの半導体基板上に集積化されていることを特徴とする、
マルチプセッサシステム。
【請求項６】
第１のプロセッサコアと、第２のプロセッサコアと、メモリと、内部バスと、前記第１のプロセッサコアを前記内部バスに接続するための第１のバス接続部と、前記メモリを前記内部バスに接続するためのメモリインタフェース部と、を備えており、前記第１のプロセッサコアと前記第２のプロセッサコアとでデータを送受信する場合に前記メモリを介して行うマルチプロセッサシステムにおいて、前記第１のプロセッサコアから前記第２のプロセッサコア宛に送ろうとする送信データを送信するためのデータ送信方法であって、
前記第１のプロセッサコアにおいて、前記送信データの前記メモリへの書き込み要求を、前記第１のバス接続部に送信した後に、前記送信データを前記メモリに書き込み済みであることを示す書き込み済みメッセージの、前記第２のプロセッサコアへの送信要求を前記第１のバス接続部に送信する第１の工程と、
前記第１のバス接続部において、前記第１のプロセッサコアから送信された前記書き込み要求に応じて、前記メモリインタフェース部に対して、前記送信データの書き込み要求を、前記内部バスを介して送信する第２の工程と、
前記第１のバス接続部において、前記送信データの書き込み要求の送信工程の後、前記第１のプロセッサコアから送信された前記送信要求に応じて、前記メモリインタフェース部に対して、前記送信データの書き込み要求に対する処理の完了後に所定の応答を返すことを要求する応答要求を、前記内部バスを介して送信する第３の工程と、
前記第１のバス接続部において、前記メモリインタフェース部から、前記内部バスを介して前記所定の応答を受信した場合に、前記書き込み済みメッセージを、前記第２のプロセッサコアに対して、前記内部バスを介して送信する第４の工程と、
を備えるデータ送信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムにおいて、それぞれのプロセッサコアが扱うデータの整合性（コヒーレンシ）を維持するための技術に関する。
【背景技術】
【０００２】
近年、複数のプロセッサコアを備えるマルチプロセッサシステムが数多く提案されている。このマルチプロセッサシステムにおいて、複数のプロセッサコアが内部バスを介して共通のメモリにアクセス可能である構成である場合に、プロセッサコア間でこの共通のメモリを介してデータの送受信を行う際に、送信側のプロセッサコアと、受信側のプロセッサコアと、で扱うデータの整合性（コヒーレンシ）が保たれない場合がある。
【０００３】
具体的には、或るプロセッサコア（仮に「第１のプロセッサコア」と呼ぶ。）が、他のプロセッサコア（仮に「第２のプロセッサコア」と呼ぶ。）に送ろうとするデータをメモリに書き込み、第２のプロセッサコアがメモリからこのデータを読み出す構成のマルチプロセッサシステムについて考えてみる。
【０００４】
このシステムでは、第１のプロセッサコアは、メモリにおける格納アドレスを指定したデータの書き込み要求を、内部バスを介してメモリに送信した後に、第２のプロセッサコアに対して、前述の格納アドレスを含むデータの書き込み済みメッセージを送信し、第２のプロセッサコアは、このメッセージに基づいてメモリからデータを読み出す。
【０００５】
かかる構成のシステムでは、メモリにおいて、第１のプロセッサコアからの書き込み要求を受信した際に他のプロセッサコアからの要求に対する処理を行っている場合があり、この場合、メモリは、第１のプロセッサコアから受信した書き込み要求を即時に処理することができない。その結果、この書き込み要求がメモリにおいて未処理であるにも関わらず、第２のプロセッサコアに前述の書き込み済みメッセージが届いてしまうことが発生し得る。
【０００６】
そして、第１のプロセッサコアからの書き込み要求がメモリにおいて未処理であるにも関わらず、第２のプロセッサコアに前述の書き込み済みメッセージが届いてしまった場合、第２のプロセッサコアが、このメッセージに含まれているアドレスに基づいてメモリからデータを読み出すと、第２のプロセッサコアは、第１のプロセッサコアが送ろうとしたデータではなく、同じアドレスに既に格納されている古いデータを読み出すこととなる。その結果、第１のプロセッサコアと第２のプロセッサコアとで、データのコヒーレンシが保たれなくなるおそれがある。
【０００７】
そこで、マルチプロセッサシステムにおけるコヒーレンシの維持を目的として、各プロセッサコアが、他のプロセッサコアから送出されて内部バスを流れる、書き込みや読み出し等の要求を監視する、いわゆるスヌープ方式のシステムが種々提案されている（例えば、下記特許文献１参照）。
【０００８】
【特許文献１】特開平９−２９３０６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述したスヌープ方式のマルチプロセッサシステムでは、各プロセッサコアに、内部バスを流れる書き込み等の要求を監視する機能部などの、コヒーレンシ維持のための特別な機能部が必要となり、システムの製造コストの上昇を招くこととなる。
【００１０】
そこで、上述のようにして第１のプロセッサコアが第２のプロセッサコアに対してメモリを介してデータを送受信する場合に、第１のプロセッサコアは、データの書き込み要求をメモリに送信した後に、メモリにデータが書き込まれるのに要する時間だけ待って、第２のプロセッサコアに対して書き込み済みメッセージを送信する方法も考えられる。
【００１１】
しかしながら、メモリにデータが書き込まれるのに要する時間は、メモリにおける処理待ちの書き込み等の要求数の多少や、その書き込み要求についての処理のプライオリティの高低などによって変動し得る。
【００１２】
従って、かかる方法においてコヒーレンシを確実に維持するためには、想定し得る最も長い時間だけ、第１のプロセッサコアに対して、書き込み済みメッセージを第２のプロセッサコアに送信するのを待たせなければならなくなってしまう。その結果、第２のプロセッサコアへのデータの送信に比較的長時間要することとなり、マルチプロセッサシステムの処理能力（スループット）の低下を招くこととなる。
【００１３】
本発明は上述した課題の少なくとも一部を解決するためになされたものであり、各プロセッサコアで扱うデータのコヒーレンシを保つことが可能であると共に、製造コストの上昇を抑制しつつ、スループットの低下を抑制することが可能なマルチプロセッサシステムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
前述の課題の少なくとも一部を解決するために、本発明のマルチプロセッサシステムは、第１のプロセッサコアと、第２のプロセッサコアと、メモリと、内部バスと、前記第１のプロセッサコアを前記内部バスに接続するための第１のバス接続部と、前記メモリを前記内部バスに接続するためのメモリインタフェース部と、を備えており、前記第１のプロセッサコアと前記第２のプロセッサコアとでデータを送受信する場合に前記メモリを介して行うマルチプロセッサシステムであって、前記第１のプロセッサコアは、前記第２のプロセッサコア宛に送ろうとする送信データの前記メモリへの書き込み要求を、前記第１のバス接続部に送信した後に、前記送信データを前記メモリに書き込み済みであることを示す書き込み済みメッセージの、前記第２のプロセッサコアへの送信要求を前記第１のバス接続部に送信し、前記第１のバス接続部は、前記第１のプロセッサコアから送信された前記書き込み要求に応じて、前記メモリインタフェース部に対して、前記送信データの書き込み要求を、前記内部バスを介して送信し、その後、前記第１のプロセッサコアから送信された前記送信要求に応じて、前記メモリインタフェース部に対して、前記送信データの書き込み要求に対する処理の完了後に所定の応答を返すことを要求する応答要求を、前記内部バスを介して送信し、前記第１のバス接続部は、前記メモリインタフェース部から、前記内部バスを介して前記所定の応答を受信した場合に、前記書き込み済みメッセージを、前記第２のプロセッサコアに対して、前記内部バスを介して送信することを要旨とする。
【００１５】
このように、本発明のマルチプロセッサシステムでは、第１のバス接続部は、メモリインタフェース部から、内部バスを介して所定の応答を受信した場合に、書き込み済みメッセージを、第２のプロセッサコアに対して、内部バスを介して送信するようにしている。
【００１６】
ここで、第１のバス接続部が所定の応答を受信するのは、メモリインタフェース部において、第１のバス接続部から送信された応答要求の処理が実行された後である。そして、この応答要求は、送信データのメモリへの書き込み要求よりも後にメモリインタフェース部に送信されているので、メモリインタフェース部は、この書き込み要求の処理を実行した後に、前述の応答要求の処理を実行することとなる。従って、第１のバス接続部が所定の応答を受信するのは、メモリインタフェース部において、前述の書き込み要求が実行された後となる。
【００１７】
それ故、第２のプロセッサコアが書き込み済みメッセージを受信するのは、メモリインタフェース部において、前述の書き込み要求の処理が実行され、送信データがメモリに書き込まれた後となる。その結果、書き込み済みメッセージを受信した第２のプロセッサコアが、メモリから送信データを読み出すときには、既に送信データがメモリに書き込まれているので、第２のプロセッサコアは、古いデータではなく、この送信データを読み出すことができる。従って、第１のプロセッサコア及び第２のプロセッサコアにおいて、データのコヒーレンシは保たれることとなる。
【００１８】
また、上記のような構成とすることで、マルチプロセッサシステムは、内部バスを流れる書き込み等の要求を監視する機能部など、コヒーレンシ維持のための特別な機能部を設けずに済むので、マルチプロセッサシステムの製造コストの上昇を抑制することができる。
【００１９】
また、上記のような構成とすることで、第１のバス接続部が、メモリインタフェース部に対して、送信データの書き込み要求を送信した後、直ぐに、応答要求を送信すると、メモリインタフェース部は、第１のバス接続部から、書き込み要求を受信してから比較的短時間の後に、応答要求を受信することとなる。それ故、メモリインタフェース部において、書き込み要求の処理が実行されてから、比較的短時間の後に、応答要求の処理が実行されることとなり、送信データがメモリに書き込まれてから比較的短時間の後に、書き込み済みメッセージが第２のプロセッサコアに対して送信されることとなる。その結果、第２のプロセッサコアは、送信データがメモリに書き込まれてから比較的短時間の後に、この送信データを読み出すことができるので、マルチプロセッサシステムのスループット低下を抑制することができる。
【００２０】
上記マルチプロセッサシステムにおいて、さらに、前記第２のプロセッサコアを前記内部バスに接続するための第２のバス接続部と、前記第２のプロセッサコアと前記第２のバス接続部とを接続する専用割り込み信号線と、備え、前記書き込み済みメッセージが、前記第２のプロセッサコアに対して、前記内部バスを介して送信された場合に、前記第２のバス接続部は、前記書き込み済みメッセージを受信すると共に、前記第２のプロセッサコアに対して、前記専用割り込み信号線を介して割り込み信号を送信するようにしてもよい。
【００２１】
このような構成とすることで、第２のプロセッサコアは、専用割り込み信号線を介して割り込み信号を受信することで、第１のプロセッサコアからの書き込み済みメッセージが、自分宛に届いていることを知ることができ、送信データのメモリへの書き込み完了を知ることができる。
【００２２】
上記マルチプロセッサシステムにおいて、前記第１のバス接続部は、前記書き込み済みメッセージを前記第２のプロセッサコアに対して前記内部バスを介して送信する場合に、前記送信データの前記メモリにおける書き込み位置を示す位置情報を、前記書き込み済みメッセージに含めて送信し、前記第２のバス接続部は、前記書き込み済みメッセージを受信した場合に、受信した前記書き込み済みメッセージから前記位置情報を取得し、前記第２のプロセッサコアは、前記第２のバス接続部から前記割り込み信号を受信した場合に、前記第２のバス接続部から前記位置情報を取得することが好ましい。
【００２３】
このような構成とすることで、第２のプロセッサコアは、送信データのメモリにおける書き込み位置を知ることができる。従って、第２のプロセッサコアは、この書き込み位置を指定してメモリからの送信データの読み出し要求を、第２のバス接続部及び内部バスを介してメモリインタフェース部に送信することができる。その結果、メモリインタフェース部がこの読み出し要求で指定された書き込み位置からデータを読み出して、読み出したデータを、内部バス及び第２のバス接続部を介して第２のプロセッサコアに返信することで、第２のプロセッサコアは、第１のプロセッサコアからの送信データを受信することができる。
【００２４】
上記マルチプロセッサシステムにおいて、応答要求は、ＷＲ−ＡＣＫ要求であり、所定の応答は、ＷＲ−ＡＣＫであってもよい。
【００２５】
このような構成とすることで、応答要求として、ＷＲ−ＡＣＫ要求をメモリインタフェース部に送信すると、その送信は、送信データの書き込み要求の送信の後であるので、ＷＲ−ＡＣＫ要求の処理は、送信データの書き込み要求に対する処理の後に、メモリインタフェース部において実行されることとなる。ここで、ＷＲ−ＡＣＫ要求は、ＷＲ−ＡＣＫを返すことの要求である。従って、ＷＲ−ＡＣＫ要求の処理の結果、ＷＲ−ＡＣＫが、送信データの書き込み要求に対する処理の完了後に第１のバス接続部に返ることとなる。
【００２６】
上記マルチプロセッサシステムは、１つの半導体基板上に集積化されていてもよい。
【００２７】
このようにすることで、マルチプロセッサシステム全体の物理的な大きさを、比較的コンパクトにすることができる。
【００２８】
なお、本発明は、上記マルチプロセッサシステムといった装置発明の態様に限ることなく、データ送信方法といった方法発明として実現することも可能である。
【発明を実施するための最良の形態】
【００２９】
以下、本発明を実施するための最良の形態を実施例に基づいて以下の順序で説明する。
Ａ．実施例：
Ａ１．マルチプロセッサシステムの概要構成：
Ａ２．データ送受信処理：
Ａ３．実施例の効果：
Ｂ．変形例：
【００３０】
Ａ．実施例：
Ａ１．マルチプロセッサシステムの概要構成：
図１は、本発明の一実施例としてのマルチプロセッサシステムの概要構成を示す説明図である。
【００３１】
図１に示すマルチプロセッサシステム１０は、複数のプロセッサコアを１つの半導体基板上に集積化したマイクロプロセッサである。具体的には、マルチプロセッサシステム１０は、プロセッサコアＰ１及びプロセッサコアＰ２を備えている。
【００３２】
また、マルチプロセッサシステム１０は、プロセッサコアＰ１側の構成要素として、プロセッサコアＰ１に接続されたバスインタフェース部Ｂ１及びバスインタフェース部Ｂ１に接続されたメッセージハンドラＭＨ１と、プロセッサコアＰ２側の構成要素として、プロセッサコアＰ２に接続されたバスインタフェース部Ｂ２及びバスインタフェース部Ｂ２に接続されたメッセージハンドラＭＨ２と、を備えている。
【００３３】
さらに、マルチプロセッサシステム１０は、メモリ２０と、メモリ２０に接続されたメモリインタフェース部ＭＩＦと、を備えている。このメモリ２０は共有メモリであり、メモリインタフェース部ＭＩＦは、プロセッサコアＰ１やプロセッサコアＰ２からの、データの書き込みや読み出しの要求に応じて、メモリ２０へのデータの書き込みや、メモリ２０からのデータの読み出しを行う機能部である。
【００３４】
そして、前述のバスインタフェース部Ｂ１，バスインタフェース部Ｂ２，メモリインタフェース部ＭＩＦは、互いにメモリアクセス用の内部バスＮＥＭＭによって接続されている。これとは別に、バスインタフェース部Ｂ１とバスインタフェース部Ｂ２とはメッセージ送信用の内部バスＮＥＳＳによって接続されている。
【００３５】
また、メッセージハンドラＭＨ１は割り込み信号線ＩＮＴ１でプロセッサコアＰ１に、メッセージハンドラＭＨ２は割り込み信号線ＩＮＴ２でプロセッサコアＰ２に、それぞれ接続されている。
【００３６】
前述のバスインタフェース部Ｂ１は、プロセッサコアＰ１及びメッセージハンドラＭＨ１を、内部バスＮＥＭＭ，ＮＥＳＳに接続するための機能部である。
【００３７】
前述のメッセージハンドラＭＨ１は、プロセッサコアＰ１宛のメッセージを、プロセッサコアＰ１に代わって受信し、このメッセージの受信をプロセッサコアＰ１に通知するための機能部である。また、メッセージハンドラＭＨ１は、プロセッサコアＰ１に代わって、プロセッサコアＰ２宛のメッセージを送信する機能部である。
【００３８】
従って、例えば、プロセッサコアＰ１がプロセッサコアＰ２宛にメッセージを送信しようとする場合、プロセッサコアＰ１は、バスインタフェース部Ｂ１にメッセージを送出し、バスインタフェース部Ｂ１は、このメッセージをメッセージハンドラＭＨ１に送信（転送）し、メッセージハンドラＭＨ１は、このメッセージを受け取ると、バスインタフェース部Ｂ１を介してプロセッサコアＰ２に向けてプロセッサコアＰ２宛のメッセージを送信するようにする。
【００３９】
なお、バスインタフェース部Ｂ２及びメッセージハンドラＭＨ１は、上述したバスインタフェース部Ｂ１及びメッセージハンドラＭＨ２と同様な機能部であるので、説明を省略する。
【００４０】
なお、前述のバスインタフェース部Ｂ１及びメッセージハンドラＭＨ１が請求項における第１のバス接続部に、前述のバスインタフェース部Ｂ２及びメッセージハンドラＭＨ２が請求項における第２のバス接続部に、それぞれ相当する。
【００４１】
前述の内部バスＮＥＳＳ及び内部バスＮＥＭＭでは、データの書き込み要求などの各種メッセージが、いわゆるパケット形式のデータとして伝送される。また、プロセッサコアＰ１，プロセッサコアＰ２，メモリインタフェース部ＭＩＦには、パケットの送信元及び送信先を特定するための識別子（ＩＤ）が予め設定されている。
【００４２】
かかる構成のマルチプロセッサシステム１０において、一方のプロセッサコアから他方のプロセッサコアにデータを送信する場合、メモリ２０を介してデータの送受信が行われる。すなわち、相手にデータを送ろうとするプロセッサコア（送信側プロセッサコア）が、メモリ２０にそのデータを書き込み、他方のプロセッサコア（受信側プロセッサコア）が、メモリ２０からこのデータを読み出す。
【００４３】
かかるデータの送受信動作において、送信側プロセッサコアは、受信側プロセッサコアに対して、送ろうとするデータのメモリへの書き込み済みを通知するためのメッセージを送信するようにする。ここで、送ろうとするデータがメモリ２０に書き込まれる前に、前述のメッセージが受信側プロセッサコアに届いてしまうと、受信側プロセッサコアは、このデータとは異なる古いデータを読み出すこととなり、プロセッサコアＰ１及びプロセッサコアＰ２においてデータのコヒーレンシが保たれなくなる。
【００４４】
そこで、マルチプロセッサシステム１０では、以下に説明するデータ送受信処理により、プロセッサコアＰ１及びプロセッサコアＰ２におけるデータのコヒーレンシを維持するようにしている。なお、以下に説明するデータ送受信処理では、プロセッサコアＰ１が送信側プロセッサコアであり、プロセッサコアＰ２が受信側のプロセッサコアであり、プロセッサコアＰ１がプロセッサコアＰ２にデータを送ろうとするものとする。
【００４５】
Ａ２．データ送受信処理：
図２は、マルチプロセッサシステム１０において実行されるデータ送受信処理の手順の一部を示すフローチャートである。
【００４６】
上述したように、マルチプロセッサシステム１０におけるデータの送受信動作は、大きく分けて、送信側のプロセッサコアＰ１が、メモリ２０にデータを書き込む前半の処理（データ送信処理）と、受信側のプロセッサコアＰ２が、メモリ２０からデータを読み出す後半の処理（データ受信処理）と、から成る。そして、図１では、データ送信処理における手順を主として示している。
【００４７】
図２において、最も左側のフローチャートは送信側のメッセージハンドラＭＨ１におけるデータ送信処理の手順を、左から２番目のフローチャートは送信側のプロセッサコアＰ１におけるデータ送信処理の手順を、左から３番目のフローチャートは送信側のバスインタフェース部Ｂ１におけるデータ送信処理の手順を、最も右側のフローチャートはメモリインタフェース部ＭＩＦにおけるデータ送受信処理の手順を、それぞれ示す。
【００４８】
なお、図２において、各破線の矢印に付与された数字（［１］，［２］など）は、各構成要素間におけるデータ等のやりとりを特定するための数字であり、図１に示す数字と対応している。
【００４９】
図２に示すデータ送信処理が開始されると、まずプロセッサコアＰ１は、バスインタフェース部Ｂ１に対して、メモリインタフェース部ＭＩＦ宛のデータの書き込み要求（以下、データＷＲ要求と呼ぶ。）を送信する（ステップＳ１０２）。このデータＷＲ要求では、プロセッサコアＰ２に送ろうとするデータを送信する。
【００５０】
一方、バスインタフェース部Ｂ１は、このデータＷＲ要求を受信すると（ステップＳ１０４）、メモリインタフェース部ＭＩＦ宛のデータＷＲ要求パケットを生成し、このパケットを、内部バスＮＥＭＭを介してメモリインタフェース部ＭＩＦに送信する（ステップＳ１０６）。
【００５１】
図３は、バスインタフェース部Ｂ１から、内部バスＮＥＭＭを介してメモリインタフェース部ＭＩＦに送信されるデータＷＲ要求のパケットのデータ構造を示す説明図である。
【００５２】
図３に示すように、データＷＲ要求のパケットは、先頭１６バイトのヘッダ部と、ヘッダ部に続く可変長（最大６４バイト）のペイロード部と、から成る。ヘッダ部は、通信内容の種類（この場合、書き込み要求）を示すフィールド（ＴＹＰＥ），データサイズを示すフィールド（Ｄｓｉｚｅ），宛先ＩＤを示すフィールド（ＤＩＤ），送信元ＩＤを示すフィールド（ＳＩＤ），トランザクションＩＤを示すフィールド（ＴＩＤ）を備えている。また、ヘッダ部は、メモリ２０において、データを書き込むべきアドレスを指定するフィールド（Ａ０〜Ａ３）を備えている。なお、アドレスフィールドＡ３より下の「−」は、いずれかのデータのために割り当てられていないフィールドを示す。
【００５３】
一方、ペイロード部は、メモリ２０に書き込むデータを格納するフィールド（Ｄ０〜Ｄ６３）を備えている。
【００５４】
そして、バスインタフェース部Ｂ１は、かかるデータＷＲ要求パケットにおいて、ＤＩＤとしてメモリインタフェース部ＭＩＦのＩＤを、ＳＩＤとしてプロセッサコアＰ１のＩＤを、データを書き込むべきアドレスとしてその先頭アドレス（ポインタ）を、ＴＹＰＥとして書き込み要求を示すデータを、それぞれ格納し、プロセッサコアＰ１から受信したプロセッサコアＰ２に送ろうとするデータをペイロード部に格納すると共に、他のフィールド（Ｄｓｉｚｅ，ＴＩＤ）に所定のデータを格納してメモリインタフェース部ＭＩＦに対して送信する。
【００５５】
図２に戻って、メモリインタフェース部ＭＩＦは、内部バスＮＥＭＭを介してこのデータＷＲ要求を受信し（ステップＳ１０８）、このデータＷＲ要求を、図示せざるバッファに格納する。
【００５６】
ここで、メモリインタフェース部ＭＩＦは、この図示せざるバッファに到着した順序で、プロセッサコアＰ１やプロセッサコアＰ２などからの書き込みや読み出し等の要求の処理を実行する。従って、前述のデータＷＲ要求がバスインタフェース部Ｂ１から到着した際に、既にプロセッサコアＰ２からの書き込み要求等が図示せざるバッファに格納されていれば、このデータＷＲ要求の処理は、到着後すぐには実行されないこととなる。
【００５７】
一方、プロセッサコアＰ１は、ステップＳ１０２の処理としてデータＷＲ要求をバスインタフェース部Ｂ１に送信した後、直ぐに、送ろうとするデータがメモリ２０に書き込まれ済みであることをプロセッサコアＰ２に通知するために、プロセッサコアＰ２宛の完了通知要求を、バスインタフェース部Ｂ１に対して送信する（ステップＳ１１０）。かかる完了通知要求には、データＷＲ要求において指定したポインタが含まれている。
【００５８】
バスインタフェース部Ｂ１は、この完了通知要求を受信すると（ステップＳ１１２）、プロセッサコアＰ２宛の要求であるので、この完了通知要求をメッセージハンドラＭＨ１に対して送信する（ステップＳ１１４）。
【００５９】
メッセージハンドラＭＨ１は、完了通知要求をバスインタフェース部Ｂ１から受信すると（ステップＳ１１６）、送ろうとするデータがメモリ２０に書き込み済みであることをプロセッサコアＰ２に通知する前に、本発明の特徴部分であるところの、メモリインタフェース部ＭＩＦ宛のＷＲ−ＡＣＫ（Acknowledge）要求を、バスインタフェース部Ｂ１に対して送信する（ステップＳ１１８）。
【００６０】
このＷＲ−ＡＣＫ要求とは、先に送信したデータＷＲ要求の処理が完了した後に所定の応答（ＡＣＫ）を返すことを要求するための応答要求メッセージである。
【００６１】
そして、バスインタフェース部Ｂ１は、このＷＲ−ＡＣＫ要求を受信すると（ステップＳ１２０）、メモリインタフェース部ＭＩＦ宛のＷＲ−ＡＣＫ要求パケットを生成し、このパケットを、内部バスＮＥＭＭを介してメモリインタフェース部ＭＩＦに送信する（ステップＳ１２２）。
【００６２】
図４は、バスインタフェース部Ｂ１から、内部バスＮＥＭＭを介してメモリインタフェース部ＭＩＦに送信されるＷＲ−ＡＣＫ要求のパケットのデータ構造を示す説明図である。
【００６３】
図４に示すように、ＷＲ−ＡＣＫ要求のパケットの構造は、図３に示すデータＷＲ要求のパケットのうち、一部のフィールド（Ｄｓｉｚｅ，ＴＩＤ，Ａ０〜Ａ３）を除くヘッダ部に相当するパケットである。なお、ＤＩＤとしてメモリインタフェース部ＭＩＦのＩＤが、ＳＩＤとしてプロセッサコアＰ１のＩＤが、ＴＹＰＥとしてＷＲ−ＡＣＫ要求を示すデータが、それぞれ格納される。
【００６４】
このようにＷＲ−ＡＣＫ要求パケットが、データＷＲ要求パケットのうち、ヘッダ部に相当するデータだけで構成されるのは、上述したように、ＷＲ−ＡＣＫ要求は、先に送信したデータＷＲ要求の処理が完了した後にＡＣＫを返すことを要求するためのメッセージであり、メモリ２０にいずれかのデータを書き込むことを要求するメッセージではないためである。
【００６５】
図２に戻って、メモリインタフェース部ＭＩＦは、内部バスＮＥＭＭを介してこのＷＲ−ＡＣＫ要求を受信すると（ステップＳ１２４）、前述のデータＷＲ要求と同様に、図示せざるバッファに格納する。
【００６６】
ここで、図示せざるバッファには、ステップＳ１０８の処理においてバスインタフェース部Ｂ１から受信したデータＷＲ要求が既に格納されているので、少なくともこのデータＷＲ要求の処理が実行された後に、このＷＲ−ＡＣＫ要求の処理が実行されることとなる。
【００６７】
そして、メモリインタフェース部ＭＩＦは、ステップＳ１０８の処理において受信したデータＷＲ要求の処理を実行して、プロセッサコアＰ２に送ろうとするデータを、データＷＲ要求で指定されたポインタを先頭アドレスとしてメモリ２０に書きこむ（ステップＳ１２６）。
【００６８】
このデータの書き込みの後、メモリインタフェース部ＭＩＦは、ステップＳ１２４の処理において受信したＷＲ−ＡＣＫ要求の処理を実行して、プロセッサコアＰ１宛のＷＲ−ＡＣＫを、内部バスＮＥＭＭを介してバスインタフェース部Ｂ１に対して送信する（ステップＳ１２８）。
【００６９】
バスインタフェース部Ｂ１は、メモリインタフェース部ＭＩＦからプロセッサコアＰ１宛のＷＲ−ＡＣＫを受信すると（ステップＳ１３０）、このＷＲ−ＡＣＫをメッセージハンドラＭＨ１に送信する（ステップＳ１３２）。
【００７０】
メッセージハンドラＭＨ１は、メモリインタフェース部ＭＩＦからのＷＲ−ＡＣＫを受信すると（ステップＳ１３４）、ステップＳ１１６の処理で受信した完了通知要求を実行するために、プロセッサコアＰ２宛の完了通知の書き込み要求（以下、「完了通知ＷＲ要求」と呼ぶ。）を、バスインタフェース部Ｂ１に対して送信する（ステップＳ１３６）。この完了通知ＷＲ要求には、完了通知要求によって受信したポインタが含まれている。
【００７１】
バスインタフェース部Ｂ１は、この完了通知ＷＲ要求を受信すると(ステップＳ１３８)、プロセッサコアＰ２宛の完了通知ＷＲ要求パケットを生成し、このパケットを、内部バスＮＥＳＳを介してバスインタフェース部Ｂ２に送信する（ステップＳ１４０）。
【００７２】
図５は、バスインタフェース部Ｂ１から内部バスＮＥＳＳを介してバスインタフェース部Ｂ２に送信される完了通知ＷＲ要求のパケットのデータ構造を示す説明図である。
【００７３】
図５に示すように、完了通知ＷＲ要求のパケットの構造は、４バイトのヘッダ部と、ヘッダ部に続く４バイトのペイロード部と、から成る。なお、ヘッダ部における各フィールドの意味は、図３に示すデータＷＲ要求パケットのヘッダ部における各フィールドの意味と同じであるので説明を省略する。
【００７４】
バスインタフェース部Ｂ１は、かかる完了通知ＷＲ要求パケットにおいて、ＤＩＤとしてプロセッサコアＰ２のＩＤを、ＳＩＤとしてプロセッサコアＰ１のＩＤを、ＴＹＰＥとして書き込み要求を、それぞれ格納し、ペイロード部（Ｄ０〜Ｄ３）に、メッセージハンドラＭＨ１から送信された完了通知ＷＲ要求に含まれていたポインタを格納して、内部バスＮＥＳＳを介してバスインタフェース部Ｂ２に対して送信する。
【００７５】
以上説明したデータ送信処理では、メッセージハンドラＭＨ１は、メモリインタフェース部ＭＩＦからＷＲ−ＡＣＫを受信した後に、プロセッサコアＰ１からの完了通知要求で受信したポインタを、プロセッサコアＰ２宛の完了通知ＷＲ要求に含めて、バスインタフェース部Ｂ１を介して受信側のバスインタフェース部Ｂ２に送信するようにしている。
【００７６】
ここで、メッセージハンドラＭＨ１がＷＲ−ＡＣＫを受信するのは、メモリインタフェース部ＭＩＦにおいて、ＷＲ−ＡＣＫ要求の処理が実行された後である。そして、このＷＲ−ＡＣＫ要求は、データＷＲ要求よりも後にメモリインタフェース部ＭＩＦに送信されているので、メモリインタフェース部ＭＩＦは、データＷＲ要求の処理を実行した後に、ＷＲ−ＡＣＫ要求の処理を実行することとなる。従って、メッセージハンドラＭＨ１がＷＲ−ＡＣＫを受信するのは、メモリインタフェース部ＭＩＦにおいて、データＷＲ要求の処理が実行された後となる。
【００７７】
それ故、受信側のバスインタフェース部Ｂ２が完了通知ＷＲ要求を受信するのは、メモリインタフェース部ＭＩＦにおいて、データＷＲ要求の処理が実行され、プロセッサコアＰ２に送ろうとするデータがメモリ２０に書き込まれた後となる。
【００７８】
その結果、後述するデータ受信処理においてプロセッサコアＰ２がデータをメモリ２０から読み出すときには、既にプロセッサコアＰ２に送ろうとするデータはメモリ２０に書き込まれている状態であるので、プロセッサコアＰ１及びプロセッサコアＰ２においてデータのコヒーレンシは保たれることとなる。
【００７９】
以下、受信側で行われるデータ受信処理について説明する。
【００８０】
図６は、マルチプロセッサシステム１０において実行されるデータ送受信処理の手順の一部を示すフローチャートである。図６では、図２に示すデータ送信処理に続く、データ受信処理の手順を主として示している。
【００８１】
図６において、最も左側のフローチャートは受信側のメッセージハンドラＭＨ２におけるデータ送信処理の手順を、左から２番目のフローチャートは受信側のプロセッサコアＰ２におけるデータ受信処理の手順を、左から３番目のフローチャートは受信側のバスインタフェース部Ｂ２におけるデータ送信処理の手順を、最も右側のフローチャートはメモリインタフェース部ＭＩＦにおけるデータ送受信処理の手順を、それぞれ示す。なお、メモリインタフェース部ＭＩＦにおける手順は、図２に示すステップＳ１２８の処理に続く処理の手順を示している。なお、各破線の矢印に付与された数字は、図２に示す数字と同じ意味の数字であるので、説明を省略する。
【００８２】
受信側のバスインタフェース部Ｂ２が、内部バスＮＥＳＳを介して、送信側のバスインタフェース部Ｂ１から前述の完了通知ＷＲ要求を受信すると（ステップＳ２０２）、バスインタフェース部Ｂ２は、この完了通知ＷＲ要求をメッセージハンドラＭＨ２に送信する（ステップＳ２０４）。
【００８３】
メッセージハンドラＭＨ２は、完了通知ＷＲ要求を受信すると（ステップＳ２０６）、かかる完了通知ＷＲ要求に含まれるポインタを取得して、自己が備えるレジスタ（図示省略）に格納すると共に、割り込み信号を生成して割り込み信号線ＩＮＴ２を介してプロセッサコアＰ２に送信する（ステップＳ２０８）。
【００８４】
プロセッサコアＰ２は、割り込み信号をメッセージハンドラＭＨ２から受信すると（ステップＳ２１０）、メッセージハンドラＭＨ２のレジスタに格納されているポインタを受け取るために、ポインタの送信要求をバスインタフェース部Ｂ２に対して送信する（ステップＳ２１２）。バスインタフェース部Ｂ２は、ポインタ送信要求をプロセッサコアＰ２から受信すると（ステップＳ２１４）、このポインタ送信要求をメッセージハンドラＭＨ２に送信する（ステップＳ２１６）。
【００８５】
メッセージハンドラＭＨ２は、ポインタ送信要求をバスインタフェース部Ｂ２から受信すると（ステップＳ２１８）、レジスタに格納したポインタをバスインタフェース部Ｂ２に対して送信する（ステップＳ２２０）。バスインタフェース部Ｂ２は、メッセージハンドラＭＨ２からポインタを受信すると（ステップＳ２２２）、このポインタをプロセッサコアＰ２に送信し（ステップＳ２２４）、プロセッサコアＰ２は、このポインタを受信して（ステップＳ２２６）、プロセッサコアＰ１がメモリ２０に書き込んだデータのポインタを入手することができる。
【００８６】
そして、プロセッサコアＰ２は、バスインタフェース部Ｂ１に対して、メモリインタフェース部ＭＩＦ宛のデータの読み出し要求（以下、「データＲＤ要求」と呼ぶ。）を送信する（ステップＳ２２８）。なお、この読み出し要求では、プロセッサコアＰ２が入手したポインタが指定されている。
【００８７】
バスインタフェース部Ｂ２は、データＲＤ要求をプロセッサコアＰ２から受信すると（ステップＳ２３０）、メモリインタフェース部ＭＩＦ宛のデータＲＤ要求パケットを生成し、このパケットを内部バスＮＥＭＭを介してメモリインタフェース部ＭＩＦに送信する（ステップＳ２３２）。
【００８８】
メモリインタフェース部ＭＩＦは、内部バスＮＥＭＭを介してこのデータＲＤ要求を受信し（ステップＳ２３４）、このデータＲＤ要求を、図示せざるバッファに格納する。
【００８９】
その後、メモリインタフェース部ＭＩＦは、このデータＲＤ要求の処理を実行して、データＲＤ要求で指定されたポインタに基づき、メモリ２０からデータを読み出し（ステップＳ２３６）、読み出したデータを、データＲＤ要求に対する応答メッセージ（データＲＤ応答）のパケットとして、内部バスＮＥＭＭを介してバスインタフェース部Ｂ２に送信する（ステップＳ２３８）。
【００９０】
上述したように、図２に示すデータ送信処理が完了した時点、つまり、バスインタフェース部Ｂ１がバスインタフェース部Ｂ２に完了通知ＷＲ要求を送信した時点で、メモリ２０には、既にプロセッサコアＰ２に書き込むべきデータが書き込まれているので、このステップＳ２３６の処理において、メモリインタフェース部ＭＩＦが読み出したデータは、古いデータではなく、プロセッサコアＰ１がプロセッサコアＰ２に送ろうとするデータとなっている。
【００９１】
バスインタフェース部Ｂ２は、メモリインタフェース部ＭＩＦから前述のデータＲＤ応答パケットを受信すると、このデータＲＤ応答をプロセッサコアＰ２に対して送信する（ステップＳ２４２）。
【００９２】
そして、プロセッサコアＰ２は、このデータＲＤ応答を受信して（ステップＳ２４４）、プロセッサコアＰ１がプロセッサコアＰ２に送ろうとするデータを受信することができる。
【００９３】
このようにして、プロセッサコアＰ１がプロセッサコアＰ２に送ろうとするデータが、プロセッサコアＰ２に受信されるので、プロセッサコアＰ１とプロセッサコアＰ２とで、データのコヒーレンシが保たれることとなる。
【００９４】
Ａ３．実施例の効果：
以上説明したように、メッセージハンドラＭＨ１は、プロセッサコアＰ１からプロセッサコアＰ２宛の完了通知要求を受信した場合に、ＷＲ−ＡＣＫ要求をメモリインタフェース部ＭＩＦに送信するようにし、このＷＲ−ＡＣＫ要求に対する応答であるＷＲ−ＡＣＫをメモリインタフェース部ＭＩＦから受信した場合に、ポインタを含む完了通知ＷＲ要求をプロセッサコアＰ２宛に送信するようにしている。
【００９５】
ここで、メッセージハンドラＭＨ１がＷＲ−ＡＣＫを受信するのは、メモリインタフェース部ＭＩＦにおいて、ＷＲ−ＡＣＫ要求の処理が実行された後である。そして、このＷＲ−ＡＣＫ要求は、データＷＲ要求よりも後にメモリインタフェース部ＭＩＦに送信されているので、メモリインタフェース部ＭＩＦは、データＷＲ要求の処理を実行した後に、ＷＲ−ＡＣＫ要求の処理を実行することとなる。従って、メッセージハンドラＭＨ１がＷＲ−ＡＣＫを受信するのは、メモリインタフェース部ＭＩＦにおいて、データＷＲ要求の処理が実行された後となる。
【００９６】
それ故、バスインタフェース部Ｂ２が完了通知ＷＲ要求を受信するのは、メモリインタフェース部ＭＩＦにおいて、データＷＲ要求の処理が実行され、プロセッサコアＰ２に送ろうとするデータがメモリ２０に書き込まれた後となる。
【００９７】
その結果、プロセッサコアＰ２がデータをメモリ２０から読み出すときには、既にプロセッサコアＰ１がプロセッサコアＰ２に送ろうとするデータはメモリ２０に書き込まれている状態であるので、プロセッサコアＰ１及びプロセッサコアＰ２においてデータのコヒーレンシは保たれることとなる。
【００９８】
また、プロセッサコアＰ１は、データＷＲ要求をバスインタフェース部Ｂ１に送信した後、直ぐに、プロセッサコアＰ２宛の完了通知要求をバスインタフェース部Ｂ１に対して送信するようにしている。そして、この完了通知要求をバスインタフェース部Ｂ１を介して受信したメッセージハンドラＭＨ１は、バスインタフェース部Ｂ１を介してＷＲ−ＡＣＫ要求をメモリインタフェース部ＭＩＦに送信している。従って、メモリインタフェース部ＭＩＦは、データＷＲ要求をバスインタフェース部Ｂ１から受信してから、比較的短時間の後に、ＷＲ−ＡＣＫ要求を受信することとなる。
【００９９】
それ故、メモリインタフェース部ＭＩＦにおいて、データＷＲ要求の処理が実行されてから、比較的短時間の後にＷＲ−ＡＣＫ要求の処理が実行されることとなり、プロセッサコアＰ２に送ろうとするデータがメモリ２０に書き込まれてから、比較的短時間の後に、ＷＲ−ＡＣＫがメッセージハンドラＭＨ１に送信されて、完了通知ＷＲ要求がプロセッサコアＰ２宛に送信されることとなる。
【０１００】
その結果、プロセッサコアＰ２は、プロセッサコアＰ２に送ろうとするデータがメモリ２０に書き込まれてから、比較的短時間の後に、このデータを読み出すことができるので、マルチプロセッサシステム１０のスループットの低下を抑制することができる。
【０１０１】
また、マルチプロセッサシステム１０では、内部バスを流れる書き込み等の要求を監視する機能部など、コヒーレンシ維持のための特別な機能部を設けていないので、マルチプロセッサシステム１０の製造コストの上昇を抑制することができる。
【０１０２】
ここで、メッセージハンドラＭＨ１は、ＷＲ−ＡＣＫ要求に代えて、プロセッサコアＰ２へ送ろうとするデータの読み出し要求を、メモリインタフェース部ＭＩＦに送信するようにし、この読み出し要求に対する応答メッセージ（読み出したデータを含む応答メッセージ）を受信した場合に、前述の完了通知ＷＲ要求をプロセッサコアＰ２宛に送信するようにしても、コヒーレンシを保つことは可能である。
【０１０３】
しかしながら、このデータの読み出し要求はメモリインタフェース部ＭＩＦにメモリアクセスを強いるものであるので、メモリからのデータの読み出し完了までに比較的長時間を要することとなる。
【０１０４】
一方、ＷＲ−ＡＣＫ要求を受信したメモリインタフェース部ＭＩＦは、メモリアクセスすることなしに、ＷＲ−ＡＣＫ要求をメッセージハンドラＭＨ１宛に送信することができる。従って、応答メッセージを返信するために要する時間を比較的短時間に抑えることができ、マルチプロセッサシステム１０のスループットの低下を抑制することができる。
【０１０５】
Ｂ．変形例：
なお、本発明は、前述の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において、種々の態様において実施することが可能であり、例えば以下のような変形も可能である。
【０１０６】
Ｂ１．変形例１：
上述した実施例において、メモリインタフェース部ＭＩＦは、ＷＲ−ＡＣＫ要求を受信した後にデータＷＲ要求の処理を実行するものとしていたが、これに限らず、ＷＲ−ＡＣＫ要求を受信する前にデータＷＲ要求の処理を実行していても構わない。このような場合でも、ＷＲ−ＡＣＫ要求は、データＷＲ要求の処理の後に処理されるので、メッセージハンドラＭＨ１は、プロセッサコアＰ２に送ろうとするデータがメモリ２０に書き込まれた後に完了通知ＷＲ要求をプロセッサコアＰ２宛に送信することとなる。その結果、上述した実施例と同様に、プロセッサコアＰ１とプロセッサコアＰ２とでデータのコヒーレンシが保たれることとなる。
【０１０７】
Ｂ２．変形例２：
上述した実施例では、マルチプロセッサシステム１０は、バスインタフェース部Ｂ１（Ｂ２）とメッセージハンドラＭＨ１（ＭＨ２）とは、別個の機能部である構成であったが、メッセージハンドラＭＨ１（ＭＨ２）がバスインタフェース部Ｂ１（Ｂ２）の一部である構成であっても構わない。なお、この場合、バスインタフェース部Ｂ１（Ｂ２）が、請求項における第１（第２）のバス接続部に相当する。
【０１０８】
Ｂ３．変形例３：
上述した実施例では、メッセージハンドラＭＨ２は、完了通知ＷＲ要求を受信した場合に、プロセッサコアＰ２に対して割り込み信号を送信していたが、本発明は、これに限定されるものではない。受信側のメッセージハンドラが、完了通知ＷＲ要求を送信側のメッセージハンドラから受信した場合に、完了通知ＷＲ要求に含まれるポインタを自己の有するレジスタに書き込んでおくだけで、受信側のプロセッサコアに明示的に通知しない構成であっても構わない。
【０１０９】
かかる構成であっても、例えば、受信側のプロセッサコアが、定期的に、或いは、処理負荷が比較的少ないときに、受信側のメッセージハンドラに対してポインタ送信要求を送信する構成であれば、受信側のプロセッサコアはポインタを入手することができると共に、コヒーレンシを維持することが可能となる。
【０１１０】
Ｂ４．変形例４：
上述した実施例では、マルチプロセッサシステム１０は、メモリアクセス用と、メッセージ送信用と、で異なる内部バス（内部バスＮＥＭＭ，ＮＥＳＳ）を備える構成であったが、メモリアクセス用と、メッセージ送信用と、で同一の内部バスを備える構成であっても構わない。かかる構成であっても上述した実施例と同様に、コヒーレンシの維持が可能となる。
【０１１１】
Ｂ５．変形例５：
上述した実施例では、マルチプロセッサシステム１０は、プロセッサコアＰ１及びプロセッサコアＰ２が、１つの半導体基板上に集積化されているものとしたが、本発明はこれに限定されるものではない。例えば、プロセッサコアＰ１，バスインタフェース部Ｂ１，メッセージハンドラＭＨ１が１つの半導体基板上に集積化され、同様に、プロセッサコアＰ２，バスインタフェース部Ｂ２，メッセージハンドラＭＨ２が１つの半導体上に集積化され、メモリ２０及びメモリインタフェース部ＭＩＦが１つの半導体基板上に集積化され、それぞれの半導体基板がバスで接続するといった構成であっても構わない。
【０１１２】
Ｂ６．変形例６：
上述した実施例では、マルチプロセッサシステム１０はプロセッサコアＰ１及びプロセッサコアＰ２の２つのプロセッサコアを備える構成であったが、３つ以上のプロセッサコアを備える構成であっても構わない。
【図面の簡単な説明】
【０１１３】
【図１】本発明の一実施例としてのマルチプロセッサシステムの概要構成を示す説明図である。
【図２】マルチプロセッサシステム１０において実行されるデータ送受信処理の手順の一部を示すフローチャートである。
【図３】バスインタフェース部Ｂ１から内部バスＮＥＭＭを介してメモリインタフェース部ＭＩＦに送信されるデータＷＲ要求のパケットのデータ構造を示す説明図である。
【図４】バスインタフェース部Ｂ１から内部バスＮＥＭＭを介してメモリインタフェース部ＭＩＦに送信されるＷＲ−ＡＣＫ要求のパケットのデータ構造を示す説明図である。
【図５】バスインタフェース部Ｂ１から内部バスＮＥＳＳを介してバスインタフェース部Ｂ２に送信される完了通知ＷＲ要求のパケットのデータ構造を示す説明図である。
【図６】マルチプロセッサシステム１０において実行されるデータ送受信処理の手順の一部を示すフローチャートである。
【符号の説明】
【０１１４】
１０…マルチプロセッサシステム
２０…メモリ
Ｐ１…プロセッサコア
Ｐ２…プロセッサコア
Ｂ１…バスインタフェース部
Ｂ２…バスインタフェース部
ＭＨ１…メッセージハンドラ
ＭＨ２…メッセージハンドラ
ＭＩＦ…メモリインタフェース部
ＮＥＭＭ…内部バス
ＮＥＳＳ…内部バス
ＩＮＴ１…信号線
ＩＮＴ２…信号線
【図１】
2007148748.tif 000003
【図２】
2007148748.tif 000004
【図３】
2007148748.tif 000005
【図４】
2007148748.tif 000006
【図５】
2007148748.tif 000007
【図６】
2007148748.tif 000008