(57)【要約】【課題】複数のバスからのアクセスが競合した場合、アクセス調停を行う情報処理装置において、正確なタイムアウト判定を行うこと。【解決手段】第１バスマスタ２０と当該バスマスタのタイムアウト時間を検出するためのカウンタ１６Ａとを有する第１バス１０Ａと、第２バスマスタ２２と当該バスマスタのタイムアウト時間を検出するためのカウンタ１６Ｂとを有する第２バス１２Ｂと、メモリ３０と第１、第２バスとの間に接続され、第１、第２バスからのアクセス要求が競合した時、一方のバスからのアクセス要求を許可し、許可したアクセス要求が完了するまで他方のバスからのアクセス要求を待機させ、他方のバスに待機状態を知らせる報知信号を供給するアクセス調停装置２８とを具備し、第１、第２バスのカウンタは第１、第２バスがアクセス要求を発生するとカウント開始し、報知信号が供給されるとカウント停止する。【選択図】      図１
2008299654.tif 000002
【特許請求の範囲】
【請求項１】
第１バスマスタと当該バスマスタのタイムアウト時間を検出するためのカウンタとを有する第１バスと、
第２バスマスタと当該バスマスタのタイムアウト時間を検出するためのカウンタとを有する第２バスと、
前記第１、第２バスにより共有されるメモリと前記第１、第２バスとの間に接続され、第１、第２バスからのアクセス要求が競合した時、一方のバスからのアクセス要求を許可し、許可したアクセス要求が完了するまで他方のバスからのアクセス要求を待機させ、前記他方のバスに待機状態を知らせる報知信号を供給するアクセス調停装置とを具備し、
前記第１、第２バスのカウンタは前記第１、第２バスがアクセス要求を発生するとカウント開始し、前記報知信号が供給されるとカウント停止する情報処理装置。
【請求項２】
前記第１、第２バスのカウンタは前記報知信号の供給が終了するとカウントを再開する請求項１記載の情報処理装置。
【請求項３】
前記第１、第２バスの各々は複数のバスマスタと、同じバスに属する複数のバスマスタからバスへのアクセス要求が競合した時、一のバスマスタからのアクセス要求を許可し、許可したアクセス要求が完了するまで他のバスマスタからのアクセス要求を待機させる調停部とを具備する請求項１記載の情報処理装置。
【請求項４】
前記第１、第２バスの各々は少なくとも１つのバススレーブをさらに具備し、
前記調停部は、前記バスマスタからのアクセス要求が発生した時、アクセスアドレスが前記メモリのアドレスか否かを判定する第１判定手段と、前記第１判定手段が前記アクセスアドレスが前記メモリのアドレスであると判定した場合、前記アクセス要求を前記アクセス調停装置へ送信し、前記アクセスアドレスが前記バススレーブのアドレスであると判定した場合、前記バススレーブへのアクセスを許可する手段とを具備する請求項３記載の情報処理装置。
【請求項５】
第１バスマスタと当該バスマスタのタイムアウト時間を検出するためのカウンタとを有する第１バスと、
第２バスマスタと当該バスマスタのタイムアウト時間を検出するためのカウンタとを有する第２バスと、
前記第１、第２バスにより共有されるメモリとを具備する情報処理装置のアクセス制御方法は、
第１、第２バスからのアクセス要求が競合した時、一方のバスからのアクセス要求を許可し、許可したアクセス要求が完了するまで他方のバスからのアクセス要求を待機させ、前記他方のバスに待機状態を知らせる報知信号を送るステップと、
前記第１、第２バスがアクセス要求を発生すると前記第１、第２バスのカウンタをカウント開始させ、前記報知信号が供給されるとカウント停止させるステップと、
を具備するアクセス制御方法。
【請求項６】
前記報知信号の供給が終了すると前記第１、第２バスのカウンタをカウント再開させるステップとをさらに具備する請求項５記載のアクセス制御方法。
【請求項７】
同じバスに属する複数のバスマスタからバスへのアクセス要求が競合した時、一のバスマスタからのアクセス要求を許可し、許可したアクセス要求が完了するまで他のバスマスタからのアクセス要求を待機させるステップを具備する請求項５記載のアクセス制御方法。
【請求項８】
前記バスマスタからのアクセス要求が発生した時、アクセスアドレスが前記メモリのアドレスか否かを判定するステップと、
前記判定ステップで前記アクセスアドレスが前記メモリのアドレスであると判定した場合、前記アクセス要求が競合するか否か判定し、前記アクセスアドレスが前記バススレーブのアドレスであると判定した場合、前記バススレーブへのアクセスを許可するステップとを具備する請求項７記載のアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数のバスがメモリを共有する情報処理装置及びアクセス制御方法に関する。
【背景技術】
【０００２】
従来、ＣＰＵ、外部メモリ、ＤＭＡコントローラ、ＵＳＢ、ＵＡＲＴ等のシリアル入出力（Ｉ／Ｏ）、画像処理回路、音声処理回路がバスに接続されるとともに、バス制御装置がＤＭＡコントローラ、ＣＰＵ等に接続されている情報処理装置が知られている。Ｉ／Ｏ、画像処理回路、音声処理回路はＤＭＡコントローラに対してＤＭＡ起動要求を出力する。ＤＭＡコントローラはＤＭＡ起動要求を受けると、バス制御装置に対してバス獲得要求を出力する。ＣＰＵもバスを使用するためのバス獲得要求を出力する。バス制御装置はこれらの要求を調停し、バスを許可する相手に対してバス使用許可を与える。バス使用許可を得た周辺回路が、バスを介して外部メモリとデータをやり取りできる。各周辺回路からのバス獲得要求が同時に発生した時、バス制御装置は予め設定してある優先順位のうち最も高順位の周辺回路にバスの使用許可を与える。高順位の転送が終了すると、バスの使用権は優先順位が次位の周辺回路へ移る。すなわち、転送時間は全ての周辺回路の転送時間の和となる（例えば、特許文献１参照）。
【０００３】
この転送時間の短縮を図るために、Ｉ／Ｏ、画像処理回路、音声処理回路のそれぞれについて独立なバス、すなわちＩ／Ｏバス、画像バス、音声バスを設けて、周辺回路からのＤＭＡ起動要求が同時に発生したとき、Ｉ／Ｏから外部バスへのデータ転送、外部メモリから画像処理回路へのデータ転送、外部メモリから音声処理回路へのデータ転送とを同時に行うことが考えられている。
【０００４】
特許文献１ではアクセスエラーを検出する仕組みについて考慮していない。一般に、ローカルバス上でアクセスを開始してからの時間を計測し、一定時間（タイムアウト時間と称する）経過してもバスアクセスが正常に行われていない場合、そのアクセスを取り下げさせる。しかし、複数段からなるバス構成において、アクセス調停が行われる場合は、ローカルバス上でアクセスを開始しても必ずしもアクセス先に到達するまでの経路の全てのバスについてアクセスが許可されるとは限らず、特に優先順位の低い周辺回路はアクセスを開始してもバスの使用許可を獲得するまで待機時間がある。そのため、正確なタイムアウト時間を計測できない可能性がある。また、本来のアクセスエラーに起因する期間とは別に、アクセス開始後の待機時間に相当する分をタイムアウト時間に加える必要があるため、アクセスエラー判定まで、アクセスエラー検出という本来の目的には適っていない余計な時間をカウントすることになる。
【特許文献１】特開２００３−９１５０１号公報（段落０００４乃至段落０００６）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このように従来の情報処理装置においては、異なるバスに接続される複数の機器が同時にバス獲得要求を出力し、いずれかの機器に対してのみバスの使用許可を与える場合、アクセスエラーを検出するための正確なタイムアウト判定を行えないという問題点がある。
【０００６】
メモリモジュールアクセスと所属バス上モジュールアクセスのタイムアウトカウンタを別にすることもある。この場合、所属バス上モジュールについては正しくタイムアウトがカウントできるが、カウンタ回路が1つ増加してしまう上に、メモリモジュールアクセスのタイムアウト時間にはもう一方のバスからのメモリモジュール調停待ち時間分を加えることには変わりない。
【０００７】
本発明の目的は複数のバスからのアクセスが競合した場合、いずれかのアクセスに対してバスの使用許可を与え他は待機させるというアクセス調停を含む情報処理装置において、アクセス調停によりアクセス要求開始から実際のアクセスまでの待機時間が発生しても、正確なタイムアウト判定を行うことができる情報処理装置及びアクセス制御方法を提供することである。
【課題を解決するための手段】
【０００８】
上記した課題を解決し目的を達成するために、本発明は以下に示す手段を用いている。
【０００９】
（１）本発明の情報処理装置は、第１バスマスタと当該バスマスタのタイムアウト時間を検出するためのカウンタとを有する第１バスと、第２バスマスタと当該バスマスタのタイムアウト時間を検出するためのカウンタとを有する第２バスと、前記第１、第２バスにより共有されるメモリと前記第１、第２バスとの間に接続され、第１、第２バスからのアクセス要求が競合した時、一方のバスからのアクセス要求を許可し、許可したアクセス要求が完了するまで他方のバスからのアクセス要求を待機させ、前記他方のバスに待機状態を知らせる報知信号を供給するアクセス調停装置とを具備し、前記第１、第２バスのカウンタは前記第１、第２バスがアクセス要求を発生するとカウント開始し、前記報知信号が供給されるとカウント停止するものである。
【００１０】
（２）本発明のアクセス制御方法は、第１バスマスタと当該バスマスタのタイムアウト時間を検出するためのカウンタとを有する第１バスと、第２バスマスタと当該バスマスタのタイムアウト時間を検出するためのカウンタとを有する第２バスと、前記第１、第２バスにより共有されるメモリとを具備する情報処理装置のアクセス制御方法において、第１、第２バスからのアクセス要求が競合した時、一方のバスからのアクセス要求を許可し、許可したアクセス要求が完了するまで他方のバスからのアクセス要求を待機させ、前記他方のバスに待機状態を知らせる報知信号を送るステップと、前記第１、第２バスがアクセス要求を発生すると前記第１、第２バスのカウンタをカウント開始させ、前記報知信号が供給されるとカウント停止させるステップとを具備するものである。
【発明の効果】
【００１１】
以上説明したように本発明によれば、アクセス調停が行われる期間はタイムアウト判定のための計時動作を停止するので、正確なタイムアウト時間を計測できる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明による情報処理装置及びアクセス制御方法の実施の形態を説明する。
【００１３】
第１の実施の形態
図１は本発明の一実施形態に係る情報処理装置の構成を概略的に示すブロック図である。この情報処理装置は、例えば、ＬＳＩ（Large Scale Integration）チップとして実現されている。図１に示すように、複数のバス１０Ａ、１０Ｂ（バスは３つ以上設けてもよい）が設けられる。各バス１０Ａ、１０Ｂは調停部１４Ａ，１４Ｂ、カウンタ１６Ａ，１６Ｂを有する。調停部１４Ａ，１４Ｂ、カウンタ１６Ａ，１６Ｂは便宜的にバスに内蔵されるように示したが、バスに接続されていてもよい。各バス１０Ａ，１０Ｂにはバスマスタ２０Ａ，２０Ｂ、２２Ａ，２２Ｂ（２つに限らず、１つでもよいし、３つ以上でもよい）と、バススレーブ２４Ａ，２４Ｂ、２６Ａ，２６Ｂが接続される。バスマスタ２０Ａ，２０Ｂ、２２Ａ，２２ＢはＣＰＵ、映像処理装置、音声処理装置等のデータ処理装置やＤＭＡコントローラ等のバスへアクセス権獲得要求を出力する機能を持った能動的なモジュールである。バススレーブ２４Ａ，２４Ｂ、２６Ａ，２６Ｂはレジスタ、メモリ等の受動的なモジュールである。なお、バススレーブは接続されていなくても良い。
【００１４】
調停部１４Ａ，１４Ｂは複数のバスマスタからバスアクセス権獲得要求が発生し、要求が競合した時に要求を調停する機能を有する。バスマスタはバスアクセス権を獲得してからアクセス要求を出力し、その出力開始からの経過時間をカウンタ１６Ａ，１６Ｂで計測し、アクセス要求を出力してから一定時間が経過しても正常なアクセスが行われていない場合、調停部１４Ａ，１４Ｂはそのアクセス要求を取り下げさせる。
【００１５】
バス１０Ａ，１０Ｂは1つのメモリ３０を共有し、メモリ３０に対して並列してアクセス要求を供給できる。このため、バス間のアクセスが競合する場合もあるので、その調停のための調停回路２８がバス１０Ａ，１０Ｂとメモリ３０との間に接続される。バスマスタからのアクセス要求はバススレーブへのアクセスの場合とメモリへのアクセスの場合がある。調停回路２８はメモリへのアクセスが競合した場合に、一方のメモリアクセスを許可し、一方のメモリアクセスが完了するまで他方のメモリアクセスを待機させる調停を行う。メモリ３０はＳＤＲＡＭ等のメモリ回路そのものとその制御回路からなる。バス１０Ａ，１０Ｂは同一のプロトコルに従って動作すると仮定するが、異なるプロトコルに従って動作する場合は、一方のバス、例えば１０Ａと調停回路２８との間にプロトコル変換部を設ければよい。
【００１６】
図２を参照してアクセス制御方法を説明する。
【００１７】
ステップＳ１２で１つのバスマスタ、例えばバスマスタ２０Ａがバススレーブあるいはメモリ３０にアクセスするためにバスアクセス権獲得要求を出力する。この要求はバスマスタ２０Ａが所属するバス１０Ａの調停部１４Ａに供給される。ステップＳ１４で調停部１４Ａは当該バス１０Ａに対するバスアクセス要求が競合しているか否か判定する。具体的には、バス１０Ａが他のバスマスタ２０Ｂにより使用中であるか否か、あるいは同時に複数のバスマスタ２０Ａ，２０Ｂがバスアクセス要求を出力したか否か判定する。競合していない場合はステップＳ２０に進み、要求を出力したバスマスタ２０Ａにバスアクセス権を付与する。なお、同時に複数のバスマスタ２０Ａ，２０Ｂがバスアクセス権獲得要求を出力しても、バスマスタ２０Ａが優先順位が高ければ競合しないと判断する。
【００１８】
競合している場合はステップＳ１６でバスマスタ２０Ａからのバスアクセス権獲得要求を待機させる。他のバスマスタのバスアクセスが完了して競合がなくなると（ステップＳ１８のイエス）、ステップＳ２０に進み、バスマスタ２０Ａにバスアクセス権が付与される。このように同じバスに所属する複数のバスマスタ２０Ａ，２０Ｂは同時にはいずれか１つしかバスにアクセスできないので、他のバスマスタがバスにアクセスしている間に残りのバスマスタからバスアクセス権獲得要求が発生しても、直ぐにはアクセス権が付与されず、他のバスマスタのアクセスが完了するまで待機される。
【００１９】
バスアクセス権を獲得すると、ステップＳ２２でバスマスタ２０Ａがバスアクセスを開始する。アクセスを開始すると、メモリアクセスエラーを検出するためのタイムアウト判定用の時間を計測するためにステップＳ２４でカウンタ１６Ａが動作開始する。
【００２０】
ステップＳ２６でアクセスするアドレスがメモリ３０のアドレスを指すか否（バススレーブ２４Ａ，２４Ｂのアドレスを指す）か判定する。例えば、メモリ空間のアドレスが００００〜０９９９まではバススレーブ２４Ａ，２４Ｂ，２６Ａ，２６Ｂ，…に割り当てられ、１０００〜がメモリに割り当てられている場合、このアドレスに基づいて判定する。メモリアクセスのアドレスがメモリ３０のアドレスを指していない（バススレーブ２４Ａ，２４Ｂのアドレスを指している）場合は、バスマスタ１０Ａはバスアクセス権を獲得しているので、ステップＳ２８でバススレーブ２４Ａ，２４Ｂにアクセスできる。
【００２１】
メモリアクセスのアドレスがメモリ３０のアドレスを指す場合は、メモリ３０は他のバスにも共有されているので、メモリアクセスが競合する可能性があるので、ステップＳ３０でバスアクセス要求が競合しているか否か判定する。具体的には、メモリ３０が他のバス１０Ｂによりアクセス中であるか否か、あるいは同時に複数のバス１０Ａ，１０Ｂがバスリアクセス要求を出力したか否か判定する。競合していない場合は、ステップＳ３６に進む。なお、同時に複数のバス１０Ａ，１０Ｂがバスアクセス要求を出力しても、バス１０Ａが優先順位が高ければ競合しないと判断する。
【００２２】
競合している場合はステップＳ３２でバス１０Ａのバスアクセス要求を待機させるとともに、バス１０Ａへ報知信号を供給する。報知信号はカウンタ１６Ａに供給され、カウンタ１６Ａは報知信号が供給されると、カウンタ動作を停止する。このため、メモリアクセスエラーを検出するためのタイムアウトカウンタ１６Ａはアクセス待機中はカウントしない。
【００２３】
他のバスのメモリアクセスが完了して競合がなくなると（ステップＳ３４のイエス）、ステップＳ３６に進み、報知信号の送信を停止し、バス１０Ａにメモリアクセスを許可する。これにより、バスマスタ１０Ａがメモリアクセスを開始する。ステップＳ３６でタイムアウトカウンタ１６Ａのカウント動作は再開する。
【００２４】
このように報知信号はあるバスからのバスアクセス要求が待機されると発生開始し、先行しているアクセスが終了すると発生停止する。すなわち、当該バスからのバスアクセス要求を待機させている期間、報知信号を出力する。タイムアウトカウンタ１６Ａは当該バスにアクセス要求が発生するとカウント動作開始し、バスアクセス要求が競合により待機される（報知信号が発生する）と、動作停止し、競合が解除される（報知信号が停止する）と、再開する。このため、タイムアウトカウンタの計測時間にはアクセス調停によるアクセス待機時間は含まれないので、アクセス要求開始から実際のアクセス開始までの待機時間が発生しても、正確なタイムアウト判定を行うことができる。
【００２５】
一般的に、バスアクセス開始時、もしくは連続アクセス中の最後のハンドシェイクからの時間を計測し、一定時間内にアクセス完了もしくは次のハンドシェイクが発生しなかった場合にタイムアウトと判定し、そのアクセスを終了させる。または、バスアクセス開始からの時間を計測して、途中のアクセスの有無に関わらず、一定時間経過後にタイムアウトとする方法もある。
【００２６】
しかし、本実施の形態のように、複数のバスがメモリを共有するアクセス統合システムでは、あるバスからのアクセスは他のバスからのアクセスとは独立した動作をするため、メモリへのアクセスが競合する場合がある。アクセスが競合してメモリへのアクセス開始が待たされる場合のタイムアウト判定について考える。アクセス時間の計測は、バスマスタが所属しているバス上でバスアクセスを開始した時点から開始する。このため、他のバスによる先行しているメモリへのアクセス中もカウントしてしまうため、タイムアウト時間が正確にカウントできなかった。
【００２７】
例えば、最後のハンドシェイクが行われてからの時間を計測してタイムアウトとする場合で、先行アクセスのハンドシェイク間隔がタイムアウト時間よりは短い場合、極端な場合、先行するアクセスが完了する以前に待たされている側のカウントがタイムアウト時間より長くなってしまえば、待たされていたアクセスは実際にメモリへアクセスする前にタイムアウト判定してしまう。
【００２８】
しかし、本実施の形態のようにメモリへのアクセス待ちの間、バスマスタの所属バスへ報知信号を出力することで、バスのアクセス待ちの間のタイムアウトカウントを停止することにより、１つのバスに１つのカウンタで正確なタイムアウト判定ができる。バスマスタとしてＣＰＵを接続可能であるが、複数のＣＰＵのシステムで、ソフトウェア等のミスである１つのＣＰＵでエラーが発生した際にシステム全体がダウンすることは問題がある。しかし、本実施の形態によれば、エラーの影響はそれを起こしたＣＰＵに限定され、システム全体に広がることは無い。
【００２９】
図示していないが、この後、バスマスタ２０Ａがバス１０Ａを介してメモリアクセスを実際に開始するためには種々の信号の送受信が必要であるが、カウンタ１６Ａが所定のタイムアウト時間を計測するまでにメモリアクセスが実際に開始されないと、アクセスエラーとしてそのアクセス要求を取り下げる。
【００３０】
以上説明したように、本実施の形態によれば、あるバスからのメモリアクセスの待機中は当該バスへ待機中を示す報知信号を供給し、カウンタ動作を停止させることにより、タイムアウト時間の計測を停止させることにより、１つのバスに１つのタイムアウトカウンタを設けるだけで正確なタイムアウト判定をすることができる。
【００３１】
なお、この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。バスの構造は、バススイッチであったり、階層構造を持っていても良い。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【００３２】
また、本発明は、コンピュータに所定の手段を実行させるための（あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための）プログラムを記録したコンピュータ読取り可能な記録媒体としても実施することもできる。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施形態に係る情報処理装置の構成を概略的に示すブロック図である。
【図２】図１に示す情報処理装置のアクセス制御方法を説明するためのフローチャートである。
【符号の説明】
【００３４】
１０Ａ，１０Ｂ…バス、１４Ａ，１４Ｂ…調停部、１６Ａ，１６Ｂ…カウンタ、２０Ａ，２０Ｂ，２２Ａ，２２Ｂ…バスマスタ、２４Ａ，２４Ｂ，２６Ａ，２６Ｂ…バススレーブ、２８…調停装置、３０…メモリ。
【図１】
2008299654.tif 000003
【図２】
2008299654.tif 000004