説明

バス調停回路、情報処理装置、並びに、そのプログラムおよび記録媒体

【課題】 帯域保証が必要な同期データを構成するデータ列を繰り返し伝送可能な同期デバイスが、より確実に同期データを伝送できるようにバスを調停可能なバス調停回路を実現する。
【解決手段】 バス調停回路16は、外部バスI/F20による同期データの伝送を検出した場合、レジスタ33に格納された予測用情報に基づいて、次の同期データのデータ列のデータ伝送開始時点の予測結果よりも前の調停開始時点を決定すると共に、外部バスI/F20によって使用権が要求されていなくても、当該調停開始時点から、前記外部バスI/F20へ使用権を与えるための前記バスの調停処理を開始する。これにより、外部バスI/F20がバス使用権を要求してから調停処理を開始するよりも、早い時点で、遅滞なく、外部バスI/F20にバス使用権を与えることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、転送タイミングと転送帯域の保証とが必要な映像・音声などのデータを処理する際などに好適に用いられ、帯域保証が必要な同期データを構成するデータ列を繰り返し伝送可能な同期デバイスが、より確実に同期データを伝送できるようにバスを調停可能なバス調停回路、それを備える情報処理装置、並びに、それを実現するためのプログラムおよび記録媒体に関するものである。
【背景技術】
【0002】
デバイス間でデータをやり取りするに該って、複数のデバイス間によってバスを共用し、当該バスを介して、各デバイスがデータを送受するシステムは、広く使用されており、各デバイスのバスの使用権を調停するためのバス調停回路を備えた情報処理装置も広く用いられている。
【0003】
以下では、後述の特許文献1にて開示されている、情報処理装置における内部バスの動作について、図5を用いて説明する。
【0004】
図5において、情報処理装置100は、転送帯域の保証が必要なリアルタイムデータを処理することが可能な情報処理装置であって、CPU111、ホストバス112、メモリ113、ホスト−PCIブリッジ114、PCIバス115、バス調停回路101、ディスクI/F102、IEEE1394I/F103〜104から構成される。
【0005】
また、ディスクI/F102には、HDD110が接続されている。IEEE1394I/F103には、IEEE1394バス108を介して、デジタルTVチューナ111が接続されている。さらに、IEEE1394I/F104には、IEEE1394バス109を介して、DVCR(Digital Video Cassete Recorder)23が接続されている。また、ディスクI/F102、IEEE1394I/F103〜104は、それぞれタイマー105〜107を持つ。
【0006】
CPU111は、データ処理や、演算を行う手段である。ホストバス112は、CPU111とメモリ113を接続し、高速にデータ転送ができる内部バスである。ホスト−PCIブリッジ114は、CPU111とメモリ113、PCIバス115間のデータの受け渡しを制御する制御デバイスである。メモリ113は、CPU111が処理するためのプログラムやデータ、プログラムの一時的な作業領域などを記録するデバイスである。
【0007】
PCIバス115は、様々なデバイスが共用する情報処理装置の内部にあるバスであり、バス調停回路101は、PCIバス115に接続された各デバイスからのPCIバス115の使用要求に対して、ある一定のアルゴリズムで選択した一つのデバイスにバス使用権を許可するバス調停手段である。
【0008】
タイマー手段105〜107は、各デバイスがPCIバス115を使用している時間をPCIバス115のクロック単位でカウントし、PCIバス115を一度に使用できる最大時間がPCIバス115のクロック単位で記述されたプリセット値を持つ手段である。
【0009】
ディスクI/F102は、PCIバスとCDやHDDなどの大容量記憶デバイスを接続するインタフェースである。IEEE1394I/F103〜104は、PCIバス115とIEEE1394バス108とを接続するIEEE1394準拠のインタフェースである。
【0010】
また、IEEE1394は、転送しながら逐次映像などを再生するようなリアルタイム性の要求される場合には、接続された機器間でデータ転送に必要な帯域を確保して転送することが可能な機器接続インタフェースやバスの規格である。
【0011】
なお、以下では、このようなリアルタイム性の要求されるデータ(帯域保証を必要とするデータ)を同期データと呼び、同期データを転送することができるデバイスのことを同期デバイスと呼ぶ。なお、本実施形態に係る同期デバイスは、同期データを送信する際、周期的に、ある一定量のデータを転送する。また、転送帯域の保証が必要でないデータを転送するデバイスを、非同期デバイスと呼び、転送帯域の保証が必要でないデータのことを、非同期データと呼ぶことにする。
【0012】
次に、このような従来の情報処理装置がデジタルTVチューナ111でデジタル放送を受信し、受信したAVデータをDVCR123で記録する場合の動作を説明する。
デジタル放送ではMPEG2トランスポートストリームのトランスポートパケットを利用して、放送局からAVデータが放送波に載せて送られてきている。
【0013】
デジタルTVチューナ111は、この放送波を受信し、復調する。そして、デジタルTVチューナ111は、復調されたAVデータを順次IEEE1394バス108に送出する。
【0014】
IEEE1394では、時刻を125μ秒のタイムスロットに分割するように規定されている。IEEE1394バス108に接続されている装置は、このタイムスロットで1回だけ、一定量の同期データを送ることが出来る。したがって、一定期間に送ることの出来るデータの転送量は保証されている。このように、IEEE1394では、同期データを欠落なく正常に転送することが出来る。
【0015】
IEEE1394I/F103は、デジタルTVチューナ111が送ったAVデータを受信し一旦バッファに格納する。
【0016】
さらに、IEEE1394I/F103は、バス調停回路101にバス使用権を要求する。バス調停回路101は、調停を行い、IEEE1394I/F103にバス使用権を与える。以下に、このようにバス調停回路101がPCIバス115の調停を行う動作を詳細に説明する。
【0017】
ディスクI/F102、IEEE1394I/F103が、PCIバス115の使用を希望しているデバイス(以下マスタデバイスと呼ぶ)であるとする。ディスクI/F102、IEEE1394I/F103は、バス使用の要求をREQという信号線によってバス調停回路101に発する。
【0018】
バス調停回路101は、このような各マスタデバイスからのバス使用の要求を受け付ける。そして同時に二つ以上のマスタデバイスからのPCIバス115の使用権の要求が来ているときには、どのマスタデバイスにバス使用権を与えるかを決定する。そしてバス使用を許すマスタデバイスに、GNTという信号線によって、PCIバス115の使用を許可することを通知する。REQとGNTとは、各デバイスとバス調停回路101とをポイント・ツー・ポイントで接続し、この1組の信号線を利用して、バス調停回路101は、バスアービトレーションを行う。
【0019】
バス調停回路101は、同時に二つ以上のマスタデバイスからのバス使用の要求を受け付けているとき、バス使用の許可の回数が平等になるような巡回型アルゴリズム等に従って調停を行う。
【0020】
バス調停回路101によるバスアービトレーション(調停処理)の結果、IEEE1394I/F103は、PCIバス115の使用許可を得た、すなわち、PCIバス15のイニシエータになったとする。すると、タイマー106は、PCIバス115のクロックのカウントを開始する。そして、タイマー106のカウント値が、タイマー106が予め持っているプリセット値に等しくなるまで、IEEE1394I/F104は、バッファに格納されているAVデータを順次読み取り、IEEE1394I/F103のアドレスを指定して、AVデータを順次PCIバス115に送出する。すなわち、イニシエータは、タイマー106のカウント値が、プリセット値に等しくなる時間を最大時間として、データ送出を行う。
【0021】
ここで、タイマー105〜107が有するプリセット値は、転送を希望する1つの同期デバイスのために保証すべき転送帯域の、PCIバス115の総転送可能帯域に占める割合より、この同期デバイスのタイマーのプリセット値の、転送を希望する同期デバイス及び非同期デバイス全てのタイマーのプリセット値の総和に占める割合の方が等しいかまたは大きくなるように設定される。このように決定することによって、IEEE1394I/F103が必要とする転送帯域を必ず確保出来る。
【0022】
このような条件を満たすように、各タイマー105〜107のプリセット値を予め決定しておくことによって、IEEE1394I/F103が必要とする転送帯域を保証する。
【0023】
一方、IEEE1394I/F104は、IEEE1394I/F103からPCIバス115に送出されたAVデータを、受信し、一旦バッファに格納する。
【0024】
バッファに格納されたAVデータは、順次IEEE1394バス109に送出され、DVCR23は受信したAVデータを順次テープ媒体に記録していく。
【0025】
このように、バス調停回路101が、各デバイスがPCIバス115を使用する許可の回数が平等になるように調停し、CPU111が、各デバイスのタイマー105〜107のプリセット値を調整することによって、IEEE1394I/F103などがAVデータの転送に必要な転送量は、保証される。
【特許文献1】特開2001−117861号公報(公開日:2001年4月27日)
【発明の開示】
【発明が解決しようとする課題】
【0026】
しかしながら、上述した情報処理装置では、同期データを転送しようとするIEEE1394I/F等の同期デバイスに与えられるバスの使用権が、同期デバイスがデータを転送するタイミングとは無関係であるため、同期データの転送においてジッタが発生し、リアルタイム性が損なわれたり、AVデータの場合には再生品質の劣化が発生したり、意図したようなデータ転送帯域の確保ができなかったりするという課題がある。
【0027】
例えば、IEEE1394I/Fの場合、同期データの転送は、125μ秒毎に一定量行われるが、転送したい同期データが準備されたとしても、そのとき非同期デバイスに使用権が割り当てられておりデータの転送中であった場合には、その非同期データの転送が終了するまで、同期データの転送が待たされることとなり、最悪の場合、次の125μ秒後の同期データ転送が不可能になる。なお、ジッタの発生による影響を最小限にとどめるためにバッファのサイズを大きくする方法もあるが、この場合は、データ転送の遅延時間が大きくなり、操作性の低下を招くという課題もある。
【0028】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、帯域保証が必要な同期データを構成するデータ列を繰り返し伝送可能な同期デバイスが、より確実に同期データを伝送できるようにバスを調停可能なバス調停回路、それを備える情報処理装置、並びに、それを実現するためのプログラムおよび記録媒体に関するものである。
【課題を解決するための手段】
【0029】
本発明に係るバス調停回路は、上記課題を解決するために、帯域保証が必要な同期データを構成するデータ列を繰り返し伝送可能な同期デバイスを含む複数のデバイスによって共用されるバスの使用権を調停するバス調停手段を有するバス調停回路において、前記同期デバイスによる次のデータ伝送開始時点を予測するための予測用情報が予め格納された記憶手段を備え、前記バス調停手段は、前記同期デバイスによる同期データの伝送を検出した場合、前記記憶手段に格納された予測用情報に基づいて、次の同期データのデータ列のデータ伝送開始時点の予測結果よりも前の調停開始時点を決定すると共に、前記同期デバイスによって使用権が要求されていなくても、当該調停開始時点から、前記同期デバイスへ使用権を与えるための前記バスの調停処理を開始することを特徴としている。
【0030】
なお、予測用情報は、次の同期デバイスによる次のデータ伝送開始時点を予測するための情報であって、例えば、同期デバイスが周期的にデータ列を伝送する場合は、周期が好適に使用される。この場合の例としては、同期デバイスが、タイマの計時結果に基づいて周期的にデータ列を伝送する場合、あるいは、同期デバイスが受信したデータをバッファに格納すると共にバッファの蓄積量が所定の閾値になったときに、バスへデータを転送する構成において、受信するデータの速度が一定の場合などが挙げられる。また、上記予測用情報は、同期デバイスが、予め定められたアルゴリズムに従って、データ列の各伝送開始時点間の時間間隔の平均値が一定になり、しかも、各時間間隔の少なくとも一部が他の時間間隔と異なるように、上記各時間間隔を制御する場合には、当該アルゴリズムの情報などであってもよい。
【0031】
上記構成において、同期デバイスは、帯域保証が必要な同期データを送る場合、同期データを構成するデータ列を繰り返し伝送している。一方、バス調停回路のバス調停手段は、同期デバイスによる同期データの伝送を検出すると、記憶手段に予め格納された予測用情報に基づいて、次の同期データのデータ列のデータ伝送開始時点の予測結果よりも前の調停開始時点を決定する。さらに、バス調停手段は、前記同期デバイスによって使用権が要求されていなくても、当該調停開始時点から、前記同期デバイスへ使用権を与えるための前記バスの調停処理を開始する。
【0032】
当該構成では、バス調停手段は、上記調停開始時点から調停処理を開始するので、同期デバイスがデータ列を繰り返し伝送して同期データを伝送するにあたって、同期デバイスが実際にバスの使用権を要求するよりも前の時点から調停処理を開始できる。したがって、同期デバイスが実際にバスの使用権を要求してから調停処理を開始する構成と比較して、バス調停回路は、同期デバイスへ、より早い時点で、遅滞なく、バスの使用権を与えることができ、当該同期デバイスが、より確実に同期データを伝送できるように、バスを調停できる。この結果、例えば、AVデータのように、リアルタイム性が強く要求される同期データを何ら支障なく伝送可能なシステムを実現できる。
【0033】
また、上記構成に加えて、前記予測用情報は、前記同期デバイスがデータ列を伝送する周期を示す情報であってもよい。当該構成では、周期を示す予測用情報に基づいて、次のデータ伝送開始時点の予測結果よりも前の調停開始時点が決定されるので、同期デバイスが周期的に同期データのデータ列を伝送する構成に好適に使用できる。
【0034】
さらに、上記構成に加えて、前記次の同期データのデータ列のデータ伝送開始時点の予測結果と前記調停開始時点との時間差は、前記調停処理に要する時間よりも大きく設定されており、前記バス調停手段は、前記同期デバイスによる同期データの伝送を検出した場合、当該同期デバイスが前記バスの使用権を要求するよりも前に、前記バスの使用権を与えるための許可信号を当該同期デバイスへ出力してもよい。
【0035】
当該構成によれば、同期デバイスがバスの使用権を実際に要求するよりも前の時点で、当該同期デバイスへ許可信号が与えられるので、同期デバイスは、待ち時間なしに、バスの使用許可を得ることができる。この結果、バス調停回路は、さらに早い時点で、さらに遅滞なく、バスの使用権を与えることができ、同期デバイスが、より確実に同期データを伝送できるようにバスを調停できる。
【0036】
また、上記構成に加えて、前記バス調停手段は、予め設定されたバス使用許可時間情報の示す時間、前記許可信号を同期デバイスへ与えてもよい。当該構成において、前記許可信号は、予め設定されたバス使用許可時間情報の示す時間、同期デバイスへ与えられる。したがって、帯域保証するために同期デバイスがデータ列の伝送時に占有すべき期間に応じた情報を、バス使用許可時間情報として設定することによって、バス調停回路は、当該期間中、同期デバイスに上記バスを占有させることができ、当該同期デバイスが、より確実に同期データを伝送できるように、バスを調停できる。
【0037】
さらに、上記構成に加えて、前記バス調停手段は、前記バスの状態を監視して、前記同期デバイスがデータ列を実際に伝送しているか否かを検出すると共に、前記同期デバイスがデータ列を実際に伝送している期間の合計が、予め設定されたバス使用許可時間情報の示す時間になるように、前記許可信号を同期デバイスへ与える期間の長さを制御してもよい。
【0038】
当該構成において、前記許可信号が同期デバイスへ与えられる期間の長さは、前記同期デバイスがデータ列を実際に伝送している期間の合計になるように制御される。したがって、帯域保証するために同期デバイスがデータ列の伝送時に占有すべき期間に応じた情報を、バス使用許可時間情報として設定することによって、バス調停回路は、当該期間中、同期デバイスに上記バスを占有させることができ、当該同期デバイスが、より確実に同期データを伝送できるように、バスを調停できる。
【0039】
加えて、バス調停手段が、前記バスの状態を監視して、前記同期デバイスがデータ列を実際に伝送しているか否かを検出しているので、前記同期デバイスがデータ列を実際に伝送しているか否かに拘わらず、一定の期間、許可信号を前記同期デバイスへ与える構成よりも、当該同期デバイスが、さらに確実に同期データを伝送できるように、バスを調停できる。
【0040】
また、上記構成に加えて、前記バス調停手段は、前記バスの状態を監視して、今回、前記同期デバイスによって実際に伝送されたデータ列のデータ量を検出すると共に、検出結果に応じて、前記バス使用許可時間情報を更新してもよい。
【0041】
当該構成では、今回、前記同期デバイスによって実際に伝送されたデータ列のデータ量に応じて、前記バス使用許可時間情報が更新されるので、同期デバイスによって繰り返し伝送されるデータ列のデータ量が、ある程度変動する場合であっても、変動に応じて、同期デバイスへバスの使用許可を与える期間を変更できる。この結果、バス調停回路は、当該同期デバイスが、さらに確実に同期データを伝送できるように、バスを調停できる。
【0042】
また、上記構成に加えて、前記バス調停手段は、前記調停開始時点になると、その時点でバスを使用している前記同期デバイス以外のデバイスへ、バス転送中止信号を出力して、当該デバイスによるデータ転送を中止させてもよい。
【0043】
当該構成によれば、上記調停開始時点になると、その時点でバスを使用している前記同期デバイス以外のデバイスへ、バス転送中止信号を出力されるので、当該デバイスによるデータ転送を中止させることができる。この結果、同期デバイスが実際にバスの使用権を要求してから調停処理を開始する構成と比較して、バス調停回路は、同期デバイスへ、より早い時点で、遅滞なく、バスの使用権を与えることができ、当該同期デバイスが、より確実に同期データを伝送できるように、バスを調停できる。
【0044】
さらに、上記構成に加えて、前記バス調停手段は、前記同期デバイスからの1回のバス使用権の要求に対して、前記バスの使用許可を複数回に分けて与えてもよい。当該構成では、前記バスの使用許可は、前記同期デバイスからの1回のバス使用権の要求に対して、複数回に分けて与えられる。したがって、バス使用権の要求毎に、1回のバスの使用許可を与える構成と比較して、同期デバイスへ連続して与える使用許可の長さを短くすることができ、他のデバイスがバスの使用権を要求してから、使用許可が与えられるまでの時間を短縮できる。
【0045】
また、上記構成に加えて、前記バス調停手段は、前記同期デバイスがバスの使用権を得ているときに、当該同期デバイス以外のデバイスからのバスの使用権が要求されてからの経過時間を計時すると共に、当該経過時間が予め定められたバス使用許可時間を超えた場合、予め設定した時間だけ、一時的に当該同期デバイスのバスの使用権を開放して、前記デバイスにバスの使用権を与えてもよい。
【0046】
当該構成では、同期デバイス以外のデバイスからのバスの使用権が要求されてからの経過時間がバス使用許可時間を超えた場合、バスの使用権が一時的に当該デバイスへ与えられるので、他のデバイスがバスの使用権を要求してから、使用許可が与えられるまでの時間を、最大許容時間以内に抑えることができる。
【0047】
さらに、上記構成に加えて、前記バス調停手段は、2つ以上の同期デバイスがバスに接続されている場合、データ転送の周期が最も短い同期デバイスに対して、前記調停開始時点を決定し、当該調停開始時点から当該同期デバイスへ使用権を与えるための前記バスの調停処理を開始してもよい。
【0048】
当該構成では、データ転送の周期が最も短い同期デバイスについて、予測情報に基づく調停開始時点の決定、および、当該調停開始時点からの調停処理が行われる。したがって、データ転送の周期が最も短く、したがって、より速い時点で、より遅滞なくバスの使用権を与えることが上記複数の同期デバイスの中で最も要求される、特定の同期デバイスに対して、より速い時点で、より遅滞なくバスの使用権を与えることができる。この結果、バス調停回路は、上記特定の同期デバイスが、より確実に同期データを伝送できるように、バスを調停できる。
【0049】
また、上記構成に加えて、前記バス調停手段は、2つ以上のデータ転送の周期が同じである同期デバイスがバスに接続されている場合、いずれかの一つの同期デバイスに対して、前記調停開始時点を決定し、当該調停開始時点から当該同期デバイスへ使用権を与えるための前記バスの調停処理を開始すると共に、該同期デバイスのデータ転送に必要な時間のバス使用許可を該同期デバイスに与えた後、前記各同期デバイス以外のデバイスにバス使用許可を与える前に、所定の順序に、別の同期デバイスに対して、バスの使用許可を与えてもよい。
【0050】
当該構成では、ある同期デバイスに対して、該同期デバイスのデータ転送に必要な時間のバス使用許可を該同期デバイスに与えた後、前記各同期デバイス以外のデバイスにバス使用許可を与える前に、他の同期デバイスに対して使用許可が与えられる。したがって、バス調停回路は、各同期デバイス以外のデバイスよりも、他の同期デバイスの方に優先して、使用許可を与えることができ、これらの同期デバイスがより確実に同期データを伝送できるように、バスを調停できる。
【0051】
また、本発明に係る情報処理装置は、上記課題を解決するために、上記構成のバス調停回路と、接続された複数のデバイスによる使用権が前記バス調停回路によって調停されるバスと、前記バスに接続された同期デバイスの特性を検出すると共に、検出結果に基づいて、前記バス調停回路に前記予測用情報を設定する設定手段とを備えていることを特徴としている。
【0052】
当該構成によれば、上記設定手段が前記バスに接続された同期デバイスの特性を検出すると共に、バス調停回路の予測用情報が検出結果に基づいて設定されるので、現在、バスに接続されている同期デバイスの特性に応じて、予測用情報を変更できる。この結果、バス調停回路は、現在、バスに接続されている同期デバイスが、より確実に同期データを伝送できるように、バスを調停でき、より確実に同期データを伝送可能な情報処理装置を実現できる。
【0053】
ところで、上記情報処理装置の各手段は、ハードウェアによって実現してもよいし、プログラムをコンピュータに実行させることによって実現してもよい。具体的には、本発明に係るプログラムは、バス調停回路と、接続された複数のデバイスによる使用権が前記バス調停回路によって調停されるバスとに接続可能なコンピュータのプログラムであって、前記バス調停回路は、帯域保証が必要な同期データを構成するデータ列を繰り返し伝送可能な同期デバイスを含む複数のデバイスによって共用されるバスの使用権を調停するバス調停手段を有し、前記バス調停手段は、前記同期デバイスによる同期データの伝送を検出した場合、前記同期デバイスによる次のデータ伝送開始時点を予測するために予め設定された予測用情報に基づいて、次の同期データのデータ列のデータ伝送開始時点の予測結果よりも前の調停開始時点を決定すると共に、前記同期デバイスによって使用権が要求されていなくても、当該調停開始時点から、前記同期デバイスへ使用権を与えるための前記バスの調停処理を開始すると共に、前記プログラムは、前記バスに接続された同期デバイスの特性を検出すると共に、検出結果に基づいて、前記バス調停回路に前記予測用情報を設定する設定手段として、前記コンピュータを動作させるプログラムであることを特徴としている。また、本発明に係る記録媒体には、当該プログラムが記録されている。
【0054】
当該プログラムが上記コンピュータによって実行されると、当該コンピュータ、バスおよびバス調停回路を有する装置は、上記情報処理装置として動作する。したがって、上記情報処理装置と同様に、現在、バスに接続されている同期デバイスが、より確実に同期データを伝送できるように、バスを調停でき、より確実に同期データを伝送可能な情報処理装置を実現できる。
【発明の効果】
【0055】
本発明によれば、同期デバイスへ、より早い時点で、遅滞なく、バスの使用権を与えることができ、当該同期デバイスが、より確実に同期データを伝送できるように、バスを調停できる。したがって、例えば、リアルタイム性が強く要求されるAVデータをバスを介して伝送するAVシステムをはじめ、バスを介して、種々の同期データを伝送可能な種々のシステムに広く好適に使用できる。
【発明を実施するための最良の形態】
【0056】
〔第一の実施の形態〕
以下、本発明の実施の形態について説明する。
まず、第一の実施の形態について、図1から図3を用いて説明する。
【0057】
図1は、本発明の第一の実施に係る内部バスの帯域制御手段を具備した情報処理装置1の構成を示すブロック図である。図1において、情報処理装置1は、CPU11、ホストバス12、メモリ13、ホスト−内部バスブリッジ14、内部バス15、バス調停回路16、イーサネット(登録商標)I/F17、グラフィックコントローラ18、MPEGデコーダ19、外部バスI/F20から構成される。また、グラフィックコントローラ18には、ディスプレイ21が接続されている。さらに、外部バスI/F20には、外部バス22を介してDVCR23が接続されている。なお、上記内部バス15が特許請求の範囲に記載のバスに対応し、外部バスI/F20が同期デバイスに対応している。
【0058】
本実施形態に係る情報処理装置1では、上記内部バス15として、PCI(Peripheral Component Interconnect )バスが採用されており、外部バス22として、IEEE(米国電気電子技術者協会)1394バスが採用されている。この場合、上記ホスト−内部バスブリッジ14および外部バスI/F20は、それぞれ、ホスト−PCIブリッジおよびIEE1394I/Fである。
【0059】
CPU11は、データ処理や、演算を行う手段であって、例えば、上記メモリ13あるいは図示しないハードディスクなど、CPU11がアクセス可能な記憶装置に格納されたプログラムに従って、データ処理や演算を行うことができる。なお、CPU11が当該記憶装置へアクセスする際には、例えば、上記ホストバス11を介して直接アクセスしてもよいし、例えば、ホストバス11、ホスト−内部バスブリッジ14および内部バス15を介して、図示しないハードディスクIFへ記憶装置としてのハードディスクへのアクセスを指示するなどして、間接的に記憶装置へアクセスしてもよい。
【0060】
また、ホストバス12は、情報処理装置1内に設けられた、高速にデータ転送ができるバスであり、CPU11とメモリ13とを接続している。当該ホストバス12は、一般に、インタフェースなどのデバイスが共用する内部バス15よりも、高速となっている。メモリ13は、CPU11が処理するためのプログラムやデータ、プログラムの一時的な作業領域などを記録するデバイスである。また、ホスト−内部バスブリッジ14は、CPU11およびメモリ13と、内部バス15との間のデータの受け渡しを制御するデバイスである。なお、本実施形態では、メモリ13は、ホストバス12に直接接続されているが、CPU11がメモリ13にアクセスできれば、他の方法で接続されていてもよい。一例として、ホスト−内部バスブリッジ14にメモリコントローラが内蔵されており、ホスト−内部バスブリッジ14に接続される場合もある。
【0061】
内部バス15は、様々なデバイスが共用する情報処理装置1の内部にあるバスであり、バス使用権を得たデバイスが、当該内部バス15を制御して、データの転送を行うことができる。
【0062】
バス調停回路16は、内部バス15に接続された各デバイスからの内部バス15の使用要求に対して、ある一定のアルゴリズムで選択した一つのデバイスにバス使用権を許可することができる。さらに、上記バス調停回路16は、転送タイミングと転送帯域の保証とが必要な映像・音声などのデータを処理することのできる内部バス15の帯域を制御する手段としても動作することができる。なお、当該バス調停回路16が特許請求の範囲に記載のバス調停手段に対応する。
【0063】
具体的には、本実施形態に係るバス調停回路16は、詳細は後述するように、上記各デバイスのうち、周期的にバス使用権を要求して帯域保証の必要なデータを伝送しようとするデバイスが、次にバス使用権を要求する時点を、予め定められた予測用情報に基づいて推測すると共に、当該時点よりも先にバス使用権の調停処理を開始することができる。なお、予測用情報は、上記デバイスが次にバス使用権を要求する時点を予測するための情報であって、当該デバイスの特定に基づいて予め設定されている。当該予測用情報としては、詳細は後述するように、例えば、当該デバイスが、帯域保証の必要なデータを伝送する際に、データ列を転送する周期(バス使用権を要求する周期)などが挙げられる。
【0064】
なお、以下では、このようなリアルタイム性の要求されるデータ(帯域保証を必要とするデータ)を同期データと呼び、同期データを転送することができるデバイスのことを同期デバイスと呼ぶ。なお、本実施形態に係る同期デバイスは、同期データを送信する際、周期的に、ある一定量のデータを転送する。また、転送帯域の保証が必要でないデータを転送するデバイスを、非同期デバイスと呼び、転送帯域の保証が必要でないデータのことを、非同期データと呼ぶことにする。
【0065】
これにより、バス調停回路16は、同期デバイスによって、同期データが送信される場合に、当該同期デバイスが実際にバス使用権を要求する時点よりも前の時点で、調停処理を開始することができる。したがって、バス調停回路16は、当該同期デバイスからバス使用権が要求されてから調停処理を開始する構成と比較して、当該同期デバイスへより迅速にバス使用権を与えることができる。この結果、より確実に同期データの帯域を保証することができる。
【0066】
また、本実施形態に係るバス調停回路16には、上記同期デバイスへバス使用権を与える期間を示す情報(バス使用許可時間情報)も予め設定されており、バス調停回路16は、当該バス使用許可時間情報に基づいた期間、上記同期デバイスへバス使用権を与えることができる。なお、本実施形態では、詳細は後述するように、バス使用許可時間情報として、同期データの必要とする帯域情報に応じた値が設定されている。
【0067】
これにより、当該バス調停回路16は、より確実に、同期デバイスの必要とする期間の間、当該同期デバイスへバスの使用権を与えることができ、より確実に同期データの帯域を保証できる。
【0068】
上記各情報は、同期データが転送されるまでに設定されていれば、どのような装置がバス調停回路16に設定してもよいし、バス調停回路16に常時記憶されていてもよいが、本実施形態では、上述の記憶装置に格納されたプログラムに従って動作するCPU11が、同期デバイスの特性に応じた上記各情報を、上記ホストバス12を介して、バス調停回路16に設定している。
【0069】
なお、図1では、一例として、バス調停回路16がホスト−内部バスブリッジ14とは別の独立したデバイスである場合(別のチップである場合)を図示しているが、ホスト−内部バスブリッジ14のチップ内に内蔵されていてもよい。この場合は、情報処理装置1を構成するチップ数を削減できる。また、図1の構成のホスト−内部バスブリッジ14と別体に設けられている構成において、既存のバス調停回路を内蔵したホスト−内部バスブリッジ14を用いる場合には、当該ホスト−内部バスブリッジ14に内蔵されているバス調停回路を無効にして使用する。
【0070】
イーサネットI/F17は、ツイストペアケーブルによって、IP(Internet Protocol )ネットワークに接続するためのインタフェースであり、情報処理装置1をインターネットや、PC、サーバ等とIPネットワークで接続することができる。
【0071】
グラフィックコントローラ18は、画像データを高速に描画して、ディスプレイ21に表示する手段であり、映像入力インタフェースを持ち、CPU11が作成した画像データと映像入力インタフェースから入力した映像とを、任意の位置に重ね合わせて表示することができる。
【0072】
MPEGデコーダ19は、MPEG形式で圧縮されたAVデータを分離、伸長する手段であり、伸長された映像を、グラフィックコントローラ18を介して、ディスプレイ21に表示させることができる。なお、MPEGデコーダ19は、MPEGデコーダ19で伸長された音声については、DACを介して、ディスプレイ21の音声入力端子や、別のアンプなど(いずれも図示せず)に出力させることができる。
【0073】
外部バスI/F20は、内部バス15と外部バス22とを接続するインタフェースである。本実施形態では、上記外部バス22としてIEEE1394を採用しているので、外部バスI/F20として、IEEE1394準拠のインタフェースが採用されている。DVCR23は、外部バス22に接続されており、AVデータの記録および再生を行うデジタルビデオカセットレコーダである。
【0074】
また、上記外部バス22は、例えば、転送しながら逐次映像などを再生する場合のように、リアルタイム性の要求される場合に、接続された機器間でデータ転送に必要な帯域を確保して転送することが可能なバスである。本実施形態では、当該外部バス22の一例として、IEEE1394バスを採用している。なお、IEEE1394は、機器接続インタフェースおよびバスの規格である。
【0075】
このような本実施の形態について、DVCR23に保存されている、MPEG2形式で圧縮されたAVデータを、ディスプレイ21上にて再生する場合の動作を説明する。
【0076】
以下では、バス調停回路16の調停動作について説明する前に、AVデータ転送の概略について簡単に説明する。なお、DVCR23に保存されているAVデータをディスプレイ21上に表示するためには、DVCR23の制御や認証、AVデータの一覧表示と再生データの選択などの手順が必要だが、本発明においては同期データを転送する場合に着目しているので、詳細な説明の記述は省略し、AVデータの転送の動作についてのみ説明する。
【0077】
すなわち、DVCR23が外部バス22を介して外部バスI/F20へAVデータを送信すると、外部バスI/F20は、受信したAVデータを、図示しないバッファに格納する。
【0078】
より詳細には、本実施形態では、上記外部バス22がIEEE1394バスなので、以下の処理が行われる。すなわち、IEEE1394バスでは、バス上のデバイスのいずれかが、アイソクロナスリソースマネージャの役割を担っている。当該アイソクロナスリソースマネージャは、IEEE1394の同期データ転送であるアイソクロナス転送の制御を行うものであって、バス上のデバイスのいずれか(この場合は、DVCR23)がアイソクロナス転送を要求すると、同期データの転送用にアイソクロナス転送のチャンネルを割り当てる。
【0079】
DVCR23は、チャンネルが割り当てられると、情報処理装置1から転送を要求されたAVデータを分割した上で、例えば、それぞれに割り当てられたチャンネル番号などのアイソクロナス転送するために必要な情報を付加し、アイソクロナスパケットとして、IEEE1394バスに送出する。IEEE1394では、同期データを送信するデバイスが一定量のアイソクロナスパケットを周期的に送出するように規定されており、周期毎に送出されるパケットの総量は、再生したいAVデータのビットレートによって定められる。ここで、IEEE1394では、上記周期は、125μ秒に規定されている。
【0080】
さらに、外部バスI/F20としてのIEEE1394I/Fは、DVCR23が送出したアイソクロナスパケットを、それぞれに付加されたチャンネル番号から識別して受信し、IEEE1394バスでのアイソクロナス転送用の情報を取り除き、一旦バッファに格納する。
【0081】
上記のように、AVデータが外部バス22を介して外部バスI/F20へ送信され、図示しないバッファに格納されると、外部I/F20は、バス調停回路16に、内部バス15のバス使用権を要求する。
【0082】
また、バス調停回路16は、内部バス15のバスの使用権の調停を行っており、詳細は後述するように、然るべきタイミングで外部バスI/F20に内部バス15の使用許可を与える。
【0083】
一方、外部バスI/F20は、内部バス15の使用権が与えられている間に、上記図示しないバッファに蓄積されたデータを、内部バス15を介して、送信先(この場合は、MPEGデコーダ19)へ送信する。
【0084】
上記処理、すなわち、外部バスI/F20によるバス使用権要求、バス調停回路16によるバス使用権の調停処理、バス調停回路16による外部バスI/F20への使用権付与、および、外部バスI/F20によるデータ転送は、以降、AVデータの伝送が終了するまで、より詳細には、DVCR23に保存されているAVデータのディスプレイ21上での再生がCPU11により停止されるまで、繰り返される。
【0085】
一方、MPEGデコーダ19は、外部バスI/F20から、内部バス15に送出されたAVデータを受信して一旦バッファ(図示せず)に格納し、バッファに格納されたAVデータを映像データ、音声データに分割する。さらに、MPEGデコーダ19は、分離された映像データ、音声データに対して、それぞれ伸長処理をおこない、映像データについては、グラフィックコントローラ18を介してディスプレイ21上で再生させ、音声データについては、図示しないDACを介して出力させる。
【0086】
ここで、バス調停回路16は、外部バスI/F20によって繰り返されるバス使用権要求のタイミングを予測し、次に外部バスI/F20からバス使用権要求が出される時点よりも前に、外部バスI/F20へバス使用権を与えるための調停処理を開始し、バス使用権要求が出される時点よりも前に、外部バスI/F20へ内部バス15の使用許可を与えている。
【0087】
以下では、図2および図3を参照しながら、バス調停回路16の構成および動作の詳細について説明する。すなわち、図2は、バス調停回路16の詳細な構成を示すブロック図である。図2に示すように、バス調停回路16は、REQ検出部30、GNT送出部31、バス使用権選択部(バス調停手段)32、レジスタ(記憶手段)33、PCIバス監視部34を備えている。
【0088】
REQ検出部30は、内部バス15の各デバイスからのREQ信号の入力(図2の例では、REQ1からREQ4)を検出する部分で、イーサネットI/F17、グラフィックコントローラ18、MPEGデコーダ19、外部バスI/F20の各デバイスとポイント・ツー・ポイントで接続されている。なお、上記REQ信号は、各デバイスがバス使用権を要求しているか否かを示す信号であって、各デバイスは、バス使用権を要求する場合、有効を示すREQ信号を出力する。
【0089】
GNT送出部31は、内部バス15の各デバイスとポイント・ツー・ポイントで接続されており、ある一つのデバイスへの内部バス15の使用許可を通知するために、イーサネットI/F17、グラフィックコントローラ18、MPEGデコーダ19、外部バスI/F20の各デバイスへGNT信号(図2の例では、GNT1からGNT4)を出力する。なお、上記GNT信号は、バス調停回路16が各デバイスへ内部バス15の使用許可を与えているか否かを示す信号であって、GNT送出部31は、あるデバイスへ内部バス15の使用許可を与える場合、当該デバイスへ、有効を示すGNT信号を出力し、残余のデバイスには、無効を示すGNT信号を出力する。
【0090】
内部バス監視部34は、内部バス15の状態を監視する部分であり、内部バス15の状態を示す信号(例えば、内部バス15の場合は、PCIクロック、IRDY、FRAMEなど)を監視して、内部バス15の状態を把握できる。なお、内部バス監視部34は、内部バス15の状態が把握できればよいため、内部バス15の全ての信号線を接続する必要はない。
【0091】
なお、REQ検出部30に接続された各デバイスとGNT送出部31に接続された各デバイスとは、同一のものであり、これら各デバイスと内部バス15との接続については、図1への図示を省略した。
【0092】
さらに、本実施形態に係るバス調停回路16には、レジスタ33が設けられており、レジスタ33は、同期デバイスが次にバス使用権を要求するタイミングをバス使用権選択部32が予測するための予測用情報を格納できる。
【0093】
また、上記レジスタ33は、上記同期デバイスへバス使用権を与えるべき期間を示す情報(バス使用許可時間情報)を格納することができる。
【0094】
本実施形態では、これら、上記バス使用権選択部32の動作に必要な情報のうち、予測用情報として、同期デバイスがバス使用権を要求する周期(すなわち、同期デバイスがデータ列を伝送する周期)の情報が格納されている。また、本実施形態では、上記バス使用許可時間情報として、同期デバイスが伝送する同期データ(例えば、AVデータ)の帯域情報が格納されている。
【0095】
また、CPU11は、ホストバス12を介して、当該レジスタ33を読み書きすることができ、上記予測用情報およびバス使用許可時間情報をレジスタ33に書き込むことができる。これらの情報は、同期デバイスの特性、すなわち、同期デバイスの動作や機能を規定する特性に基づいて決定された情報である。なお、当該特性としては、例えば、AVデータを転送するデバイスであるか、あるいは、標準の通信規格で通信するデバイスであるかなどが挙げられる。
【0096】
なお、同期デバイスの特性が固定されている場合は、CPU11が、これらの情報として、当該特性に基づいて決定された、常時一定の情報を書き込んでもよいが、本実施形態に係るCPU11は、例えば、どのデバイスに、どのようなデータの転送を指示したか(この例では、AVデータの転送をDVCR23へ指示した)などに基づいて、上記同期デバイスの特性を検出し、当該特性に応じた情報をレジスタ33に設定している。
【0097】
このように、本実施形態に係るCPU11は、内部バス15に接続された同期デバイスの特性を検出すると共に、検出結果に基づいて、前記バス調停回路16のレジスタ33に前記予測用情報を設定している。したがって、現在、内部バス15に接続されている同期デバイスの特性に応じて、予測用情報を変更できる。この結果、バス調停回路16は、現在、内部バス15に接続されている同期デバイスが、より確実に同期データを伝送できるように、内部バス15を調停でき、より確実に同期データを伝送可能な情報処理装置1を実現できる。
【0098】
さらに、バス使用権選択部32は、REQ検出部30からのREQ信号の入力状況と、レジスタ33に設定された情報と、内部バス監視部34が取得した内部バス15の状態とによって、下記で説明する方法で、GNT信号を有効状態にするデバイス(使用許可を与えるデバイス)を決定する。
【0099】
具体的には、上記バス使用権選択部32の内部には、計時するためのカウンタ部35が設けられており、バス使用権選択部32は、同期デバイスがバス使用権を要求してからの期間と、同期デバイスへバス使用権を与えてからの時間を計時できる。同期デバイスが外部バスI/F20である場合を例にして、より詳細に説明すると、バス使用権選択部32は、カウンタ部35に設けられたカウンタCpによって、外部バスI/F20からの信号REQ4が有効になったことをREQ検出部30が検出してからの時間を計時できる。また、バス使用権選択部32は、カウンタ部35に設けられたカウンタCrによって、同期デバイスへバス使用権が与えられてからの時間、この例では、外部バスI/F20への信号GNT4が有効になったことをREQ検出部30が検出してからの時間を計時できる。
【0100】
なお、上記カウンタCpおよびCrは、所定の周期毎にカウントできれば、例えば、それぞれ別個のカウンタ回路から構成されていてもよいし、各カウンタCp、Crに対応する記憶領域が設けられており、カウント部35が所定の周期で各記憶領域に格納されたカウント値を変更してもよい。
【0101】
さらに、バス使用権選択部32は、上記レジスタ33に格納された予測用情報に基づいて、同期デバイスが次にバス使用権を要求する時点を予測すると共に、当該予測された時点よりも予め定める期間だけ前の時点に、調停処理を開始できる。当該調停処理としては、同期デバイスが実際にバス使用権を要求したときに行われる処理と同じ処理であって、例えば、当該同期デバイス以外のデバイスへ与えていたバス使用権の使用許可を取り消す処理、あるいは、現在バス使用権を与えていたデバイスに動作中止を指示する処理などが挙げられる。
【0102】
また、バス使用権選択部32は、上記レジスタ33に格納されたバス使用許可時間情報の示す期間だけ、例えば、同期バス(この場合は、外部バスI/F20)へ与えるGNT信号(この場合は、GNT4)を有効にするなどして、同期デバイスへバス使用権を与えることができる。
【0103】
上記カウンタ部35は、上記各期間の長さを計時できれば、どのような構成であってもよいが、本実施形態に係るカウンタ部35は、内部バス15のクロック(この例では、PCIクロック)を基準としてカウントを行うことによって計時している。
【0104】
レジスタ33に記憶されている情報、および、それに基づくバス使用許可時間情報32の動作についてより詳細に説明すると、本実施形態では、外部バスI/F20として、IEEE1394I/Fを採用しており、当該IEEE1394I/Fは、バッファに同期データを125μ秒毎に格納するために、バスの使用権も125μ秒毎に要求する。また、上述したように、バス使用権選択部32に設けられたカウンタ部35は、内部バス15のクロックをカウントして計時している。
【0105】
これに伴なって、CPU11は、上記予測用情報として、、予め、上記周期(125μ秒)の情報を内部バス15としてのPCIのクロックを基準としたカウント数に換算して、バス調停回路16のレジスタ33へ格納している。
【0106】
例えば、PCIのクロックが33MHzの場合には、クロックのカウント数の値は、4166となる。したがって、CPU11は、上記レジスタ33に、当該値(4166)を格納する。なお、クロックのカウント数として記憶された予測用情報は、上記カウント部35のカウンタのうち、同期デバイス(この例では、外部バスI/F20)がバス使用権を要求してからの期間を計時するカウンタCpのプリセットの値として使用される。
【0107】
また、CPU11は、上記バス使用許可時間情報として、外部バスI/F20としてのIEEE1394I/Fが必要とする転送帯域の情報を、125μ秒毎に必要とする内部バス15の使用時間に変換し、バス調停回路16のレジスタ33に格納する。なお、本実施形態に係るCPU11は、バス使用許可時間情報を格納する際も、上記予測用情報と同様に、125μ秒毎に必要とする内部バス15の使用時間をPCIのクロックを基準としたカウント数に換算して格納している。なお、クロックのカウント数として記憶されたバス使用許可時間情報は、上記カウント部35のカウンタのうち、同期デバイス(この例では、外部バスI/F20)がバス使用権を獲得してしてからの期間を計時するカウンタCrのプリセットの値として使用される。
【0108】
例えば、必要とする転送帯域が100Mbpsの場合、125μ秒毎に12500bitを転送する必要がある。したがって、PCIバスのデータ幅が32bitの場合には、上記バス使用許可情報として格納されるカウント数の値は、約400となる。
【0109】
ここで、上述したように、バス調停回路16は、同期デバイスが次にバス使用権を要求する時点を予測することによって、同期デバイスが実際にバス使用権を出す時点よりも前の時点、より詳細には、同期デバイスが次にバス使用権を要求する時点の予測値よりも予め定める期間だけ前の時点に、内部バス15の使用許可を与えている。
【0110】
また、上記カウンタCrは、同期デバイスへバス使用権が与えられてからの時間を計時しており、後述するように、バス使用権選択部32は、カウント値Cr=0になった時点で、同期デバイスに対する内部バス15の使用許可を無効にする。
【0111】
したがって、上記レジスタ33にカウンタCrのプリセット値として格納されるバス使用許可時間情報(この例では、約400)には、上記予め定める期間を示すクロック数(Cm)の分が、同期デバイス(外部バスI/F20)の必要とする内部バス15の使用時間のクロック数に加算されている。
【0112】
一方、本実施形態に係るバス使用権選択部32は、同期デバイスがバス使用権を要求した時点で、上記カウンタCpに、上記予測用情報として記憶された周期(この例では、125μ秒)を示すプリセット値(この例では、4166)をセットできる。また、カウンタCpは、当該時点から計時を開始して、クロックの示すカウントタイミング毎(例えば、立ち上がり毎や立ち下がり毎など)に、自らのカウント値をカウントダウンできる。さらに、バス使用権選択部32は、例えば、当該カウンタCpのカウント値と、予め定められた閾値Cmと一致するか否かを判定することによって、上記同期デバイスが次にバス使用権を要求する時点の予測値よりも予め定める期間だけ前の時点になったか否かを判定できる。また、当該時点になったと判定すると、バス使用権選択部32は、同期デバイス(この場合は、外部バスI/F20)からのREQ信号(この場合は、REQ4)が未だ無効であったとしても、有効になった場合と同様の処理を行って、調停処理を開始し、調停処理が終了すると、例えば、当該同期デバイスへのGNT信号(この場合は、GNT4)を有効にするなどして、当該同期デバイスへバス使用権を与えることができる。
【0113】
また、本実施形態に係るバス使用権選択部32は、同期デバイスへバス使用権が与えられた時点(この例では、外部バスI/F20への信号GNT4が有効になった時点)で、上記カウンタCrに、上記バス使用許可時間情報として記憶されたバス使用許可時間を示すプリセット値(上述の数値例では、約400)をセットできる。さらに、カウンタCrは、当該時点から、上記カウンタCpと同様に計時を開始して、クロックの示すカウントタイミング毎に自らのカウント値をカウントダウンできる。また、バス使用権選択部32は、例えば、当該カウンタCrのカウント値が0になったか否かを判定することによって、上記バス使用許可時間が経過したか否かを判定できる。さらに、当該経過したと判定すると、バス使用権選択部32は、例えば、同期デバイスへ与えていたGNT信号(この場合は、GNT4)を無効に設定するなどして、当該同期デバイスへ与えていたバス使用権の許可を停止する。これにより、同期デバイスは、内部バス15を開放でき、他のデバイスに内部バス15を使用させることができる。
【0114】
なお、本実施形態では、内部バス15の1クロック毎(PCIクロックの1クロック毎)にカウントするとしたが、上記各期間を計時するために充分な分解能を持ったクロックであれば、他の単位クロック毎に1つカウントするようにしても、同様の効果が得られる。
【0115】
次に、この動作例の詳細について図3を用いて説明する。
【0116】
図3は、バス調停回路16に、バス使用権を要求するREQ信号として入力されるREQ1からREQ4の信号と、その入力に対してバス調停回路16がバス使用の可否を通知するGNT信号として出力するGNT1からGNT4の信号との変化の一例を表すタイミングチャートである。図において、入出力の有効状態を信号の低レベルで示し、入出力の無効状態を信号の高レベルで示している。尚、横軸は、T0を開始時間とした時間を表しているが、理解のしやすいようにスケールは一定とはしていない。
【0117】
バス使用権選択部32は、同期デバイスとしての外部バスI/F20が同期データの伝送を開始する前の期間(T0からT2の期間)においては、非同期デバイス(この例では、イーサネットI/F17、グラフィックコントローラ18およびMPEGデコーダ19)に公平に内部バス15の使用許可をあたえており、例えば、T1の時点では、信号GNT2を有効にして、グラフィックコントローラ18にバスの使用権を与えている。
【0118】
T2の時点において、同期デバイスである外部バスI/F20からの信号REQ4の有効を確認すると、バス使用権選択部33内部のカウンタ部35のカウンタCpが計時を開始する。より詳細には、カウンタCpは、PCIクロックを基準としたカウントを開始し、1カウント毎に、そのカウント値Cpから1を減算する。
【0119】
その後、1クロック後のT3の時点に、バス使用権選択部33は、信号GNT2を無効にし、外部バスI/F20へのバス使用許可を示す信号GNT4を有効にする。一方、外部バスI/F20は、信号GNT4の有効を検出し、内部バス15の使用許可を得たと判断する。また、このとき、バス使用権選択部33内部のカウンタ部35のカウンタCrが計時を開始する。より詳細には、カウンタCrは、PCIクロックの基準としたカウントを開始し、1カウント毎に、そのカウント値Crから1を減算する。
【0120】
内部バス15の使用権を獲得した外部バスI/F20は、信号GNT4が有効となるまでに使用権をもっていたデバイス(図3の例では、グラフィックコントローラ18)が、まだ内部バス15を使用中であるかどうかを確認し、当該デバイスによる内部バス15の使用が終了した後に、内部バス15の使用を開始する。
【0121】
より詳細には、本実施形態に係る内部バス15は、PCIバスなので、上記外部バスI/F20は、PCIバスのIRDY信号とFRAME信号との出力状態に基づいて、上記デバイスが内部バス15を使用中であるか否かを確認する。IRDY信号とFRAME信号とがいずれも無効状態の場合は、PCIバスが使用されていない状態である。したがって、外部バスI/F20は、上記両信号が無効状態の場合は、転送先(この場合は、MPEGデコーダ19)のアドレスを指定して、バッファに格納されたデータを順次内部バス15としてのPCIバスに出力する。
【0122】
一方、バス調停回路16のバス使用権選択部32は、信号GNT4が有効になってから、上記カウンタCrがバス使用許可時間情報の示す時間が経過したことを通知するまでの間(T4までの間)は、同期デバイス(外部バスI/F20)の必要帯域を確保するために、他のデバイスからの信号(REQ1からREQ3まで)が有効になったとしても、信号GNT4を有効にし続ける。さらに、バス使用権選択部32は、当該時間が経過した時点(T4の時点)で、信号GNT4を無効状態にして、外部バスI/F20が現在行っているデータ伝送を完了させる。
【0123】
より詳細には、カウンタ部35は、信号GNT4が有効になってから1クロック毎に必要転送帯域を示すプリセット値Crから1を減算し、Crが0に等しくなったとき(T4)、バス使用権選択部32は、GNT4の出力を無効状態にする。これにより、外部バスI/F20は、現在行っているデータ転送を完了させる。また、バス使用権選択部32は、同期デバイスの必要帯域を確保するために、T3からT4の期間において、信号REQ1から信号REQ3までが有効になったとしても、T4までバスの使用許可を与えない。
【0124】
ここで、バス調停回路16のカウンタCpは、同期デバイスがバス使用権を要求した時点T2から計時を開始している。また、バス調停回路16のバス使用権選択部32は、当該カウンタCpのカウント値に基づいて、同期デバイスが次にバス使用権を要求する時点の予測値よりも予め定められた時間だけ前の時点になったか否かを判定し、上記同期デバイスのバス使用権を開放してから、当該時点になるまでの間(T4からT5までの期間)は、同期デバイスがAVデータの伝送を開始する前の期間(T2までの期間)と同様に、各デバイスによるバス使用権の要求を調停している。
【0125】
より詳細には、バス調停回路16のバス使用権選択部32は、同期デバイスである外部バスI/F20が次の周期でデータの転送を開始するまでの期間(T4からT5まで)、すなわち、カウンタ部32のクロックCpが1クロック毎にカウント値Cpから1を減算し、カウント値Cpが、ある一定値Cmに等しくなるまでの期間は、外部バスI/F20も含めて、全てのデバイスからのREQ信号の有効に対して、例えば、巡回型アルゴリズムなどを用いて、公平にGNT出力を有効にする。外部バスI/F20は、この期間中(T4からT5までの期間中)例えば、AVデータ以外の突発的なデータ転送を必要とした場合など、内部のバッファにデータがまだ残っている場合には、さらに、信号REQ4を有効にすることによって、内部バス15の使用権を、他のデバイスと同じ条件の下で獲得することができる。
【0126】
さらに、バス使用権選択部32は、同期デバイスが次にバス使用権を要求する時点の予測値よりも予め定められた時間だけ前の時点(T5の時点)になると、同期デバイス(外部バスI/F20)からバス使用権が要求されているか否かに拘わらず、バス使用権が要求されている場合と同様に、内部バス15のバス使用権の調停処理を開始する。
【0127】
より詳細には、バス使用権選択部32は、上記カウンタCpのカウント値Cpの値が上記一定値Cmに等しくなると、他のデバイスへの信号GNT1からGNT3のいずれかが有効となっている場合には、外部バスI/F20に内部バス15の使用権を与えるために、信号GNT4を有効にする。図3の例では、時点T5で信号GNT1が有効なので、信号GNT1を無効にし、信号GNT4を有効にする。
【0128】
一方、上述したように、外部バスI/F20は、所定の周期(この例では、125μ秒)毎にREQ信号を有効に出力してバス使用権を得ようとする。したがって、T2の時点から、上記周期(この例では、125μ秒)が経過した時点T6において信号REQ4を出力する。
【0129】
ここで、比較例として、バス調停回路が外部バスI/F20からのバス使用権の要求を受け付けてから、内部バス15の使用権を調停し、調停終了後に、外部バスI/F20へ信号GNT4を出力すると、調停処理に伴なう遅延が発生してしまう。
【0130】
ところが、本実施形態に係るバス調停回路16は、同期デバイスとしての外部バスI/F20が次にバス使用権を要求する時点を予測することによって、外部バスI/F20がバス使用権の要求を出す時点よりも前の時点で、調停処理を開始している。
【0131】
したがって、外部バスI/F20がバス使用権を要求した時点T6では、既に信号GNT4が有効となっている。この結果、外部バスI/F20は、直ちに内部バス15の使用権を得ることができる。
【0132】
内部バス15の使用権を得ると、外部バスI/F20は、上記T3の時点と同様の処理を行って、データ伝送を開始する。具体的には、外部バスI/F20は、信号GNT4が出力されるまでに使用権をもっていたデバイスがまだ内部バス15を使用中であるかどうかを、例えば、PCIバスのIRDY信号とFRAME信号との出力状態で確認し、IRDY信号とFRAME信号との出力が停止されるのを待って、データの転送を開始する。
【0133】
ここで、本実施形態に係るバス調停回路16において、T5とT6との間の期間に値Cmによって設定される一定時間を設けたのは、GNT4が有効となったとしても、それまでに内部バス15の使用権を得ていたデバイスがすぐにデータ転送を完了させることができずに、同期デバイスが内部バス15の使用許可を得てから直ぐにデータ転送を開始できない場合があるためである。なお、上述したように、予めCrのプリセット値が値Cmの分だけ加算されているので、値Cmを1以上の数値に設定する場合であっても、バス使用権選択部32は、何ら支障なく、同期デバイス(外部バスI/F20)の必要とする使用時間の間、当該同期バスにバス使用権を与えることができる。
【0134】
なお、同期デバイスのデータ転送を周期開始時に直ちに開始するために、GNT信号を無効にすると同時に、PCIバス監視部34でバスの転送を強制的に止めるためのSTOP信号(バス転送中止信号)を有効にして、非同期デバイスのデータ転送を強制的に止めることも可能である。この場合も、同期デバイスが実際にバスの使用権を要求してから調停処理を開始する構成よりも、より早い時点で、遅滞なく、同期デバイスに、バスの使用権を与えることができ、当該同期デバイスが、より確実に同期データを伝送できるように、バスを調停できる。
【0135】
外部バスI/F20がデータ転送周期の開始となり、バスの使用権を得たT6において、バス使用権選択部32はCrをプリセット値にリセットして、前のサイクルと同じように、カウンタCrのカウント値Crが0となるまで信号GNT4を出力し、外部バスI/F20は、データの転送を行う。
【0136】
以降、DVCR23に保存されているAVデータのディスプレイ21上での再生がCPU11により停止されるまで、同様の動作が繰り返される。
【0137】
このようにして、本実施形態に係るバス調停回路16は、予め定められた予測用情報に基づいて、同期デバイスが次にバス使用権を要求する時点を予測すると共に、当該時点よりも予め定められた期間だけ前の時点で、実際にバス使用権が要求されていなくても、バス使用権が出された場合と同様の調停処理を開始すると共に、予め定められたバス使用許可時間情報の示す期間中、同期デバイスへバス使用権を与えている。したがって、外部バスI/F20は、MPEGデコーダ19へのAVデータの転送を、常に必要な転送帯域を確保した上で、然るべきタイミングで行うことができる。
【0138】
以上のようにして、外部バスI/F20からMPEG2デコーダ19への内部バス15としてのPCIバスを介してのAVデータの転送が、転送タイミングと転送帯域が確保した上で行われるので、再生された映像のノイズやこま落ち、音声のノイズや途切れ等の再生品質の劣化が発生しない。
【0139】
また、本実施形態に係るバス調停回路16は、予め定められた予測用情報に基づいて、同期デバイスが次にバス使用権を要求する時点を予測すると共に、当該時点よりも予め定められた期間だけ前の時点で、実際にバス使用権が要求されていなくても、バス使用権が出された場合と同様の調停処理を開始することによって、データ転送におけるジッタを抑制できるので、MPEGデコーダ19のバッファ容量を必要最低限に抑えることができる。このことによって、DVCR23のAVデータを選択してから、実際にディスプレイ21で再生されるまでの遅延が少なくなり、操作性の低下を防ぐことができる。
【0140】
ここで、データ転送帯域の確保のために、必要なタイマーのプリセット値を、PCIバスなどの内部バス15の転送可能な最大帯域に従って設定する場合、PCIバスなどの内部バス15の転送可能な最大帯域は、CPU11の負荷状況、同期デバイスと非同期デバイスとによるバス使用権の切り替わりに伴うオーバヘッドの発生等、様々な条件によって変化するために、PCIバスなどの内部バス15の転送可能な最大転送帯域の実際の値は、意図しない値となり、結果として、同期データが必要とするデータ転送帯域を確保できなくなるという課題がある。
【0141】
また、タイマーのプリセット値に上限値の設定がないため、同期デバイスが必要とする転送帯域を確保しようとして連続してバスの使用権を持っている最中に、非同期デバイスがバスの使用を要求した場合、非同期デバイスがバスの使用権を獲得するまでの遅延が無視できない程大きくなり、システム全体のパフォーマンスの低下が発生するという課題がある。このとき、さらに、非同期デバイスの処理のタイムアウトを超えるような設定値となってしまった場合には、致命的なエラーの発生をもたらす危険性がある。
【0142】
これに対して、本実施形態に係るバス調停回路16は、バス使用許可時間情報の示す時間だけ、同期デバイスとしての外部バスI/F20に内部バス15の使用権を与えている。したがって、上記内部バス15の転送可能な最大帯域に従って設定する構成と異なり、同期デバイスが同期データを伝送するために必要な時間だけ、内部バス15の使用権を同期デバイスに与えることができると共に、同期デバイスへ内部バス15の使用権を与える時間を、当該同期デバイスによる同期データの伝送に充分な値に制限できる。この結果、上記致命的なエラーや、システム全体のパフォーマンスの低下が発生する可能性を軽減できる。
【0143】
〔第二の実施の形態〕
次に、第二の実施の形態について説明する。本実施の形態の情報処理装置1aは、第一の実施の形態と略同一であるが、バス調停回路による転送帯域の設定方法(バス使用許可時間情報の設定方法)が異なっている。
【0144】
具体的には、本実施形態に係る情報処理装置1aでは、バス調停回路16に代えて、バス調停回路16aが設けられている。当該バス調停回路16aは、バス調停回路16と略同様の構成を備えているが、バス使用権選択部32に代えて、バス使用権選択部32aが設けられている。当該バス使用権選択部32aは、バス使用権選択部32と略同様の動作を行うが、レジスタ33に格納されるバス使用許可時間情報を、その一つ前の周期で、外部バスI/F20が実際に転送を行ったデータ量に基づいて、更新することができる。また、バス使用権選択部32aは、バス使用権選択部32とは異なり、内部バス監視部34による内部バス15の監視結果に基づいて、外部バスI/F20が実際に転送を行っている期間にのみ、カウンタ部35のカウンタCrに計時させることができる。これにより、バス使用許可時間情報を、同期デバイスの必要に応じて更新できる。
【0145】
なお、バス使用権選択部32aの残余の動作、バス調停回路16aの残余の構成、および、情報処理装置1aの残余の構成は、第一の実施形態と同様であるので、同じ構成および機能を有する部材については、同じ参照符号を付して説明を省略する。
【0146】
次に、このような本実施の形態の動作を説明する。
【0147】
データ転送の開始時には、第一の実施の形態と同じ動作を行う。ここで、第一の実施の形態では、例えば、CPU11などの指示によって、バス調停回路16のレジスタ33には、予め外部バスI/F20が必要とする転送帯域の情報(バス使用許可時間情報)が格納されており、常にその値は一定であった。
【0148】
これに対して、本実施の形態では、バス調停回路16aのバス使用権選択部32aは、同期データの各伝送周期において、その一つ前の周期で、外部バスI/F20が実際に転送を行ったデータ量に基づいて、所望の転送帯域を確保するために必要なバス使用許可時間を算出し、レジスタ33に格納する。これにより、レジスタ33内のバス使用許可時間情報は、サイクル毎に、所望の転送帯域を確保するために必要な値に、順次更新されていく。
【0149】
すなわち、図3の外部バスI/F20がデータ転送を行う第一の周期であるT2からT6の期間において、バス使用権選択部32aは、外部バスI/F20が実際に転送したデータ量を、内部バス監視部34の検出した内部バス15の状態に基づいて算出する。さらに、バス使用権選択部32aは、当該データ量に基づいて、当該データ量を伝送するために必要なバス使用許可時間を算出し、第二の周期(T6の時点から開始される周期)において使用されるバス使用許可時間情報として、レジスタ33に格納する。
【0150】
なお、本実施形態では、当該バス使用許可時間情報を内部バス15のクロックを基準とするクロック数として算出し、当該値をカウンタCrのプリセット値としている。したがって、バス使用権選択部32aは、上記バス使用許可時間情報をクロック数として算出し、T6の時点から開始される第二の周期における必要帯域を示すプリセット値Cr1として、カウンタCrに設定する。なお、内部バス15がPCIバスの場合、実際にデータ転送を行っているときは、IRDY信号、TRDY信号の両方が有効となっている。したがって、バス使用権選択部32aは、その両方の信号の状態と時間とによって、外部バスI/F20が実際にデータを伝送している期間を検出でき、当該期間と、1クロック期間に内部バス15を伝送されるデータ量とから、当該外部バスI/F20が実際に転送したデータ量を検出できる。したがって、上記バス使用許可時間情報32aは、当該データ量に基づいて、プリセット値Cr1を設定できる。
【0151】
信号GNT4を有効にしたあとは、バス使用権選択部32aは、内部バス監視部34の監視結果に基づいて、内部バス15の状態を確認して、実際にデータの転送が行われているときだけ、カウンタ部35のカウンタCrのカウントダウンを行い、上記時点T5にて、プリセット値Cr1に設定されたカウンタCrのカウント値が0に等しくなるまで、信号GNT4を有効にし続ける。
【0152】
以降、バス使用権選択部32aは、順次、n番目の周期において、(n−1)番目の周期での実際のデータ転送量を元に、Cr(n−1)の値を設定して、同期デバイスの転送帯域を確保する。なお、その他の動作は、第一の実施の形態と同一である。
【0153】
このように、バス調停回路16aは、実際に同期デバイスが行ったデータ転送量に基づいて、内部バス15の帯域を確保する。この結果、バス調停回路16aは、同期データが必要とする転送帯域を安定して確保することができ、内部バス15の有効利用も図ることができる。
【0154】
加えて、本実施形態に係るバス調停回路16aは、内部バス15の状態を監視して、前記同期デバイスがデータ列を実際に伝送しているか否かを検出すると共に、前記同期デバイスがデータ列を実際に伝送している期間の合計が、予め設定されたバス使用許可時間情報の示す時間になるように、前記許可信号を同期デバイスへ与える期間の長さを制御している。したがって、第一の実施形態と比較して、より確実に、同期デバイスが同期データを伝送するために必要な時間、内部バス15の使用権を同期デバイスに与えることができると共に、同期デバイスへ内部バス15の使用権を与える時間を、当該同期デバイスによる同期データの伝送に充分な値に制限できる。この結果、上記致命的なエラーや、システム全体のパフォーマンスの低下が発生する可能性をさらに軽減できる。
【0155】
〔第三の実施の形態〕
次に、第三の実施の形態について説明する。本実施の形態の情報処理装置1bは、第一の実施の形態と略同一であるが、バス調停回路によって、同期デバイスが連続して確保するバスの時間に制限を持たせた上で、必要とする転送帯域を確保するように調停が行われる点が異なっている。
【0156】
具体的には、本実施の形態では、バス調停回路16bのレジスタ33に、上述したレジスタ33に格納された予測用情報およびバス使用許可時間情報に加えて、内部バス15に接続された全てのデバイスについて、バス使用権待ち時間の情報(バス使用権待時間情報)が格納されている。当該バス使用権待ち時間は、当該デバイスがバス使用権を要求してから、内部バス15の使用権を獲得できるまでの遅延時間の最大許容値であって、例えば、内部バス15のクロックを基準としたクロック数などの形式で、レジスタ33bに格納され、プリセット値として使用される。一例として、以下では、イーサネットI/F17についてのバス使用権待時間情報をCd1、グラフィックコントローラ18についてのバス使用権待時間情報をCd2等とする。
【0157】
さらに、本実施形態に係るバス調停回路16bにおいて、バス使用権選択部32bのカウンタ部35には、内部バス15の各デバイスに対応して、それぞれのデバイスがバス使用権を要求してからの時間を計時するカウンタ(この例では、Cd1〜Cd3)が設けられている。
【0158】
また、上記バス調停回路16bのバス使用権選択部32bは、REQ検出部30よって各デバイスからのREQ信号が検出されると、REQ信号を検出したデバイスに対応するカウンタに計時を指示すると共に、計時を開始してからの経過時間が、上記レジスタ33bに格納されたバス使用権待時間情報の示す時間を超えたか否かを判定し、当該時間を超えた場合、同期デバイスへバス使用権を与えている場合であっても、一時的に、経過時間がバス使用権待ち時間を超えたデバイスにバス使用権を与えることができる。なお、当該デバイスへバス使用権を一時的に与える時間は、データを転送することを中断しても影響のない時間であり、例えば、CPU11がレジスタ33bに書き込むなどして、予めバス使用権選択部32bに設定されている。
【0159】
本実施形態では、上記カウンタCd1〜Cd3は、上述のカウンタCpおよびCrと同様に、内部バス15のクロック(PCIクロック)をカウントして計時している。また、上記バス使用権選択部32bは、計時開始時に、各クロックCd1〜Cd3へプリセット値を書き込み、各クロックCd1〜Cd3へカウントダウンを指示すると共に、各クロックCd1〜Cd3のカウント値が0になったか否かで、上記経過時間がバス使用権待ち時間を超えたか否かを判定している。これに伴なって、本実施形態において、レジスタ33bに値を設定する部材(例えば、CPU11またはバス使用権選択部32bなど)は、上述のカウンタCpおよびCrと同様に、上記バス使用権待ち時間をクロック数に換算した値を、バス使用権待時間情報として、レジスタ33bへ書き込んでいる。
【0160】
なお、これらのカウンタCd1〜Cd3も、カウンタCpおよびCrと同様に、所定の周期毎にカウントできれば、例えば、それぞれ別個のカウンタ回路から構成されていてもよいし、各カウンタCd1〜Cd3に対応する記憶領域が設けられており、カウント部35が所定の周期で各記憶領域に格納されたカウント値を変更してもよい。
【0161】
また、バス使用権選択部32bの残余の動作、バス調停回路16bの残余の構成、および、情報処理装置1bの残余の構成は、第一または第二の実施形態と同様であるので、同じ構成および機能を有する部材については、同じ参照符号を付して説明を省略する。
【0162】
次にこのような本実施の形態の動作について図4を用いて説明する。
【0163】
図4は、図3と同様、バス調停回路16bに入力されるREQ1からREQ4の信号と、その入力に対してバス調停回路16bが出力するGNT1からGNT4の信号との変化の一例を表すタイミングチャートである。
【0164】
T11の時点において、同期デバイスがデータ転送を開始するために信号REQ4を有効にしたとき、第一もしくは第二の実施の形態と同様の方法によって、バス調停回路16bは、既に信号GNT4を有効にしている。したがって、外部バスI/F20は、直ちにデータ転送を開始する。
【0165】
また、信号REQ4が有効になると、カウンタ部35のカウンタCpがカウント(計時)を開始し、1カウント毎に、カウント値Cpから1を減算する。なお、T11においてはGNT4が既に有効となっているため、カウンタCrのカウントダウン(計時)は、既に開始されている。
【0166】
T12の時点において、イーサネットI/F17がデータの受信など、何らかの理由で、内部バス15を介したデータ転送の開始を行うために、信号REQ1を有効にする。しかしながら、バス調停回路16bは、外部バスI/F20に内部バス15の使用権を与えており、カウンタCrのカウント値が必要とする転送帯域を確保するための値(この場合は、0)に達していないために、信号GNT1を無効のままにしている。したがって、カウンタ部35は、信号REQ1が有効になってからの時間を計時するためのカウンタCd1へ計時を指示して、カウントダウンを開始させる。
【0167】
T13の時点において、イーサネットI/F17のバス使用権獲得までの最大許容遅延時間となると、カウンタCd1のカウント値Cd1が0に等しくなり、バス使用権選択部32bは、イーサネットI/F17がバス使用権を要求してからバス使用権待ち時間が経過したと判定する。したがって、バス使用権選択部32bは、同期デバイスへバス使用権を与えてからバス使用許可時間が経過していなくても、すなわち、上記カウンタCrのカウント値Crが0に到達していなくても、信号GNT4を無効にし、信号GNT1を有効にする。また、これと同時に、バス使用権選択部32bは、カウンタCrのカウントダウン(計時)を中断する。一方、イーサネットI/F17は、信号GNT1が有効になったので、データ転送を開始する。
【0168】
T13の時点から1クロック、もしくは、予め設定した期間経過した時点T14において、バス使用権選択部32bは、信号GNT1を無効にして、信号GNT4を再び有効にする。上記予め設定した時間とは、同期デバイスがデータを転送することを中断しても影響のない時間であり、内部バス15に接続されている各デバイスの特性に基づいて初期設定のときに決められている。
【0169】
イーサネットI/F17は、信号GNT1が無効になったので、一定量のデータ転送を行った後、内部バス15の使用を中断する。そして、外部バスI/F20は、内部バス15の使用されていないことを確認して、データの転送を開始する。
【0170】
その後、T16の時点において、カウンタCrのカウント値Crが0に達するまで、同様の動作が繰り返される。この間、T15の時点において、信号REQ2が有効となっているが、カウンタCrのカウント値Crが0に達した段階で、カウンタCd2のカウント値Cd2が0になっていないので、バス使用権選択部32bは、信号GNT2を、無効のままにしている。
【0171】
この他の動作は、第一、第二の実施の形態と同一である。
【0172】
このように、本実施形態に係るバス調停回路16bは、全てのデバイスの最大許容遅延時間を考慮した上で、調停を行うことによって、同期データが必要とする転送帯域を確保しつつも、システム全体のパフォーマンスの低下を回避することができる。
【0173】
なお、上記第三の実施形態では、予め設定した同期デバイス以外の非同期デバイスの許容できる最大のバス使用権待ち時間によって、同期デバイスへのバス使用権を一時的に開放するとしたが、バス調停回路16bは、その待ち時間によらず、バス使用権を複数回にわけて与えるようにしても構わない。
【0174】
この場合、内部バス15の使用許可は、前記同期デバイスからの1回のバス使用権の要求に対して、複数回に分けて与えられる。したがって、バス使用権の要求毎に、1回の内部バス15の使用許可を与える構成と比較して、同期デバイスへ連続して与える使用許可の長さを短くすることができ、他のデバイスがバスの使用権を要求してから、使用許可が与えられるまでの時間を短縮できる。
【0175】
加えて、本実施形態に係るバス調停回路16bは、前記同期デバイスが内部バス15の使用権を得ているときに、当該同期デバイス以外のデバイス(非同期デバイスあるいは使用権を得ていない同期デバイスなど)によって内部バス15の使用権が要求されてからの経過時間を計時すると共に、当該経過時間が予め定められたバス使用許可時間を超えた場合、予め設定した時間だけ、一時的に当該同期デバイスの内部バス15の使用権を開放して、前記デバイスに内部バス15の使用権を与えている。
【0176】
このように、同期デバイス以外のデバイスからの内部バス15の使用権が要求されてからの経過時間が、バス使用許可時間を超えた場合、内部バス15の使用権が一時的に当該デバイスへ与えられるので、他のデバイスが内部バス15の使用権を要求してから、使用許可が与えられるまでの時間を、最大許容時間以内に抑えることができる。
【0177】
したがって、他のデバイスへの使用許可の遅れに起因する、システム全体のパフォーマンスの低下を抑制できる。また、使用許可の遅れを抑制できるので、以下の不具合、すなわち、当該遅れがデバイスの処理のタイムアウトを超えるような設定値となってしまった場合に、致命的なエラーが発生するという不具合の発生を防止できる。
【0178】
また、上記第一から第三の実施形態では、内部バス15に設けられた同期デバイスが1つ(外部バスI/F20のみ)の場合を例にして説明したが、同期デバイスの数は、これに限るものではなく、複数であってもよい。例えば、MPEG2デコーダ19と外部バスI/F20とが共に同期デバイスである場合等、内部バス15に同期デバイスが2つ以上ある場合には、そのデータ転送周期が短いデバイスのほうが、タイミングを合わせる事に対する要求がより大きいと判断される。したがって、データ転送周期が最も短い同期デバイスを、バス調停回路16(16a・16b)が転送タイミングを合わせるための対象とする。
【0179】
当該構成では、データ転送の周期が最も短い同期デバイスについて、予測情報に基づく調停開始時点の決定、および、当該調停開始時点からの調停処理が行われる。したがって、データ転送の周期が最も短く、したがって、より速い時点で、より遅滞なく内部バス15の使用権を与えることが上記複数の同期デバイスの中で最も要求される、特定の同期デバイスに対して、より速い時点で、より遅滞なく内部バス15の使用権を与えることができる。この結果、バス調停回路16(16a・16b)は、上記特定の同期デバイスが、より確実に同期データを伝送できるように、内部バス15を調停できる。
【0180】
また、上記バス調停回路16(16a・16b)は、データ転送周期が同じ同期デバイスが2つ以上の場合には、いずれかの同期デバイスに転送タイミングを合わせて、内部バス15の使用許可を与える。さらに、上記バス調停回路16(16a・16b)は、内部バス15の使用許可を得た同期デバイスがデータ転送帯域を確保するように内部バス15の使用許可を与えた後は、非同期デバイスにバス使用許可を与える前に、所定の順序に従って別の同期デバイスに対して直ちに内部バス15の使用許可を与える。この時、所定の順序とは、データ転送の内容、各デバイスの特性など、システム全体の動作を考慮して判断された順序であって、バス調停回路16(16a・16b)は、予め定められた手順に従い、これらシステム全体の動作に基づいて、使用許可を与える順序を決定してもよいし、システム全体の動作が予め予測される場合には、予測結果に応じて定められた一定の順序で使用許可を与えてもよい。
【0181】
当該構成では、ある同期デバイスに対して、該同期デバイスのデータ転送に必要な時間のバス使用許可を該同期デバイスに与えた後、前記各同期デバイス以外のデバイスにバス使用許可を与える前に、他の同期デバイスに対して使用許可が与えられる。したがって、バス調停回路16(16a・16b)は、各同期デバイス以外のデバイスよりも、他の同期デバイスの方に優先して、使用許可を与えることができ、これらの同期デバイスがより確実に同期データを伝送できるように、内部バス15を調停できる。
【0182】
なお、上記の各実施の形態のPCIバスは、本発明のバスの一例であり、同期デバイスや非同期デバイスが共用し、各デバイスがデータ転送の際にバス調停手段に対してバスの使用要求を行い、バス調停手段が一定のアルゴリズムに基づいて、ある1つのデバイスにバスの使用許可を与えるようなバスでありさえすればよい。
【0183】
また、上記各実施形態では、次の同期データのデータ列のデータ伝送開始時点の予測結果と、バス調停回路が調停を開始する時点との時間差が、前記調停処理に要する時間よりも大きく設定されており、前記バス調停回路は、当該同期デバイスが前記内部バス15の使用権を要求するよりも前に、前記内部バス15の使用権を与えるための許可信号(GNT)を当該同期デバイスへ出力しているが、これに限るものではない。
【0184】
上記時間差が、上記各実施形態で設定されていた値よりも小さな値であっても、上記同期デバイスが実際に内部バス15の使用権を要求する前に、バス調停回路が、当該同期デバイスへバス使用権を与えるための調停処理を開始できる値に設定されていれば、同様の効果が得られる。
【0185】
ただし、上記各実施形態のように、時間差が設定されており、前記バス調停回路が、バス使用権の要求よりも前に許可信号(GNT)を出力すれば、同期デバイスに遅滞なくバス使用権を与えることができる。
【0186】
さらに、上記各実施形態では、予測用情報が周期の場合を例にして説明したが、これに限るものではない。次の同期デバイスによる次のデータ伝送開始時点を予測できれば、他の情報であっても同様の効果が得られる。一例として、同期デバイスが、予め定められたアルゴリズムに従って、データ列の各伝送開始時点間の時間間隔の平均値が一定になり、しかも、各時間間隔の少なくとも一部が他の時間間隔と異なるように、上記各時間間隔を制御する場合には、当該アルゴリズムの情報などであってもよい。
【0187】
ただし、上記各実施形態のように、例えば、同期デバイスが周期的にデータ列を伝送する場合は、予測用情報として、周期が好適に使用される。この場合の例としては、同期デバイスが、タイマの計時結果に基づいて周期的にデータ列を伝送する場合、あるいは、同期デバイスが受信したデータをバッファに格納すると共にバッファの蓄積量が所定の閾値になったときに、バスへデータを転送する構成において、受信するデータの速度が一定の場合などが挙げられる。
【0188】
さらに、本発明の情報処理装置の全部または一部の手段を実行するためのプログラムの全部または一部を記録したプログラム記録媒体も本発明に属する。
【0189】
具体的には、上記各実施形態では、バス調停回路(16・16a・16b)を構成する各部材がハードウェアのみで実現され、当該バス調停回路に予測用情報などの情報を予め設定する部材が、プログラムを実行するCPU11である場合を例にして説明したが、これに限るものではない。上記CPU11に代えて、当該CPU11と同様の動作を行うハードウェアによって実現してもよい。また、ハードウェアのみで実現されていた各部材の全部または一部を、上述した機能を実現するためのプログラムと、そのプログラムを実行するハードウェア(コンピュータ)との組み合わせで実現してもよい。
【0190】
ソフトウェアを用いて実現する場合、CPU、あるいは、上述した機能を実行可能なハードウェアなどからなる演算手段が、ROMやRAMなどの記憶装置に格納されたプログラムコードを実行し、図示しない入出力回路などの周辺回路を制御することによって上記各実施形態に係るバス調停回路を実現できる。
【0191】
この場合、処理の一部を行うハードウェアと、当該ハードウェアの制御や残余の処理を行うプログラムコードを実行する上記演算手段とを組み合わせても実現することもできる。なお、上記演算手段は、単体であってもよいし、装置内部のバスや種々の通信路を介して接続された複数の演算手段が共同してプログラムコードを実行してもよい。
【0192】
上記演算手段によって直接実行可能なプログラムコード自体、または、後述する解凍などの処理によってプログラムコードを生成可能なデータとしてのプログラムは、当該プログラム(プログラムコードまたは上記データ)を記録媒体に格納し、当該記録媒体を配付したり、あるいは、上記プログラムを、有線または無線の通信路を介して伝送するための通信手段で送信したりして配付され、上記演算手段で実行される。
【0193】
なお、通信路を介して伝送する場合、通信路を構成する各伝送媒体が、プログラムを示す信号列を伝搬し合うことによって、当該通信路を介して、上記プログラムが伝送される。また、信号列を伝送する際、送信装置が、プログラムを示す信号列により搬送波を変調することによって、上記信号列を搬送波に重畳してもよい。この場合、受信装置が搬送波を復調することによって信号列が復元される。一方、上記信号列を伝送する際、送信装置が、デジタルデータ列としての信号列をパケット分割して伝送してもよい。この場合、受信装置は、受信したパケット群を連結して、上記信号列を復元する。また、送信装置が、信号列を送信する際、時分割/周波数分割/符号分割などの方法で、信号列を他の信号列と多重化して伝送してもよい。この場合、受信装置は、多重化された信号列から、個々の信号列を抽出して復元する。いずれの場合であっても、通信路を介してプログラムを伝送できれば、同様の効果が得られる。
【0194】
ここで、プログラムを配付する際の記録媒体は、取外し可能である方が好ましいが、プログラムを配付した後の記録媒体は、取外し可能か否かを問わない。また、上記記録媒体は、プログラムが記憶されていれば、書換え(書き込み)可能か否か、揮発性か否か、記録方法および形状を問わない。記録媒体の一例として、磁気テープやカセットテープなどのテープ、あるいは、フロッピー(登録商標)ディスクやハードディスクなどの磁気ディスク、または、CD−ROMや光磁気ディスク(MO)、ミニディスク(MD)やデジタルビデオディスク(DVD)などのディスクが挙げられる。また、記録媒体は、ICカードや光カードのようなカード、あるいは、マスクROMやEPROM、EEPROMまたはフラッシュROMなどのような半導体メモリであってもよい。あるいは、CPUなどの演算手段内に形成されたメモリであってもよい。
【0195】
なお、上記プログラムコードは、上記各処理の全手順を上記演算手段へ指示するコードであってもよいし、所定の手順で呼び出すことで、上記各処理の一部または全部を実行可能な基本プログラム(例えば、オペレーティングシステムやライブラリなど)が既に存在していれば、当該基本プログラムの呼び出しを上記演算手段へ指示するコードやポインタなどで、上記全手順の一部または全部を置き換えてもよい。
【0196】
また、上記記録媒体にプログラムを格納する際の形式は、例えば、実メモリに配置した状態のように、演算手段がアクセスして実行可能な格納形式であってもよいし、実メモリに配置する前で、演算手段が常時アクセス可能なローカルな記録媒体(例えば、実メモリやハードディスクなど)にインストールした後の格納形式、あるいは、ネットワークや搬送可能な記録媒体などから上記ローカルな記録媒体にインストールする前の格納形式などであってもよい。また、プログラムは、コンパイル後のオブジェクトコードに限るものではなく、ソースコードや、インタプリトまたはコンパイルの途中で生成される中間コードとして格納されていてもよい。いずれの場合であっても、圧縮された情報の解凍、符号化された情報の復号、インタプリト、コンパイル、リンク、または、実メモリへの配置などの処理、あるいは、各処理の組み合わせによって、上記演算手段が実行可能な形式に変換可能であれば、プログラムを記録媒体に格納する際の形式に拘わらず、同様の効果を得ることができる。
【0197】
以上のように、本発明に係る内部バスの帯域制御手段を具備した情報処理装置は、複数のデバイスが共用するバスを経由して、周期的に一定量のデータ転送を行う一つ以上の同期デバイスを備える情報処理装置において、同期デバイスの特性に基づいて予め設定されたデータ転送の周期、および必要とするデータ転送帯域とを保持し、或る同期デバイスに対して、該同期デバイスのデータ転送に必要な時間のバス使用許可を、設定された周期から予測される、該同期デバイスからバス使用要求が出力されるタイミングで該バス使用要求の検知以前にその同期デバイスに与えるバス調停手段を具備したことを特徴とする。
【0198】
また、本発明に係る内部バスの帯域制御手段を具備した情報処理装置は、前記バス調停手段が与える、バス使用許可で与えるバス使用許可時間は、その一つ前の周期におけるバス使用時に当該同期デバイスが実際に使用したバス使用の時間に等しいか大きくなるように与えることを特徴とする。
【0199】
また、本発明に係る内部バスの帯域制御手段を具備した情報処理装置は、前記バス調停手段が、設定された周期から予測される同期デバイスからバス使用要求が出力されるタイミングがくると、その時点でバスを使用している非同期デバイスのデータ転送をバス転送中止信号によって、中断することを特徴とする。
【0200】
また、本発明に係る内部バスの帯域制御手段を具備した情報処理装置は、前記バス調停手段が、同期デバイスからの1回のバス使用要求に対して、バス使用許可を複数回に分けて与えることを特徴とする。
【0201】
また、本発明に係る内部バスの帯域制御手段を具備した情報処理装置は、前記バス調停手段が前記バスに非同期デバイスがさらに接続されている場合は、該非同期デバイスが許容できる最大のバス使用権待ち時間を予め設定し、同期デバイスがバスの使用権を得ているときに、非同期デバイスのバス使用権待ち時間が設定した値になると、予め設定した時間だけ一時的に同期デバイスのバス使用権を開放して前記非同期デバイスにバス使用権を与えることを特徴とする。
【0202】
また、本発明に係る内部バスの帯域制御手段を具備した情報処理装置は、前記バス調停手段が、2つ以上の同期デバイスがバスに接続されている場合は、データ転送の周期が最も短い同期デバイスに対して、該同期デバイスからバス要求が出力されるタイミングより前にバス使用許可を与えることを特徴とする。
【0203】
また、本発明に係る内部バスの帯域制御手段を具備した情報処理装置は、前記バス調停手段が、2つ以上のデータ転送の周期が同じである同期デバイスがバスに接続されている場合は、いずれかの一つの同期デバイスに対して、該同期デバイスからバス要求が出力されるタイミングより前にバス使用許可を与え、該同期デバイスのデータ転送に必要な時間のバス使用許可を該同期デバイスに与えたあと、非同期デバイスにバス使用許可を与えるまえに、所定の順序にしたがって別の同期デバイスに対して、バス使用許可を与えることを特徴とする
本発明によれば、転送タイミングと転送帯域の保証が必要な映像・音声などの同期データを処理するバスの調停手段が、バス使用要求の出力されるタイミングを予測して、その予測タイミングより前に該当する同期デバイスにバス使用許可を与えておくことにより、バス使用要求が発生した際にすぐにバスの使用が可能となり、遅延無くデータの転送が可能となる。
【産業上の利用可能性】
【0204】
本発明によれば、同期デバイスへ、より早い時点で、遅滞なく、バスの使用権を与えることができ、当該同期デバイスが、より確実に同期データを伝送できるように、バスを調停できる。したがって、例えば、リアルタイム性が強く要求されるAVデータをバスを介して伝送するAVシステムをはじめ、バスを介して、種々の同期データを伝送可能な種々のシステムに広く好適に使用できる。
【図面の簡単な説明】
【0205】
【図1】本発明の第一の実施に係る情報処理装置の要部構成を示すブロック図である。
【図2】本発明の第二の実施に係るバス調停回路の詳細な構成の要部を示すブロック図である。
【図3】本発明の第一の実施に係るバス調停回路の入出力信号の変化を示すタイミングチャートである。
【図4】本発明の第三の実施に係るバス調停回路の入出力信号の変化を示すタイミングチャートである。
【図5】従来の情報処理装置の構成を示すブロック図である。
【符号の説明】
【0206】
1・1a・1b 情報処理装置
11 CPU(設定手段)
12 ホストバス
13 メモリ
14 ホスト−内部バスブリッジ
15 内部バス(バス)
16 バス調停回路
17 イーサネットI/F(デバイス)
18 グラフィックコントローラ(デバイス)
19 MPEGデコーダ(デバイス)
20 外部バスI/F(同期デバイス)
32・32a・32b バス使用権選択部(バス調停手段)
33・33b レジスタ(記憶手段)

【特許請求の範囲】
【請求項1】
帯域保証が必要な同期データを構成するデータ列を繰り返し伝送可能な同期デバイスを含む複数のデバイスによって共用されるバスの使用権を調停するバス調停手段を有するバス調停回路において、
前記同期デバイスによる次のデータ伝送開始時点を予測するための予測用情報が予め格納された記憶手段を備え、
前記バス調停手段は、前記同期デバイスによる同期データの伝送を検出した場合、前記記憶手段に格納された予測用情報に基づいて、次の同期データのデータ列のデータ伝送開始時点の予測結果よりも前の調停開始時点を決定すると共に、前記同期デバイスによって使用権が要求されていなくても、当該調停開始時点から、前記同期デバイスへ使用権を与えるための前記バスの調停処理を開始することを特徴とするバス調停回路。
【請求項2】
前記予測用情報は、前記同期デバイスがデータ列を伝送する周期を示す情報であることを特徴とする請求項1記載のバス調停回路。
【請求項3】
前記次の同期データのデータ列のデータ伝送開始時点の予測結果と前記調停開始時点との時間差は、前記調停処理に要する時間よりも大きく設定されており、
前記バス調停手段は、前記同期デバイスによる同期データの伝送を検出した場合、当該同期デバイスが前記バスの使用権を要求するよりも前に、前記バスの使用権を与えるための許可信号を当該同期デバイスへ出力することを特徴とする請求項1記載のバス調停回路。
【請求項4】
前記バス調停手段は、予め設定されたバス使用許可時間情報の示す時間、前記許可信号を同期デバイスへ与えることを特徴とする請求項3記載のバス調停回路。
【請求項5】
前記バス調停手段は、前記バスの状態を監視して、前記同期デバイスがデータ列を実際に伝送しているか否かを検出すると共に、前記同期デバイスがデータ列を実際に伝送している期間の合計が、予め設定されたバス使用許可時間情報の示す時間になるように、前記許可信号を同期デバイスへ与える期間の長さを制御することを特徴とする請求項3記載のバス調停回路。
【請求項6】
前記バス調停手段は、前記バスの状態を監視して、今回、前記同期デバイスによって実際に伝送されたデータ列のデータ量を検出すると共に、検出結果に応じて、前記バス使用許可時間情報を更新することを特徴とする請求項4または5記載のバス調停回路。
【請求項7】
前記バス調停手段は、前記調停開始時点になると、その時点でバスを使用している前記同期デバイス以外のデバイスへ、バス転送中止信号を出力して、当該デバイスによるデータ転送を中止させることを特徴とする請求項1に記載のバス調停回路。
【請求項8】
前記バス調停手段は、前記同期デバイスからの1回のバス使用権の要求に対して、前記バスの使用許可を複数回に分けて与えることを特徴とする請求項1に記載のバス調停回路。
【請求項9】
前記バス調停手段は、前記同期デバイスがバスの使用権を得ているときに、当該同期デバイス以外のデバイスからのバスの使用権が要求されてからの経過時間を計時すると共に、当該経過時間が予め定められたバス使用許可時間を超えた場合、予め設定した時間だけ、一時的に当該同期デバイスのバスの使用権を開放して、前記デバイスにバスの使用権を与えることを特徴とする請求項1に記載のバス調停回路。
【請求項10】
前記バス調停手段は、2つ以上の同期デバイスがバスに接続されている場合、データ転送の周期が最も短い同期デバイスに対して、前記調停開始時点を決定し、当該調停開始時点から当該同期デバイスへ使用権を与えるための前記バスの調停処理を開始することを特徴とする請求項1に記載のバス調停回路。
【請求項11】
前記バス調停手段は、2つ以上のデータ転送の周期が同じである同期デバイスがバスに接続されている場合、いずれかの一つの同期デバイスに対して、前記調停開始時点を決定し、当該調停開始時点から当該同期デバイスへ使用権を与えるための前記バスの調停処理を開始すると共に、該同期デバイスのデータ転送に必要な時間のバス使用許可を該同期デバイスに与えた後、前記各同期デバイス以外のデバイスにバス使用許可を与える前に、所定の順序に、別の同期デバイスに対して、バスの使用許可を与えることを特徴とする請求項1に記載のバス調停回路。
【請求項12】
請求項1記載のバス調停回路と、
接続された複数のデバイスによる使用権が前記バス調停回路によって調停されるバスと、
前記バスに接続された同期デバイスの特性を検出すると共に、検出結果に基づいて、前記バス調停回路に前記予測用情報を設定する設定手段とを備えていることを特徴とする情報処理装置。
【請求項13】
バス調停回路と、接続された複数のデバイスによる使用権が前記バス調停回路によって調停されるバスとに接続可能なコンピュータのプログラムであって、
前記バス調停回路は、帯域保証が必要な同期データを構成するデータ列を繰り返し伝送可能な同期デバイスを含む複数のデバイスによって共用されるバスの使用権を調停するバス調停手段を有し、
前記バス調停手段は、前記同期デバイスによる同期データの伝送を検出した場合、前記同期デバイスによる次のデータ伝送開始時点を予測するために予め設定された予測用情報に基づいて、次の同期データのデータ列のデータ伝送開始時点の予測結果よりも前の調停開始時点を決定すると共に、前記同期デバイスによって使用権が要求されていなくても、当該調停開始時点から、前記同期デバイスへ使用権を与えるための前記バスの調停処理を開始すると共に、
前記プログラムは、前記バスに接続された同期デバイスの特性を検出すると共に、検出結果に基づいて、前記バス調停回路に前記予測用情報を設定する設定手段として、前記コンピュータを動作させるプログラムであることを特徴とするプログラム。
【請求項14】
請求項13記載のプログラムが記録されている記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2006−40167(P2006−40167A)
【公開日】平成18年2月9日(2006.2.9)
【国際特許分類】
【出願番号】特願2004−222349(P2004−222349)
【出願日】平成16年7月29日(2004.7.29)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】