(57)【要約】【課題】マルチプロセッサシステムの型式に関わらず、任意のプロセッサからの共有メモリに対するアクセス情報を監視することが可能な共有メモリのアクセス監視方法及び装置を提供する。【解決手段】共有メモリボード100のバスインタフェース部110は、複数のプロセッサ210_1〜210_nの内の任意の要求元プロセッサ210_1から、プロセッサの識別子(210_1)及び共有メモリSMに対するアクセス権の獲得要求RQ1(又は解放要求)が設定されたリクエストパケットRPを受信する。そして、バスインタフェース部110は、アクセス権の獲得要求RQ1(又は解放要求)に応じて、共有メモリSMに要求元プロセッサの識別子(210_1)を設定(又は解除)すると共に要求元プロセッサの識別子(210_1)の設定(又は解除)に対応してアクセス権の獲得ACK1(又は解放)を示すアンサパケットAPを生成し、全てのプロセッサ210_1〜210_nにブロードキャストする。【選択図】図3
2008046969.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサの内の任意の要求元プロセッサから、該要求元プロセッサの識別子、及び共有メモリに対するアクセス権の獲得要求又は解放要求が設定されたリクエストパケットを受信する第１ステップと、
該アクセス権の獲得要求又は解放要求に応じて、該共有メモリに該要求元プロセッサの識別子をそれぞれ設定又は解除する第２ステップと、
該要求元プロセッサの識別子の設定又は解除にそれぞれ対応して該アクセス権の獲得又は解放を示すアンサパケットを生成し、全てのプロセッサにブロードキャストする第３ステップと、
を備えたことを特徴とする共有メモリのアクセス監視方法。
【請求項２】
複数のプロセッサの内の任意の要求元プロセッサからの共有メモリに対するアクセス権の獲得又は解放を要求するリクエストパケットへの応答として、全てのプロセッサにブロードキャストされたパケットであって、該共有メモリへの該要求元プロセッサの識別子の設定又は解除にそれぞれ対応して該アクセス権の獲得又は解放を示すアンサパケットを受信する第１ステップと、
該アンサパケットにより、該アクセス権の獲得又は解放を示すか判定する第２ステップと、
を備えたことを特徴とする共有メモリのアクセス監視方法。
【請求項３】
複数のプロセッサの内の任意の要求元プロセッサから、該要求元プロセッサの識別子、及び共有メモリに対するアクセス権の獲得要求又は解放要求が設定されたリクエストパケットを受信する第１手段と、
該アクセス権の獲得要求又は解放要求に応じて、該共有メモリに該要求元プロセッサの識別子をそれぞれ設定又は解除する第２手段と、
該要求元プロセッサの識別子の設定又は解除にそれぞれ対応して該アクセス権の獲得又は解放を示すアンサパケットを生成し、全てのプロセッサにブロードキャストする第３手段と、
を備えたことを特徴とする共有メモリのアクセス監視装置。
【請求項４】
請求項３において、
該共有メモリが、各プロセッサから読出又は書込されるデータを格納するためのデータ領域と、該データ領域に対する該アクセス権の獲得又は解放の状態を示すアクセス権表示ビット、及びプロセッサの識別子を示す識別子表示ビットを含む排他制御情報の領域とを有し、
該第２手段が、該リクエストパケットに該獲得要求が設定されており且つ該アクセス権表示ビットが該アクセス権の解放状態を示す時、該アクセス権表示ビットを獲得状態に更新すると共に該識別子表示ビットに該要求元プロセッサの識別子を設定する第４手段と、
該リクエストパケットに該解放要求が設定されており且つ該アクセス権表示ビット及び該識別子表示ビットがそれぞれ該アクセス権の獲得状態及び該要求元プロセッサの識別子を示す時、該アクセス権表示ビットを解放状態に更新すると共に、該識別子表示ビットに設定されている該要求元プロセッサの識別子を消去する第５手段とを含むことを特徴とした共有メモリのアクセス監視装置。
【請求項５】
複数のプロセッサの内の任意の要求元プロセッサからの共有メモリに対するアクセス権の獲得又は解放を要求するリクエストパケットへの応答として、全てのプロセッサにブロードキャストされたパケットであって、該共有メモリへの該要求元プロセッサの識別子の設定又は解除にそれぞれ対応して該アクセス権の獲得又は解放を示すアンサパケットを受信する第１手段と、
該アンサパケットにより、該アクセス権の獲得又は解放を示すか判定する第２手段と、
を備えたことを特徴とする共有メモリのアクセス監視装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有メモリのアクセス監視方法及び装置に関し、特に複数のプロセッサから共有メモリへアクセスするマルチプロセッサシステムにおける共有メモリのアクセス監視方法及び装置に関するものである。
【背景技術】
【０００２】
上記のような共有メモリのアクセス監視技術の従来例[1]及び[2]を、図11及び12を参照して以下に説明する。
【０００３】
従来例[1] (共通バス型)：図11
図11に示すマルチプロセッサシステム10は、共有メモリSMを搭載した共有メモリボード100と、この共有メモリボード100と共通バスCBを介して接続されたn個のプロセッサ210_1〜210_n(以下、符号210で総称することがある。)及びn個のキャッシュメモリCM1〜CMn(以下、符号CMで総称することがある。)をそれぞれが搭載したプロセッサボード200_1〜200_n(以下、符号200で総称することがある。)と、共通バスCBに接続され各プロセッサ210_1〜210_nからの共有メモリSMへのアクセスを調停するバス調停装置300とで構成されており、一般に共通バス型マルチプロセッサシステムと呼ばれている。
【０００４】
このマルチプロセッサシステム10においては、任意のプロセッサ、例えばプロセッサ210_1が、同図に点線で示すように共有メモリSMに対してデータ読出又は書込(アクセス)を行った際、そのアクセス情報(すなわち、任意のプロセッサが共有メモリSMに対してアクセスを実行しているか否かを示す情報)、並びに読み出した又は書き込んだデータを、同図に一点鎖線で示すように、他のプロセッサ210_2〜210_nがそれぞれ共通バスCBを介して監視(スヌープ)することにより、キャッシュメモリCM2〜CMnに反映する。
【０００５】
これにより、各プロセッサ210は、自プロセッサボード200内のキャッシュメモリCMにアクセスすれば共有メモリSMの最新データを取得することができ、以て共有メモリSMへのアクセスに掛かる処理時間を短縮することが可能となる。
【０００６】
しかしながら、この共通バス型マルチプロセッサシステムには下記(1)〜(4)に示す問題がある。
【０００７】
(1) 或るプロセッサによる共有メモリへのアクセス中、他のプロセッサは共通バスを使用して共有メモリへアクセスすることが出来ないため、システム全体の共有メモリアクセス時間にロスが生じる。
【０００８】
(2) プロセッサボードの増設に伴って共通バスの品質が劣化するため、設置可能なプロセッサボート数に制限があり、大規模なマルチプロセッサシステムを構築することが出来ない。
【０００９】
(3) 或るプロセッサの障害により共通バスがスタックした場合、障害が復旧される迄、他のプロセッサから共有メモリへアクセスすることが出来ない。
【００１０】
(4) 上記(3)の障害発生時、障害箇所の切り分けが困難である。
【００１１】
これらの問題に対処するため、以下に説明する従来例[2]が既に提案されている。
【００１２】
従来例[2] (スター型)：図12
図12に示すマルチプロセッサシステム10は、上記の従来例[1]で示した構成とは異なり、n本のシリアルバスSBを用いてプロセッサボード200_1〜200_nを、それぞれ共有メモリボード100と１対１に接続しており、一般にスター型マルチプロセッサシステムと呼ばれている。
【００１３】
また、上記の従来例[1]で示したバス調停装置300に代えて、各プロセッサボード200_1〜200_n及び共有メモリボード100は、それぞれ、共有メモリSMへのアクセスを制御するバスインタフェース部220_1〜220_n及び110を備えている。バスインタフェース部220_1〜220_nと110は相互接続され、以てプロセッサ210_1〜210_n及びキャッシュメモリCM1〜CMnは、プロセッサバスPB1〜PBn、並びにバスインタフェース部220_1〜220_n及び110を介して共有メモリSMに接続されている。
【００１４】
このマルチプロセッサシステム10においては、各プロセッサ210_1〜210_nは、それぞれ並列に共有メモリSMへアクセスすることが可能となり、共有メモリSMに対して任意のタイミングでデータ書込を行ったり、必要なデータのみを共有メモリSMから読み出してキャッシュメモリCMに保存したりすることができる(例えば、特許文献1〜3参照。)。
【特許文献１】特開昭58-016362号公報
【特許文献２】特開2000-267815号公報
【特許文献３】特開2000-267816号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
上記の従来例[2]のようなスター型マルチプロセッサシステムでは、各プロセッサが並列に共有メモリへアクセスすることは可能であるが、上記の従来例[1]のような共通バス型マルチプロセッサの利点である他のプロセッサの共有メモリに対するアクセス情報の監視を行うことが出来ないという課題がある。
【００１６】
この場合、或るプロセッサによる共有メモリへのアクセスを知らずにアクセスを要求した他のプロセッサが、共有メモリへのアクセスを待たされることによる遅延を発生させてしまう虞れや、複数のプロセッサから同時に共有メモリへアクセスを要求することによるトランザクション負荷が、システム全体のスループットを低下させてしまう虞れがある。
【００１７】
従って、本発明は、マルチプロセッサシステムの型式に関わらず、任意のプロセッサからの共有メモリに対するアクセス情報を監視することが可能な共有メモリのアクセス監視方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【００１８】
[1]上記の目的を達成するため、本発明の一態様に係る共有メモリのアクセス監視方法(又は装置)は、複数のプロセッサの内の任意の要求元プロセッサから、該要求元プロセッサの識別子、及び共有メモリに対するアクセス権の獲得要求又は解放要求が設定されたリクエストパケットを受信する第１ステップ(又は手段)と、該アクセス権の獲得要求又は解放要求に応じて、該共有メモリに該要求元プロセッサの識別子をそれぞれ設定又は解除する第２ステップ(又は手段)と、該要求元プロセッサの識別子の設定又は解除にそれぞれ対応して該アクセス権の獲得又は解放を示すアンサパケットを生成し、全てのプロセッサにブロードキャストする第３ステップ(又は手段)とを備えたことを特徴とする。
【００１９】
すなわち、リクエストパケットの受信側(共有メモリ側)において、第２ステップ(又は手段)では、第１ステップ(又は手段)で受信したリクエストパケットに共有メモリに対するアクセス権の獲得要求が設定されている時、該共有メモリに、該リクエストパケットに設定されている要求元プロセッサの識別子を設定することにより該要求元プロセッサは該共有メモリへのアクセス権を獲得させる。
【００２０】
そして、第３ステップ(又は手段)では、該アクセス権の獲得を示すアンサパケットを生成して全てのプロセッサにブロードキャストする。
【００２１】
ここで、該リクエストパケットは、該要求元プロセッサ-該共有メモリ間でのみ伝送されれば良く、また、該アンサパケットは、各プロセッサに対して共通に送信することができるため、上記の従来例[1]で示した共通バス型マルチプロセッサにおいては勿論のこと、従来例[2]で示したスター型マルチプロセッサシステムにおいても、要求元プロセッサ以外の他のプロセッサに、いずれかのプロセッサが共有メモリへアクセス中であることを知らせることが可能である。
【００２２】
また、該リクエストパケットに該アクセス権の解放要求が設定されている時には、該第２ステップ(又は手段)は、該共有メモリから該要求元プロセッサの識別子を解除することにより該要求元プロセッサが獲得していたアクセス権を解放する。
【００２３】
そして、該第３ステップ(又は手段)では、該アクセス権の解放を示すアンサパケットを生成して全てのプロセッサにブロードキャストする。
【００２４】
これにより、他のプロセッサに、いずれのプロセッサも共有メモリへアクセスしていないこと、すなわち、全てのプロセッサがアクセス可能であることを認識させることができる。
【００２５】
[2]また、上記[1]の装置において、該共有メモリが、各プロセッサから読出又は書込されるデータを格納するためのデータ領域と、該データ領域に対する該アクセス権の獲得又は解放の状態を示すアクセス権表示ビット、及びプロセッサの識別子を示す識別子表示ビットを含む排他制御情報の領域とを有し、該第２手段が、該リクエストパケットに該獲得要求が設定されており且つ該アクセス権表示ビットが該アクセス権の解放状態を示す時、該アクセス権表示ビットを獲得状態に更新すると共に該識別子表示ビットに該要求元プロセッサの識別子を設定する第４手段と、該リクエストパケットに該解放要求が設定されており且つ該アクセス権表示ビット及び該識別子表示ビットがそれぞれ該アクセス権の獲得状態及び該要求元プロセッサの識別子を示す時、該アクセス権表示ビットを解放状態に更新すると共に、該識別子表示ビットに設定されている該要求元プロセッサの識別子を消去する第５手段とを含むようにしても良い。
【００２６】
すなわち、共有メモリをデータ領域と排他制御情報領域とに区分することにより、簡易にアクセス権の獲得及び解放を制御することができる。
【００２７】
また、第５手段では、識別子表示ビットに設定されているプロセッサの識別子と、該要求元プロセッサの識別子とが一致する場合に限りアクセス権表示ビットを解放状態に更新しているので、該要求元プロセッサ以外の他のプロセッサから故意にアクセス権を解放出来ないようにしている。
【００２８】
[3]また、上記[2]において、該データ領域が所定のアドレス範囲毎のデータブロックに分割され、該排他制御情報が各データブロックに対応して設けられ、該リクエストパケットが、さらに、各データブロックのいずれに対してアクセス権の獲得要求又は解放要求を行うかを示すアドレス情報を含み、該第４又は該第５手段が、それぞれ、該アドレス情報に示されたデータブロックに対して該アクセス権表示ビットを獲得状態又は解放状態に更新すると共に、該識別子表示ビットに該要求元プロセッサの識別子を設定するか又は設定されている該要求元プロセッサの識別子を消去するようにしても良い。
【００２９】
すなわち、共有メモリを効率的に使用できるように分割した場合であっても、データブロック毎に任意のプロセッサのアクセス権を獲得させること又は解放することができ、以て各プロセッサにデータブロック毎のアクセス情報を監視させることが可能である。
【００３０】
[4]また、上記[3]において、各データブロックが、単一のアドレス毎に分割されており、該第４手段が、該アクセス権ビットを獲得状態に更新し且つ該識別子表示ビットに該要求元プロセッサの識別子を設定した時、該アドレス情報に示されたアドレスのデータブロックに格納されているデータを読み出すと共に、該読み出したデータを該アンサパケットに設定するよう該第３手段に指示する手段を含み、該第３手段が、該生成したアンサパケットに該読み出したデータを設定する手段を含むようにしても良い。
【００３１】
すなわち、各データブロックを単一のアドレス毎に分割することにより、プロセッサにアクセス権を獲得させた時点で読み出すべきデータを一意に特定することができるため、該アンサパケットに読み出したデータを設定して当該プロセッサに送信することができる。
【００３２】
これにより、アクセス権を獲得したプロセッサは、データ読出を実行せずに所望のデータを取得することができ、以て共有メモリへのアクセスに係るトランザクション負荷を軽減することが可能である。
【００３３】
[5]また、上記の目的を達成するための本発明の一態様に係る共有メモリのアクセス監視方法(又は装置)は、複数のプロセッサの内の任意の要求元プロセッサからの共有メモリに対するアクセス権の獲得又は解放を要求するリクエストパケットへの応答として、全てのプロセッサにブロードキャストされたパケットであって、該共有メモリへの該要求元プロセッサの識別子の設定又は解除にそれぞれ対応して該アクセス権の獲得又は解放を示すアンサパケットを受信する第１ステップ(又は手段)と、該アンサパケットにより、該アクセス権の獲得又は解放を示すか判定する第２ステップ(又は手段)とを備えたことを特徴とする。
【００３４】
すなわち、リクエストパケットの送信側(プロセッサ側)において、第１ステップ(又は手段)では、上記[1]で説明したアンサパケットを共有メモリ側から受信する。なお、該アンサパケットは、自ら該リクエストパケットを共有メモリ側へ送信した時(すなわち、自分自身が要求元プロセッサである時)と、他のプロセッサから該リクエストパケットが送信された時の両方の場合において受信される。
【００３５】
これにより、第２ステップ(又は手段)では、該受信したアンサパケットにより、自ら共有メモリへのアクセスを行わなくても、いずれかのプロセッサが共有メモリへアクセス中であること、又はいずれのプロセッサも共有メモリへアクセスしていないことを認識することが可能である。
【００３６】
[6]また、上記[5]の装置において、該共有メモリが、各プロセッサから読出又は書込されるデータを格納するためのデータ領域と、該データ領域に対する該アクセス権の獲得又は解放の状態を示すアクセス権表示ビットを含む排他制御情報の領域とを有し、該第２手段が、該アクセス権の獲得を示すと判定した時、該排他制御情報領域と同一の領域を含むキャッシュメモリ中のアクセス権表示ビットを獲得状態に更新する第３手段と、該アクセス権の解放を示すと判定した時、該キャッシュメモリ中の該アクセス権表示ビットを解放状態に更新する第４手段とを含むようにしても良い。
【００３７】
[7]また、上記[6]において、該データ領域が所定のアドレス範囲毎のデータブロックに分割され、該共有メモリ及び該キャッシュメモリの両排他制御情報が各データブロックにそれぞれ対応して設けられ、該アンサパケットが、さらに、各データブロックのいずれに対してアクセス権の獲得又は解放が行われたかを示すアドレス情報を含み、該第３又は該第４手段が、それぞれ、該アドレス情報に示されたデータブロックに対応する該キャッシュメモリ中の該アクセス権表示ビットを獲得状態又は解放状態に更新するようにしても良い。
【００３８】
すなわち、上記[6]及び[7]のように、該共有メモリに種々の分割が施される場合であっても、各プロセッサが、それぞれ、該共有メモリ中の排他制御情報領域と同一の領域を含むキャッシュメモリに該アクセス権の獲得又は解放を逐次記録することにより、常に同一且つ最新のアクセス情報を共有することが可能であり、以て共有メモリへアクセスを要求した際に不必要に待たされてしまうことや、複数のプロセッサが同時にアクセスを要求してしまうことを未然に防止することができる。
【００３９】
[8]また、上記[6]又は[7]において、該アンサパケットが、さらに、該要求元プロセッサの識別子を含み、該キャッシュメモリの該排他制御情報が、プロセッサの識別子を示す識別子表示ビットを含み、該第３又は該第４手段が、該キャッシュメモリ中のアクセス権表示ビットを獲得状態又は解放状態に更新した時、それぞれ、該識別子表示ビットに該要求元プロセッサの識別子を記録するか又は記録されている該要求元プロセッサの識別子を消去するようにしても良い。
【００４０】
このように、該アンサパケットに該要求元プロセッサの識別子が含まれる場合、各プロセッサが、該キャッシュメモリに該アクセス権を獲得又は解放したプロセッサの識別子を記録することにより、例えば或るプロセッサに障害が発生して該アクセス権を獲得したままとなってしまうような場合であっても、該キャッシュメモリを参照して容易に障害の発生しているプロセッサを切り分けでき、以て迅速に復旧作業を行うことが可能である。
【発明の効果】
【００４１】
本発明によれば、特にスター型マルチプロセッサシステムにおいて、任意のプロセッサからの共有メモリに対するアクセス情報を監視することができ、以て共有メモリへのアクセスに掛かる処理時間を短縮し、各プロセッサ及びシステム全体のスループットを向上させることができる。
【００４２】
また、共有メモリに対するアクセス情報の監視及びアクセス権の制御を簡易に行えるようにしたので、容易に既存システムへ適用することができる。
【発明を実施するための最良の形態】
【００４３】
本発明に係る共有メモリのアクセス監視方法及びこれを使用する装置の実施例を、図1〜10を参照して以下の順に説明する。
I. 構成例：図1及び2
I.1. 全体構成例：図1
I.2. 共有メモリ及びキャッシュメモリの構成例(1)：図2
II. 動作例：図3〜10
II.1. 動作例(1)：図3〜8
II.1.A. アクセス権獲得動作例(1)：図3〜5
II.1.B. アクセス権解放動作例：図6
II.1.C. データ読出動作例：図7
II.1.D. データ書込動作例：図8
II.2. 動作例(2)：図9及び10
II.2.A. 共有メモリの構成例(2)：図9
II.2.B. アクセス権獲得動作例(2)：図10
【００４４】
I.構成例：図1及び2
I.1.全体構成例：図1
図1に示すマルチプロセッサシステム10は、図12に示した従来のスター型マルチプロセッサに、本発明に係る共有メモリのアクセス監視方法及び装置を適用したものである。
【００４５】
このマルチプロセッサシステム10においては、図12に示した構成に加えて、共有メモリボード100内のバスインタフェース部110が、プロセッサ210_1〜210_nの内の任意の要求元プロセッサから共有メモリSMに対するアクセス権の獲得又は解放を要求するリクエストパケットを受信して該要求元プロセッサのアクセス権を獲得又は解放すると共に、該アクセス権の獲得又は解放を示すアンサパケットの生成指示を発生するパケット受信・処理部111と、このアンサパケット生成指示を受けてアンサパケットを生成し、全てのプロセッサ210_1〜210_nにブロードキャストするアンサパケット生成部112とを備えている。
【００４６】
また、プロセッサボード200_1〜200_n内のバスインタフェース部220_1〜220_nは、それぞれ、該リクエストパケットを生成して共有メモリボード100側に送信するリクエストパケット生成部221_1〜221_n(以下、符号221で総称することがある。)と、該アンサパケットを受信して判定するパケット判定部222_1〜222_n(以下、符号222で総称することがある。)とを備えている。
【００４７】
なお、本実施例では、バスインタフェース部110をパケット受信・処理部111とアンサパケット生成部112とに分けて構成しているが、両者を単一の機能ブロックとして構成しても良い。この場合も、以下の説明は同様に適用される。
【００４８】
I.2.共有メモリ及びキャッシュメモリの構成例(1)：図2
共有メモリSMは、図2(1)に示すように、プロセッサ210から読出又は書込されるデータを格納するデータ領域AR1と、このデータ領域AR1に対する排他制御情報の領域AR2とに分けられている。ここで、データ領域AR1は、“0”〜“x”のアドレス範囲毎に分割され、各々のアドレスがB0-0〜B0-x,B1-0〜B1-x, B2-0〜B2-x, …, Bm-0〜Bm-xであるm＋1個のデータブロックD0〜Dmを有し、排他制御情報領域AR2には、各データブロックD0〜Dmに対応させて各々のアドレスがA0,A1, A2, …, Amである排他制御情報I0〜Imを設けている。
【００４９】
また、排他制御情報は、対応させたデータブロックに対するアクセス権の獲得“1”(獲得完了)又は解放“0”(解放完了)の状態を示すアクセス権表示ビットb1と、アクセス権を獲得中のプロセッサID(識別子)を表示する表示ビットb2とを含んでいる。
【００５０】
また、キャッシュメモリCMは、同図(2)に示すように、共有メモリSMの排他制御情報領域AR2と同一の領域を含んでいる。
【００５１】
II.動作例：図3〜10
次に、図1に示したマルチプロセッサ10の動作を説明するが、まず、共有メモリSM及びキャッシュメモリCMを図2に示す構成とした場合の動作例(1)を、図3〜8を参照して説明する。そして、共有メモリSMの構成を図2とは異なる構成(図9)とした場合の動作例(2)を、図9及び10を参照して説明する。
【００５２】
II.1.動作例(1)：図3〜8
以下、マルチプロセッサ10の動作を、アクセス権獲得動作例、アクセス権解放動作例、データ読出動作例、データ書込動作例の順に説明する。
【００５３】
また、下記の各動作例においては、プロセッサ210_1〜210_nの内のプロセッサ210_1が、図2に示した共有メモリSM中の、例えばデータブロックD2に対してアクセスを行う場合を説明する。
【００５４】
なお、以下の説明は、プロセッサ210_1以外の他のプロセッサ210_2〜210_nが共有メモリに対してアクセスを行う場合、及びデータブロックD2以外のデータブロックD1,D2〜Dmに対してアクセスを行う場合も同様に適用される。
【００５５】
II.1.A.アクセス権獲得動作例(1)：図3〜5
まず、データブロックD2に対してアクセスを要求するプロセッサ210_1は、図3に示すように、バスインタフェース部220_1を構成するリクエストパケット生成部221_1にアクセス権獲得要求を与える(ステップS1)。
【００５６】
これを受けたリクエストパケット生成部221_1は、リクエストパケットRPを以下のようにして生成する(ステップS2)。
【００５７】
すなわち、リクエストパケット生成部221_1は、図4(1)に示すリクエストパケットRP中の要求種別RP1、アドレス情報RP2、及び要求元プロセッサIDRP4に、それぞれ、同図(2)に示すアクセス権獲得要求RQ1、データブロックD2に対応する排他制御情報I2のアドレスA2、及び“210_1”を設定する。
【００５８】
なお、データ書込時(すなわち、要求種別RP1にデータ書込要求RQ4を設定する時)以外は、リクエストパケットRP中のデータRP3には何も設定せず、空であるが、後述するデータ書込動作例ではデータが設定される。
【００５９】
そして、リクエストパケット生成部221_1は、生成したリクエストパケットRPを共有メモリボード100内のバスインタフェース部110に送信する(ステップS3)。
【００６０】
これを受けたバスインタフェース部110を構成するパケット受信・処理部111は、リクエストパケットRP中の要求種別RP1を抽出して判定する(ステップS4)。この結果、要求種別RP1にアクセス権獲得要求RQ1が設定されていると判定した時、パケット受信・処理部111は、アドレス情報RP2に設定されているアドレスA2が指し示す排他制御情報I2中のアクセス権表示ビットb1を参照する(ステップS5)。
【００６１】
そして、パケット受信・処理部111は、このアクセス権表示ビットb1がアクセス権解放状態“0”を示しているか否かを判定する(ステップS6)。この結果、アクセス権表示ビットb1が解放状態“0”を示していると判定した時、パケット受信・処理部111は、アクセス権ビットb1をアクセス権獲得状態“1”に更新すると共に、プロセッサID表示ビットb2に“210_1”を設定する(ステップS7)。
【００６２】
これにより、パケット受信・処理部111は、プロセッサ210_1にデータブロックD2に対するアクセス権を獲得させることができる。
【００６３】
そして、パケット受信・処理部111は、プロセッサ210_1によるデータブロックD2に対するアクセス権の獲得を示すアンサパケットAPの生成指示を、アンサパケット生成部112に与える(ステップS8)。これを受けたアンサパケット生成部112は、アンサパケットAPを以下のようにして生成する(ステップS9)。
【００６４】
すなわち、アンサパケット生成部112は、図5(1)に示すアンサパケットAP中の応答種別AP1、アドレス情報AP2、及び要求元プロセッサIDAP4に、それぞれ、同図(2)に示すアクセス権獲得ACK1、アドレスA2、及び“210_1”を設定する。
【００６５】
なお、データ読出時(すなわち、応答種別AP1にデータ読出ACK3を設定する時)以外は、アンサパケットAP中のデータAP3には何も設定せず、空であるが、後述するデータ読出動作例及び動作例(2)ではデータが設定される。
【００６６】
そして、アンサパケット生成部112は、生成したアンサパケットAPを全てのプロセッサボード200_1〜200_n内のバスインタフェース部220_1〜220_nにブロードキャストする(ステップS10)。
【００６７】
ブロードキャストされたアンサパケットAPを受信したバスインタフェース部220_1〜220_nを構成するパケット判定部222_1〜222_nは、それぞれ、アンサパケットAP中の応答種別AP1を抽出して判定する(ステップS11_1〜S11_n)。この結果、応答種別AP1にアクセス権獲得ACK1が設定されていると判定した時、各パケット判定部222_1〜222_nは、アドレス情報AP2に設定されているアドレスA2が指し示すキャッシュメモリCM1〜CMn中の排他制御情報I2のアクセス権表示ビットb1をアクセス権獲得状態“1”に更新すると共に、プロセッサID表示ビットb2に、要求元プロセッサIDRP4に設定されている“210_1”を設定する(ステップS12_1〜S12_n)。
【００６８】
そして、各パケット判定部222_1〜222_nは、要求元プロセッサID RP4に設定されているプロセッサIDが、自プロセッサIDと一致するか否かを判定する。この例では、パケット判定部222_1のみが両プロセッサIDが一致していると判定し、アンサパケットAPをプロセッサ210_1に転送する(ステップS13)。
【００６９】
これを受けたプロセッサ210_1は、データブロックD2に対するアクセス権が獲得されたことを認識し、図7又は8を参照して後述するデータ読出又はデータ書込を実行する(ステップS41又はS61)。
【００７０】
II.1.B.アクセス権解放動作例：図6
データ読出又はデータ書込を完了したプロセッサ210_1は、図6に示すように、データブロックD2に対するアクセス権を解放するため、リクエストパケット生成部221_1にアクセス権解放要求を与える(ステップS21)。
【００７１】
これを受けたリクエストパケット生成部221_1は、リクエストパケットRPを以下のようにして生成する(ステップS22)。
【００７２】
すなわち、リクエストパケット生成部221_1は、リクエストパケットRP中の要求種別RP1、アドレス情報RP2、及び要求元プロセッサIDRP4に、それぞれ、図4(2)に示したアクセス権解放要求RQ2、データブロックD2に対応する排他制御情報I2のアドレスA2、及び“210_1”を設定する。
【００７３】
そして、リクエストパケット生成部221_1は、生成したリクエストパケットRPをパケット受信・処理部111に送信する(ステップS23)。
【００７４】
これを受けたパケット受信・処理部111は、リクエストパケットRP中の要求種別RP1を抽出して判定する(ステップS24)。この結果、要求種別RP1にアクセス権解放要求RQ2が設定されていると判定した時、パケット受信・処理部111は、アドレス情報RP2に設定されているアドレスA2が指し示す排他制御情報I2中のアクセス権表示ビットb1及びプロセッサID表示ビットb2を参照する(ステップS25)。
【００７５】
そして、パケット受信・処理部111は、これらのアクセス権表示ビットb1及びプロセッサID表示ビットb2が、それぞれアクセス権獲得状態“1”及び要求元プロセッサIDRP4に設定されていた“210_1”を示しているか否かを判定する(ステップS26)。この結果、アクセス権表示ビットb1及びプロセッサID表示ビットb2がそれぞれアクセス権獲得状態“1”及び“210_1”を示していると判定した時、パケット受信・処理部111は、アクセス権ビットb1をアクセス権解放状態“0”に更新すると共に、プロセッサID表示ビットb2に設定されている“210_1”を消去する(ステップS27)。
【００７６】
これにより、パケット受信・処理部111は、プロセッサ210_1が獲得していたデータブロックD2に対するアクセス権を解放させることができる。そして、パケット受信・処理部111は、プロセッサ210_1によるデータブロックD2に対するアクセス権の解放を示すアンサパケットAPの生成指示を、アンサパケット生成部112に与える(ステップS28)。
【００７７】
これを受けたアンサパケット生成部112は、アンサパケットAPを以下のようにして生成する(ステップS29)。
【００７８】
すなわち、アンサパケット生成部112は、アンサパケットAP中の応答種別AP1、アドレス情報AP2、及び要求元プロセッサIDAP4に、それぞれ、図5(2)に示したアクセス権解放ACK2、アドレスA2、及び“210_1”を設定する。
【００７９】
そして、アンサパケット生成部112は、生成したアンサパケットAPを全てのパケット判定部222_1〜222_nにブロードキャストする(ステップS30)。
【００８０】
ブロードキャストされたアンサパケットAPを受信したパケット判定部222_1〜222_nは、それぞれ、アンサパケットAP中の応答種別AP1を抽出して判定する(ステップS31_1〜S31_n)。この結果、応答種別AP1にアクセス権解放ACK2が設定されていると判定した時、各パケット判定部222_1〜222_nは、アドレス情報AP2に設定されているアドレスA2が指し示すキャッシュメモリCM1〜CMn中の排他制御情報I2のアクセス権表示ビットb1をアクセス権解放状態“0”に更新すると共に、プロセッサID表示ビットb2に設定されている“210_1”を消去する(ステップS32_1〜S32_n)。
【００８１】
なお、データブロックD2に対するアクセス権の解放を要求したプロセッサ210_1は、その要求時点で自らキャッシュメモリCM1を直接更新することも可能であるが、キャッシュメモリCM1を直接更新した場合、シリアルバスSBの伝送障害によるリクエストパケットRP又はアンサパケットAPの欠落等の影響により、キャッシュメモリCM1と他のプロセッサ210_2〜210_n内のキャッシュメモリCM2〜CMn及び共有メモリSMの内容が不一致となってしまう虞れがある。このため、プロセッサ210_1(パケット判定部222_1)は、上記のステップS31_1の判定後にキャッシュメモリCM1を更新するようにしている。
【００８２】
II.1.C.データ読出動作例：図7
データブロックD2に対するアクセス権を獲得したプロセッサ210_1は、図7に示すように、データブロックD2中の所望のアドレス、例えばアドレスB2-0からのデータ読出要求をリクエストパケット生成部221_1に与える(ステップS41)。
【００８３】
これを受けたリクエストパケット生成部221_1は、リクエストパケットRPを以下のようにして生成する(ステップS42)。
【００８４】
すなわち、リクエストパケット生成部221_1は、リクエストパケットRP中の要求種別RP1、アドレス情報RP2、及び要求元プロセッサIDRP4に、それぞれ、図4(2)に示したデータ読出要求RQ3、アドレスB2-0、及び“210_1”を設定する。
【００８５】
そして、リクエストパケット生成部221_1は、生成したリクエストパケットRPをパケット受信・処理部111に送信する(ステップS43)。
【００８６】
これを受けたパケット受信・処理部111は、リクエストパケットRP中の要求種別RP1を抽出して判定する(ステップS44)。この結果、要求種別RP1にデータ読出要求RQ3が設定されていると判定した時、パケット受信・処理部111は、アドレス情報RP2に設定されているアドレスB2-0が指し示す領域からデータDT2-0を読み出す(ステップS45)。
【００８７】
そして、パケット受信・処理部111は、読み出したデータDT2-0を設定したアンサパケットAPの生成指示を、アンサパケット生成部112に与える(ステップS46)。
【００８８】
これを受けたアンサパケット生成部112は、アンサパケットAPを以下のようにして生成する(ステップS47)。
【００８９】
すなわち、アンサパケット生成部112は、アンサパケットAP中の応答種別AP1、アドレス情報AP2、データAP3、及び要求元プロセッサIDAP4に、それぞれ、図5(2)に示したデータ読出ACK3、アドレスB2-0、データDT2-0、及び“210_1”を設定する。
【００９０】
そして、アンサパケット生成部112は、生成したアンサパケットAPをパケット判定部222_1のみに送信する(ステップS48)。
【００９１】
これを受けたパケット判定部222_1は、アンサパケットAP中の応答種別AP1を抽出して判定し(ステップS49)、応答種別AP1にデータ読出ACK3が設定されていると判定した時、アンサパケットAPをプロセッサ210_1に転送する(ステップS50)。
【００９２】
これを受けたプロセッサ210_1は、アンサパケットAP中のデータAP3からデータDT2-0を取得する(ステップS51)。
【００９３】
II.1.D.データ書込動作例：図8
データブロックD2に対するアクセス権を獲得したプロセッサ210_1は、図8に示すように、データブロックD2中の所望のアドレス、例えばアドレスB2-0への所望のデータDTyの書込要求をリクエストパケット生成部221_1に与える(ステップS61)。
【００９４】
これを受けたリクエストパケット生成部221_1は、リクエストパケットRPを以下のようにして生成する(ステップS62)。
【００９５】
すなわち、リクエストパケット生成部221_1は、リクエストパケットRP中の要求種別RP1、アドレス情報RP2、データRP3、及び要求元プロセッサIDRP4に、それぞれ、図4(2)に示したデータ書込要求RQ4、アドレスB2-0、データDTy、及び“210_1”を設定する。
【００９６】
そして、リクエストパケット生成部221_1は、生成したリクエストパケットRPをパケット受信・処理部111に送信する(ステップS63)。
【００９７】
これを受けたパケット受信・処理部111は、リクエストパケットRP中の要求種別RP1を抽出して判定する(ステップS64)。この結果、要求種別RP1にデータ書込要求RQ4が設定されていると判定した時、パケット受信・処理部111は、アドレス情報RP2に設定されているアドレスB2-0が指し示す領域に、リクエストパケットRP中のデータRP3に設定されているデータDTyを書き込む(ステップS65)。
【００９８】
なお、データ書込時には、アンサパケットAPを共有メモリボード100-プロセッサボード200間で送受信せず、プロセッサ210は、上記のステップS61で示したデータ書込要求を行った時点でデータ書込の実行が完了したと見做している。
【００９９】
II.2.動作例(2)：図9及び10
以下、共有メモリSMを図9に示す構成とした場合のマルチプロセッサ10のアクセス権獲得動作例を、図10を参照して説明する。なお、アクセス権解放動作例、データ読出動作例、及びデータ書込動作例については、上記の動作例(1)と同様であるためその説明を省略する。
【０１００】
II.2.A. 共有メモリの構成例(2)：図9
図9に示す共有メモリSMは、図2に示した共有メモリの構成例(1)とは異なり、データブロックD0〜Dmが、それぞれ、単一のアドレスB0,B1, B2, …, Bm毎に分割されている。
【０１０１】
また、各排他制御情報I0〜Imは、上記の共有メモリの構成例(1)と同様、各データブロックD0〜Dmに対応させて設けられており、アクセス権表示ビットb1及びプロセッサID表示ビットb2を含んでいる。
【０１０２】
II.2.B. アクセス権獲得動作例(2)：図10
図10に示すアクセス権獲得動作例は、図3に示したアクセス権獲得動作例(1)とステップS70〜S73の処理のみが異なっている。
【０１０３】
すなわち、ステップS7において、プロセッサ210_1にデータブロックD2に対するアクセス権を獲得させたパケット受信・処理部111は、リクエストパケットRP中のアドレス情報RP2に設定されているアドレスA2が指し示す排他制御情報I2に対応するデータブロックD2からデータDT2を読み出す(ステップS70)。
【０１０４】
そして、パケット受信・処理部111は、アクセス権の獲得と共に読み出したデータDT2をアンサパケットAPに設定するようアンサパケット生成部112に指示を与える(ステップS71)。
【０１０５】
これを受けたアンサパケット生成部112は、上記のアクセス権獲得動作例(1)と同様にしてアンサパケットAP中の応答種別AP1、アドレス情報AP2、及び要求元プロセッサIDAP4に、それぞれアクセス権獲得ACK1、アドレスA2、及び“210_1”を設定すると共に、上記のアクセス権獲得動作例(1)では未使用としていたデータAP3にデータDT2を設定する(ステップS72)。
【０１０６】
これにより、データDT2が設定されたアンサパケットが全てのパケット判定部222_1〜222_nにブロードキャストされることになる。
【０１０７】
そして、ステップS13において、アンサパケットAPを転送されたプロセッサ210_1は、アンサパケットAP中のデータAP3からデータDT2を取得する(ステップS73)。
【０１０８】
これにより、プロセッサ210_1は、アクセス権獲得とデータ読出を同時に行うことで、図7のステップS41に示したデータ読出要求を行うことなくデータブロックD2に格納されているデータDT2を取得することができる。なお、プロセッサ210_1が、データブロックD2にデータ書込を行う場合には、取得したデータDR2を破棄し、図8のステップS61と同様にして所望のデータの書込要求を行えば良い。
【０１０９】
なお、上記実施例によって本発明は限定されるものではなく、特許請求の範囲の記載に基づき、当業者によって種々の変更が可能なことは明らかである。
【０１１０】
（付記１）
複数のプロセッサの内の任意の要求元プロセッサから、該要求元プロセッサの識別子、及び共有メモリに対するアクセス権の獲得要求又は解放要求が設定されたリクエストパケットを受信する第１ステップと、
該アクセス権の獲得要求又は解放要求に応じて、該共有メモリに該要求元プロセッサの識別子をそれぞれ設定又は解除する第２ステップと、
該要求元プロセッサの識別子の設定又は解除にそれぞれ対応して該アクセス権の獲得又は解放を示すアンサパケットを生成し、全てのプロセッサにブロードキャストする第３ステップと、
を備えたことを特徴とする共有メモリのアクセス監視方法。
（付記２）
複数のプロセッサの内の任意の要求元プロセッサからの共有メモリに対するアクセス権の獲得又は解放を要求するリクエストパケットへの応答として、全てのプロセッサにブロードキャストされたパケットであって、該共有メモリへの該要求元プロセッサの識別子の設定又は解除にそれぞれ対応して該アクセス権の獲得又は解放を示すアンサパケットを受信する第１ステップと、
該アンサパケットにより、該アクセス権の獲得又は解放を示すか判定する第２ステップと、
を備えたことを特徴とする共有メモリのアクセス監視方法。
（付記３）
複数のプロセッサの内の任意の要求元プロセッサから、該要求元プロセッサの識別子、及び共有メモリに対するアクセス権の獲得要求又は解放要求が設定されたリクエストパケットを受信する第１手段と、
該アクセス権の獲得要求又は解放要求に応じて、該共有メモリに該要求元プロセッサの識別子をそれぞれ設定又は解除する第２手段と、
該要求元プロセッサの識別子の設定又は解除にそれぞれ対応して該アクセス権の獲得又は解放を示すアンサパケットを生成し、全てのプロセッサにブロードキャストする第３手段と、
を備えたことを特徴とする共有メモリのアクセス監視装置。
（付記４）付記３において、
該共有メモリが、各プロセッサから読出又は書込されるデータを格納するためのデータ領域と、該データ領域に対する該アクセス権の獲得又は解放の状態を示すアクセス権表示ビット、及びプロセッサの識別子を示す識別子表示ビットを含む排他制御情報の領域とを有し、
該第２手段が、該リクエストパケットに該獲得要求が設定されており且つ該アクセス権表示ビットが該アクセス権の解放状態を示す時、該アクセス権表示ビットを獲得状態に更新すると共に該識別子表示ビットに該要求元プロセッサの識別子を設定する第４手段と、
該リクエストパケットに該解放要求が設定されており且つ該アクセス権表示ビット及び該識別子表示ビットがそれぞれ該アクセス権の獲得状態及び該要求元プロセッサの識別子を示す時、該アクセス権表示ビットを解放状態に更新すると共に、該識別子表示ビットに設定されている該要求元プロセッサの識別子を消去する第５手段とを含むことを特徴とした共有メモリのアクセス監視装置。
（付記５）付記４において、
該データ領域が所定のアドレス範囲毎のデータブロックに分割され、該排他制御情報が各データブロックに対応して設けられ、
該リクエストパケットが、さらに、各データブロックのいずれに対してアクセス権の獲得要求又は解放要求を行うかを示すアドレス情報を含み、
該第４又は該第５手段が、それぞれ、該アドレス情報に示されたデータブロックに対して該アクセス権表示ビットを獲得状態又は解放状態に更新すると共に、該識別子表示ビットに該要求元プロセッサの識別子を設定するか又は設定されている該要求元プロセッサの識別子を消去することを特徴とした共有メモリのアクセス監視装置。
（付記６）付記５において、
各データブロックが、単一のアドレス毎に分割されており、
該第４手段が、該アクセス権ビットを獲得状態に更新し且つ該識別子表示ビットに該要求元プロセッサの識別子を設定した時、該アドレス情報に示されたアドレスのデータブロックに格納されているデータを読み出すと共に、該読み出したデータを該アンサパケットに設定するよう該第３手段に指示する手段を含み、
該第３手段が、該生成したアンサパケットに該読み出したデータを設定する手段を含むことを特徴とした共有メモリのアクセス監視装置。
（付記７）
複数のプロセッサの内の任意の要求元プロセッサからの共有メモリに対するアクセス権の獲得又は解放を要求するリクエストパケットへの応答として、全てのプロセッサにブロードキャストされたパケットであって、該共有メモリへの該要求元プロセッサの識別子の設定又は解除にそれぞれ対応して該アクセス権の獲得又は解放を示すアンサパケットを受信する第１手段と、
該アンサパケットにより、該アクセス権の獲得又は解放を示すか判定する第２手段と、
を備えたことを特徴とする共有メモリのアクセス監視装置。
（付記８）付記７において、
該共有メモリが、各プロセッサから読出又は書込されるデータを格納するためのデータ領域と、該データ領域に対する該アクセス権の獲得又は解放の状態を示すアクセス権表示ビットを含む排他制御情報の領域とを有し、
該第２手段が、該アクセス権の獲得を示すと判定した時、該排他制御情報領域と同一の領域を含むキャッシュメモリ中のアクセス権表示ビットを獲得状態に更新する第３手段と、
該アクセス権の解放を示すと判定した時、該キャッシュメモリ中の該アクセス権表示ビットを解放状態に更新する第４手段とを含むことを特徴とした共有メモリのアクセス監視装置。
（付記９）付記８において、
該データ領域が所定のアドレス範囲毎のデータブロックに分割され、該共有メモリ及び該キャッシュメモリの両排他制御情報が各データブロックにそれぞれ対応して設けられ、
該アンサパケットが、さらに、各データブロックのいずれに対してアクセス権の獲得又は解放が行われたかを示すアドレス情報を含み、
該第３又は該第４手段が、それぞれ、該アドレス情報に示されたデータブロックに対応する該キャッシュメモリ中の該アクセス権表示ビットを獲得状態又は解放状態に更新することを特徴とした共有メモリのアクセス監視装置。
（付記１０）付記８又は９において、
該アンサパケットが、さらに、該要求元プロセッサの識別子を含み、
該キャッシュメモリの該排他制御情報が、プロセッサの識別子を示す識別子表示ビットを含み、
該第３又は該第４手段が、該キャッシュメモリ中のアクセス権表示ビットを獲得状態又は解放状態に更新した時、それぞれ、該識別子表示ビットに該要求元プロセッサの識別子を記録するか又は記録されている該要求元プロセッサの識別子を消去することを特徴とした共有メモリのアクセス監視装置。
【図面の簡単な説明】
【０１１１】
【図１】本発明に係る共有メモリのアクセス監視方法及び装置を適用したマルチプロセッサシステムの構成例を示したブロック図である。
【図２】本発明に用いる共有メモリ及びキャッシュメモリの構成例(1)を示したブロック図である。
【図３】本発明のアクセス権獲得動作例(1)を示したシーケンス図である。
【図４】本発明に用いるリクエストパケットのフォーマット例を示した図である。
【図５】本発明に用いるアンサパケットのフォーマット例を示した図である。
【図６】本発明のアクセス権解放動作例を示したシーケンス図である。
【図７】本発明のデータ読出動作例を示したシーケンス図である。
【図８】本発明のデータ書込動作例を示したシーケンス図である。
【図９】本発明に用いる共有メモリの構成例(2)を示したブロック図である。
【図１０】本発明のアクセス権獲得動作例(2)を示したシーケンス図である。
【図１１】マルチプロセッサシステムの従来例[1]を示したブロック図である。
【図１２】マルチプロセッサシステムの従来例[2]を示したブロック図である。
【符号の説明】
【０１１２】
10  マルチプロセッサシステム
100  共有メモリボード
110, 220, 220_1〜220_n  バスインタフェース部
111  パケット受信・処理部
112  アンサパケット生成部
200, 200_1〜200_n  プロセッサボード
210, 210_1〜210_n  プロセッサ
221, 221_1〜221_n  リクエストパケット生成部
222, 222_1〜221_n  パケット判定部
300  バス調停装置
SM  共有メモリ
AR1  データ領域
AR2  排他制御情報領域
I0〜Im  排他制御情報
D0〜Dm  データブロック
b1  アクセス権表示ビット
b2  プロセッサID表示ビット
CM, CM1〜CMn  キャッシュメモリ
RP  リクエストパケット
AP  アンサパケット
RP1  要求種別
AP1  応答種別
RP2, AP2  アドレス情報
RP3, AP3, DT, DT0〜DTm, DTy, DT0-0〜DTm-x  データ
RP4, AP4  要求元プロセッサID
RQ1  アクセス権獲得要求
RQ2  アクセス権解放要求
RQ3  データ読出要求
RQ4  データ書込要求
ACK1  アクセス権獲得
ACK2  アクセス権解放
ACK3  データ読出
PB, PB1〜PBn  プロセッサバス
CB  共通バス
SB  シリアルバス
図中、同一符号は同一又は相当部分を示す。
【図１】
2008046969.tif 000003
【図２】
2008046969.tif 000004
【図３】
2008046969.tif 000005
【図４】
2008046969.tif 000006
【図５】
2008046969.tif 000007
【図６】
2008046969.tif 000008
【図７】
2008046969.tif 000009
【図８】
2008046969.tif 000010
【図９】
2008046969.tif 000011
【図１０】
2008046969.tif 000012
【図１１】
2008046969.tif 000013
【図１２】
2008046969.tif 000014