(57)【特許請求の範囲】
【請求項１】
主記憶装置と、
所定のプログラムを実行する処理装置と、
前記処理装置から前記主記憶装置に含まれる同一の記憶領域に対してアクセスが競合した場合に排他制御を行う制御装置と、を備えた情報処理装置であって、
前記処理装置は、
前記所定のプログラムをデコードするデコード部と、
前記デコード部によりデコードされたプログラムに応じて前記処理装置から前記主記憶装置へのアクセスを要求するアクセス制御部と、
を含み、
前記制御装置は、
前記アクセス制御部からのアクセス要求を受け付けるアクセス受付部と、
前記アクセス受付部にて受け付けた複数のアクセス要求が前記主記憶装置に含まれる同一の記憶領域に競合した場合、前記複数のアクセス要求を調停し、実行するアクセス要求を選択する競合制御部と、
前記競合制御部が選択したアクセス要求を前記主記憶装置に対して実行するアクセス実行部と、
前記複数のアクセス要求に前記排他制御に伴うロック処理を解除するためのアンロック要求が含まれる場合、前記競合制御部に前記アンロック要求を優先して選択させるアンロック優先部と、
を含み、
前記アクセス制御部は、前記デコード部によりデコードされたプログラムに応じた前記主記憶装置へのアクセス要求がキャッシュ間のコヒーレンシ制御を必要とするか否かを判定し、キャッシュ間のコヒーレンシ制御を必要としないアクセス要求を前記制御装置を介することなく前記主記憶装置に対して直接実行する、
ことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記処理装置は、
前記デコード部にてデコードされた前記所定のプログラムから、アンロック要求の識別情報を検出する識別情報検出部と、
前記識別情報検出部にて前記識別情報を検出した場合は、前記識別情報を前記アクセス制御部と同期して前記制御装置に対して前記識別情報を出力する識別情報制御部と、を含み、
前記制御装置は、
前記識別情報制御部から前記識別情報を受け付ける識別情報受付部
を含むことを特徴とする情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置において、
前記処理装置を複数用いて構成することを特徴とする情報処理装置。
【請求項４】
請求項１から３のいずれか１項に記載の情報処理装置において、
前記アンロック要求の命令コードは任意の専用コードとすることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関する。
【背景技術】
【０００２】
近年、多プロセッサ傾向やマルチスレッド化が強まっている。マルチプロセッサ方式及びマルチスレッド方式の情報処理装置においては、複数のアクセスが同一の記憶領域に競合するため、排他制御機能を有することが一般的である。
【０００３】
この種の排他制御に関連する技術として、ロック要求専用の命令及びアンロック要求専用の命令を設けることによって、共有資源の読込み回数を減らし、処理負荷を軽減した排他制御方式が、特許文献１に記載されている。
【０００４】
また、複数の主記憶要求元を備える実行処理装置からシステム制御装置への出力部が一つであり、該出力部が先行処理を一旦受け付けると後続処理を受け付けない構成において、一の主記憶要求元からアンロック要求を出力する際に、他の主記憶要求元から出力されたロック要求が該出力部を専有しているとデッドロックになる。これを回避する目的で、一の主記憶要求元が出力したアンロック要求を実行処理装置内で優先処理する排他制御方式が、特許文献２に記載されている。
【０００５】
また、複数の主記憶要求元が一つの記憶装置を共有する構成において、競合する複数のアクセス要求の実行順序を決定する方法の一例が、特許文献３に記載されている。
【０００６】
また、命令解読装置にてアトミック命令を解読した場合、アトミック命令専用の判別信号を出力し、実行する命令の優先順位判定に用いる方法の一例が、特許文献４に記載されている。
【特許文献１】特開昭６０−１０７１７０号公報
【特許文献２】特開昭６２−０２８８６６号公報
【特許文献３】特開平０６−１９５３１３号公報
【特許文献４】特開平０９−１４６８３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記文献記載の技術は、以下の点で改善の余地を有していた。
【０００８】
一般的に多プロセッサ傾向やマルチスレッド化が強まるほどに、ロック取得期間は延長する傾向にある。情報処理装置におけるシステム性能のボトルネックとなる危険性が非常に高い。
【０００９】
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、排他制御を行う情報処理装置において、ロック取得期間を短縮し、高性能の情報処理装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明によれば、主記憶装置と、所定のプログラムを実行する処理装置と、前記処理装置から前記主記憶装置に含まれる同一の記憶領域に対してアクセスが競合した場合に排他制御を行う制御装置と、を備えた情報処理装置であって、前記処理装置は、前記所定のプログラムをデコードするデコード部と、前記処理装置から前記主記憶装置へのアクセスを要求するアクセス制御部と、を含み、前記制御装置は、前記アクセス制御部からのアクセス要求を受け付けるアクセス受付部と、前記アクセス受付部にて受け付けた複数のアクセス要求が前記主記憶装置に含まれる同一の記憶領域に競合した場合、前記複数のアクセス要求を調停し、実行するアクセス要求を選択する競合制御部と、前記競合制御部が選択したアクセス要求を前記主記憶装置に対して実行するアクセス実行部と、前記複数のアクセス要求に前記排他制御に伴うロック処理を解除するためのアンロック要求が含まれる場合、前記競合制御部に前記アンロック要求を優先して選択させるアンロック優先部と、を含むことを特徴とする情報処理装置が提供される。
【００１１】
ここで、主記憶装置、処理装置及び制御装置を備えている構成は、複数のアクセスが同一の記憶領域に対して競合する構成となっている情報処理装置においては、一般的な構成である。また、処理装置に含まれるデコード部及びアクセス制御部、制御装置に含まれるアクセス受付部、競合制御部及びアクセス実行部も、同様に一般的な構成である。
【００１２】
この発明によれば、競合している複数のアクセス要求に排他制御に伴うロック処理を解除するためのアンロック要求が含まれる場合、アンロック要求を優先して実行することが可能となる。
【００１３】
上記情報処理装置において、前記処理装置は、前記デコード部にてデコードされた前記所定のプログラムから、アンロック要求の識別情報を検出する識別情報検出部と、前記識別情報検出部にて前記識別情報を検出した場合は、前記識別情報を前記アクセス制御部と同期して前記制御装置に対して前記識別情報を出力する識別情報制御部と、を含み、前記制御装置は、前記識別情報制御部から前記識別情報を受け付ける識別情報受付部を含むことができる。
【００１４】
この構成によれば、処理装置がデコードされた所定のプログラムに含まれるアンロック要求の識別情報を検出し、アクセス要求と同期して該識別情報を制御装置に伝達することができる。
【００１５】
上記情報処理装置において、前記アクセス制御部はキャッシュ間のコヒーレンシ制御を必要としない前記主記憶装置に対するアクセス要求を、前記主記憶装置に対して直接実行することができる。
【００１６】
この構成によれば、キャッシュ間のコヒーレンシ制御を必要としないアクセス要求は、制御装置を介さず、アクセス制御部から主記憶装置に直接実行することができる。
【００１７】
上記情報処理装置において、処理装置を複数用いて構成することができる。
【００１８】
この構成によれば、単一の処理装置（マルチスレッド方式）に限らず、複数の処理装置（マルチプロセッサ方式）を用いることができる。
【００１９】
上記情報処理装置において、前記アンロック要求の命令コードは任意の専用コードとすることができる。
【００２０】
この構成によれば、所定のプログラムがデコードされた段階で、アンロック要求は識別可能となる。
【発明の効果】
【００２１】
本発明によれば、複数のアクセス要求の中からアンロック要求を優先して実行することができるため、ロック取得期間を短縮することが可能となり、高性能の情報処理装置が提供される。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００２３】
（第１実施形態）
図１は、本発明に係る実施の形態の情報処理装置の機能を示す機能ブロック図である。
本発明に係る実施の形態の情報処理装置１は、主記憶装置１３と、所定のプログラムを実行する処理装置１１と、処理装置１１から主記憶装置１３に含まれる同一の記憶領域に対してアクセスが競合した場合に排他制御を行う制御装置１２と、を備えた情報処理装置であって、処理装置１１は、所定のプログラムをデコードするデコード部１１１と、処理装置１１から主記憶装置１３へのアクセスを要求するアクセス制御部１１２と、を含み、制御装置１２は、アクセス制御部１１２からのアクセス要求を受け付けるアクセス受付部１２１と、アクセス受付部１２１にて受け付けた複数のアクセス要求が主記憶装置１３に含まれる同一の記憶領域に競合した場合、複数のアクセス要求を調停し、実行するアクセス要求を選択する競合制御部１２２と、競合制御部１２２が選択したアクセス要求を主記憶装置１３に対して実行するアクセス実行部１２３と、複数のアクセス要求に排他制御に伴うロック処理を解除するためのアンロック要求が含まれる場合、競合制御部１２２にアンロック要求を優先して選択させるアンロック優先部１２４と、を含む。
【００２４】
なお、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【００２５】
情報処理装置１の主な構成物は処理装置１１、制御装置１２、主記憶装置１３であるが、排他制御機能を有する情報処理装置としては、一般的な構成である。
【００２６】
図１に示すように、処理装置１１は、デコード部１１１と、アクセス制御部１１２と、を含む。
【００２７】
デコード部１１１は、実行すべき所定のプログラムをデコードする。所定のプログラムは主記憶装置１３に限らず、外部装置や外部ネットワークなど、読込先は問わない。
【００２８】
アクセス制御部１１２は、主記憶装置１３へのアクセスを要求する。また、キャッシュへのアクセスやキャッシュ間のコヒーレンシ制御が必要な際のアクセスなども要求する。
【００２９】
また、図１に示すように、制御装置１２はアクセス受付部１２１と、競合制御部１２２と、アクセス実行部１２３と、アンロック優先部１２４と、を含む。
【００３０】
アクセス受付部１２１は、処理装置１１から主記憶装置１３に対するアクセス要求を受け付ける。また、キャッシュ間のコヒーレンシ制御が必要な際のアクセスなども受け付ける。
【００３１】
競合制御部１２２は、主記憶装置１３に含まれる同一の記憶領域に対して複数のアクセス要求が競合した場合、複数のアクセス要求の中から実行するアクセス要求を選択する。
【００３２】
アクセス実行部１２３は、主記憶装置１３に対するアクセス要求を実行する。
【００３３】
アンロック優先部１２４は、アクセス受付部１２１からアクセス要求の情報およびアンロック要求の識別情報を取得し、アクセス受付部１２１が受け付けたアクセス要求がアンロック要求であることを識別した場合、競合制御部１２２にアンロック要求を優先して選択させる。アンロック要求の識別情報の取得方法及びアンロック要求の優先選択方法の詳細については、後述する。
【００３４】
主記憶装置１３は、読み出し要求を受けた場合、要求元に対してデータを返却する。また、書き込み要求の場合、記憶内容を更新する。
【００３５】
次に、本発明に係わる実施の形態の情報処理装置における動作フローについて、図２を用いて説明する。
【００３６】
まず、処理装置１１は実行するプログラムを読み込む。上述のとおり、その読込先は問わない（ステップＳ１０１）。
【００３７】
デコード部１１１は読み込まれたプログラムをデコードする（ステップＳ１０２）。
【００３８】
アクセス制御部１１２は、デコードされた命令に従い、主記憶装置１３に対してアクセス要求を出力する（ステップＳ１０３）。
【００３９】
アクセス受付部１２１は、アクセス要求を受け付ける。アンロック優先部１２４は、アクセス受付部１２１からアンロック要求の優先判定に必要な情報を取得し、優先判定を行う（ステップＳ１０４）。
【００４０】
判定結果が優先調停となった場合（Ｓ１０４の判定がＹＥＳの場合）、競合制御部１２２は優先調停状態に遷移し（ステップＳ１０５）、判定結果に従ってアンロック要求を優先して選択する。また、判定結果が通常調停となった場合（Ｓ１０４の判定がＮＯの場合）、競合制御部１２２は通常の調停を行う（ステップＳ１０６）。
【００４１】
アクセス実行部１２３は、調停されたアクセス要求を主記憶装置１３に対して実行する。主記憶装置１３はそのアクセス要求に従い、任意の処理を実行する（ステップＳ１０７）。
【００４２】
（第２実施形態）
次に、上述したアンロック要求の識別情報の取得方法の一例について、具体的に説明する。図３は、本発明に係る実施の形態の情報処理装置において、アンロック要求の識別情報取得専用機能を追加した機能ブロック図である。
【００４３】
図３に示すように、本発明に係る実施の形態の情報処理装置２において、処理装置２１、２２、２３及び２４は、デコード部２１１にてデコードされた所定のプログラムから、アンロック要求の識別情報を検出する識別情報検出部２１３と、識別情報検出部２１３にて識別情報を検出した場合は、識別情報をアクセス制御部２１２と同期して制御装置２５に対して識別情報を出力する識別情報制御部２１４と、を含み、制御装置２５は、識別情報制御部２１４から識別情報を受け付ける識別情報受付部２５５を含むことができる。
【００４４】
情報処理装置２の主な構成物は四台の処理装置２１、２２、２３、２４と、制御装置２５と主記憶装置２６である。本実施形態においては、処理装置は四台にて構成しているが、その台数は一または複数の任意で構わない。
【００４５】
図３に示すように、処理装置２１は、デコード部２１１と、アクセス制御部２１２と、識別情報検出部２１３と、識別情報制御部２１４と、を含む。また、他の処理装置２２、２３、２４においても同様の構成とする。
【００４６】
デコード部２１１は、上述したデコード部１１１の機能と同様である。
【００４７】
アクセス制御部２１２は、上述したアクセス制御部１１２の機能に加えて、キャッシュ間のコヒーレンシ制御を必要としないアクセス要求は、主記憶装置２６へ直接実行できる。これによって、アクセス受付部２５１へのアクセス数を軽減することができる。
【００４８】
識別情報検出部２１３は、デコード部２１１にてデコードされた所定のプログラムからアンロック要求の識別情報を検出する。識別情報を検出する方法の詳細については、後述する。
【００４９】
識別情報制御部２１４は、識別情報検出部２１３にて識別情報を検出した場合に、アクセス制御部２１２が出力するアクセス要求と同期して、制御装置２５に対して識別情報を出力する。
【００５０】
また、図３に示すように、制御装置２５は、アクセス受付部２５１と、競合制御部２５２と、アクセス実行部２５３と、アンロック優先部２５４と、識別情報受付部２５５と、を含む。
【００５１】
アクセス受付部２５１と、競合制御部２５２と、アクセス実行部２５３は、それぞれ上述したアクセス受付部１２１と、競合制御部１２２と、アクセス実行部１２３の機能と同様である。
【００５２】
識別情報受付部２５５は、識別情報制御部２１４の出力した識別情報を受け付ける。
【００５３】
アンロック優先部２５４は、上述したアンロック優先部１２４の機能と同様である。ただし、本構成においては、アンロック要求の識別情報の入手先は識別情報受付部２５５となる。
【００５４】
主記憶装置２６は、上述した主記憶装置１３の機能と同様である。
【００５５】
上述した識別情報を検出する方法の一例について、具体的に説明する。
【００５６】
所定のプログラムがアンロック要求を伴う場合、アンロック要求の命令コードを任意のアンロック要求専用の命令コードとする。プログラムをデコードする度に、そのプログラムの命令コードとアンロック要求専用命令コードのリストを比較し、一致すればアンロック要求と識別できる。
【００５７】
図４は上述した識別情報の検出方法を実現するための識別情報検出部の回路である。デコード回路３１１は、所定のプログラムの命令コードをデコードする。一致回路３１２はデコード回路３１１にてデコードされた命令コードと、任意のアンロック専用命令コードが一致していることを検出する。
【００５８】
上述したアンロック要求を優先して調停する方法の一例として、具体的に説明する。
【００５９】
アンロック優先部２５４は、アクセス受付部２５１及び識別情報受付部２５５から取得した情報から、図５のような調停論理に従って、優先判定結果を得る。
【００６０】
図５の要求元Ａ〜Ｄは、それぞれ処理装置２１〜２４に対応している。アンロック識別有りの識別情報を出力した要求元が一つ存在した場合、優先判定結果は該要求元優先となる。この判定に従い、アンロック優先部２５４は競合制御部２５２に該要求元のアクセス要求を優先して選択させる。全ての要求元がアンロック識別なしの識別情報を出力する、またはアンロック識別有りの識別情報を出力した要求元が複数存在する場合、優先判定結果は通常調停となる。この判定に従い、アンロック優先部２５４は競合制御部２５２に通常調停をさせる。
【００６１】
以上図３、図４、図５において説明してきた方法を用いた場合の動作フローについて、図６を用いて説明する。
【００６２】
まず、処理装置２１は実行するプログラムを読み込む。上述のとおり、その読込先は問わない（ステップＳ２０１）。
【００６３】
デコード部２１１は読み込まれたプログラムをデコードする（ステップＳ２０２）。
【００６４】
デコードされたプログラムによって要求されるアクセスについて、キャッシュ間のコヒーレンシ制御不要な場合（Ｓ２０３の判定がＮＯの場合）、アクセス制御部２１２は、主記憶装置２６に対して直接アクセスする（ステップＳ２０３）。
【００６５】
キャッシュ間のコヒーレンシ制御が必要なアクセス要求の場合（Ｓ２０３の判定がＹＥＳの場合）、識別情報検出部２１３は、そのアクセス要求の命令コードからアンロック要求の識別情報を検出する（ステップＳ２０４）。
【００６６】
アクセス制御部２１２は、主記憶装置２６に対してアクセス要求を出力する。この時、識別情報制御部２１４は、識別情報検出部２１３によって検出された識別情報を取得し、アクセス制御部２１２と同期して出力する（ステップＳ２０５）。
【００６７】
アクセス受付部２５１及び識別情報受付部２５５は、それぞれアクセス要求及び識別情報を受け付ける。アンロック優先部２５４は、アクセス受付部２５１及び識別情報受付部２５５からアンロック要求の優先判定に必要な情報を取得し、図５の論理に従って優先判定を行う（ステップＳ２０６）。
【００６８】
判定結果が優先調停となった場合（Ｓ２０６の判定がＹＥＳの場合）、競合制御部２５２は優先調停状態に遷移し（ステップＳ２０７）、判定結果に従ってアンロック要求を優先して調停する。また、判定結果が通常調停となった場合（Ｓ２０６の判定がＮＯの場合）、競合制御部２５２は通常の調停を行う（ステップＳ２０８）。
【００６９】
アクセス実行部２５３は、調停されたアクセス要求を主記憶装置２６に対して実行する。主記憶装置２６はそのアクセス要求に従い、任意の処理を実行する（ステップＳ２０９）。
【００７０】
以上説明したように、本発明の実施の形態の情報処理装置によれば、複数のアクセス要求の中からアンロック要求を優先して実行することができる。
【００７１】
図７は、複数のアクセス要求の中からアンロック要求を優先して実行することができることによって、本発明は従来処理よりロック取得期間が短くなることを示している。
【００７２】
従来の処理方法において、複数の処理装置からロック要求があった場合は、調停を行い、その中で一つのロック要求が選択され、該ロック要求の要求元である処理装置（ＣＰＵ＃０）がロック成功となる。ロック成功と同時に、対象記憶領域に対するロックが成立することを意味するので、ロック成功した処理装置はロック取得状態となる。
【００７３】
処理装置（ＣＰＵ＃０）が要求したアンロック要求が処理されるまで、ロック取得状態は継続する。この期間がロック取得期間である。ロック取得期間中、他の処理装置（ＣＰＵ＃ｍまたはＣＰＵ＃ｎ）は、調停時に選択されてもロック要求は受け付けられないので、ロック失敗と判定されるため、図２及び図６のフローに示すように、再度要求を繰り返す。
【００７４】
従来の処理方法では、調停時にアンロック要求と他のロック要求と区別ができず、同等として扱われるため、アンロック要求と他のロック要求が競合した場合、必ずしもアンロック要求が選択されるとは限らない。アンロック要求が調停にて選択されるまでアンロック処理ができず、ロック取得期間が延長する結果となる。
【００７５】
これに対して、本発明の処理方法では、調停時にアンロック要求と他のロック要求を区別して扱うので、アンロック要求と他のロック要求が競合した場合、アンロック要求が選択され、他のロック要求は次回の調停に繰り越しとなる。これによって、アンロック処理を実施するまでの時間を短縮できるので、従来の処理方法に比べてロック取得期間を短縮することができ、情報処理装置の性能向上が実現できる。
【００７６】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【００７７】
本実施形態では、アンロック要求の識別情報は、専用の命令コードを持たせたが、識別情報として明示できればよく、その方法は問わない。たとえば、識別情報専用ビットを設けて、アンロック要求の有無をビット単位で明示する方法でもよい。
【００７８】
また、アンロック要求の識別情報取得専用機能として、識別情報検出部、識別情報制御部を処理装置に、識別情報受付部を制御装置に設けた事例にて説明したが、制御装置が識別情報を認識できればよく、この構成に限らない。たとえば、処理装置及び制御装置間にて授受するデータの構造やアクセスパターンによっては、処理装置にて識別情報を検出し、伝達しなくても、制御装置が識別情報を認識することも可能である。
【図面の簡単な説明】
【００７９】
【図１】実施の形態に係る情報処理装置の機能を示した機能ブロック図である。
【図２】実施の形態に係る情報処理装置の動作フローを示すフロー図である。
【図３】他の実施形態として図１の情報処理装置にアンロック要求の識別情報取得用の専用機能を追加した機能ブロック図である。
【図４】識別情報検出部の一例を示す図である。
【図５】調停時にアンロック要求を優先して選択する調停論理の一例を示す図である。
【図６】他の実施形態における情報処理装置の動作フローを示すフロー図である。
【図７】従来処理と本発明の処理の比較図である。
【符号の説明】
【００８０】
１          情報処理装置
１１        処理装置
１１１      デコード部
１１２      アクセス制御部
１２        制御装置
１２１      アクセス受付部
１２２      競合制御部
１２３      アクセス実行部
１２４      アンロック優先部
１３        主記憶装置
２          情報処理装置
２１〜２４  処理装置（要求元Ａ〜Ｄ）
２１１      デコード部
２１２      アクセス制御部
２１３      識別情報検出部
２１４      識別情報制御部
２５        制御装置
２５１      アクセス受付部
２５２      競合制御部
２５３      アクセス実行部
２５４      アンロック優先部
２５５      識別情報受付部
２６        主記憶装置
３１１      デコード回路
３１２      一致回路
【図１】
0004985478.tif 000002
【図２】
0004985478.tif 000003
【図３】
0004985478.tif 000004
【図４】
0004985478.tif 000005
【図５】
0004985478.tif 000006
【図６】
0004985478.tif 000007
【図７】
0004985478.tif 000008