(57)【要約】【課題】マルチプロセッサシステムにおいて、共有資源を使用する際のソフトウェアオーバーヘッドを軽減する排他制御システムを提供する。【解決手段】複数の情報処理手段による共有資源へのアクセスに対して排他制御を行う排他制御システムであって、一の情報処理手段が共有資源に対してアクセス中であるとき、他の情報処理手段による共有資源に対するアクセスを制限するアクセス制限手段と、アクセス制限手段により他の情報処理手段による共有資源に対するアクセスが制限されているとき、共有資源に対するアクセスが制限されていることを示すアクセス制限情報を他の情報処理手段に通知する割込通知手段とを備える。【選択図】図２
2014241124.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理手段による共有資源へのアクセスに対して排他制御を行う排他制御システムであって、
一の情報処理手段が前記共有資源に対してアクセス中であるとき、他の情報処理手段による前記共有資源に対するアクセスを制限するアクセス制限手段と、
前記アクセス制限手段により前記他の情報処理手段による前記共有資源に対するアクセスが制限されているとき、前記共有資源に対するアクセスが制限されていることを示すアクセス制限情報を前記他の情報処理手段に通知する割込通知手段と、
を備えることを特徴とする排他制御システム。
【請求項２】
前記アクセス制限手段は、前記一の情報処理手段による前記共有資源に対するアクセスが終了したとき、前記他の情報処理手段による前記共有資源に対するアクセス制限を解除し、
前記割込通知手段は、前記アクセス制限手段により前記他の情報処理手段による前記共有資源に対するアクセス制限が解除されたとき、前記共有資源に対するアクセス制限が解除されていることを示すアクセス制限解除情報を前記他の情報処理手段に通知することを特徴とする請求項１記載の排他制御システム。
【請求項３】
前記アクセス制限手段は、
前記情報処理手段による前記共有資源に対するアクセス状態を管理するアクセス状態管理手段と、
前記アクセス状態管理手段により管理された前記アクセス状態に基づいて前記情報処理手段による前記共有資源に対するアクセスが制限されているか否かを判定する判定手段と、
前記判定手段により前記共有資源に対するアクセスが制限されていると判定されたとき前記共有資源に対する前記情報処理手段からのアクセス信号を破棄し、前記判定手段により前記共有資源に対するアクセスが制限されていないと判定されたとき前記情報処理手段からのアクセス信号を前記共有資源に送信する割込処理手段と、
を備えることを特徴とする請求項１又は２記載の排他制御システム。
【請求項４】
前記判定手段により前記アクセス状態管理手段に基づいてロック準備中と判断された前記一の情報処理手段の優先度と、前記共有資源に対してアクセスされた前記他の情報処理手段の優先度との比較に基づいて、何れの情報処理手段のアクセスを優先するかを判断する優先度判断手段を備えることを特徴とする請求項３記載の排他制御システム。
【請求項５】
前記割込処理手段は、
前記優先度判断手段により、前記共有資源に対してアクセスされた前記他の情報処理手段の優先度が、ロック準備中と判断された前記一の情報処理手段の優先度より低いと判断されたとき、前記他の情報処理手段からの前記共有資源に対するアクセスを破棄し、
前記優先度判断手段により、前記共有資源に対してアクセスされた前記他の情報処理手段の優先度が、ロック準備中と判断された前記一の情報処理手段の優先度より高いと判断されたとき、前記一の情報処理手段からの前記共有資源に対するアクセスを破棄するとともに、前記他の情報処理手段のアクセス状態をアクセス保留状態又は待機状態からアクセスロック状態に遷移させる、
ことを特徴とする請求項４記載の排他制御システム。
【請求項６】
前記優先度判断手段は、
前記一の情報処理手段と前記他の情報処理手段の優先度が同じである場合であって、前記一の情報処理手段がアクセスロック状態であるときに前記他の情報処理手段による前記共有資源に対するアクセスが制限されるアクセス制限回数をカウントし、
前記アクセス制限回数に応じて優先度を判断することを特徴とする請求項４又は５記載の排他制御システム。
【請求項７】
前記割込処理手段は、前記アクセス制限回数のカウント数が予め定められた数を超えた場合に、前記共有資源に対するアクセスが制限された前記他の情報処理手段のアクセス状態を待機状態からアクセス保留状態に遷移させたとき、前記割込通知手段にアクセス保留の割込通知制御信号を送信することを特徴とする請求項６記載の排他制御システム。
【請求項８】
前記共有資源において設定される前記複数の情報処理手段の優先度を可変する優先度可変手段を備え、
前記割込処理手段は、前記アクセス制限回数のカウント数が前記優先度可変手段により可変された優先度を規定する数値を超えた場合に、前記共有資源に対するアクセスが制限された前記他の情報処理手段のアクセス状態を待機状態からアクセス保留状態に遷移させたとき、前記割込通知手段にアクセス保留の割込通知制御信号を送信することを特徴とする請求項６記載の排他制御システム。
【請求項９】
前記優先度可変手段は、前記他の情報処理手段による前記共有資源に対するアクセス制限回数のカウント数が予め定められた数を超えた場合、前記共有資源において設定される前記複数の情報処理手段の優先度をそれぞれ可変することを特徴とする請求項６から８の何れか１項に記載の排他制御システム。
【請求項１０】
前記アクセス制限手段は、
前記判定手段により前記共有資源に対するアクセスが制限されていると判定されている場合に前記共有資源に対してアクセスしてきた情報処理手段に対しダミーリード応答を返すダミーリード応答手段を備えることを特徴とする請求項３から９の何れか１項に記載の排他制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、排他制御システムに関する。
【背景技術】
【０００２】
近年、ハードウェアの集積化と処理高速化にともなって、マルチプロセッサ構成のＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  ｃｈｉｐ）システムが増えている。また、マルチプロセッサ構成のシステムにおいて、ハードウェアの共有資源の排他制御として搭載された排他制御回路を利用して、共有資源へのＣＰＵアクセス競合を避ける手法が既に知られている。
【０００３】
上述の排他制御に関し、特許文献１には、共有資源ごとに対応し、各共有資源がどの情報処理手段によってロックされているかを管理する複数のロックオブジェクトと、ロックオブジェクトのロック獲得を要求する情報処理手段がロック獲得に失敗したときに、先行するロック獲得情報処理手段のロック継続時間を取得するロック継続時間取得手段と、ロック継続時間取得手段によるロック継続時間を判定閾値時間と比較し、その比較結果に応じてロック待ち動作を選択するロック待ち動作選択手段と、ロック待ち動作選択手段によって選択される複数種類のロック待ち動作機構とを備えたことを特徴とした資源排他制御装置が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示された資源排他的制御装置によれば、先行するロック獲得情報処理手段におけるロック解放の待ち時間は何れも短い時間で済み、リソースとしての情報処理手段の使用効率を向上させることが可能となる。
【０００５】
しかし、特許文献１に開示された資源排他的制御装置では、ロックオブジェクトのロックを獲得するまでロック獲得の動作をし続けるスピンロックやロック解除にともなうＣＰＵのリード・ライト処理が入るというソフトウェアオーバーヘッドの問題がある。
【０００６】
具体的には、マルチプロセッサ構成における排他制御では、あるＣＰＵが、共有資源が既に他のＣＰＵから使用されていないかどうかを最初に確認する。その後、共有資源が未使用だった場合には、排他制御として使用中であることを回路に設定し、共有資源を使用する。そして、共有資源の使用が終わったとき、排他制御として使用中から未使用状態に変えるというソフトウェア処理が必要となってくる。
【０００７】
つまり、シングルプロセッサで回路を使用する場合と比較し、マルチプロセッサ構成においては、最初と最後に排他制御回路のソフトウェア制御が必要となってくる。従って、回路の使用・未使用の設定を頻繁にすればするほど、ソフトウェアオーバーヘッドの問題が顕著になる。
【０００８】
本発明は、このような実情に鑑みてなされたものであって、マルチプロセッサシステムにおいて、共有資源を使用する際のソフトウェアオーバーヘッドを軽減する排他制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するため、本発明の排他制御システムは、複数の情報処理手段による共有資源へのアクセスに対して排他制御を行う排他制御システムであって、一の情報処理手段が共有資源に対してアクセス中であるとき、他の情報処理手段による共有資源に対するアクセスを制限するアクセス制限手段と、アクセス制限手段により他の情報処理手段による共有資源に対するアクセスが制限されているとき、共有資源に対するアクセスが制限されていることを示すアクセス制限情報を他の情報処理手段に通知する割込み通知手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、マルチプロセッサシステムにおいて、共有資源を使用する際のソフトウェアオーバーヘッドを軽減することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態における排他制御システムの全体構成を示す概略図である。
【図２】本発明の実施形態における排他制御システムに係るＣＰＵ共有処理装置の概略図である。
【図３】本発明の第１実施形態における排他制御システムに係るＣＰＵ共有処理装置の動作フロー図である。
【図４】本発明の第１実施形態における排他制御システムの動作を示す模式図である。
【図５】本発明の第１実施形態における排他制御部の内部ブロック図である。
【図６】本発明の第１実施形態の排他制御部に係る制御手順を示すフローチャートである。
【図７】本発明の第２実施形態における排他制御システムに係るＣＰＵ共有処理装置の動作フロー図である。
【図８】本発明の第２実施形態における排他制御システムの動作を示す模式図である。
【図９】本発明の第２実施形態における排他制御部の内部ブロック図である。
【発明を実施するための形態】
【００１２】
本発明の実施形態の排他制御システムについて図面を参照して以下に説明するが、本発明の趣旨を越えない限り、何ら本実施形態に限定されるものではない。なお、各図中、同一又は相当する部分には同一の符号を付しており、その重複説明は適宜に簡略化乃至省略する。
【００１３】
本発明の概略を以下に説明する。本発明ではＣＰＵのソフト制御で共有資源に対して排他制御をせずに共有資源に対してアクセスを実施する。このとき仮に、他のＣＰＵが共有資源を既に使用していれば、後からアクセスしたＣＰＵに対して既に使用されていることの割込通知が発行される。後からアクセスしたＣＰＵは、使用されていることの割込通知を受け共有資源に対するアクセスを取りやめる。そして、後からアクセスしたＣＰＵは共有資源が空くまで待ち状態に入る。
【００１４】
処理完了後、共有資源は、それまで使用していたＣＰＵに対して終了割込通知を発行する。その後、後からアクセスしたＣＰＵに対して共有資源が空いたことを知らせる割込通知を発行する。後からアクセスしたＣＰＵは、その割込通知を受け再度共有資源に対してアクセスする。このように本実施形態の排他制御システムによれば、共有資源を使用するための最初と最後の排他制御が不要となる。
【００１５】
本実施形態の排他制御システムの全体構成について図１を参照して説明する。本実施形態の排他制御システムに係るＳｏＣ１０は、例えばプロッタ出力部１１と、割込制御装置１２と、外部メディアＩＦ１３と、共有資源としてのＣＰＵ共有処理装置１４と、スキャナ入力部１５と、情報処理手段としてのＣＰＵ＿Ａ１６と、情報処理手段としてのＣＰＵ＿Ｂ１７と、メモリＩＦ１８と、ネットワークＩＦ１９と、ＦＡＸ＿ＩＦ２０と、バス２１とから構成されている。
【００１６】
なお、本実施形態のＳｏＣ１０においては、ＣＰＵ２つの構成について説明するが、本発明がこれに限定されないことは言うまでも無く、例えば２つ以上など複数のＣＰＵを備える構成としてもよい。また、本発明において、一の情報処理手段、他の情報処理手段としているのは、記載上の便宜のためである。本発明が、一の情報処理手段が本実施形態のＣＰＵ＿Ａ１６であり、他の情報処理手段がＣＰＵ＿Ｂ１７であるというように限定されるものではない。
【００１７】
プロッタ出力部１１は、プロッタ３０に画像形成のためのデータを出力する。なお、プロッタに限定されず、プリンタやＭＦＰ等にデータが出力されることとしてもよい。
【００１８】
割込制御装置１２は、バス２１を介して、ＣＰＵ＿Ａ１６及びＣＰＵ＿Ｂ１７に割込通知を実施する。割込制御装置１２の動作の詳細については後述する。
【００１９】
外部メディアＩＦ１３は、外部記憶メディア４０との間における各種データの送受信が行われるインターフェースである。なお、外部記憶メディア４０としては、例えば外付けハードディスクや外付けＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）ドライブ等が該当する。
【００２０】
ＣＰＵ共有処理装置１４は、各ＣＰＵからのアクセスに対する排他制御、割込制御装置１２に対する割込通知制御を実施する。ＣＰＵ共有処理装置１４の詳細については後述する。
【００２１】
スキャナ入力部１５は、スキャナ５０により取り込んだ画像データ等の入力を受ける。メモリＩＦ１８は、メモリ６０との間でデータの送受信を行うインターフェースである。ネットワークＩＦ１９は、ネットワーク７０との間で各種データの送受信を行うＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等のインターフェースである。ＦＡＸ＿ＩＦ２０は、ＦＡＸ８０との間で送受信データをやり取りするインターフェースである。
【００２２】
上述した構成の本実施形態の排他制御システムに係るＳｏＣ１０において、共有資源としてのＣＰＵ共有処理装置１４に対してあるＣＰＵがアクセスしたとする。このとき既に他のＣＰＵがＣＰＵ共有処理装置１４を使用していれば、アクセスしたあるＣＰＵは、ＣＰＵ共有処理装置１４の制御を受けた割込制御装置１２による割込通知で他のＣＰＵが使用していることを知ることができる。なお、本発明における割込通知手段は、割込制御装置１２と後述の割込制御部１０３を含む概念である。
【００２３】
次に、本実施形態の排他制御システムに係るＣＰＵ共有処理装置１４の概略構成について図２を参照して説明する。本実施形態のＣＰＵ共有処理装置１４は、データ処理部１０１と、共有処理装置レジスタ群１０２と、割込制御部１０３と、メモリリードＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラ１０４と、メモリライトＤＭＡコントローラ１０５と、ＣＰＵからＣＰＵ共有処理装置１４へのアクセスを制限するアクセス制限手段としての排他制御部１０６と、レジスタインターフェース部１０７とから構成されている。
【００２４】
データ処理部１０１は、データバス１０８からメモリリードＤＭＡコントローラ１０４により転送されたデータを処理する。また、データ処理部１０１は、処理後のデータをメモリライトＤＭＡコントローラ１０５へ送る。
【００２５】
本実施形態のＣＰＵ共有処理装置１４において、通常動作時には、各ＣＰＵがレジスタインターフェース部１０７を通して共有処理装置レジスタ群１０２に対してアクセスを行う。各ＣＰＵは、必要パラメータを設定後、共有処理装置レジスタ群１０２の起動レジスタにおいて、トリガとなるビットに１を書き込む。
【００２６】
共有処理装置レジスタ群１０２において、トリガとなるビットに１が書き込まれたら、そのトリガ信号がそのままメモリリードＤＭＡコントローラ１０４及びメモリライトＤＭＡコントローラ１０５に送信される。メモリリードＤＭＡコントローラ１０４及びメモリライトＤＭＡコントローラ１０５は、トリガ信号を受信し動作を開始する。
【００２７】
割込制御部１０３では、メモリリードＤＭＡコントローラ１０４及びメモリライトＤＭＡコントローラ１０５の動作終了を監視し、これらの動作が終了したら各ＣＰＵに対して割込信号が発行されるように割込制御装置１２を制御する。
【００２８】
ここで、例えばＣＰＵ共有処理装置１４が、各ＣＰＵがレジスタライトを要求してきた場合、その動作完了の割込を通知される迄を一連の動作フローとするモジュールであると仮定する。
【００２９】
そして、最初に各ＣＰＵによりレジスタインターフェース部１０７に対してレジスタライト処理が実施された場合、排他制御部１０６は、そのレジスタライトアクセス時の各ＣＰＵのＩＤを見て、どのＣＰＵがレジスタライトを実施してきたかを把握する。
その後、データ処理が完了する割込通知が発行されたことを検出するまでの間、他のＣＰＵからレジスタアクセスが来ても処理しないように共有処理装置レジスタ群１０２へのアクセスを制限してロック状態とする。
【００３０】
このとき、他のＣＰＵからレジスタアクセスがあった場合、排他制御部１０６は、どのＣＰＵのアクセスを優先するかについて優先度の判定を実施する。そして、ロック状態のときにアクセスしてきたＣＰＵの優先度が、現在アクセス中のＣＰＵの優先度よりも低い場合、そのレジスタアクセス信号を共有処理装置レジスタ群１０２に渡さずに破棄する。一方、ロック状態のときにアクセスしてきたＣＰＵの優先度が、現在アクセス中のＣＰＵの優先度よりも高い場合、ロック状態を解除し、優先度の高いＣＰＵが使用できるように、それまでアクセスしていたＣＰＵが使用していたリソースを解放する。
【００３１】
なお、本発明において、上述の現在アクセス中のＣＰＵを「一の情報処理手段」とし、ロック状態中にアクセスしてきたＣＰＵを「他の情報処理手段」としているが、発明を特定するための便宜的な表現であり、これに限定されないことは言うまでもない。つまり、現在アクセス中のＣＰＵが「他の情報処理手段」であり、ロック状態中にアクセスしてきたＣＰＵを「一の情報処理手段」であってもよい。
【００３２】
そして、レジスタアクセス信号が破棄されたことを、レジスタアクセスを実施したＣＰＵに通知するため、割込制御部１０３の制御を受けた割込制御装置１２からアクセス制限情報としての割込信号が発行される。つまり、排他制御部１０６は、あるＣＰＵがＣＰＵ共有処理装置１４に対してアクセス中であるとき、他のＣＰＵによるＣＰＵ共有処理装置１４に対するアクセスを制限している。
【００３３】
レジスタアクセス信号が破棄されたことを割込信号により認識したＣＰＵは、ロック状態が解除、つまりアクセス制限が解除されたことを知らせるアクセス制限解除情報としての割込通知が発行されるまで、その処理をしていたタスクを停止状態にして他のタスクに処理を渡す。
【００３４】
［第１実施形態］
次に、本発明の第１実施形態におけるＣＰＵ共有処理装置１４の動作フローの概要について、図３を参照して説明する。これは、ソフトウェアとハードウェアであるＣＰＵ共有処理装置１４の間における制御フロー全体を説明するものである。
【００３５】
［１］まず、各ＣＰＵから起動される前に、ＣＰＵ共有処理装置１４に対するモード設定などのパラメータ設定がレジスタライトにより実行される。
【００３６】
［２］ソフトウェアとしての制御ＣＰＵは、ＣＰＵ共有処理装置１４に対する全てのパラメータの設定が完了後、動作実行をさせるための起動レジスタに対してレジスタライトを実行する。
【００３７】
［３］レジスタアクセスの最初から起動レジスタに対してレジスタライトされるまでの期間をロック準備中とする。この期間に他のＣＰＵからアクセスがあった場合には、アクセスされたＣＰＵの優先度を判断する。そして、現在の制御ＣＰＵよりも優先度の高い制御ＣＰＵがアクセスして来た場合、ロックを解除することが可能である。
【００３８】
［４］起動レジスタへレジスタライトされたら、制御ＣＰＵ側では終了割込みが来るまで待ち状態となる。例えば、マルチタスクＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）であれば、他のタスクに切り替わる。ＣＰＵ共有処理装置１４側は、起動レジスタへレジスタライトされたら動作モードに従ってハードウェア処理が開始される。
【００３９】
［５］ＣＰＵ共有処理装置１４側は、全ての処理が終了したら制御ＣＰＵ側に終了割込み通知を発行する。
【００４０】
［６］制御ＣＰＵ側は、割込み通知を検知したら割込み処理として起動後処理を実行する。
【００４１】
［７］起動後処理が全て終了したら割込み要因のクリア処理を実行する。
【００４２】
［８］起動レジスタでＣＰＵ共有処理装置１４が動作を開始してから、割込み要因クリア処理を実行するまでの期間は、ＣＰＵ共有処理装置１４はロック状態であるため、優先度の高い制御ＣＰＵからアクセスされてもロック解除できない期間となる。
【００４３】
上述のように、ＣＰＵの優先度判定及び「ロック準備中」という概念を導入して、ロック期間中の状態を短くすることにより、リアルタイム性の高いアクセス制御システムを実現することができる。
【００４４】
次に、本発明の第１実施形態における排他制御システムの動作について図４を参照して説明する。なお、ここでは説明の簡略化のため、ＳｏＣ１０における、割込制御装置１２、ＣＰＵ共有処理装置１４、ＣＰＵ＿Ａ１６、ＣＰＵ＿Ｂ１７のみを登場させている。また、以下の説明において、ＣＰＵ＿Ａ１６よりもＣＰＵ＿Ｂ１７の方が、優先度が高く設定されていることとする。
【００４５】
（１）まず、最初にＣＰＵ＿Ａ１６がＣＰＵ共有処理装置１４に対してアクセスを実施する。
【００４６】
（２）そして、優先度の低いＣＰＵ＿Ａ１６からレジスタアクセスが発生したため、ＣＰＵ共有処理装置１４がロックされた状態に遷移する。
【００４７】
（３）次に、ＣＰＵ共有処理装置１４がロック準備中の状態で、優先度の高いＣＰＵ＿Ｂ１７がＣＰＵ共有処理装置１４に対してアクセスを実施する。
【００４８】
（４）そして、ＣＰＵ共有処理装置１４は、ＣＰＵ＿Ａ１６の処理によるロック準備中に他のＣＰＵからのアクセスがあったため、優先度判定を実施する。
【００４９】
（５）一番優先度の高いＣＰＵ＿Ｂ１７からアクセスがあったため、ＣＰＵ共有処理装置１４がロックされた状態に遷移する。
【００５０】
（６）ＣＰＵ共有処理装置１４は、優先度の低いＣＰＵ＿Ａ１６に対して、これまでの設定が破棄されたことを知らせる割込通知を発生させるため、割込制御装置１２を制御する。
【００５１】
（７）その後、割込制御装置１２はＣＰＵ＿Ａ１６に対してアクセス保留の割込を通知する。ＣＰＵ＿Ａ１６は、この割込通知を受信したらＣＰＵ共有処理装置１４に対するアクセスを取りやめ、処理タスクを停止させる。また、ＣＰＵ＿Ａ１６は別のタスクがあれば別タスクに移行する。
【００５２】
（８）ＣＰＵ共有処理装置１４は、ＣＰＵ＿Ｂ１７から要求された処理が終了した後、ＣＰＵ＿Ｂ１７に対し処理完了の割込が通知されるように割込制御装置１２を制御する。
【００５３】
（９）そして、割込制御装置１２は、ＣＰＵ＿Ｂ１７に対して処理完了の割込を通知する。
【００５４】
（１０）ＣＰＵ共有処理装置１４は、ＣＰＵ＿Ｂ１７による処理が完了したことでロック状態からロック解除の状態に移行する。このため、ＣＰＵ共有処理装置１４は、優先度の低いＣＰＵ＿Ａ１６に対し、アクセス制限解除情報としてロック解除の割込が通知されるように割込制御装置１２を制御する。
【００５５】
（１１）その後、割込制御装置１２はＣＰＵ＿Ａ１６に対しロック状態解除の割込を通知する。
【００５６】
（１２）ＣＰＵ＿Ａ１６は、停止していたタスクを起動させ、ＣＰＵ共有処理装置１４に対するＣＰＵアクセスを最初から実行させる。
【００５７】
次に、本発明の第１実施形態における排他制御部１０６の内部構成について図５を参照して説明する。本実施形態の排他制御部１０６は、割込処理手段としての割込処理部２０１と、ＣＰＵ共有処理装置１４に対するアクセスが制限されているか否かを判定する判定手段としての判定部２０２と、ダミーリード応答手段としてのダミーリード応答部２０３と、ＣＰＵからのＣＰＵ共有処理装置１４に対するアクセス状態を管理するアクセス状態管理手段としてのアクセス管理テーブル２０４とから構成される。以下、各処理部について個別に説明する。
【００５８】
［割込処理部２０１］
割込処理部２０１は、ＣＰＵ共有処理装置１４が他のＣＰＵからロック、つまり制限されている状態であるとき、他のＣＰＵからアクセス要求、つまり上述したレジスタアクセス信号を破棄する。そして、割込処理部２０１は、レジスタアクセス信号が破棄されたことをアクセスしてきたＣＰＵに通知する必要があるため、ＣＰＵ共有処理装置１４がロック状態であることを通知する割込信号を生成する。
【００５９】
また、割込処理部２０１は、ロック状態を通知したＣＰＵとロックしているＣＰＵを管理するためのアクセス管理テーブル２０４に対して、必要に応じて書き込み・読み込みを実施する。
【００６０】
［判定部２０２］
判定部２０２は、レジスタインターフェース部１０７から送られてきたレジスタアクセス信号を共有処理装置レジスタ群１０２に対して送信するか、あるいは破棄するかの判定をアクセス管理テーブル２０４に基づいて行う。判定が終了するまでは、ＣＰＵからのアクセス内容をバッファリングしておく。また、判定部２０２は、アクセス管理テーブル２０４によって、どのＣＰＵからのアクセスもされていない状態であると判断したとき、レジスタアクセス信号を共有処理装置レジスタ群１０２へ送信する。
【００６１】
［ダミーリード応答部２０３］
ＣＰＵ共有処理装置１４が他のＣＰＵからロックされている状態であるとき、他のＣＰＵアクセスは破棄するが、何らかの応答を返さないとＣＰＵのリード処理が完了しないためにダミーでリード応答を返す必要がある。ダミーリード応答部２０３は、そのダミーリード応答を返す処理部である。
【００６２】
なお、ダミーリード応答時にデータとしてアクセスされたレジスタの初期値をダミーデータとして応答することが望ましい。ダミーリード応答でランダムデータが帰ってきた場合に、内部ステータスレジスタなどの制御に関するレジスタの場合にはソフト動作が異常となる場合も考えられる。レジスタの初期値を返すことで安定動作が保障される。
【００６３】
［アクセス管理テーブル２０４］
アクセス管理テーブル２０４は、ＳｏＣ１０が備えるＣＰＵの数だけ、（i）あるＣＰＵによってＣＰＵ共有処理装置１４が専有されているアクセスロック状態、（ii）あるＣＰＵによるＣＰＵ共有処理装置１４のアクセスロック中における他のＣＰＵのアクセス保留状態、（iii）ＣＰＵが実行されていない待機状態、の３つのステートを持たせたテーブルを備えるモジュールである。
【００６４】
なお、アクセス管理テーブル２０４へのステートの書き込みは、割込処理部２０１が実施する。また、アクセス管理テーブル２０４からのステートの読出しは、割込処理部２０１及び判定部２０２が実施する。
【００６５】
また、アクセス管理テーブル２０４をＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）で構成することにより、大容量のステータス情報をテーブル情報として管理することが可能となる。一方で、アクセス管理テーブル２０４をレジスタで構成することとしてもよい。テーブルとしてレジスタを使用することで少量のステータス情報の場合には回路規模を抑えることが可能となる。
【００６６】
さらに、アクセス管理テーブル２０４では、後述の優先ＣＰＵ判断処理部２０５によるＣＰＵの優先度の判断結果を受けて、割込処理部２０１によりＣＰＵ共有処理装置１４のステートが遷移される。具体的には、優先ＣＰＵ判断処理部２０５により、アクセスＣＰＵの優先度が一番高いと判断されたとき、ＣＰＵ共有処理装置１４がロック状態に遷移され、アクセスＣＰＵの優先度が一番高いものでないと判断されたとき、ＣＰＵ共有処理装置１４がロック準備状態に遷移される。
【００６７】
なお、ロック準備状態からロック状態に切り替わるタイミングは、ＣＰＵ共有処理装置１４の起動トリガレジスタにアクセスされた時点とする。
【００６８】
［優先ＣＰＵ判断処理部２０５］
優先度判断手段としての優先ＣＰＵ判断処理部２０５は、割込処理部２０１が、アクセス管理テーブル２０４に対して状態の書き込みを実施する際に、優先度の判定を実施するための処理部である。例えば、アクセス管理テーブル２０４がロック準備中に他のＣＰＵからレジスタアクセスがあった場合には、ＣＰＵの優先度を判断する必要がある。
【００６９】
仮に、優先ＣＰＵ判断処理部２０５により、アクセスのあったＣＰＵの優先度が低いと判断された場合、割込処理部２０１はこのＣＰＵからのアクセスを破棄する。一方、優先ＣＰＵ判断処理部２０５により、アクセスのあったＣＰＵの優先度が高いと判断された場合、割込処理部２０１は、ロック準備中だったＣＰＵに対してアクセスを破棄したことを知らせる割込信号を生成する。
【００７０】
なお、排他制御部１０６は、共有処理装置レジスタ群１０２において設定される複数のＣＰＵの優先度を動的に可変する優先度可変部を備えていてもよい。これにより、ソフトウェアの仕様変更などによって優先度を変更することができる。
【００７１】
また、優先ＣＰＵ判断処理部２０５は、例えば、現在アクセス中のＣＰＵの優先度と、ロック準備中にアクセスしてきたＣＰＵの優先度が同じと判断した場合に、そのアクセスしてきたＣＰＵによる共有処理装置レジスタ群１０２に対するアクセスが制限されるアクセス制限回数をカウントしておき、カウントされたアクセス制限回数に応じて優先度を判断してもよい。優先度が同じＣＰＵの場合でもタイミングによってロック状態にできる確立に偏りが発生することがある。この場合に上述のようにアクセス制限回数、つまりロック状態に失敗した回数で優先度を判断することで、各ＣＰＵがロック状態を獲得する確立を同じにすることが可能となる。
【００７２】
さらに、割込処理部２０１は、上記アクセス制限回数のカウント数が予め定められた数を超えた場合に、共有処理装置レジスタ群１０２に対するアクセスが制限されたＣＰＵのアクセス状態を待機状態からアクセス保留状態に遷移させたとき、割込制御部１０３にアクセス保留の割込通知制御信号を送信してもよい。これにより、ソフトウェア処理によって優先度を変更することができる。
【００７３】
さらに、割込処理部２０１は、上記アクセス制限回数のカウント数が優先ＣＰＵ判断処理部２０５により可変された優先度を規定する数値を超えた場合に、共有処理装置レジスタ群１０２に対するアクセスが制限されたＣＰＵのアクセス状態を待機状態からアクセス保留状態に遷移させたとき、割込制御部１０３にアクセス保留の割込通知制御信号を送信してもよい。これにより、システムによって変わるロック状態の獲得状況に合わせることが可能となる。
【００７４】
さらに、上述の優先度可変部は、ロック状態中にアクセスしてきたＣＰＵによる共有処理装置レジスタ群１０２に対するアクセス制限回数のカウント数が予め定められた数を超えた場合、共有処理装置レジスタ群１０２において設定される各ＣＰＵの優先度をそれぞれ可変することとしてもよい。これにより、ロック状態獲得の失敗に応じて優先度を自動変更することで１つのＣＰＵだけがロック状態のままになるという、優先度の極端な偏りを防ぐことが可能となる。
【００７５】
次に、本発明の第１実施形態における排他制御部１０６による処理手順について図６を参照して説明する。
【００７６】
まず、レジスタインターフェース部１０７が何れかのＣＰＵからレジスタアクセス信号を受信する（ステップＳ１）。そして、レジスタインターフェース部１０７は、受信したレジスタアクセス信号を判定部２０２に渡す（ステップＳ２）。
【００７７】
次に、判定部２０２は、アクセス管理テーブル２０４を参照する（ステップＳ３）。そして、判定部２０２は、ロック中のＣＰＵがあるかどうかアクセス管理テーブル２０４を参照して判断する（ステップＳ４）。
【００７８】
そして、判定部２０２は、全てのＣＰＵがロックしていない状態であると判断したとき（ステップＳ４、ＮＯ）、ロック準備中のＣＰＵがあるかどうかを、アクセス管理テーブル２０４を参照して判断する（ステップＳ１３）。
【００７９】
ロック準備中のＣＰＵがある場合（ステップＳ１３、ＹＥＳ）、優先ＣＰＵ判断処理部２０５により、アクセスしてきたＣＰＵとロック準備中のＣＰＵの優先度の比較を行う（ステップＳ１４）。
【００８０】
アクセスしてきたＣＰＵの優先度の方がロック準備中のＣＰＵより低い場合（ステップＳ１４、ＮＯ）、アクセスしてきたＣＰＵにアクセス保留の割込を通知するため、アクセスしてきたＣＰＵ情報とアクセス保留の割込通知制御信号の生成を割込処理部２０１に依頼する（ステップＳ５）。
【００８１】
一方、アクセスしてきたＣＰＵの優先度の方がロック準備中のＣＰＵより高い場合（ステップＳ１４、ＹＥＳ）、レジスタに対しリセット信号を送出して、レジスタの初期化を実施する（ステップＳ１５）。これは、ＣＰＵ共有処理装置１４の使用を割り当て、これまで優先度の低いＣＰＵが設定していたレジスタ設定を破棄させるためである。
【００８２】
その後、レジスタインターフェース部から受信した信号をレジスタ群に渡す。また、アクセス管理テーブル２０４において、ＣＰＵ共有処理装置１４のステートがロック状態に遷移される。
【００８３】
また、優先度の低いＣＰＵに対しては、これまでＣＰＵ共有処理装置１４に対して設定していたレジスタ設定値が破棄されたことを知らせるため、アクセスしてきたＣＰＵ情報と、ロック中アクセス割込信号の生成を割込処理部２０１に依頼する（ステップＳ１６）。
【００８４】
一方、ロック準備中のＣＰＵがない場合（ステップＳ１３、ＮＯ）、つまり全てのＣＰＵが待機状態であり、ＣＰＵ共有処理装置１４に対するアクセスが制限されていないとき、割込処理部２０１は、アクセス管理テーブル２０４において、アクセスしてきたＣＰＵのステートを待機状態からアクセスロック状態に遷移させ、レジスタインターフェース部１０７から受信したレジスタアクセス信号を共有処理装置レジスタ群１０２に渡す（ステップＳ１７）。このとき、割込処理部２０１は、割込制御部１０３にアクセスロックの割込通知制御信号を送信する。
【００８５】
一方、判定部２０２は、あるＣＰＵが既にロック中である、つまり他のＣＰＵによるＣＰＵ共有処理装置１４に対するアクセスが制限されていると判断したとき（ステップＳ４、ＹＥＳ）、アクセスしてきたＣＰＵにアクセス保留の割込を通知するため、アクセスしてきたＣＰＵ情報とアクセス保留の割込通知制御信号の生成を割込処理部２０１に依頼する（ステップＳ５）。
【００８６】
その後、割込処理部２０１は、アクセス管理テーブル２０４に対して、ロック中にアクセスのあったＣＰＵの状態を待機状態からアクセス保留状態に遷移させる（ステップＳ６）。そして、割込処理部２０１は、割込制御部１０３に対してアクセス保留の割込通知制御信号を送信する（ステップＳ７）。
【００８７】
その後、割込制御部１０３は、共有処理装置レジスタ群１０２に対して要求されているデータ処理が完了したかどうかを確認する（ステップＳ８）。
【００８８】
データ処理の完了を確認したとき（ステップＳ８、ＹＥＳ）、割込制御部１０３はＣＰＵに対して完了通知を出す（ステップＳ９）。このとき、その完了通知を割込処理部２０１にも入れることで割込処理部２０１は、データ処理の完了を知ることができる。
【００８９】
割込処理部２０１は、データ完了通知信号を検知したら（ステップＳ１０）、アクセス管理テーブル２０４にアクセス保留状態になっているＣＰＵがあるかどうかを確認する（ステップＳ１１）。
【００９０】
割込処理部２０１は、アクセス管理テーブル２０４を参照し、アクセス保留状態のＣＰＵがあることを確認したとき（ステップＳ１１、ＹＥＳ）、そのＣＰＵに対して、ＣＰＵ共有処理装置１４のロックが解除されたことの割込通知を割込制御部１０３へ送信する（ステップＳ１２）。
【００９１】
一方、割込処理部２０１は、アクセス管理テーブル２０４を参照し、アクセス保留状態になっているＣＰＵがないときは（ステップＳ１１、ＮＯ）、何もせずに処理を終了する。
【００９２】
［第２実施形態］
本発明の第２実施形態について図７から図９を参照して説明する。第１実施形態においては、ＣＰＵ＿Ａ１６及びＣＰＵ＿Ｂ１７からの同時アクセスが発生した場合、ＣＰＵ共有処理装置１４を後から使用するＣＰＵに対して割込み通知を行うものであった。一方、本実施形態では、一方のＣＰＵアクセスを受け付け、他方のＣＰＵアクセスについては、パラメータ設定値をＣＰＵ共有処理装置１４の内部メモリに保存する。これにより各ＣＰＵの排他制御に関するオーバーヘッドをなくすというものである。
【００９３】
そして、本実施形態では共有資源の複数ＣＰＵによる競合が発生していない場合にはソフト制御が不要となるだけでなく、競合が発生してもＣＰＵ共有処理装置１４が競合時のＣＰＵからのアクセスを内部メモリに保存することでＣＰＵ共有処理装置１４単体で自動で排他制御を行うものである。
【００９４】
ここで、本実施形態について説明する前提として、排他制御システムの全体構成及びＣＰＵ共有処理装置の概略については第１実施形態と同様であり、図１及び図２に示すとおりである。他方、ＣＰＵ共有処理装置の内部処理としては、後述するように第１実施形態と異なる。以下、第１実施形態との相違点の概略について図２を参照して説明する。
【００９５】
まず、データ処理部１０１が動作中でなければＣＰＵ＿Ａ１６からのアクセスを共有処理装置レジスタ群１０２に対して渡し、必要なパラメータ設定が実施される。仮に、データ処理部１０１が動作中であった場合には排他制御部１０６にてＣＰＵ＿Ａから来たパラメータ設定値を保存する。排他制御部１０６は、割込制御部１０３の監視を行うことでデータ処理部１０１の処理完了を知ることができる。
【００９６】
排他制御部１０６は、データ処理部１０１の処理が完了したら内蔵メモリに保存しておいたＣＰＵ＿Ａ１６からのパラメータ設定値を読み込んで共有処理装置レジスタ群１０２に書き込みをする。これにより、ＣＰＵ共有処理装置１４はＣＰＵ＿Ａ１６及びＣＰＵ＿Ｂ１７からのアクセスを自動で排他制御することが可能となる。
【００９７】
次に、本実施形態における排他制御システムに係るＣＰＵ共有処理装置１４の動作フローについて、図７を参照して説明する。
【００９８】
［１］まず、ＣＰＵ＿Ａ１６から起動される前に、ＣＰＵ共有処理装置１４に対するモード設定などのパラメータ設定が行われる。
【００９９】
［２］次に、ＣＰＵ共有処理装置１４に対するモード設定が終了したら、ＣＰＵ＿Ａ１６から動作実行をさせるための起動レジスタに対してレジスタライトを実行する。
【０１００】
［３］続いて、ＣＰＵ共有処理装置１４は起動レジスタにアクセスされたことを受け、ＣＰＵ＿Ａ１６の処理を実行する。
【０１０１】
［４］ＣＰＵ＿Ａ１６は、起動レジスタへのレジスタライトが実行されると、ＣＰＵ共有処理装置１４から終了割込みが通知されるまで待ち状態となる。
【０１０２】
［５］次に、ＣＰＵ＿Ａ１６の処理が実行されている途中でＣＰＵ＿Ｂ１７がＣＰＵ共有処理装置１４を使用するため、必要なパラメータ設定が実行される。
【０１０３】
［６］必要なパラメータ設定が終了すると、ＣＰＵ＿Ｂ１７から動作実行させるための起動レジスタに対してレジスタライトを実行する。ここで、ＣＰＵ共有処理装置１４はＣＰＵ＿Ａ１６のデータ処理が終了していないために一旦ＣＰＵ＿Ｂ１７から設定されたパラメータ設定を内部メモリに保存する。
【０１０４】
［７］ＣＰＵ＿Ｂ１７は起動レジスタにレジスタライトを実行すると、終了割込みが来るまで待ち状態となる。
【０１０５】
［８］ＣＰＵ共有処理装置１４は、ＣＰＵ＿Ａ１６のデータ処理が終了したタイミングでＣＰＵ＿Ａ１６に対して終了割込みを通知する。
【０１０６】
［９］ＣＰＵ＿Ａ１６は、終了割込みを検知すると、必要な処理を実行する。
【０１０７】
［１０］その後、ＣＰＵ＿Ａ１６は、ＣＰＵ共有処理装置１４に対して割込み要因のクリア処理を実行する。
【０１０８】
［１１］ＣＰＵ共有処理装置１４は、終了割込みの通知と同時に起動されたＣＰＵ＿Ｂ１７に対する処理を実行する。
【０１０９】
［１２］そして、ＣＰＵ共有処理装置１４は、ＣＰＵ＿Ｂ１７のデータ処理が終了したタイミングでＣＰＵ＿Ｂ１７に対して終了割込みを通知する。
【０１１０】
［１３］ＣＰＵ＿Ｂ１７は、終了割込みを検知したら必要な処理を実行する。
【０１１１】
［１４］ＣＰＵ＿Ｂ１７は、ＣＰＵ共有処理装置１４に対して割込み要因のクリア処理を実行する。
【０１１２】
次に、本実施形態における排他制御システムの動作について図８を参照して説明する。前提条件として、本実施形態の排他制御システムでは２つの制御ＣＰＵとして、ＣＰＵ＿Ａ１６及びＣＰＵ＿Ｂ１７がある。そして本実施形態では、ＣＰＵ＿Ａ１６が要求した処理の途中でＣＰＵ＿Ｂ１７がＣＰＵ共有処理装置１４に対して処理を要求するものとする。
【０１１３】
（１）まず、最初にＣＰＵ＿Ａ１６がＣＰＵ共有処理装置１４に対して処理を要求するためにレジスタアクセスを実行する。
【０１１４】
（２）そして、ＣＰＵ共有処理装置１４は、ＣＰＵ＿Ａ１６の要求に対してデータ処理を開始する。
【０１１５】
（３）次に、ＣＰＵ＿Ｂ１７がＣＰＵ共有処理装置１４に対して処理を要求するためにレジスタアクセスを実行する。
【０１１６】
（４）ＣＰＵ共有処理装置１４は、ＣＰＵ＿Ａ１６に対する処理を実行中のため、ＣＰＵ＿Ｂ１７が要求してきたレジスタアクセス内容を内部メモリに保存する。
【０１１７】
（５）ＣＰＵ共有処理装置１４は、ＣＰＵ＿Ａ１６に対する処理が終了したらＣＰＵ＿Ａ１６に対して処理終了を通知する割込み通知を発生させるため、割込制御装置１２を制御する。それと同時にＣＰＵ共有処理装置１４は、ＣＰＵ＿Ｂ１７に対しての処理内容を内部メモリから読み出して、ＣＰＵ＿Ｂ１７の処理実行を開始する。
【０１１８】
（６）割込制御装置１２は、ＣＰＵ＿Ａ１６に対してＣＰＵ共有処理装置１４からの処理終了を通知する割込み信号を発行する。
【０１１９】
（７）ＣＰＵ共有処理装置１４は、ＣＰＵ＿Ｂ１７に対する処理が終了したらＣＰＵ＿Ｂ１７に対して処理終了を伝える割込み通知を発生させるため、割込制御装置１２を制御する。
【０１２０】
（８）その後、割込制御装置１２は、ＣＰＵ＿Ｂ１７に対してＣＰＵ共有処理装置１４の終了を通知する割込み信号を発行する。
【０１２１】
次に、本実施形態における排他制御部５００の内部ブロック図について図９を参照して説明する。本実施形態の排他制御部５００は、終了割込監視部５０１と、レジスタ反映制御部５０２と、内部メモリ格納管理部５０３を備える。以下、それぞれについて説明する。内部メモリ６００は内部メモリ格納管理部５０３の制御により、レジスタインターフェース部１０７から送られるＣＰＵレジスタアクセス信号を保存する記憶部である。
【０１２２】
［終了割込監視部５０１］
終了割込監視部５０１は、ＣＰＵ共有処理装置１４からの処理終了割込み信号を監視する。ＣＰＵ＿Ａ１６、ＣＰＵ＿Ｂ１７のどちらの終了割込みが発行されたかを監視することで、次のデータ処理を開始が可能か否かを判断することができる。
【０１２３】
［レジスタ反映制御部５０２］
レジスタ反映制御部５０２は、レジスタインターフェース部１０７から送られたＣＰＵレジスタアクセス信号を共有処理装置レジスタ群１０２に対して送るか、それとも内部メモリ６００に保存するかを判定する。レジスタ反映制御部５０２は、共有処理装置レジスタ群１０２が実行中かどうかを判断し、動作中でなければ各ＣＰＵから来た設定値をレジスタ群へ渡す。
【０１２４】
他方、共有処理装置レジスタ群１０２が動作中であれば各ＣＰＵから来た設定値を内部メモリ６００に保存するため、内部メモリ格納管理部５０３へ渡す。
【０１２５】
［内部メモリ格納管理部５０３］
内部メモリ格納管理部５０３は、レジスタ反映制御部５０２からＣＰＵ＿Ａ１６、ＣＰＵ＿Ｂ１７のどちらの設定値をリード、あるいはライトするかについて指示を受け、内部メモリ６００に対してアクセスする。内部メモリ格納管理部５０３により内部メモリ６００のアドレス管理が行われる。
【０１２６】
なお、上述する各実施の形態は、本発明の好適な実施の形態であり、本発明の要旨を逸脱しない範囲内において種々変更実施が可能である。例えば、上述した本実施形態の排他制御システムは、マルチプロセッサ構成のＳｏＣシステムを組み込んだ各種電子機器に適用することができる。例えば、情報処理装置として代表的なＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）は言うに及ばず、スマートフォン及びタブレットＰＣ等の携帯情報端末、情報処理機能を有したプリンタやＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌｓ）、ＦＡＸ、プロジェクター、デジタルカメラ、その他の電子機器に適用することができる。
【符号の説明】
【０１２７】
１０    ＳｏＣ
１１    プロッタ出力部
１２    割込制御装置
１３    外部メディアＩＦ
１４    ＣＰＵ共有処理装置
１５    スキャナ入力部
１６    ＣＰＵ＿Ａ
１７    ＣＰＵ＿Ｂ
１８    メモリＩＦ
１９    ネットワークＩＦ
２０    ＦＡＸ＿ＩＦ
２１    バス
１０１    データ処理部
１０２    共有処理装置レジスタ群
１０３    割込制御部
１０４    メモリリードＤＭＡコントローラ
１０５    メモリライトＤＭＡコントローラ
１０６、５００    排他制御部
１０７    レジスタインターフェース部
２０１    割込処理部
２０２    判定部
２０３    ダミーリード応答部
２０４    アクセス管理テーブル
２０５    優先ＣＰＵ判断処理部
５０１    終了割込監視部
５０２    レジスタ反映制御部
５０３    内部メモリ格納管理部
６００    内部メモリ
【先行技術文献】
【特許文献】
【０１２８】
【特許文献１】特開２０１０−１９１５７５号公報
【図１】
2014241124.tif 000003
【図２】
2014241124.tif 000004
【図３】
2014241124.tif 000005
【図４】
2014241124.tif 000006
【図５】
2014241124.tif 000007
【図６】
2014241124.tif 000008
【図７】
2014241124.tif 000009
【図８】
2014241124.tif 000010
【図９】
2014241124.tif 000011