(57)【要約】【課題】マルチプロセッサシステムにおけるセマフォ制御では、共有リソースへのアクセス権を得るまでＣＰＵを待たせるソフトウェア処理が必要となるため、コードサイズの増加を招くという課題があった。【解決手段】複数のＣＰＵ（１０，１１）と、上記複数のＣＰＵ間で共有される共有リソースに対するアクセス管理を行うためのセマフォ制御部（１２）とを含んで、情報処理装置（１００）を構成する。上記セマフォ制御部は、上記複数のＣＰＵにおけるひとつのＣＰＵが上記共有リソースへのアクセス権を獲得している期間、他のＣＰＵから上記共有リソースへのアクセス権の要求に対してウェイト制御を行う。このようなセマフォ制御によって、共有リソースへのアクセス権を得るまでＣＰＵを待たせる処理をソフトウエアで追加する必要がなくなるため、コードサイズの増加を抑えることができる。【選択図】図１
2010092101.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵと、
上記複数のＣＰＵ間で共有される共有リソースに対するアクセス管理を行うためのセマフォ制御部と、を含み、
上記セマフォ制御部は、上記複数のＣＰＵにおけるひとつのＣＰＵが上記共有リソースへのアクセス権を獲得している期間、他のＣＰＵから上記共有リソースへのアクセス権の要求に対してウェイト制御を行うことを特徴とする情報処理装置。
【請求項２】
上記セマフォ制御部は、それぞれ上記共有リソースの排他制御を可能とする複数のセマフォレジスタと、上記複数のセマフォレジスタに対応する複数のウェイトフラグレジスタと、を含み、上記ウェイトフラグレジスタのフラグ状態に応じて、上記他のＣＰＵから上記共有リソースへのアクセス権の要求に対するウェイト制御が行われる請求項１記載の情報処理装置。
【請求項３】
上記セマフォレジスタは、上記セマフォレジスタにおける所定ビットの論理値と、それに対応する上記ウェイトフラグレジスタの保持値との論理演算を行い、その演算結果に基づいて上記ウェイト制御を行う請求項２記載の情報処理装置。
【請求項４】
上記セマフォ制御部は、ウェイト数をカウントするウェイトカウンタを含み、上記ウェイトカウンタのカウント結果に基づいて上記ＣＰＵに対する割り込み要求を行い、ウェイト状態をリセットする請求項３記載の情報処理装置。
【請求項５】
上記セマフォ制御部は、上記セマフォレジスタに対応する複数のセマフォ番号レジスタを更に含み、
上記ＣＰＵによって上記セマフォレジスタが読み出されたとき、そのセマフォレジスタのアドレスの一部の領域をセマフォ番号として扱い、上記セマフォ番号レジスタのセマフォ番号情報が設定される制御が行われる請求項１記載の情報処理装置。
【請求項６】
上記セマフォ番号は、上記セマフォレジスタの下位ビットを使用する請求項５記載の情報処理装置。
【請求項７】
上記セマフォ制御部は、上記ＣＰＵの読み出しアドレスの情報と上記セマフォレジスタにおける所定ビットの論理値を使用して上記セマフォレジスタの空きの有無を判断する制御が行なわれる請求項５記載の情報処理装置。
【請求項８】
上記セマフォ制御部は、上記セマフォレジスタの空きが無い場合には、読み出しを行なったＣＰＵに対してウェイト制御を行う請求項７記載の情報処理装置。
【請求項９】
上記セマフォ制御部は、上記セマフォレジスタの空きが無い場合には、読み出しを行なったＣＰＵに対してウエイト制御を行なうか、割込み要求を行なうかを選択可能な請求項７記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、さらには情報処理装置において共有資源（共有リソース）をシステム全体で利用する場合の排他制御のためのセマフォ（Semaphore）制御技術に関する。
【背景技術】
【０００２】
膨大なデータ処理を高速で行うには、複数のプロセッサや複数のコンピュータにより並列処理を行う、いわゆるマルチプロセッサシステムやマルチコンピュータシステムが有効である。マルチプロセッサシステムやマルチコンピュータシステムなどの情報処理装置において、タイマやＡ／Ｄコンバータなどの周辺回路やプログラムの一部、メモリの一部の領域など（共有資源）を複数のＣＰＵが使用することになる。このように複数のＣＰＵが共有資源を同時にアクセスして競合が発生する可能性がある場合には、あるＣＰＵにリソースを独占的に利用させている間は、他のＣＰＵが使用できないようにする事で整合性を保つように制御する必要があり、これを排他制御と呼んでいる。このような排他制御を実現するために、セマフォと呼ばれる変数を用いて行なうソフトウェア的な手法がよく使われる。この手法を改善する一手段として、セマフォ変数を情報処理装置のレジスタ上のビットに割り付け、ハードウエアとして実現した例を特許文献１が提案している。本発明は、特許文献１が提案している手法を以下に記載される手段によってさらに改良したものである参照）。
【０００３】
【特許文献１】特開平５−８９０５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
セマフォ制御は以下のように行われる。
【０００５】
セマフォレジスタは、セマフォ制御用に１ビット（＝Ｓビットと呼ぶことにする）を備える。Ｓビットが論理値“１”の時に読み出したＣＰＵが共有リソースをアクセスできる権利を獲得する。ＳビットはＣＰＵが読み出すと自動的に論理値“１”から論理値“０”に変化する。他方のＣＰＵが本レジスタを読み出してＳビットが論理値“０”の場合には共有リソースが使用中であることを知ることができる。共有リソースを使用していたＣＰＵは、共有リソースの使用が終わるとＳビットに論理値“１”を書き込む。他方のＣＰＵは、ソフトウエアループによって繰り返しＳビットの読み出しを行ない、Ｓビットが論理値“１”になった時点で共有リソースのアクセス権を獲得したことになり、共有リソースへのアクセスを開始できるようになる。
【０００６】
しかしながら、このようなセマフォ制御によれば、以下のような不都合を生ずる。
【０００７】
Ｓビットが論理値“１”になるまで待つための処理をソフトウエアによるループ処理で実現しなければならず、コードサイズがその分必要である。例えば、シングルコア向けのソフトウエアをマルチコア向けのソフトウエアに変更する場合、シングルコアでは不要だった排他制御のためのループ処理のコードが共有リソース毎に増加することになり、マルチコアにすることによりコードサイズの増大をまねくことになる。特にコードをマイコンの内蔵メモリで配置するような組込みシステムでは、このようなコードサイズの増大が無視できないシステムコストの増大をまねくことになり、大きな問題となる。また、シングルコアからマルチコアへの移行を容易にするためには、用途やソフトウエアの構成に依存するが、排他制御が必要な共有リソースは大量に必要となる場合がある。しかし、最大限のセマフォ制御に備えてその分のレジスタを用意するのは非現実的と考えられる。
【０００８】
本発明の目的は、セマフォ制御における共有リソース空きを待つためのソフトウェア処理を省略することによってソフトウェアのコードサイズを小さくするための技術を提供することにある。また、本発明の他の目的として、限られた量のハードウエアによって大量のセマフォ制御を実現するための技術を提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【００１１】
すなわち、複数のＣＰＵと、上記複数のＣＰＵ間で共有される共有リソースに対するアクセス管理を行うためのセマフォ制御部とを含んで情報処理装置を構成する。上記セマフォ制御部は、上記複数のＣＰＵにおけるひとつのＣＰＵから上記共通リソースへのアクセスが行われている期間、他のＣＰＵから上記共通リソースへのアクセスに対するウェイト制御を行う。このようなセマフォ制御によれば、例えばＳビットが論理値“１”になるまで待つための処理をソフトウエアで追加する必要がないから、コードサイズの増加を招くことはない。
【発明の効果】
【００１２】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１３】
セマフォ制御における共有リソース空きを待つためのソフトウェア処理を省略することによってソフトウェアのコードサイズを小さくすることができる。また、限られた量のハードウエアによって大量のセマフォ制御を実現することができる。
【発明を実施するための最良の形態】
【００１４】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１５】
〔１〕本発明の代表的な実施の形態に係る情報処理装置（１００）は、複数のＣＰＵ（１０，１１）と、上記複数のＣＰＵ間で共有される共有リソースに対するアクセス管理を行うためのセマフォ制御部（１２）とを含む。上記セマフォ制御部は、上記複数のＣＰＵにおけるひとつのＣＰＵが上記共有リソースへのアクセス権を獲得している期間、他のＣＰＵから上記共有リソースへのアクセス権の要求に対してウェイト制御を行う。
【００１６】
上記ウェイト制御をハードウエア的に実施することにより、Ｓビットが論理値“１”になるまで待つための処理をソフトウエアで追加する必要がないから、コードサイズの増加を招くことはない。
【００１７】
〔２〕上記〔１〕において、上記セマフォ制御部は、それぞれ上記共有リソースの排他制御を可能とする複数のセマフォレジスタ（１２１）と、上記複数のセマフォレジスタに対応する複数のウェイトフラグレジスタ（１２２）と、を含み、上記ウェイトフラグレジスタのフラグ状態に応じて、上記他のＣＰＵから上記共通リソースへのアクセス権の要求に対してウェイト制御が行われるように構成することができる。
【００１８】
〔３〕上記〔２〕において、上記セマフォレジスタは、上記セマフォレジスタにおける所定ビットの論理値と、それに対応する上記ウェイトフラグレジスタの保持値との論理演算を行い、その結果に基づいて上記ウェイト制御を行うように構成することができる。
【００１９】
〔４〕上記〔３〕において、上記セマフォ制御部は、ウェイト数をカウントするウェイトカウンタを含み、上記ウェイトカウンタのカウント結果に基づいて割り込み要求を行うウェイト状態をリセットするように構成することができる。
【００２０】
〔５〕上記〔２〕において、上記セマフォ制御部は、上記セマフォレジスタに対応する複数のセマフォ番号レジスタ（１２４）を更に含み、上記ＣＰＵによって上記セマフォレジスタが読み出されたとき、そのセマフォレジスタが空いていれば、それに対応する上記セマフォ番号レジスタには、そのセマフォレジスタのアドレスの下位ビットがセマフォ番号として書き込まれ、セマフォレジスタが空いていなければ、当該ＣＰＵに対してウェイト制御が行われるように構成することができる。
【００２１】
かかる構成によれば、セマフォレジスタの数が少なくても、仮想的なセマフォ数を多く割り当てることが可能になるため、必要なセマフォ数分レジスタを用意する必要はなく、ハードウェア規模の低減を図ることができる。
【００２２】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００２３】
＜実施の形態１＞
図１には、本発明にかかる情報処理装置の一例とされるマルチプロセッサシステムが示される。
【００２４】
図１に示されるマルチプロセッサシステム１００は、特に制限されないが、二つのＣＰＵ１０，１１、セマフォ制御部１２、バスブリッジ１５，１６、周辺モジュール１７，１８，１９及びメモリ２１を含み、公知の半導体集積回路製造技術により、例えば単結晶シリコン基板などの１つの半導体基板に形成される。
【００２５】
ＣＰＵ１０は、第１ローカルバス１３を介してセマフォ制御部１２に結合されるとともに、バスブリッジ１５及びシステムバス２０を介して周辺モジュール１７，１８，１９及びメモリ２１に結合される。また、ＣＰＵ１１は、第２ローカルバス１４を介してセマフォ制御部１２に結合されるとともに、バスブリッジ１６及びシステムバス２０を介して周辺モジュール１７，１８，１９及びメモリ２１に結合される。
【００２６】
図２には、上記セマフォ制御部１２の構成例が示される。
【００２７】
上記セマフォ制御部１２は、セマフォレジスタ１２１、ウェイトフラグレジスタ１２２、及びウェイトカウンタ１２３を含む。
【００２８】
上記セマフォレジスタ１２１は、ＣＰＵ１０，１１との間の共通リソースに対応して複数個配置されている。複数のセマフォレジスタ１２１は、それぞれセマフォ制御用のＳビットを備え、このＳビットが論理値“１”の時に読み出したＣＰＵが共有リソースのアクセス権を得る。このＳビットは一方のＣＰＵに読み出されると、論理値“１”から論理値“０”に変更される。これにより、他方のＣＰＵは、このＳビットが論理値“０”の場合に共有リソースが使用中であることを知ることができる。共有リソースを使用していたＣＰＵは、共有リソースの使用が終わるとＳビットに論理値“１”を書き込む。他方のＣＰＵは、Ｓビットが論理値“１”になったことを確認して共有リソースのアクセスを開始することができる。
【００２９】
上記ウェイトフラグレジスタ１２２は、上記複数のセマフォレジスタ１２１に対応して複数個配置される。一方のＣＰＵによってセマフォレジスタが読み出されることでＳビットが論理値“０”に変更された状態で、他方のＣＰＵから当該Ｓビットの読み出しが行われた場合に、他方のＣＰＵに対してウェイトさせるか否かを上記ウェイトフラグレジスタ１２２に設定することができる。セフォマ制御部１２では、Ｓビットとウェイトフラグとの論理演算により論理積を求め、それに基づいてウェイト制御を行う。ウェイトフラグが論理値“０”に設定されている場合、ウェイト機能が無効とされ、ウェイトフラグが論理値“１”に設定されている場合、ウェイト機能が有効とされる。ウェイトフラグが論理値“０”に設定されている場合には、ウェイト機能が無効とされるため、他方のＣＰＵからのＳビットの読み出しに対してＥＮＤ信号が返される。これに対して、ウェイトフラグが論理値“１”に設定されている場合には、ウェイト機能が有効とされるため、他方のＣＰＵからのＳビットの読み出しに対してＥＮＤ信号を返さずにウェイトさせる。このように、ウエイト制御の有効/無効を選択できるようにしているのは、次の理由からである。共有リソースが他のＣＰＵによって使用されている場合のソフトウエア処理として、共有リソースが空くのを待つだけでよい場合と、共有リソースが空くまでの間に他の処理をさせたい場合が考えられる。ウエイト制御を無効にすれば、論理値”０”の読み出しにより共有リソースが使用中であると分かった段階で、別の処理を引き続き実行することができるようになる。
【００３０】
上記ウェイトカウンタ１２３は、他方のＣＰＵからのＳビットの読み出しに対してＥＮＤ信号を返さずにウェイトさせた場合にウェイト数のカウント動作を開始し、ウェイト数が予め設定された値に達した場合に、ＣＰＵ１０又はＣＰＵ１１に対するウェイト解除を行うとともに、割り込み要求信号をアサートする。これによりＣＰＵ１０又はＣＰＵ１１は、所定の割り込み処理を実行する。このようなウェイトカウンタを設けることにより、ソフトウエアの不具合やＣＰＵの暴走などによって、共有リソースの使用が完了したにもかかわらずＳビットに論理値”１”が書き込まれずに「ウエイトがいつまでたっても解除されないためにシステムがハングアップする」という状況を防ぐことができる。
【００３１】
図３には、上記ＣＰＵ１０，１１によるセマフォレジスタのアクセスタイミングが示される。
【００３２】
ＣＰＵ１０が例えばアドレス０８番地のセマフォレジスタを読み出す場合、ＣＰＵ１０はリード要求信号を論理値”１”にするとともにアドレス信号を”０８”にする。セマフォ制御部１２は０８番地のセマフォレジスタのＳビット値“１”をデータ信号に載せるとともにＥＮＤ信号を論理値”１”にする。ＣＰＵ１０は、Ｓビットの値が”１”であることから、この共有リソースのアクセス権を得たものとして引き続き処理を続行する（３０１）。このとき、０８番地のセマフォレジスタのＳビットは論理値”０”に変化する。
【００３３】
アドレス０８番地のセマフォレジスタに対応するウェイトフラグレジスタ１２２にはあらかじめウェイトフラグが論理値“１”に設定されており、ウェイト機能が有効となっているものとする。ＣＰＵ１１は、上記ＣＰＵ１０よりも１サイクル遅れてアドレス０８番地のセマフォレジスタを読みだそうとしたが（３０２）、当該共有リソースのアクセス権はＣＰＵ１０によって獲得された後であり、しかもウェイト機能が有効とされているため、ＣＰＵ１１にＥＮＤ信号が返されず、ＣＰＵ１１はＥＮＤ信号のリード待ち状態となる。
【００３４】
その後、ＣＰＵ１０による共有リソース使用が終了し、ＣＰＵ１０はアドレス０８番地のセマフォレジスタのＳビットに論理値“１”を書き込んで共有リソースを解放する（３０３）。
【００３５】
０８番地のセマフォレジスタのＳビットに”１”が書き込まれると、ＣＰＵ１１に対するＥＮＤ信号が論理値“１”にアサートされる（３０４）。ＣＰＵ１１はリード処理を終了し、この共有リソースを使用する処理に移行する。
【００３６】
次に、ＣＰＵ１１による共有リソース使用が終了し、ＣＰＵ１１はアドレス０８番地のセマフォレジスタに論理値“１”を書き込んで共有リソースを解放する。
【００３７】
ここで、従来のセマフォ制御によれば、ＣＰＵ１１は、Ｓビットが論理値“１”になるまで繰り返しＳビットを読み出すためのループ処理を行なうプログラムが必要である。例えば、シングルコアからマルチコアにシステムを変更した際に共有リソースの排他制御のための上記のようなソフトウエアループ処理を追加する必要があるので、コードサイズが増加するという問題点があった。
【００３８】
これに対して、実施の形態１によれば、以下の作用効果を得ることができる。
【００３９】
（１）上記のように、ＣＰＵにＥＮＤ信号を返さずに、当該ＣＰＵをＥＮＤ信号のリード待ち状態とする方式では、Ｓビットが論理値“１”になるまで待つためのループ処理などのような処理をソフトウエアで追加する必要がないから、コードサイズの増加を招くことはない。
【００４０】
（２）ウェイトフラグレジスタ１２２を備え、ウェイト機能の有効及び無効を選択的に設定することができるので、システム設計の自由度の向上を図ることができる。
【００４１】
（３）ウェイトカウンタ１２３が設けられ、ウェイト数が予め設定された値に達した場合に、ＣＰＵ１０又はＣＰＵ１１に対するウェイト解除が行われるとともに、割り込み要求信号がアサートされるようになっているので、ＥＮＤ信号のリード待ち状態が延々と続くことで、システムがハングアップ状態に陥るのを回避することができる。
【００４２】
＜実施の形態２＞
図４には、上記マルチプロセッサシステム１００の別の構成例が示される。
【００４３】
図４に示されるマルチプロセッサシステム１００が、図１に示されるのと大きく相違するのは、セマフォ番号レジスタ１２４が設けられている点である。尚、図面上、省略されているが、ウェイトフラグレジスタ１２２やウェイトカウンタ１２３は、図４に示されるマルチプロセッサシステム１００においても設けられている。セマフォ番号レジスタ１２４は、セマフォレジスタ１２１に対応して配置される。このセマフォ番号レジスタ１２４によってセマフォ番号を動的に変更できるため、セマフォレジスタの数が少なくても、仮想的なセマフォ数を多く割り当てることが可能になる。
【００４４】
セマフォレジスタの割り当てられている空間を、例えば０ｘＦＦＦＣ  １Ｅ００〜０ｘＦＦＦＣ  １ＥＦＦ番地とする。また、アドレスの下位８ビットの値がセマフォ番号（セマフォＮｏ．）となることにする。この場合、セマフォ番号は、０ｘ００〜０ｘＦＦ（１０進数で０〜２５５）まで使用可能となる。これに対して、例えばセマフォレジスタを１６本にする。セマフォ番号は、空いている（＝Ｓビットが”１”の）レジスタがあれば順番に割り付けられる。空きが無い場合には、ウェイトか割り込み発生で対処される。
【００４５】
具体的には、次のようにセマフォ番号を動的に変更する処理が行われる。
【００４６】
ＣＰＵ１０は、セマフォ番号０８の共有リソースを使用したい場合には、「０ｘＦＦＦＣ  １Ｅ０８」のアドレスでセマフォレジスタ１２１を読み出す。セマフォ制御部は、１６本あるセマフォレジスタ１２１の中から、まず、セマフォ番号レジスタ１２４に”０８”が書き込まれており、かつ、それに対応するＳビットが”０”となっているセマフォレジスタを探す。ない場合には、Ｓビットが”１”となっているセマフォレジスタをひとつ選択し、このＳビットを論理値“１”から論理値“０”に変更する（４０１）。また、アドレスの下位８ビットの値がセマフォ番号を表しているため、選択したセマフォレジスタに対応するセマフォ番号レジスタ１２４に”０８”を書き込む。これにより、ＣＰＵ１０は、セマフォ番号０８の共有リソースのアクセス権を得たことになる。（４０１）。
【００４７】
この後に、ＣＰＵ１１がセマフォ番号０８の共有リソースを使用するため、「０ｘＦＦＦＣ  １Ｅ０８」のアドレスでセマフォレジスタ１２１を読み出すと、セマフォ制御部１２は、セマフォ番号レジスタ１２４に”０８”が書き込まれ、かつ、対応するＳビットが”０”となっているセマフォレジスタ１２１を探す。ＣＰＵ１０によって、セマフォ番号０８に対応するＳビットが“０”となっているので、ＥＮＤ信号が返らず、ＣＰＵ１１はウェイト状態となる（４０２）。
【００４８】
その後、ＣＰＵ１０による共有リソース使用が終了し、ＣＰＵ１０は「０ｘＦＦＦＣ  １Ｅ０８」のアドレスでセマフォレジスタ１２１に論理値“１”を書き込んでセマフォ番号０８の共有リソースを解放する（４０３）。
【００４９】
ＣＰＵ１０による共有リソース使用が終了し、共有リソースが解放されたので、ＣＰＵ１１に対してＥＮＤ信号が論理値“１”にアサートされる（４０４）。ＣＰＵ１１はリード処理を終了し、この共有リソースを使用する処理に移行する。すなわち、ＣＰＵ１１のリード処理により、Ｓビットが論理値“１”から論理値“０”に変更され、セマフォ番号０８に対応する共有リソースのアクセス権は、今度はＣＰＵ１１が獲得したことになる（４０４）。
【００５０】
図５には、上記セマフォ制御部１２におけるダイナミックアロケーション機能が示される。
【００５１】
（ａ）上記セマフォ制御部１２では、ＣＰＵからリード要求があると、アドレスの下位８ビットとセマフォ番号レジスタの値とを比較する。そして、この比較において、アドレスの下位８ビットの値に一致するセマフォ番号レジスタがあり、且つ、対応するセマフォレジスタのＳビットが論理値“０”であったなら、ウェイトフラグレジスタ１２２における対応フラグの論理値に従ってウェイトさせるか、論理値“０”を返す。
【００５２】
（ｂ）アドレスの下位８ビットの値に一致するセマフォ番号レジスタが無く、しかも全てのＳビットが論理値“０”の場合には、セマフォ制御可能なセマフォレジスタの空きがないことを示しており、この場合には、セマフォ制御を空きができるまでＣＰＵを待たせる（リード要求に対してウエイト制御を行なう）か、ＣＰＵに割り込みを入れて（割込み要求信号をアサートする）ＣＰＵにセマフォ制御がオーバーフローしたことを伝えるようにする。
【００５３】
（ｃ）上記（ａ），（ｂ）以外の場合、論理値“１”を返し、アドレス信号の下位８ビットをセマフォ番号レジスタに登録し、対応するセマフォレジスタのＳビットを論理値“０”に設定する。
【００５４】
これに対して、ＣＰＵからライト要求がある場合、アドレス信号の下位８ビットと一致するセマフォ番号レジスタに対応するセマフォレジスタのＳビットが論理値“１”に設定される。このとき、同じ番号でウェイトされているものがある場合には、ＥＮＤ信号がアサートされるとともに、論理値“１”が返される。
【００５５】
ここで従来技術によれば、セマフォの数が大量に必要である場合には、必要なセマフォ数分レジスタを用意しなければならず、それは非現実的と考えられる。これに対して、上記の構成によれば、セマフォ番号を動的に変更することができるため、セマフォレジスタの数が少なくても（実施の形態２では１６）、セマフォ数を多く割り当てることが可能（実施の形態２では２５６）になる。このため、必要なセマフォ制御の数が大量となっても、セマフォ制御のためのレジスタ数は少なくすることができ、ハードウエア規模の低減を図ることができる。この方式では、同時にセマフォ制御できる数はセマフォレジスタの数が上限となるが、現実のシステムでも同時に使用されるセマフォ制御の数はそれほど多く必要とされないため、本発明の方式は有効である。
【００５６】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００５７】
例えば上記の例では、２個のＣＰＵ１０，１１を含むものについて説明したが、ＣＰＵを３個以上含む場合においても同様にセマフォ処理を行うことができる。また、セマフォ制御部のレジスタの数や種類、アクセスのためのプロトコル、システムの構成なども本発明の要旨を逸脱しない範囲で変更可能である。
【００５８】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマルチプロセッサシステムに適用した場合について説明したが、本発明はそれに限定されるものはなく、各種情報処理装置に適用することができる。
【図面の簡単な説明】
【００５９】
【図１】本発明にかかる情報処理装置の一例とされるマルチプロセッサシステムの構成例ブロック図である。
【図２】上記マルチプロセッサシステムにおけるセマフォ制御部の構成例ブロック図である。
【図３】上記マルチプロセッサシステムにおけるＣＰＵによるセマフォレジスタのアクセスタイミング図である。
【図４】上記マルチプロセッサシステムの別の構成例説明図である。
【図５】図４に示されるマルチプロセッサシステムにおけるセマフォ制御部のセマフォ番号制御を説明する図である。
【符号の説明】
【００６０】
１０，１１  ＣＰＵ
１２  セマフォ制御部
１３，１４  ローカルバス
１５，１６  バスブリッジ
１７〜１９  周辺モジュール
２０  システムバス
２１  メモリ
１００  マルチプロセッサシステム
１２１  セマフォレジスタ
１２２  ウェイトフラグレジスタ
１２３  ウェイトカウンタ
１２４  セマフォ番号レジスタ
【図１】
2010092101.tif 000003
【図２】
2010092101.tif 000004
【図３】
2010092101.tif 000005
【図４】
2010092101.tif 000006
【図５】
2010092101.tif 000007