(57)【要約】【課題】各マスタの性能要件を満たしつつ、メモリの帯域を最適化する。【解決手段】制御装置は、複数のマスタからメモリへのアクセスを制御する制御装置であって、複数のマスタからの複数のアクセス要求を取得する取得手段と、性能要件の充足に関するマスタの状態に応じて、アクセスの順序を決めるための異なる複数の方式のなかから使用する方式を選択する選択手段と、取得された複数のアクセス要求を、選択された方式にしたがう順序で実行する実行手段と、を備える。【選択図】図１
2020129205.tif 000002
【特許請求の範囲】
【請求項１】
複数のマスタからメモリへのアクセスを制御する制御装置であって、
複数のマスタからの複数のアクセス要求を取得する取得手段と、
性能要件の充足に関するマスタの状態に応じて、アクセスの順序を決めるための異なる複数の方式のなかから使用する方式を選択する選択手段と、
取得された複数のアクセス要求を、選択された方式にしたがう順序で実行する実行手段と、を備える制御装置。
【請求項２】
各マスタについて、該マスタの性能要件の充足に対する緊急度を導出する緊急度導出手段をさらに備え、
前記選択手段は、導出された緊急度に応じて方式を選択する請求項１に記載の制御装置。
【請求項３】
各アクセス要求について、該アクセス要求を実行する際に発生するオーバヘッドを導出するオーバヘッド導出手段をさらに備え、
前記異なる複数の方式は、緊急度に応じてアクセスの順序を決めるための第１方式と、オーバヘッドに応じてアクセスの順序を決めるための第２方式と、を含み、
前記選択手段は、導出された緊急度が所定の基準を満たす場合、前記第１方式を選択し、前記第１方式が選択されない場合、前記第２方式を含む他の方式を選択する請求項２に記載の制御装置。
【請求項４】
前記緊急度導出手段は、各マスタについて、所定期間におけるデータ処理の進行状況に基づいて緊急度を導出する請求項２または３に記載の制御装置。
【請求項５】
前記緊急度導出手段は、各マスタについて、該マスタの性能要件の充足に関して許容される残り時間によって緊急度を導出する請求項２または３に記載の制御装置。
【請求項６】
前記オーバヘッド導出手段によって導出されるオーバヘッドは、前記メモリのページが切り替わる際に発生するオーバヘッドである請求項３に記載の制御装置。
【請求項７】
前記オーバヘッド導出手段によって導出されるオーバヘッドは、前記メモリへのアクセスのディレクションがライトとリードとの間で切り替わる際に発生するオーバヘッドである請求項３に記載の制御装置。
【請求項８】
前記オーバヘッド導出手段によって導出されるオーバヘッドは、前記メモリのリフレッシュ実行時に発生するオーバヘッドである請求項３に記載の制御装置。
【請求項９】
前記緊急度導出手段は、Ｎサイクル（Ｎ≧１）経過するごとに経過時間を更新し、アクセス要求が実行対象として選択された際に処理データの量を更新し、処理データの量と経過時間との比率から緊急度を導出する請求項４に記載の制御装置。
【請求項１０】
前記緊急度導出手段は、Ｎサイクル（Ｎ≧１）経過するごとに経過時間を更新し、アクセス要求の実行によるデータ転送が成立した際に処理データの量を更新し、処理データの量と経過時間との比率から緊急度を導出する請求項４に記載の制御装置。
【請求項１１】
前記緊急度導出手段は、Ｎサイクル（Ｎ≧１）経過するごとに許容される残り時間を更新し、更新された残り時間から緊急度を導出する請求項５に記載の制御装置。
【請求項１２】
複数のマスタからメモリへのアクセスを制御する制御方法であって、
複数のマスタからの複数のアクセス要求を取得することと、
性能要件の充足に関するマスタの状態に応じて、アクセスの順序を決めるための異なる複数の方式のなかから使用する方式を選択することと、
取得された複数のアクセス要求を、選択された方式にしたがう順序で実行することと、を含む制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置および制御方法に関する。
【背景技術】
【０００２】
近年、電子機器の高機能化・高性能化に伴い、ＬＳＩ内にあるＤＲＡＭにアクセスするマスタが増加している。また、ＤＲＡＭに要求される帯域も増加している。各マスタには、それぞれ性能要件があり、特定の期間に特定のデータ量が処理されることが期待される。もし処理できなかった場合、機能や性能に問題が生じうる。
【０００３】
そのため、バスシステムは、各マスタの性能要件を満たすようにＤＲＡＭへのアクセスを制御する必要がある。各マスタの性能要件を満たす手法として、特許文献１や特許文献２や特許文献３に記載される手法が提案されている。
【０００４】
特許文献１に記載の手法では、マスタがアクセスを完了するまでの許容時間をアクセスに付与し、許容時間は時間経過とともに減少する。アービタは、許容時間が小さいアクセスを優先的に処理することで、許容時間内に処理を完了する。
【０００５】
特許文献２に記載の手法では、アービタがマスタ毎の所定の期間における処理されたデータ量を計測し、上限に達したマスタのアクセスはマスクすることで、各マスタに必要な帯域を割り当てる。
【０００６】
特許文献３に記載の手法では、アービタがアクセスを実行した際にメモリのオーバヘッドが最小となるアクセスを選択して実行することで、メモリの帯域を最適化する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−１６８７７３号公報
【特許文献２】特開２０１１−０９５９６６号公報
【特許文献３】特開２００６−２６０４７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１、特許文献２に記載の手法では、各マスタの性能要件を満たすことができても、メモリの帯域を最適化できているわけではない。メモリの帯域を最適化できていないため、メモリの使用時間が長くなり、必要以上に電力を消費してしまう。
【０００９】
特許文献３に記載の手法では、メモリの帯域を最適化できても、各マスタの性能要件を満たせるとは限らない。
【００１０】
本発明はこうした課題に鑑みてなされたものであり、その目的は、各マスタの性能要件を満たしつつ、メモリの帯域を最適化することができるアクセス制御技術の提供にある。
【課題を解決するための手段】
【００１１】
本発明のある態様は制御装置に関する。この制御装置は、複数のマスタからメモリへのアクセスを制御する制御装置であって、複数のマスタからの複数のアクセス要求を取得する取得手段と、性能要件の充足に関するマスタの状態に応じて、アクセスの順序を決めるための異なる複数の方式のなかから使用する方式を選択する選択手段と、取得された複数のアクセス要求を、選択された方式にしたがう順序で実行する実行手段と、を備える。
【発明の効果】
【００１２】
本発明によれば、各マスタの性能要件を満たしつつ、メモリの帯域を最適化することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態に係るバスシステムの機能および構成を示すブロック図。
【図２】図１の順序制御回路の機能および構成を示すブロック図。
【図３】図３（ａ）〜（ｃ）は、マスタの性能要件と緊急度との関係を示す図。
【図４】各アクセスの前後関係によるオーバヘッドの定義の一例を示す図。
【図５】アクセス順序制御の方式が動的に切り替わる様子を示す波形図。
【図６】図６（ａ）〜（ｇ）は、図５の各タイミングにおける内部状態を示す図。
【図７】第２の実施の形態に係るバスシステムの機能および構成を示すブロック図。
【図８】アクセス順序制御の方式が動的に切り替わる様子を示す波形図。
【図９】図９（ａ）〜（ｈ）は、図８の各タイミングにおける内部状態を示す図。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る発明を限定するものではない。実施の形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【００１５】
実施の形態に係るバスシステムは、マスタからメモリへのアクセスの順序または順番を決定する異なる複数のアクセス順序制御方式を有する。バスシステムでは、アクセスの緊急の度合いに応じて、複数のアクセス順序制御方式のなかから使用するアクセス順序制御方式を選択する。これにより、マスタの性能要件を充足するために緊急の対応が必要な場合はそれに応じたアクセス順序制御方式を用いることができ、そうでない平時は例えばメモリ帯域を最適化するアクセス順序制御方式を用いることができる。
【００１６】
これにより、各マスタの性能要件を満たしつつ、メモリの帯域を最適化するため、処理全体を早く完了することができる。その結果、メモリ使用時間が短くなり、電力を削減できる。または、新たな処理を追加して、高機能化・高性能化を図ることができる。
【００１７】
（第１の実施の形態）
図１は、第１の実施の形態に係るバスシステム２の機能および構成を示すブロック図である。バスシステム２は、複数の（図１の例では５つの）マスタ５０１、５０２、５０３、５０４、５０５と、メモリアクセス制御回路１００と、メモリ９００と、を備える。バスシステム２は例えば印刷機能およびスキャン機能を有する複合機で用いられる。各マスタはメモリアクセス制御回路１００を介してメモリ９００にアクセスし、メモリ９００からのデータの読み出し（以下、リードとも称される）やメモリ９００へのデータの書き込み（以下、ライトとも称される）を行う。
【００１８】
メモリ９００は、ＤＲＡＭであり、ページの切り替わり時や、リードとライトとの間でのディレクション（方向）の切り替わり時にオーバヘッドが生じるものである。他の実施の形態では、メモリはＳＲＡＭ、ＦＬＡＳＨメモリ、ＨＤＤ、ＳＳＤなどであってもよく、オーバヘッドはメモリの種類に応じて適宜定義されてもよい。
【００１９】
メモリアクセス制御回路１００は、複数のマスタ５０１〜５０５からメモリ９００へのアクセスを制御する。メモリアクセス制御回路１００は、アービタ２０１と、アクセスキュー２０２と、メモリＩＦ２０３と、順序制御回路２０４と、を含む。
【００２０】
マスタはメモリ９００に対してアクセス要求を送信することで、メモリ９００へのアクセスを行う。アービタ２０１は、複数のマスタ５０１〜５０５からのメモリ９００へのアクセスを調停する。アービタ２０１は、複数のマスタ５０１〜５０５からのメモリ９００への複数のアクセス要求を取得する。
【００２１】
アクセスキュー２０２は、アービタ２０１により調停された複数のアクセスに係る複数のアクセス要求を保持する。アクセスキュー２０２は順序制御回路２０４によって制御され、順序制御回路２０４によって選択されたアクセス要求をメモリＩＦ２０３に送信する。アクセスキュー２０２は、保持されるアクセス要求ごとに、該アクセス要求の送信元のマスタ５０１〜５０５を識別するためのマスタ識別子と、メモリ９００へのアクセスのディレクションと、を保持する。アクセスキュー２０２は、更に、該アクセス要求によるアクセスの対象となるメモリ９００のバンクおよびページ番号と、該アクセス要求が保持されてからの経過時間と、を保持する。
【００２２】
順序制御回路２０４は、性能要件の充足に関する各マスタの状態に応じて、メモリ９００へのアクセスの順序を決めるための異なる複数のアクセス順序制御方式のなかから使用するアクセス順序制御方式を選択する。順序制御回路２０４は、選択されたアクセス順序制御方式にしたがい、アクセスキュー２０２が保持する複数のアクセス要求のなかから、実行対象のアクセス要求を選択する。
【００２３】
メモリＩＦ２０３は、アービタ２０１によって取得された複数のアクセス要求を、順序制御回路２０４によって選択されたアクセス順序制御方式にしたがう順序で実行する。メモリＩＦ２０３は、アクセスキュー２０２から受信した、実行対象のアクセス要求をメモリ９００の仕様を満たす形にしてメモリ９００に送信する。また、メモリＩＦ２０３は、次のアクセス要求が実行できるようになるまで次のアクセス要求を送信しないようにアクセスキュー２０２に通知する。
【００２４】
図２は、図１の順序制御回路２０４の機能および構成を示すブロック図である。順序制御回路２０４は、オーバヘッド導出回路３０１と、緊急度導出回路３０２と、第１選択回路３０３と、第２選択回路３０４と、方式選択回路３０５と、比較回路３０６と、緊急度閾値レジスタ３０７と、を含む。
【００２５】
オーバヘッド導出回路３０１は、アクセスキュー２０２に保持される各アクセス要求について、該アクセス要求を実行する際に発生するオーバヘッドを導出する。このオーバヘッドは、メモリ９００のページが切り替わる際に発生するオーバヘッドと、メモリ９００へのアクセスのディレクションがリードとライトとの間で切り替わる際に発生するオーバヘッドと、に基づき導出される。オーバヘッド導出回路３０１は、アクセス要求ごとに導出されたオーバヘッドを第１選択回路３０３に出力する。
【００２６】
オーバヘッド導出回路３０１は、メモリ９００を構成するバンクごとに、該バンクへのアクセスの履歴を管理し、バンクごとにページ切り替わり時のオーバヘッドを導出する。また、オーバヘッド導出回路３０１は、直近に実行されたメモリ９００へのアクセスのディレクションを管理し、ディレクション切り替わり時のオーバヘッドを導出する。オーバヘッド導出回路３０１は、アクセスキュー２０２に保持される各アクセス要求に対して、該アクセス要求のオーバヘッドを出力する。すなわち、該回路３０１は、ページ切り替わり時のオーバヘッドと、ディレクション切り替わり時のオーバヘッドと、のうちの大きい方（または、オーバヘッドの最大値）を、該アクセス要求のオーバヘッドとして出力する。
【００２７】
第１選択回路３０３は、オーバヘッドに応じてアクセスの順序を決めるためのオーバヘッドベース方式にしたがい、アクセスキュー２０２に保持される複数のアクセス要求のなかからひとつのアクセス要求を選択する。具体的には、第１選択回路３０３は、オーバヘッド導出回路３０１によって導出されたオーバヘッドが最も小さいアクセス要求を選択するための選択信号を生成し、方式選択回路３０５に出力する。
【００２８】
緊急度導出回路３０２は、アクセスキュー２０２に保持される各アクセス要求の送信元のマスタの性能要件の充足に対する緊急度を導出する。緊急度導出回路３０２は、アクセス要求ごとに導出された緊急度を第２選択回路３０４および比較回路３０６に出力する。
【００２９】
緊急度導出回路３０２は、アクセスキュー２０２に保持される各アクセス要求に対応するマスタの緊急度を、該アクセス要求の緊急度として出力する。緊急度導出回路３０２は、各マスタについて、所定期間におけるデータ処理の進行状況に基づいて緊急度を導出する。具体的には、緊急度導出回路３０２は、マスタ５０２〜５０５のアクセス期間とアクセスデータ量とを管理し、所定期間内に期待するアクセスデータ量を処理できているかを監視することにより緊急度を決定する。緊急度導出回路３０２は、アクセスキュー２０２に保持される各アクセス要求のマスタ識別子が特定するマスタの緊急度を、該アクセス要求の緊急度として出力する。
【００３０】
緊急度導出回路３０２は、マスタ５０１について、マスタ５０１の性能要件の充足に関して許容される残り時間によって緊急度を導出する。具体的には、緊急度導出回路３０２は、マスタ５０１からのアクセス要求に関しては、アクセス要求の待ち時間が予め設定された許容される残り時間を過ぎていないかを監視することにより緊急度を決定する。
【００３１】
第２選択回路３０４は、緊急度に応じてアクセスの順序を決めるための緊急度ベース方式にしたがい、アクセスキュー２０２に保持される複数のアクセス要求のなかからひとつのアクセス要求を選択する。具体的には、第２選択回路３０４は、緊急度導出回路３０２によって導出された緊急度が最も大きいアクセス要求を選択するための選択信号を生成し、方式選択回路３０５に出力する。
【００３２】
緊急度閾値レジスタ３０７は予め定められた緊急度の閾値を保持する。
比較回路３０６は、緊急度導出回路３０２によって導出された緊急度と、緊急度閾値レジスタ３０７に保持される閾値と、を比較する。比較回路３０６は比較の結果を示す比較結果信号を方式選択回路３０５に出力する。
【００３３】
方式選択回路３０５は、緊急度導出回路３０２によって導出された緊急度が所定の基準を満たす場合、緊急度ベース方式を選択し、そうでなければオーバヘッドベース方式を選択する。方式選択回路３０５は、比較回路３０６から受信する比較結果信号が、緊急度導出回路３０２によってアクセス要求ごとに導出された緊急度のなかに閾値以上のものがあることを示す場合、第２選択回路３０４によって出力される選択信号を選択する。そして、方式選択回路３０５は選択された選択信号をアクセスキュー２０２に出力する。方式選択回路３０５は、第２選択回路３０４によって出力される選択信号を選択しない場合、以下の処理を行う。すなわち、緊急度導出回路３０２によってアクセス要求ごとに導出された緊急度のなかに閾値以上のものがない場合、第１選択回路３０３によって出力される選択信号を選択する。そして、選択された選択信号をアクセスキュー２０２に出力する。
【００３４】
図３（ａ）〜（ｃ）は、マスタ５０１〜５０５の性能要件と緊急度との関係を示す。ここでは、説明を簡単にするために、マスタ５０１〜５０５の１回のアクセスでやりとりされるデータの量はいずれも同じであるものとする。また、アクセス１回あたり８サイクル消費するものとする。
【００３５】
図３（ａ）を参照すると、マスタ５０１からのアクセスは、短時間で処理されることが期待される。ただし、そのアクセスは不定期に発生する。そのため、アクセスが開始されたときの緊急度（以降、ＱｏＳという）を０とし、その後１５０サイクル経過するとＱｏＳが１に変化するものとする。
【００３６】
図３（ｂ）を参照すると、マスタ５０２、マスタ５０５からのアクセスは、比較的短い期間に決められた量のデータが繰り返し処理されることが期待される。ここでは、３００サイクルに２回のアクセスが処理できることを期待するものとする。（処理されたアクセス回数／経過時間）の値を毎サイクル導出し、その値が（２／３００）＝（１／１５０）以上であればＱｏＳを０にし、それ未満であればＱｏＳを１にするものとする。
【００３７】
図３（ｃ）を参照すると、マスタ５０３、マスタ５０４からのアクセスは、比較的長い期間に決められた量のデータが処理されることが期待される。ここでは、２４００サイクルに１６回のアクセスが処理できることを期待するものとする。（処理されたアクセス回数／経過時間）の値を毎サイクル導出し、その値が（１６／２４００）＝（１／１５０）以上であればＱｏＳを０にし、それ以下であればＱｏＳを１にするものとする。
【００３８】
本実施の形態では、緊急度の閾値を１として説明する。つまり、ＱｏＳが１のアクセス要求がある場合、順序制御回路２０４は、緊急度ベース方式を用いたアクセス順序制御を実施し、ＱｏＳが１のアクセスがない場合、オーバヘッドベース方式を用いたアクセス順序制御を実施する。
【００３９】
図４は、各アクセスの前後関係によるオーバヘッドの定義の一例を示す図である。Ｄｉｒは直近で実行されたアクセスとこれから選択するアクセスとの関係を示す。ＲＤはリード（読み出し）を、ＷＲはライト（書き込み）を、それぞれ表す。リードからリードへの場合を例に他の列の意味を説明する。Ｂａｎｋは直近で実行されたアクセスとこれから選択するアクセスとでバンクが一致するかを示す。Ｓａｍｅは一致することを、Ｄｉｆｆｅｒｅｎｔは異なることを、それぞれ示す。バンクが一致する場合、Ｒｏｗは直近で実行されたアクセスとこれから選択するアクセスとでページが一致するかを示す。ページが一致する場合、オーバヘッドは０サイクルと定義される。ページが一致しない場合、オーバヘッドは３３サイクルと定義される。
【００４０】
バンクが一致しない場合（Ｄｉｆｆｅｒｅｎｔ）、Ｒｏｗは同じバンクに直近で実行されたアクセスとこれから選択するアクセスとでページが一致するかを示す。ページが一致する場合、オーバヘッドは０サイクルと定義される。ページが一致しない場合、オーバヘッドは３０サイクルと定義される。
リードからライト、ライトからリード、ライトからライトの場合もＢａｎｋ、Ｒｏｗ、Ｏｖｅｒｈｅａｄ（オーバヘッド）はリードからリードと同様の意味を有する。
【００４１】
図５は、アクセス順序制御の方式が動的に切り替わる様子を示す波形図である。Ｐｕｓｈはアクセスキュー２０２に新たなアクセス要求が保持されるタイミングを示す。Ｐｏｐはアクセスキュー２０２からアクセス要求を選択して実行するタイミングを示す。Ｉｄｘはアクセスキュー２０２のどのアクセス要求を実行するかを示す。Ｏｒｄｅｒｉｎｇは順序制御回路２０４が緊急度ベース方式を用いたアクセス順序制御を実施する場合を「ＱｏＳ」、オーバヘッドベース方式を用いたアクセス順序制御を実施する場合を「Ｏｖｅｒｈｅａｄ」で表す。
【００４２】
図６（ａ）〜（ｇ）は、図５の各タイミングにおける内部状態を示す図である。図６（ａ）〜（ｇ）はそれぞれ、図５のｔ＝Ｔａ、Ｔｂ、Ｔｃ、Ｔｄ、Ｔｅ、Ｔｆ、Ｔｇにおける、各種内部状態を示す。以下に各項目を左から順に説明する。なお、アクセスキュー２０２の段数は５段であるものとする。また、アクセスキュー２０２は、アクセス要求が選択されると、それより後方に保持されているアクセス要求が１つ前にシフトし、新しいアクセス要求が必ず最後尾に追加されるタイプのキューであるものとする。
【００４３】
・ＬａｓｔＤｉｒ：オーバヘッド導出回路３０１が管理する、メモリ９００に対して直近で実行されたアクセスのディレクション。 
・Ｆｌａｇ：オーバヘッド導出回路３０１が管理する、バンクごとのアクセスの履歴。具体的には、バンク（ＢＡ）ごとにアクティベートされたページ番号（ＲＡ）が保持され、そのなかでも直近でアクセスしたバンクにフラグ（Ｆｌａｇ）が立てられる（登録される）。
・Ｍｓｔ、Ｔｉｍｅ、Ｃｎｔ、ＭｓｔＱｏＳ：緊急度導出回路３０２が管理する、各マスタ（Ｍｓｔ）の計測期間（Ｔｉｍｅ）とアクセス成立回数（Ｃｎｔ）と緊急度（ＭｓｔＱｏＳ）。
・Ｉｄｘ、ＭＩＤ、Ｄｉｒ、Ｂａｎｋ、Ｒｏｗ、Ｗａｉｔ：アクセスキュー２０２が保持する、各アクセス要求のアクセスキュー２０２の中での位置を示す番号（Ｉｄｘ）、該アクセス要求の送信元のマスタを特定するマスタ識別子（ＭＩＤ）、該アクセス要求のディレクション（Ｄｉｒ）、バンク（Ｂａｎｋ）、ページ番号（Ｒｏｗ）、経過時間（Ｗａｉｔ）。
・ＱｏＳ、Ｏｖｅｒｈｅａｄ：緊急度導出回路３０２が出力する各アクセス要求の緊急度（ＱｏＳ）、オーバヘッド導出回路３０１が出力する各アクセス要求のオーバヘッド。
【００４４】
図６（ａ）を参照すると、ｔ＝Ｔａにおいて、アクセスキュー２０２のＩｄｘ＝１のアクセス要求が選択される。このとき、緊急度導出回路３０２は、マスタ５０５について（Ｃｎｔ／Ｔｉｍｅ）＝（０／９４）＜（１／１５０）なので、マスタ５０５のＭｓｔＱｏＳ＝１にする。マスタ５０２〜５０４は（Ｃｎｔ／Ｔｉｍｅ）＝（１／９４）＞（１／１５０）なので、マスタ５０２〜５０４のＭｓｔＱｏＳ＝０にする。さらに、緊急度導出回路３０２は各アクセス要求のＭＩＤに対応するマスタのＭｓｔＱｏＳを各アクセス要求のＱｏＳとして出力する。また、ＭＩＤ＝５０１であるＩｄｘ＝０のアクセス要求はＷａｉｔ＜１５０なので、緊急度導出回路３０２はＩｄｘ＝０のアクセス要求のＱｏＳ＝０にする。
【００４５】
緊急度閾値レジスタ３０７は閾値＝１を比較回路３０６に出力する。比較回路３０６は、緊急度閾値レジスタ３０７から受信した閾値＝１と、緊急度導出回路３０２から受信した各アクセス要求のＱｏＳと、を比較する。比較回路３０６は比較の結果を比較結果信号として方式選択回路３０５に出力する。
【００４６】
方式選択回路３０５は、比較回路３０６から受信した比較結果信号がＱｏＳ＝１のアクセス要求があることを示すので、第２選択回路３０４の出力を選択し、アクセスキュー２０２に通知する。第２選択回路３０４は、ＱｏＳ＝１であるＩｄｘ＝１のアクセス要求を選択するための選択信号を生成する。アクセスキュー２０２は、選択信号にしたがい、Ｉｄｘ＝１のアクセス要求を取り出す。このアクセス要求のオーバヘッドは８であるため、次のアクセス要求は８＋８＝１６サイクル後のｔ＝Ｔｂに選択可能となる。
【００４７】
次のサイクルにおいて、緊急度導出回路３０２は、マスタ５０５のＣｎｔ＝１、ＭｓｔＱｏＳ＝０にする。さらに、方式選択回路３０５は、比較結果信号がＱｏＳ＝１のアクセス要求がなくなったことを示すので、第１選択回路３０３の出力を選択する。
【００４８】
図６（ｂ）を参照すると、ｔ＝Ｔｂにおいて、アクセスキュー２０２のＩｄｘ＝２のアクセス要求が選択される。このとき、緊急度導出回路３０２は、マスタ５０２〜５０５について（Ｃｎｔ／Ｔｉｍｅ）＝（１／１１０）＞（１／１５０）なので、マスタ５０２〜５０５のＭｓｔＱｏＳ＝０にする。さらに、緊急度導出回路３０２は各アクセス要求のＭＩＤに対応するマスタのＭｓｔＱｏＳを各アクセス要求のＱｏＳとして出力する。また、緊急度導出回路３０２は、ＭＩＤ＝５０１であるＩｄｘ＝０のアクセス要求はＷａｉｔ＜１５０なので、Ｉｄｘ＝０のアクセス要求のＱｏＳ＝０にする。
【００４９】
方式選択回路３０５は、比較回路３０６から受信した比較結果信号がＱｏＳ＝１のアクセス要求がないことを示すので、第１選択回路３０３の出力を選択し、アクセスキュー２０２に通知する。第１選択回路３０３は、Ｏｖｅｒｈｅａｄが最小であるＩｄｘ＝２またはＩｄｘ＝４のアクセス要求を選択する。ここでは第１選択回路３０３はＩｄｘがより小さいＩｄｘ＝２のアクセス要求を選択するものとする。第１選択回路３０３は、Ｉｄｘ＝２のアクセス要求を選択するための選択信号を生成する。アクセスキュー２０２は、選択信号にしたがい、Ｉｄｘ＝２のアクセス要求を取り出す。このアクセス要求のオーバヘッドは１９であるため、次のアクセス要求は８＋１９＝２７サイクル後のｔ＝Ｔｃに選択可能となる。
【００５０】
図６（ｃ）を参照すると、ｔ＝Ｔｃにおいて、アクセスキュー２０２のＩｄｘ＝３のアクセス要求が選択される。このとき、緊急度導出回路３０２は、マスタ５０２〜５０５について（Ｃｎｔ／Ｔｉｍｅ）＝（１／１３７）＞（１／１５０）なので、マスタ５０２〜５０５のＭｓｔＱｏＳ＝０にする。さらに、緊急度導出回路３０２は各アクセス要求のＭＩＤに対応するマスタのＭｓｔＱｏＳを各アクセス要求のＱｏＳとして出力する。また、緊急度導出回路３０２は、ＭＩＤ＝５０１であるＩｄｘ＝０のアクセス要求はＷａｉｔ＜１５０なので、Ｉｄｘ＝０のアクセス要求のＱｏＳ＝０にする。
【００５１】
方式選択回路３０５は、比較回路３０６から受信した比較結果信号がＱｏＳ＝１のアクセス要求がないことを示すので、第１選択回路３０３の出力を選択し、アクセスキュー２０２に通知する。第１選択回路３０３は、Ｏｖｅｒｈｅａｄが最小でＩｄｘが最小であるＩｄｘ＝３のアクセス要求を選択するための選択信号を生成する。アクセスキュー２０２は、選択信号にしたがい、Ｉｄｘ＝３のアクセス要求を取り出す。このアクセス要求のオーバヘッドは０であるため、次のアクセス要求は８＋０＝８サイクル後のｔ＝Ｔｄに選択可能となる。
【００５２】
図６（ｄ）を参照すると、ｔ＝Ｔｄにおいて、アクセスキュー２０２のＩｄｘ＝４のアクセス要求が選択される。このとき、緊急度導出回路３０２は、マスタ５０２〜５０５について（Ｃｎｔ／Ｔｉｍｅ）＝（１／１４５）＞（１／１５０）なので、マスタ５０２〜５０５のＭｓｔＱｏＳ＝０にする。さらに、緊急度導出回路３０２は各アクセス要求のＭＩＤに対応するマスタのＭｓｔＱｏＳを各アクセス要求のＱｏＳとして出力する。また、緊急度導出回路３０２は、ＭＩＤ＝５０１であるＩｄｘ＝０のアクセス要求はＷａｉｔ＜１５０なので、Ｉｄｘ＝０のアクセス要求のＱｏＳ＝０にする。
【００５３】
方式選択回路３０５は、比較回路３０６から受信した比較結果信号がＱｏＳ＝１のアクセス要求がないことを示すので、第１選択回路３０３の出力を選択し、アクセスキュー２０２に通知する。第１選択回路３０３は、Ｏｖｅｒｈｅａｄが最小でＩｄｘが最小であるＩｄｘ＝４のアクセス要求を選択するための選択信号を生成する。アクセスキュー２０２は、選択信号にしたがい、Ｉｄｘ＝４のアクセス要求を取り出す。このアクセス要求のオーバヘッドは０であるため、次のアクセス要求は８＋０＝８サイクル後のｔ＝Ｔｆに選択可能となる。
【００５４】
図６（ｅ）を参照すると、ｔ＝Ｔｅにおいて、緊急度導出回路３０２は、マスタ５０２、マスタ５０３、マスタ５０５について（Ｃｎｔ／Ｔｉｍｅ）＝（１／１５１）＜（１／１５０）となる。よって、マスタ５０２、マスタ５０３、マスタ５０５のＭｓｔＱｏＳ＝１にする。さらに、緊急度導出回路３０２は各アクセス要求のＭＩＤに対応するマスタのＭｓｔＱｏＳを各アクセス要求のＱｏＳとして出力する。また、緊急度導出回路３０２は、ＭＩＤ＝５０１であるＩｄｘ＝０のアクセス要求はＷａｉｔ＜１５０なので、Ｉｄｘ＝０のアクセス要求のＱｏＳ＝０にする。
【００５５】
方式選択回路３０５は、比較回路３０６から受信した比較結果信号がＱｏＳ＝１のアクセス要求があることを示すので、第２選択回路３０４の出力を選択する。
【００５６】
図６（ｆ）を参照すると、ｔ＝Ｔｆにおいて、アクセスキュー２０２のＩｄｘ＝１のアクセス要求が選択される。このとき、緊急度導出回路３０２は、マスタ５０２、マスタ５０３、マスタ５０５について（Ｃｎｔ／Ｔｉｍｅ）＝（１／１５３）＜（１／１５０）なので、マスタ５０２、マスタ５０３、マスタ５０５のＭｓｔＱｏＳ＝１にする。さらに、緊急度導出回路３０２は各アクセス要求のＭＩＤに対応するマスタのＭｓｔＱｏＳを各アクセス要求のＱｏＳとして出力する。また、緊急度導出回路３０２はＭＩＤ＝５０１であるＩｄｘ＝０のアクセス要求はＷａｉｔ＜１５０なので、Ｉｄｘ＝０のアクセス要求のＱｏＳ＝０にする。
【００５７】
方式選択回路３０５は、比較回路３０６から受信した比較結果信号がＱｏＳ＝１のアクセス要求があることを示すので、第２選択回路３０４の出力を選択し、アクセスキュー２０２に通知する。第２選択回路３０４は、ＱｏＳ＝１であるＩｄｘ＝１またはＩｄｘ＝２またはＩｄｘ＝３のアクセス要求を選択する。ここでは第２選択回路３０４はＩｄｘが最小であるＩｄｘ＝１のアクセスを選択するものとする。第２選択回路３０４は、Ｉｄｘ＝１のアクセス要求を選択するための選択信号を生成する。アクセスキュー２０２は、選択信号にしたがい、Ｉｄｘ＝１のアクセス要求を取り出す。このアクセス要求のオーバヘッドは３３であるため、次のアクセス要求は８＋３３＝４１サイクル後のｔ＝Ｔｇに選択可能となる。
【００５８】
図６（ｇ）を参照すると、ｔ＝Ｔｇにおいて、アクセスキュー２０２のＩｄｘ＝０のアクセス要求が選択される。緊急度導出回路３０２は、マスタ５０２、マスタ５０５について（Ｃｎｔ／Ｔｉｍｅ）＝（１／１９４）＜（１／１５０）なので、マスタ５０２、マスタ５０５のＭｓｔＱｏＳ＝１にする。さらに、緊急度導出回路３０２は各アクセス要求のＭＩＤに対応するマスタのＭｓｔＱｏＳを各アクセス要求のＱｏＳとして出力する。また、緊急度導出回路３０２は、ＭＩＤ＝５０１であるＩｄｘ＝０のアクセス要求はＷａｉｔ＞１５０なので、Ｉｄｘ＝０のアクセス要求のＱｏＳ＝１にする。
【００５９】
方式選択回路３０５は、比較回路３０６から受信した比較結果信号がＱｏＳ＝１のアクセス要求があることを示すので、第２選択回路３０４の出力を選択し、アクセスキュー２０２に通知する。第２選択回路３０４は、ＱｏＳ＝１でありＩｄｘが最小であるＩｄｘ＝０のアクセス要求を選択するための選択信号を生成する。アクセスキュー２０２は、選択信号にしたがい、Ｉｄｘ＝０のアクセス要求を取り出す。このアクセス要求のオーバヘッドは３０であるため、次のアクセス要求は８＋３０＝３８サイクル後に選択可能となる。
【００６０】
このように、本実施の形態に係るバスシステム２によると、緊急度を用いたアクセス順序制御とオーバヘッドを用いたアクセス順序制御とを、緊急度に応じて動的に切り替えることが可能である。その結果、各マスタの性能要件を満たしつつ、メモリの帯域を最適化することが可能となる。
【００６１】
また、本実施の形態に係るバスシステム２では、動的に変化するメモリアクセスの緊急度に応じて複数のアクセス順序制御方式を動的に切り替えることで、マスタの性能要件を満たしつつメモリの帯域を最適化することができる。
【００６２】
（第２の実施の形態）
図７は、第２の実施の形態に係るバスシステム４の機能および構成を示すブロック図である。バスシステム４は、複数の（図７の例では５つの）マスタ５０１、５０２、５０３、５０４、５０５と、メモリアクセス制御回路１１０と、メモリ９００と、を備える。メモリアクセス制御回路１１０は、アービタ２１１と、メモリＩＦ２０３と、順序制御回路２０４と、を含む。マスタ５０１〜５０５、メモリＩＦ２０３、メモリ９００、順序制御回路２０４は図１に示されるものと同じである。
【００６３】
メモリアクセス制御回路１１０は、アービタ２１１の調停に順序制御回路２０４を用いる。順序制御回路２０４は、アービタ２１１が扱っている複数のアクセス要求のなかから実行するアクセス要求を選択する。アービタ２１１は、選択されたアクセス要求をメモリＩＦ２０３に送信する。
【００６４】
アービタ２１１は、受信したアクセス要求ごとに、該アクセス要求の送信元のマスタ５０１〜５０５を識別するためのマスタ識別子と、メモリ９００へのアクセスのディレクションと、該アクセス要求によるアクセスの対象となるメモリ９００のバンクおよびページ番号と、該アクセス要求が受信されてからの経過時間と、を保持する。マスタ５０１〜５０５の性能要件と緊急度との関係は図３に示されるものと同じとし、各アクセスの前後関係によるオーバヘッドの定義は図４に示されるものと同じとする。
【００６５】
図８は、アクセス順序制御の方式が動的に切り替わる様子を示す波形図である。Ｒｅｑ１〜Ｒｅｑ５はそれぞれマスタ５０１〜５０５からのアクセス要求の有無を示し、Ｈレベルであればアクセス要求があることを、Ｌレベルであればアクセス要求がないことを示す。Ａｃｋはアービタ２１１がどのマスタのアクセス要求を選択したかを示す。Ｏｒｄｅｒｉｎｇは順序制御回路２０４が緊急度ベース方式を用いたアクセス順序制御、オーバヘッドベース方式を用いたアクセス順序制御、のいずれのアクセス順序制御を実施するかを示す。
【００６６】
図９（ａ）〜（ｈ）は、図８の各タイミングにおける内部状態を示す図である。図９（ａ）〜（ｈ）はそれぞれ、図８のｔ＝Ｔａ、Ｔｂ、Ｔｃ、Ｔｄ、Ｔｅ、Ｔｆ、Ｔｇ、Ｔｈにおける、各種内部状態を示す。以下に各項目を左から順に説明する。
・ＬａｓｔＤｉｒ：オーバヘッド導出回路３０１が管理する、メモリ９００に対して直近で実行されたアクセスのディレクション。
・Ｆｌａｇ：オーバヘッド導出回路３０１が管理する、バンクごとのアクセスの履歴。具体的には、バンク（ＢＡ）ごとにアクティベートされたページ番号（ＲＡ）が保持され、そのなかでも直近でアクセスしたバンクにフラグ（Ｆｌａｇ）が立てられる（登録される）。
・Ｍｓｔ、Ｔｉｍｅ、Ｃｎｔ、ＭｓｔＱｏＳ：緊急度導出回路３０２が管理する、各マスタ（Ｍｓｔ）の計測期間（Ｔｉｍｅ）とアクセス成立回数（Ｃｎｔ）と緊急度（ＭｓｔＱｏＳ）。
・Ｒｅｑ、ＭＩＤ、Ｄｉｒ、Ｂａｎｋ、Ｒｏｗ、Ｗａｉｔ：アービタ２１１が受信しているアクセス要求の内容。具体的には、図８に記載のＲｅｑ番号（Ｒｅｑ）、Ｒｅｑに対応するアクセス要求の送信元のマスタを特定するマスタ識別子（ＭＩＤ）、該アクセス要求のディレクション（Ｄｉｒ）、バンク（Ｂａｎｋ）、ページ番号（Ｒｏｗ）、経過時間（Ｗａｉｔ）。
・ＱｏＳ、Ｏｖｅｒｈｅａｄ：緊急度導出回路３０２が出力する各アクセス要求の緊急度（ＱｏＳ）、オーバヘッド導出回路３０１が出力する各アクセス要求のオーバヘッド。
【００６７】
図９（ａ）を参照すると、ｔ＝Ｔａにおいて、Ａｃｋ＝５となり、マスタ５０５のアクセス要求が選択される。このとき、緊急度導出回路３０２は、マスタ５０５について（Ｃｎｔ／Ｔｉｍｅ）＝（０／９４）＜（１／１５０）なので、マスタ５０５のＭｓｔＱｏＳ＝１にする。マスタ５０２〜５０４については（Ｃｎｔ／Ｔｉｍｅ）＝（１／９４）＞（１／１５０）なので、緊急度導出回路３０２はマスタ５０２〜５０４のＭｓｔＱｏＳ＝０にする。さらに、緊急度導出回路３０２は、各Ｒｅｑに対応するマスタのＭｓｔＱｏＳを各ＲｅｑのＱｏＳとして出力する。また、緊急度導出回路３０２は、ＭＩＤ＝５０１であるＲｅｑ＝１のアクセス要求はＷａｉｔ＜１５０なので、ＱｏＳ＝０にする。
【００６８】
方式選択回路３０５は、比較回路３０６から受信した比較結果信号がＱｏＳ＝１のアクセス要求があることを示すので、第２選択回路３０４の出力を選択し、アービタ２１１に通知する。第２選択回路３０４は、ＱｏＳ＝１であるＲｅｑ＝５のアクセス要求を選択するための選択信号を生成する。アービタ２１１は、選択信号にしたがい、Ａｃｋ＝５を出力する。また、このアクセス要求のオーバヘッドは８であるため、次のアクセス要求は８＋８＝１６サイクル後のｔ＝Ｔｂに選択可能となる。
【００６９】
次のサイクルにおいて、緊急度導出回路３０２は、マスタ５０５についてＭｓｔＱｏＳ＝０にする。さらに、方式選択回路３０５は、比較回路３０６から受信した比較結果信号がＱｏＳ＝１のアクセス要求がないことを示すので、第１選択回路３０３の出力を選択する。
【００７０】
図９（ｂ）を参照すると、ｔ＝Ｔｂにおいて、Ａｃｋ＝２となり、マスタ５０２のアクセス要求が選択される。このとき、緊急度導出回路３０２は、マスタ５０２〜５０５について（Ｃｎｔ／Ｔｉｍｅ）＝（１／１１０）＞（１／１５０）なので、マスタ５０２〜５０５のＭｓｔＱｏＳ＝０にする。さらに、緊急度導出回路３０２は、各ＲｅｑのＭＩＤに対応するマスタのＭｓｔＱｏＳを各ＲｅｑのＱｏＳとして出力する。また、緊急度導出回路３０２は、ＭＩＤ＝５０１であるＲｅｑ＝１のアクセス要求はＷａｉｔ＜１５０なので、ＱｏＳ＝０にする。
【００７１】
方式選択回路３０５は、比較回路３０６から受信した比較結果信号がＱｏＳ＝１のアクセス要求がないことを示すので、第１選択回路３０３の出力を選択し、アービタ２１１に通知する。第１選択回路３０３は、Ｏｖｅｒｈｅａｄが最小であるＲｅｑ＝２またはＲｅｑ＝４のアクセスを選択する。ここでは第１選択回路３０３はＲｅｑが最小のＲｅｑ＝２のアクセスを選択するための選択信号を生成する。アービタ２１１は、選択信号にしたがい、Ａｃｋ＝２を出力する。また、このアクセス要求のオーバヘッドは１９であるため、次のアクセス要求は８＋１９＝２７サイクル後のｔ＝Ｔｃに選択可能となる。
【００７２】
図９（ｃ）を参照すると、ｔ＝Ｔｃにおいて、Ａｃｋ＝４となり、マスタ５０４のアクセス要求が選択される。このとき、緊急度導出回路３０２は、マスタ５０２〜５０５について（Ｃｎｔ／Ｔｉｍｅ）＝（１／１３７）＞（１／１５０）なので、マスタ５０２〜５０５のＭｓｔＱｏＳ＝０にする。さらに、緊急度導出回路３０２は、各ＲｅｑのＭＩＤに対応するマスタのＭｓｔＱｏＳを各ＲｅｑのＱｏＳとして出力する。また、緊急度導出回路３０２は、ＭＩＤ＝５０１であるＲｅｑ＝１のアクセス要求はＷａｉｔ＜１５０なので、ＱｏＳ＝０にする。
【００７３】
方式選択回路３０５は、比較回路３０６から受信した比較結果信号がＱｏＳ＝１のアクセス要求がないことを示すので、第１選択回路３０３の出力を選択し、アービタ２１１に通知する。第１選択回路３０３は、Ｏｖｅｒｈｅａｄが最小であるＲｅｑ＝４のアクセス要求を選択するための選択信号を生成する。アービタ２１１は、選択信号にしたがい、Ａｃｋ＝４を出力する。また、このアクセス要求のオーバヘッドは０であるため、次のアクセス要求は８＋０＝８サイクル後のｔ＝Ｔｄに選択可能となる。
【００７４】
図９（ｄ）を参照すると、ｔ＝Ｔｄにおいて、Ａｃｋ＝５となり、マスタ５０５のアクセス要求が選択される。このとき、緊急度導出回路３０２は、マスタ５０２〜５０５について（Ｃｎｔ／Ｔｉｍｅ）＝（１／１４５）＞（１／１５０）なので、マスタ５０２〜５０５のＭｓｔＱｏＳ＝０にする。さらに、緊急度導出回路３０２は、各ＲｅｑのＭＩＤに対応するマスタのＭｓｔＱｏＳを各ＲｅｑのＱｏＳとして出力する。また、緊急度導出回路３０２は、ＭＩＤ＝５０１であるＲｅｑ＝１のアクセス要求はＷａｉｔ＜１５０なので、ＱｏＳ＝０にする。
【００７５】
方式選択回路３０５は、比較回路３０６から受信した比較結果信号がＱｏＳ＝１のアクセス要求がないことを示すので、第１選択回路３０３の出力を選択し、アービタ２１１に通知する。第１選択回路３０３は、Ｏｖｅｒｈｅａｄが最小であるＲｅｑ＝５のアクセス要求を選択するための選択信号を生成する。アービタ２１１は、選択信号にしたがい、Ａｃｋ＝５を出力する。また、このアクセス要求のオーバヘッドは８であるため、次のアクセス要求は８＋８＝１６サイクル後のｔ＝Ｔｇに選択可能となる。
【００７６】
図９（ｅ）を参照すると、ｔ＝Ｔｅにおいて、緊急度導出回路３０２は、マスタ５０３について（Ｃｎｔ／Ｔｉｍｅ）＝（１／１５１）＜（１／１５０）なので、マスタ５０３のＭｓｔＱｏＳ＝１にする。
【００７７】
図９（ｆ）を参照すると、ｔ＝Ｔｆにおいて、緊急度導出回路３０２は、ＭＩＤ＝５０１であるＲｅｑ＝１のアクセス要求のＷａｉｔ＞１５０になったため、Ｒｅｑ＝１のアクセス要求のＱｏＳ＝１にする。
【００７８】
図９（ｇ）を参照すると、ｔ＝Ｔｇにおいて、Ａｃｋ＝１となり、マスタ５０１のアクセス要求が選択される。このとき、緊急度導出回路３０２は、マスタ５０３について（Ｃｎｔ／Ｔｉｍｅ）＝（０／１６１）＜（１／１５０）なので、マスタ５０３のＭｓｔＱｏＳ＝１にする。緊急度導出回路３０２は、マスタ５０２、マスタ５０４、マスタ５０５については（Ｃｎｔ／Ｔｉｍｅ）＝（２／１６１）＞（１／１５０）なので、マスタ５０２、マスタ５０４、マスタ５０５のＭｓｔＱｏＳ＝０にする。さらに、緊急度導出回路３０２は、各Ｒｅｑに対応するマスタのＭｓｔＱｏＳを各ＲｅｑのＱｏＳとして出力する。また、緊急度導出回路３０２は、ＭＩＤ＝５０１であるＲｅｑ＝１のアクセス要求はＷａｉｔ＞１５０なので、ＱｏＳ＝１にする。
【００７９】
方式選択回路３０５は、比較回路３０６から受信した比較結果信号がＱｏＳ＝１のアクセス要求があることを示すので、第２選択回路３０４の出力を選択し、アービタ２１１に通知する。第２選択回路３０４は、ＱｏＳ＝１であるＲｅｑ＝１またはＲｅｑ＝３のアクセスを選択する。ここでは第２選択回路３０４はＲｅｑが最小であるＲｅｑ＝１のアクセスを選択するための選択信号を生成する。アービタ２１１は、選択信号にしたがい、Ａｃｋ＝１を出力する。また、このアクセス要求のオーバヘッドは３０であるため、次のアクセス要求は８＋３０＝３８サイクル後のｔ＝Ｔｈに選択可能となる。
【００８０】
図９（ｈ）を参照すると、ｔ＝Ｔｈにおいて、Ａｃｋ＝３となり、マスタ５０３のアクセス要求が選択される。このとき、緊急度導出回路３０２は、マスタ５０３について（Ｃｎｔ／Ｔｉｍｅ）＝（０／１９９）＜（１／１５０）なので、マスタ５０３のＭｓｔＱｏＳ＝１にする。緊急度導出回路３０２は、マスタ５０２、マスタ５０４、マスタ５０５については（Ｃｎｔ／Ｔｉｍｅ）＝（２／１９９）＞（１／１５０）なので、マスタ５０２、マスタ５０４、マスタ５０５のＭｓｔＱｏＳ＝０にする。
【００８１】
方式選択回路３０５は、比較回路３０６から受信した比較結果信号がＱｏＳ＝１のアクセス要求があることを示すので、第２選択回路３０４の出力を選択し、アービタ２１１に通知する。第２選択回路３０４は、ＱｏＳ＝１であるＲｅｑ＝３のアクセスを選択するための選択信号を生成する。アービタ２１１は、選択信号にしたがい、Ａｃｋ＝３を出力する。また、このアクセス要求のオーバヘッドは３０であるため、次のアクセス要求は８＋３０＝３８サイクル後に選択可能となる。
【００８２】
次のサイクルにおいて、緊急度導出回路３０２は、マスタ５０３についてＭｓｔＱｏＳ＝０にする。さらに、方式選択回路３０５は、比較回路３０６から受信した比較結果信号がＱｏＳ＝１のアクセス要求がないことを示すので、第１選択回路３０３の出力を選択する。
【００８３】
このように、本実施の形態に係るバスシステム４によると、緊急度を用いたアクセス順序制御とオーバヘッドを用いたアクセス順序制御とを動的に切り替えることが可能である。その結果、各マスタの性能要件を満たしつつ、メモリの帯域を最適化することが可能となる。
【００８４】
以上、実施の形態に係るバスシステムの構成と動作について説明した。これらの実施の形態は例示であり、その各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００８５】
第１および第２の実施の形態では、緊急度をアクセスの経過時間やアクセスの実行状況から生成する場合を説明したが、これに限られず、例えば動的に変化するアクセスの緊急度を示す任意の指標が採用されてもよい。
【００８６】
第１および第２の実施の形態では、直近で実行されたアクセスと比較しながら図４のテーブルを参照してオーバヘッドを定義または生成する場合を説明したが、これに限られず、他の態様でオーバヘッドを定義または生成してもよい。例えば、オーバヘッド導出回路３０１によって導出されるオーバヘッドは、メモリ９００のリフレッシュ実行時に発生するオーバヘッドを含んでもよい。
【００８７】
第１および第２の実施の形態では、１回のアクセスで処理されるデータの量は同じであると仮定し、したがってアクセス成立回数（Ｃｎｔ）を処理されたデータの量を表す指標として用いたが、これに限られない。そのような仮定が成立しない場合でも、例えばアクセス成立回数（Ｃｎｔ）に代えてまたはそれに加えて、実際に処理されたデータの量である処理データの量を用いてもよい。この場合、緊急度導出回路３０２は、Ｎサイクル（Ｎ≧１）経過するごとに経過時間（Ｔｉｍｅに相当）を更新し、アクセス要求が実行対象として選択された際に処理データの量を更新し、処理データの量と経過時間との比率から緊急度を導出する。
【００８８】
あるいはまた、緊急度導出回路３０２は、Ｎサイクル（Ｎ≧１）経過するごとに経過時間（Ｔｉｍｅに相当）を更新し、アクセス要求の実行によるデータ転送が成立した際に処理データの量を更新する。そして、緊急度導出回路３０２は処理データの量と経過時間との比率から緊急度を導出してもよい。あるいはまた、緊急度導出回路３０２は、Ｎサイクル（Ｎ≧１）経過するごとに許容される残り時間を更新し、更新された残り時間から緊急度を導出してもよい。
【００８９】
第１および第２の実施の形態では、アクセスの順序を決めるための異なる複数の方式として緊急度ベース方式およびオーバヘッドベース方式を採用する場合を説明した。しかしながら、これに限られず、それら二つに代えてまたは加えて、ＦＩＦＯ、ＦＩＬＯ、ＬＩＦＯ、ラウンドロビン、ランダム、疑似ランダムなどの他の方式を採用してもよい。
【００９０】
発明は上記実施の形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【００９１】
２  バスシステム、  １００  メモリアクセス制御回路、  ２０１  アービタ、  ２０２  アクセスキュー、  ２０３  メモリＩＦ、  ２０４  順序制御回路、  ９００  メモリ。
【図１】
2020129205.tif 000003
【図２】
2020129205.tif 000004
【図３】
2020129205.tif 000005
【図４】
2020129205.tif 000006
【図５】
2020129205.tif 000007
【図６】
2020129205.tif 000008
【図７】
2020129205.tif 000009
【図８】
2020129205.tif 000010
【図９】
2020129205.tif 000011