(57)【要約】【課題】  メモリコントローラからのバス使用推薦情報に基づいて各バスマスタがバスアービターに対してバス使用要求を発行する。【解決手段】  複数のバスマスタと、外部メモリの制御を行うメモリコントローラと、各バスマスタからのバス使用要求を調停するバスアービターとが接続されるバスのデータ転送システムにおいて、メモリコントローラが各バスマスタにバス使用推薦情報を通知し、各バスマスタがメモリコントローラから通知されたバス使用推薦情報に基づいてバスアービターにバス使用要求を発行する。【選択図】      図４
2006127408.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタと、外部メモリの制御を行うメモリコントローラと、前記複数のバスマスタからのバス使用要求を調停するバスアービターとが接続されるバスにおけるデータ転送システムにおいて、
メモリコントローラが各バスマスタにバス使用推薦情報を通知する通知手段と、
各バスマスタが前記メモリコントローラから通知されたバス使用推薦情報に基づいて前記バスアービターにバス使用要求を発行する発行手段とを有することを特徴とするデータ転送システム。
【請求項２】
前記バス使用推薦情報は、各バスマスタが出力する次要求アドレス情報と、前記メモリコントローラが外部メモリに対して発行する予定のロウアドレスとに基づいて生成され、前記次要求アドレスとロウアドレスとが一致する場合には、該当するバスマスタに対してアクティブレベルを出力し、全てのバスマスタの次要求アドレス情報が前記ロウアドレスと一致しない場合には、前記全てのバスマスタに対してアクティブレベルを出力することを特徴とする請求項１記載のデータ転送システム。
【請求項３】
各バスマスタは、前記メモリコントローラから通知されたバス使用推薦情報がインアクティブであれば、前記バス使用要求を取り下げることを特徴とする請求項１記載のデータ転送システム。
【請求項４】
各バスマスタは、前記バス使用要求を取り下げた後、所定の時間が経過した場合、前記バス使用要求を発行することを特徴とする請求項３記載のデータ転送システム。
【請求項５】
各バスマスタは、前記バス使用推薦情報がインアクティブであっても、バスマスタ内部のメモリ状態を優先させて前記バス使用要求の発行を強行することを特徴とする請求項３記載のデータ転送システム。
【請求項６】
各バスマスタは、バスマスタ内部のメモリ状態から緊急度が高い場合に、バス優先使用要求を出力し、前記バスアービターが当該バス優先使用要求を発行したバスマスタに優先的にバス使用権を与えることを特徴とする請求項１記載のデータ転送システム。
【請求項７】
複数のバスマスタと、外部メモリの制御を行うメモリコントローラと、前記複数のバスマスタからのバス使用要求を調停するバスアービターとが接続されるバスにおけるデータ転送システムの制御方法であって、
メモリコントローラが各バスマスタにバス使用推薦情報を通知する工程と、
各バスマスタが前記メモリコントローラから通知されたバス使用推薦情報に基づいて前記バスアービターにバス使用要求を発行するように制御する工程とを有することを特徴とするデータ転送システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバスマスタが存在するバスにおいて、外部メモリのページモードアクセスを有効利用するためのバスマスタのバス使用要求制御に関する。
【背景技術】
【０００２】
外部メモリ（ＤＲＡＭ）へのアクセス方法の一つとして、ページモードアクセスが良く知られている（例えば、特許文献１参照）。このページモードアクセスでは、連続するアクセスアドレスが同一ページ内、即ち、ロウアドレスと同一の場合、最初のロウアドレスのストローブ以外はカラムアドレスのストローブのみでアクセスが可能となり、アクセスサイクルを短縮できるというメリットがある。
【０００３】
但し、ＤＲＡＭアクセスを行うバスマスタは複数存在する場合が殆どであり、それぞれのバスマスタが同時刻にアクセスするアドレスは必ずしも同一ページ内だとは限らない。従って、従来のようにバスアービターが優先順位に沿ってバスマスタのバス使用要求を調停しているだけでは、ページヒットの恩恵を受けることは比較的少ない。
【０００４】
図１は、従来のシンプルなバス構成の一例を示す図である。図１に示すバス１０５にはＤＲＡＭ１０１にアクセスするためにＤＲＡＭ１０１の専用信号１０２を制御するメモリコントローラ１０３と、３つのバスマスタ１０６、１０７、１０８と、これら複数のバスマスタからのバス使用要求を調停するためのバスアービター１０４とが存在している。
【０００５】
尚、ここではバスマスタの数を“３”として説明するが、これに限るものではない。
【０００６】
図１において、バスアービター１０４はシンプルなラウンドロビン方式の優先順位管理を行い、複数のバスマスタからのバス使用権要求から１つのマスタに対してのみバス使用許可を与える。
【０００７】
以上がこのシステムの簡単な構成であるが、特に本発明はバスアドレスとＤＲＡＭアドレスに関する内容であるので、バスマスタとバスアービター、またメモリコントローラ間のバスアドレスに関する信号に着目したブロック図を用いて、バスマスタのバス使用要求制御について説明する。
【０００８】
図２は、バスマスタとバスアービター、メモリコントローラ間のバスアドレスに関する信号を示す図である。各バスマスタはマスタアドレス２０１、２０２、２０３を確定させた上で、バス使用権要求信号bus_req２１６、２１７、２１８を“１”にしてバス使用権を要求する。そして、要求されたバス使用権要求信号bus_req２１６、２１７、２１８はバスアービター１０４に入力される。これにより、バスアービター１０４はアービトレーションサイクルにおいて優先順位と各バス使用権要求の状態から１つのバスマスタのみに対してバス使用権許可bus_gnt２１３、２１４、２１５を与える。
【０００９】
この信号の状態が１つのバスマスタがバス使用権を獲得したことになる。バス使用権を獲得したバスマスタは、アービター１０４が発行しているバス使用許可信号と同サイクルでバスマスタアドレスをバスＭＵＸブロック２１０に出力する。このバスＭＵＸブロック２１０は、バス使用時に選択されたバスマスタのバス信号をメモリコントローラ１０３に対して発行する役割を持っている。選択されたバスマスタを意味する信号がマスタアドレス選択信号adr_sel２１１で選択され、メモリコントローラ１０３へ発行されるアドレス信号がbus_adr２１２である。
【００１０】
アービター１０４がアービトレーションを終了し、メモリコントローラ１０３へ選択したバスマスタのバス要求をadr_req２１９で行う。この信号を受けたメモリコントローラ１０３は、このバスアドレスを受け取る準備ができていればadr_ack２２０を返送する。この期間、bus_adr２１２は一定の値で固定されている。
【００１１】
ここでは、簡単のためにメモリコントローラ１０３に受け渡す信号にはアドレスのみを仮定しているが、他にバースト長情報やバイトイネーブル情報も同様に受け渡される場合も当然有る。
【００１２】
図３は、図２に示すバス構成におけるバス使用権要求とバスアクセスの動作を示す図である。尚、説明を簡単にするために、バスマスタ１０６、１０７はバス使用権要求を常に出しており、バスマスタ１０８は常に出していない状態を仮定している。
【００１３】
図３に示すサイクル１において、バスはアイドル状態にあると仮定している。サイクル２でバスマスタ１０６、１０７が同時にバスリクエストを出している。このサイクル内で現在のプライオリティを鑑みた上で、アービター１０４はマスタ１０６に対してバス権を与える。尚、初期状態での優先権はバスマスタ１０６にあるものと仮定する。
【００１４】
次に、サイクル３でアービター１０４はバス使用権許可信号bus_gnt２１３をアサートする。また、バスマスタ１０７はバス使用権が取れないので、サイクル４以降もbus_req２１７をアサートし続ける。バス使用許可信号bus_req２１６、２１７をアサート中は、バスマスタ１０６、１０７共にバス要求アドレスmst_adr２０１、２０２を出力する。
【００１５】
バスＭＵＸブロック２１０は、バス使用許可信号がアサートされたそのサイクルでbus_adrレジスタに選択されたmst_adrを格納する。このレジスタ（信号）と等価な信号が図２に示すbus_adr２１２である。図３に示すマスタ要求アドレスmst_adr、バスアドレスbus_adrにおける（row0,col0）はバスアドレスをＤＲＡＭアドレスに置き換えて表現したものである。ここでrow0はＤＲＡＭ１０１のロウアドレスの０番地を意味し、col0はＤＲＡＭ１０１のカラムアドレスの０番地を意味する。バスアクセスにおいて、このロウアドレスが連続で同じ番地であれば、そのアクセスはページヒットしたことになる。また逆にロウアドレスが同じでなければ、ページミスしたことになる。
【００１６】
このサイクル３でバス使用権を獲得できるバスマスタが確定すると、サイクル４でバスのアドレスフェーズ開始要求信号adr_req２１９をメモリコントローラ１０３に通知することでバスのアドレスフェーズ開始を要求する。これを許可する信号がアドレスフェーズ開始許可信号adr_ack２２０でメモリコントローラ１０３からアービター１０４に対して返される。このadr_ack２２０を検出するとアービター１０４はadr_req２１９をネゲートする。また、adr_req２１９がアクティブな状態のサイクル４から５までの期間でメモリコントローラ１０３に与えるバスアドレスbus_adr２１２が確定するように、アービター１０４はマスタアドレス選択信号adr_sel２１１をバスＭＵＸブロック２１０に与える。
【００１７】
この例では、アービター１０４内の優先権のアルゴリズムはシンプルなラウンドロビンを想定しているので、最初のアービトレーションでバスマスタ１０６がバス使用権を獲得したので、その後のアービトレーションサイクルではバスマスタ１０７に対して優先権が与えられる。これがサイクル６である。次のアービトレーションではバスマスタ１０８の優先順位が最も高くなるが、バスマスタ１０８からはバス使用権要求が出ていないので、バスマスタ１０６がバス使用権を獲得する。これがサイクル９である。
【００１８】
結果として、図３に示すようなバス使用権要求と各バスマスタが出すアドレスの場合は、ロウアドレスが０、２、０の順にＤＲＡＭ１０１へアクセスが行われるので、２度連続でページミスしてしまったことになる。
【００１９】
このように、従来の方法では、アービターがバス使用要求と、予め決められた優先順位情報だけでページヒットを起こし易くするようにバス使用許可を生成することは不可能である。
【００２０】
そこで、これを解決するための従来の提案では、ＤＲＡＭコントローラ内で、ＤＲＡＭアクセスの局所性をバスマスタの種類から予測したり、ＤＲＡＭのロウアドレスと現在のバスアドレスからページヒットかミスを判定し、ページモードか非ページモードかを動的に切り替えたりしている。また、ＤＲＡＭを制御するＤＲＡＭコントローラ内で、各バスマスタから発行され、キューイングされたＤＲＡＭアクセスコマンド群をページヒットするように、アクセス順序を入れ替えたりすることで、可能な限りページミスを起こさないような工夫をするという発明も提案されている。
【特許文献１】特開平10-097788号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
しかしながら、上述したように、ＤＲＡＭコントローラ内にＤＲＡＭのアクセス順序を入れ替えるような回路を内蔵するのは可能であるが、設計難易度はかなり高い。また、既にメモリコントローラ内に予約されたＤＲＡＭアクセスコマンドについてページモードを活用するにしても、その自由度は制限されてしまう。
【００２２】
本発明は、上記課題を解決するためになされたもので、メモリコントローラからのバス使用推薦情報に基づいて各バスマスタがバスアービターに対してバス使用要求を発行することを目的とする。
【００２３】
また、ページヒットを複数のバスマスタが起こしうる状況になった場合は、その中でもより緊急度の高いバスマスタに対して優先的にバス使用権を与えることを目的とする。
【課題を解決するための手段】
【００２４】
本発明は、複数のバスマスタと、外部メモリの制御を行うメモリコントローラと、前記複数のバスマスタからのバス使用要求を調停するバスアービターとが接続されるバスにおけるデータ転送システムにおいて、メモリコントローラが各バスマスタにバス使用推薦情報を通知する通知手段と、各バスマスタが前記メモリコントローラから通知されたバス使用推薦情報に基づいて前記バスアービターにバス使用要求を発行する発行手段とを有することを特徴とする。
【００２５】
また、本発明は、複数のバスマスタと、外部メモリの制御を行うメモリコントローラと、前記複数のバスマスタからのバス使用要求を調停するバスアービターとが接続されるバスにおけるデータ転送システムの制御方法であって、メモリコントローラが各バスマスタにバス使用推薦情報を通知する工程と、各バスマスタが前記メモリコントローラから通知されたバス使用推薦情報に基づいて前記バスアービターにバス使用要求を発行するように制御する工程とを有することを特徴とする。
【発明の効果】
【００２６】
本発明によれば、メモリコントローラからのバス使用推薦情報に基づいて各バスマスタがバスアービターに対してバス使用要求を発行することにより、従来のようにメモリコントローラ内でページミスのデメリットをカバーするような機構を採用するよりも、比較的簡単な構成で自由度の高いページヒット利用が可能になる。
【００２７】
また、ページヒットが起こりうるバスマスタが複数存在する場合には、その時点でより緊急度の高いバスマスタに対して優先的にバス使用許可を与えることができる。
【発明を実施するための最良の形態】
【００２８】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００２９】
［第１の実施形態］
図４は、第１の実施形態におけるシステム構成の一例を示す図である。従来例で用いた図１に示すバスアーキテクチャ以外に追加した信号として、第１の実施形態では、各バスマスタ１０６、１０７、１０８からメモリコントローラ１０３に対して、マスタアドレス２０１、２０２、２０３を出力する。これらは、図２に示した信号であり、バス使用権をどのバスマスタがとったかには依存しない情報である。また、メモリコントローラ１０３から各バスマスタ１０６、１０７、１０８に対して、バス使用推奨信号４０１、４０２、４０３を出力する。
【００３０】
以上がこのシステムの簡単な構成であるが、特に本発明はバスアドレスとＤＲＡＭアドレスに関する内容であるので、バスマスタとバスアービター、またメモリコントローラ間のバスアドレスに関する信号に着目したブロック図を用いて、バスマスタのバス使用要求制御について説明する。
【００３１】
図５は、第１の実施形態におけるバスマスタとバスアービター、メモリコントローラ間のバスアドレスに関する信号を示す図である。尚、従来例で用いた図２に追加した信号は図４に示すバス使用推奨信号４０１、４０２、４０３である。
【００３２】
図６は、第１の実施形態におけるバス使用推奨信号を使用した場合のバス使用権要求とバスアクセスの動作を示す図である。尚、従来例で用いた図３に追加された信号は各バスマスタに対して出力されるバス使用推薦信号bus_rec４０１、４０２、４０３である。
【００３３】
第１の実施形態では、メモリコントローラ１０３内部で、既に受付済みである（メモリコントローラ１０３内でＤＲＡＭアクセスコマンドをキューイングできるキューを有している場合はキューの最下段にある）ＤＲＡＭアクセスコマンドと各バスマスタが出力している次アクセスアドレスとを比較し、一致するアドレスを出力しているバスマスタに対してバス使用推薦信号bus_recをアサートする。
【００３４】
また、最初のＤＲＡＭアクセスについては、ページミスやヒットは関係ないので全てのバスマスタがbus_recをアサートして良い（サイクル１〜３）。その結果、図３に示した場合と同様に、バスアービター１０４は最初のバス使用権をバスマスタ１０６に与える。次に、バスマスタ１０６が最初のバス使用権を獲得した後、メモリコントローラ１０３はバスマスタ１０６に対してのみサイクル４〜６の期間でバス使用推薦信号bus_rec４０１を“１”にする。
【００３５】
これは、最初に使用許可したバスアドレスbus_adr２１２のロウアドレスがrow0であり、次の各バスマスタからのマスタアドレスmst_adr２０１、２０２、２０３のうち、同一ロウアドレスとなるのがバスマスタ１０６のみだからである。
【００３６】
一方、メモリコントローラ１０３からバス使用推薦信号bus_rec４０２の“０”を入力したバスマスタ１０７は、bus_rec４０２でバス使用要求bus_req２１７をマスクし、バス使用権をバスマスタ１０６に対して譲る。
【００３７】
バスアービター１０４はアービトレーションサイクルであるサイクル５において、バスマスタ１０６からのみバス使用要求が存在するので、バスマスタ１０６にバス使用許可を与える（サイクル６で、bus_gnt２１３を“１”）。
【００３８】
２番目のバス使用権が再びバスマスタ１０６に与えられた後、サイクル７でバスマスタ１０６が要求するバスアドレスのロウアドレスはrow1であり、バスマスタ１０７のロウアドレスは引き続きrow2である。このとき、前回のバスアクセス時のロウアドレスはrow0であり、両バスマスタ共にページミスを起こしているので、両方のバスマスタに対するバス使用推薦信号bus_rec４０１、４０２を“１”とし、どちらのバスマスタに対してもバス使用を促している。
【００３９】
ここで、公平なバスアービトレーションに従えば、次のバス使用権はバスマスタ１０７が獲得することになる。この図６に示す場合、ページヒットが１度起こっており、図３に示した場合より数サイクルの節約になる。
【００４０】
次に、バスマスタ１０７がメモリコントローラ１０３からのバス使用推薦信号を無視し、バス使用許可要求を出す場合を例に説明する。この場合、各バスマスタの出力するバスアドレスは図６に示す場合と同じであり、結果として、メモリコントローラ１０３が出力するバス使用推薦信号のアサートも同じである。
【００４１】
図７は、バスマスタがバス使用推薦信号を無視してバス使用許可要求を出す場合のバス使用権要求とバスアクセスの動作を示す図である。サイクル４〜６の期間で、バスマスタ１０６に対してのみバス使用推薦が出されており、バスマスタ１０７にはバス使用が推薦されていない。
【００４２】
しかし、この場合もバスマスタ１０７はバス使用要求信号bus_req２１７をマスクせずにアサートし続けている。この結果、通常のバスアービトレーションによってバスマスタ１０７にバス使用許可が与えられることとなる。これは、バスマスタ１０７が内部の状態をみてバス使用要求を強行したことによる。
【００４３】
図７に示す例では、この「内部の状態」をバスマスタ内部に有するＦＩＦＯの空き状態として仮定している。例えば、ライトＤＭＡコントローラ（ＩＯデバイス→ＤＲＡＭへの方向へのＤＭＡ）であれば、ＦＩＦＯがフルになっており（fifo_full７０２が“１”）、ＩＯデバイスからのデータ受信が滞ってしまっている状況である。この場合、ＦＩＦＯに溜まってしまったデータをできるだけ早くＤＲＡＭに書き込んでしまいたいということで、ページミスか否かに関わらずバス使用要求を出す。
【００４４】
これにより、ＤＲＡＭのパフォーマンスとしてはページミスを連続で起こすので図６に示す例よりパフォーマンスは落ちてしまうが、バスマスタの都合によってはリアルタイム性が要求される処理の場合等、ページヒットを起こし易いバスマスタにバス使用権を譲り続けることがそのバスマスタにとっては致命的にもなり得る。図７に示す例はこのような状況を回避するための処置である。
【００４５】
図８は、第１の実施形態におけるバスマスタ内のバス使用要求信号の生成回路の一例を示す図である。図８に示すように、バスマスタ（ここでは、ＤＭＡコントローラとする）は、バスマスタＩ／Ｆ８０３、ＦＩＦＯ８０２とデバイスＩ／Ｆ８０４とに分割できる。更に、第１の実施形態では、バス使用要求制御回路８０１を追加する。尚、このバス使用要求制御回路８０１は、バスマスタＩ／Ｆ８０３内に追加することも可能である。
【００４６】
このバス使用要求制御回路８０１は、バスマスタＩ／Ｆ８０３から出力されるバス使用要求信号bus_req_raw８０７をバス使用推薦信号８０５か、ＦＩＦＯ８０２のフル状態を表す信号fifo_full60の何れかでマスクする回路であり、実際にバスアービター１０４に発行されるバス使用要求bus_req８０６を生成する。
【００４７】
図８に示す回路８０１は、第１の実施形態における最小構成であり、ＯＲゲート８０８の入力信号やＡＮＤゲート８０９の入力信号にバスマスタ固有の情報を追加し、更にバスマスタの都合とバススレーブであるメモリコントローラ１０３の都合とを反映させたバス使用要求の発行を行うことも可能である。
【００４８】
また、第１の実施形態では、単純にバス使用推薦信号でバス使用要求をマスクしているが、マスクする回数の上限を決めておくことで有る特定のバスマスタが連続してバス権を獲得してしまうことを防ぐこともできる。その場合、バスマスタＩ／Ｆ８０３内にソフトウェアで設定可能なレジスタを内蔵しておき、バスマスタに要求されるバンド幅やリアルタイム性などを考慮した上で、マスク回数の上限値を設定すれば良い。
【００４９】
以上説明したように、第１の実施形態によれば、メモリコントローラとバスマスタとの間で信号を追加することで、ページヒットの確率が高まるようにバス使用要求自体を制御することが比較的簡単な回路を加えることで可能となる。
【００５０】
また、あくまでバス使用推薦信号はバスマスタに対して強制力の有る信号でないという条件を設定し、バスマスタ固有の状態によってはこれを無視しバス使用要求を発行できるようにすることで、ページヒットかミスかの条件だけで特定のバスマスタがバス使用権を獲得し続けるデメリットを回避できる。
【００５１】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態について詳細に説明する。尚、第２の実施形態では、第１の実施形態で説明した各信号に、更にバス優先使用要求信号を付加し、ページヒットが起こりうるバスマスタが複数存在する場合には、その時点でより緊急度の高いバスマスタに対して優先的にバス使用許可を与えるものである。
【００５２】
図９は、第２の実施形態におけるシステム構成の一例を示す図である。第１の実施形態で用いた図４に示すバスアーキテクチャ以外に追加した信号として、第２の実施形態では各バスマスタ１０６、１０７、１０８バスアービター１０４に対して、バス優先使用要求信号９０１、９０２、９０３を出力する。
【００５３】
以上がこのシステムの簡単な構成であるが、特に本発明はバスアドレスとＤＲＡＭアドレスに関する内容であるので、バスマスタとバスアービター、またメモリコントローラ間のバスアドレスに関する信号に着目したブロック図を用いて、バスマスタのバス使用要求制御について説明する。
【００５４】
図１０は、第２の実施形態におけるバスマスタとバスアービター、メモリコントローラ間のバスアドレスに関する信号を示す図である。
【００５５】
尚、第２の実施形態におけるバス使用推奨信号を使用した場合のバス使用権要求とバスアクセスの動作は、第１の実施形態で用いた図６、図７に示す動作と同様であり、詳細な説明は省略する。
【００５６】
次に、ページヒットが起こりうるバスマスタが複数存在し、緊急度の高いバスマスタに対して優先的にバス使用許可を与えるために、バス優先使用要求信号をバスアービターに出力する場合のバス使用権要求とバスアクセスの動作について説明する。
【００５７】
図１１は、バス優先使用要求信号がアサートされた場合のバスの動作を示す図である。図１１において、最初のバスアクセスはバスマスタ１０６のみのバス使用要求であるので、バスマスタ１０６がバスを使用する（サイクル２〜３）。次に、サイクル４〜６では、バスマスタ１０６、１０７がページヒットを起こすようなアドレスに対してバス使用要求を出している。この場合、バスアービター１０４は、通常のアービトレーションによってバスマスタ１０７にバス使用権を与える（サイクル６）。
【００５８】
次に、バス使用要求について再びバスマスタ１０６、１０７の双方からページヒットを起こすようなアドレスに対するバス使用要求が出される（サイクル７〜９）。このとき、バスマスタ１０７では、内部のＦＩＦＯがフル（fifo_full７０２が“１”）で、それと等価なバス優先使用要求bus_pri_req９０２をアサートする。
【００５９】
ここで、前回のバス使用権をバスマスタ１０７が獲得したため、現時点での優先順位はバスマスタ１０６の方がバスマスタ１０７より高い。しかし、バスアービター１０４は、バスマスタ１０７のバス優先使用要求bus_pri_req９０２がバス使用要求bus_req２１７と同時にアサートされているので、バスマスタ１０７に対してバス使用権を与える。
【００６０】
バススレーブであるメモリコントローラ１０３にとっては、どちらのバスマスタからのアクセスを受け付けたとしてもページヒットを起こすので、ＤＲＡＭアクセスにおけるパフォーマンス上の問題は無いが、リアルタイム性の処理を要求されるバスマスタにとっては、優先的にバス使用権を獲得したい状況が有り得る。このバス優先使用要求信号はこのようなマスタのための信号である。
【００６１】
ＤＲＡＭにとって同じページヒットを起こすアクセスであれば、何れのバスマスタからのアクセスでもパフォーマンス低下は起こらないが、一方でバスマスタの立場から考えると、その時点でより緊急な状況に置かれたバスマスタにとってはそのアクセス順序は重要である。
【００６２】
尚、バスマスタ１０６及び１０７の双方がバス優先使用要求信号を出している場合は、その中で現時点での優先度の高いほうにバス使用権が与えられる。
【００６３】
図１２は、第２の実施形態におけるバスマスタ内のバス使用要求信号の生成回路の一例を示す図である。図１２に示すバス使用要求制御回路１２０１は、第１の実施形態で説明した図８に示すバスマスタのバス使用要求制御回路８０１にＡＮＤゲート１２０３を追加し、バス優先使用要求信号bus_pri_req１２０２を出力するものである。
【００６４】
図１２に示す回路１２０１は、第２の実施形態における最小構成であり、ＯＲゲート８０８の入力信号やＡＮＤゲート８０９の入力信号にバスマスタ固有の情報を追加し、更にバスマスタの都合とバススレーブであるメモリコントローラ１０３の都合とを反映させたバス使用要求の発行を行うことも可能である。
【００６５】
尚、バス優先使用要求信号bus_pri_req１２０２は、ＦＩＦＯ８０２のフル情報８１０とバス使用推薦情報８０５とをＡＮＤゲート１２０３に入力し、ＦＩＦＯのフル状態のみを仮定したが、有る一定の閾値を超えるとbus_pri_req１２０２がアサートされる仕組みでも良いし、他の要因と併せることも可能である。
【００６６】
また、第２の実施形態では、単純にバス使用推薦信号でバス使用要求をマスクしているが、マスクする回数の上限を決めておくことで有る特定のバスマスタが連続してバス権を獲得してしまうことを防ぐこともできる。その場合、バスマスタＩ／Ｆ８０３内にソフトウェアで設定可能なレジスタを内蔵しておき、バスマスタに要求されるバンド幅やリアルタイム性などを考慮した上で、マスク回数の上限値を設定すれば良い。
【００６７】
以上説明したように、第２の実施形態によれば、第１の実施形態での効果に加え、更に次アクセスがページヒットを起こし得るマスタの中で、より緊急度の高い状況に置かれたバスマスタに対しては最優先でバス使用権を与えることができる。
【００６８】
本発明は、バスマスタとバススレーブであるメモリコントローラとの間に信号を追加し、各バスマスタのバス使用要求発行の段階でページヒットを起こし易く並び替えることを目的としているので、ＤＲＡＭアクセスに関する信号や、バスのデータフェーズに関する信号の説明を省略している。しかし、バスの仕様において、データフェーズの取り扱いに依存することなく、即ち、スプリット化されたバスであろうと非スプリットバスであろうと、それぞれにおいて一定の効果はある。
【００６９】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００７０】
また、本発明の目的は前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００７１】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００７２】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００７３】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７４】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００７５】
【図１】従来のシンプルなバス構成の一例を示す図である。
【図２】バスマスタとバスアービター、メモリコントローラ間のバスアドレスに関する信号を示す図である。
【図３】図２に示すバス構成におけるバス使用権要求とバスアクセスの動作を示す図である。
【図４】第１の実施形態におけるシステム構成の一例を示す図である。
【図５】第１の実施形態におけるバスマスタとバスアービター、メモリコントローラ間のバスアドレスに関する信号を示す図である。
【図６】第１の実施形態におけるバス使用推奨信号を使用した場合のバス使用権要求とバスアクセスの動作を示す図である。
【図７】バスマスタがバス使用推薦信号を無視してバス使用許可要求を出す場合のバス使用権要求とバスアクセスの動作を示す図である。
【図８】第１の実施形態におけるバスマスタ内のバス使用要求信号の生成回路の一例を示す図である。
【図９】第２の実施形態におけるシステム構成の一例を示す図である。
【図１０】第２の実施形態におけるバスマスタとバスアービター、メモリコントローラ間のバスアドレスに関する信号を示す図である。
【図１１】バス優先使用要求信号がアサートされた場合のバスの動作を示す図である。
【図１２】第２の実施形態におけるバスマスタ内のバス使用要求信号の生成回路の一例を示す図である。
【符号の説明】
【００７６】
１０１  ＤＲＡＭ
１０２  ＤＲＡＭバス
１０３  メモリコントローラ
１０４  バスアービター
１０５  バス（アドレス、データ、制御線）
１０６  バスマスタ
１０７  バスマスタ
１０８  バスマスタ
２０１  マスタアドレス
２０２  マスタアドレス
２０３  マスタアドレス
２１０  バスＭＵＸ
２１１  マスタアドレス選択信号adr_sel
２１２  バスアドレスbus_adr
２１３  バス使用許可信号
２１４  バス使用許可信号
２１５  バス使用許可信号
２１６  バス使用要求信号
２１７  バス使用要求信号
２１８  バス使用要求信号
２１９  バスアドレスフェーズ要求信号adr_req
２２０  バスアドレスフェーズ許可信号adr_ack
４０１  バス使用推奨信号
４０２  バス使用推奨信号
４０３  バス使用推奨信号
８０１  バス使用要求制御回路
８０２  ＦＩＦＯ
８０３  バスマスタＩ／Ｆ
８０４  デバイスＩ／Ｆ
８０５  バス使用推薦信号
８０６  バス使用要求信号
８０７  オリジナルのバス使用要求信号
８０８  ＯＲゲート
８０９  ＡＮＤゲート
８１０  ＦＩＦＯフルステータス
９０１  バス優先使用要求信号
９０２  バス優先使用要求信号
９０３  バス優先使用要求信号
１２０１  バス使用要求制御回路
１２０２  バス優先要求信号
【図１】
2006127408.tif 000003
【図２】
2006127408.tif 000004
【図３】
2006127408.tif 000005
【図４】
2006127408.tif 000006
【図５】
2006127408.tif 000007
【図６】
2006127408.tif 000008
【図７】
2006127408.tif 000009
【図８】
2006127408.tif 000010
【図９】
2006127408.tif 000011
【図１０】
2006127408.tif 000012
【図１１】
2006127408.tif 000013
【図１２】
2006127408.tif 000014