(57)【要約】【課題】全体としてデータ転送能力を低下させず、かつ、転送データの損失を防止するバス調停装置およびバス調停方法を提供する。【解決手段】バスマスタの性質に応じて、緊急性が高い第１階層のバスマスタＢＭＧ＿１と、リアルタイムにデータ処理を行う必要がある第２の階層のバスマスタＢＭＧ＿２と、第１階層および第２階層のバスマスタのいずれでもない第３階層のバスマスタＢＭＧ＿３と、に対して、順に優先して調停を行う。【選択図】図２
2005316608.tif 000002
【特許請求の範囲】
【請求項１】
複数のバスマスタのデータ転送要求を調停し、前記複数のバスマスタの中からデータ転送を許可したバスマスタに対して、メモリバスへのアクセスを許可するバス調停装置であって、
前記複数のバスマスタのうち、前記データ転送要求からデータ転送を行うまでの遅延時間を保証する第１のバスマスタのデータ転送要求を調停する第１の調停手段と、
前記複数のバスマスタのうち、予め予測可能なデータ転送時間毎にデータ転送を行う第２のバスマスタのデータ転送要求を調停する第２の調停手段と、
前記複数のバスマスタのうち、前記第１のバスマスタおよび第２のバスマスタのいずれにも該当しない第３のバスマスタのデータ転送要求を調停する第３の調停手段と、を有し、
前記第１乃至第３の調停手段による調停を、前記第１の調停手段から順に優先的に実行する
バス調停装置。
【請求項２】
所定のデータ処理サイクルのうち、前記第１の調停手段が前記メモリバスを優先的に使用する比率を制御するバス使用比率制御手段を有し、
前記バス使用比率制御手段により決定される比率に基づいて、前記第１および第２の調停手段による調停を実行する
請求項１記載のバス調停装置。
【請求項３】
前記バス使用比率制御手段は、
前記第１のバスマスタによる前記メモリバスへのデータ転送回数を計数するカウンタを有し、
前記カウンタの値に応じて、前記第１の調停手段が前記メモリバスを使用する比率を制御する
請求項２記載のバス調停装置。
【請求項４】
前記バス使用比率制御手段は、
前記第１のバスマスタによる前記メモリバスへの各データ転送に要するデータ転送回数の総和が、所定の閾値を越えたか否かに応じて、前記第１の調停手段が前記メモリバスを使用する比率を制御する
請求項２記載のバス調停装置。
【請求項５】
前記バス使用比率制御手段は、
データ転送の種類毎に要する最大のデータ転送サイクル数である最大データ転送サイクル数に関する情報が与えられ、
前記第１のバスマスタによる前記メモリバスへの各データ転送に対応する最大データ転送サイクル数を計数する第２のカウンタを有し、
前記第２のカウンタの計数結果を所定の閾値と比較し、前記所定の閾値を越えたか否かに応じて、前記第１の調停手段が前記メモリバスを使用する比率を制御する
請求項４記載のバス調停装置。
【請求項６】
前記バス使用比率制御手段は、
Ｎ番目（Ｎ：自然数）のサイクルにおいて、計数結果に対する所定の閾値を越えた場合には、越えた分をＮ＋１番目のサイクルにおける計数結果に加え、前記所定の閾値と比較する
請求項５記載のバス調停装置。
【請求項７】
前記第３の調停手段は、
前記バス使用比率制御手段が前記第２の調停手段に優先的に実行させたことにより、データ転送要求が許可されない第１のバスマスタを調停する
請求項２記載のバス調停装置。
【請求項８】
前記第１の調停手段は、前記バス使用比率制御手段を前記第１のバスマスタの各バスマスタ毎に有する
請求項２記載のバス調停装置。
【請求項９】
前記データ転送要求毎に保証すべき遅延時間が与えられ、
前記複数のバスマスタに与えられたデータ転送要求に対応する前記保証すべき遅延時間に応じて、前記第１乃至第３の調停手段のいずれかで調停を実行するかを決定する
請求項１記載のバス調停装置。
【請求項１０】
複数のバスマスタのデータ転送要求を調停し、前記複数のバスマスタの中から許可したバスマスタに対して、メモリバスへのアクセスを許可するバス調停方法であって、
前記複数のバスマスタのうち、データ転送要求が与えられ、前記データ転送要求からデータ転送を行うまでの遅延時間を保証する第１のバスマスタのデータ転送要求を調停するステップと、
前記複数のバスマスタのうち、予め予測可能なデータ転送時間毎にデータ転送を行う第２のバスマスタのデータ転送要求を調停するステップと、
前記複数のバスマスタのうち、前記第１のバスマスタおよび第２のバスマスタのいずれにも該当しない第３のバスマスタのデータ転送要求を調停するステップと
を有するバス調停方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス調停装置およびバス調停方法に関し、特に、システムバス上に接続されたメモリに直接アクセスし、システムバスを使用することができるバスマスタ間のバス調停装置およびバス調停方法に関する。
【背景技術】
【０００２】
従来から、データ転送のむらや調停待ち時間のむらをＦＩＦＯ(First In First Out)バッファにより吸収し、各バスマスタのデータ転送量の違いやデータ転送に係る情報の違い等を調停に反映させながら、ＦＩＦＯバッファがオーバーフロ／アンダーフロを起こさないように構成したバス調停装置に関する技術が知られている。
たとえば、各バスマスタの処理を破綻させないために、バス使用の要求（データ転送要求）を送出した順に、バス使用の優先順位を決定するバス調停装置が知られている。
【０００３】
たとえば、下記特許文献１では、ＦＩＦＯバッファのオーバーフロー／アンダーフローを抑制するバス調停装置として、一のバスマスタがデータ転送を行っている最中に、別のバスマスタがデータ転送を要求する場合には、所定の時間的制限を超えたときに緊急バス獲得信号を出すように構成する、または、バスマスタが要求を出したサイクル数をカウントして、要求を出した順に優先順位を決定するように構成する競合回路が提案されている。
これにより、後発的にデータ転送を要求するバスマスタにデータ転送許可が与えられ、当該バスマスタのＦＩＦＯバッファがオーバーフロー／アンダーフローに陥らないことにしている。
【０００４】
一方、下記特許文献２では、複数のバスマスタからの要求を調停する際に、バスマスタの数が増大しても、処理速度の低下を防止するために、ツリー構造のラウンドロビンアービタに関する技術が提案されている。
【０００５】
【特許文献１】特開平６−６００１７号公報
【特許文献２】特開２００２−３０４３６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、特許文献１に提案されている技術によれば、バス調停装置の処理性能を向上させることや、各バスマスタに用意すべきＦＩＦＯバッファ容量を削減することは可能となる一方で、システムが破綻するか否かを判断することはできない。
たとえば、上記特許文献１に提案されている競合回路によれば、所定の時間的制限を超えたときには緊急バス獲得信号を出すようにし、これに応じてデータ転送許可が与えられるという構成にしているが、かかる緊急のパスを設けた場合でも、複数のバスマスタが同時にかかる時間的制限を越えてしまう時には、ＦＩＦＯバッファがオーバーフロー／アンダーフローを起こさないことを保障できなくなる場合が起こりうる。
【０００７】
また、かかる時間的制限を緩和し、より早く緊急バス獲得信号を発することで、２〜３のバスマスタのＦＩＦＯバッファが同時にオーバーフロー等を起こさないようにしても、近年の１チップにおけるシステムの巨大化、１チップにおけるシステムモードの多様化に起因するバスマスタ数の増加を鑑みれば、当該２〜３のバスマスタより多くのバスマスタのＦＩＦＯバッファが同時にオーバーフロー等を起こさないとも限らない。
さらに時間的制限を緩和した場合には、より緊急バス獲得信号が発生しやすくなり、結局は、全てのバスマスタ間で、緊急バス獲得信号に基づいた調停が行われるようなことになりかねない。かかる場合には、緊急バス獲得信号を設ける意味がないことにもなる。
【０００８】
本発明はかかる事情に鑑みてなされたものであり、その目的は、全体としてデータ転送能力を低下させず、かつ、転送データの損失を防止するバス調停装置およびバス調停方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明の第１の観点は、複数のバスマスタのデータ転送要求を調停し、前記複数のバスマスタの中からデータ転送を許可したバスマスタに対して、メモリバスへのアクセスを許可するバス調停装置であって、前記複数のバスマスタのうち、前記データ転送要求からデータ転送を行うまでの遅延時間を保証する第１のバスマスタのデータ転送要求を調停する第１の調停手段と、前記複数のバスマスタのうち、予め予測可能なデータ転送時間毎にデータ転送を行う第２のバスマスタのデータ転送要求を調停する第２の調停手段と、前記複数のバスマスタのうち、前記第１のバスマスタおよび第２のバスマスタのいずれにも該当しない第３のバスマスタのデータ転送要求を調停する第３の調停手段と、を有し、前記第１乃至第３の調停手段による調停を、前記第１の調停手段から順に優先的に実行する。
【００１０】
好適には、前記バス調停装置は、所定のデータ処理サイクルのうち、前記第１の調停手段が前記メモリバスを優先的に使用する比率を制御するバス使用比率制御手段を有し、前記バス使用比率制御手段により決定される比率に基づいて、前記第１および第２の調停手段による調停を実行する。
【００１１】
好適には、前記バス調停装置は、前記バス使用比率制御手段が前記第２の調停手段に優先的に実行させたことにより、データ転送要求が許可されない第１のバスマスタを調停する。
【００１２】
上記目的を達成するために本発明の第２の観点は、複数のバスマスタのデータ転送要求を調停し、前記複数のバスマスタの中から許可したバスマスタに対して、メモリバスへのアクセスを許可するバス調停方法であって、前記複数のバスマスタのうち、データ転送要求が与えられ、前記データ転送要求からデータ転送を行うまでの遅延時間を保証する第１のバスマスタのデータ転送要求を調停するステップと、前記複数のバスマスタのうち、予め予測可能なデータ転送時間毎にデータ転送を行う第２のバスマスタのデータ転送要求を調停するステップと、前記複数のバスマスタのうち、前記第１のバスマスタおよび第２のバスマスタのいずれにも該当しない第３のバスマスタのデータ転送要求を調停するステップとを有する。
【００１３】
本発明の第１の観点によれば、前記データ転送要求からデータ転送を行うまでの遅延時間を保証する第１のバスマスタのデータ転送要求を調停する第１の調停手段と、前記複数のバスマスタのうち、予め予測可能なデータ転送時間毎にデータ転送を行う第２のバスマスタのデータ転送要求を調停する第２の調停手段と、前記複数のバスマスタのうち、前記第１のバスマスタおよび第２のバスマスタのいずれにも該当しない第３のバスマスタのデータ転送要求を調停する第３の調停手段と、の調停を順に第１の調停手段から優先的に実行するので、第１のバスマスタが優先して調停され、遅延時間が保障される。
【００１４】
また、本発明の第１の観点によれば、バス使用比率制御手段は、所定のデータ処理サイクルのうち、前記第１の調停手段が前記メモリバスを優先的に使用する比率を制限可能とするので、第２のバスマスタが破綻しない。
【発明の効果】
【００１５】
本発明に係るバス調停装置によれば、各バスマスタの調停を一律に行うのではなく、バスマスタの性質に応じて階層型の調停を行うので、全体としてデータ転送能力を低下させず、かつ、転送データの損失を防止することが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下の各実施形態の説明において、第１の実施形態は第１および第１０の発明に、第２の実施形態は第２および第３の発明に、第３の実施形態は第４の発明に、第４および第５の実施形態は第５の発明に、第６の実施形態は第６の発明に、第７の実施形態は第７の発明に、第８の実施形態は第８の発明に、第９の実施形態は第９の発明に、それぞれ対応する。
【００１７】
第１の実施形態
一般に、バスマスタの性質は、クライアントの機能に応じてそれぞれ大きく異なる場合が多いことが通常である。
たとえば、あるバスマスタは、ＣＰＵ等のクライアントを有し、予測できないアクセスをすると同時に、極めて緊急性を要する、または極力早く処理されることによって、システム全体としての処理能力が向上するという性質を持つ。
あるバスマスタは、たとえば、ディジタルＴＶ等のクライアントを有し、データ転送時間が予め予測でき、ＦＩＦＯバッファによって転送データの損失を防ぐ必要があるという性質を持つ。たとえば、ディジタルＴＶでは、リアルタイムで表示を行うために水平１ラインの画像データを所定の垂直走査時間単位で必要となり、その画像データ分のデータ転送が予め予測できる時間内になされる必要がある。
また、あるバスマスタは、比較的長い時間において、データ転送を行えば足りるなど緊急性が低いという性質を持つ。
【００１８】
かかる場合に、各バスマスタの性質に関わりなく、一律に同一の転送データの保障を行うことは、バス全体のパフォーマンスを大きく下げることになる。特に、予測できないアクセスをし、しかも極めて緊急性を要するデータ転送を行うという性質を持つバスマスタと、予め転送時間が予測でき、ＦＩＦＯバッファによって転送データの損失を防ぐという性質を持つバスマスタとの間を最適に調停し、システム全体のパフォーマンスを下げずに転送データの損失を回避できるようにすることが本発明に係るバス調停装置の目的である。
【００１９】
図１は、本発明に係るバス調停装置が適用される全体的なシステム構成を示す。
図１において、ＣＰＵやＴＶ（特に、ディジタルＴＶ）は、クライアント（それぞれ、クライアントＣＬＴ１，ＣＬＴ２）であり、対応するバスマスタに対してデータ転送を要求する。
データ処理装置１は、複数のクライアントからのデータ転送要求を満足するように処理するためのデータ処理装置であり、１チップのＬＳＩにより構成される。
メモリＭＥＭは、たとえば、ダブルデータモードによる高速なデータ転送機能を有するＳＤＲＡＭであるＤＤＲメモリにより構成される。メモリＭＥＭは、各クライアントに対応するデータを格納し、データ処理装置１により調停されたバスマスタの要求に係るデータのリード／ライト処理がなされる。
【００２０】
データ処理装置１は、図に示すように、各クライアントからのデータ転送要求を受ける複数のバスマスタを有する。各バスマスタは、対応するクライアントからのデータ転送要求に基づいて、メモリコントローラ（ＭＥＭ＿Ｃ）１０に対して、データ転送要求（メモリバスに対するアクセス権の要求）を行う。
また、各バスマスタに用意されるＦＩＦＯバッファは、リード／ライト処理に係るデータを一時的に格納する。
【００２１】
メモリコントローラ（ＭＥＭ＿Ｃ）１０に含まれるアービタ（ＡＲＢ）は、本発明に係るバス調停装置に対応する。
アービタ（ＡＲＢ）は、データ転送を追いつかずにＦＩＦＯバッファが破綻しないように、各ＦＩＦＯバッファのデータ量を監視し、各バスマスタからのデータ転送要求（ＲＥＱ）を調停し、データ転送許可（ＧＮＴ）を与える。
【００２２】
本実施形態に係るアービタは、前述したように、クライアントに依存したバスマスタの性質という観点から、すべてのバスマスタを分類して処理する。
アービタが分類する第１階層のバスマスタＢＭＧ＿１は、たとえば図１に示すように、ＣＰＵ（クライアントＣＬＴ１）等のクライアントを有し、予測できないアクセスをすると同時に、極めて緊急性を要するという性質を持つ複数のバスマスタからなる。すなわち、第１階層のバスマスタＢＭＧ＿１のクライアントは、データ転送要求（ＲＥＱ）を受けてから極めて早いタイミングでデータ転送許可（ＧＮＴ）を与えなければならないというレイテンシ（遅延時間）を保障する必要があるクライアントである。
以下、第１階層のバスマスタＢＭＧ＿１に対応するクライアントを、第１階層のクライアントと称する。また、図１に示すように、第１階層のバスマスタＢＭＧ＿１は、ＦＩＦＯバッファを有しない場合がある。
【００２３】
第２階層のバスマスタＢＭＧ＿２は、たとえば図１に示すように、リアルタイムで表示処理を行うディジタルＴＶ（クライアントＣＬＴ２）等のように、データ転送時間が予め予測できるクライアントを有する。
すなわち、第２階層のバスマスタＢＭＧ＿２のクライアントは、上述したディジタルＴＶのように、リアルタイムで表示処理を行っており、いつまでに画像データをリード／ライト処理しなければならないかが事前に明確になっているというクライアントである。第２階層のバスマスタＢＭＧ＿２は、データ転送に要する時間を予め予期できるので、たとえば、早い段階でリード要求を行うということが可能である。
また、第２階層のバスマスタＢＭＧ＿２では、ＦＩＦＯバッファによって転送データの損失を防ぐことを前提としている。たとえば、アービタによる調停が遅れるような場合には、ＦＩＦＯバッファに一時的にデータを格納することで、その調停の遅れをしのぐことにしている。
以下、第２階層のバスマスタＢＭＧ＿２に対応するクライアントを、第２階層のクライアントと称する。
【００２４】
第３階層のバスマスタＢＭＧ＿３は、第１階層のバスマスタＢＭＧ＿１および第２階層のバスマスタＢＭＧ＿２のいずれにも属さない複数のバスマスタからなり、比較的長い時間においてデータ転送を行えば足りるという比較的緊急性が低いという性質を持つ。
以下、第３階層のバスマスタＢＭＧ＿３に対応するクライアントを、第３階層のクライアントと称する。また、図１に示すように、第３階層のバスマスタＢＭＧ＿３は、ＦＩＦＯバッファを有しない場合がある。
【００２５】
アービタは、これらのバスマスタの間の調停を行うが、その際に、原則として、第１階層のバスマスタＢＭＧ＿１を調停することを最優先に行う。
そして、第１階層のバスマスタＢＭＧ＿１においてバス使用権の要求（ＲＥＱ）がない場合等、第１階層のバスマスタＢＭＧ＿１の調停が行われていない場合には、第２階層のバスマスタＢＭＧ＿２を調停する。さらに、第１階層および第２階層のバスマスタＢＭＧ＿１，ＢＭＧ＿２の調停が行われていない場合には、第３階層のバスマスタＢＭＧ＿３の調停を行う。
【００２６】
図２は、本実施形態に係るアービタ２０の実際の構成を示す。
本実施形態に係るアービタは、データ転送要求（ＲＥＱ）に係る第１階層のバスマスタＢＭＧ＿１を調停するための第１階層の調停回路ＡＲＢ＿１と、データ転送要求（ＲＥＱ）に係る第２階層のバスマスタＢＭＧ＿２を調停するための第２階層の調停回路ＡＲＢ＿２と、データ転送要求（ＲＥＱ）に係る第３階層のバスマスタＢＭＧ＿１を調停するための第３階層の調停回路ＡＲＢ＿３と、から構成される。
図２に示すように、全体として、本実施形態に係るアービタ２０は、ツリー構造のバス調停装置となっている。
【００２７】
なお、第１階層の調停回路ＡＲＢ＿１は、本発明の第１の調停手段に相当し、第２階層の調停回路ＡＲＢ＿２は、本発明の第２の調停手段に相当し、第３階層の調停回路ＡＲＢ＿３は、本発明の第３の調停手段に相当する。
【００２８】
本実施形態に係るアービタ２０は、図２に示すように、さらに２つの調停回路２１，２２を含んで構成される。
図２に示す調停回路２１，２２は、ツリー構造の調停回路であり、入力する２つのデータ転送要求の調停を行う。その際、どちらか一方のデータ転送要求があった場合には、そのデータ転送要求に許可を与え、両方のデータ転送要求があった場合には、図に示す「Ｐ」と記載された方のデータ転送要求に対して優先的に許可を与える。
したがって、たとえば、調停回路２１は、調停回路ＡＲＢ＿２および調停回路ＡＲＢ＿３からのデータ転送要求がともに存在する場合には、調停回路ＡＲＢ＿２からのデータ転送要求に対して優先的に許可を与える。調停回路ＡＲＢ＿２からのデータ転送要求が存在しない場合には、調停回路ＡＲＢ＿３からのデータ転送要求に対して許可を与える。
以下、調停回路２１，２２のように、ツリー構造を有し、一方のデータ転送要求に対して優先的に許可を与える調停回路を、優先権付調停回路と称する。
【００２９】
かかる構成を有することにより、本実施形態に係るアービタ２０は、以下に述べるように調停を行う。
すなわち、本実施形態に係るアービタ２０は、第１階層の調停回路ＡＲＢ＿１により調停されたバスマスタに対して、最優先にバスの使用許可（ＧＮＴ）を与える。
そして、第１階層のバスマスタＢＭＧ＿１においてデータ転送要求（ＲＥＱ）がない場合等、第１階層の調停回路ＡＲＢ＿１により調停が行われていない場合には、第２階層の調停回路ＡＲＢ＿２により調停されたバスマスタに対して、次に優先的にデータ転送許可（ＧＮＴ）を与える。
さらに、第１階層および第２階層の調停回路ＡＲＢ＿１，ＡＲＢ＿２により調停が行われていない場合には、第３階層の調停回路ＡＲＢ＿３により調停されたバスマスタに対して、データ転送許可（ＧＮＴ）を与える。
【００３０】
以上述べたように、本実施形態に係るアービタ２０によれば、バスマスタの性質に応じて、調停を３つの階層に分類し、緊急性が高い第１階層のバスマスタを最優先に調停し、第１階層のバスマスタについて調停が行われていない場合には、リアルタイムにデータ処理を行う必要がある第２の階層のバスマスタを優先的に調停し、第１階層および第２階層のバスマスタのいずれに対しても調停が行われていない場合には、第３階層のバスマスタの調停を行うように構成したので、バスマスタの増加やシステムモードの多様化に対応した効率的な調停を行うことが可能である。
【００３１】
第２の実施形態
次に、第２の実施形態に係るアービタについて述べる。
第１の実施形態の説明において述べたアービタ２０は、基本的には緊急性が高い第１階層のバスマスタを優先させるため、第２階層のバスマスタが破綻してしまう可能性がある。すなわち、第１階層のバスマスタの要求を全て優先してしまうと、第２階層のバスマスタから見ると、メモリコントローラ（ＭＥＭ＿Ｃ）１０の処理能力が低下することを意味し、各バスマスタの要求が密集した場合には、未処理データが増大し、転送データの損失を防ぐことができない状況に陥るおそれがある。
また、データ処理装置は、第２階層のバスマスタからのデータ転送要求（ＲＥＱ）が短時間に集中した結果、第２階層の調停回路ＡＲＢ＿２の処理能力を一時的に上回ることが起こった場合には、一時的に上回った間の未処理の要求分に係るデータ転送をＦＩＦＯバッファで補うことにより、転送データの損失を回避する構成をとっているが、第１階層のバスマスタからのバス使用要求に制限がない場合には、第２階層の調停回路ＡＲＢ＿２の処理能力が定まらず、転送データの損失を防ぐことができなくなる。
【００３２】
そこで、本実施形態に係るアービタでは、第１階層のバスマスタからのデータ転送要求（ＲＥＱ）に対して制限を加え、第１階層の調停回路ＡＲＢ＿１からのデータ転送要求が、第２階層の調停回路ＡＲＢ＿２からのデータ転送要求に対して常に優先的な調停を行うことがないように、第１の実施形態に係るアービタ２０を変更する。
【００３３】
図３に、本実施形態に係るアービタ２０ａの構成を示す。
図３に示すように、本実施形態に係るアービタ２０ａは、第１の実施形態に係るアービタ２０と比較して、調停回路２２をバス使用比率制御回路（ＵＲＣ）２３に変更した点で相違する。
すなわち、本実施形態に係るアービタ２０ａでは、第１階層の調停回路ＡＲＢ＿１からのデータ転送要求を、第２階層の調停回路ＡＲＢ＿２からのデータ転送要求に対して、常に優先させるのではなく、状況に応じて、第１階層のバスマスタによるバス占有比率を制限するためのバス使用比率制御回路２３を有している。
なお、バス使用比率制御回路２３は、本発明のバス占有比率制御手段に対応する。
【００３４】
図４および図５は、図３に示したアービタの変形例である。各図において、Ｒ／Ｒは、ラウンドロビン回路を示す。
図４に示すように、図３で示したアービタ２０ａに対して、第２階層のバスマスタに対し、ＦＩＦＯバッファが破綻寸前の場合などの緊急性が高い場合のためのラウンドロビン回路をさらに設けることもできる。これは、ＦＩＦＯバッファの見積もりミスの場合の保険的階層として機能する。
また、図５に示すように、図４で示したアービタに対して、さらに、第２階層のバスマスタがＦＩＦＯバッファの状態に応じてデータ転送要求先を変更するような構成とすることもできる。
【００３５】
図６に、バス使用比率制御回路２３の一構成例であるバス使用比率制御回路２３ａを示す。図に示すように、バス使用比率制御回路２３ａは、カウンタ２３ａ＿１と調停回路２３ａ＿２とを含んで構成される。
カウンタ２３ａ＿１は、所定のデータ転送サイクルをカウントする。すなわち、カウンタ２３ａ＿１は、実質的にタイマとして機能する。
調停回路２３ａ＿２は、図２に示した調停回路２１，２２と同様の優先権付調停回路である。
【００３６】
カウンタ２３ａ＿１のカウント値ＣＮＴが所定の閾値Ａに満たない場合には、調停回路２３ａ＿２は、調停回路ＡＲＢ＿１および調停回路ＡＲＢ＿２からのデータ転送要求がともに存在する場合には、調停回路ＡＲＢ＿１からのデータ転送要求に対して優先的に許可を与える。調停回路ＡＲＢ＿１からのデータ転送要求が存在しない場合には、調停回路ＡＲＢ＿２からのデータ転送要求に対して許可を与える。
カウント値ＣＮＴが所定の閾値Ａに達した場合には、調停回路２３ａ＿２は、逆に、調停回路ＡＲＢ＿２からのデータ転送要求に対して優先的に許可を与える。
【００３７】
上述したようにアービタ２０ａを構成することにより、第１階層のバスマスタによるバスの占有比率に制限を加えたので、第２階層のバスマスタからは、メモリコントローラ（ＭＥＭ＿Ｃ）１０のデータ転送に対する処理能力を判断することが可能となり、転送データの損失を防ぐことができるようになる。
【００３８】
第３の実施形態
以下、第３の実施形態に係るデータ処理装置について述べる。
前述した第２の実施形態に係るアービタ２０ａによっても、第１階層のバスマスタによるバスの占有比率を適切に制御できない場合がある。たとえば、第１階層のバスマスタが一定のデータ処理サイクルで動作する等、所定のデータ処理サイクルの最大転送量が決まっているが、その所定のデータ処理サイクルの間では不規則にデータ転送要求（ＲＥＱ）を行いたいような場合である。
【００３９】
かかる場合に、第２の実施形態で述べたバス使用比率制御回路２３ａによれば、カウンタ２３ａ＿１のカウント値ＣＮＴが所定の閾値Ａに満たない範囲内であるその所定のデータ処理サイクルの前半の要求は満足できても、カウント値ＣＮＴが所定の閾値Ａに達し、第１階層がバス使用の優先権を喪失した後であるその所定のデータ処理サイクルの後半の要求が満足できない可能性がある。
一方、所定の閾値Ａを増加させることにより、第１階層のバスマスタの占有比率を増加させると、場合によっては、第１階層のバスマスタがその間バスを完全に占有する可能性もある。
すなわち、第２階層のデータ転送について、最良の場合と最悪の場合のばらつき幅が大きくなることを意味する。かかる場合に、最悪の場合を考慮すると、第１および第２階層の全体の処理能力を低下させることになる。
【００４０】
そこで、本実施形態に係るアービタでは、所定データ転送サイクル内における第１階層のバスマスタによるデータ転送数をカウントし、そのカウント結果によって、第１階層のバスマスタのデータ転送要求（ＲＥＱ）を制限する。
【００４１】
図７に、本実施形態に係るアービタのバス使用比率制御回路２３ｂの一構成例を示す。図に示すように、本実施形態に係るアービタは、第２の実施形態に係るアービタと比較して、バス使用比率制御回路のみが相違し、図に示すように、本実施形態に係るバス使用比率制御回路２３ｂは、カウンタ２３ｂ＿１および２３ｂ＿２、調停回路２３ｂ＿３を含んで構成される。
【００４２】
カウンタ２３ｂ＿１は、所定の初期値からカウントダウンを行い、「０」に達した場合には、カウンタ２３ｂ＿２にリセットをかける。すなわち、カウンタ２３ｂ＿１は、タイマとして機能する。
【００４３】
カウンタ２３ｂ＿２は、第１階層のバスマスタＢＭＧ＿１に許可されたバスの使用に係るデータ転送回数ＧＮＴ＿ＮＵＭをカウントする。カウンタ２３ｂ＿１にリセット（ｒｅｓｅｔ）をかけられるまでデータ転送回数ＧＮＴ＿ＮＵＭをカウントするので、所定期間内の第１階層のデータ転送回数が算出される。
調停回路２３ｂ＿３は、すでに述べた優先権付調停回路である。
【００４４】
そして、カウンタ２３ｂ＿２のカウント値ＣＮＴが所定の閾値Ａに満たない場合には、調停回路２３ｂ＿３は、調停回路ＡＲＢ＿１および調停回路ＡＲＢ＿２からのデータ転送要求がともに存在する場合には、調停回路ＡＲＢ＿１からのデータ転送要求に対して優先的に許可を与える。調停回路ＡＲＢ＿１からのデータ転送要求が存在しない場合には、調停回路ＡＲＢ＿２からのデータ転送要求に対して許可を与える。
カウント値ＣＮＴが所定の閾値Ａに達した場合には、調停回路２３ｂ＿３は、逆に、調停回路ＡＲＢ＿２からのデータ転送要求に対して優先的に許可を与える。
【００４５】
上述したようにアービタを構成することにより、第２階層から見た場合のメモリコントローラの処理能力を判断できるような調停を可能とし、さらに、所定サイクルのの中で、第１階層のバスマスタが不定期に要求（ＲＥＱ）を出す場合であっても、所定の数の要求までは調停を受けることが可能となる。
もっとも、その所定サイクルを第２階層のＦＩＦＯバッファの破綻が起こりうるほど長く設定した場合であって、そのサイクル内のごく短時間に第１階層のバスマスタの要求（ＲＥＱ）が集中するような場合には、第２階層のバスマスタの転送データの損失を防ぐことができなくなるが、所定サイクルの値を適切に設定すれば、第１階層のバスマスタの動作を抑制させることができ、第２階層のバスマスタの処理に対するばらつきを抑制することが可能である。
【００４６】
第４の実施形態
以下、第４の実施形態に係るデータ処理装置について述べる。
前述した第３の実施形態に係るアービタのように、単にデータ転送回数ＧＮＴ＿ＮＵＭをカウントするだけでは、第１階層のバスマスタによる１つのデータ転送に要するサイクル数に差がある場合には、第２階層のバスマスタの処理能力に対するばらつきが大きくなる場合がある。
たとえば、第１階層のバスマスタが行うデータ転送のサイクル数が８サイクル、１６サイクル、２０サイクル等と変化する場合に、そのデータ転送の回数をカウントするだけでは、すべてのデータ転送が８サイクルで行われる場合と、すべてのデータ転送が２０サイクルで行われる場合とでは、第１階層のバスマスタがバスを占有する時間が大きく異なり、結果として、第２階層のバスマスタに対する処理のばらつきが大きくなるのである。
【００４７】
そこで、本実施形態に係るアービタは、データ転送毎にそのデータ転送に要するサイクル数を求め、そのサイクル数を所定時間カウントし、それが所定数に達するまで第１階層のバスマスタを優先し、第２階層から見た場合のメモリコントローラＭＥＭ＿Ｃの処理能力を判断できるような調停を可能とする。
【００４８】
図８に、本実施形態に係るバス使用比率制御回路２３ｃの一構成例を示す。
本実施形態に係るアービタは、第３の実施形態に係るアービタと比較して、バス使用比率制御回路のみが相違し、図に示すように、本実施形態に係るバス使用比率制御回路２３ｃは、カウンタ２３ｃ＿１と、積算器２３ｃ＿２と、調停回路２３ｃ＿３およびセレクタ２３ｃ＿４を含んで構成される。
【００４９】
カウンタ２３ｃ＿１は、所定の初期値からカウントダウンを行い、「０」に達した場合には、積算器２３ｃ＿２にリセットをかける。すなわち、カウンタ２３ｃ＿１は、タイマとして機能する。
【００５０】
セレクタ２３ｃ＿４は、各データ転送種類（たとえば、リード／ライト処理）に要するサイクル数についての情報ＣＹＣ＿ＤＡＴＡが予め与えられており、第１階層のバスマスタに許可（ＧＮＴ）されたデータ転送種類に要するサイクル数ＣＹＣ＿ＮＵＭを、予め与えられたＣＹＣ＿ＤＡＴＡの中から選択して、順次出力する。
【００５１】
積算器２３ｃ＿２は、セレクタ２３ｃ＿４から順次出力されるサイクル数ＣＹＣ＿ＮＵＭを積算する。その際、カウンタ２３ｃ＿１にリセット（ｒｅｓｅｔ）をかけられるまでサイクル数ＣＹＣ＿ＮＵＭを積算するので、所定期間内に第１階層のバスマスタに許可されたデータ転送のサイクル数の総和（総サイクル数）が算出される。
調停回路２３ｃ＿３は、すでに述べた優先権付調停回路である。
【００５２】
そして、積算器２３ｃ＿２により算出された総サイクル数が所定の閾値Ａに満たない場合には、調停回路２３ｃ＿３は、調停回路ＡＲＢ＿１および調停回路ＡＲＢ＿２からのデータ転送要求がともに存在する場合には、調停回路ＡＲＢ＿１からのデータ転送要求に対して優先的に許可を与える。調停回路ＡＲＢ＿１からのデータ転送要求が存在しない場合には、調停回路ＡＲＢ＿２からのデータ転送要求に対して許可を与える。
積算器２３ｃ＿２により算出された総サイクル数が所定の閾値Ａに達した場合には、調停回路２３ｃ＿３は、逆に、調停回路ＡＲＢ＿２からのデータ転送要求に対して優先的に許可を与える。
【００５３】
上述したようにアービタを構成することにより、第１階層のバスマスタによる１つのデータ転送に要するサイクル数に差がある場合であっても、第２階層から見た場合のメモリコントローラＭＥＭ＿Ｃの処理能力を判断できる調停が可能となる。
【００５４】
第５の実施形態
以下、第５の実施形態に係るデータ処理装置について述べる。
第４の実施形態に係るデータ処理装置において、セレクタ２３ｃ＿４に予め与えられる各データ転送種類（たとえば、リード／ライト処理）に要するサイクル数は、通常、前回のデータ転送にも依存する。たとえば、転送するデータ量が等しい場合であっても、前回のコマンドがリードである場合とライトである場合とでは、ライトのためのデータ転送に要するサイクル数が異なるのが通常である。
かかる場合に、あるコマンドＡに係るデータ転送には、前後の組み合わせに応じて８〜１０サイクルの幅を持ち、あるコマンドＢに係るデータ転送には、前後の組み合わせに応じて１６〜２２サイクルの幅を持つ場合に、各コマンドに対してサイクル数を標準サイクルに固定して（たとえば、コマンドＡ：９サイクル，コマンドＢ：２０サイクルというように固定して）セレクタ２３ｃ＿４の処理を行うとすると、あるデータ処理サイクルにおいて、コマンドＢによるデータ転送の最悪ケース（２２サイクル）が連続する場合には、第２階層のバスマスタに対する処理能力に影響を及ぼす。
【００５５】
そこで、本実施形態に係るデータ処理装置では、その各データ転送種類毎に最悪ケースのデータ転送サイクル（上述した例では、コマンドＡ：１０サイクル，コマンドＢ：２２サイクル）を予め算出してアービタに与え、アービタは、各データ転送は、最悪ケースのデータ転送サイクルがかかるものと擬制して処理する。
【００５６】
具体的には、本実施形態に係るバス使用比率制御回路は、図８を参照して述べた第４の実施形態に係るバス使用比率制御回路２３ｃの構成と同一であり、図８のセレクタ２３ｃ＿４が、各データ転送種類（たとえば、リード／ライト処理）に要する最悪ケースのサイクル数についての情報が予め与えられており、第１階層のバスマスタに許可（ＧＮＴ）されたデータ転送種類に要する最悪ケースのサイクル数を、選択して順次出力する点で異なる。
これにより、第１階層のバスマスタによるデータ転送のサイクル数がばらついた場合であっても、第１階層のデータ転送が安定的に処理され、第２階層のバスマスタから見た場合のメモリコントローラＭＥＭ＿Ｃの処理能力を判断できる調停が可能となる。
【００５７】
その際、本実施形態に係るバス使用比率制御回路２３ｃは、最悪ケースのデータ転送サイクルに基づいて処理を行うので、実際のデータ転送で最悪ケースのデータ転送サイクルにならなかった場合には、第１階層のバスマスタに対する処理がより多くできたにも関わらず、第２／第３階層のバスマスタにバス使用権を譲ることになる。しかし、第１階層のバスマスタに対しては、最悪ケースのデータ転送サイクルであっても保障できる分の割合のバス使用権を与えているので、問題にはならない。
【００５８】
なお、前述したように、図８のセレクタ２３ｃ＿４に予め与えられる各データ転送種類に要するサイクル数は、通常、前回のデータ転送にも依存するので、より精確に第１階層のバスマスタに対するバス占有比率を制御するためには、上述したような最悪ケースのデータ転送サイクルに基づいて処理を行うのではなく、前回のデータ転送を考慮した組み合わせ結果に応じてサイクル数ＣＹＣ＿ＮＵＭを出力するように、セレクタ２３ｃ＿４を構成することもできる。
しかしながら、データ転送の種類が多いために組み合わせに応じたデータ転送に要するサイクル数を算出することが困難な場合や、当該算出のための回路を付加することが困難な場合には、本実施形態で述べた処理を行うことが望ましい。
【００５９】
第６の実施形態
以下、第６の実施形態に係るデータ処理装置について述べる。
第４および第５の実施形態に係るバス使用比率制御回路によれば、積算器２３ｃ＿２により算出された総サイクル数が所定の閾値Ａに満たない場合には、調停回路２３ｃ＿３は、第１階層の調停回路ＡＲＢ＿１からのデータ転送要求を優先して調停するが、この所定の閾値Ａを少し越えるようなデータ転送となった場合に、どのように調停すべきか問題となる。
【００６０】
すなわち、積算器２３ｃ＿２により算出された総サイクル数が所定の閾値Ａを超える場合に、固定的にデータ転送を制限すると、第１階層のバスマスタは、データ処理サイクル毎に、常にある程度のデータ転送サイクルを損することになる。これは、所定の閾値Ａを少し大きく設定すれば、まとまったデータ転送処理を完了できることになるので、所定の閾値Ａの設定次第で、第２階層のバスマスタに対する処理能力のばらつきが変化することを意味する。
一方、積算器２３ｃ＿２により算出された総サイクル数が所定の閾値Ａを超える場合に、その越えた分のデータ転送を制限しないときにも、同様に、所定の閾値Ａの設定次第で、第２階層のバスマスタに対する処理能力のばらつきが変化する。
【００６１】
したがって、本実施形態に係るバス使用比率制御回路２３ｄでは、所定の閾値Ａに依存せずに、第２階層から見た場合のメモリコントローラＭＥＭ＿Ｃの処理能力をより安定的に判断できるような調停を可能とする。
具体的には、あるデータ処理サイクルにおいて、データ転送の総サイクル数が所定の閾値Ａを少し超える場合には、その越える部分のデータ転送を許可するが、当該許可によって第１階層のデータ転送が所定の閾値Ａオーバーしたサイクル数については、次のデータ処理サイクルの際に所定の閾値Ａから減ずることにより、次のデータ処理サイクルにおける第１階層のデータ転送を所定の閾値Ａよりさらに制限する。
所定の閾値Ａを越えて許可するサイクル数については、予め設定しておく。
【００６２】
図９に、本実施形態に係るバス使用比率制御回路２３ｄの一構成例を示す。
本実施形態に係るバス使用比率制御回路２３ｄは、図に示すように、カウンタ２３ｄ＿１と、積算器２３ｄ＿２と、調停回路２３ｄ＿３およびセレクタ２３ｄ＿４を含んで構成される。
【００６３】
カウンタ２３ｄ＿１は、所定の初期値からカウントダウンを行い、「０」に達した場合には、積算器２３ｄ＿２にリセットをかける。すなわち、カウンタ２３ｄ＿１は、タイマとして機能する。
【００６４】
セレクタ２３ｄ＿４は、各データ転送種類（たとえば、リード／ライト処理）に要するサイクル数についての情報ＣＹＣ＿ＤＡＴＡが予め与えられており、第１階層のバスマスタに許可（ＧＮＴ）されたデータ転送種類に要するサイクル数ＣＹＣ＿ＮＵＭを、予め与えられたＣＹＣ＿ＤＡＴＡの中から選択して、順次出力する。
【００６５】
積算器２３ｄ＿２は、セレクタ２３ｄ＿４から順次出力されるサイクル数ＣＹＣ＿ＮＵＭを積算する。その際、カウンタ２３ｄ＿１にリセット（ｒｅｓｅｔ）をかけられるまでサイクル数ＣＹＣ＿ＮＵＭを積算するので、所定期間内に第１階層のバスマスタに許可されたデータ転送のサイクル数の総和（総サイクル数）が算出される。
調停回路２３ｄ＿３は、すでに述べた優先権付調停回路である。
【００６６】
そして、総サイクル数から所定の閾値Ａを減算し、減算結果が負である場合には、調停回路２３ｄ＿３は、調停回路ＡＲＢ＿１および調停回路ＡＲＢ＿２からのデータ転送要求がともに存在する場合には、調停回路ＡＲＢ＿１からのデータ転送要求に対して優先的に許可を与える。調停回路ＡＲＢ＿１からのデータ転送要求が存在しない場合には、調停回路ＡＲＢ＿２からのデータ転送要求に対して許可を与える。
【００６７】
一方、総サイクル数から所定の閾値Ａを減算し、減算結果が正であって予め許容された値以下である場合、すなわち、データ転送の総サイクル数が所定の閾値Ａを少しだけ超える場合には、その越える部分のデータ転送を許可する。
そして、積算器２３ｄ＿２は、所定の閾値Ａを越えた分のサイクル数（超過サイクル数ｖａｌｕｅ）を次の処理のデータ処理サイクルまで保持し、次のデータ処理サイクルでは、算出した総サイクル数から前回の超過サイクル数ｖａｌｕｅを足し算して処理する。これにより、次の処理のデータ処理サイクルにおいては、前回の超過サイクル数ｖａｌｕｅ分だけ、第１階層のデータ転送がさらに制限される。
【００６８】
データ転送の総サイクル数が所定の閾値Ａを少しだけ超え、その越える部分のデータ転送を許可された後は、第２階層のバスマスタに対してバス使用権を与えるべく、調停回路２３ｂ＿３は、第２階層のバスマスタを選択する。
【００６９】
上述したようにバス使用比率制御回路２３ｄを構成することにより、第１階層のバスマスタに対するデータ転送を、あるデータ処理サイクルにおいて少し多く実行した場合でも、次回のデータ処理サイクルにおいて、その分第１階層のバスマスタに対するデータ転送が制限されるので、全体で見れば、第１階層のバスマスタに対するバス占有比率が平均化される結果、第２階層のバスマスタに対する処理能力のばらつきがほとんど無くなることになる。
【００７０】
図１０は、上述した第１階層のバスマスタに対する処理を模式的に表した図であり、（ａ）は、Ｎ番目およびＮ＋１番目の処理を、（ｂ）は、Ｎ＋１番目およびＮ＋２番目の処理を、それぞれ示す。
図１０（ａ）に示すように、Ｎ番目の処理において、第１階層のデータ転送のために許容されたサイクル数である所定の閾値Ａを越えた超過サイクル分の処理については、Ｎ＋１番目の処理のために許容された所定の閾値Ａを減らすことによって行う。図９を参照した説明では、Ｎ＋１番目の処理において、算出した総サイクル数から超過サイクル数を足し算し、所定の閾値Ａと比較することとしたが、これは、図１０（ａ）に示すように、Ｎ＋１番目の処理において、閾値を超過サイクル数だけ減ずることと実質的に同一の処理である。
また、図１０（ｂ）に示すように、Ｎ＋１番目の処理において、超過サイクル分が発生した場合には、同様に、Ｎ＋２番目の処理のために許容された閾値を減らすことによって、処理を行う。
【００７１】
なお、上述した方法とは逆に、総サイクル数が所定の閾値Ａを超える場合には、越える分のデータ転送を許可せずに、次のデータ処理サイクルの際に、超過サイクル数ｖａｌｕｅを総サイクル数から減らすことで、次のデータ処理サイクルの処理における第１階層の処理の比率を増加させる方法も考えられる。
しかし、かかる方法では、次のデータ処理サイクルにおいて、前回のデータ処理サイクルで制限を受けてデータ転送を許可されなかったサイクル分と、実際にデータ転送の要求がないために余ったサイクル分との区別が困難になる可能性がある。すなわち、データ転送要求（ＲＥＱ）がないために余ったサイクル数を蓄積していくと、あるデータ処理サイクルで第１階層のバスマスタが蓄えたサイクル分を一度に使用し、第１階層のバスマスタに対する処理がバスを完全に占有するおそれがある。したがって、上述した方法のように、先のデータ処理サイクルにおいて超過分のデータ転送を許可し、後のデータ処理サイクルにおいて、超過分のサイクル数だけ制限を加える方がよい。
【００７２】
第７の実施形態
以下、第７の実施形態に係るデータ処理装置について述べる。
上述した各実施形態に係るデータ処理装置では、第１階層のバスマスタに対する処理を制限することによって、第２階層のバスマスタから見たメモリコントローラＭＥＭ＿Ｃの処理能力を判断可能とする調停を行うものである。
したがって、本実施形態に係るアービタでは、第１階層のバスマスタに対する制限により、データ転送要求（ＲＥＱ）が許可されない第１階層のバスマスタが存在する場合には、図１１に示すように、第１階層のバスマスタＢＭＧ＿１は、第３階層の調停回路ＡＲＢ＿３に対して、データ転送要求を行う。
なお、上述した第１階層のバスマスタに対する制限は、第２階層のバスマスタの転送データの損失を防ぐためにあるので、第３階層の調停回路ＡＲＢ＿３が第１階層のバスマスタＢＭＧ＿１からのデータ転送要求を調停しても、第２階層のバスマスタの転送データの損失に対して影響を与えない。
【００７３】
第８の実施形態
以下、第８の実施形態に係るデータ処理装置について述べる。
上述した各実施形態に係るデータ処理装置のアービタにおいて、図３に示すように、第１階層の調停回路ＡＲＢ＿１は、第１階層のバスマスタＢＭＧ＿１の調停結果に対して、バス使用比率制御回路により第１階層に対するデータ転送を制限する構成としたが、かかる構成を拡張し、第１階層のバスマスタＢＭＧ＿１に含まれる各バスマスタ毎にバス使用比率制御回路を設け、各バスマスタ毎にバス使用比率を制御するように構成する。
これにより、各バスマスタの性質に応じた、より精度の高い調停を行うことが可能となる。
【００７４】
第９の実施形態
以下、第９の実施形態に係るデータ処理装置について述べる。
上述した各実施形態に係るデータ処理装置のアービタでは、クライアントに応じたバスマスタの性質に応じて、第１階層乃至第３階層のバスマスタに分類し、各バスマスタに対する調停を第１階層乃至第３階層の調停回路を行う構成としたが、バスマスタ毎に調停を行うのではなく、データ転送要求毎にいずれの階層の調停回路にデータ転送要求を行うがを決定してもよい。
たとえば、バスマスタによっては、あるデータ転送は早期に処理を行う必要があり、ある転送は比較的長い時間で処理されれば足りるなどの状況があり得るため、上述したようにデータ転送毎にバス使用要求に係る調停回路の選択を変更する構成とすれば、全体としての処理能力が向上する。すなわち、各バスマスタに与えられたデータ転送要求に対応する保障すべき遅延時間に応じて、第１乃至第３のバス調停回路のいずれかで調停を実行するかを決定するのである。
なお、第２階層のバスマスタのＦＩＦＯバッファの破綻の見積もりに失敗した場合を考慮して、第１階層より優先順位を上げた緊急の処理を行う別の階層を設けてもよい。
【００７５】
第１０の実施形態
以下、第１０の実施形態に係るデータ処理装置について述べる。
上述した第１階層のクライアントの中には、所定の処理サイクル（たとえば、Ｖ単位）毎に出力結果を送出すればよいが、回路上の内部の処理の制約上、バス使用要求（ＲＥＱ）を送出してから極めて短時間でバス使用許可（ＧＮＴ）を受けなければならないクライアントが存在する。たとえば、過去に設計されたＩＰを流用する場合などに、データ転送要求を出してから実際にデータをもらうまでの時間の最大値が決まっていて、かつ、その値が小さく設計されているクライアントがある場合である。
かかるクライアントは、所定の処理サイクルの中で、バス使用要求（ＲＥＱ）を送出するタイミングは比較的平均化されているが、レイテンシに対する要求が極めて高い。
以下、このようなクライアントに対応するバスマスタをバスマスタ１Ａと称する。
【００７６】
その一方で、同じ第１階層のクライアントであっても、ＣＰＵなどは、同様にレイテンシに対する要求が同様に極めて高いものの、処理サイクルの中でバス使用要求（ＲＥＱ）を送出するタイミングが平均化されておらず、散発的である。
以下、このようなクライアントに対応するバスマスタをバスマスタ１Ｂと称する。
【００７７】
本実施形態に係るアービタは、上述したような性質の異なる第１階層のクライアントに対して、効率良く調停を行うための第１階層の調停回路を有する。
以下、本実施形態に係る第１階層の調停回路の動作を、図１２に関連付けて述べる。
【００７８】
先ず、比較的平均的にバス使用要求（ＲＥＱＵ）を送出するバスマスタ１Ａの処理のためのクロック周波数を増加させる回路を設ける。これにより、仮にバスマスタ１Ａの処理のみを１Ｖ単位の処理サイクルを行ったとすれば、バスの占有バンド幅は増加するものの、１Ｖより早くその処理が終了する（図１２（ａ））。
【００７９】
バス使用要求（ＲＥＱ）を送出するタイミング散発的であるバスマスタ１Ｂから、バス使用要求（ＲＥＱ）がある場合には、第１階層の調停回路では、バスマスタ１Ａに対するクロックを停止し、バスマスタ１Ｂに対するデータ転送処理のみを行う。これにより、この間、ＣＰＵ等に対応するバスマスタ１Ｂは、広いバス幅を完全に占有できる。
クロックを停止させるために、第１階層の調停回路は、クロック停止用の制御信号をバスマスタ１Ａに対応するクライアントに対して送出する。
バスマスタ１Ｂによるデータ転送が終了すると、停止したクロックの作動を再開するために、クロック始動用の制御信号をバスマスタ１Ａに対応するクライアントに対して送出する。
【００８０】
以上説明したように、本実施形態に係る第１階層の調停回路では、バスマスタ１Ｂからのバス使用要求（ＲＥＱ）に基づいて、バスマスタ１Ａに係るクライアントの処理を行うクロックを完全に停止して、その間は、広いバンド幅をバスマスタ１Ｂに占有させる。そして、平均化されたデータ転送を行うバスマスタ１Ａは、所定の処理サイクル中の多くの時間では、高いクロック周波数により広いバンド幅を占有してデータ転送を行う。
これにより、所定の処理サイクルの中で、バス使用に係る性質の異なるバスマスタ１Ａおよびバスマスタ１Ｂによるデータ転送を、効率よく行うことが可能となる。
なお、バスマスタ１Ａに係るクライアントの処理を保証するために、クロックを止めた数をカウントし、その数をもってバスマスタ１Ｂに占有させる制御を行うとよい。
【００８１】
第１１の実施形態
以下、本発明の第１１の実施形態について、述べる。
一般に、各バスマスタは、対応するクライアントの性質に応じて、データ転送に対する要求が異なる。たとえば、あるバスマスタは、対応するＦＩＦＯバッファのデータ量に制限があり、あるバスマスタは保証時間に制限があり、また、あるバスマスタは、保証時間等の制限はないが極力早くデータを処理する必要がある。
【００８２】
かかるデータ転送に対する様々な要求を、一律に調停することは元より困難であるため、本実施形態に係るアービタは、対応するクライアントに応じて、バスマスタ側がバス使用要求（ＲＥＱ）の優先順位を決定し、その優先順位に基づいて調停を行うことを特徴とする。
その際、各バスマスタ毎に決定する優先順位は、バスマスタ個々が独自の規則に基づいて定義されたデータ転送に対する緊急度であり、各バスマスタは、各データ転送に対し、定義された規則に従って、緊急度を決定する。
【００８３】
図１３は、ＦＩＦＯバッファのデータ量に応じて、優先順位をもったデータ転送要求を行うバスマスタを例示する図であり、（ａ）は、ライト処理の際のデータ転送要求を、（ｂ）は、リード処理の際のデータ転送要求を、それぞれ示す。
（ａ）に示すように、ライト要求時、予め設定された制限ＬＩＭ＿Ａ〜ＬＩＭ＿Ｃに基づいて、ＦＩＦＯバッファに格納されたデータ量に対応するデータ転送要求ＲＥＱ０〜ＲＥＱ３を出力する。その際、各制限ＬＩＭ＿Ａ〜ＬＩＭ＿Ｃと比較するＦＩＦＯバッファのデータ量は、要求が許可されたと想定した時のＦＩＦＯバッファのデータ量（予測値）をいう。
（ａ）に示すライト処理の際には、ＦＩＦＯバッファにすでに格納されているデータ量が多いほどオーバーフローの危険があり、緊急度が高い。したがって、データ転送要求は、図に示すように、ＲＥＱ０，ＲＥＱ１，ＲＥＱ２，ＲＥＱ３の順に優先順位が高い要求となる。
【００８４】
一方、（ｂ）に示すように、リード要求時、予め設定された制限ＬＩＭ＿Ｄ〜ＬＩＭ＿Ｆに基づいて、ＦＩＦＯバッファに格納されたデータ量に対応するデータ転送要求ＲＥＱ０〜ＲＥＱ３を出力する。その際、各制限ＬＩＭ＿Ｄ〜ＬＩＭ＿Ｆと比較するＦＩＦＯバッファのデータ量は、要求が許可されたと想定した時のＦＩＦＯバッファのデータ量（予測値）をいう。
（ｂ）に示すリード処理の際には、ＦＩＦＯバッファにすでに格納されているデータ量が少ないほどアンダーフローの危険があり、緊急度が高い。したがって、データ転送要求は、図に示すように、ＲＥＱ０，ＲＥＱ１，ＲＥＱ２，ＲＥＱ３の順に優先順位が高い要求となる。
【００８５】
図１３に示したように、ＦＩＦＯバッファのデータ量に応じた優先順位を伴うデータ転送要求は一例であって、ＦＩＦＯバッファのデータ量以外の様々なファクタに応じて、優先順位を決定し、データ転送要求を行うことが可能である。
たとえば、データの転送時間が所定の間隔で決まっているバスマスタ（ディジタルＴＶの表示処理など）は、要求を出す時間に応じて、データ転送時間に対してどれだけ時間的余裕があるか（あと何サイクルあるか）によって、データ転送要求の優先順位を変更する。その際、バスマスタ間で、クロックの周波数に差がある場合には、データ転送時間に対するサイクル数を、クロックの周波数に応じて変更してもよい。
【００８６】
さらに、各バスマスタごとに要求信号の範囲に差を設けることもできる。たとえば、あるバスマスタは、データ転送時間に余裕があるので、優先順位が高い要求を出さない（たとえば、ＲＥＱ０〜ＲＥＱ１を出力）とか、あるバスマスタは、常に優先順位が高い要求を出す（たとえば、常にＲＥＱ３を出力）等とすることもできる。
【００８７】
上述のように、本実施形態に係るデータ処理装置では、各バスマスタは、優先順位に応じたデータ転送要求を行うが、その際のアービタの構成を図１４に示す。
図１４に示すアービタでは、優先順位に応じた４つの調停回路ＡＲＢ＿００〜ＡＲＢ＿０３と、調停回路２４，２５，２６とを含んで構成される。図に示すように、本実施形態に係るアービタは、ツリー構造の調停装置となっている。
各調停回路ＡＲＢ＿００〜ＡＲＢ＿０３は、それぞれデータ転送要求ＲＥＱ０〜ＲＥＱ３に係るバスマスタの調停を行う。
【００８８】
調停回路２４，２５，２６は、優先権付調停回路であり、ツリー構造の調停回路を構成する。
すなわち、調停回路２４は、調停回路ＡＲＢ＿０２および調停回路ＡＲＢ＿０３からのデータ転送要求がともに存在する場合には、調停回路ＡＲＢ＿０３からのデータ転送要求に対して優先的に許可を与える。調停回路ＡＲＢ＿０３からのデータ転送要求が存在しない場合には、調停回路ＡＲＢ＿０２からのデータ転送要求に対して許可を与える。
調停回路２５は、調停回路ＡＲＢ＿００および調停回路ＡＲＢ＿０１からのデータ転送要求がともに存在する場合には、調停回路ＡＲＢ＿０１からのデータ転送要求に対して優先的に許可を与える。調停回路ＡＲＢ＿０１からのデータ転送要求が存在しない場合には、調停回路ＡＲＢ＿００からのデータ転送要求に対して許可を与える。
調停回路２６は、調停回路２４からのデータ転送要求を優先して調停する。
【００８９】
上述した構成を有することによって、本実施形態に係るアービタは、優先順位に従って、データ転送要求を調停する。これにより、各バスマスタに対するデータ転送の要求が多種多様である場合であっても、一律に優先順位という共通の指標に基づいて、データ転送要求を調停することが可能となる。
【００９０】
第１２の実施形態
以下、本発明の第１２の実施形態について、述べる。
一般に、メモリバスの調停は、各バスマスタのバス使用要求（ＲＥＱ）が集中すると、その集中した時点からバス使用要求が十分平均化されるまでの間、かかる要求がメモリコントローラの処理能力を完全に上回ってしまうことが起こる。すなわち、図１５に示すように、極めて短期間ｔｐの間にバス使用要求が集中する結果、要求に係るバス幅ＢＷは、時刻ｔに達するまでの間、メモリコントローラの処理能力（Ｍ＿ＣＡＰ：処理可能なデータ量）を上回ることになる。
【００９１】
特に、かかる局所的なバンド幅ＢＷの増加は、各バスマスタのバス使用要求が一定ではなく、ある程度ばらつきがある場合に顕著となる。
この全バスマスタの要求密度のばらつき、及びに各バスマスタの要求密度のばらつきに対して、ＦＩＦＯバッファにより対応した場合に、たとえ適切なＦＩＦＯバッファ容量を設けても、適切な調停を行わなければ、ＦＩＦＯバッファのオーバーフロー／アンダーフローが起こってしまう。
例えば、単に全てのバスマスタに対して、トークンリング方式のような回転式調停を同一比率で行った場合には、各バスマスタのバス使用要求間隔と回転式調停等の割合が合っていないと、全バスマスタの合計のＦＩＦＯバッファ容量が全バスマスタの要求密度のばらつきに対して十分であったとしても、占有比率が高いバスマスタが必要以上に早く調停される一方で、占有比率が低いバスマスタが破綻する場合がある。
【００９２】
したがって、本実施形態に係るデータ処理装置では、複数の要求信号とツリー構造の調停回路を持つことで、各バスマスタのバンド幅の割合に応じた適切な調停を行うものである。
そのために、本実施形態に係るデータ処理装置では、各バスマスタがＦＩＦＯバッファのデータ量に応じた多数の要求信号を有する。なお、要求信号に対応するものは、ＦＩＦＯバッファのデータ量に限らず、たとえば、データ転送の要求時間でもよい。
本実施形態に係るデータ処理装置の回路構成としては、図１４に示した複数階層の調停回路により実現する。そして、要求信号に基づいて優先度を決定し、優先度が高い要求を、より上位の階層の調停回路により調停する。
【００９３】
したがって、１階層での調停におけるバンド幅の割合が適切でない場合であっても、オーバーフロー／アンダーフローが近づいたバスマスタは上位階層の調停回路で優先的に調停がなされる結果、バンド幅の割合に対し調停の割合が適切になる。
また、１階層を超えるバスマスタが複数になり２階層での調停が行われるようになり、適切な調停ができなくなっても、さらにオーバーフロー／アンダーフローが近づいたバスマスタは、上位階層の調停回路で優先的に調停がなされる結果、バンド幅の割合に対し調停の割合が適切になる。
【００９４】
すなわち、最上位階層までの調停の割合に留意する必要がなく、最上位階層の調停回路には同時に２以上のバスマスタがアクセスしないように、十分に各バスマスタの要求信号と調停に階層を設ければ、常に適切な調停の割合を実現できる。
さらにＦＩＦＯバッファ内のデータ量ではなく、実際にＦＩＦＯバッファからデータを読み出す時間が予測できる場合には、その時間があと何サイクルであるかに応じて要求信号の優先度を変更すれば、より好適な構成となる。
【００９５】
第１３の実施形態
以下、本発明の第１３の実施形態について、述べる。
一般に、メモリのローアドレスやバンクをまたぐデータの転送要求、リード処理とライト処理などの切り替わるデータ転送要求などでは、転送間に隙間時間が生じ、非効率な転送になる場合がある。したがって、たとえば、リードのためのデータ転送のみをまとめて要求する、または、ライトのためのデータ転送のみをまとめて要求することが転送効率の観点から望ましい。
しかし、転送効率を重視し過ぎると、ＦＩＦＯバッファが破綻するおそれがあるので、ＦＩＦＯバッファが破綻を起こさない範囲内で、極力転送効率を重視してアービタを構成することが望ましい。
【００９６】
そこで、本実施形態に係るアービタは、下位の階層においては、転送効率を重視して、データ転送の種類毎に要求信号を変更し、前のデータ転送に基づいて転送効率の観点から優先すべきデータ転送の優先順位を上げて調停する。すなわち、ＦＩＦＯバッファの破綻の恐れが小さい下位の階層では、転送効率に依存した調停を行い、ＦＩＦＯバッファに破綻の恐れが生じた場合には、上位階層において、ＦＩＦＯバッファのデータ量の割合に応じて、優先的な調停がなされる。
【００９７】
図１６は、本実施形態に係るアービタの構成を示す一例である。
図１６は、図１４を参照して述べたアービタと比較して、最下位の階層の調停回路のみが相違する。そして、最下位の階層の調停回路では、バスマスタにより決定された優先度ではなく、転送モードによって調停を行うことを特徴とする。
【００９８】
図１６において、最下位の階層の調停回路ＡＲＢ＿００ａは、異なる転送モードであるＴＦ＿Ａ，ＴＦ＿Ｂ，ＴＦ＿Ｃ，ＴＦ＿Ｄに対して、接続切替え回路ＥＸにより、調停の優先順位を任意に調整可能とする構成を有する。
すなわち、図に示すように、調停回路ＡＲＢ＿００ａは、ツリー構造の３つの優先権付調停回路から構成される調停回路群２７を含み、優先権に応じた調停を行う。したがって、接続切替え回路ＥＸにより接続状態を切り替えることで、転送モードに応じて調停の優先順位を可変とすることができる。
【００９９】
なお、転送モードは、たとえば、リードによるデータ転送やライトによるデータ転送などに代表されるデータ転送の種類をいうが、これに拘泥せず、メモリ回路の状態など転送効率に影響があるデータ転送の種類であれば、何でも構わない。
【０１００】
エンコーダＥＮＣは、前回のデータ転送情報ＰＲ＿ＴＲをエンコードした信号を接続切替え回路ＥＸに供給する。これにより、調停の優先順位を調整する。
【０１０１】
図１７は、接続切替え回路ＥＸの構成例を示す回路図である。
図１７において、ＲＥＱ＿Ａ，ＲＥＱ＿Ｂ，ＲＥＱ＿Ｃ，ＲＥＱ＿Ｄは、転送ＴＦ＿Ａ，ＴＦ＿Ｂ，ＴＦ＿Ｃ，ＴＦ＿Ｄからの転送要求信号であり、ＧＮＴ＿Ａ，ＧＮＴ＿Ｂ，ＧＮＴ＿Ｃ，ＧＮＴ＿Ｄは、転送ＴＦ＿Ａ，ＴＦ＿Ｂ，ＴＦ＿Ｃ，ＴＦ＿Ｄに対する転送許可信号である。
たとえば、入力した転送要求信号ＲＥＱ＿Ａ，ＲＥＱ＿Ｂ，ＲＥＱ＿Ｃ，ＲＥＱ＿Ｄに対して、接続切替え回路ＥＸは、エンコーダＥＮＣからの信号に基づいて、１つの転送要求信号のみをＲＥＱ（Ｈレベル）として出力する。
【０１０２】
実際には、図１７に示す接続切替え回路ＥＸが、調停回路群２７のツリー構成の末端に接続される結線の数（図１６に示す例では、４個）だけ設けられ、調停回路群２７に対して、エンコーダＥＮＣからの信号に基づいて、転送要求信号ＲＥＱ＿Ａ，ＲＥＱ＿Ｂ，ＲＥＱ＿Ｃ，ＲＥＱ＿Ｄの中から任意の転送要求信号を出力できるように構成される。
転送許可信号についても、同様に、調停回路群２７からの転送許可信号（ＧＮＴ）を、エンコーダＥＮＣからの信号に基づいて、転送許可信号ＧＮＴ＿Ａ，ＧＮＴ＿Ｂ，ＧＮＴ＿Ｃ，ＧＮＴ＿Ｄの中から選択して出力できるように構成される。
【０１０３】
なお、図１６では、異なる転送モードの数が４つであるので、調停回路群２７を３つの優先権付調停回路からなる構成としたが、転送モードの数が増える場合には、調停回路群２７のツリー構造を構成する優先権付調停回路の数を増やしていけば、対応可能である。その際には、図１７に示す接続切替え回路ＥＸのＡＮＤ回路を転送モードの数に応じて、並列に増加させる必要がある。
【０１０４】
第１４の実施形態
以下、本発明の第１４の実施形態について、述べる。
調停の際に、各バスマスタからデータ転送要求に対する優先順位の決定として最も適切な方法は、対応するＦＩＦＯバッファについて、オーバーフロー／アンダーフローが発生する時間を比較し、最も早くオーバーフロー／アンダーフローが発生するＦＩＦＯバッファに対応するバスマスタからのデータ転送要求（バス使用要求）を優先させる方法である。
【０１０５】
一般には、各バスマスタの各要求についてオーバーフロー／アンダーフローが発生する時間を予測することが困難な場合もあるが、本実施形態に係るアービタでは、各バスマスタの各要求についてオーバーフロー／アンダーフローが起こる時間を予測できる場合について、かかる時間そのものを比較する際の煩雑さを解決するものである。
【０１０６】
ところで、調停に要するサイクル数は、１単位のメモリアクセスにかかるサイクル（データ転送サイクル）の数以下でなければ、調停に要するサイクルがクリティカルになる可能性があり、転送効率が調停待ちのために低下する。
これに対し、たとえば、調停に要するサイクル数の平均値がデータ転送サイクル数より小さい場合には、必要に応じて、バス使用要求をキュー(QUE) に貯めることで、調停にかかるサイクルがクリティカルになることを防止する方法も考えられるが、その場合には、バスマスタからデータ転送そのものを却下するような命令が与えられる場合や、不意に早急にデータ転送をすべき旨のバス使用要求が与えられる場合に対応が困難になるという問題がある。
一方、並列のデータ処理を行い、一定サイクルで調停を行うように比較回路を大量に設けることは、特に多数のバスマスタがいる場合には、回路規模が膨大となる。
【０１０７】
そこで、本実施形態に係るアービタは、バスマスタのＦＩＦＯバッファに対するデータの読み込み／書き込みが単純な動作をする等予測通りの動作を行い、メモリバスへのアクセスがその効率を高めるためにデータ転送サイクルを一定長とする場合において、その書き込み／読み込みのバス使用要求を処理しないとオーバーフロー／アンダーフローが発生する時間そのものを転送単位にかかるサイクル内に比較し、各バスマスタからのバス使用要求の優先順位を決定する。
【０１０８】
図１８は、本実施形態に係るアービタに含まれる時間調停回路３１の構成を示す一回路例である。
図１８に示す時間調停回路３１では、アクセスの１単位（データ転送サイクル）を８サイクル以上とし、アクセスに要するサイクル数以下である８サイクルで調停を行う場合を例示する。また、オーバーフロー／アンダーフローの発生は、２０４７サイクル以内であると仮定し、タイマを１１ビット構成としている。
図１８に示すように、本実施形態に係る時間調停回路３１は、外部からイネーブル信号ｅｎと、複数のバスマスタ（１〜ｘ）からの要求信号Ｃｘ＿ＲＥＱおよびオーバーフロー／アンダーフローが発生するまでの時間Ｃｘ＿ＴＩＭ（〔１０：４〕は、上位７ビット分のデータであることを示す）を入力し、データ転送を許可するバスマスタのＩＤである許可ＩＤ（ＧＮＴ＿ＩＤ）を出力する。
【０１０９】
図１９は、図１８に示す時間調停回路３１の動作を示すタイミングチャートであり、（ａ）は、クロック信号ＣＬＯＣＫのタイミングを、（ｂ）は、スタートパルスＳＴＡＲＴの出力を、（ｃ）は、カウンタ５１のカウント値ＳＴＡＴＥ＿ＣＮＴを、（ｄ）は、バスマスタＣ１〜Ｃ６の要求時間を、（ｅ）は、バスマスタ毎のＳ／Ｒラッチ群５３の出力を、（ｆ）は、ＡＮＤ回路５５の出力であるａｌｌ＿ｒｅｓ＿ｍａｓｋを、それぞれ示す。
以下、本実施形態に係る時間調停回路３１の動作を、図１８および図１９に関連付けて述べる。
【０１１０】
外部からのイネーブル信号ｅｎにより、クロック信号ＣＬＯＣＫの立ち上がりのタイミングに同期して、図１９（ｂ）に示すように、スタートパルスＳＴＡＲＴが立ち上がると、カウンタ５１によりカウントが開始し、カウント値ＳＴＡＴＥ＿ＣＮＴを出力する（図１９（ｃ））。
カウンタ５１は、たとえば、３ビットのタイマで構成され、カウント値ＳＴＡＴＥ＿ＣＮＴは、「１」から「７」まで出力した後に「０」になると、時間調停回路３１は、各バスマスタの要求時間の比較が終了したことを示すＶＡＬＩＤ信号を出力する。
なお、カウンタ５１は、調停に有してもよいサイクル数に基づき、カウントの最大値が設定される。
【０１１１】
カウンタ群５２には、バスマスタＣ１〜Ｃ６毎の要求時間、すなわち、ＦＩＦＯバッファのオーバーフロー／アンダーフローが発生する時間を示す上位７ビットである時間情報Ｃ１＿ＴＩＭ〔１０：４〕〜Ｃ６＿ＴＩＭ〔１０：４〕が、図１９（ｄ）に示すように、入力される。
入力された各バスマスタ毎の要求時間は、順次、上位ビットから１ビットずつＳ／Ｒラッチ群５３の各Ｓ／Ｒラッチに供給する。
【０１１２】
Ｓ／Ｒラッチ群５３では、バスマスタの数に応じた複数のＳ／Ｒラッチを有し、各Ｓ／Ｒラッチは、初期の時刻ｔ１においては、スタートパルスＳＴＡＲＴと要求信号Ｃｘ＿ＲＥＱ（ｘ：１〜６）により、すべてセット（「１」）されている。
カウンタ群５２のあるカウンタから出力されるビットが「１」であって、ビット「０」を出力する他のカウンタから存在する場合には、対応するＳ／Ｒラッチがリセット（「０」）される。これは、当該カウンタに対応するバスマスタの要求時間が、他のバスマスタの要求時間より時間が長く、バス使用要求の優先順位が低いためである。
【０１１３】
たとえば、図１９（ｅ）に示す時刻ｔ２においては、バスマスタＣ１の最上位ビットが「１」であり、他のすべてのバスマスタの最上位ビットが「０」であるので、ビット「０」を出力する他のカウンタが存在することになり、バスマスタＣ１に対応するＳ／Ｒラッチはリセット（「０」）される。同様に、図１９（ｅ）に示す時刻ｔ３においては、バスマスタＣ２の最上位から２番目のビットが「１」であり、他のバスマスタ（バスマスタＣ３〜Ｃ６）の最上位から２番目のビットが「０」であるので、ビット「０」を出力する他のカウンタが存在することになり、バスマスタＣ２に対応するＳ／Ｒラッチはリセット（「０」）される。
図１９に示す時間調停回路３１では、時間調停中に一旦リセットされると、その後にセットされない。
【０１１４】
なお、上述したように、Ｓ／Ｒラッチ群５３を動作させる際に、出力ビットの比較の対象となるすべてのバスマスタのＳ／Ｒラッチがセット（「１」）された場合には、ＡＮＤ回路５５により、ａｌｌ＿ｒｅｓ＿ｍａｓｋがセット（「１」）される。
たとえば、図１９に示す時刻ｔ４では、（ｄ）に示すように、出力ビットの比較対象であるバスマスタＣ３〜Ｃ６の最上位から４番目のビットがすべて「１」であるため、ＡＮＤ回路５５により、ａｌｌ＿ｒｅｓ＿ｍａｓｋがセット（「１」）される。これにより、上記各バスマスタに対応したＳ／Ｒラッチが全てリセット（「０」）されることを回避する。
すなわち、出力ビットがすべてのバスマスタで同一の場合には、要求時間による優劣を付けることができないので、当該出力ビットでは処理をせず、次の出力ビットに基づいて処理を行う。
【０１１５】
上述したようにＳ／Ｒラッチ群５３が動作し、時刻ｔ８になって時間調停が終了すると、調停回路（ＡＲＢ）５４は、Ｓ／Ｒラッチ群５３のうち、セット（「１」）されているＳ／Ｒラッチに対応するバスマスタを対象として調停し、図１８に示すように、調停結果として許可ＩＤ（ＧＮＴ＿ＩＤ）を出力する。
すなわち、時刻ｔ８においてＳ／Ｒラッチがセット（「１」）されているＳ／Ｒラッチに対応するバスマスタは、最も早くオーバーフロー／アンダーフローが発生するバスマスタであり、そのうちの１つのバスマスタを選択してバスに対するアクセスを許可するのである。
【０１１６】
以上説明したように、本実施形態に係るアービタによれば、バスマスタのＦＩＦＯバッファに対するデータの読み込み／書き込みが単純な動作をする等予測通りの動作を行い、メモリバスへのアクセスがその効率を高めるためにデータ転送サイクルを一定長とする場合において、簡単な構成により、その書き込み／読み込みのバス使用要求を処理しないとオーバーフロー／アンダーフローが発生する時間そのものを転送単位にかかるサイクル内に比較し、各バスマスタからのバス使用要求の優先順位を決定することができる。
また、本実施形態に係るアービタによれば、データ転送サイクル内に時間調停が終了するように構成したので、調停にかかる時間がデータ転送サイクルを越えてクリティカルになることがない。
【０１１７】
第１５の実施形態
以下、本発明の第１５の実施形態について、述べる。
本実施形態に係るデータ処理装置は、中央に共通のバッファを設け、従来各バスマスタ毎に有していたＦＩＦＯバッファの容量を低減し、チップ全体のモード毎に不使用／不要となるＦＩＦＯバッファ容量を低減することで、チップ面積を減少させるバスシステムである。
【０１１８】
図２０は、従来のアービタ（ＡＲＢ）が適用される周辺回路の構成を示す一例である。図において、リード処理を行うバスマスタＲＤ＿Ｃ１，ＲＤ＿Ｃ２と、ライト処理を行うバスマスタＷＲ＿Ｃ１，ＷＲ＿Ｃ２からのデータ転送要求がアービタ（ＡＲＢ）により調停され、メモリコントローラ（ＭＥＭ＿Ｃ）を介して、外部のメモリとの間でデータ転送がなされる。その際、各バスマスタは、データ転送が許可されて実際にデータ転送がなされるまでの間に破綻することがないように、ＦＩＦＯバッファを有している。
一般に、このＦＩＦＯバッファの容量は、バス使用要求すべき時間（たとえば、ライト処理の場合、そのデータ転送要求が許可されるとＦＩＦＯバッファがちょうど空になる時間）から、データがＦＩＦＯバッファに読み書きされるまでのレイテンシ（遅延時間）のワースト値を考慮して見積もられる。
【０１１９】
一方、近年のバスマスタの数の増加に伴って、調停の待ち時間が大幅に増加している。また、ＤＤＲ＿ＳＤＲＡＭのスペックを鑑みると、効果的なメモリアクセスの１単位のバーストレングスが増加し、これにより、上述したレイテンシが一層大きくなる。更には、メモリバスのバス幅も大きくなる傾向にある。これらの事情から、レイテンシのワースト値を考慮すると、各バスマスタが持つべきＦＩＦＯバッファの容量は、格段に増加している。
【０１２０】
さらに、かかるバスマスタが増加や、１チップにおける動作システムモードの多様化などにより、動作するバスマスタの数、種類、及びバンド幅が各システムモード毎に著しく異なる傾向にある。したがって、あるモードにおいては、ＦＩＦＯバッファが動作せず無駄になるということが発生する。
また、あるバスマスタに対して、その最大のバンド幅に基づいてＦＩＦＯバッファ容量を決定しても、ほとんどのモードでは、決定した容量まで使用しないことがあり、ＦＩＦＯバッファ容量が無駄になる場合もある。
【０１２１】
これに対し、ソフトウエアにより、システムモード毎に各バスマスタに与えるＦＩＦＯバッファ容量を取り替えるように構成すれば、あるシステムモードでＦＩＦＯバッファが無駄になることを解決できるが、通常、システム動作が変化した場合にそのＦＩＦＯバッファを取り替える時期を定めるのが困難であり、また、システムモード毎にソフトウエアでＦＩＦＯバッファ容量の変更をすると、著しく構成が煩雑になってしまうおそれがあるという問題がある。
【０１２２】
そこで、本実施形態に係るアービタでは、中央に大きな共用バッファ（中央バッファ）を持ち柔軟性のある調停を行うことで、従来各バスマスタが有していた不要なＦＩＦＯバッファ容量を低減させることを特徴とする。すなわち、本実施形態に係るアービタは、システムモードの変化等に応じて、各バスマスタが中央バッファを使用する比率を自動的に調節可能とし、システム全体でのＦＩＦＯバッファ容量を縮小させて、チップ面積の縮小を実現する。
【０１２３】
図２１は、本実施形態に係るアービタ（ＡＲＢ）の構成を示す一例である。
本実施形態に係るアービタは、中央バッファとして、リード用中央バッファ（ＣＴＬ＿ＢＵＦ）６４、およびライト用中央バッファ（ＣＴＬ＿ＢＵＦ）６５の２つのバッファを有し、各中央バッファは、キーによりデータ格納領域が管理されている。
そして、リード処理を行うバスマスタＲＤ＿Ｃ１，ＲＤ＿Ｃ２、およびライト処理を行うバスマスタＷＲ＿Ｃ１，ＷＲ＿Ｃ２は、それぞれ、リード用バッファキー調停回路６１（ＲＤ＿ＢＵＦＫＥＹ）、およびライト用バッファキー調停回路（ＷＲ＿ＢＵＦＫＥＹ）６２に対して、データ要求時間の情報とともに、中央バッファの空き領域に対応するキーを取得するための要求を行う。
【０１２４】
各バッファキー調停回路では、各バスマスタより与えられたデータ要求時間の情報に基づいて、たとえば、図１８を参照して述べた時間調停回路３１による時間調停を行い、最も早く処理すべきデータ転送に係るバスマスタの要求を選択する。
さらに、たとえばリード用バッファキー調停回路６１では、リード用中央バッファ６４に空き領域があれば、選択されたデータ転送要求に係るメモリアドレス等の情報とリード用中央バッファ６４の空き領域のキーとともに、リード／ライト調停回路６３に対して、データ転送要求を行う。
【０１２５】
リード／ライト調停回路６３（ＲＤ／ＷＲ＿ＡＲＢ）は、リード用バッファキー調停回路６１からのデータ転送要求とライト用バッファキー調停回路６２からのデータ転送要求とを調停し、いずれかの要求を選択する。
その際、メモリアクセスでは、リードとライトの切り替え時に転送効率を損うため、たとえば、ライト用中央バッファ６５にある程度蓄積された場合や、リード用バッファキー調停回路６１からの要求がなくなった（リード用中央バッファ６４がフルになった）場合に、まとめてライト用バッファキー調停回路６２に対する要求を許可するなどの調停を行う。これにより、リード処理およびライト処理を交互に行う等の非効率な動作を回避できる。
【０１２６】
リード用中央バッファ６４およびライト用中央バッファ６５は、キーに対応する複数のデータ格納領域毎に管理される。
たとえば、リード用バッファキー調停回路６１による調停の結果、キーが与えられたバスマスタは、リード用中央バッファ６４内の与えられたキーに対応するデータ格納領域から、所定の時刻にデータを取り出す。
その際、複数のバスマスタがデータを取り出すため、図２１に示すように、かかる複数のバスマスタを調停するため、リード用中央バッファ６４は、データ調停回路（ＤＡＴＡ＿ＡＲＢ）を有している。同様の観点から、ライト用中央バッファ６５も、データ調停回路（ＤＡＴＡ＿ＡＲＢ）を有している。
【０１２７】
図２２および図２３に、それぞれ、リード用中央バッファ６４およびライト用中央バッファ６５の構成例を示す。
図２２に示すように、リード用中央バッファ６４は、上述したデータ調停回路６４１と、キーに対応するＶＡＬＩＤ（ＶＡＬ）とＶＡＬに対応するデータ格納領域（ＲＯＯＭ）を含むデータ格納部６４２と有する。
一方、図２３に示すように、ライト用中央バッファ６５は、上述したデータ調停回路６５１と、キーに対応するＶＡＬＩＤ（ＶＡＬ），アドレス情報（ＡＤＲ），データ個数の情報（ＮＵＭ）とデータ格納領域（ＲＯＯＭ）を含むデータ格納部６５２と有する。
【０１２８】
リード処理では、リード用バッファキー調停回路６１の調停が終了した時点で、メモリコントローラ（ＭＥＭ＿Ｃ）から、アドレス情報（ＡＤＲ）およびデータ個数の情報（ＮＵＭ）が各バスマスタに直接与えられるので、リード用中央バッファ６４のデータ格納部６４２では、図２２に示すように、アドレス情報（ＡＤＲ）およびデータ個数の情報（ＮＵＭ）を保持する必要はない。
ライト処理では、書込み要求から実際にメモリに書込みが行われるまでに遅れがあるために、バスマスタ側が２つ以上のバッファキーを与えられた場合など、アドレス情報（ＡＤＲ）およびデータ個数の情報（ＮＵＭ）をバッファキーに対応して保持する必要があることから、図２３に示すように、これらの情報をライト用中央バッファ６５が保持する構成としている。
【０１２９】
上述した構成を有する本実施形態に係るアービタについて、先ずリード処理について述べる。
図２４は、リード用バッファキー調停回路６１の回路構成の一例である。
図２４において、時間調停回路（ＴＩＭ＿ＡＲＢ）６１１は、複数のリード用バスマスタから、要求信号ＲＤ＿Ｃｘ＿ＲＥＱおよび要求時間ＲＤ＿Ｃｘ＿ＴＩＭ（ＦＩＦＯバッファがアンダーフローするまでの時間）に基づいて調停を行う。すなわち、時間調停回路６１１は、要求時間ＲＤ＿Ｃｘ＿ＴＩＭが最も短いバスマスタを選択するように調停し、その調停結果であるＧＮＴ＿ＩＤ、および調停が正しく終了したことを示すＶＡＬＩＤ（Ｈレベル）を出力する。
時間調停回路６１１としては、具体的に、たとえば、図１８に示した時間調停回路３１を適用することができる。
【０１３０】
空き領域管理部（ＲＯＯＭ＿ＡＤＭ）６１２は、リード用中央バッファ６４のどの領域が空き領域であるかを管理しており、空き領域があれば、時間調停回路６１１により調停されたバスマスタに対して、空き領域に対応するキーを与える（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＫＥＹ）。これにより、キーを与えられたバスマスタは、当該キーに対応するデータ格納領域にアクセスしてデータを取り出すことが可能となる。
【０１３１】
一方、リード用中央バッファ６４からのデータの読み出しが終了し、キーが返却されたときには（ＲＤ＿Ｃｘ＿ＫＥＹ，ＲＤ＿Ｃ１＿ＥＮＤ）、当該キーを他のバスマスタに与えることを可能とする。
【０１３２】
図２５は、空き領域管理部６１２の具体的な回路構成の一例である。
図２５に示す回路例では、Ｓ／Ｒラッチ群７２の各Ｓ／Ｒラッチがキーに対応し、キーを与えることが可能なＳ／Ｒラッチがセット（ｓｅｔ）される。Ｓ／Ｒラッチ群７２のうち、いずれか１つのＳ／Ｒラッチがセットされていれば、ＯＲ回路７４によりＶＡＬＩＤはＨレベルとなり、対応するキー番号がエンコーダ７５により出力され、時間調停回路６１１により許可されたバスマスタに渡される。
データ転送要求が許可された場合には、リード／ライト調停回路６３からのＧＮＴにより、デコーダ７６を介して、バスマスタに渡されたキーに対応するＳ／Ｒラッチがリセット（ｒｅｓ）される。これにより、他のバスマスタに同じキーが渡されることはない。
【０１３３】
一方、バスマスタからキーが返却されると（Ｃｘ＿ＫＥＹ，Ｃｘ＿ＥＮＤ）、デコーダ群７１およびＯＲ回路群７３により、該当するＳ／Ｒラッチがセット（ｓｅｔ）される。これにより、他のバスマスタに当該キーを渡すことが可能な状態となる。
【０１３４】
選択回路（ｓｅｌ）６１３は、各バスマスタからデータ転送に係るアドレス情報（ＡＤＲ）およびデータ個数の情報（ＮＵＭ）を入力し、時間調停回路６１１により調停されたバスマスタのアドレス情報（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＡＤＲ）およびデータ個数の情報（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＮＵＭ）を選択して、リード／ライト調停回路６３へ送出する。
【０１３５】
ＡＮＤ回路６１４は、時間調停回路６１１および６１２からのＶＡＬＩＤがともにＨレベルの場合に限り、空き領域に対する要求信号（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＲＥＱ）を送出する。
【０１３６】
次いで、以上述べた構成を有する本実施形態に係るアービタのリード処理の動作について、図２６に示す処理フローを参照しながら述べる。
先ず、図２６のステップＳＴ１において、各バスマスタＲＤ＿Ｃｘは、リード用バッファキー調停回路（ＲＤ＿ＢＵＦＫＥＹ）６１に対して、要求信号Ｃｘ＿ＲＥＱおよび要求時間ＲＤ＿Ｃｘ＿ＴＩＭを供給し、ライト処理によるデータ転送を要求する。
また、各バスマスタＲＤ＿Ｃｘは、選択回路６１３に対して、アドレス情報（ＡＤＲ）およびデータ個数の情報（ＮＵＭ）を供給する。
【０１３７】
次に、ステップＳＴ２において、データ転送の要求を受けたリード用バッファキー調停回路６１は、要求時間ＲＤ＿Ｃｘ＿ＴＩＭに基づいて調停を行い、最も早くデータ転送を必要とするバスマスタを選択すると同時に、リード用中央バッファ６４に空き領域がある場合には、その空き領域に対する要求信号（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＲＥＱ）、キー番号（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＫＥＹ）、アドレス情報（ＡＤＲ）、およびデータ個数の情報（ＮＵＭ）を、リード／ライト調停回路（ＲＤ／ＷＲ＿ＡＲＢ）６３に渡す。
選択回路６１３は、時間調停回路６１１により調停されたバスマスタのアドレス情報（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＡＤＲ）およびデータ個数の情報（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＮＵＭ）を、リード／ライト調停回路６３へ送出する。
【０１３８】
リード／ライト調停回路６３は、上記リード側からの要求（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＲＥＱ）と、ライト側からの要求とに基づいて調停を行う。これにより、リード処理とライト処理が交錯する非効率なデータ転送が回避される。
当該調停の後、リード／ライト調停回路６３は、リード用バッファキー調停回路６１より渡されたキー、アドレス情報（ＡＤＲ）、およびデータ個数の情報（ＮＵＭ）を、メモリコントローラ（ＭＥＭ＿Ｃ）、およびリード用バッファキー調停回路６１で調停されたバスマスタに渡す（ステップＳＴ３ａ，ＳＴ３ｂ）。バッファキーを受けたバスマスタは、次のデータ転送要求があれば、次の要求信号Ｃｘ＿ＲＥＱおよび要求信号ＲＤ＿Ｃｘ＿ＴＩＭを供給する。なお、各バスマスタは、キーを必要な分蓄積できるような構成とする。
さらに、リード／ライト調停回路６３は、リード用中央バッファ６４の当該キーに対応するＶＡＬＩＤをリセットする。
【０１３９】
ステップＳＴ４では、メモリコントローラ（ＭＥＭ＿Ｃ）は、リード／ライト調停回路６３より渡されたアドレス情報（ＡＤＲ）およびデータ個数の情報（ＮＵＭ）に応じたデータを、リード用中央バッファ６４内のキー番号に対応する空き領域に格納すると同時に、ＶＡＬＩＤをセット（Ｈレベル）する。
ステップＳＴ５では、リード用中央バッファ６４では、処理サイクル毎に、複数の要求に係るデータ格納領域からのデータ転送を調停する。調停は、たとえば、トークンリング方式のような回転式調停等により行われる。
なお、かかる調停では、読み込みデータがリード用中央バッファ６４に格納されるまでの間、キーに対応するＶＡＬＩＤがセットされている場合には、キーを持たない他のバスマスタからの要求をマスクする。
【０１４０】
ステップＳＴ５において、バスマスタは、個々に割り当てられたＦＩＦＯバッファに空きができると、キーとともにデータ転送をリード用中央バッファ６４に対して要求する。  リード用中央バッファ６４のデータ調停回路６４１からデータの取り出しを許可されたバスマスタは、キー番号に対応するデータ格納領域からデータを取り出した後、キーを返却する（ステップＳＴ６）。すなわち、バスマスタからのキー返却情報（ＲＤ＿Ｃｘ＿ＫＥＹ，ＲＤ＿Ｃｘ＿ＥＮＤ）に基づいて、リード用バッファキー調停回路６１の空き領域管理部６１２は、返却されたキーに対応するＳ／Ｒラッチをセットして、次のリード処理のバスマスタのためにキーを使用可能とする。
【０１４１】
次いで、本実施形態に係るアービタのライト処理について述べる。
図２７は、ライト用バッファキー調停回路６２の回路構成の一例である。
図２７において、時間調停回路６２１は、複数のライト用バスマスタから、要求信号ＷＲ＿Ｃｘ＿ＲＥＱおよび要求時間ＷＲ＿Ｃｘ＿ＴＩＭ（ＦＩＦＯバッファがオーバーフローするまでの時間）に基づいて調停を行う。すなわち、時間調停回路６２１は、要求時間ＷＲ＿Ｃｘ＿ＴＩＭが最も短いバスマスタを選択するように調停し、その調停結果であるＧＮＴ＿ＩＤ、および調停が正しく終了したことを示すＶＡＬＩＤ（Ｈレベル）を出力する。
時間調停回路６２１としては、具体的に、たとえば、図１８に示した時間調停回路３１を適用することができる。
【０１４２】
空き領域管理部（ＲＯＯＭ＿ＡＤＭ）６２２は、ライト用中央バッファ６５の各データ格納領域（ＲＯＯＭ）が空き領域（使用可能）であるか否かを管理しており、空き領域が存在すれば、時間調停回路６２１により調停されたバスマスタに対して、空き領域に対応するキーを与える（ＷＲ＿ＫＥＹ＿ＡＲＢ＿ＫＥＹ）。具体的には、空き領域管理部６２２は、図２５で示した回路と同様に構成し、空き領域があれば、キーを時間調停回路６２１により調停されたバスマスタにキーを与えるとともに、対応するＳ／Ｒラッチがリセットされる。
キーが与えられたバスマスタは、当該キーに対応するデータ格納領域にアクセスしてデータを書き込むことが可能となる。書込み終了後は、当該キーに対応するデータ格納領域が有効であることを示す信号をセットする。
【０１４３】
一方、ライト用中央バッファ６５からメモリへの実際のデータの書込みが終了したとき、メモリコントローラ（ＭＥＭ＿Ｃ）はキーを返却し（ＢＵＦ＿ＥＮＤ＿ＫＥＹ，ＢＵＦ＿ＥＮＤ）、空き領域管理部の対応するＳ／Ｒラッチをセットして、当該キーを他のバスマスタに与えることを可能とする。また、当該キーに対応するデータ格納領域が有効であることを示す信号をリセットする。
【０１４４】
選択回路（ｓｅｌ）６２３は、各バスマスタからデータ転送に係るアドレス情報（ＡＤＲ）およびデータ個数の情報（ＮＵＭ）を入力し、時間調停回路６２１により調停されたバスマスタのアドレス情報（ＷＲ＿ＡＤＲ）およびデータ個数の情報（ＷＲ＿ＮＵＭ）を選択して、リード／ライト調停回路６３へ送出する。
【０１４５】
ＡＮＤ回路６２４は、時間調停回路６２１および空き領域管理部６２２からのＶＡＬＩＤがともにＨレベルの場合に限り、空き領域に対する要求信号（ＷＲ＿ＫＥＹ＿ＡＲＢ＿ＥＮ）を送出する。
【０１４６】
以上述べた構成を有する本実施形態に係るアービタのライト処理の動作について、図２８に示す処理フローを参照しながら、説明する。
先ず、図２８のステップＳＴ１０において、各バスマスタＷＲ＿Ｃｘは、ライト用バッファキー調停回路（ＷＲ＿ＢＵＦＫＥＹ）６２に対して、要求信号Ｃｘ＿ＲＥＱおよび要求時間ＷＲ＿Ｃｘ＿ＴＩＭを供給し、ライトのためのデータ転送を要求する。
また、各バスマスタＷＲ＿Ｃｘは、選択回路６２３に対して、アドレス情報（ＡＤＲ）およびデータ個数の情報（ＮＵＭ）を供給する。
【０１４７】
次に、データ転送の要求を受けたライト用バッファキー調停回路６２は、時間調停回路６１１により、要求時間ＷＲ＿Ｃｘ＿ＴＩＭに基づいて調停を行い、最も早くデータ転送を必要とするバスマスタを選択する。
そして、選択したバスマスタに対して許可ＩＤ（ＷＲ＿Ｃ＿ＧＮＤ＿ＩＤ）を送出すると同時に、ライト用中央バッファ６５に空き領域がある場合には、その空き領域に対する要求信号（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＲＥＱ）、キー（ＷＲ＿Ｃ＿ＫＥＹ）を、当該バスマスタに対して送出する（ステップＳＴ２０ａ）。
選択回路（ｓｅｌ）６２３は、時間調停回路６２１により調停されたバスマスタのアドレス情報（ＷＲ＿ＡＤＲ）およびデータ個数の情報（ＷＲ＿ＮＵＭ）を選択して、ライト用中央バッファ６５へ送出する（ステップＳＴ２０ｂ）。
【０１４８】
バスマスタは、自己が有するＦＩＦＯバッファに所定のデータ量、たとえば、１ワード分のデータが蓄積されると、キー情報（ＷＲ＿ＫＥＹ＿ＡＲＢ＿ＫＥＹ，ＷＲ＿ＫＥＹ＿ＡＲＢ＿ＥＮ）に基づいて、ライト用中央バッファ６５に対してデータ書込み要求を行う。
ライト用中央バッファ６５は、データ調停回路６５１により、かかるデータ書込み要求を調停し、書込み許可がなされると（ＷＲ＿Ｃ＿ＧＮＴ）、バスマスタは、キーに対応するデータ格納領域に対してデータの書込みを行う（ステップＳＴ３０）。
【０１４９】
バスマスタからのデータの書込みが終了すると、ライト用中央バッファ６５のキーに対応するＶＡＬＩＤ（ＶＡＬ）がセットされる。
複数のキーに対応するＶＡＬＩＤのうち、少なくとも１つのＶＡＬＩＤがセットされている場合、ライト用中央バッファ６５は、リード／ライト調停回路６３に対し、ライトのためのデータ転送要求を行う（ステップＳＴ４０）。
【０１５０】
リード／ライト調停回路６３による調停の結果、書込み要求が許可されると、ライト用中央バッファ６５からメモリコントローラ（ＭＥＭ＿Ｃ）に対して、データ転送がなされる（ステップＳＴ５０）。
データの書込みがすべて終了すると、メモリコントローラ（ＭＥＭ＿Ｃ）は、ライト用バッファキー調停回路６２に対して、ＢＵＦ＿ＥＮＤ＿ＫＥＹ，ＢＵＦ＿ＥＮＤによりキーを返却する（ステップＳＴ６０）。
【０１５１】
以上説明したように、本実施形態に係るアービタによれば、すべてのバスマスタが共用する中央バッファを有し、各バスマスタからのデータ転送要求を、中央バッファを細分化したデータ格納領域に対応するキーをもって調停する構成としたので、動作モード等に応じてバスマスタからのデータ転送要求が著しく変動する場合でも、その変動するデータ転送動作を中央バッファが吸収することが可能となり、個々のバスマスタは、最悪ケースでのＦＩＦＯバッファ容量を見積もる必要がない。
したがって、システム全体でのＦＩＦＯバッファ容量が縮小し、チップ面積を低減させることが可能となるとともに、コスト低減に資する。
【０１５２】
また、本実施形態に係るアービタによれば、中央バッファにはＤＤＲ＿ＳＤＲＡＭのようにバーストレングスを大きくとる必要がないため、１サイクル分のデータ毎に各バスマスタにデータを配ることができ、レイテンシが著しく減少する。これにより、各バスマスタのＦＩＦＯバッファ容量はさらに小さくなることが期待され、多様なシステムのモードに合わせた無駄なＦＩＦＯバッファ容量を削減することができる。
【０１５３】
なお、本発明の内容は、上記した実施形態に拘泥せず、本発明の要旨を変更しない範囲で様々な改変が可能である。
たとえば、図２９に示すデータ処理装置は、第１５の実施形態で述べた中央バッファを有するアービタ（ＡＲＢ）を、たとえば、第２の実施形態において、第２階層のバスマスタを調停するためのアービタとして適用した一例である。これにより、第２階層の各バスマスタが有するＦＩＦＯバッファの容量が格段に削減される。
【図面の簡単な説明】
【０１５４】
【図１】本発明に係るバス調停装置が適用されるシステム構成である。
【図２】実施形態に係る階層型のアービタの一構成例である。
【図３】実施形態に係る階層型のアービタの一構成例である。
【図４】実施形態に係る階層型のアービタの一構成例である。
【図５】実施形態に係る階層型のアービタの一構成例である。
【図６】バス使用比率制御回路の一構成例を示す。
【図７】バス使用比率制御回路の一構成例を示す。
【図８】バス使用比率制御回路の一構成例を示す。
【図９】バス使用比率制御回路の一構成例を示す。
【図１０】第１階層のバスマスタに対する処理を模式的に表した図であり、（ａ）は、Ｎ番目およびＮ＋１番目の処理を、（ｂ）は、Ｎ＋１番目およびＮ＋２番目の処理を、それぞれ示す。
【図１１】実施形態に係る階層型のアービタの一構成例である。
【図１２】第１０の実施形態に係るアービタを説明するための図である。
【図１３】ＦＩＦＯバッファのデータ量に応じて、優先順位をもったデータ転送要求を行うバスマスタを例示する図であり、（ａ）は、ライト処理の際のデータ転送要求を、（ｂ）は、リード処理の際のデータ転送要求を、それぞれ示す。
【図１４】各バスマスタが優先順位に応じたデータ転送要求を行う場合のアービタの構成である。
【図１５】各バスマスタのバス使用要求が集中した場合のバス幅とメモリコントローラの処理能力の関係を示す。
【図１６】最下位の階層の調停回路で、転送モードによって調停を行うアービタの構成を示す。
【図１７】接続切替え回路ＥＸの構成例を示す回路図である。
【図１８】時間調停回路の構成を示す一回路例である。
【図１９】時間調停回路の動作を示すタイミングチャートであり、（ａ）は、クロック信号ＣＬＯＣＫのタイミングを、（ｂ）は、スタートパルスＳＴＡＲＴの出力を、（ｃ）は、カウンタの値であるＳＴＡＴＥ＿ＣＮＴを、（ｄ）は、バスマスタＣ１〜Ｃ６の要求時間を、（ｅ）は、バスマスタ毎のＳ／Ｒラッチ群の出力を、（ｆ）は、ＡＮＤ回路の出力であるａｌｌ＿ｒｅｓ＿ｍａｓｋを、それぞれ示す。
【図２０】従来のアービタが適用される周辺回路の構成を示す一例である。
【図２１】中央バッファを有するアービタの構成例である。
【図２２】リード用中央バッファの構成例である。
【図２３】ライト用中央バッファの構成例である。
【図２４】リード用バッファキー調停回路の回路構成の一例である。
【図２５】空き領域管理部の具体的な回路構成の一例である。
【図２６】実施形態に係るアービタのリード処理の動作フローである。
【図２７】ライト用バッファキー調停回路の回路構成の一例である。
【図２８】実施形態に係るアービタのライト処理の動作フローである。
【図２９】実施形態に係るデータ処理装置の一例である。
【符号の説明】
【０１５５】
１０…メモリコントローラ（ＭＥＭ＿Ｃ）、２１，２２，２０ａ，２０ｂ，２４，２５，２６…調停回路、２７…調停回路群、２３，２３ａ，２３ｂ，２３ｃ，２３ｄ…バス使用比率制御回路、３１…時間調停回路、６１…リード用バッファキー調停回路、６２…ライト用バッファキー調停回路、６３…リード／ライト調停回路、６４…リード用中央バッファ、６５…ライト用中央バッファ。
【図１】
2005316608.tif 000003
【図２】
2005316608.tif 000004
【図３】
2005316608.tif 000005
【図４】
2005316608.tif 000006
【図５】
2005316608.tif 000007
【図６】
2005316608.tif 000008
【図７】
2005316608.tif 000009
【図８】
2005316608.tif 000010
【図９】
2005316608.tif 000011
【図１０】
2005316608.tif 000012
【図１１】
2005316608.tif 000013
【図１２】
2005316608.tif 000014
【図１３】
2005316608.tif 000015
【図１４】
2005316608.tif 000016
【図１５】
2005316608.tif 000017
【図１６】
2005316608.tif 000018
【図１７】
2005316608.tif 000019
【図１８】
2005316608.tif 000020
【図１９】
2005316608.tif 000021
【図２０】
2005316608.tif 000022
【図２１】
2005316608.tif 000023
【図２２】
2005316608.tif 000024
【図２３】
2005316608.tif 000025
【図２４】
2005316608.tif 000026
【図２５】
2005316608.tif 000027
【図２６】
2005316608.tif 000028
【図２７】
2005316608.tif 000029
【図２８】
2005316608.tif 000030
【図２９】
2005316608.tif 000031
【手続補正書】
【提出日】平成17年4月27日(2005.4.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のバスマスタのデータ転送要求を調停し、前記複数のバスマスタの中からデータ転送を許可したバスマスタに対して、メモリバスへのアクセスを許可するバス調停装置であって、
前記複数のバスマスタのうち、前記データ転送要求からデータ転送を行うまでの遅延時間を保証する第１のバスマスタのデータ転送要求を調停する第１の調停手段と、
前記複数のバスマスタのうち、予め予測可能なデータ転送時間毎にデータ転送を行う第２のバスマスタのデータ転送要求を調停する第２の調停手段と、
前記複数のバスマスタのうち、前記第１のバスマスタおよび第２のバスマスタのいずれにも該当しない第３のバスマスタのデータ転送要求を調停する第３の調停手段と、を有し、
前記第１〜第３の調停手段による調停を、前記第１の調停手段から順に優先的に実行する
バス調停装置。
【請求項２】
所定のデータ処理サイクルのうち、前記第１の調停手段が前記メモリバスを優先的に使用する比率を制御するバス使用比率制御手段を有し、
前記バス使用比率制御手段により決定される比率に基づいて、前記第１および第２の調停手段による調停を実行する
請求項１記載のバス調停装置。
【請求項３】
前記バス使用比率制御手段は、
前記第１のバスマスタによる前記メモリバスへのデータ転送回数を計数するカウンタを有し、
前記カウンタの値に応じて、前記第１の調停手段が前記メモリバスを使用する比率を制御する
請求項２記載のバス調停装置。
【請求項４】
前記バス使用比率制御手段は、
前記第１のバスマスタによる前記メモリバスへの各データ転送に要するデータ転送回数の総和が、所定の第１閾値を越えたか否かに応じて、前記第１の調停手段が前記メモリバスを使用する比率を制御する
請求項２記載のバス調停装置。
【請求項５】
前記バス使用比率制御手段は、
データ転送の種類毎に要する最大のデータ転送サイクル数である最大データ転送サイクル数に関する情報が与えられ、
前記第１のバスマスタによる前記メモリバスへの各データ転送に対応する最大データ転送サイクル数を計数する第２のカウンタを有し、
前記第２のカウンタの計数結果を所定の第２閾値と比較し、前記第２閾値を越えたか否かに応じて、前記第１の調停手段が前記メモリバスを使用する比率を制御する
請求項４記載のバス調停装置。
【請求項６】
前記バス使用比率制御手段は、
Ｎ番目（Ｎ：自然数）のサイクルにおいて、計数結果が前記第２閾値を越えた場合には、越えた分をＮ＋１番目のサイクルにおける計数結果に加え、前記第２閾値と比較する
請求項５記載のバス調停装置。
【請求項７】
前記第３の調停手段は、
前記バス使用比率制御手段が前記第２の調停手段による調停を優先させたことによりデータ転送要求が許可されない、第１のバスマスタを調停する
請求項２記載のバス調停装置。
【請求項８】
前記第１の調停手段は、所定のデータ処理サイクルにおいて、前記第１のバスマスタの各バスマスタ毎にバスを優先的に使用する比率を制御する
請求項２記載のバス調停装置。
【請求項９】
前記データ転送要求毎に保証すべき遅延時間が与えられ、
前記複数のバスマスタに与えられたデータ転送要求に対応する前記保証すべき遅延時間に応じて、前記第１〜第３の調停手段のいずれで調停を実行するかを決定する
請求項１記載のバス調停装置。
【請求項１０】
複数のバスマスタのデータ転送要求を調停し、前記複数のバスマスタの中から許可したバスマスタに対して、メモリバスへのアクセスを許可するバス調停方法であって、
前記複数のバスマスタのうち、データ転送要求が与えられ、前記データ転送要求からデータ転送を行うまでの遅延時間を保証する第１のバスマスタのデータ転送要求を調停するステップと、
前記複数のバスマスタのうち、予め予測可能なデータ転送時間毎にデータ転送を行う第２のバスマスタのデータ転送要求を調停するステップと、
前記複数のバスマスタのうち、前記第１のバスマスタおよび第２のバスマスタのいずれにも該当しない第３のバスマスタのデータ転送要求を調停するステップと
を有するバス調停方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス調停装置およびバス調停方法に関し、特に、システムバス上に接続されたメモリに直接アクセスし、システムバスを使用することができるバスマスタ間のバス調停装置およびバス調停方法に関する。
【背景技術】
【０００２】
従来から、データ転送のむらや調停待ち時間のむらをＦＩＦＯ(First In First Out)バッファにより吸収し、各バスマスタのデータ転送量の違いやデータ転送に係る情報の違い等を調停に反映させながら、ＦＩＦＯバッファがオーバーフロ／アンダーフロを起こさないように構成したバス調停装置に関する技術が知られている。
たとえば、各バスマスタの処理を破綻させないために、バス使用の要求（データ転送要求）を送出した順に、バス使用の優先順位を決定するバス調停装置が知られている。
【０００３】
たとえば、下記特許文献１では、ＦＩＦＯバッファのオーバーフロー／アンダーフローを抑制するバス調停装置として、一のバスマスタがデータ転送を行っている最中に、別のバスマスタがデータ転送を要求する場合には、所定の時間的制限を超えたときに緊急バス獲得信号を出すように構成する、または、バスマスタが要求を出したサイクル数をカウントして、要求を出した順に優先順位を決定するように構成する競合回路が提案されている。
これにより、後発的にデータ転送を要求するバスマスタにデータ転送許可が与えられ、当該バスマスタのＦＩＦＯバッファがオーバーフロー／アンダーフローに陥らないことにしている。
【０００４】
一方、下記特許文献２では、複数のバスマスタからの要求を調停する際に、バスマスタの数が増大しても、処理速度の低下を防止するために、ツリー構造のラウンドロビンアービタに関する技術が提案されている。
【０００５】
【特許文献１】特開平６−６００１７号公報
【特許文献２】特開２００２−３０４３６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、特許文献１に提案されている技術によれば、バス調停装置の処理性能を向上させることや、各バスマスタに用意すべきＦＩＦＯバッファ容量を削減することは可能となる一方で、システムが破綻するか否かを判断することはできない。
たとえば、上記特許文献１に提案されている競合回路によれば、所定の時間的制限を超えたときには緊急バス獲得信号を出すようにし、これに応じてデータ転送許可が与えられるという構成にしているが、かかる緊急のパスを設けた場合でも、複数のバスマスタが同時にかかる時間的制限を越えてしまう時には、ＦＩＦＯバッファがオーバーフロー／アンダーフローを起こさないことを保障できなくなる場合が起こりうる。
【０００７】
また、かかる時間的制限を緩和し、より早く緊急バス獲得信号を発することで、２〜３のバスマスタのＦＩＦＯバッファが同時にオーバーフロー等を起こさないようにしても、近年の１チップにおけるシステムの巨大化、１チップにおけるシステムモードの多様化に起因するバスマスタ数の増加を鑑みれば、当該２〜３のバスマスタより多くのバスマスタのＦＩＦＯバッファが同時にオーバーフロー等を起こさないとも限らない。
さらに時間的制限を緩和した場合には、より緊急バス獲得信号が発生しやすくなり、結局は、全てのバスマスタ間で、緊急バス獲得信号に基づいた調停が行われるようなことになりかねない。かかる場合には、緊急バス獲得信号を設ける意味がないことにもなる。
【０００８】
本発明はかかる事情に鑑みてなされたものであり、その目的は、全体としてデータ転送能力を低下させず、かつ、転送データの損失を防止するバス調停装置およびバス調停方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明の第１の観点は、複数のバスマスタのデータ転送要求を調停し、前記複数のバスマスタの中からデータ転送を許可したバスマスタに対して、メモリバスへのアクセスを許可するバス調停装置であって、前記複数のバスマスタのうち、前記データ転送要求からデータ転送を行うまでの遅延時間を保証する第１のバスマスタのデータ転送要求を調停する第１の調停手段と、前記複数のバスマスタのうち、予め予測可能なデータ転送時間毎にデータ転送を行う第２のバスマスタのデータ転送要求を調停する第２の調停手段と、前記複数のバスマスタのうち、前記第１のバスマスタおよび第２のバスマスタのいずれにも該当しない第３のバスマスタのデータ転送要求を調停する第３の調停手段と、を有し、前記第１〜第３の調停手段による調停を、前記第１の調停手段から順に優先的に実行する。
【００１０】
好適には、前記バス調停装置は、所定のデータ処理サイクルのうち、前記第１の調停手段が前記メモリバスを優先的に使用する比率を制御するバス使用比率制御手段を有し、前記バス使用比率制御手段により決定される比率に基づいて、前記第１および第２の調停手段による調停を実行する。
【００１１】
好適には、前記バス調停装置は、前記バス使用比率制御手段が前記第２の調停手段による調停を優先させたことによりデータ転送要求が許可されない、第１のバスマスタを調停する。
【００１２】
上記目的を達成するために本発明の第２の観点は、複数のバスマスタのデータ転送要求を調停し、前記複数のバスマスタの中から許可したバスマスタに対して、メモリバスへのアクセスを許可するバス調停方法であって、前記複数のバスマスタのうち、データ転送要求が与えられ、前記データ転送要求からデータ転送を行うまでの遅延時間を保証する第１のバスマスタのデータ転送要求を調停するステップと、前記複数のバスマスタのうち、予め予測可能なデータ転送時間毎にデータ転送を行う第２のバスマスタのデータ転送要求を調停するステップと、前記複数のバスマスタのうち、前記第１のバスマスタおよび第２のバスマスタのいずれにも該当しない第３のバスマスタのデータ転送要求を調停するステップとを有する。
【００１３】
本発明の第１の観点によれば、前記データ転送要求からデータ転送を行うまでの遅延時間を保証する第１のバスマスタのデータ転送要求を調停する第１の調停手段と、前記複数のバスマスタのうち、予め予測可能なデータ転送時間毎にデータ転送を行う第２のバスマスタのデータ転送要求を調停する第２の調停手段と、前記複数のバスマスタのうち、前記第１のバスマスタおよび第２のバスマスタのいずれにも該当しない第３のバスマスタのデータ転送要求を調停する第３の調停手段と、の調停を順に第１の調停手段から優先的に実行するので、第１のバスマスタが優先して調停され、遅延時間が保障される。
【００１４】
また、本発明の第１の観点によれば、バス使用比率制御手段は、所定のデータ処理サイクルのうち、前記第１の調停手段が前記メモリバスを優先的に使用する比率を制限可能とするので、第２のバスマスタが破綻しない。
【発明の効果】
【００１５】
本発明に係るバス調停装置によれば、各バスマスタの調停を一律に行うのではなく、バスマスタの性質に応じて階層型の調停を行うので、全体としてデータ転送能力を低下させず、かつ、転送データの損失を防止することが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下の各実施形態の説明において、第１の実施形態は第１および第１０の発明に、第２の実施形態は第２および第３の発明に、第３の実施形態は第４の発明に、第４および第５の実施形態は第５の発明に、第６の実施形態は第６の発明に、第７の実施形態は第７の発明に、第８の実施形態は第８の発明に、第９の実施形態は第９の発明に、それぞれ対応する。
【００１７】
第１の実施形態
一般に、バスマスタの性質は、クライアントの機能に応じてそれぞれ大きく異なる場合が多いことが通常である。
たとえば、あるバスマスタは、ＣＰＵ等のクライアントを有し、予測できないアクセスをすると同時に、極めて緊急性を要する、または極力早く処理されることによって、システム全体としての処理能力が向上するという性質を持つ。
あるバスマスタは、たとえば、ディジタルＴＶ等のクライアントを有し、データ転送時間が予め予測でき、ＦＩＦＯバッファによって転送データの損失を防ぐ必要があるという性質を持つ。たとえば、ディジタルＴＶでは、リアルタイムで表示を行うために水平１ラインの画像データが所定の垂直走査時間単位で必要となり、その画像データ分のデータ転送が予め予測できる時間内になされる必要がある。
また、あるバスマスタは、比較的長い時間において、データ転送を行えば足りるなど緊急性が低いという性質を持つ。
【００１８】
かかる場合に、各バスマスタの性質に関わりなく、一律に同一の転送データの保障を行うことは、バス全体のパフォーマンスを大きく下げることになる。特に、予測できないアクセスをし、しかも極めて緊急性を要するデータ転送を行うという性質を持つバスマスタと、予め転送時間が予測でき、ＦＩＦＯバッファによって転送データの損失を防ぐという性質を持つバスマスタとの間を最適に調停し、システム全体のパフォーマンスを下げずに転送データの損失を回避できるようにすることが本発明に係るバス調停装置の目的である。
【００１９】
図１は、本発明に係るバス調停装置が適用される全体的なシステム構成を示す。
図１において、ＣＰＵやＴＶ（特に、ディジタルＴＶ）は、クライアント（それぞれ、クライアントＣＬＴ１，ＣＬＴ２）であり、対応するバスマスタに対してデータ転送を要求する。
データ処理装置１は、複数のクライアントからのデータ転送要求を満足するように処理するためのデータ処理装置であり、１チップのＬＳＩにより構成される。
メモリＭＥＭは、たとえば、ダブルデータモードによる高速なデータ転送機能を有するＳＤＲＡＭであるＤＤＲメモリにより構成される。メモリＭＥＭは、各クライアントに対応するデータを格納し、データ処理装置１により調停されたバスマスタの要求に係るデータのリード／ライト処理がなされる。
【００２０】
データ処理装置１は、図に示すように、各クライアントからのデータ転送要求を受ける複数のバスマスタを有する。各バスマスタは、対応するクライアントからのデータ転送要求に基づいて、メモリコントローラ（ＭＥＭ＿Ｃ）１０に対して、データ転送要求（メモリバスに対するアクセス権の要求）を行う。
また、各バスマスタに用意されるＦＩＦＯバッファは、リード／ライト処理に係るデータを一時的に格納する。
【００２１】
メモリコントローラ（ＭＥＭ＿Ｃ）１０に含まれるアービタ（ＡＲＢ）は、本発明に係るバス調停装置に対応する。
アービタ（ＡＲＢ）は、データ転送が追いつかずにＦＩＦＯバッファが破綻しないように、各ＦＩＦＯバッファのデータ量を監視し、各バスマスタからのデータ転送要求（ＲＥＱ）を調停し、データ転送許可（ＧＮＴ）を与える。
【００２２】
本実施形態に係るアービタは、前述したように、クライアントに依存したバスマスタの性質という観点から、すべてのバスマスタを分類して処理する。
アービタが分類する第１階層のバスマスタＢＭＧ＿１は、たとえば図１に示すように、ＣＰＵ（クライアントＣＬＴ１）等のクライアントを有し、予測できないアクセスをすると同時に、極めて緊急性を要するという性質を持つ複数のバスマスタからなる。すなわち、第１階層のバスマスタＢＭＧ＿１のクライアントは、データ転送要求（ＲＥＱ）を受けてから極めて早いタイミングでデータ転送許可（ＧＮＴ）を与えなければならないというレイテンシ（遅延時間）を保障する必要があるクライアントである。
以下、第１階層のバスマスタＢＭＧ＿１に対応するクライアントを、第１階層のクライアントと称する。また、第１階層のバスマスタＢＭＧ＿１は、ＦＩＦＯバッファを有しない場合がある。
【００２３】
第２階層のバスマスタＢＭＧ＿２は、たとえば図１に示すように、リアルタイムで表示処理を行うディジタルＴＶ（クライアントＣＬＴ２）等のように、データ転送時間が予め予測できるクライアントを有する。
すなわち、第２階層のバスマスタＢＭＧ＿２のクライアントは、上述したディジタルＴＶのように、リアルタイムで表示処理を行っており、いつまでに画像データをリード／ライト処理しなければならないかが事前に明確になっているというクライアントである。第２階層のバスマスタＢＭＧ＿２は、データ転送に要する時間を予め予期できるので、たとえば、早い段階でリード要求を行うということが可能である。
また、第２階層のバスマスタＢＭＧ＿２では、ＦＩＦＯバッファによって転送データの損失を防ぐことを前提としている。たとえば、アービタによる調停が遅れるような場合には、ＦＩＦＯバッファに一時的にデータを格納することで、その調停の遅れをしのぐことにしている。
以下、第２階層のバスマスタＢＭＧ＿２に対応するクライアントを、第２階層のクライアントと称する。
【００２４】
第３階層のバスマスタＢＭＧ＿３は、第１階層のバスマスタＢＭＧ＿１および第２階層のバスマスタＢＭＧ＿２のいずれにも属さない複数のバスマスタからなり、比較的長い時間においてデータ転送を行えば足りるという比較的緊急性が低いという性質を持つ。
以下、第３階層のバスマスタＢＭＧ＿３に対応するクライアントを、第３階層のクライアントと称する。また、第３階層のバスマスタＢＭＧ＿３は、ＦＩＦＯバッファを有しない場合がある。
【００２５】
アービタは、これらのバスマスタの間の調停を行うが、その際に、原則として、第１階層のバスマスタＢＭＧ＿１を調停することを最優先に行う。
そして、第１階層のバスマスタＢＭＧ＿１においてバス使用権の要求（ＲＥＱ）がない場合等、第１階層のバスマスタＢＭＧ＿１の調停が行われていない場合には、第２階層のバスマスタＢＭＧ＿２を調停する。さらに、第１階層および第２階層のバスマスタＢＭＧ＿１，ＢＭＧ＿２の調停が行われていない場合には、第３階層のバスマスタＢＭＧ＿３の調停を行う。
【００２６】
図２は、本実施形態に係るアービタ２０の実際の構成を示す。
本実施形態に係るアービタは、データ転送要求（ＲＥＱ）に係る第１階層のバスマスタＢＭＧ＿１を調停するための第１階層の調停回路ＡＲＢ＿１と、データ転送要求（ＲＥＱ）に係る第２階層のバスマスタＢＭＧ＿２を調停するための第２階層の調停回路ＡＲＢ＿２と、データ転送要求（ＲＥＱ）に係る第３階層のバスマスタＢＭＧ＿３を調停するための第３階層の調停回路ＡＲＢ＿３と、から構成される。
図２に示すように、全体として、本実施形態に係るアービタ２０は、ツリー構造のバス調停装置となっている。
【００２７】
なお、第１階層の調停回路ＡＲＢ＿１は、本発明の第１の調停手段に相当し、第２階層の調停回路ＡＲＢ＿２は、本発明の第２の調停手段に相当し、第３階層の調停回路ＡＲＢ＿３は、本発明の第３の調停手段に相当する。
【００２８】
本実施形態に係るアービタ２０は、図２に示すように、さらに２つの調停回路２１，２２を含んで構成される。
図２に示す調停回路２１，２２は、ツリー構造の調停回路であり、入力する２つのデータ転送要求の調停を行う。その際、どちらか一方のデータ転送要求があった場合には、そのデータ転送要求に許可を与え、両方のデータ転送要求があった場合には、図に示す「Ｐ」と記載された方のデータ転送要求に対して優先的に許可を与える。
したがって、たとえば、調停回路２１は、調停回路ＡＲＢ＿２および調停回路ＡＲＢ＿３からのデータ転送要求がともに存在する場合には、調停回路ＡＲＢ＿２からのデータ転送要求に対して優先的に許可を与える。調停回路ＡＲＢ＿２からのデータ転送要求が存在しない場合には、調停回路ＡＲＢ＿３からのデータ転送要求に対して許可を与える。
以下、調停回路２１，２２のように、ツリー構造を有し、一方のデータ転送要求に対して優先的に許可を与える調停回路を、優先権付調停回路と称する。
【００２９】
かかる構成を有することにより、本実施形態に係るアービタ２０は、以下に述べるように調停を行う。
すなわち、本実施形態に係るアービタ２０は、第１階層の調停回路ＡＲＢ＿１により調停されたバスマスタに対して、最優先にバスの使用許可（ＧＮＴ）を与える。
そして、第１階層のバスマスタＢＭＧ＿１においてデータ転送要求（ＲＥＱ）がない場合等、第１階層の調停回路ＡＲＢ＿１により調停が行われていない場合には、第２階層の調停回路ＡＲＢ＿２により調停されたバスマスタに対して、次に優先的にデータ転送許可（ＧＮＴ）を与える。
さらに、第１階層および第２階層の調停回路ＡＲＢ＿１，ＡＲＢ＿２により調停が行われていない場合には、第３階層の調停回路ＡＲＢ＿３により調停されたバスマスタに対して、データ転送許可（ＧＮＴ）を与える。
【００３０】
以上述べたように、本実施形態に係るアービタ２０によれば、バスマスタの性質に応じて、調停を３つの階層に分類し、緊急性が高い第１階層のバスマスタを最優先に調停し、第１階層のバスマスタについて調停が行われていない場合には、リアルタイムにデータ処理を行う必要がある第２の階層のバスマスタを優先的に調停し、第１階層および第２階層のバスマスタのいずれに対しても調停が行われていない場合には、第３階層のバスマスタの調停を行うように構成したので、バスマスタの増加やシステムモードの多様化に対応した効率的な調停を行うことが可能である。
【００３１】
第２の実施形態
次に、第２の実施形態に係るアービタについて述べる。
第１の実施形態の説明において述べたアービタ２０は、基本的には緊急性が高い第１階層のバスマスタを優先させるため、第２階層のバスマスタが破綻してしまう可能性がある。すなわち、第１階層のバスマスタの要求を全て優先してしまうと、第２階層のバスマスタから見ると、メモリコントローラ（ＭＥＭ＿Ｃ）１０の処理能力が低下することを意味し、各バスマスタの要求が密集した場合には、未処理データが増大し、転送データの損失を防ぐことができない状況に陥るおそれがある。
また、データ処理装置１は、第２階層のバスマスタからのデータ転送要求（ＲＥＱ）が短時間に集中した結果、第２階層の調停回路ＡＲＢ＿２の処理能力を一時的に上回ることが起こった場合には、一時的に上回った間の未処理の要求分に係るデータ転送をＦＩＦＯバッファで補うことにより、転送データの損失を回避する構成をとっているが、第１階層のバスマスタからのバス使用要求に制限がない場合には、第２階層の調停回路ＡＲＢ＿２の処理能力が定まらず、転送データの損失を防ぐことができなくなる。
【００３２】
そこで、本実施形態に係るアービタでは、第１階層のバスマスタからのデータ転送要求（ＲＥＱ）に対して制限を加え、第１階層の調停回路ＡＲＢ＿１からのデータ転送要求が、第２階層の調停回路ＡＲＢ＿２からのデータ転送要求に対して常に優先的に調停されることがないように、第１の実施形態に係るアービタ２０を変更する。
【００３３】
図３に、本実施形態に係るアービタ２０ａの構成を示す。
図３に示すように、本実施形態に係るアービタ２０ａは、第１の実施形態に係るアービタ２０と比較して、調停回路２２をバス使用比率制御回路（ＵＲＣ）２３に変更した点で相違する。
すなわち、本実施形態に係るアービタ２０ａでは、第１階層の調停回路ＡＲＢ＿１からのデータ転送要求を、第２階層の調停回路ＡＲＢ＿２からのデータ転送要求に対して、常に優先させるのではなく、状況に応じて、第１階層のバスマスタによるバス占有比率を制限するためのバス使用比率制御回路２３を有している。
なお、バス使用比率制御回路２３は、本発明のバス占有比率制御手段に対応する。
【００３４】
図４および図５は、図３に示したアービタの変形例である。各図において、Ｒ／Ｒは、ラウンドロビン回路を示す。
図４に示すように、図３で示したアービタ２０ａに対して、第２階層のバスマスタに対し、ＦＩＦＯバッファが破綻寸前の場合などの緊急性が高い場合のためのラウンドロビン回路をさらに設けることもできる。これは、ＦＩＦＯバッファの見積もりミスの場合の保険的階層として機能する。
また、図５に示すように、図４で示したアービタに対して、さらに、第２階層のバスマスタがＦＩＦＯバッファの状態に応じてデータ転送要求先を変更するような構成とすることもできる。
【００３５】
図６に、バス使用比率制御回路２３の一構成例であるバス使用比率制御回路２３ａを示す。図に示すように、バス使用比率制御回路２３ａは、カウンタ２３ａ＿１と調停回路２３ａ＿２とを含んで構成される。
カウンタ２３ａ＿１は、所定のデータ転送サイクルをカウントする。すなわち、カウンタ２３ａ＿１は、実質的にタイマとして機能する。
調停回路２３ａ＿２は、図２に示した調停回路２１，２２と同様の優先権付調停回路である。
【００３６】
カウンタ２３ａ＿１のカウント値ＣＮＴが所定の閾値Ａに満たない場合には、調停回路２３ａ＿２は、調停回路ＡＲＢ＿１および調停回路ＡＲＢ＿２からのデータ転送要求がともに存在する場合には、調停回路ＡＲＢ＿１からのデータ転送要求に対して優先的に許可を与える。調停回路ＡＲＢ＿１からのデータ転送要求が存在しない場合には、調停回路ＡＲＢ＿２からのデータ転送要求に対して許可を与える。
カウント値ＣＮＴが所定の閾値Ａに達した場合には、調停回路２３ａ＿２は、逆に、調停回路ＡＲＢ＿２からのデータ転送要求に対して優先的に許可を与える。
【００３７】
上述したようにアービタ２０ａを構成することにより、第１階層のバスマスタによるバスの占有比率に制限を加えたので、第２階層のバスマスタは、メモリコントローラ（ＭＥＭ＿Ｃ）１０のデータ転送に対する処理能力を判断することが可能となり、転送データの損失を防ぐことができるようになる。
【００３８】
第３の実施形態
以下、第３の実施形態に係るデータ処理装置について述べる。
前述した第２の実施形態に係るアービタ２０ａによっても、第１階層のバスマスタによるバスの占有比率を適切に制御できない場合がある。たとえば、第１階層のバスマスタが一定のデータ処理サイクルで動作する等、所定のデータ処理サイクルの最大転送量が決まっているが、その所定のデータ処理サイクルの間では不規則にデータ転送要求（ＲＥＱ）を行いたいような場合である。
【００３９】
かかる場合に、第２の実施形態で述べたバス使用比率制御回路２３ａによれば、カウンタ２３ａ＿１のカウント値ＣＮＴが所定の閾値Ａに満たない範囲内であるその所定のデータ処理サイクルの前半の要求は満足できても、カウント値ＣＮＴが所定の閾値Ａに達し、第１階層がバス使用の優先権を喪失した後であるその所定のデータ処理サイクルの後半の要求が満足できない可能性がある。
一方、所定の閾値Ａを増加させることにより、第１階層のバスマスタの占有比率を増加させると、場合によっては、第１階層のバスマスタがその間バスを完全に占有する可能性もある。
すなわち、第２階層のデータ転送について、最良の場合と最悪の場合のばらつき幅が大きくなることを意味する。かかる場合に、最悪の場合を考慮すると、第１および第２階層の全体の処理能力を低下させることになる。
【００４０】
そこで、本実施形態に係るアービタでは、所定データ転送サイクル内における第１階層のバスマスタによるデータ転送数をカウントし、そのカウント結果によって、第１階層のバスマスタのデータ転送要求（ＲＥＱ）を制限する。
【００４１】
図７に、本実施形態に係るアービタのバス使用比率制御回路２３ｂの一構成例を示す。図に示すように、本実施形態に係るアービタは、第２の実施形態に係るアービタと比較して、バス使用比率制御回路のみが相違し、図に示すように、本実施形態に係るバス使用比率制御回路２３ｂは、カウンタ２３ｂ＿１および２３ｂ＿２、調停回路２３ｂ＿３を含んで構成される。
【００４２】
カウンタ２３ｂ＿１は、所定の初期値からカウントダウンを行い、「０」に達した場合には、カウンタ２３ｂ＿２にリセットをかける。すなわち、カウンタ２３ｂ＿１は、タイマとして機能する。
【００４３】
カウンタ２３ｂ＿２は、第１階層のバスマスタＢＭＧ＿１に許可されたバスの使用に係るデータ転送回数ＧＮＴ＿ＮＵＭをカウントする。カウンタ２３ｂ＿１にリセット（ｒｅｓｅｔ）をかけられるまでデータ転送回数ＧＮＴ＿ＮＵＭをカウントするので、所定期間内の第１階層のデータ転送回数が算出される。
調停回路２３ｂ＿３は、すでに述べた優先権付調停回路である。
【００４４】
そして、カウンタ２３ｂ＿２のカウント値ＣＮＴが所定の閾値Ａ(本発明の第１閾値)に満たない場合、調停回路２３ｂ＿３は、調停回路ＡＲＢ＿１および調停回路ＡＲＢ＿２からのデータ転送要求がともに存在する場合には、調停回路ＡＲＢ＿１からのデータ転送要求に対して優先的に許可を与える。調停回路ＡＲＢ＿１からのデータ転送要求が存在しない場合には、調停回路ＡＲＢ＿２からのデータ転送要求に対して許可を与える。
カウント値ＣＮＴが所定の閾値Ａに達した場合には、調停回路２３ｂ＿３は、逆に、調停回路ＡＲＢ＿２からのデータ転送要求に対して優先的に許可を与える。
【００４５】
上述したようにアービタを構成することにより、第２階層から見た場合のメモリコントローラの処理能力を判断できるような調停を可能とし、さらに、所定サイクルのの中で、第１階層のバスマスタが不定期に要求（ＲＥＱ）を出す場合であっても、所定の数の要求までは調停を受けることが可能となる。
もっとも、その所定サイクルを第２階層のＦＩＦＯバッファの破綻が起こりうるほど長く設定した場合であって、そのサイクル内のごく短時間に第１階層のバスマスタの要求（ＲＥＱ）が集中するような場合には、第２階層のバスマスタの転送データの損失を防ぐことができなくなるが、所定サイクルの値を適切に設定すれば、第１階層のバスマスタの動作を抑制させることができ、第２階層のバスマスタの処理に対するばらつきを抑制することが可能である。
【００４６】
第４の実施形態
以下、第４の実施形態に係るデータ処理装置について述べる。
前述した第３の実施形態に係るアービタのように、単にデータ転送回数ＧＮＴ＿ＮＵＭをカウントするだけでは、第１階層のバスマスタによる１つのデータ転送に要するサイクル数に差がある場合には、第２階層のバスマスタの処理能力に対するばらつきが大きくなる可能性がある。
たとえば、第１階層のバスマスタが行うデータ転送のサイクル数が８サイクル、１６サイクル、２０サイクル等と変化するときに、そのデータ転送の回数をカウントするだけでは、すべてのデータ転送が８サイクルで行われる場合と、すべてのデータ転送が２０サイクルで行われる場合とでは、第１階層のバスマスタがバスを占有する時間が大きく異なり、結果として、第２階層のバスマスタに対する処理のばらつきが大きくなるのである。
【００４７】
そこで、本実施形態に係るアービタは、データ転送毎にそのデータ転送に要するサイクル数を求め、そのサイクル数を所定時間カウントし、それが所定数に達するまで第１階層のバスマスタを優先し、第２階層から見た場合のメモリコントローラＭＥＭ＿Ｃの処理能力を判断できるような調停を可能とする。
【００４８】
図８に、本実施形態に係るバス使用比率制御回路２３ｃの一構成例を示す。
本実施形態に係るアービタは、第３の実施形態に係るアービタと比較して、バス使用比率制御回路のみが相違し、図に示すように、本実施形態に係るバス使用比率制御回路２３ｃは、カウンタ２３ｃ＿１と、積算器２３ｃ＿２と、調停回路２３ｃ＿３およびセレクタ２３ｃ＿４を含んで構成される。
【００４９】
カウンタ２３ｃ＿１は、所定の初期値からカウントダウンを行い、「０」に達した場合には、積算器２３ｃ＿２にリセットをかける。すなわち、カウンタ２３ｃ＿１は、タイマとして機能する。
【００５０】
セレクタ２３ｃ＿４は、各データ転送種類（たとえば、リード／ライト処理）に要するサイクル数についての情報ＣＹＣ＿ＤＡＴＡが予め与えられており、第１階層のバスマスタに許可（ＧＮＴ）されたデータ転送種類に要するサイクル数ＣＹＣ＿ＮＵＭを、予め与えられたＣＹＣ＿ＤＡＴＡの中から選択して、順次出力する。
【００５１】
積算器２３ｃ＿２は、セレクタ２３ｃ＿４から順次出力されるサイクル数ＣＹＣ＿ＮＵＭを積算する。その際、カウンタ２３ｃ＿１にリセット（ｒｅｓｅｔ）をかけられるまでサイクル数ＣＹＣ＿ＮＵＭを積算するので、所定期間内に第１階層のバスマスタに許可されたデータ転送のサイクル数の総和（総サイクル数）が算出される。
調停回路２３ｃ＿３は、すでに述べた優先権付調停回路である。
【００５２】
そして、積算器２３ｃ＿２により算出された総サイクル数が所定の閾値Ａ(本発明の第２閾値)に満たない場合、調停回路２３ｃ＿３は、調停回路ＡＲＢ＿１および調停回路ＡＲＢ＿２からのデータ転送要求がともに存在する場合には、調停回路ＡＲＢ＿１からのデータ転送要求に対して優先的に許可を与える。調停回路ＡＲＢ＿１からのデータ転送要求が存在しない場合には、調停回路ＡＲＢ＿２からのデータ転送要求に対して許可を与える。
積算器２３ｃ＿２により算出された総サイクル数が所定の閾値Ａに達した場合には、調停回路２３ｃ＿３は、逆に、調停回路ＡＲＢ＿２からのデータ転送要求に対して優先的に許可を与える。
【００５３】
上述したようにアービタを構成することにより、第１階層のバスマスタによる１つのデータ転送に要するサイクル数に差がある場合であっても、第２階層から見た場合のメモリコントローラＭＥＭ＿Ｃの処理能力を判断できる調停が可能となる。
【００５４】
第５の実施形態
以下、第５の実施形態に係るデータ処理装置について述べる。
第４の実施形態に係るデータ処理装置において、セレクタ２３ｃ＿４に予め与えられる各データ転送種類（たとえば、リード／ライト処理）に要するサイクル数は、通常、前回のデータ転送にも依存する。たとえば、転送するデータ量が等しい場合であっても、前回のコマンドがリードである場合とライトである場合とでは、ライトのためのデータ転送に要するサイクル数が異なるのが通常である。
かかる場合に、あるコマンドＡに係るデータ転送には、前後の組み合わせに応じて８〜１０サイクルの幅を持ち、あるコマンドＢに係るデータ転送には、前後の組み合わせに応じて１６〜２２サイクルの幅を持つ場合に、各コマンドに対してサイクル数を標準サイクルに固定して（たとえば、コマンドＡ：９サイクル，コマンドＢ：２０サイクルというように固定して）セレクタ２３ｃ＿４の処理を行うとすると、あるデータ処理サイクルにおいて、コマンドＢによるデータ転送の最悪ケース（２２サイクル）が連続する場合には、第２階層のバスマスタに対する処理能力に影響を及ぼす。
【００５５】
そこで、本実施形態に係るデータ処理装置では、その各データ転送種類毎に最悪ケースのデータ転送サイクル（上述した例では、コマンドＡ：１０サイクル，コマンドＢ：２２サイクル）を予め算出してアービタに与え、アービタは、各データ転送は、最悪ケースのデータ転送サイクルがかかるものと擬制して処理する。
【００５６】
具体的には、本実施形態に係るバス使用比率制御回路は、図８を参照して述べた第４の実施形態に係るバス使用比率制御回路２３ｃの構成と同一であり、図８のセレクタ２３ｃ＿４が、各データ転送種類（たとえば、リード／ライト処理）に要する最悪ケースのサイクル数についての情報が予め与えられており、第１階層のバスマスタに許可（ＧＮＴ）されたデータ転送種類に要する最悪ケースのサイクル数を、選択して順次出力する点で異なる。
これにより、第１階層のバスマスタによるデータ転送のサイクル数がばらついた場合であっても、第１階層のデータ転送が安定的に処理され、第２階層のバスマスタから見た場合のメモリコントローラＭＥＭ＿Ｃの処理能力を判断できる調停が可能となる。
【００５７】
その際、本実施形態に係るバス使用比率制御回路２３ｃは、最悪ケースのデータ転送サイクルに基づいて処理を行うので、実際のデータ転送で最悪ケースのデータ転送サイクルにならなかった場合には、第１階層のバスマスタに対する処理がより多くできたにも関わらず、第２／第３階層のバスマスタにバス使用権を譲ることになる。しかし、第１階層のバスマスタに対しては、最悪ケースのデータ転送サイクルであっても保障できる分の割合のバス使用権を与えているので、問題にはならない。
【００５８】
なお、前述したように、図８のセレクタ２３ｃ＿４に予め与えられる各データ転送種類に要するサイクル数は、通常、前回のデータ転送にも依存するので、より精確に第１階層のバスマスタに対するバス占有比率を制御するためには、上述したような最悪ケースのデータ転送サイクルに基づいて処理を行うのではなく、前回のデータ転送を考慮した組み合わせ結果に応じてサイクル数ＣＹＣ＿ＮＵＭを出力するように、セレクタ２３ｃ＿４を構成することもできる。
しかしながら、データ転送の種類が多いために組み合わせに応じたデータ転送に要するサイクル数を算出することが困難な場合や、当該算出のための回路を付加することが困難な場合には、本実施形態で述べた処理を行うことが望ましい。
【００５９】
第６の実施形態
以下、第６の実施形態に係るデータ処理装置について述べる。
第４および第５の実施形態に係るバス使用比率制御回路によれば、積算器２３ｃ＿２により算出された総サイクル数が所定の閾値Ａに満たない場合には、調停回路２３ｃ＿３は、第１階層の調停回路ＡＲＢ＿１からのデータ転送要求を優先して調停するが、この所定の閾値Ａを少し越えるようなデータ転送となった場合に、どのように調停すべきか問題となる。
【００６０】
すなわち、積算器２３ｃ＿２により算出された総サイクル数が所定の閾値Ａを超える場合に、固定的にデータ転送を制限すると、第１階層のバスマスタは、データ処理サイクル毎に、常にある程度のデータ転送サイクルを損することになる。これは、所定の閾値Ａを少し大きく設定すれば、まとまったデータ転送処理を完了できることになるので、所定の閾値Ａの設定次第で、第２階層のバスマスタに対する処理能力のばらつきが変化することを意味する。
一方、積算器２３ｃ＿２により算出された総サイクル数が所定の閾値Ａを超える場合に、その越えた分のデータ転送を制限しないときにも、同様に、所定の閾値Ａの設定次第で、第２階層のバスマスタに対する処理能力のばらつきが変化する。
【００６１】
したがって、本実施形態に係るバス使用比率制御回路２３ｄでは、所定の閾値Ａに依存せずに、第２階層から見た場合のメモリコントローラＭＥＭ＿Ｃの処理能力をより安定的に判断できるような調停を可能とする。
具体的には、あるデータ処理サイクルにおいて、データ転送の総サイクル数が所定の閾値Ａを少し超える場合には、その越える部分のデータ転送を許可するが、当該許可によって第１階層のデータ転送が所定の閾値Ａオーバーしたサイクル数については、次のデータ処理サイクルの際に所定の閾値Ａから減ずることにより、次のデータ処理サイクルにおける第１階層のデータ転送を所定の閾値Ａよりさらに制限する。
所定の閾値Ａを越えて許可するサイクル数については、予め設定しておく。
【００６２】
図９に、本実施形態に係るバス使用比率制御回路２３ｄの一構成例を示す。
本実施形態に係るバス使用比率制御回路２３ｄは、図に示すように、カウンタ２３ｄ＿１と、積算器２３ｄ＿２と、調停回路２３ｄ＿３およびセレクタ２３ｄ＿４を含んで構成される。
【００６３】
カウンタ２３ｄ＿１は、所定の初期値からカウントダウンを行い、「０」に達した場合には、積算器２３ｄ＿２にリセットをかける。すなわち、カウンタ２３ｄ＿１は、タイマとして機能する。
【００６４】
セレクタ２３ｄ＿４は、各データ転送種類（たとえば、リード／ライト処理）に要するサイクル数についての情報ＣＹＣ＿ＤＡＴＡが予め与えられており、第１階層のバスマスタに許可（ＧＮＴ）されたデータ転送種類に要するサイクル数ＣＹＣ＿ＮＵＭを、予め与えられたＣＹＣ＿ＤＡＴＡの中から選択して、順次出力する。
【００６５】
積算器２３ｄ＿２は、セレクタ２３ｄ＿４から順次出力されるサイクル数ＣＹＣ＿ＮＵＭを積算する。その際、カウンタ２３ｄ＿１にリセット（ｒｅｓｅｔ）をかけられるまでサイクル数ＣＹＣ＿ＮＵＭを積算するので、所定期間内に第１階層のバスマスタに許可されたデータ転送のサイクル数の総和（総サイクル数）が算出される。
調停回路２３ｄ＿３は、すでに述べた優先権付調停回路である。
【００６６】
そして、総サイクル数から所定の閾値Ａを減算し、減算結果が負である場合には、調停回路２３ｄ＿３は、調停回路ＡＲＢ＿１および調停回路ＡＲＢ＿２からのデータ転送要求がともに存在する場合には、調停回路ＡＲＢ＿１からのデータ転送要求に対して優先的に許可を与える。調停回路ＡＲＢ＿１からのデータ転送要求が存在しない場合には、調停回路ＡＲＢ＿２からのデータ転送要求に対して許可を与える。
【００６７】
一方、総サイクル数から所定の閾値Ａを減算し、減算結果が正であって予め許容された値以下である場合、すなわち、データ転送の総サイクル数が所定の閾値Ａを少しだけ超える場合には、その越える部分のデータ転送を許可する。
そして、積算器２３ｄ＿２は、所定の閾値Ａを越えた分のサイクル数（超過サイクル数ｖａｌｕｅ）を次の処理のデータ処理サイクルまで保持し、次のデータ処理サイクルでは、算出した総サイクル数に前回の超過サイクル数ｖａｌｕｅを足し算して処理する。これにより、次の処理のデータ処理サイクルにおいては、前回の超過サイクル数ｖａｌｕｅ分だけ、第１階層のデータ転送がさらに制限される。
【００６８】
データ転送の総サイクル数が所定の閾値Ａを少しだけ超え、その越える部分のデータ転送を許可された後は、第２階層のバスマスタに対してバス使用権を与えるべく、調停回路２３ｂ＿３は、第２階層のバスマスタを選択する。
【００６９】
上述したようにバス使用比率制御回路２３ｄを構成することにより、第１階層のバスマスタに対するデータ転送を、あるデータ処理サイクルにおいて少し多く実行した場合でも、次回のデータ処理サイクルにおいて、その分第１階層のバスマスタに対するデータ転送が制限されるので、全体で見れば、第１階層のバスマスタに対するバス占有比率が平均化される結果、第２階層のバスマスタに対する処理能力のばらつきがほとんど無くなることになる。
【００７０】
図１０は、上述した第１階層のバスマスタに対する処理を模式的に表した図であり、（ａ）は、Ｎ番目およびＮ＋１番目の処理を、（ｂ）は、Ｎ＋１番目およびＮ＋２番目の処理を、それぞれ示す。
図１０（ａ）に示すように、Ｎ番目の処理において、第１階層のデータ転送のために許容されたサイクル数である所定の閾値Ａを越えた超過サイクル分の処理については、Ｎ＋１番目の処理のために許容された所定の閾値Ａを減らすことによって行う。図９を参照した説明では、Ｎ＋１番目の処理において、算出した総サイクル数と超過サイクル数を足し算し、所定の閾値Ａと比較することとしたが、これは、図１０（ａ）に示すように、Ｎ＋１番目の処理において、閾値を超過サイクル数だけ減ずることと実質的に同一の処理である。
また、図１０（ｂ）に示すように、Ｎ＋１番目の処理において、超過サイクル分が発生した場合には、同様に、Ｎ＋２番目の処理のために許容された閾値を減らすことによって、処理を行う。
【００７１】
なお、上述した方法とは逆に、総サイクル数が所定の閾値Ａを超える場合には、越える分のデータ転送を許可せずに、次のデータ処理サイクルの際に、超過サイクル数ｖａｌｕｅを総サイクル数から減らすことで、次のデータ処理サイクルの処理における第１階層の処理の比率を増加させる方法も考えられる。
しかし、かかる方法では、次のデータ処理サイクルにおいて、前回のデータ処理サイクルで制限を受けてデータ転送を許可されなかったサイクル分と、実際にデータ転送の要求がないために余ったサイクル分との区別が困難になる可能性がある。すなわち、データ転送要求（ＲＥＱ）がないために余ったサイクル数を蓄積していくと、あるデータ処理サイクルで第１階層のバスマスタが蓄えたサイクル分を一度に使用し、第１階層のバスマスタに対する処理がバスを完全に占有するおそれがある。したがって、上述した方法のように、先のデータ処理サイクルにおいて超過分のデータ転送を許可し、後のデータ処理サイクルにおいて、超過分のサイクル数だけ制限を加える方がよい。
【００７２】
第７の実施形態
以下、第７の実施形態に係るデータ処理装置について述べる。
上述した各実施形態に係るデータ処理装置では、第１階層のバスマスタに対する処理を制限することによって、第２階層のバスマスタから見たメモリコントローラＭＥＭ＿Ｃの処理能力を判断可能とする調停を行うものである。
したがって、本実施形態に係るアービタでは、第１階層のバスマスタに対する制限により、データ転送要求（ＲＥＱ）が許可されない第１階層のバスマスタが存在する場合には、図１１に示すように、第１階層のバスマスタＢＭＧ＿１は、第３階層の調停回路ＡＲＢ＿３に対して、データ転送要求を行う。
なお、上述した第１階層のバスマスタに対する制限は、第２階層のバスマスタの転送データの損失を防ぐためにあるので、第３階層の調停回路ＡＲＢ＿３が第１階層のバスマスタＢＭＧ＿１からのデータ転送要求を調停しても、第２階層のバスマスタの転送データの損失に対して影響を与えない。
【００７３】
第８の実施形態
以下、第８の実施形態に係るデータ処理装置について述べる。
上述した各実施形態に係るデータ処理装置のアービタにおいて、図３に示すように、第１階層の調停回路ＡＲＢ＿１は、第１階層のバスマスタＢＭＧ＿１の調停結果に対して、バス使用比率制御回路により第１階層に対するデータ転送を制限する構成としたが、本実施形態では、かかる構成を拡張し、第１階層のバスマスタＢＭＧ＿１に含まれる各バスマスタ毎にバス使用比率制御回路を設け、各バスマスタ毎にバス使用比率を制御するように構成する。
これにより、各バスマスタの性質に応じた、より精度の高い調停を行うことが可能となる。
【００７４】
第９の実施形態
以下、第９の実施形態に係るデータ処理装置について述べる。
上述した各実施形態に係るデータ処理装置のアービタでは、クライアントに応じたバスマスタの性質に応じて、第１階層〜第３階層のバスマスタに分類し、各バスマスタに対する調停を第１階層〜第３階層の調停回路を行う構成としたが、バスマスタ毎に調停を行うのではなく、データ転送要求毎にいずれの階層の調停回路にデータ転送要求を行うがを決定してもよい。
たとえば、バスマスタによっては、あるデータ転送は早期に処理を行う必要があり、ある転送は比較的長い時間で処理されれば足りるなどの状況があり得るため、上述したようにデータ転送毎にバス使用要求に係る調停回路の選択を変更する構成とすれば、全体としての処理能力が向上する。すなわち、各バスマスタに与えられたデータ転送要求に対応する保障すべき遅延時間に応じて、第１乃至第３のバス調停回路のいずれで調停を実行するかを決定するのである。
なお、第２階層のバスマスタのＦＩＦＯバッファの破綻の見積もりに失敗した場合を考慮して、第１階層より優先順位を上げた緊急の処理を行う別の階層を設けてもよい。
【００７５】
第１０の実施形態
以下、第１０の実施形態に係るデータ処理装置について述べる。
上述した第１階層のクライアントの中には、所定の処理サイクル（たとえば、Ｖ単位）毎に出力結果を送出すればよいが、回路上の内部の処理の制約上、バス使用要求（ＲＥＱ）を送出してから極めて短時間でバス使用許可（ＧＮＴ）を受けなければならないクライアントが存在する。たとえば、過去に設計されたＩＰを流用する場合などに、データ転送要求を出してから実際にデータをもらうまでの時間の最大値が決まっていて、かつ、その値が小さく設計されているクライアントがある場合である。
かかるクライアントは、所定の処理サイクルの中で、バス使用要求（ＲＥＱ）を送出するタイミングは比較的平均化されているが、レイテンシに対する要求が極めて高い。
以下、このようなクライアントに対応するバスマスタをバスマスタ１Ａと称する。
【００７６】
その一方で、同じ第１階層のクライアントであっても、ＣＰＵなどは、同様にレイテンシに対する要求が同様に極めて高いものの、処理サイクルの中でバス使用要求（ＲＥＱ）を送出するタイミングが平均化されておらず、散発的である。
以下、このようなクライアントに対応するバスマスタをバスマスタ１Ｂと称する。
【００７７】
本実施形態に係るアービタは、上述したような性質の異なる第１階層のクライアントに対して、効率良く調停を行うための第１階層の調停回路を有する。
以下、本実施形態に係る第１階層の調停回路の動作を、図１２に関連付けて述べる。
【００７８】
先ず、比較的平均的にバス使用要求（ＲＥＱ）を送出するバスマスタ１Ａの処理のためのクロック周波数を増加させる回路を設ける。これにより、仮にバスマスタ１Ａの処理のみを１Ｖ単位の処理サイクルで行ったとすれば、バスの占有バンド幅は増加するものの、１Ｖより早くその処理が終了する（図１２（ａ））。
【００７９】
バス使用要求（ＲＥＱ）を送出するタイミングが散発的であるバスマスタ１Ｂから、バス使用要求（ＲＥＱ）がある場合には、第１階層の調停回路では、バスマスタ１Ａに対するクロックを停止し、バスマスタ１Ｂに対するデータ転送処理のみを行う。これにより、この間、ＣＰＵ等に対応するバスマスタ１Ｂは、広いバス幅を完全に占有できる。
クロックを停止させるために、第１階層の調停回路は、クロック停止用の制御信号をバスマスタ１Ａに対応するクライアントに対して送出する。
バスマスタ１Ｂによるデータ転送が終了すると、停止したクロックの作動を再開するために、クロック始動用の制御信号をバスマスタ１Ａに対応するクライアントに対して送出する。
【００８０】
以上説明したように、本実施形態に係る第１階層の調停回路では、バスマスタ１Ｂからのバス使用要求（ＲＥＱ）に基づいて、バスマスタ１Ａに係るクライアントの処理を行うクロックを完全に停止して、その間は、広いバンド幅をバスマスタ１Ｂに占有させる。そして、平均化されたデータ転送を行うバスマスタ１Ａは、所定の処理サイクル中の多くの時間では、高いクロック周波数により広いバンド幅を占有してデータ転送を行う。
これにより、所定の処理サイクルの中で、バス使用に係る性質の異なるバスマスタ１Ａおよびバスマスタ１Ｂによるデータ転送を、効率よく行うことが可能となる。
なお、バスマスタ１Ａに係るクライアントの処理を保証するために、クロックを止めた数をカウントし、その数をもってバスマスタ１Ｂに占有させる制御を行うとよい。
【００８１】
第１１の実施形態
以下、本発明の第１１の実施形態について、述べる。
一般に、各バスマスタは、対応するクライアントの性質に応じて、データ転送に対する要求が異なる。たとえば、あるバスマスタは、対応するＦＩＦＯバッファのデータ量に制限があり、あるバスマスタは保証時間に制限があり、また、あるバスマスタは、保証時間等の制限はないが極力早くデータを処理する必要がある。
【００８２】
かかるデータ転送に対する様々な要求を、一律に調停することは元より困難であるため、本実施形態に係るアービタは、対応するクライアントに応じて、バスマスタ側がバス使用要求（ＲＥＱ）の優先順位を決定し、その優先順位に基づいて調停を行うことを特徴とする。
その際、各バスマスタ毎に決定する優先順位は、バスマスタ個々が独自の規則に基づいて定義されたデータ転送に対する緊急度であり、各バスマスタは、各データ転送に対し、定義された規則に従って、緊急度を決定する。
【００８３】
図１３は、ＦＩＦＯバッファのデータ量に応じて、優先順位をもったデータ転送要求を行うバスマスタを例示する図であり、（ａ）は、ライト処理の際のデータ転送要求を、（ｂ）は、リード処理の際のデータ転送要求を、それぞれ示す。
（ａ）に示すように、ライト要求時、予め設定された制限ＬＩＭ＿Ａ〜ＬＩＭ＿Ｃに基づいて、ＦＩＦＯバッファに格納されたデータ量に対応するデータ転送要求ＲＥＱ０〜ＲＥＱ３を出力する。その際、各制限ＬＩＭ＿Ａ〜ＬＩＭ＿Ｃと比較するＦＩＦＯバッファのデータ量は、要求が許可されたと想定した時のＦＩＦＯバッファのデータ量（予測値）をいう。
（ａ）に示すライト処理の際には、ＦＩＦＯバッファにすでに格納されているデータ量が多いほどオーバーフローの危険があり、緊急度が高い。したがって、データ転送要求は、図に示すように、ＲＥＱ０，ＲＥＱ１，ＲＥＱ２，ＲＥＱ３の順に優先順位が高い要求となる。
【００８４】
一方、（ｂ）に示すように、リード要求時、予め設定された制限ＬＩＭ＿Ｄ〜ＬＩＭ＿Ｆに基づいて、ＦＩＦＯバッファに格納されたデータ量に対応するデータ転送要求ＲＥＱ０〜ＲＥＱ３を出力する。その際、各制限ＬＩＭ＿Ｄ〜ＬＩＭ＿Ｆと比較するＦＩＦＯバッファのデータ量は、要求が許可されたと想定した時のＦＩＦＯバッファのデータ量（予測値）をいう。
（ｂ）に示すリード処理の際には、ＦＩＦＯバッファにすでに格納されているデータ量が少ないほどアンダーフローの危険があり、緊急度が高い。したがって、データ転送要求は、図に示すように、ＲＥＱ０，ＲＥＱ１，ＲＥＱ２，ＲＥＱ３の順に優先順位が高い要求となる。
【００８５】
図１３に示したように、ＦＩＦＯバッファのデータ量に応じた優先順位を伴うデータ転送要求は一例であって、ＦＩＦＯバッファのデータ量以外の様々なファクタに応じて、優先順位を決定し、データ転送要求を行うことが可能である。
たとえば、データの転送時間が所定の間隔で決まっているバスマスタ（ディジタルＴＶの表示処理など）は、要求を出す時間に応じて、データ転送時間に対してどれだけ時間的余裕があるか（あと何サイクルあるか）によって、データ転送要求の優先順位を変更する。その際、バスマスタ間で、クロックの周波数に差がある場合には、データ転送時間に対するサイクル数を、クロックの周波数に応じて変更してもよい。
【００８６】
さらに、各バスマスタごとに要求信号の範囲に差を設けることもできる。たとえば、あるバスマスタは、データ転送時間に余裕があるので、優先順位が高い要求を出さない（たとえば、ＲＥＱ０〜ＲＥＱ１を出力）とか、あるバスマスタは、常に優先順位が高い要求を出す（たとえば、常にＲＥＱ３を出力）等とすることもできる。
【００８７】
上述のように、本実施形態に係るデータ処理装置では、各バスマスタは、優先順位に応じたデータ転送要求を行うが、その際のアービタの構成を図１４に示す。
図１４に示すアービタでは、優先順位に応じた４つの調停回路ＡＲＢ＿００〜ＡＲＢ＿０３と、調停回路２４，２５，２６とを含んで構成される。図に示すように、本実施形態に係るアービタは、ツリー構造の調停装置となっている。
各調停回路ＡＲＢ＿００〜ＡＲＢ＿０３は、それぞれデータ転送要求ＲＥＱ０〜ＲＥＱ３に係るバスマスタの調停を行う。
【００８８】
調停回路２４，２５，２６は、優先権付調停回路であり、ツリー構造の調停回路を構成する。
すなわち、調停回路２４は、調停回路ＡＲＢ＿０２および調停回路ＡＲＢ＿０３からのデータ転送要求がともに存在する場合には、調停回路ＡＲＢ＿０３からのデータ転送要求に対して優先的に許可を与える。調停回路ＡＲＢ＿０３からのデータ転送要求が存在しない場合には、調停回路ＡＲＢ＿０２からのデータ転送要求に対して許可を与える。
調停回路２５は、調停回路ＡＲＢ＿００および調停回路ＡＲＢ＿０１からのデータ転送要求がともに存在する場合には、調停回路ＡＲＢ＿０１からのデータ転送要求に対して優先的に許可を与える。調停回路ＡＲＢ＿０１からのデータ転送要求が存在しない場合には、調停回路ＡＲＢ＿００からのデータ転送要求に対して許可を与える。
調停回路２６は、調停回路２４からのデータ転送要求を優先して調停する。
【００８９】
上述した構成を有することによって、本実施形態に係るアービタは、優先順位に従って、データ転送要求を調停する。これにより、各バスマスタに対するデータ転送の要求が多種多様である場合であっても、一律に優先順位という共通の指標に基づいて、データ転送要求を調停することが可能となる。
【００９０】
第１２の実施形態
以下、本発明の第１２の実施形態について、述べる。
一般に、メモリバスの調停は、各バスマスタのバス使用要求（ＲＥＱ）が集中すると、その集中した時点からバス使用要求が十分平均化されるまでの間、かかる要求がメモリコントローラの処理能力を完全に上回ってしまうことが起こる。すなわち、図１５に示すように、極めて短期間ｔｐの間にバス使用要求が集中する結果、要求に係るバス幅ＢＷは、時刻ｔに達するまでの間、メモリコントローラの処理能力（Ｍ＿ＣＡＰ：処理可能なデータ量）を上回ることになる。
【００９１】
特に、かかる局所的なバンド幅ＢＷの増加は、各バスマスタのバス使用要求が一定ではなく、ある程度ばらつきがある場合に顕著となる。
この全バスマスタの要求密度のばらつき、及びに各バスマスタの要求密度のばらつきに対して、ＦＩＦＯバッファにより対応した場合に、たとえ適切なＦＩＦＯバッファ容量を設けても、適切な調停を行わなければ、ＦＩＦＯバッファのオーバーフロー／アンダーフローが起こってしまう。
例えば、単に全てのバスマスタに対して、トークンリング方式のような回転式調停を同一比率で行った場合には、各バスマスタのバス使用要求間隔と回転式調停等の割合が合っていないと、全バスマスタの合計のＦＩＦＯバッファ容量が全バスマスタの要求密度のばらつきに対して十分であったとしても、占有比率が高いバスマスタが必要以上に早く調停される一方で、占有比率が低いバスマスタが破綻する場合がある。
【００９２】
したがって、本実施形態に係るデータ処理装置では、複数の要求信号とツリー構造の調停回路を持つことで、各バスマスタのバンド幅の割合に応じた適切な調停を行うものである。
そのために、本実施形態に係るデータ処理装置では、各バスマスタがＦＩＦＯバッファのデータ量に応じた多数の要求信号を有する。なお、要求信号に対応するものは、ＦＩＦＯバッファのデータ量に限らず、たとえば、データ転送の要求時間でもよい。
本実施形態に係るデータ処理装置の回路構成としては、図１４に示した複数階層の調停回路により実現する。そして、要求信号に基づいて優先度を決定し、優先度が高い要求を、より上位の階層の調停回路により調停する。
【００９３】
したがって、１階層での調停におけるバンド幅の割合が適切でない場合であっても、オーバーフロー／アンダーフローが近づいたバスマスタは上位階層の調停回路で優先的に調停がなされる結果、バンド幅の割合に対し調停の割合が適切になる。
また、１階層を超えるバスマスタが複数になり２階層での調停が行われるようになり、適切な調停ができなくなっても、さらにオーバーフロー／アンダーフローが近づいたバスマスタは、上位階層の調停回路で優先的に調停がなされる結果、バンド幅の割合に対し調停の割合が適切になる。
【００９４】
すなわち、最上位階層までの調停の割合に留意する必要がなく、最上位階層の調停回路には同時に２以上のバスマスタがアクセスしないように、十分に各バスマスタの要求信号と調停に階層を設ければ、常に適切な調停の割合を実現できる。
さらにＦＩＦＯバッファ内のデータ量ではなく、実際にＦＩＦＯバッファからデータを読み出す時間が予測できる場合には、その時間があと何サイクルであるかに応じて要求信号の優先度を変更すれば、より好適な構成となる。
【００９５】
第１３の実施形態
以下、本発明の第１３の実施形態について、述べる。
一般に、メモリのローアドレスやバンクをまたぐデータの転送要求、リード処理とライト処理などの切り替わるデータ転送要求などでは、転送間に隙間時間が生じ、非効率な転送になる場合がある。したがって、たとえば、リードのためのデータ転送のみをまとめて要求する、または、ライトのためのデータ転送のみをまとめて要求することが転送効率の観点から望ましい。
しかし、転送効率を重視し過ぎると、ＦＩＦＯバッファが破綻するおそれがあるので、ＦＩＦＯバッファが破綻を起こさない範囲内で、極力転送効率を重視してアービタを構成することが望ましい。
【００９６】
そこで、本実施形態に係るアービタは、下位の階層においては、転送効率を重視して、データ転送の種類毎に要求信号を変更し、前のデータ転送に基づいて転送効率の観点から優先すべきデータ転送の優先順位を上げて調停する。すなわち、ＦＩＦＯバッファの破綻の恐れが小さい下位の階層では、転送効率に依存した調停を行い、ＦＩＦＯバッファに破綻の恐れが生じた場合には、上位階層において、ＦＩＦＯバッファのデータ量の割合に応じて、優先的な調停がなされる。
【００９７】
図１６は、本実施形態に係るアービタの構成を示す一例である。
図１６は、図１４を参照して述べたアービタと比較して、最下位の階層の調停回路のみが相違する。そして、最下位の階層の調停回路では、バスマスタにより決定された優先度ではなく、転送モードによって調停を行うことを特徴とする。
【００９８】
図１６において、最下位の階層の調停回路ＡＲＢ＿００ａは、異なる転送モードであるＴＦ＿Ａ，ＴＦ＿Ｂ，ＴＦ＿Ｃ，ＴＦ＿Ｄに対して、接続切替え回路ＥＸにより、調停の優先順位を任意に調整可能とする構成を有する。
すなわち、図に示すように、調停回路ＡＲＢ＿００ａは、ツリー構造の３つの優先権付調停回路から構成される調停回路群２７を含み、優先権に応じた調停を行う。したがって、接続切替え回路ＥＸにより接続状態を切り替えることで、転送モードに応じて調停の優先順位を可変とすることができる。
【００９９】
なお、転送モードは、たとえば、リードによるデータ転送やライトによるデータ転送などに代表されるデータ転送の種類をいうが、これに拘泥せず、メモリ回路の状態など転送効率に影響があるデータ転送の種類であれば、何でも構わない。
【０１００】
エンコーダＥＮＣは、前回のデータ転送情報ＰＲ＿ＴＲをエンコードした信号を接続切替え回路ＥＸに供給する。これにより、調停の優先順位を調整する。
【０１０１】
図１７は、接続切替え回路ＥＸの構成例を示す回路図である。
図１７において、ＲＥＱ＿Ａ，ＲＥＱ＿Ｂ，ＲＥＱ＿Ｃ，ＲＥＱ＿Ｄは、転送ＴＦ＿Ａ，ＴＦ＿Ｂ，ＴＦ＿Ｃ，ＴＦ＿Ｄからの転送要求信号であり、ＧＮＴ＿Ａ，ＧＮＴ＿Ｂ，ＧＮＴ＿Ｃ，ＧＮＴ＿Ｄは、転送ＴＦ＿Ａ，ＴＦ＿Ｂ，ＴＦ＿Ｃ，ＴＦ＿Ｄに対する転送許可信号である。
たとえば、入力した転送要求信号ＲＥＱ＿Ａ，ＲＥＱ＿Ｂ，ＲＥＱ＿Ｃ，ＲＥＱ＿Ｄに対して、接続切替え回路ＥＸは、エンコーダＥＮＣからの信号に基づいて、１つの転送要求信号のみをＲＥＱ（Ｈレベル）として出力する。
【０１０２】
実際には、図１７に示す接続切替え回路ＥＸが、調停回路群２７のツリー構成の末端に接続される結線の数（図１６に示す例では、４個）だけ設けられ、調停回路群２７に対して、エンコーダＥＮＣからの信号に基づいて、転送要求信号ＲＥＱ＿Ａ，ＲＥＱ＿Ｂ，ＲＥＱ＿Ｃ，ＲＥＱ＿Ｄの中から任意の転送要求信号を出力できるように構成される。
転送許可信号についても、同様に、調停回路群２７からの転送許可信号（ＧＮＴ）を、エンコーダＥＮＣからの信号に基づいて、転送許可信号ＧＮＴ＿Ａ，ＧＮＴ＿Ｂ，ＧＮＴ＿Ｃ，ＧＮＴ＿Ｄの中から選択して出力できるように構成される。
【０１０３】
なお、図１６では、異なる転送モードの数が４つであるので、調停回路群２７を３つの優先権付調停回路からなる構成としたが、転送モードの数が増える場合には、調停回路群２７のツリー構造を構成する優先権付調停回路の数を増やしていけば、対応可能である。その際には、図１７に示す接続切替え回路ＥＸのＡＮＤ回路を転送モードの数に応じて、並列に増加させる必要がある。
【０１０４】
第１４の実施形態
以下、本発明の第１４の実施形態について、述べる。
調停の際に、各バスマスタからデータ転送要求に対する優先順位の決定として最も適切な方法は、対応するＦＩＦＯバッファについて、オーバーフロー／アンダーフローが発生する時間を比較し、最も早くオーバーフロー／アンダーフローが発生するＦＩＦＯバッファに対応するバスマスタからのデータ転送要求（バス使用要求）を優先させる方法である。
【０１０５】
一般には、各バスマスタの各要求についてオーバーフロー／アンダーフローが発生する時間を予測することが困難な場合もあるが、本実施形態に係るアービタでは、各バスマスタの各要求についてオーバーフロー／アンダーフローが起こる時間を予測できる場合について、かかる時間そのものを比較する際の煩雑さを解決するものである。
【０１０６】
ところで、調停に要するサイクル数は、１単位のメモリアクセスにかかるサイクル（データ転送サイクル）の数以下でなければ、調停に要するサイクルがクリティカルになる可能性があり、転送効率が調停待ちのために低下する。
これに対し、たとえば、調停に要するサイクル数の平均値がデータ転送サイクル数より小さい場合には、必要に応じて、バス使用要求をキュー(QUE) に貯めることで、調停にかかるサイクルがクリティカルになることを防止する方法も考えられるが、その場合には、バスマスタからデータ転送そのものを却下するような命令が与えられる場合や、不意に早急にデータ転送をすべき旨のバス使用要求が与えられる場合に対応が困難になるという問題がある。
一方、並列のデータ処理を行い、一定サイクルで調停を行うように比較回路を大量に設けることは、特に多数のバスマスタがいる場合には、回路規模が膨大となる。
【０１０７】
そこで、本実施形態に係るアービタは、バスマスタのＦＩＦＯバッファに対するデータの読み込み／書き込みが単純な動作をする等予測通りの動作を行い、メモリバスへのアクセスがその効率を高めるためにデータ転送サイクルを一定長とする場合において、その書き込み／読み込みのバス使用要求を処理しないとオーバーフロー／アンダーフローが発生する時間そのものを転送単位にかかるサイクル内に比較し、各バスマスタからのバス使用要求の優先順位を決定する。
【０１０８】
図１８は、本実施形態に係るアービタに含まれる時間調停回路３１の構成を示す一回路例である。
図１８に示す時間調停回路３１では、アクセスの１単位（データ転送サイクル）を８サイクル以上とし、アクセスに要するサイクル数以下である８サイクルで調停を行う場合を例示する。また、オーバーフロー／アンダーフローの発生は、２０４７サイクル以内であると仮定し、タイマを１１ビット構成としている。
図１８に示すように、本実施形態に係る時間調停回路３１は、外部からイネーブル信号ｅｎと、複数のバスマスタ（１〜ｘ）からの要求信号Ｃｘ＿ＲＥＱおよびオーバーフロー／アンダーフローが発生するまでの時間Ｃｘ＿ＴＩＭ（〔１０：４〕は、上位７ビット分のデータであることを示す）を入力し、データ転送を許可するバスマスタのＩＤである許可ＩＤ（ＧＮＴ＿ＩＤ）を出力する。
【０１０９】
図１９は、図１８に示す時間調停回路３１の動作を示すタイミングチャートであり、（ａ）は、クロック信号ＣＬＯＣＫのタイミングを、（ｂ）は、スタートパルスＳＴＡＲＴの出力を、（ｃ）は、カウンタ５１のカウント値ＳＴＡＴＥ＿ＣＮＴを、（ｄ）は、バスマスタＣ１〜Ｃ６の要求時間を、（ｅ）は、バスマスタ毎のＳ／Ｒラッチ群５３の出力を、（ｆ）は、ＡＮＤ回路５５の出力であるａｌｌ＿ｒｅｓ＿ｍａｓｋを、それぞれ示す。
以下、本実施形態に係る時間調停回路３１の動作を、図１８および図１９に関連付けて述べる。
【０１１０】
外部からのイネーブル信号ｅｎにより、クロック信号ＣＬＯＣＫの立ち上がりのタイミングに同期して、図１９（ｂ）に示すように、スタートパルスＳＴＡＲＴが立ち上がると、カウンタ５１によりカウントが開始し、カウント値ＳＴＡＴＥ＿ＣＮＴを出力する（図１９（ｃ））。
カウンタ５１は、たとえば、３ビットのタイマで構成され、カウント値ＳＴＡＴＥ＿ＣＮＴは、「１」から「７」まで出力した後に「０」になると、時間調停回路３１は、各バスマスタの要求時間の比較が終了したことを示すＶＡＬＩＤ信号を出力する。
なお、カウンタ５１は、調停に有してもよいサイクル数に基づき、カウントの最大値が設定される。
【０１１１】
カウンタ群５２には、バスマスタＣ１〜Ｃ６毎の要求時間、すなわち、ＦＩＦＯバッファのオーバーフロー／アンダーフローが発生する時間を示す上位７ビットである時間情報Ｃ１＿ＴＩＭ〔１０：４〕〜Ｃ６＿ＴＩＭ〔１０：４〕が、図１９（ｄ）に示すように、入力される。
入力された各バスマスタ毎の要求時間は、順次、上位ビットから１ビットずつＳ／Ｒラッチ群５３の各Ｓ／Ｒラッチに供給される。
【０１１２】
Ｓ／Ｒラッチ群５３では、バスマスタの数に応じた複数のＳ／Ｒラッチを有し、各Ｓ／Ｒラッチは、初期の時刻ｔ１においては、スタートパルスＳＴＡＲＴと要求信号Ｃｘ＿ＲＥＱ（ｘ：１〜６）により、すべてセット（「１」）されている。
カウンタ群５２のあるカウンタから出力されるビットが「１」であって、ビット「０」を出力する他のカウンタが存在する場合には、ビット「１」を出力するカウンタに対応するＳ／Ｒラッチがリセット（「０」）される。これは、当該カウンタに対応するバスマスタの要求時間が、他のバスマスタの要求時間より時間が長く、バス使用要求の優先順位が低いためである。
【０１１３】
たとえば、図１９（ｅ）に示す時刻ｔ２においては、バスマスタＣ１の最上位ビットが「１」であり、他のすべてのバスマスタの最上位ビットが「０」であるので、ビット「０」を出力する他のカウンタが存在することになり、バスマスタＣ１に対応するＳ／Ｒラッチはリセット（「０」）される。同様に、図１９（ｅ）に示す時刻ｔ３においては、バスマスタＣ２の最上位から２番目のビットが「１」であり、他のバスマスタ（バスマスタＣ３〜Ｃ６）の最上位から２番目のビットが「０」であるので、ビット「０」を出力する他のカウンタが存在することになり、バスマスタＣ２に対応するＳ／Ｒラッチはリセット（「０」）される。
図１９に示す時間調停回路３１では、時間調停中に一旦リセットされると、その後にセットされない。
【０１１４】
なお、上述したように、Ｓ／Ｒラッチ群５３を動作させる際に、出力ビットの比較の対象となるすべてのバスマスタのＳ／Ｒラッチがセット（「１」）された場合には、ＡＮＤ回路５５により、ａｌｌ＿ｒｅｓ＿ｍａｓｋがセット（「１」）される。
たとえば、図１９に示す時刻ｔ４では、（ｄ）に示すように、出力ビットの比較対象であるバスマスタＣ３〜Ｃ６の最上位から４番目のビットがすべて「１」であるため、ＡＮＤ回路５５により、ａｌｌ＿ｒｅｓ＿ｍａｓｋがセット（「１」）される。これにより、上記各バスマスタに対応したＳ／Ｒラッチが全てリセット（「０」）されることを回避する。
すなわち、出力ビットがすべてのバスマスタで同一の場合には、要求時間による優劣を付けることができないので、当該出力ビットでは処理をせず、次の出力ビットに基づいて処理を行う。
【０１１５】
上述したようにＳ／Ｒラッチ群５３が動作し、時刻ｔ８になって時間調停が終了すると、調停回路（ＡＲＢ）５４は、Ｓ／Ｒラッチ群５３のうち、セット（「１」）されているＳ／Ｒラッチに対応するバスマスタを対象として調停し、図１８に示すように、調停結果として許可ＩＤ（ＧＮＴ＿ＩＤ）を出力する。
すなわち、時刻ｔ８においてＳ／Ｒラッチがセット（「１」）されているＳ／Ｒラッチに対応するバスマスタは、最も早くオーバーフロー／アンダーフローが発生するバスマスタであり、そのうちの１つのバスマスタを選択してバスに対するアクセスを許可するのである。
【０１１６】
以上説明したように、本実施形態に係るアービタによれば、バスマスタのＦＩＦＯバッファに対するデータの読み込み／書き込みが単純な動作をする等予測通りの動作を行い、メモリバスへのアクセスがその効率を高めるためにデータ転送サイクルを一定長とする場合において、簡単な構成により、その書き込み／読み込みのバス使用要求を処理しないとオーバーフロー／アンダーフローが発生する時間そのものを転送単位にかかるサイクル内に比較し、各バスマスタからのバス使用要求の優先順位を決定することができる。
また、本実施形態に係るアービタによれば、データ転送サイクル内に時間調停が終了するように構成したので、調停にかかる時間がデータ転送サイクルを越えてクリティカルになることがない。
【０１１７】
第１５の実施形態
以下、本発明の第１５の実施形態について、述べる。
本実施形態に係るデータ処理装置は、中央に共通のバッファを設け、従来各バスマスタ毎に有していたＦＩＦＯバッファの容量を低減し、チップ全体のモード毎に不使用／不要となるＦＩＦＯバッファ容量を低減することで、チップ面積を減少させるバスシステムである。
【０１１８】
図２０は、従来のアービタ（ＡＲＢ）が適用される周辺回路の構成を示す一例である。図において、リード処理を行うバスマスタＲＤ＿Ｃ１，ＲＤ＿Ｃ２と、ライト処理を行うバスマスタＷＲ＿Ｃ１，ＷＲ＿Ｃ２からのデータ転送要求がアービタ（ＡＲＢ）により調停され、メモリコントローラ（ＭＥＭ＿Ｃ）を介して、外部のメモリとの間でデータ転送がなされる。その際、各バスマスタは、データ転送が許可されて実際にデータ転送がなされるまでの間に破綻することがないように、ＦＩＦＯバッファを有している。
一般に、このＦＩＦＯバッファの容量は、バス使用要求すべき時間（たとえば、ライト処理の場合、そのデータ転送要求が許可されるとＦＩＦＯバッファがちょうど空になる時間）から、データがＦＩＦＯバッファに読み書きされるまでのレイテンシ（遅延時間）のワースト値を考慮して見積もられる。
【０１１９】
一方、近年のバスマスタの数の増加に伴って、調停の待ち時間が大幅に増加している。また、ＤＤＲ＿ＳＤＲＡＭのスペックを鑑みると、効果的なメモリアクセスの１単位のバーストレングスが増加し、これにより、上述したレイテンシが一層大きくなる。更には、メモリバスのバス幅も大きくなる傾向にある。これらの事情から、レイテンシのワースト値を考慮すると、各バスマスタが持つべきＦＩＦＯバッファの容量は、格段に増加している。
【０１２０】
さらに、かかるバスマスタが増加や、１チップにおける動作システムモードの多様化などにより、動作するバスマスタの数、種類、及びバンド幅が各システムモード毎に著しく異なる傾向にある。したがって、あるモードにおいては、ＦＩＦＯバッファが動作せず無駄になるということが発生する。
また、あるバスマスタに対して、その最大のバンド幅に基づいてＦＩＦＯバッファ容量を決定しても、ほとんどのモードでは、決定した容量まで使用しないことがあり、ＦＩＦＯバッファ容量が無駄になる場合もある。
【０１２１】
これに対し、ソフトウエアにより、システムモード毎に各バスマスタに与えるＦＩＦＯバッファ容量を取り替えるように構成すれば、あるシステムモードでＦＩＦＯバッファが無駄になることを解決できるが、通常、システム動作が変化した場合にそのＦＩＦＯバッファを取り替える時期を定めるのが困難であり、また、システムモード毎にソフトウエアでＦＩＦＯバッファ容量の変更をすると、著しく構成が煩雑になってしまうおそれがあるという問題がある。
【０１２２】
そこで、本実施形態に係るアービタでは、中央に大きな共用バッファ（中央バッファ）を持ち柔軟性のある調停を行うことで、従来各バスマスタが有していた不要なＦＩＦＯバッファ容量を低減させることを特徴とする。すなわち、本実施形態に係るアービタは、システムモードの変化等に応じて、各バスマスタが中央バッファを使用する比率を自動的に調節可能とし、システム全体でのＦＩＦＯバッファ容量を縮小させて、チップ面積の縮小を実現する。
【０１２３】
図２１は、本実施形態に係るアービタ（ＡＲＢ）の構成を示す一例である。
本実施形態に係るアービタは、中央バッファとして、リード用中央バッファ（ＣＴＬ＿ＢＵＦ）６４、およびライト用中央バッファ（ＣＴＬ＿ＢＵＦ）６５の２つのバッファを有し、各中央バッファは、キーによりデータ格納領域が管理されている。
そして、リード処理を行うバスマスタＲＤ＿Ｃ１，ＲＤ＿Ｃ２、およびライト処理を行うバスマスタＷＲ＿Ｃ１，ＷＲ＿Ｃ２は、それぞれ、リード用バッファキー調停回路６１（ＲＤ＿ＢＵＦＫＥＹ）、およびライト用バッファキー調停回路（ＷＲ＿ＢＵＦＫＥＹ）６２に対して、データ要求時間の情報とともに、中央バッファの空き領域に対応するキーを取得するための要求を行う。
【０１２４】
各バッファキー調停回路では、各バスマスタより与えられたデータ要求時間の情報に基づいて、たとえば、図１８を参照して述べた時間調停回路３１による時間調停を行い、最も早く処理すべきデータ転送に係るバスマスタの要求を選択する。
さらに、たとえばリード用バッファキー調停回路６１では、リード用中央バッファ６４に空き領域があれば、選択されたデータ転送要求に係るメモリアドレス等の情報とリード用中央バッファ６４の空き領域のキーとともに、リード／ライト調停回路６３に対して、データ転送要求を行う。
【０１２５】
リード／ライト調停回路６３（ＲＤ／ＷＲ＿ＡＲＢ）は、リード用バッファキー調停回路６１からのデータ転送要求とライト用バッファキー調停回路６２からのデータ転送要求とを調停し、いずれかの要求を選択する。
その際、メモリアクセスでは、リードとライトの切り替え時に転送効率を損うため、たとえば、ライト用中央バッファ６５にある程度蓄積された場合や、リード用バッファキー調停回路６１からの要求がなくなった（リード用中央バッファ６４がフルになった）場合に、まとめてライト用バッファキー調停回路６２に対する要求を許可するなどの調停を行う。これにより、リード処理およびライト処理を交互に行う等の非効率な動作を回避できる。
【０１２６】
リード用中央バッファ６４およびライト用中央バッファ６５は、キーに対応する複数のデータ格納領域毎に管理される。
たとえば、リード用バッファキー調停回路６１による調停の結果、キーが与えられたバスマスタは、リード用中央バッファ６４内の与えられたキーに対応するデータ格納領域から、所定の時刻にデータを取り出す。
その際、複数のバスマスタがデータを取り出すため、図２１に示すように、かかる複数のバスマスタを調停するため、リード用中央バッファ６４は、データ調停回路（ＤＡＴＡ＿ＡＲＢ）を有している。同様の観点から、ライト用中央バッファ６５も、データ調停回路（ＤＡＴＡ＿ＡＲＢ）を有している。
【０１２７】
図２２および図２３に、それぞれ、リード用中央バッファ６４およびライト用中央バッファ６５の構成例を示す。
図２２に示すように、リード用中央バッファ６４は、上述したデータ調停回路６４１と、キーに対応するＶＡＬＩＤ（ＶＡＬ）とＶＡＬに対応するデータ格納領域（ＲＯＯＭ）を含むデータ格納部６４２と有する。
一方、図２３に示すように、ライト用中央バッファ６５は、上述したデータ調停回路６５１と、キーに対応するＶＡＬＩＤ（ＶＡＬ），アドレス情報（ＡＤＲ），データ個数の情報（ＮＵＭ）とデータ格納領域（ＲＯＯＭ）を含むデータ格納部６５２と有する。
【０１２８】
リード処理では、リード用バッファキー調停回路６１の調停が終了した時点で、メモリコントローラ（ＭＥＭ＿Ｃ）から、アドレス情報（ＡＤＲ）およびデータ個数の情報（ＮＵＭ）が各バスマスタに直接与えられるので、リード用中央バッファ６４のデータ格納部６４２では、図２２に示すように、アドレス情報（ＡＤＲ）およびデータ個数の情報（ＮＵＭ）を保持する必要はない。
ライト処理では、書込み要求から実際にメモリに書込みが行われるまでに遅れがあるために、バスマスタ側が２つ以上のバッファキーを与えられた場合など、アドレス情報（ＡＤＲ）およびデータ個数の情報（ＮＵＭ）をバッファキーに対応して保持する必要があることから、図２３に示すように、これらの情報をライト用中央バッファ６５が保持する構成としている。
【０１２９】
上述した構成を有する本実施形態に係るアービタについて、先ずリード処理について述べる。
図２４は、リード用バッファキー調停回路６１の回路構成の一例である。
図２４において、時間調停回路（ＴＩＭ＿ＡＲＢ）６１１は、複数のリード用バスマスタからの要求信号ＲＤ＿Ｃｘ＿ＲＥＱおよび要求時間ＲＤ＿Ｃｘ＿ＴＩＭ（ＦＩＦＯバッファがアンダーフローするまでの時間）に基づいて調停を行う。すなわち、時間調停回路６１１は、要求時間ＲＤ＿Ｃｘ＿ＴＩＭが最も短いバスマスタを選択するように調停し、その調停結果であるＧＮＴ＿ＩＤ、および調停が正しく終了したことを示すＶＡＬＩＤ（Ｈレベル）を出力する。
時間調停回路６１１としては、具体的に、たとえば、図１８に示した時間調停回路３１を適用することができる。
【０１３０】
空き領域管理部（ＲＯＯＭ＿ＡＤＭ）６１２は、リード用中央バッファ６４のどの領域が空き領域であるかを管理しており、空き領域があれば、時間調停回路６１１により調停されたバスマスタに対して、空き領域に対応するキーを与える（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＫＥＹ）。これにより、キーを与えられたバスマスタは、当該キーに対応するデータ格納領域にアクセスしてデータを取り出すことが可能となる。
【０１３１】
一方、リード用中央バッファ６４からのデータの読み出しが終了し、キーが返却されたときには（ＲＤ＿Ｃｘ＿ＫＥＹ，ＲＤ＿Ｃ１＿ＥＮＤ）、当該キーを他のバスマスタに与えることを可能とする。
【０１３２】
図２５は、空き領域管理部６１２の具体的な回路構成の一例である。
図２５に示す回路例では、Ｓ／Ｒラッチ群７２の各Ｓ／Ｒラッチがキーに対応し、キーを与えることが可能なＳ／Ｒラッチがセット（ｓｅｔ）される。Ｓ／Ｒラッチ群７２のうち、いずれか１つのＳ／Ｒラッチがセットされていれば、ＯＲ回路７４によりＶＡＬＩＤはＨレベルとなり、対応するキー番号がエンコーダ７５により出力され、時間調停回路６１１により許可されたバスマスタに渡される。
データ転送要求が許可された場合には、リード／ライト調停回路６３からのＧＮＴにより、デコーダ７６を介して、バスマスタに渡されたキーに対応するＳ／Ｒラッチがリセット（ｒｅｓ）される。これにより、他のバスマスタに同じキーが渡されることはない。
【０１３３】
一方、バスマスタからキーが返却されると（Ｃｘ＿ＫＥＹ，Ｃｘ＿ＥＮＤ）、デコーダ群７１およびＯＲ回路群７３により、該当するＳ／Ｒラッチがセット（ｓｅｔ）される。これにより、他のバスマスタに当該キーを渡すことが可能な状態となる。
【０１３４】
図２４に戻ると、選択回路（ｓｅｌ）６１３は、各バスマスタからデータ転送に係るアドレス情報（ＡＤＲ）およびデータ個数の情報（ＮＵＭ）を入力し、時間調停回路６１１により調停されたバスマスタのアドレス情報（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＡＤＲ）およびデータ個数の情報（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＮＵＭ）を選択して、リード／ライト調停回路６３へ送出する。
【０１３５】
ＡＮＤ回路６１４は、時間調停回路６１１および６１２からのＶＡＬＩＤがともにＨレベルの場合に限り、空き領域に対する要求信号（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＲＥＱ）を送出する。
【０１３６】
次いで、以上述べた構成を有する本実施形態に係るアービタのリード処理の動作について、図２６に示す処理フローを参照しながら述べる。
先ず、図２６のステップＳＴ１において、各バスマスタＲＤ＿Ｃｘは、リード用バッファキー調停回路（ＲＤ＿ＢＵＦＫＥＹ）６１に対して、要求信号Ｃｘ＿ＲＥＱおよび要求時間ＲＤ＿Ｃｘ＿ＴＩＭを供給し、ライト処理によるデータ転送を要求する。
また、各バスマスタＲＤ＿Ｃｘは、選択回路６１３に対して、アドレス情報（ＡＤＲ）およびデータ個数の情報（ＮＵＭ）を供給する。
【０１３７】
次に、ステップＳＴ２において、データ転送の要求を受けたリード用バッファキー調停回路６１は、要求時間ＲＤ＿Ｃｘ＿ＴＩＭに基づいて調停を行い、最も早くデータ転送を必要とするバスマスタを選択すると同時に、リード用中央バッファ６４に空き領域がある場合には、その空き領域に対する要求信号（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＲＥＱ）、キー番号（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＫＥＹ）、アドレス情報（ＡＤＲ）、およびデータ個数の情報（ＮＵＭ）を、リード／ライト調停回路（ＲＤ／ＷＲ＿ＡＲＢ）６３に渡す。
選択回路６１３は、時間調停回路６１１により調停されたバスマスタのアドレス情報（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＡＤＲ）およびデータ個数の情報（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＮＵＭ）を、リード／ライト調停回路６３へ送出する。
【０１３８】
リード／ライト調停回路６３は、上記リード側からの要求（ＲＤ＿ＫＥＹ＿ＡＲＢ＿ＲＥＱ）と、ライト側からの要求とに基づいて調停を行う。これにより、リード処理とライト処理が交錯する非効率なデータ転送が回避される。
当該調停の後、リード／ライト調停回路６３は、リード用バッファキー調停回路６１より渡されたキー、アドレス情報（ＡＤＲ）、およびデータ個数の情報（ＮＵＭ）を、メモリコントローラ（ＭＥＭ＿Ｃ）、およびリード用バッファキー調停回路６１で調停されたバスマスタに渡す（ステップＳＴ３ａ，ＳＴ３ｂ）。バッファキーを受けたバスマスタは、次のデータ転送要求があれば、次の要求信号Ｃｘ＿ＲＥＱおよび要求時間ＲＤ＿Ｃｘ＿ＴＩＭを供給する。なお、各バスマスタは、キーを必要な分蓄積できるような構成とする。
さらに、リード／ライト調停回路６３は、リード用中央バッファ６４の当該キーに対応するＶＡＬＩＤをリセットする。
【０１３９】
ステップＳＴ４では、メモリコントローラ（ＭＥＭ＿Ｃ）は、リード／ライト調停回路６３より渡されたアドレス情報（ＡＤＲ）およびデータ個数の情報（ＮＵＭ）に応じたデータを、リード用中央バッファ６４内のキー番号に対応する空き領域に格納すると同時に、ＶＡＬＩＤをセット（Ｈレベル）する。
ステップＳＴ５では、リード用中央バッファ６４では、処理サイクル毎に、複数の要求に係るデータ格納領域からのデータ転送を調停する。調停は、たとえば、トークンリング方式のような回転式調停等により行われる。
なお、かかる調停では、読み込みデータがリード用中央バッファ６４に格納されるまでの間、キーに対応するＶＡＬＩＤがセットされている場合には、キーを持たない他のバスマスタからの要求をマスクする。
【０１４０】
ステップＳＴ５において、バスマスタは、個々に割り当てられたＦＩＦＯバッファに空きができると、キーとともにデータ転送をリード用中央バッファ６４に対して要求する。  リード用中央バッファ６４のデータ調停回路６４１からデータの取り出しを許可されたバスマスタは、キー番号に対応するデータ格納領域からデータを取り出した後、キーを返却する（ステップＳＴ６）。すなわち、バスマスタからのキー返却情報（ＲＤ＿Ｃｘ＿ＫＥＹ，ＲＤ＿Ｃｘ＿ＥＮＤ）に基づいて、リード用バッファキー調停回路６１の空き領域管理部６１２は、返却されたキーに対応するＳ／Ｒラッチをセットして、次のリード処理のバスマスタのためにキーを使用可能とする。
【０１４１】
次いで、本実施形態に係るアービタのライト処理について述べる。
図２７は、ライト用バッファキー調停回路６２の回路構成の一例である。
図２７において、時間調停回路６２１は、複数のライト用バスマスタからの要求信号ＷＲ＿Ｃｘ＿ＲＥＱおよび要求時間ＷＲ＿Ｃｘ＿ＴＩＭ（ＦＩＦＯバッファがオーバーフローするまでの時間）に基づいて調停を行う。すなわち、時間調停回路６２１は、要求時間ＷＲ＿Ｃｘ＿ＴＩＭが最も短いバスマスタを選択するように調停し、その調停結果であるＧＮＴ＿ＩＤ、および調停が正しく終了したことを示すＶＡＬＩＤ（Ｈレベル）を出力する。
時間調停回路６２１としては、具体的に、たとえば、図１８に示した時間調停回路３１を適用することができる。
【０１４２】
空き領域管理部（ＲＯＯＭ＿ＡＤＭ）６２２は、ライト用中央バッファ６５の各データ格納領域（ＲＯＯＭ）が空き領域（使用可能）であるか否かを管理しており、空き領域が存在すれば、時間調停回路６２１により調停されたバスマスタに対して、空き領域に対応するキーを与える（ＷＲ＿ＫＥＹ＿ＡＲＢ＿ＫＥＹ）。具体的には、空き領域管理部６２２は、図２５で示した回路と同様に構成し、空き領域があれば、時間調停回路６２１により調停されたバスマスタにキーを与えるとともに、対応するＳ／Ｒラッチがリセットされる。
キーが与えられたバスマスタは、当該キーに対応するデータ格納領域にアクセスしてデータを書き込むことが可能となる。書込み終了後は、当該キーに対応するデータ格納領域が有効であることを示す信号をセットする。
【０１４３】
一方、ライト用中央バッファ６５からメモリへの実際のデータの書込みが終了したとき、メモリコントローラ（ＭＥＭ＿Ｃ）はキーを返却し（ＢＵＦ＿ＥＮＤ＿ＫＥＹ，ＢＵＦ＿ＥＮＤ）、空き領域管理部の対応するＳ／Ｒラッチをセットして、当該キーを他のバスマスタに与えることを可能とする。また、当該キーに対応するデータ格納領域が有効であることを示す信号をリセットする。
【０１４４】
選択回路（ｓｅｌ）６２３は、各バスマスタからデータ転送に係るアドレス情報（ＡＤＲ）およびデータ個数の情報（ＮＵＭ）を入力し、時間調停回路６２１により調停されたバスマスタのアドレス情報（ＷＲ＿ＡＤＲ）およびデータ個数の情報（ＷＲ＿ＮＵＭ）を選択して、リード／ライト調停回路６３へ送出する。
【０１４５】
ＡＮＤ回路６２４は、時間調停回路６２１および空き領域管理部６２２からのＶＡＬＩＤがともにＨレベルの場合に限り、空き領域に対する要求信号（ＷＲ＿ＫＥＹ＿ＡＲＢ＿ＥＮ）を送出する。
【０１４６】
以上述べた構成を有する本実施形態に係るアービタのライト処理の動作について、図２８に示す処理フローを参照しながら、説明する。
先ず、図２８のステップＳＴ１０において、各バスマスタＷＲ＿Ｃｘは、ライト用バッファキー調停回路（ＷＲ＿ＢＵＦＫＥＹ）６２に対して、要求信号Ｃｘ＿ＲＥＱおよび要求時間ＷＲ＿Ｃｘ＿ＴＩＭを供給し、ライトのためのデータ転送を要求する。
また、各バスマスタＷＲ＿Ｃｘは、選択回路６２３に対して、アドレス情報（ＡＤＲ）およびデータ個数の情報（ＮＵＭ）を供給する。
【０１４７】
次に、データ転送の要求を受けたライト用バッファキー調停回路６２は、時間調停回路６２１により、要求時間ＷＲ＿Ｃｘ＿ＴＩＭに基づいて調停を行い、最も早くデータ転送を必要とするバスマスタを選択する。
そして、選択したバスマスタに対して許可ＩＤ（ＷＲ＿Ｃ＿ＧＮＴ＿ＩＤ）を送出すると同時に、ライト用中央バッファ６５に空き領域がある場合には、その空き領域に対する要求信号（ＷＲ＿ＫＥＹ＿ＡＲＢ＿ＲＥＱ）、キー（ＷＲ＿Ｃ＿ＫＥＹ）を、当該バスマスタに対して送出する（ステップＳＴ２０ａ）。
選択回路（ｓｅｌ）６２３は、時間調停回路６２１により調停されたバスマスタのアドレス情報（ＷＲ＿ＡＤＲ）およびデータ個数の情報（ＷＲ＿ＮＵＭ）を選択して、ライト用中央バッファ６５へ送出する（ステップＳＴ２０ｂ）。
【０１４８】
バスマスタは、自己が有するＦＩＦＯバッファに所定のデータ量、たとえば、１ワード分のデータが蓄積されると、キー情報（ＷＲ＿ＫＥＹ＿ＡＲＢ＿ＫＥＹ，ＷＲ＿ＫＥＹ＿ＡＲＢ＿ＥＮ）に基づいて、ライト用中央バッファ６５に対してデータ書込み要求を行う。
ライト用中央バッファ６５は、データ調停回路６５１により、かかるデータ書込み要求を調停し、書込み許可がなされると（ＷＲ＿Ｃ＿ＧＮＴ）、バスマスタは、キーに対応するデータ格納領域に対してデータの書込みを行う（ステップＳＴ３０）。
【０１４９】
バスマスタからのデータの書込みが終了すると、ライト用中央バッファ６５のキーに対応するＶＡＬＩＤ（ＶＡＬ）がセットされる。
複数のキーに対応するＶＡＬＩＤのうち、少なくとも１つのＶＡＬＩＤがセットされている場合、ライト用中央バッファ６５は、リード／ライト調停回路６３に対し、ライトのためのデータ転送要求を行う（ステップＳＴ４０）。
【０１５０】
リード／ライト調停回路６３による調停の結果、書込み要求が許可されると、ライト用中央バッファ６５からメモリコントローラ（ＭＥＭ＿Ｃ）に対して、データ転送がなされる（ステップＳＴ５０）。
データの書込みがすべて終了すると、メモリコントローラ（ＭＥＭ＿Ｃ）は、ライト用バッファキー調停回路６２に対して、ＢＵＦ＿ＥＮＤ＿ＫＥＹ，ＢＵＦ＿ＥＮＤによりキーを返却する（ステップＳＴ６０）。
【０１５１】
以上説明したように、本実施形態に係るアービタによれば、すべてのバスマスタが共用する中央バッファを有し、各バスマスタからのデータ転送要求を、中央バッファを細分化したデータ格納領域に対応するキーをもって調停する構成としたので、動作モード等に応じてバスマスタからのデータ転送要求が著しく変動する場合でも、その変動するデータ転送動作を中央バッファが吸収することが可能となり、個々のバスマスタは、最悪ケースでのＦＩＦＯバッファ容量を見積もる必要がない。
したがって、システム全体でのＦＩＦＯバッファ容量が縮小し、チップ面積を低減させることが可能となるとともに、コスト低減に資する。
【０１５２】
また、本実施形態に係るアービタによれば、中央バッファにはＤＤＲ＿ＳＤＲＡＭのようにバーストレングスを大きくとる必要がないため、１サイクル分のデータ毎に各バスマスタにデータを配ることができ、レイテンシが著しく減少する。これにより、各バスマスタのＦＩＦＯバッファ容量はさらに小さくなることが期待され、多様なシステムのモードに合わせた無駄なＦＩＦＯバッファ容量を削減することができる。
【０１５３】
なお、本発明の内容は、上記した実施形態に拘泥せず、本発明の要旨を変更しない範囲で様々な改変が可能である。
たとえば、図２９に示すデータ処理装置は、第１５の実施形態で述べた中央バッファを有するアービタ（ＡＲＢ）を、たとえば、第２の実施形態において、第２階層のバスマスタを調停するためのアービタとして適用した一例である。これにより、第２階層の各バスマスタが有するＦＩＦＯバッファの容量が格段に削減される。
【図面の簡単な説明】
【０１５４】
【図１】本発明に係るバス調停装置が適用されるシステム構成である。
【図２】実施形態に係る階層型のアービタの一構成例である。
【図３】実施形態に係る階層型のアービタの一構成例である。
【図４】実施形態に係る階層型のアービタの一構成例である。
【図５】実施形態に係る階層型のアービタの一構成例である。
【図６】バス使用比率制御回路の一構成例を示す。
【図７】バス使用比率制御回路の一構成例を示す。
【図８】バス使用比率制御回路の一構成例を示す。
【図９】バス使用比率制御回路の一構成例を示す。
【図１０】第１階層のバスマスタに対する処理を模式的に表した図であり、（ａ）は、Ｎ番目およびＮ＋１番目の処理を、（ｂ）は、Ｎ＋１番目およびＮ＋２番目の処理を、それぞれ示す。
【図１１】実施形態に係る階層型のアービタの一構成例である。
【図１２】第１０の実施形態に係るアービタを説明するための図である。
【図１３】ＦＩＦＯバッファのデータ量に応じて、優先順位をもったデータ転送要求を行うバスマスタを例示する図であり、（ａ）は、ライト処理の際のデータ転送要求を、（ｂ）は、リード処理の際のデータ転送要求を、それぞれ示す。
【図１４】各バスマスタが優先順位に応じたデータ転送要求を行う場合のアービタの構成である。
【図１５】各バスマスタのバス使用要求が集中した場合のバス幅とメモリコントローラの処理能力の関係を示す。
【図１６】最下位の階層の調停回路で、転送モードによって調停を行うアービタの構成を示す。
【図１７】接続切替え回路ＥＸの構成例を示す回路図である。
【図１８】時間調停回路の構成を示す一回路例である。
【図１９】時間調停回路の動作を示すタイミングチャートであり、（ａ）は、クロック信号ＣＬＯＣＫのタイミングを、（ｂ）は、スタートパルスＳＴＡＲＴの出力を、（ｃ）は、カウンタの値であるＳＴＡＴＥ＿ＣＮＴを、（ｄ）は、バスマスタＣ１〜Ｃ６の要求時間を、（ｅ）は、バスマスタ毎のＳ／Ｒラッチ群の出力を、（ｆ）は、ＡＮＤ回路の出力であるａｌｌ＿ｒｅｓ＿ｍａｓｋを、それぞれ示す。
【図２０】従来のアービタが適用される周辺回路の構成を示す一例である。
【図２１】中央バッファを有するアービタの構成例である。
【図２２】リード用中央バッファの構成例である。
【図２３】ライト用中央バッファの構成例である。
【図２４】リード用バッファキー調停回路の回路構成の一例である。
【図２５】空き領域管理部の具体的な回路構成の一例である。
【図２６】実施形態に係るアービタのリード処理の動作フローである。
【図２７】ライト用バッファキー調停回路の回路構成の一例である。
【図２８】実施形態に係るアービタのライト処理の動作フローである。
【図２９】実施形態に係るデータ処理装置の一例である。
【符号の説明】
【０１５５】
１０…メモリコントローラ（ＭＥＭ＿Ｃ）、２１，２２，２０ａ，２０ｂ，２４，２５，２６…調停回路、２７…調停回路群、２３，２３ａ，２３ｂ，２３ｃ，２３ｄ…バス使用比率制御回路、３１…時間調停回路、６１…リード用バッファキー調停回路、６２…ライト用バッファキー調停回路、６３…リード／ライト調停回路、６４…リード用中央バッファ、６５…ライト用中央バッファ。