(57)【要約】  【課題】  バス帯域幅（スロット数）の不足により処理が破綻するか否かを予め判定できるバス調停装置を提供する。  【解決手段】  スロット割付周期レジスタ１０は所定のスロット数で規定されるスロット割付周期を記憶する。予約スロットレジスタ２１はリアルタイム処理を実行するＶＣＥ３に予め割り当てる予約スロット数を記憶する。予約スロットレジスタ２２はリアルタイム処理を実行するＡＣＥ４に予め割り当てる予約スロット数を記憶する。残余予約スロットレジスタ２０は、スロット割付周期から、ＶＣＥ３及びＡＣＥ４の予約スロット数を差し引いた結果を記憶する。残余予約スロットレジスタ２０を外部からモニタすることで、スロット数の不足により、これから実行しようとする処理が破綻するか否かを予め判定できる。【選択図】  図２
2004234635.tif 000002
【特許請求の範囲】
【請求項１】
バスに接続される複数のモジュール間のデータ転送要求を調停するバス調停装置であって、
複数のスロットで構成されるスロット割付周期を表す情報を記憶するスロット割付周期記憶手段と、
前記複数のモジュールのうちの所定の前記モジュールに予め割り当てるスロット数である予約スロット数を表す情報を記憶する予約スロット数記憶手段と、
前記スロット割付周期を構成するスロット数と前記予約スロット数との差である残余予約スロット数を表す情報を記憶する残余予約スロット数記憶手段と、
前記予約スロット数が割り当てられた前記所定のモジュールのデータ転送要求が許可される度に、前記予約スロット数の残余スロット数を算出し、かつ、前記残余予約スロット数を使用する前記モジュールのデータ転送要求が許可される度に、前記残余予約スロット数の残余スロット数を算出する残余スロット数算出手段と、
前記予約スロット数記憶手段が記憶する前記予約スロット数を表す情報を初期値として記憶し、かつ、前記残余スロット数算出手段が算出した、前記予約スロット数の前記残余スロット数を表す情報を記憶する第１の更新スロット数記憶手段と、
前記残余予約スロット数記憶手段が記憶する前記残余予約スロット数を表す情報を初期値として記憶し、かつ、前記残余スロット数算出手段が算出した、前記残余予約スロット数の前記残余スロット数を表す情報を記憶する第２の更新スロット数記憶手段と、
前記複数のモジュールに対応して設けられ、各々が、対応する前記モジュールに割り当てられた、前記第１の更新スロット数記憶手段あるいは前記第２の更新スロット数記憶手段、を表す情報を記憶する複数の更新スロット数指定記憶手段と、
前記モジュールからのデータ転送要求があった場合に、当該モジュールに対応する前記更新スロット数指定記憶手段が記憶する前記情報が表す前記第１の更新スロット数記憶手段又は前記第２の更新スロット数記憶手段を参照して、参照した前記第１の更新スロット数記憶手段又は前記第２の更新スロット数記憶手段が記憶している前記残余スロット数の残りがあるときに、当該モジュールがデータ転送要求を許可する候補であることを示す転送許可候補通知信号を生成する転送許可候補決定手段と、
所定の規則に従って、前記転送許可候補通知信号が示す前記モジュールからのデータ転送要求の許否を決定する転送許可決定手段と、を備え、
前記予約スロット数が割り当てられた前記所定のモジュールに対応する前記更新スロット数指定記憶手段には、前記第１の更新スロット数記憶手段を表す情報が記憶され、
前記残余予約スロット数を使用する前記モジュールに対応する前記更新スロット数指定記憶手段には、前記第２の更新スロット数記憶手段を表す情報が記憶され、
前記スロット割付周期が経過する度に、前記第１の更新スロット数記憶手段には、前記予約スロット数記憶手段が記憶する前記予約スロット数を表す情報が初期値として記憶され、
前記スロット割付周期が経過する度に、前記第２の更新スロット数記憶手段には、前記残余予約スロット数記憶手段が記憶する前記残余予約スロット数を表す情報が初期値として記憶される、ことを特徴とするバス調停装置。
【請求項２】
前記所定のモジュールは複数であり、
前記予約スロット数記憶手段は、前記複数の所定のモジュールに対応して、複数設けられ、
前記第１の更新スロット数記憶手段は、前記複数の予約スロット数記憶手段に対応して、複数設けられる、ことを特徴とする請求項１記載のバス調停装置。
【請求項３】
前記残余スロット数算出手段は、前記予約スロット数の前記残余スロット数の残りがなくなった場合、特定の前記モジュールに対して、前記予約スロット数が割り当てられた前記所定のモジュールが前記予約スロット数を全て消費した旨を通知する、ことを特徴とする請求項１又は２記載のバス調停装置。
【請求項４】
バスに接続される複数のモジュール間のデータ転送要求を調停するバス調停装置であって、
複数のスロットで構成されるスロット割付周期のスロット数と、前記複数のモジュールのうちの所定の前記モジュールに予め割り当てるスロット数である予約スロット数と、の差である残余予約スロット数を表す情報を記憶する残余予約スロット数記憶手段、を備える、ことを特徴とするバス調停装置。
【請求項５】
前記スロット割付周期を表す情報を記憶するスロット割付周期記憶手段、をさらに備える、ことを特徴とする請求項４記載のバス調停装置。
【請求項６】
前記予約スロット数を表す情報を記憶する予約スロット数記憶手段、をさらに備える、ことを特徴とする請求項４又は５記載のバス調停装置。
【請求項７】
前記予約スロット数を、前記所定のモジュールが全て消費した場合、特定の前記モジュールに対して、前記予約スロット数を全て消費した旨が通知される、ことを特徴とする請求項４から６記載のバス調停装置。
【請求項８】
前記所定のモジュールは複数であり、
前記残余予約スロット数記憶手段は、前記スロット割付周期を構成するスロット数と、複数の前記予約スロット数の合計と、の差である残余予約スロット数を表す情報を記憶する、ことを特徴とする請求項４から７記載のバス調停装置。
【請求項９】
バスに接続されるタスクマネージャが管理する複数のタスクのデータ転送要求を調停するバス調停装置であって、
複数のスロットで構成されるスロット割付周期を表す情報を記憶するスロット割付周期記憶手段と、
前記複数のタスクのうちの所定の前記タスクに予め割り当てるスロット数である予約スロット数を表す情報を記憶する予約スロット数記憶手段と、
前記スロット割付周期を構成するスロット数と前記予約スロット数との差である残余予約スロット数を表す情報を記憶する残余予約スロット数記憶手段と、
前記予約スロット数が割り当てられた前記所定のタスクのデータ転送要求が許可される度に、前記予約スロット数の残余スロット数を算出し、かつ、前記残余予約スロット数を使用する前記タスクのデータ転送要求が許可される度に、前記残余予約スロット数の残余スロット数を算出する残余スロット数算出手段と、
前記予約スロット数記憶手段が記憶する前記予約スロット数を表す情報を初期値として記憶し、かつ、前記残余スロット数算出手段が算出した、前記予約スロット数の前記残余スロット数を表す情報を記憶する第１の更新スロット数記憶手段と、
前記残余予約スロット数記憶手段が記憶する前記残余予約スロット数を表す情報を初期値として記憶し、かつ、前記残余スロット数算出手段が算出した、前記残余予約スロット数の前記残余スロット数を表す情報を記憶する第２の更新スロット数記憶手段と、
前記複数のタスクに対応して設けられ、各々が、対応する前記タスクに割り当てられた、前記第１の更新スロット数記憶手段あるいは前記第２の更新スロット数記憶手段、を表す情報を記憶する複数の更新スロット数指定記憶手段と、
前記タスクからのデータ転送要求があった場合に、当該タスクに対応する前記更新スロット数指定記憶手段が記憶する前記情報が表す前記第１の更新スロット数記憶手段又は前記第２の更新スロット数記憶手段を参照して、参照した前記第１の更新スロット数記憶手段又は前記第２の更新スロット数記憶手段が記憶している前記残余スロット数の残りがあるときに、当該タスクがデータ転送要求を許可する候補であることを示す転送許可候補通知信号を生成する転送許可候補決定手段と、
所定の規則に従って、前記転送許可候補通知信号が示す前記タスクからのデータ転送要求の許否を決定する転送許可決定手段と、を備え、
前記予約スロット数が割り当てられた前記所定のタスクに対応する前記更新スロット数指定記憶手段には、前記第１の更新スロット数記憶手段を表す情報が記憶され、
前記残余予約スロット数を使用する前記タスクに対応する前記更新スロット数指定記憶手段には、前記第２の更新スロット数記憶手段を表す情報が記憶され、
前記スロット割付周期が経過する度に、前記第１の更新スロット数記憶手段には、前記予約スロット数記憶手段が記憶する前記予約スロット数を表す情報が初期値として記憶され、
前記スロット割付周期が経過する度に、前記第２の更新スロット数記憶手段には、前記残余予約スロット数記憶手段が記憶する前記残余予約スロット数を表す情報が初期値として記憶される、ことを特徴とするバス調停装置。
【請求項１０】
前記所定のタスクは複数であり、
前記予約スロット数記憶手段は、前記複数の所定のタスクに対応して、複数設けられ、
前記第１の更新スロット数記憶手段は、前記複数の予約スロット数記憶手段に対応して、複数設けられる、ことを特徴とする請求項９記載のバス調停装置。
【請求項１１】
前記残余スロット数算出手段は、前記予約スロット数の前記残余スロット数の残りがなくなった場合、前記タスクマネージャに対して、前記予約スロット数が割り当てられた前記所定のタスクが前記予約スロット数を全て消費した旨を通知する、ことを特徴とする請求項９又は１０記載のバス調停装置。
【請求項１２】
バスに接続されるタスクマネージャが管理する複数のタスク間のデータ転送要求を調停するバス調停装置であって、
複数のスロットで構成されるスロット割付周期のスロット数と、前記複数のタスクのうちの所定の前記タスクに予め割り当てるスロット数である予約スロット数と、の差である残余予約スロット数を表す情報を記憶する残余予約スロット数記憶手段、を備える、ことを特徴とするバス調停装置。
【請求項１３】
前記スロット割付周期を表す情報を記憶するスロット割付周期記憶手段、をさらに備える、ことを特徴とする請求項１２記載のバス調停装置。
【請求項１４】
前記予約スロット数を表す情報を記憶する予約スロット数記憶手段、をさらに備える、ことを特徴とする請求項１２又は１３記載のバス調停装置。
【請求項１５】
前記予約スロット数を、前記所定のタスクが全て消費した場合、前記タスクマネージャに対して、前記予約スロット数を全て消費した旨が通知される、ことを特徴とする請求項１２から１４記載のバス調停装置。
【請求項１６】
前記所定のタスクは複数であり、
前記残余予約スロット数記憶手段は、前記スロット割付周期を構成するスロット数と、複数の前記予約スロット数の合計と、の差である残余予約スロット数を表す情報を記憶する、ことを特徴とする請求項１２から１５記載のバス調停装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスに接続される複数のモジュール間の調停を行うバス調停装置に関する。
【背景技術】
【０００２】
第３世代携帯電話の登場などにより、動画や音声といった複数のリアルタイム処理やメールなどの非リアルタイム処理を実現するシステムが求められている。  このシステムは、バスに接続された複数のモジュール、および、モジュール間のデータ転送を調停するバス調停装置、を具備している。
【０００３】
なお、モジュールとは、処理を実行するハードウェアである。また、バスに接続されたモジュールの１つは、プロセッサである。
【０００４】
さて、リアルタイム処理とは、定められた処理の実行に時間制限を持つ処理である。一方、非リアルタイム処理とは、時間制限を持たない処理である。
【０００５】
これら双方の処理を実現するシステムは、リアルタイム処理を行うモジュール（以下、「リアルタイム・モジュール」と呼ぶ。）、及び、非リアルタイム処理を行うモジュール（以下、「非リアルタイム・モジュール」と呼ぶ。）、を含む。
【０００６】
リアルタイム・モジュールは、定められた処理を制限時間内に行うために、必要となるデータの転送も制限時間内に行う必要がある。
【０００７】
リアルタイム処理及び非リアルタイム処理の双方を実現するシステムにおいて、メモリ資源などが空間的な共有資源であるのに対し、バスは双方の処理で共通に使用する時間的な共有資源である。
【０００８】
従って、非リアルタイム・モジュールが、スロット数を使い切ってしまった場合は、リアルタイム・モジュールは、メモリ資源を確保できても、処理に必要なデータを転送できず、制限時間内に処理を行うことができない。
【０００９】
そこで、従来より、モジュールからのデータ転送要求を調停するバス調停装置を設けて、バス帯域幅（即ち，スロット数）を保証する制御が行われている。
【００１０】
例えば、特許文献１（特表２０００−５００８９５号公報）には、重み付き帯域幅配分を備えたバス調停装置が開示されている。
【００１１】
このバス調停装置は、調停対象のモジュールに、バス帯域幅を配分するための重み与えて、タイムスロットを割り当てることにより、バス帯域幅を確保している。
【００１２】
これにより、リアルタイム・モジュールは、予め与えられたバス帯域幅を用いて、動画や音声といったリアルタイム処理を実現することができる。
【特許文献１】特表２０００−５００８９５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ここで、例えば、ＭＰＥＧ−４（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ  ４）などの動画像圧縮・伸張を行うモジュールに対し、処理する動画像の画面サイズを、ＱＣＩＦ（１７６画素×１４４画素）からＣＩＦ（３５２画素×２８８画素）に拡張する要求があった場合を想定する。
【００１４】
この場合は、定められた制限時間内で当該モジュールが処理しなければならないデータ量が増大する。
【００１５】
そうすると、上記した従来のバス調停装置では、予めモジュールに割り当てたバス帯域幅で処理を行うため、増大したデータ量を扱うことができない。
【００１６】
従って、定められた制限時間内にモジュールの処理を完結できず、リアルタイム性を破綻させることがある。
【００１７】
そこで、本発明は、バス帯域幅（即ち，スロット数）の不足により処理が破綻するか否かを予め判定できるバス調停装置を提供することを目的とする。
【課題を解決するための手段】
【００１８】
第１の発明に係るバス調停装置は、バスに接続される複数のモジュール間のデータ転送要求を調停するバス調停装置であって、スロット割付周期記憶手段と、予約スロット数記憶手段と、残余予約スロット数記憶手段と、残余スロット数算出手段と、第１の更新スロット数記憶手段と、第２の更新スロット数記憶手段と、複数の更新スロット数指定記憶手段と、転送許可候補決定手段と、転送許可決定手段と、を備える。
【００１９】
スロット割付周期記憶手段は、複数のスロットで構成されるスロット割付周期を表す情報を記憶する。
【００２０】
予約スロット数記憶手段は、複数のモジュールのうちの所定のモジュールに予め割り当てるスロット数である予約スロット数を表す情報を記憶する。
【００２１】
残余予約スロット数記憶手段は、スロット割付周期を構成するスロット数と予約スロット数との差である残余予約スロット数を表す情報を記憶する。
【００２２】
残余スロット数算出手段は、予約スロット数が割り当てられた所定のモジュールのデータ転送要求が許可される度に、予約スロット数の残余スロット数を算出し、かつ、残余予約スロット数を使用するモジュールのデータ転送要求が許可される度に、残余予約スロット数の残余スロット数を算出する。
【００２３】
第１の更新スロット数記憶手段は、予約スロット数記憶手段が記憶する予約スロット数を表す情報を初期値として記憶し、かつ、残余スロット数算出手段が算出した、予約スロット数の残余スロット数を表す情報を記憶する。
【００２４】
第２の更新スロット数記憶手段は、残余予約スロット数記憶手段が記憶する残余予約スロット数を表す情報を初期値として記憶し、かつ、残余スロット数算出手段が算出した、残余予約スロット数の残余スロット数を表す情報を記憶する。
【００２５】
複数の更新スロット数指定記憶手段は、複数のモジュールに対応して設けられる。そして、更新スロット数指定記憶手段は、対応するモジュールに割り当てられた、第１の更新スロット数記憶手段あるいは第２の更新スロット数記憶手段、を表す情報を記憶する。
【００２６】
転送許可候補決定手段は、モジュールからのデータ転送要求があった場合に、当該モジュールに対応する更新スロット数指定記憶手段が記憶する情報が表す第１の更新スロット数記憶手段又は第２の更新スロット数記憶手段を参照して、参照した第１の更新スロット数記憶手段又は第２の更新スロット数記憶手段が記憶している残余スロット数の残りがあるときに、当該モジュールがデータ転送要求を許可する候補であることを示す転送許可候補通知信号を生成する。
【００２７】
転送許可決定手段は、所定の規則に従って、転送許可候補通知信号が示すモジュールからのデータ転送要求の許否を決定する。
【００２８】
予約スロット数が割り当てられた所定のモジュールに対応する更新スロット数指定記憶手段には、第１の更新スロット数記憶手段を表す情報が記憶される。
【００２９】
残余予約スロット数を使用するモジュールに対応する更新スロット数指定記憶手段には、第２の更新スロット数記憶手段を表す情報が記憶される。
【００３０】
スロット割付周期が経過する度に、第１の更新スロット数記憶手段には、予約スロット数記憶手段が記憶する予約スロット数を表す情報が初期値として記憶される。
【００３１】
スロット割付周期が経過する度に、第２の更新スロット数記憶手段には、残余予約スロット数記憶手段が記憶する残余予約スロット数を表す情報が初期値として記憶される。
【００３２】
この構成によれば、残余予約スロット数記憶手段が記憶する残余予約スロット数を外部からモニタすることで、バスの帯域幅不足により、これから実行しようとするモジュールによる処理が破綻するか否かを予め判定できる。
【００３３】
また、スロット割付周期記憶手段の設定を外部から変更することで、スロット割付周期を変更できる。さらに、予約スロット数記憶手段の設定を外部から変更することで、予約スロット数を変更できる。その結果、ユーザの利便性の向上を図ることができる。
【００３４】
第２の発明に係るバス調停装置では、次のように構成する。即ち、上記バス調停装置において、所定のモジュールは複数であり、予約スロット数記憶手段は、複数の所定のモジュールに対応して、複数設けられ、第１の更新スロット数記憶手段は、複数の予約スロット数記憶手段に対応して、複数設けられる。
【００３５】
この構成によれば、より多くのモジュールに対して、スロット数を予め予約できる。
【００３６】
第３の発明に係るバス調停装置では、次のように構成する。即ち、上記バス調停装置において、残余スロット数算出手段は、予約スロット数の残余スロット数の残りがなくなった場合、特定のモジュールに対して、予約スロット数が割り当てられた所定のモジュールが予約スロット数を全て消費した旨を通知する。
【００３７】
この構成によれば、無駄なデータ転送要求がなされることを防止できる。
【００３８】
第４の発明に係るバス調停装置は、バスに接続されるタスクマネージャが管理する複数のタスクのデータ転送要求を調停するバス調停装置であって、スロット割付周期記憶手段と、予約スロット数記憶手段と、残余予約スロット数記憶手段と、残余スロット数算出手段と、第１の更新スロット数記憶手段と、第２の更新スロット数記憶手段と、複数の更新スロット数指定記憶手段と、転送許可候補決定手段と、転送許可決定手段と、を備える。
【００３９】
スロット割付周期記憶手段は、複数のスロットで構成されるスロット割付周期を表す情報を記憶する。
【００４０】
予約スロット数記憶手段は、複数のタスクのうちの所定のタスクに予め割り当てるスロット数である予約スロット数を表す情報を記憶する。
【００４１】
残余予約スロット数記憶手段は、スロット割付周期を構成するスロット数と予約スロット数との差である残余予約スロット数を表す情報を記憶する。
【００４２】
残余スロット数算出手段は、予約スロット数が割り当てられた所定のタスクのデータ転送要求が許可される度に、予約スロット数の残余スロット数を算出し、かつ、残余予約スロット数を使用するタスクのデータ転送要求が許可される度に、残余予約スロット数の残余スロット数を算出する。
【００４３】
第１の更新スロット数記憶手段は、予約スロット数記憶手段が記憶する予約スロット数を表す情報を初期値として記憶し、かつ、残余スロット数算出手段が算出した、予約スロット数の残余スロット数を表す情報を記憶する。
【００４４】
第２の更新スロット数記憶手段は、残余予約スロット数記憶手段が記憶する残余予約スロット数を表す情報を初期値として記憶し、かつ、残余スロット数算出手段が算出した、残余予約スロット数の残余スロット数を表す情報を記憶する。
【００４５】
複数の更新スロット数指定記憶手段は、複数のタスクに対応して設けられる。そして、更新スロット数指定記憶手段は、対応するタスクに割り当てられた、第１の更新スロット数記憶手段あるいは第２の更新スロット数記憶手段、を表す情報を記憶する。
【００４６】
転送許可候補決定手段は、タスクからのデータ転送要求があった場合に、当該タスクに対応する更新スロット数指定記憶手段が記憶する情報が表す第１の更新スロット数記憶手段又は第２の更新スロット数記憶手段を参照して、参照した第１の更新スロット数記憶手段又は第２の更新スロット数記憶手段が記憶している残余スロット数の残りがあるときに、当該タスクがデータ転送要求を許可する候補であることを示す転送許可候補通知信号を生成する。
【００４７】
転送許可決定手段は、所定の規則に従って、転送許可候補通知信号が示すタスクからのデータ転送要求の許否を決定する。
【００４８】
予約スロット数が割り当てられた所定のタスクに対応する更新スロット数指定記憶手段には、第１の更新スロット数記憶手段を表す情報が記憶される。
【００４９】
残余予約スロット数を使用するタスクに対応する更新スロット数指定記憶手段には、第２の更新スロット数記憶手段を表す情報が記憶される。
【００５０】
スロット割付周期が経過する度に、第１の更新スロット数記憶手段には、予約スロット数記憶手段が記憶する予約スロット数を表す情報が初期値として記憶される。
【００５１】
スロット割付周期が経過する度に、第２の更新スロット数記憶手段には、残余予約スロット数記憶手段が記憶する残余予約スロット数を表す情報が初期値として記憶される。
【００５２】
この構成によれば、残余予約スロット数記憶手段が記憶する残余予約スロット数を外部からモニタすることで、バスの帯域幅不足により、これから実行しようとするタスクによる処理が破綻するか否かを予め判定できる。
【００５３】
また、スロット割付周期記憶手段の設定を外部から変更することで、スロット割付周期を変更できる。さらに、予約スロット数記憶手段の設定を外部から変更することで、予約スロット数を変更できる。その結果、ユーザの利便性の向上を図ることができる。
【００５４】
第５の発明に係るバス調停装置では、次のように構成する。即ち、上記バス調停装置において、所定のタスクは複数であり、予約スロット数記憶手段は、複数の所定のタスクに対応して、複数設けられ、第１の更新スロット数記憶手段は、複数の予約スロット数記憶手段に対応して、複数設けられる。
【００５５】
この構成によれば、より多くのタスクに対して、スロット数を予め予約できる。
【００５６】
第６の発明に係るバス調停装置では、次のように構成する。即ち、上記バス調停装置において、残余スロット数算出手段は、予約スロット数の残余スロット数の残りがなくなった場合、タスクマネージャに対して、予約スロット数が割り当てられた所定のタスクが予約スロット数を全て消費した旨を通知する。
【００５７】
この構成によれば、無駄なデータ転送要求がなされることを防止できる。
【発明の効果】
【００５８】
請求項１記載のバス調停装置では、残余予約スロット数記憶手段が記憶する残余予約スロット数を外部からモニタすることで、スロット数の不足により、これから実行しようとするモジュールによる処理が破綻するか否かを予め判定できる。
【００５９】
また、スロット割付周期記憶手段の設定を外部から変更することで、スロット割付周期を変更できる。さらに、予約スロット数記憶手段の設定を外部から変更することで、予約スロット数を変更できる。その結果、ユーザの利便性の向上を図ることができる。
【００６０】
請求項２記載のバス調停装置では、より多くのモジュールに対して、スロット数を予め予約できる。
【００６１】
請求項３記載のバス調停装置では、無駄なデータ転送要求がなされることを防止できる。
【００６２】
請求項４記載のバス調停装置では、残余予約スロット数記憶手段が記憶する残余予約スロット数を外部からモニタすることで、スロット数の不足により、これから実行しようとするモジュールによる処理が破綻するか否かを予め判定できる。
【００６３】
請求項５記載のバス調停装置では、スロット割付周期記憶手段の設定を外部から変更することで、スロット割付周期を変更できる。その結果、ユーザの利便性の向上を図ることができる。
【００６４】
請求項６記載のバス調停装置では、予約スロット数記憶手段の設定を外部から変更することで、予約スロット数を変更できる。その結果、ユーザの利便性の向上を図ることができる。
【００６５】
請求項７記載のバス調停装置では、無駄なデータ転送要求がなされることを防止できる。
【００６６】
請求項８記載のバス調停装置では、より多くのモジュールに対して、スロット数を予め予約できる。
【００６７】
請求項９記載のバス調停装置では、残余予約スロット数記憶手段が記憶する残余予約スロット数を外部からモニタすることで、スロット数の不足により、これから実行しようとするタスクによる処理が破綻するか否かを予め判定できる。
【００６８】
また、スロット割付周期記憶手段の設定を外部から変更することで、スロット割付周期を変更できる。さらに、予約スロット数記憶手段の設定を外部から変更することで、予約スロット数を変更できる。その結果、ユーザの利便性の向上を図ることができる。
【００６９】
請求項１０記載のバス調停装置では、より多くのタスクに対して、スロット数を予め予約できる。
【００７０】
請求項１１記載のバス調停装置では、無駄なデータ転送要求がなされることを防止できる。
【００７１】
請求項１２記載のバス調停装置では、残余予約スロット数記憶手段が記憶する残余予約スロット数を外部からモニタすることで、スロット数の不足により、これから実行しようとするタスクによる処理が破綻するか否かを予め判定できる。
【００７２】
請求項１３記載のバス調停装置では、スロット割付周期記憶手段の設定を外部から変更することで、スロット割付周期を変更できる。その結果、ユーザの利便性の向上を図ることができる。
【００７３】
請求項１４記載のバス調停装置では、予約スロット数記憶手段の設定を外部から変更することで、予約スロット数を変更できる。その結果、ユーザの利便性の向上を図ることができる。
【００７４】
請求項１５記載のバス調停装置では、無駄なデータ転送要求がなされることを防止できる。
【００７５】
請求項１６記載のバス調停装置では、より多くのタスクに対して、スロット数を予め予約できる。
【発明を実施するための最良の形態】
【００７６】
以下、図面を参照して本発明の実施の形態を説明する。
【００７７】
（実施の形態１）
図１は、本発明の実施の形態１におけるデータ処理装置のブロック図である。図１に示すように、このデータ処理装置は、バス調停装置１、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２、ＶＣＥ（Ｖｉｄｅｏ  Ｃｏｄｅｃ  Ｅｎｇｉｎｅ）３、ＡＣＥ（Ａｕｄｉｏ  Ｃｏｄｅｃ  Ｅｎｇｉｎｅ）４、ＰＣＥ（Ｐｉｃｔｕｒｅ  Ｃｏｄｅｃ  Ｅｎｇｉｎｅ）５、および、メモリ６、を具備する。
【００７８】
バス調停装置１、ＣＰＵ２、ＶＣＥ３、ＡＣＥ４、ＰＣＥ５、および、メモリ６は、バス８を介して結合される。
【００７９】
また、バス調停装置１、ＣＰＵ２、ＶＣＥ３、ＡＣＥ４、ＰＣＥ５、および、メモリ６は、データ転送制御線７を介して結合される。
【００８０】
バス調停装置１とＣＰＵ２とは、バス調停装置１からの割り込み信号線９によって接続される。
【００８１】
ここで、ＣＰＵ２、ＶＣＥ３、ＡＣＥ４、およびＰＣＥ５の各々を、モジュールと呼ぶこともある。
【００８２】
さて、バス調停装置１は、ＣＰＵ２、ＶＣＥ３、ＡＣＥ４、およびＰＣＥ５といったモジュールからのデータ転送要求を受けて、各モジュールに対して、スロット単位でデータ転送要求を割り付ける装置である。
【００８３】
また、バス調停装置１は、各モジュールに対してスロット数を予約できる機構、および、残余予約スロット数をモニタできる機構、を有する。
【００８４】
ここで、バス調停装置１は、所定のバスサイクル数（所定のバスクロック数）を１スロットとしている。
【００８５】
ＣＰＵ２は、プログラムを実行するモジュールである。
【００８６】
メモリ６は、データを格納する。
【００８７】
ＶＣＥ３は、メモリ６に格納された画像データに対し、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）などの動画像圧縮・伸張処理を行い、メモリ６に書き戻す動画処理モジュールである。
【００８８】
ＡＣＥ４は、メモリ６に格納された音声データに対し、ＡＭＲ (Ａｕｄｉｏ／Ｍｏｄｅｍ  Ｒｉｓｅｒ）などの音声データ圧縮・伸張処理を行い、メモリ６に書き戻す音声処理モジュールである。
【００８９】
ＰＣＥ５は、メモリ６に格納された静止画データに対し、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）などの静止画像圧縮・伸張処理を行い、メモリ６に書き戻す静止画処理モジュールである。
【００９０】
図１に示すデータ処理装置によって、動画データ、音声データ及び静止画データを圧縮・伸張する機能を実現する。
【００９１】
この際、動画及び音声の圧縮伸張処理はリアルタイム処理であるため、バス調停装置１は、動画処理モジュールであるＶＣＥ３および音声処理モジュールであるＡＣＥ４に対して、リアルタイム処理に必要なスロット数を割り当てる機構を有する。
【００９２】
次に、バス調停装置１の詳細を説明する。
【００９３】
図２は、図１のバス調停装置１のブロック図である。なお、図２において、図１と同様の部分については、同一の符号を付している。
【００９４】
図２に示すように、このバス調停装置１は、スロット割付周期レジスタ１０、残余予約スロットレジスタ２０、予約スロットレジスタ２１，２２、更新スロットレジスタ３０，３１，３２、更新スロット指定レジスタ４０，４１，４２，４３、残余スロット数算出回路６０、転送許可候補決定回路７０、及び、転送許可決定回路８０、を含む。
【００９５】
転送許可決定回路８０は、優先度レジスタ５０，５１，５２，５３、及び、優先順位選択回路５４、を含む。
【００９６】
スロット割付周期レジスタ１０は、所定のスロット数で規定されるスロット割付周期を表す情報を保存するレジスタである。
【００９７】
スロット割付周期は、スロット割付周期レジスタ１０に、外部から設定可能である。例えば、ＣＰＵ２が、スロット割付周期レジスタ１０に、スロット割付周期を設定することができる。
【００９８】
リアルタイム処理を行うＶＣＥ３およびＡＣＥ４の各々には、予め、所定のスロット数が割り付けられる。この場合、予め割り付けるスロット数を予約スロット数と呼ぶ。
【００９９】
予約スロットレジスタ２１は、ＶＣＥ３に割り付ける予約スロット数を表す情報を格納する。
【０１００】
ＶＣＥ３の予約スロット数は、予約スロットレジスタ２１に、外部から設定可能である。例えば、ＣＰＵ２が、予約スロットレジスタ２１に、ＶＣＥ３の予約スロット数を設定することができる。
【０１０１】
予約スロットレジスタ２２は、ＡＣＥ４に割り付ける予約スロット数を表す情報を格納する。
【０１０２】
ＡＣＥ４の予約スロット数は、予約スロットレジスタ２２に、外部から設定可能である。例えば、ＣＰＵ２が、予約スロットレジスタ２２に、ＡＣＥ４の予約スロット数を設定することができる。
【０１０３】
残余予約スロットレジスタ２０は、スロット割付周期を構成するスロット数から、予約スロットレジスタ２１に格納された予約スロット数と、予約スロットレジスタ２２に格納された予約スロット数と、を差し引いた値（以下、「残余予約スロット数」と呼ぶ。）を表す情報を格納する。
【０１０４】
この残余予約スロット数を、ＣＰＵ２とＰＣＥ５とで、使用する。
【０１０５】
ここで、予約スロットレジスタ２１，２２及び残余予約スロットレジスタ２０は、予約スロットテーブルを構成する。
【０１０６】
図３は、予約スロットテーブルの例示図である。図３の例では、スロット割付周期レジスタ１０に格納されるスロット割付周期を構成するスロット数は、１０スロットである。
【０１０７】
また、図３の例では、予約スロットレジスタ２１に格納されるＶＣＥ３の予約スロット数は、３スロットである。
【０１０８】
また、図３の例では、予約スロットレジスタ２２に格納されるＡＣＥ４の予約スロット数は、２スロットである。
【０１０９】
また、図３の例では、残余予約スロットレジスタ２０に格納される残余予約スロット数は、５スロットである。なぜなら、１０−（３＋２）＝５、だからである。
【０１１０】
残余スロット数算出回路６０は、スロット割付周期を構成するスロット数から、予約スロットレジスタ２１に格納された予約スロット数と、予約スロットレジスタ２２に格納された予約スロット数と、を差し引いて、残余予約スロット数を算出する。
【０１１１】
残余予約スロットレジスタ２０に格納される残余予約スロット数は、残余スロット数算出回路６０により算出されたものである。
【０１１２】
更新スロットレジスタ３１には、初期値（リセット値）として、予約スロットレジスタ２１に格納された、ＶＣＥ３の予約スロット数を表す情報が格納される。
【０１１３】
そして、残余スロット数算出回路６０は、ＶＣＥ３のデータ転送要求が許可されると、更新スロットレジスタ３１に格納されたＶＣＥ３に割り付けられた予約スロット数から、１スロット減じて、予約スロット数の残りのスロット数を算出する。
【０１１４】
そして、残余スロット数算出回路６０は、この残りのスロット数を表す情報を、更新スロットレジスタ３１に上書きする。
【０１１５】
さらに、残余スロット数算出回路６０は、ＶＣＥ３のデータ転送要求が許可される度に、更新スロットレジスタ３１に格納された予約スロット数の残りのスロット数から、１スロット減じて、ＶＣＥ３の予約スロット数の残りのスロット数を算出し、その結果を、更新スロットレジスタ３１に上書きする。
【０１１６】
以上のようにして、ＶＣＥ３の予約スロット数がカウントダウンされる。
【０１１７】
更新スロットレジスタ３２には、初期値（リセット値）として、予約スロットレジスタ２２に格納された、ＡＣＥ４の予約スロット数を表す情報が格納される。
【０１１８】
そして、残余スロット数算出回路６０は、ＡＣＥ４のデータ転送要求が許可されると、更新スロットレジスタ３２に格納されたＡＣＥ４に割り付けられた予約スロット数から、１スロット減じて、予約スロット数の残りのスロット数を算出する。
【０１１９】
そして、残余スロット数算出回路６０は、この残りのスロット数を表す情報を、更新スロットレジスタ３２に上書きする。
【０１２０】
さらに、残余スロット数算出回路６０は、ＡＣＥ４のデータ転送要求が許可される度に、更新スロットレジスタ３２に格納された予約スロット数の残りのスロット数から、１スロット減じて、ＡＣＥ４の予約スロット数の残りのスロット数を算出し、その結果を、更新スロットレジスタ３２に上書きする。
【０１２１】
以上のようにして、ＡＣＥ４の予約スロット数がカウントダウンされる。
【０１２２】
更新スロットレジスタ３０には、初期値（リセット値）として、残余予約スロットレジスタ２０に格納された残余予約スロット数を表す情報が格納される。
【０１２３】
そして、残余スロット数算出回路６０は、ＣＰＵ２又はＰＣＥ５のデータ転送要求が許可されると、更新スロットレジスタ３０に格納された残余予約スロット数から、１スロット減じて、残余予約スロット数の残りのスロット数を算出する。
【０１２４】
そして、残余スロット数算出回路６０は、この残りのスロット数を表す情報を、更新スロットレジスタ３０に上書きする。
【０１２５】
さらに、残余スロット数算出回路６０は、ＣＰＵ２又はＰＣＥ５のデータ転送要求が許可される度に、更新スロットレジスタ３０に格納された残余予約スロット数の残りのスロット数から、１スロット減じて、残余予約スロット数の残りのスロット数を算出し、その結果を、更新スロットレジスタ３０に上書きする。
【０１２６】
以上のようにして、残余予約スロット数がカウントダウンされる。
【０１２７】
更新スロットレジスタ３０，３１，３２は、スロット割付周期レジスタ１０で指定されたスロット割付周期が経過すると、リセットされる。
【０１２８】
つまり、スロット割付周期レジスタ１０で指定されたスロット割付周期が経過すると、残余スロット数算出回路６０は、更新スロットレジスタ３１に、予約スロットレジスタ２１に格納された予約スロット数を表す情報を初期値（リセット値）として書き込み、更新スロットレジスタ３２に、予約スロットレジスタ２２に格納された予約スロット数を表す情報を初期値（リセット値）として書き込み、更新スロットレジスタ３０に、残余予約スロットレジスタ２０に格納された残余予約スロット数を表す情報を初期値（リセット値）として書き込む。
【０１２９】
そして、再び、予約スロット数および残余予約スロット数のカウントダウンが実行される。
【０１３０】
このように、リセットとカウントダウンとが繰り返し行われる。なお、カウントダウン値が、「０」でない場合でも、スロット割付周期が経過すると、リセットが行われる。
【０１３１】
更新スロット指定レジスタ４０〜４３は、それぞれ、ＣＰＵ２、ＶＣＥ３、ＡＣＥ４、及び、ＰＣＥ５に対応して設けられている。
【０１３２】
そして、更新スロット指定レジスタ４０〜４３には、それぞれ、ＣＰＵ２に対する指定情報、ＶＣＥ３に対する指定情報、ＡＣＥ４に対する指定情報、及び、ＰＣＥ５に対する指定情報、が格納される。
【０１３３】
ここで、指定情報とは、更新スロットレジスタ３１を表す情報、更新スロットレジスタ３２を表す情報、あるいは、更新スロットレジスタ３０を表す情報、である。
【０１３４】
具体的には、更新スロット指定レジスタ４０には、ＣＰＵ２に対する指定情報として、更新スロットレジスタ３０を表す情報が格納される。
【０１３５】
なぜなら、ＣＰＵ２は、残余予約スロットレジスタ２０に格納された残余予約スロット数を消費するからである。
【０１３６】
更新スロット指定レジスタ４１には、ＶＣＥ３に対する指定情報として、更新スロットレジスタ３１を表す情報が格納される。
【０１３７】
なぜなら、ＶＣＥ３は、予約スロットレジスタ２１に格納された予約スロット数を消費するからである。
【０１３８】
更新スロット指定レジスタ４２には、ＡＣＥ４に対する指定情報として、更新スロットレジスタ３２を表す情報が格納される。
【０１３９】
なぜなら、ＡＣＥ４は、予約スロットレジスタ２２に格納された予約スロット数を消費するからである。
【０１４０】
更新スロット指定レジスタ４３には、ＰＣＥ５に対する指定情報として、更新スロットレジスタ３０を表す情報が格納される。
【０１４１】
なぜなら、ＰＣＥ５は、残余予約スロットレジスタ２０に格納された残余予約スロット数を消費するからである。
【０１４２】
更新スロット指定レジスタ４０〜４３の指定情報は、外部から設定可能である。例えば、ＣＰＵ２により、設定可能である。
【０１４３】
なお、バス調停装置１の初期設定が行われたときは、更新スロット指定レジスタ４０〜４３の全てに、更新スロットレジスタ３０を表す情報が格納される。その後、外部から、所望の更新スロット指定レジスタに、更新スロットレジスタ３１，３２を表す情報が上書きされる。
【０１４４】
ここで、更新スロット指定レジスタ４０〜４３は、更新スロット指定テーブルを構成する。
【０１４５】
図４は、更新スロット指定テーブルの例示図である。図４の例では、ＣＰＵ２に対応する更新スロット指定レジスタ４０には、更新スロットレジスタ３０を示す「０」が格納される。
【０１４６】
また、図４の例では、ＶＣＥ３に対応する更新スロット指定レジスタ４１には、更新スロットレジスタ３１を示す「１」が格納される。
【０１４７】
また、図４の例では、ＡＣＥ４に対応する更新スロット指定レジスタ４２には、更新スロットレジスタ３２を示す「２」が格納される。
【０１４８】
また、図４の例では、ＰＣＥ５に対応する更新スロット指定レジスタ４３には、更新スロットレジスタ３０を示す「０」が格納される。
【０１４９】
なお、図４の例では、ＣＰＵ２及びＰＣＥ５で、更新スロットレジスタ３０を共用している。
【０１５０】
転送許可候補決定回路７０は、データ転送制御線７から、ＣＰＵ２からのデータ転送要求信号ＣＰＵｒ、ＶＣＥ３からのデータ転送要求信号ＶＣＥｒ、ＡＣＥ４からのデータ転送要求信号ＡＣＥｒ、及び、ＰＣＥ５からのデータ転送要求信号ＰＣＥｒ、を受ける。
【０１５１】
転送許可候補決定回路７０は、ＣＰＵ２からのデータ転送要求信号ＣＰＵｒを受けると、ＣＰＵ２に対応する更新スロット指定レジスタ４０を参照する。
【０１５２】
そして、転送許可候補決定回路７０は、更新スロット指定レジスタ４０に格納された情報が示す更新スロットレジスタ３０を参照する。
【０１５３】
そして、転送許可候補決定回路７０は、更新スロットレジスタ３０に格納された、残余予約スロット数の残りのスロット数（カウントダウン値）が、「０」でない場合は、ＣＰＵ２がデータ転送を許可する候補（転送許可候補）であることを示す転送許可候補通知信号Ｃを、優先順位選択回路５４に出力する。
【０１５４】
転送許可候補決定回路７０は、ＶＣＥ３からのデータ転送要求信号ＶＣＥｒを受けると、ＶＣＥ３に対応する更新スロット指定レジスタ４１を参照する。
【０１５５】
そして、転送許可候補決定回路７０は、更新スロット指定レジスタ４１に格納された情報が示す更新スロットレジスタ３１を参照する。
【０１５６】
そして、転送許可候補決定回路７０は、更新スロットレジスタ３１に格納された、予約スロット数の残りのスロット数（カウントダウン値）が、「０」でない場合は、ＶＣＥ３がデータ転送を許可する候補（転送許可候補）であることを示す転送許可候補通知信号Ｖを、優先順位選択回路５４に出力する。
【０１５７】
転送許可候補決定回路７０は、ＡＣＥ４からのデータ転送要求信号ＡＣＥｒを受けると、ＡＣＥ４に対応する更新スロット指定レジスタ４２を参照する。
【０１５８】
そして、転送許可候補決定回路７０は、更新スロット指定レジスタ４２に格納された情報が示す更新スロットレジスタ３２を参照する。
【０１５９】
そして、転送許可候補決定回路７０は、更新スロットレジスタ３２に格納された、予約スロット数の残りのスロット数（カウントダウン値）が、「０」でない場合は、ＡＣＥ４がデータ転送を許可する候補（転送許可候補）であることを示す転送許可候補通知信号Ａを、優先順位選択回路５４に出力する。
【０１６０】
転送許可候補決定回路７０は、ＰＣＥ５からのデータ転送要求信号ＰＣＥｒを受けると、ＰＣＥ５に対応する更新スロット指定レジスタ４３を参照する。
【０１６１】
そして、転送許可候補決定回路７０は、更新スロット指定レジスタ４３に格納された情報が示す更新スロットレジスタ３０を参照する。
【０１６２】
そして、転送許可候補決定回路７０は、更新スロットレジスタ３０に格納された、残余予約スロット数の残りのスロット数（カウントダウン値）が、「０」でない場合は、ＰＣＥ５がデータ転送を許可する候補（転送許可候補）であることを示す転送許可候補通知信号Ｐを、優先順位選択回路５４に出力する。
【０１６３】
優先度レジスタ５０〜５３は、それぞれ、ＣＰＵ２、ＶＣＥ３、ＡＣＥ４、及び、ＰＣＥ５に対応して設けられている。
【０１６４】
優先度レジスタ５０には、ＣＰＵ２の優先度を表す情報が格納される。優先度レジスタ５１には、ＶＣＥ３の優先度を表す情報が格納される。優先度レジスタ５２には、ＡＣＥ４の優先度を表す情報が格納される。優先度レジスタ５３には、ＰＣＥ５の優先度を表す情報が格納される。
【０１６５】
優先度は、優先度レジスタ５０〜５３に、外部から設定可能である。例えば、ＣＰＵ２が、優先度レジスタ５０〜５３に、優先度を設定することができる。
【０１６６】
ここで、優先度レジスタ５０〜５３は、優先度テーブルを構成する。
【０１６７】
図５は、優先度テーブルの例示図である。
【０１６８】
図５の例では、優先度が、ＡＣＥ４＞ＶＣＥ３＞ＣＰＵ２＞ＰＣＥ５、となるように、優先度テーブルが設定されている。つまり、図５の優先度テーブルにおいては、設定される数が小さいほど優先度が大きい。
【０１６９】
優先順位選択回路５４は、転送許可候補決定回路７０から入力される転送許可候補通知信号が複数の場合、即ち、転送許可候補となっているモジュールが複数の場合は、優先度レジスタ５０〜５３を参照して、複数の転送許可候補のうち、最も優先度の高い転送許可候補に対して、データ転送制御線７を介して、転送許可信号を与える。
【０１７０】
なお、図２において、転送許可信号ＣＰＵａは、ＣＰＵ２に対する転送許可信号を示し、転送許可信号ＶＣＥａは、ＶＣＥ３に対する転送許可信号を示し、転送許可信号ＡＣＥａは、ＡＣＥ４に対する転送許可信号を示し、転送許可信号ＰＣＥａは、ＰＣＥ５に対する転送許可信号を示している。
【０１７１】
例えば、優先度テーブルが図５に示すものである場合において、優先順位選択回路５４が、転送許可候補通知信号Ｃ及び転送許可候補通知信号Ｖを受けた場合は、優先度が高いＶＣＥ３に対して、転送許可信号ＶＣＥａを与える。
【０１７２】
さて、一方、優先順位選択回路５４は、転送許可信号を与えた転送許可候補に対応する更新スロット指定レジスタを参照する。
【０１７３】
そして、優先順位選択回路５４は、参照した更新スロット指定レジスタに格納されている情報を、残余スロット数算出回路６０に与える。
【０１７４】
そして、残余スロット数算出回路６０は、優先順位選択回路５４から与えられた情報が表す、更新スロットレジスタ３１、更新スロットレジスタ３２、あるいは、更新スロットレジスタ３０、が格納している残りのスロット数を、１スロット減算する。
【０１７５】
残余スロット数算出回路６０は、このようにして算出した残りのスロット数を表す情報を、優先順位選択回路５４から与えられた情報が表す、更新スロットレジスタ３１、更新スロットレジスタ３２、あるいは、更新スロットレジスタ３０、に上書きする。
【０１７６】
こうして、転送許可が与えられる度に、転送許可が与えられた転送許可候補の予約スロット数あるいは残余予約スロット数が、カウントダウンされる。
【０１７７】
このことを、転送許可信号を与えた転送許可候補が、ＡＣＥ４である場合を例に挙げて説明する。
【０１７８】
そうすると、優先順位選択回路５４は、ＡＣＥ４に対応する更新スロット指定レジスタ４２を参照する。
【０１７９】
そして、優先順位選択回路５４は、更新スロット指定レジスタ４２に格納されている情報、即ち、更新スロットレジスタ３２を示す情報を、残余スロット数算出回路６０に与える。
【０１８０】
そして、残余スロット数算出回路６０は、優先順位選択回路５４から与えられた情報が表す更新スロットレジスタ３２が格納しているＡＣＥ４の予約スロット数の残りのスロット数を、１スロット減算する。
【０１８１】
残余スロット数算出回路６０は、このようにして算出したＡＣＥ４の残りのスロット数を表す情報を、優先順位選択回路５４から与えられた情報が表す更新スロットレジスタ３２に上書きする。
【０１８２】
こうして、この例では、ＡＣＥ４の予約スロット数がカウントダウンされる。
【０１８３】
さて、残余スロット数算出回路６０は、カウントダウンの結果（減算の結果）、予約スロット数の残りのスロット数が「０」になった場合、あるいは、残余予約スロット数の残りのスロット数が「０」になった場合は、割り込み信号線９を介して、ＣＰＵ２に対して、残りのスロット数が「０」になった予約スロット数あるいは残余予約スロット数を使用するモジュールが予約スロット数あるいは残余予約スロット数を使い果たしたことを通知する。
【０１８４】
なお、この場合、残余スロット数算出回路６０は、残りのスロット数が「０」になった予約スロット数あるいは残余予約スロット数を使用するモジュールに対して、予約スロット数あるいは残余予約スロット数を使い果たしたことを通知することもできる。
【０１８５】
さて、次に、図２及びタイムチャートを用いて、図１のバス調停装置１の動作を詳細に説明する。
【０１８６】
この場合、図２の残余予約スロットレジスタ２０及び予約スロットレジスタ２１，２２からなる予約スロットテーブルが、図３に示すように設定され、図２の更新スロット指定レジスタ４０〜４３からなる更新スロット指定テーブルが、図４に示すように設定され、図２の優先度レジスタ５０〜５３からなる優先度テーブルが、図５に示すように設定されているとする。
【０１８７】
図６は、バス調停装置１の動作を説明するためのタイムチャートである。
【０１８８】
図６に示すように、スロット割付周期を構成するスロット数は、１０スロットとなっており、１０スロット毎に、更新スロットレジスタ３０，３１，３２がリセットされる。
【０１８９】
図６に示すように、リセット時には、ＡＣＥ４の残りのスロット数（更新スロットレジスタ３２に格納されているスロット数）は、初期値（リセット値）の「２」である。
【０１９０】
また、リセット時には、ＶＣＥ３の残りのスロット数（更新スロットレジスタ３１に格納されているスロット数）は、初期値（リセット値）の「３」である。
【０１９１】
また、リセット時には、ＣＰＵ２及びＰＣＥ５の残りのスロット数（更新スロットレジスタ３０に格納されているスロット数）は、初期値（リセット値）の「５」である。
【０１９２】
さて、図６に示すように、スロット割付周期の１スロット目では、ＶＣＥ３だけが、データ転送要求信号ＶＣＥｒ（「Ｈ（ハイ）」レベルの信号）を、転送許可候補決定回路７０に与えている。
【０１９３】
従って、転送許可候補決定回路７０は、転送許可候補がＶＣＥ３であることを示す転送許可候補通知信号Ｖを、優先順位選択回路５４に与える。
【０１９４】
すると、優先順位選択回路５４は、ＶＣＥ３に対して、転送許可信号ＶＣＥａを与える。
【０１９５】
従って、残余スロット数算出回路６０は、ＶＣＥ３の予約スロット数「３」（更新スロットレジスタ３１に格納されている予約スロット数「３」）から「１」を減じて、残りのスロット数を「２」として、その情報を更新スロットレジスタ３１に上書きする。
【０１９６】
次に、スロット割付周期の２スロット目では、ＰＣＥ５だけが、データ転送要求信号ＰＣＥｒ（「Ｈ（ハイ）」レベルの信号）を、転送許可候補決定回路７０に与えている。
【０１９７】
従って、転送許可候補決定回路７０は、転送許可候補がＰＣＥ５であることを示す転送許可候補通知信号Ｐを、優先順位選択回路５４に与える。
【０１９８】
すると、優先順位選択回路５４は、ＰＣＥ５に対して、転送許可信号ＰＣＥａを与える。
【０１９９】
従って、残余スロット数算出回路６０は、残余予約スロット数「５」（更新スロットレジスタ３０に格納されている残余予約スロット数「５」）から「１」を減じて、残りのスロット数を「４」として、その情報を更新スロットレジスタ３０に書き込む。
【０２００】
次に、スロット割付周期の３スロット目では、ＡＣＥ４、ＣＰＵ２、及び、ＰＣＥ５が、それぞれ、データ転送要求信号ＡＣＥｒ（「Ｈ（ハイ）」レベルの信号）、データ転送要求信号ＣＰＵｒ（「Ｈ（ハイ）」レベルの信号）、及び、データ転送要求信号ＰＣＥｒ（「Ｈ（ハイ）」レベルの信号）、を転送許可候補決定回路７０に与えている。
【０２０１】
従って、転送許可候補決定回路７０は、転送許可候補がＡＣＥ４、ＣＰＵ２およびＰＣＥ５であることを示す転送許可候補通知信号Ａ，Ｃ，Ｐを、優先順位選択回路５４に与える。
【０２０２】
すると、優先順位選択回路５４は、優先度レジスタ５２，５０，５３を参照して、ＡＣＥ４、ＣＰＵ２およびＰＣＥ５のうち、最も優先度が高いＡＣＥ４に対して、転送許可信号ＡＣＥａを与える。
【０２０３】
従って、残余スロット数算出回路６０は、ＡＣＥ４の予約スロット数「２」（更新スロットレジスタ３２に格納されている予約スロット数「２」）から「１」を減じて、残りのスロット数を「１」として、その情報を更新スロットレジスタ３２に上書きする。
【０２０４】
次に、スロット割付周期の４スロット目では、ＣＰＵ２、及び、ＰＣＥ５が、それぞれ、データ転送要求信号ＣＰＵｒ、及び、データ転送要求信号ＰＣＥｒ、を転送許可候補決定回路７０に与えている。
【０２０５】
従って、転送許可候補決定回路７０は、転送許可候補がＣＰＵ２およびＰＣＥ５であることを示す転送許可候補通知信号Ｃ，Ｐを、優先順位選択回路５４に与える。
【０２０６】
すると、優先順位選択回路５４は、優先度レジスタ５０，５３を参照して、ＣＰＵ２およびＰＣＥ５のうち、最も優先度が高いＣＰＵ２に対して、転送許可信号ＣＰＵａを与える。
【０２０７】
従って、残余スロット数算出回路６０は、残余予約スロット数の残りのスロット数「４」（更新スロットレジスタ３０に格納されている残余予約スロット数の残りのスロット数「４」）から「１」を減じて、残りのスロット数を「３」として、その情報を更新スロットレジスタ３０に上書きする。
【０２０８】
なお、図４の更新スロット指定テーブルから分かるように、ＣＰＵ２及びＰＣＥ５は、残余予約スロットレジスタ２０に格納された残余予約スロット数を共用している。
【０２０９】
以上のようにして、スロット割付周期の１０スロット目まで、カウントダウンが実行され、１０スロット目を経過した時点で、更新スロットレジスタ３０〜３２がリセットされる。
【０２１０】
ここで、図６の７スロット目の動作を説明しておく。
【０２１１】
スロット割付周期の７スロット目では、ＡＣＥ４及びＶＣＥ３が、それぞれ、データ転送要求信号ＡＣＥｒ及びデータ転送要求信号ＶＣＥｒを、転送許可候補決定回路７０に与えている。
【０２１２】
従って、転送許可候補決定回路７０は、転送許可候補がＡＣＥ４であることを示す転送許可候補通知信号Ａと、転送許可候補がＶＣＥ３であることを示す転送許可候補通知信号Ｖと、を優先順位選択回路５４に与える。
【０２１３】
すると、優先順位選択回路５４は、優先度レジスタ５１，５２を参照して、ＡＣＥ４およびＶＣＥ３のうち、最も優先度が高いＡＣＥ４に対して、転送許可信号ＡＣＥａを与える。
【０２１４】
従って、残余スロット数算出回路６０は、ＡＣＥ４の予約スロット数の残りのスロット数「１」（更新スロットレジスタ３２に格納されている予約スロット数の残りのスロット数「１」）から「１」を減じて、残りのスロット数を「０」として、その情報を更新スロットレジスタ３２に上書きする。
【０２１５】
そして、残余スロット数算出回路６０は、割り込み信号線９を介して、ＣＰＵ２に対して、ＡＣＥ４が予約スロット数を使い果たしたことを通知する。
【０２１６】
さて、次に、図１のバス調停装置１の処理の流れを、図２及びフローチャートを用いて説明する。
【０２１７】
図７は、バス調停装置１のフローチャートである。
【０２１８】
図７に示すように、ステップＳ１にて、ＣＰＵ２がバス調停装置１の初期設定を行う。
【０２１９】
具体的には、ＣＰＵ２が、スロット割付周期レジスタ１０に、スロット割付周期を設定する。
【０２２０】
また、ＣＰＵ２が、予約スロットレジスタ２１及び予約スロットレジスタ２２に、それぞれ、ＶＣＥ３の予約スロット数及びＡＣＥ４の予約スロット数を設定する。
【０２２１】
さらに、ＣＰＵ２が、優先度レジスタ５０、優先度レジスタ５１、優先度レジスタ５２、及び、優先度レジスタ５３に、それぞれ、ＣＰＵ２、ＶＣＥ３、ＡＣＥ４、及び、ＰＣＥ５の優先度を設定する。
【０２２２】
さらに、ＣＰＵ２が、更新スロット指定レジスタ４０、更新スロット指定レジスタ４１、更新スロット指定レジスタ４２、及び、更新スロット指定レジスタ４３に、それぞれ、ＣＰＵ２、ＶＣＥ３、ＡＣＥ４、及び、ＰＣＥ５に対する指定情報を設定する。
【０２２３】
次に、ステップＳ２にて、残余スロット数算出回路６０が、スロット割付周期レジスタ１０及び予約スロットレジスタ２１，２２を参照して、残余予約スロット数を算出し、残余予約スロットレジスタ２０に格納する。
【０２２４】
次に、ステップＳ３にて、バス調停装置１は、データ転送要求の受け付けを開始する。これにより、スロット割付周期で、バス調停装置１の時間が経過することになる。
【０２２５】
次に、ステップＳ７にて、転送許可候補決定回路７０は、データ転送要求信号を出力したモジュールに対応する更新スロット指定レジスタに格納されている指定情報が表す更新スロットレジスタを参照する。
【０２２６】
なお、ＣＰＵ２、ＶＣＥ３、ＡＣＥ４、およびＰＣＥ５の各々を、モジュールと呼んでいる。
【０２２７】
そして、ステップＳ８にて、転送許可候補決定回路７０は、参照した更新スロットレジスタに格納されている残りのスロット数が「１」以上であれば、優先順位選択回路５４に、転送許可候補通知信号を出力する。
【０２２８】
ここで、ステップＳ７及びステップＳ８の処理は、データ転送要求信号を出力したモジュールが複数の場合は、モジュール毎に実行される。
【０２２９】
次に、ステップＳ９にて、優先順位選択回路５４は、複数の転送許可候補通知信号が入力された場合は、各転送許可候補通知信号が示す各モジュールに対応する各優先度レジスタを参照する。
【０２３０】
そして、ステップＳ１０にて、優先順位選択回路５４は、参照した複数の優先度レジスタが格納する複数の優先度のうちで、最も高い優先度のモジュールに対して、転送許可信号を出力する。
【０２３１】
また、優先順位選択回路５４は、転送許可信号を与えたモジュールに対応する更新スロット指定レジスタを参照して、参照した更新スロット指定レジスタに格納されている指定情報（更新スロットレジスタの情報）を、残余スロット数算出回路６０に与える。
【０２３２】
すると、ステップＳ１１にて、残余スロット数算出回路６０は、与えられた指定情報が表す更新スロットレジスタに格納されているスロット数を「１」減算する。
【０２３３】
そして、減算後のスロット数が「０」でなく（ステップＳ１２）、かつ、１スロット経過し（ステップＳ４）、かつ、スロット割付周期が経過していないならば（ステップＳ５）、処理は、ステップＳ７へ進む。
【０２３４】
また、減算後のスロット数が「０」でなく（ステップＳ１２）、かつ、１スロット経過し（ステップＳ４）、かつ、スロット割付周期が経過したならば（ステップＳ５）、残余スロット数算出回路６０は、ステップＳ６にて、更新スロットレジスタ３０〜３２をリセットする。そして、処理は、ステップＳ７へ進む。
【０２３５】
また、減算後のスロット数が「０」の場合は（ステップＳ１２）、残余スロット数算出回路６０は、ステップＳ１３にて、割り込み信号線９を介して、ＣＰＵ２に対して、転送許可信号が与えられたモジュールが予約スロット数を使い果たしたことを通知する。そして、処理は、ステップＳ４へ進む。
【０２３６】
以上のようなステップＳ４〜ステップＳ１３の処理が繰り返し実行される。
【０２３７】
さて、以上のように、本実施の形態によれば、残余予約スロットレジスタ２０が記憶する残余予約スロット数を外部からモニタすることで、バスの帯域幅不足により、これから実行しようとするモジュールによる処理が破綻するか否かを予め判定できる。
【０２３８】
また、スロット割付周期レジスタ１０の設定を外部から変更することで、スロット割付周期を変更できる。さらに、予約スロットレジスタ２１，２２の設定を外部から変更することで、予約スロット数を変更できる。その結果、ユーザの利便性の向上を図ることができる。
【０２３９】
さらに、モジュールが、当該モジュールに割り当てられた予約スロット数を全て消費した場合、ＣＰＵ２に対して、予約スロット数を全て消費した旨が通知される。これにより、無駄なデータ転送要求がなされることを防止できる。
【０２４０】
さて、次に、本実施の形態による効果を具体例を挙げて説明する。この場合、優先度テーブルは、図５に示したものとし、更新スロット指定テーブルは、図４に示したものとする。
【０２４１】
図２のスロット割付周期レジスタ１０に、スロット割付周期として、スロット数「３４０」を設定する。
【０２４２】
予約スロットレジスタ２１に、ＶＣＥ３の予約スロット数として、スロット数「７０」を設定する。
【０２４３】
予約スロットレジスタ２２に、ＡＣＥ４の予約スロット数として、スロット数「７０」を設定する。
【０２４４】
従って、残余予約スロットレジスタ２０に、残余予約スロット数（ＣＰＵ２及びＰＣＥ５が使用）として、スロット数「２００」が設定される。
【０２４５】
ここで、ＶＣＥ３の予約スロット数、即ち、予約スロットレジスタ２１に設定したスロット数が、ＱＣＩＦ（１７６画素×１４４画素）サイズの画像に対して、ＭＰＥＧ−４による圧縮伸張処理ができるスロット数であるとする。
【０２４６】
従って、ＣＩＦサイズの画像の圧縮伸張処理に要するスロット数として「２８０」が必要となる。
【０２４７】
このような場合に、本実施の形態では、ＭＰＥＧ−４による圧縮伸張処理の画像サイズを、ＱＣＩＦからＣＩＦまで拡張しても、ＣＩＦサイズの画像の圧縮伸張処理に要するスロット数を確保できないことが予め計算できる。
【０２４８】
なぜなら、残余予約スロットレジスタ２０の残余予約スロット数「２００」とＶＣＥ３のために確保している予約スロット数「７０」と、を合わせても、ＣＩＦサイズの画像の圧縮伸張処理に要するスロット数「２８０」に足らないからである。
【０２４９】
従って、処理する画像サイズをＣＩＦに拡張する要求が発生した場合は、事前にその要求をキャンセルすることが可能となる。
【０２５０】
本実施の形態による他の効果を具体例を挙げて説明する。
【０２５１】
ＣＰＵ２で動作するＭＰＥＧ−４のレート制御プログラムは、ビットレート変更を制御する場合にも、残余予約スロットレジスタ２０を参照することで、事前にレート変更後に必要なスロット数を保証できるか判定できる。
【０２５２】
本実施の形態によるさらに他の効果を具体例を挙げて説明する。
【０２５３】
ＭＰＥＧ−４とＡＭＲとでは、圧縮伸張処理に要求される時間（周期）が異なる。
【０２５４】
そのため、ＶＣＥ３を用いてＭＰＥＧ−４の圧縮伸張を行う場合と、ＡＣＥ４を用いてＡＭＲの圧縮伸張を行う場合とで、それぞれの処理に合った予約スロット数を設定することが可能となる。
【０２５５】
なお、図１において、モジュールの種類はこれらに限定されるものではない。また、モジュールの数もこれらに限定されるものではない。
【０２５６】
図２において、予約スロットレジスタ２１，２２の数は、２つに限定されるものではない。１つでもよいし、３以上でもよい。
【０２５７】
また、更新スロットレジスタ３１，３２も、２つに限定されるものではない。予約スロットレジスタの数に対応した数の更新スロットレジスタが設けられる。
【０２５８】
また、更新スロット指定レジスタ４０〜４３は、４つに限定されるものではない。モジュールの数に対応した数の更新スロット指定レジスタが設けられる。
【０２５９】
また、更新スロット指定レジスタに設定する指定情報は、上述したものに限定されるものではなく、任意に設定できる。
【０２６０】
また、優先度レジスタ５０〜５３は、４つに限定されるものではない。モジュールの数に対応した数の優先度レジスタが設けられる。
【０２６１】
また、優先度レジスタに設定する優先度は、上述したものに限定されるものではなく、任意に設定できる。
【０２６２】
（実施の形態２）
実施の形態１では、複数のモジュールからの複数のデータ転送要求を調停したが、実施の形態２では、複数のタスクを管理するタスクマネージャからの複数のデータ転送要求を調停する。
【０２６３】
図８は、本発明の実施の形態２におけるデータ処理装置のブロック図である。なお、図８において、図１と同様の部分については、同一の符号を付している。
【０２６４】
図８に示すように、このデータ処理装置は、バス調停装置１、タスクマネージャ１００、および、メモリ６、を具備する。
【０２６５】
バス調停装置１、タスクマネージャ１００、および、メモリ６は、バス８を介して結合される。
【０２６６】
また、バス調停装置１、タスクマネージャ１００、および、メモリ６は、データ転送制御線７を介して結合される。
【０２６７】
バス調停装置１とタスクマネージャ１００とは、バス調停装置１からの割り込み信号線９によって接続される。
【０２６８】
さて、タスクマネージャ１００は、単数又は複数のタスクを管理する。
【０２６９】
このタスクマネージャ１００は、ＣＰＵ上で動作するソフトウェアであってもよいし、また、ＣＰＵ上のタスクを制御可能なハードウェアであってもよいし、また、その双方を組み合わせたタスク制御機構であってもよい。
【０２７０】
バス調停装置１は、タスクマネージャ１００からのデータ転送要求を受けて、各タスクに対して、スロット単位でデータ転送要求を割り付ける装置である。
【０２７１】
また、バス調停装置１は、各タスクに対してスロット数を予約できる機構、および、予約できる残りスロット数をモニタできる機構、を有する。
【０２７２】
ここで、バス調停装置１は、所定のバスサイクル数（所定のバスクロック数）を１スロットとしている。
【０２７３】
メモリ６は、データを格納する。タスクマネージャ１００が管理するタスクを実行することで、メモリ６に格納されたデータに対して処理が施され、その結果がメモリ６に格納される。
【０２７４】
以上の構成を具備する図８に示したデータ処理装置によって、複数のタスクを実行する。この際、バス調停装置１は、リアルタイム処理が要求されるタスクに対して、リアルタイム処理に必要なスロット数を割り当てる。
【０２７５】
さて、図８のバス調停装置１の構成は、図１のバス調停装置１の構成と同様である。従って、図２を用いて、図８のバス調停装置１の詳細を説明する。
【０２７６】
なお、以下の説明では、タスクマネージャ１００が管理しているタスクが、タスク１〜タスク４の４つである例を挙げる。
【０２７７】
そして、タスク２及びタスク３がリアルタイム処理が必要なタスクであるとする。
【０２７８】
スロット割付周期レジスタ１０は、所定のスロット数で規定されるスロット割付周期を表す情報を保存するレジスタである。
【０２７９】
スロット割付周期は、スロット割付周期レジスタ１０に、外部から設定可能である。例えば、タスクマネージャ１００が、スロット割付周期レジスタ１０に、スロット割付周期を設定することができる。
【０２８０】
リアルタイム処理を行うタスク２及びタスク３の各々には、予め、所定のスロット数が割り付けられる。この場合、予め割り付けるスロット数を予約スロット数と呼ぶ。
【０２８１】
予約スロットレジスタ２１は、タスク２に割り付ける予約スロット数を表す情報を格納する。
【０２８２】
タスク２の予約スロット数は、予約スロットレジスタ２１に、外部から設定可能である。例えば、タスクマネージャ１００が、予約スロットレジスタ２１に、タスク２の予約スロット数を設定することができる。
【０２８３】
予約スロットレジスタ２２は、タスク３に割り付ける予約スロット数を表す情報を格納する。
【０２８４】
タスク３の予約スロット数は、予約スロットレジスタ２２に、外部から設定可能である。例えば、タスクマネージャ１００が、予約スロットレジスタ２２に、タスク３の予約スロット数を設定することができる。
【０２８５】
残余予約スロットレジスタ２０は、スロット割付周期を構成するスロット数から、予約スロットレジスタ２１に格納された予約スロット数と、予約スロットレジスタ２２に格納された予約スロット数と、を差し引いた値（以下、「残余予約スロット数」と呼ぶ。）を表す情報を格納する。
【０２８６】
この残余予約スロット数を、タスク１とタスク４とで使用する。
【０２８７】
ここで、予約スロットレジスタ２１，２２及び残余予約スロットレジスタ２０は、予約スロットテーブルを構成する。
【０２８８】
この予約スロットテーブルは、例えば、図３に示したようなものが挙げられる。
【０２８９】
残余スロット数算出回路６０は、スロット割付周期を構成するスロット数から、予約スロットレジスタ２１に格納された予約スロット数と、予約スロットレジスタ２２に格納された予約スロット数と、を差し引いて、残余予約スロット数を算出する。
【０２９０】
残余予約スロットレジスタ２０に格納される残余予約スロット数は、残余スロット数算出回路６０により算出されたものである。
【０２９１】
更新スロットレジスタ３１には、初期値（リセット値）として、予約スロットレジスタ２１に格納された、タスク２の予約スロット数を表す情報が格納される。
【０２９２】
そして、残余スロット数算出回路６０は、タスク２のデータ転送要求が許可されると、更新スロットレジスタ３１に格納されたタスク２に割り付けられた予約スロット数から、１スロット減じて、予約スロット数の残りのスロット数を算出する。
【０２９３】
そして、残余スロット数算出回路６０は、この残りのスロット数を表す情報を、更新スロットレジスタ３１に上書きする。
【０２９４】
さらに、残余スロット数算出回路６０は、タスク２のデータ転送要求が許可される度に、更新スロットレジスタ３１に格納された予約スロット数の残りのスロット数から、１スロット減じて、タスク２の予約スロット数の残りのスロット数を算出し、その結果を、更新スロットレジスタ３１に上書きする。
【０２９５】
以上のようにして、タスク２の予約スロットがカウントダウンされる。
【０２９６】
更新スロットレジスタ３２には、初期値（リセット値）として、予約スロットレジスタ２２に格納された、タスク３の予約スロット数を表す情報が格納される。
【０２９７】
そして、残余スロット数算出回路６０は、タスク３のデータ転送要求が許可されると、更新スロットレジスタ３２に格納されたタスク３に割り付けられた予約スロット数から、１スロット減じて、予約スロット数の残りのスロット数を算出する。
【０２９８】
そして、残余スロット数算出回路６０は、この残りのスロット数を表す情報を、更新スロットレジスタ３２に上書きする。
【０２９９】
さらに、残余スロット数算出回路６０は、タスク３のデータ転送要求が許可される度に、更新スロットレジスタ３２に格納された予約スロット数の残りのスロット数から、１スロット減じて、タスク３の予約スロット数の残りのスロット数を算出し、その結果を、更新スロットレジスタ３２に上書きする。
【０３００】
以上のようにして、タスク３の予約スロット数がカウントダウンされる。
【０３０１】
更新スロットレジスタ３０には、初期値（リセット値）として、残余予約スロットレジスタ２０に格納された残余予約スロット数を表す情報が格納される。
【０３０２】
そして、残余スロット数算出回路６０は、タスク１又はタスク４のデータ転送要求が許可されると、更新スロットレジスタ３０に格納された残余予約スロット数から、１スロット減じて、残余予約スロット数の残りのスロット数を算出する。
【０３０３】
そして、残余スロット数算出回路６０は、この残りのスロット数を表す情報を、更新スロットレジスタ３０に上書きする。
【０３０４】
さらに、残余スロット数算出回路６０は、タスク１又はタスク４のデータ転送要求が許可される度に、更新スロットレジスタ３０に格納された残余予約スロット数の残りのスロット数から、１スロット減じて、残余予約スロット数の残りのスロット数を算出し、その結果を、更新スロットレジスタ３０に上書きする。
【０３０５】
以上のようにして、残余予約スロット数がカウントダウンされる。
【０３０６】
更新スロットレジスタ３０，３１，３２は、スロット割付周期レジスタ１０で指定されたスロット割付周期が経過すると、リセットされる。
【０３０７】
つまり、スロット割付周期レジスタ１０で指定されたスロット割付周期が経過すると、残余スロット数算出回路６０は、更新スロットレジスタ３１に、予約スロット数レジスタ２１に格納された予約スロット数を表す情報を初期値（リセット値）として書き込み、更新スロットレジスタ３２に、予約スロットレジスタ２２に格納された予約スロット数を表す情報を初期値（リセット値）として書き込み、更新スロットレジスタ３０に、残余予約スロットレジスタ２０に格納された残余予約スロット数を表す情報を初期値（リセット値）として書き込む。
【０３０８】
そして、再び、予約スロット数および残余予約スロット数のカウントダウンが実行される。
【０３０９】
このように、リセットとカウントダウンとが繰り返し行われる。なお、カウントダウン値が、「０」でない場合でも、スロット割付周期が経過すると、リセットが行われる。
【０３１０】
更新スロット指定レジスタ４０〜４３には、それぞれ、タスク１に対する指定情報、タスク２に対する指定情報、タスク３に対する指定情報、及び、タスク４に対する指定情報、が格納される。
【０３１１】
ここで、指定情報とは、更新スロットレジスタ３１を表す情報、更新スロットレジスタ３２を表す情報、あるいは、更新スロットレジスタ３０を表す情報、である。
【０３１２】
具体的には、更新スロット指定レジスタ４０には、タスク１に対する指定情報として、更新スロットレジスタ３０を表す情報が格納される。
【０３１３】
なぜなら、タスク１は、残余予約スロット数レジスタ２０格納された残余予約スロット数を消費するからである。
【０３１４】
更新スロット指定レジスタ４１には、タスク２に対する指定情報として、更新スロットレジスタ３１を表す情報が格納される。
【０３１５】
なぜなら、タスク２は、予約スロットレジスタ２１に格納された予約スロット数を消費するからである。
【０３１６】
更新スロット指定レジスタ４２には、タスク３に対する指定情報として、更新スロットレジスタ３２を表す情報が格納される。
【０３１７】
なぜなら、タスク３は、予約スロットレジスタ２２に格納された予約スロット数を消費するからである。
【０３１８】
更新スロット指定レジスタ４３には、タスク４に対する指定情報として、更新スロットレジスタ３０を表す情報が格納される。
【０３１９】
なぜなら、タスク４は、残余予約スロットレジスタ２０に格納された残余予約スロット数を消費するからである。
【０３２０】
更新スロット指定レジスタ４０〜４３の指定情報は、外部から設定可能である。例えば、タスクマネージャ１００により、設定可能である。
【０３２１】
なお、バス調停装置１の初期設定が行われたときは、更新スロット指定レジスタ４０〜４３の全てに、更新スロットレジスタ３０を表す情報が格納される。その後、外部から、所望の更新スロット指定レジスタに、更新スロットレジスタ３１，３２を表す情報が上書きされる。
【０３２２】
ここで、更新スロット指定レジスタ４０〜４３は、更新スロット指定テーブルを構成する。
【０３２３】
この更新スロット指定テーブルは、例えば、図４において、更新スロット指定レジスタ４０をタスク１用とし、更新スロット指定レジスタ４１をタスク２用とし、更新スロット指定レジスタ４２をタスク３用とし、更新スロット指定レジスタ４３をタスク４用としたものが挙げられる。
【０３２４】
なお、図４の例では、タスク１及びタスク４で、更新スロットレジスタ３０を共用している。
【０３２５】
転送許可候補決定回路７０は、データ転送制御線７から、タスクマネージャ１００からのタスク１のデータ転送要求信号ＣＰＵｒ、タスクマネージャ１００からのタスク２のデータ転送要求信号ＶＣＥｒ、タスクマネージャ１００からのタスク３のデータ転送要求信号ＡＣＥｒ、及び、タスクマネージャ１００からのタスク４のデータ転送要求信号ＰＣＥｒ、を受ける。
【０３２６】
転送許可候補決定回路７０は、タスク１のデータ転送要求信号ＣＰＵｒを受けると、タスク１に対応する更新スロット指定レジスタ４０を参照する。
【０３２７】
そして、転送許可候補決定回路７０は、更新スロット指定レジスタ４０に格納された情報が示す更新スロットレジスタ３０を参照する。
【０３２８】
そして、転送許可候補決定回路７０は、更新スロットレジスタ３０に格納された、残余予約スロット数の残りのスロット数（カウントダウン値）が、「０」でない場合は、タスク１がデータ転送を許可する候補（転送許可候補）であることを示す転送許可候補通知信号Ｃを、優先順位選択回路５４に出力する。
【０３２９】
転送許可候補決定回路７０は、タスク２からのデータ転送要求信号ＶＣＥｒを受けると、タスク２に対応する更新スロット指定レジスタ４１を参照する。
【０３３０】
そして、転送許可候補決定回路７０は、更新スロット指定レジスタ４１に格納された情報が示す更新スロットレジスタ３１を参照する。
【０３３１】
そして、転送許可候補決定回路７０は、更新スロットレジスタ３１に格納された、予約スロットの残りのスロット数（カウントダウン値）が、「０」でない場合は、タスク２がデータ転送を許可する候補（転送許可候補）であることを示す転送許可候補通知信号Ｖを、優先順位選択回路５４に出力する。
【０３３２】
転送許可候補決定回路７０は、タスク３からのデータ転送要求信号ＡＣＥｒを受けると、タスク３に対応する更新スロット指定レジスタ４２を参照する。
【０３３３】
そして、転送許可候補決定回路７０は、更新スロット指定レジスタ４２に格納された情報が示す更新スロットレジスタ３２を参照する。
【０３３４】
そして、転送許可候補決定回路７０は、更新スロットレジスタ３２に格納された、予約スロット数の残りのスロット数（カウントダウン値）が、「０」でない場合は、タスク３がデータ転送を許可する候補（転送許可候補）であることを示す転送許可候補通知信号Ａを、優先順位選択回路５４に出力する。
【０３３５】
転送許可候補決定回路７０は、タスク４からのデータ転送要求信号ＰＣＥｒを受けると、ＰＣＥ５に対応する更新スロット指定レジスタ４３を参照する。
【０３３６】
そして、転送許可候補決定回路７０は、更新スロット指定レジスタ４３に格納された情報が示す更新スロットレジスタ３０を参照する。
【０３３７】
そして、転送許可候補決定回路７０は、更新スロットレジスタ３０に格納された、残余予約スロット数の残りのスロット数（カウントダウン値）が、「０」でない場合は、タスク４がデータ転送を許可する候補（転送許可候補）であることを示す転送許可候補通知信号Ｐを、優先順位選択回路５４に出力する。
【０３３８】
優先度レジスタ５０には、タスク１の優先度を表す情報が格納される。優先度レジスタ５１には、タスク２の優先度を表す情報が格納される。優先度レジスタ５２には、タスク３の優先度を表す情報が格納される。優先度レジスタ５３には、タスク４の優先度を表す情報が格納される。
【０３３９】
優先度は、優先度レジスタ５０〜５３に、外部から設定可能である。例えば、タスクマネージャ１００が、優先度レジスタ５０〜５３に、優先度を設定することができる。
【０３４０】
ここで、優先度レジスタ５０〜５３は、優先度テーブルを構成する。
【０３４１】
この優先度テーブルは、例えば、図５において、優先度レジスタ５０をタスク１用とし、優先度レジスタ５１をタスク２用とし、優先度レジスタ５２をタスク３用とし、優先度レジスタ５３をタスク４用としたものが挙げられる。
【０３４２】
優先順位選択回路５４は、転送許可候補決定回路７０から入力される転送許可候補通知信号が複数の場合、即ち、転送許可候補となっているタスクが複数の場合は、優先度レジスタ５０〜５３を参照して、複数の転送許可候補のうち、最も優先度の高い転送許可候補に対して、転送許可を与える。
【０３４３】
具体的には、優先順位選択回路５４は、タスクマネージャ１００に対して、データ転送制御線７を介して、転送許可を与える転送許可候補を示す転送許可信号を出力する。
【０３４４】
なお、図２において、転送許可信号ＣＰＵａは、タスク１に対する転送許可信号を示し、転送許可信号ＶＣＥａは、タスク２に対する転送許可信号を示し、転送許可信号ＡＣＥａは、タスク３に対する転送許可信号を示し、転送許可信号ＰＣＥａは、タスク４に対する転送許可信号を示している。
【０３４５】
例えば、優先度テーブルが図５に示すものである場合において、優先順位選択回路５４が、タスク１の転送許可候補通知信号Ｃ及びタスク２の転送許可候補通知信号Ｖを受けた場合は、優先順位選択回路５４は、優先度が高いタスク２に転送許可を与えることを示す転送許可信号ＶＣＥａを、タスクマネージャ１００に出力する。
【０３４６】
さて、一方、優先順位選択回路５４は、転送許可を与えた転送許可候補に対応する更新スロット指定レジスタを参照する。
【０３４７】
そして、優先順位選択回路５４は、参照した更新スロット指定レジスタに格納されている情報を、残余スロット数算出回路６０に与える。
【０３４８】
そして、残余スロット数算出回路６０は、優先順位選択回路５４から与えられた情報が表す、更新スロットレジスタ３１、更新スロットレジスタ３２、あるいは、更新スロットレジスタ３０、が格納している残りのスロット数を、１スロット減算する。
【０３４９】
残余スロット数算出回路６０は、このようにして算出した残りのスロット数を表す情報を、優先順位選択回路５４から与えられた情報が表す、更新スロットレジスタ３１、更新スロットレジスタ３２、あるいは、更新スロットレジスタ３０、に上書きする。
【０３５０】
こうして、転送許可が与えられる度に、転送許可が与えられた転送許可候補の予約スロット数あるいは残余予約スロット数が、カウントダウンされる。
【０３５１】
このことを、転送許可を与えた転送許可候補が、タスク３である場合を例に挙げて説明する。
【０３５２】
そうすると、優先順位選択回路５４は、タスク３に対応する更新スロット指定レジスタ４２を参照する。
【０３５３】
そして、優先順位選択回路５４は、更新スロット指定レジスタ４２に格納されている情報、即ち、更新スロットレジスタ３２を示す情報を、残余スロット数算出回路６０に与える。
【０３５４】
そして、残余スロット数算出回路６０は、優先順位選択回路５４から与えられた情報が表す更新スロットレジスタ３２が格納しているタスク３の予約スロット数の残りのスロット数を、１スロット減算する。
【０３５５】
残余スロット数算出回路６０は、このようにして算出したタスク３の残りのスロット数を表す情報を、優先順位選択回路５４から与えられた情報が表す更新スロットレジスタ３２に上書きする。
【０３５６】
こうして、この例では、タスク３の予約スロット数がカウントダウンされる。
【０３５７】
さて、残余スロット数算出回路６０は、カウントダウンの結果（減算の結果）、予約スロット数の残りがなくなった場合、あるいは、残余予約スロット数の残りがなくなった場合は、割り込み信号線９を介して、タスクマネージャ１００に対して、残りがなくなった予約スロット数あるいは残余予約スロット数を使用するタスクが予約スロット数あるいは残余予約スロット数を使い果たしたことを通知する。
【０３５８】
この通知を受けて、タスクマネージャ１００は、更新スロットレジスタ３０〜３２に格納されているスロット数が「１」以上であるタスクをスケジューリング対象とする。
【０３５９】
さて、図２の残余予約スロットレジスタ２０及び予約スロットレジスタ２１，２２からなる予約スロットテーブルが、図３に示すように設定され、図２の更新スロット指定レジスタ４０〜４３からなる更新スロット指定テーブルが、図４に示すように設定され、図２の優先度レジスタ５０〜５３からなる優先度テーブルが、図５に示すように設定されているとする。
【０３６０】
この場合の本実施の形態のバス調停装置１のタイムチャートは、図６に示したものと同様である。ただし、本実施の形態では、バス調停装置１が各タスクの各データ転送要求を調停する。
【０３６１】
さて、本実施の形態のバス調停装置１の処理の流れは、図７のフローチャートに示したものと同様である。ただし、本実施の形態では、バス調停装置１が各タスクの各データ転送要求を調停する。
【０３６２】
さて、予め予約スロット数が設定されていないタスク１，４が残余予約スロット数を使用できるようにするため、タスクマネージャ１００は、上述のように、タスク１，４に対応する更新スロット指定レジスタ４０，４３に、指定情報として、更新スロットレジスタ３０を表す情報を設定する。
【０３６３】
従って、予め予約スロット数が設定されていないタスク１，４が、残余予約スロット数を使い切った場合は、バス調停装置１は、割込み信号線９を介して、タスクマネージャ１００に、残余予約スロット数を使い切ったことを示す割込みを発生させる。
【０３６４】
この時点でタスクマネージャ１００は、上記割込みを起点に、他のタスク２，３に実行権を渡すことで、予め予約スロット数が設定されているタスク２，３のスロット数を保証することが可能となる。
【０３６５】
さて、以上のように、本実施の形態によれば、残余予約スロットレジスタ２０が記憶する残余予約スロット数を外部からモニタすることで、スロット数の不足により、これから実行しようとするタスクによる処理が破綻するか否かを予め判定できる。
【０３６６】
また、スロット割付周期レジスタ１０の設定を外部から変更することで、スロット割付周期を変更できる。さらに、予約スロットレジスタ２１，２２の設定を外部から変更することで、予約スロット数を変更できる。その結果、ユーザの利便性の向上を図ることができる。
【０３６７】
さらに、タスクが、当該タスクに割り当てられた予約スロット数を全て消費した場合、タスクマネージャ１００に対して、予約スロット数を全て消費した旨が通知される。これにより、無駄なデータ転送要求がなされることを防止できる。
【０３６８】
なお、タスクの種類は、上述したタスク１〜４に限定されるものではない。
【０３６９】
図２において、予約スロットレジスタ２１，２２の数は、２つに限定されるものではない。１つでもよいし、３以上でもよい。
【０３７０】
また、更新スロットレジスタ３１，３２も、２つに限定されるものではない。予約スロットレジスタの数に対応した数の更新スロットレジスタが設けられる。
【０３７１】
また、更新スロット指定レジスタ４０〜４３は、４つに限定されるものではない。タスクの数に対応した数の更新スロット指定レジスタが設けられる。
【０３７２】
また、更新スロット指定レジスタに設定する指定情報は、上述したものに限定されるものではなく、任意に設定できる。
【０３７３】
また、優先度レジスタ５０〜５３は、４つに限定されるものではない。タスクの数に対応した数の優先度レジスタが設けられる。
【０３７４】
また、優先度レジスタに設定する優先度は、上述したものに限定されるものではなく、任意に設定できる。
【０３７５】
さて、次に、実施の形態２の変形例を説明する。
【０３７６】
この変形例は、実施の形態１と実施の形態２とを組み合わせたものである。
【０３７７】
すなわち、この変形例によるバス調停装置は、複数のモジュールおよび複数のタスクからのデータ転送要求を調停する。
【０３７８】
この変形例によるバス調停装置の一例を説明する。この例では、図２のバス調停装置において、各タスク用の各予約スロットレジスタおよび各モジュール用の各予約スロットレジスタを設ける。
【０３７９】
さらに、各タスク用の各予約スロットレジスタおよび各モジュール用の各予約スロットレジスタに対応して、各更新スロットレジスタを設ける。
【０３８０】
さらに、各タスクおよび各モジュールに対応して、各更新スロット指定レジスタを設ける。
【０３８１】
さらに、各タスクおよび各モジュールに対応して、各優先度レジスタを設ける。
【０３８２】
この場合において、タスクマネージャ１００が、ＣＰＵ２上で動作するソフトウェアであるとすれば、変形例によるデータ処理装置の全体構成は、図１に示したものと同様になる。
【０３８３】
一方、タスクマネージャ１００が、ＣＰＵ上のタスクを制御可能なハードウェアである場合、あるいは、その双方を組み合わせたタスク制御機構である場合は、変形例によるデータ処理装置の全体構成は、図１のデータ処理装置に、図８のタスクマネージャ１００を加えたものとなる。
【０３８４】
変形例によるバス調停装置の他の例を説明する。
【０３８５】
この例では、タスクマネージャ１００が、ＣＰＵ２上で動作するソフトウェアであるとする。そうすれば、データ処理装置の全体構成は、図１に示したものと同様になる。
【０３８６】
また、バス調停装置の構成として、図２に示した実施の形態１のバス調停装置を使用できる。
【０３８７】
この例では、ＣＰＵ２がタスクマネージャ１００と考えることができる。従って、ＣＰＵ２に対応する更新スロット指定レジスタ４０に、指定情報として、タスクに対する更新スロットレジスタを設定する。
【０３８８】
例えば、指定情報として、更新スロットレジスタ３０を設定できる。この場合は、タスクマネージャ１００が管理するタスクは、残余予約スロットレジスタ２０に格納された残余予約スロット数を消費することになる。
【０３８９】
また、例えば、指定情報として、更新スロットレジスタ３１を設定できる。この場合は、タスクマネージャ１００が管理するタスクは、予約スロットレジスタ２１に格納された予約スロット数を消費することになる。
【０３９０】
この場合の具体的事案を示す。
【０３９１】
ＣＰＵ２、つまり、タスクマネージャ１００が管理する図１及び図２で示されるシステムにおいて、ＶＣＥ３による動画像伸張処理後に、ＣＰＵ２で実行される特殊効果処理タスクが、画像データに対してフィルタ処理などの特殊効果を施す処理までを、動画像圧縮伸張処理とする。
【０３９２】
このとき、ＶＣＥ３に対応する更新スロット指定レジスタ４１および特殊効果処理タスクに対応する更新スロット指定レジスタ４０の双方において、更新スロットレジスタ３１を設定することにより、ＶＣＥ３の処理およびＣＰＵ２上の特殊効果処理タスクによる処理からなる動画像伸張処理のスロット数を保証することが可能となる。
【０３９３】
さて、タスクの優先度については、次のようになる。ＣＰＵ２に対応する優先度レジスタ５０に格納された優先度が、タスクの優先度となる。
【産業上の利用可能性】
【０３９４】
本発明に係るバス調停装置は、例えばバスに接続される複数のモジュール間のデータ転送要求の調停等において好適に利用できる。
【図面の簡単な説明】
【０３９５】
【図１】本発明の実施の形態１におけるデータ処理装置のブロック図
【図２】同バス調停装置のブロック図
【図３】同予約スロットテーブルの例示図
【図４】同更新スロット指定テーブルの例示図
【図５】同優先度テーブルの例示図
【図６】同バス調停装置による処理を説明するためのタイムチャート
【図７】同バス調停装置のフローチャート
【図８】本発明の実施の形態２におけるデータ処理装置のブロック図
【符号の説明】
【０３９６】
１  バス調停装置
２  ＣＰＵ
３  ＶＣＥ
４  ＡＣＥ
５  ＰＣＥ
６  メモリ
７  データ転送制御線
８  バス
９  割り込み信号線
１０  スロット割付周期レジスタ
２０  残余予約スロットレジスタ
２１，２２  予約スロットレジスタ
３０〜３２  更新スロットレジスタ
４０〜４３  更新スロット指定レジスタ
５０〜５３  優先度レジスタ
５４  優先順位選択回路
６０  残余スロット数算出回路
７０  転送許可候補決定回路
８０  転送許可決定回路
１００  タスクマネージャ
【図１】
2004234635.tif 000003
【図２】
2004234635.tif 000004
【図３】
2004234635.tif 000005
【図４】
2004234635.tif 000006
【図５】
2004234635.tif 000007
【図６】
2004234635.tif 000008
【図７】
2004234635.tif 000009
【図８】
2004234635.tif 000010