(57)【要約】【課題】共通バスの動作状態を少ない端子数で効率よく外部に出力することができるデータ転送装置を提供する。【解決手段】複数の周辺回路Ａ，Ｂは、共通バス４を通じてデータの授受を行なう。転送待ち判定部１２は、複数の周辺回路Ａ，Ｂの中の選択された周辺回路がデータ転送待ちか否かを表わす第１の信号Ｗを第１の端子Ｃを通じて外部へ出力する。データ転送権通知部１４は、複数の周辺回路Ａ，Ｂの中のデータ転送中の周辺回路を表わす第２の信号Ｋを第２の端子Ｄを通じて外部へ出力する。エラー通知部１６は、複数の周辺回路の中のいずれかの周辺回路でバッファエラーが発生したか否かを表わす第３の信号Ｅを第３の端子Ｅを通じて外部へ出力する。【選択図】図１
2012208790.tif 000002
【特許請求の範囲】
【請求項１】
共通バスと、
前記共通バスを通じてデータの授受を行なう複数のバス使用回路と、
外部と接続された第１、第２および第３の端子と、
前記複数のバス使用回路の中の選択されたバス使用回路がデータ転送待ちか否かを表わす第１の信号を前記第１の端子を通じて外部へ出力する転送待ち判定部と、
前記複数のバス使用回路の中のデータ転送中のバス使用回路を表わす第２の信号を前記第２の端子を通じて外部へ出力するデータ転送権通知部と、
前記複数のバス使用回路の中のいずれかのバス使用回路でバッファエラーが発生したか否かを表わす第３の信号を前記第３の端子を通じて外部へ出力するエラー通知部とを備えた、データ転送装置。
【請求項２】
前記転送待ち判定部は、さらに前記選択されたバス使用回路の前記データ転送待ちの時間を計測する、請求項１記載のデータ転送装置。
【請求項３】
前記転送待ち判定部は、
前記共通バスのクロックにしたがって、カウントアップするカウンタと、
前記選択されたバス使用回路から出力された転送要求信号を受けると前記カウンタのカウントアップを開始させ、前記選択されたバス使用回路から出力されたリードデータまたはライトデータを受けると前記カウンタのカウントアップを停止させるカウンタ制御回路と、
前記カウンタの停止後のカウント値を保持する第１のレジスタとを含む、請求項２記載のデータ転送装置。
【請求項４】
前記転送待ち判定部は、さらに、
前記第１のレジスタに保持される前記カウント値の履歴の最大値を保持する第２のレジスタを含む、請求項３記載のデータ転送装置。
【請求項５】
前記エラー通知部は、さらに、前記バッファエラーが発生したバス使用回路を表わす識別子を保持するエラーステイタスレジスタを含み、
前記データ転送装置は、
前記複数のバス使用回路に対して設定された優先度に基づいて、前記バス使用回路によるデータ転送の要求を許否または却下するデータ転送制御回路と、
前記エラーステイタスレジスタ内の前記バッファエラーが発生したバス使用回路の前記優先度を変更する優先度変更回路とを備えた、請求項１記載のデータ転送装置。
【請求項６】
前記バス使用回路は、リードバッファを含み、
前記優先度変更回路は、前記バッファエラーとしてリードバッファのオーバーフローが発生したバス使用回路の優先度を減少させ、前記バッファエラーとしてリードバッファのアンダーフローが発生したバス使用回路の優先度を増加させる、請求項５記載のデータ転送装置。
【請求項７】
前記バス使用回路は、ライトバッファを含み、
前記優先度変更回路は、前記バッファエラーとしてライトバッファのオーバーフローが発生したバス使用回路の優先度を増加させ、前記バッファエラーとしてライトバッファのアンダーフローが発生したバス使用回路の優先度を減少させる、請求項５記載のデータ転送装置。
【請求項８】
前記データ転送装置は、さらに、
サンプリング区間において、前記複数のバス使用回路によるデータ転送待ちの合計時間を算出する第１の算出部と、
前記サンプリング区間において、前記複数のバス使用回路によるデータ転送の合計時間を算出する第２の算出部と、
前記サンプリング区間内の前記データ転送の合計時間と前記データ転送待ちの合計時間の和を算出する加算部と、
前記サンプリング区間の時間に対する前記合計時間の和の割合に基づいて、前記共通バスのクロック周波数を変更するクロック制御回路とを備えた、請求項１記載のデータ転送装置。
【請求項９】
前記クロック制御回路は、前記サンプリング区間の時間を前記合計時間の和で除算した値の倍数だけ前記共通バスのクロック周波数を増加させる、請求項８記載のデータ転送装置。
【請求項１０】
前記データ転送装置は、さらに、
前記複数のバス使用回路に対して設定された優先度に基づいて、前記バス使用回路によるデータ転送の要求を許否または却下し、データ転送を許可するときには、データ転送を許可するバス使用回路に対して設定された１回当りの転送量に基づいて、前記バス使用回路による１回当りの転送量を制御するデータ転送制御部と、
前記第２の信号および前記第３の信号に基づいて、前記バッファエラーが発生したバス使用回路を特定し、前記特定したバス使用回路の優先度よりも高い優先度のバス使用回路の１回当りの転送量を減少させる転送量変更回路とを備える、請求項１記載のデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置に関する。
【背景技術】
【０００２】
共通バス方式を採用したシステムにおいて、障害内容を検知する方式が特許文献１（特開昭６０−１８３６５７号公報）および特許文献２（特開昭６０−６９７５４号公報）に開示されている。
【０００３】
特許文献１には、共通バスにバスマスターと、バス・スレーブを接続したマイクロ・コンピュータ応用システムにおいて、上記バスマスターごとに共通バス制御権の要求から転送応答信号を受信するまでの時間を監視するタイマー回路を備えるとともに、上記バスマスターの少なくとも１つに、故障診断プログラムを格納するメモリと、該メモリを割込み処理動作で使用するマイクロ・コンピュータとを備え、上記タイマー回路が監視時間をオーバーすることにより、上記マイクロ・コンピュータに割込み処理動作を実行させることが開示されている。
【０００４】
また、特許文献２には、共通バスに接続され、複数のＣＰＵからなるコンピュータシステムの共通バスの制御方法において、前記複数のＣＰＵのそれぞれについてバス使用要求信号を発してから、バス使用権が与えられるまでの待時間を測定し、待時間が前記各ＣＰＵに対して定められた設定時間よりも長くなった場合にバス負荷異常信号を発することが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開昭６０−１８３６５７号公報
【特許文献２】特開昭６０−６９７５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、高機能ＳｏＣ（System-on-a-chip）などでは、動作上必要な外部端子の数が多く、データ転送バスの動作状態を通知するために多数の信号を引き出すことができない。
【０００７】
その結果、チップ内部のデータ転送用バスの動作状態を外部から正確に把握できず、設計者は、専ら、高集積回路仕様書情報に基づいて、各周辺回路のデータ転送用バスの動作状態を推測するしかなかった。したがって、バス性能計算の推測値の妥当性を確認したり、異常時の原因を特定することが困難であった。
【０００８】
しかしながら、特許文献１および特許文献２には、データ転送バスの動作状態を少ない端子数で効率よく外部に出力する構成が開示されていない。
【０００９】
それゆえに、本発明の目的は、共通バスの動作状態を少ない端子数で効率よく外部に出力することができるデータ転送装置を提供することである。
【課題を解決するための手段】
【００１０】
本発明の一実施形態のデータ転送装置は、共通バスと、共通バスを通じてデータの授受を行なう複数のバス使用回路と、外部と接続された第１、第２および第３の端子と、複数のバス使用回路の中の選択されたバス使用回路がデータ転送待ちか否かを表わす第１の信号を第１の端子を通じて外部へ出力する転送待ち判定部と、複数のバス使用回路の中のデータ転送中のバス使用回路を表わす第２の信号を第２の端子を通じて外部へ出力するデータ転送権通知部と、複数のバス使用回路の中のいずれかのバス使用回路でバッファエラーが発生したか否かを表わす第３の信号を第３の端子を通じて外部へ出力するエラー通知部とを備える。
【発明の効果】
【００１１】
本発明の一実施形態のデータ転送装置によれば、共通バスの動作状態を少ない端子数で効率よく外部に出力することができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態におけるデータ転送装置の構成を表わす図である。
【図２】第１の実施形態におけるデータ転送権の通知とエラーの通知の動作を説明するための図である。
【図３】第１の実施形態のデータ転送装置で伝送される信号のタイミングを表わす図である。
【図４】第２の実施形態のデータ転送装置の構成を表わす図である。
【図５】第２の実施形態のデータ転送待ち時間の測定動作を説明するための図である。
【図６】第３の実施形態のデータ転送装置の構成を表わす図である。
【図７】優先度変更回路４０による優先度の変更例を表わす図である。
【図８】第４の実施形態のデータ転送装置の構成を表わす図である。
【図９】サンプリング区間における転送待ちとデータ転送とを表わす図である。
【図１０】図９の転送待ちおよびデータ転送の状態でのクロック制御を説明するための図である。
【図１１】第５の実施形態のデータ転送装置の構成を表わす図である。
【図１２】周辺回路の優先度の例を表わす図である。
【図１３】（ａ）は、各周辺回路の１回当りのデータ転送量の初期値を表わす図である。（ｂ）は、転送量調整後の各周辺回路の１回当りのデータ転送量を表わす図である。
【図１４】（ａ）は、図１３（ａ）の転送量の設定値の下での、周辺回路Ｂのデータ転送を説明するための図である。（ｂ）は、図１３（ｂ）の転送量の設定値の下での、周辺回路Ｂのデータ転送を説明するための図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について図面を参照して説明する。
［第１の実施形態］
図１は、第１の実施形態におけるデータ転送装置の構成を表わす図である。
【００１４】
図１を参照して、このデータ転送装置２は、データ転送バス４と、複数の周辺回路Ａ、Ｂと、データ転送制御回路１０と、転送待ち判定部１２と、データ転送権通知部１４と、エラー通知部１６と、外部端子Ｃ、Ｄ、Ｅとを備える。
【００１５】
外部端子Ｃ、Ｄ、Ｅは、データ転送装置の外部と接続され、外部へ信号を出力する。
データ転送バス４は、複数の周辺回路Ａ，Ｂで共通に使用される共通バスである。
【００１６】
各周辺回路Ａ，Ｂは、データ転送バス４に接続される。各周辺回路Ａ，Ｂは、データ転送バス４を通じて他の周辺回路とデータの授受を行なう。
【００１７】
周辺回路Ａ，Ｂは、リードバッファと、ライトバッファとを含む。周辺回路Ａ，Ｂは、リードバッファまたはライトバッファにエラーが発生したときに、バッファエラー信号を「Ｈ」レベルにアサートする。エラーには、アンダーフローとオーバーフローがある。アンダーフローとは、バッファ内にデータが蓄積されていない状態でデータの引き抜きが発生した場合をいう。オーバーフローは、バッファ内のデータ量が所定の閾値を超えている状態をいう。
【００１８】
周辺回路Ａ，Ｂは、他の周辺回路Ａ，Ｂへデータを転送する必要があるとき、または他のデータ転送からデータの転送を受ける必要があるときに、データ転送要求信号をデータ転送バス４を介してデータ転送制御回路１０へ出力する。周辺回路Ａ，Ｂは、データ転送制御回路１０からデータ転送バス４を介してデータ転送許可信号を受けた後、他の周辺回路Ａ，Ｂへのライトデータ（つまり、他の周辺回路Ａ，Ｂへ送るデータ）をデータ転送バス４へ出力し、または他の周辺回路Ａ，Ｂからのリードデータ（つまり、他の周辺回路Ａ，Ｂから送られるデータ）をデータ転送バス４から受ける。
【００１９】
データ転送制御回路１０は、周辺回路Ａ，Ｂのデータ転送を制御する。データ転送制御回路１０は、データ転送バス４を介して周辺回路Ａ，Ｂからデータ転送要求信号を受けて、データ転送を許可する場合にはデータ転送許可信号をデータ転送バス４を介して周辺回路Ａ，Ｂへ出力する。データ転送制御回路１０は、複数の周辺回路Ａ，Ｂからデータ転送要求信号を受けたときには、最も優先度の高い周辺回路Ａ，Ｂに対してデータ転送を許可する許可信号を出力し、その他の周辺回路Ａ，Ｂに対してデータ転送を拒否する拒否信号を出力する。また、データ転送制御回路１０は、周辺回路Ａ，Ｂからデータ転送要求信号を受けたときに、他の周辺回路Ａ，Ｂでデータ転送が実行されている場合には、他の周辺回路Ａ，Ｂでのデータ転送が終了後に、データ転送要求信号を発行した周辺回路Ａ，Ｂにデータ転送許可信号を出力する。
【００２０】
転送待ち判定部１２は、複数の周辺回路Ａ，Ｂのうち選択された周辺回路Ａ，Ｂについて、データ転送の待ち時間を測定する。転送待ち判定部１２は、転送待ち信号を外部端子Ｃへ出力する。転送待ち判定部１２は、複数の周辺回路Ａ，Ｂのうち選択された周辺回路Ａ，Ｂについて、データ転送待ちが発生したときに、転送待ち信号Ｗを「Ｈ」レベルにアサートする。
【００２１】
データ転送権通知部１４は、モードレジスタ１８と、セレクタ２０と、エンコーダ回路２２とを含む。
【００２２】
図示しないＣＰＵは、モードレジスタ１８に、データ転送権の有無を通知する周辺回路を表わす識別子を設定する。
【００２３】
セレクタ２０は、データ転送バス４に接続されているすべての周辺回路Ａ，Ｂからリードデータ、またはライトデータを受け、そのうち、モードレジスタ１８に設定された識別子の周辺回路から出力されたリードデータ、またはライトデータをエンコーダ回路２２へ出力する。
【００２４】
エンコーダ回路２２は、セレクタ２０から出力されるリードデータまたはライトデータを受けて、リードデータまたはライトデータがデータ転送中を表わすときには、データ転送権を有する周辺回路を特定する。エンコーダ回路２２は、データ転送権を有する周辺回路の識別子をエンコードした３ビットのバス権表示信号Ｋを外部端子Ｄへ出力する。
【００２５】
たとえば、モードレジスタ１８に周辺回路Ａ、周辺回路Ｂの識別子が設定された場合に、セレクタ２０は、周辺回路Ａ，周辺回路Ｂからのリードデータ、ライトデータをエンコーダ回路２２へ出力する。エンコーダ回路２２は、周辺回路Ａのリードデータがデータをリードしている状態を表わすとき（たとえば、ヘッダによってリードデータまたはライトデータを識別できたとき）には、周辺回路Ａを表わす識別子をエンコードした３ビットのバス権表示信号Ｋを出力する。たとえば、周辺回路Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇを表わすときには、３ビットのバス権表示信号Ｋはそれぞれ２進数で００１、０１０、０１１、１００、１０１、１１０、１１１となる。
【００２６】
エラー通知部１６は、ＯＲ回路２４と、エラーステイタスレジスタ２６とを備える。
ＯＲ回路２４は、データ転送バス４に接続されているすべての周辺回路Ａ，Ｂからのバッファエラー信号を受ける。ＯＲ回路２４は、すべての周辺回路Ａ，Ｂからのバッファエラー信号の論理和を算出して、エラー信号Ｅとして外部端子Ｅへ出力する。したがって、ＯＲ回路２４は、データ転送バス４に接続されているいずれかの周辺回路にバッファエラーが発生したときには、エラー信号Ｅを「Ｈ」レベルにアサートする。ＯＲ回路２４は、データ転送バス４に接続されているすべての周辺回路Ａ，Ｂでバッファエラーが発生しないときには、エラー信号Ｅを「Ｌ」レベルにする。
【００２７】
エラーステイタスレジスタ２６は、バッファエラーが発生した周辺回路の識別子と、バッファエラーの種類を表わす識別子とを記憶する。バッファエラーの種類を表わす識別子は、リードバッファのオーバーフローを“００”とし、リードバッファのアンダーフローを“０１”とし、ライトバッファのオーバーフローを“１０”とし、ライトバッファのアンダーフローを“１１”とする。
【００２８】
（動作）
図２は、第１の実施形態におけるデータ転送権の通知とエラーの通知の動作を説明するための図である。
【００２９】
まず、ＣＰＵによって、データ転送権通知内のモードレジスタ１８に周辺回路Ａおよび周辺回路Ｂを特定する識別子が設定されているものとする。
【００３０】
図２を参照して、データ転送制御回路１０は、データ転送要求信号が発生するのを待つ（ステップＳ１０１）。
【００３１】
周辺回路Ａがデータ転送要求信号をデータ転送制御回路１０へ出力する。周辺回路Ａが、データ転送制御回路１０からデータ転送許可信号を受けて、ライトデータの出力を開始、すなわちデータ転送を開始する（ステップＳ１０２）。
【００３２】
セレクタ２０は、周辺回路Ａからのライトデータをエンコーダ回路２２へ出力する。エンコーダ回路２２は、セレクタ２０から出力されるライトデータを受けて、ライトデータがデータ転送中を表わすときには、データ転送権を有する周辺回路Ａを特定する。エンコーダ回路２２は、データ転送権を有する周辺回路Ａの識別子をエンコードした３ビットのバス権表示信号Ｋ“００１”を外部端子Ｄへ出力する（ステップＳ１０３）。
【００３３】
その後、周辺回路Ａのライトバッファでオーバーフローが発生し（ステップＳ１０４）、周辺回路Ａは、バッファエラー信号を出力し、エラー通知部１６のＯＲ回路２４は、エラー信号Ｅを「Ｈ」レベルにアサートする（ステップＳ１０５）。
【００３４】
また、エラー通知部１６のエラーステイタスレジスタ２６は、バッファエラーが発生した周辺回路の識別子“００１”と、バッファエラーの種類（ここでは、ライトバッファのオーバーフロー）を表わす識別子“１０”とを記憶する（ステップＳ１０６）。
【００３５】
その後、周辺回路Ｂがデータ転送要求信号をデータ転送制御回路１０へ出力する。周辺回路Ｂが、データ転送制御回路１０からデータ転送許可信号を受けて、ライトデータの出力を開始、すなわちデータ転送を開始する（ステップＳ１０７）。
【００３６】
エンコーダ回路２２は、セレクタ２０から出力されるライトデータを受けて、ライトデータがデータ転送中を表わすときには、データ転送権を有する周辺回路Ｂを特定する。エンコーダ回路２２は、外部端子Ｄへ出力する３ビットのバス権表示信号Ｋを“０００”に一旦クリアし（ステップＳ１０８）、その後データ転送権を有する周辺回路Ｂの識別子“０１０”に設定する（ステップＳ１０９）。
【００３７】
（信号の変化のタイミング）
図３は、第１の実施形態のデータ転送装置で伝送される信号のタイミングを表わす図である。
【００３８】
まず、周辺回路Ｂがデータ転送を行ない、その後、周辺回路Ａがデータ転送を行なうものとする。
【００３９】
各周辺回路Ａ，Ｂは、データ転送要求信号を送信してから、許可信号を受けて実際にデータを転送するまでの転送待ちの状態を有する。図３の例では、周辺回路Ａがデータ転送要求信号を送信したときには、周辺回路Ｂがデータ転送中であったので、周辺回路Ｂがデータ転送を終了した後、周辺回路Ａは許可信号を受信してデータ転送を実行している。
【００４０】
転送待ち信号Ｗは、いずれかの周辺回路で転送待ちが発生したときに、「Ｈ」レベルに活性化される。
【００４１】
バス権表示信号Ｋは、周辺回路Ｂでデータ転送が行なわれているときに、周辺回路Ｂの識別子を表わし、周辺回路Ａでデータ転送が行なわれているときに、周辺回路Ａの識別子を表わす。
【００４２】
以上のように、本実施の形態によれば、選択された周辺回路がデータ転送待ちであるか否かを表わす信号、いずれかの周辺回路でバッファエラーが発生したか否かを表わす信号、データ転送権を有する周辺回路がいずれであるかを示す信号を３個の端子で効率よく外部に出力することができるので、システム上重要な端子の多い高機能ＳｏＣにも実装環境への負荷を与えることなく実装することができる。
【００４３】
また、端子から出力される信号によって、設計者によるデバッグが容易となる。すなわち、端子から出力される信号によって、データ転送方式や転送優先順位の妥当性を確認したりすることができる。また、設計者は、次期デバイス設計時の最適なハードウエア構成（内蔵FIFO(First In First out)量など）を検討することができる。
【００４４】
また、バッファエラーが発生した時点が明示化され、エラーステイタスレジスタ２６の内容、発生時点前後のエンコーダ回路２２の出力を参照すれば、何の転送時にエラーが発生しているかが判るため、問題点を明確化でき、対策が立てやすくなる。
【００４５】
［第２の実施形態］
図４は、第２の実施形態のデータ転送装置の構成を表わす図である。
【００４６】
図４を参照して、データ転送装置２は、周辺回路Ａ，Ｂと、データ転送バス４と、データ転送制御回路１０と、転送待ち判定部１２と、外部端子Ｃとを備える。このデータ転送装置は、さらに、図１で説明したエラー通知部１６、データ転送権通知部１４、および外部端子Ｄ、Ｅとを備えるものとしてもよい。
【００４７】
周辺回路Ａ，Ｂと、データ転送バス４と、データ転送制御回路１０とは、第１の実施形態で説明したものと同様である。
【００４８】
転送待ち判定部１２は、モードレジスタ２８と、セレクタ回路３０と、カウンタ制御回路３２と、１６ビットカウンタ３８と、転送待ち時間保持レジスタ３４と、最大転送待ち時間保持レジスタ３６とを含む。
【００４９】
図示しないＣＰＵは、モードレジスタ２８に、転送待ち時間を測定する周辺回路を表わす識別子を設定する。
【００５０】
セレクタ回路３０は、データ転送バス４に接続されているすべての周辺回路Ａ，Ｂからデータ転送要求信号、リードデータ、ライトデータを受け、そのうち、モードレジスタ２８に設定された識別子の周辺回路から出力されたデータ転送要求信号、リードデータ、ライトデータをカウンタ制御回路３２へ出力する。
【００５１】
カウンタ制御回路３２は、セレクタからデータ転送要求信号を受けたときには、１６ビットカウンタ３８のカウント動作を開始させる開始信号を出力するともに、第１の実施形態で説明した転送待ち信号Ｗを活性化して外部端子Ｃへ出力する。
【００５２】
また、カウンタ制御回路３２は、セレクタからリードデータまたはライトデータの先頭を受けたときに、１６ビットカウンタ３８のカウント動作を停止させる停止信号を出力する。
【００５３】
１６ビットカウンタ３８は、データ転送バスクロックの立上りに基づいて、カウント値を増加させる。１６ビットカウンタ３８は、開始信号を受けたときにカウント値の更新を開始し、終了信号を受けたときにカウント値の更新を停止する。１６ビットカウンタ３８のカウント値は、停止後、転送待ち時間保持レジスタ３４へ出力される。
【００５４】
転送待ち時間保持レジスタ３４は、１６ビットカウンタ３８の停止後のカウント値、つまりモードレジスタ２８に設定された識別子の周辺回路についての、データ転送バスクロックの立ち上がりを受信した回数で表わされる転送待ち時間を保持する。
【００５５】
最大転送待ち時間保持レジスタ３６は、転送待ち時間保持レジスタ３４に保持されたカウント値の履歴の最大値を保持する。
【００５６】
（動作）
図５は、第２の実施形態のデータ転送待ち時間の測定動作を説明するための図である。
【００５７】
図５を参照して、ＣＰＵによって、転送待ち判定部１２内のモードレジスタ２８に周辺回路Ａを特定する識別子が設定されているものとする。
【００５８】
図５を参照して、データ転送制御回路１０は、データ転送要求信号が発生するのを待つ（ステップＳ２０１）。
【００５９】
周辺回路Ａがデータ転送要求信号をデータ転送制御回路１０へ出力する（ステップＳ２０２）。
【００６０】
その後、セレクタ回路３０は、周辺回路Ａから出力されるデータ転送要求信号をカウンタ制御回路３２へ出力する。カウンタ制御回路３２は、セレクタ回路３０からデータ転送要求信号を受けて、１６ビットカウンタ３８のカウント動作を開始させる開始信号を出力する（ステップＳ２０３）。
【００６１】
次に、周辺回路Ａが、データ転送許可信号を受けて、ライトデータの出力を開始、すなわちデータ転送を開始する（ステップＳ２０４）。
【００６２】
その後、カウンタ制御回路３２は、セレクタ回路３０からライトデータの先頭を受けると、１６ビットカウンタ３８のカウント動作を停止させる停止信号を出力する（ステップＳ２０５）。
【００６３】
１６ビットカウンタ３８のカウント動作が停止すると、カウント値が転送待ち時間保持レジスタ３４に送られて、転送待ち時間保持レジスタ３４内の保持しているカウント値が更新される。たとえば、カウンタ値“ｂ”が格納されるとする（ステップＳ２０６）。
【００６４】
最大転送待ち時間保持レジスタ３６は、転送待ち時間保持レジスタ３４の更新されたカウント値が、保持しているカウント値（たとえば“ａ”）よりも大きいときには、保持しているカウント値“ａ”を転送待ち時間保持レジスタ３４内のカウント値“ｂ”で更新する（ステップＳ２０７）。
【００６５】
１６ビットカウンタ３８は、カウント動作を停止した後、カウント値を０にクリアする（ステップＳ２０８）。
【００６６】
その後、周辺回路Ａが、ライトデータの出力を停止、すなわちデータ転送を終了する（ステップＳ２０９）。
【００６７】
以上のように、本実施の形態によれば、データ転送要求信号を受けたときには、カウンタにデータ転送バスクロックに基づくカウント動作を開始させ、リードデータまたはライトデータの先頭を受けたときに、カウンタのカウント動作を停止させることによって、データ転送要求信号が発行されてから実際にデータが転送されるまので時間を測定することができる。
【００６８】
［第３の実施形態］
図６は、第３の実施形態のデータ転送装置の構成を表わす図である。
【００６９】
図６を参照して、このデータ転送装置７２は、データ転送バス４と、周辺回路Ａ，Ｂと、エラー通知部１６と、データ転送制御回路１０と、優先度変更回路４０とを備える。このデータ転送装置は、さらに、図１で説明したデータ転送権通知部１４、転送待ち判定部１２、および外部端子Ｃ〜Ｅを備えるものとしてもよい。
【００７０】
周辺回路Ａ，Ｂは、ライトバッファ４６，５０とリードバッファ４４，４８とを含む。ライトバッファ４６，５０は、ライトアクセス時にライトデータをデータ転送バス４へ出力するために保持する。リードバッファ４４，４８は、リードアクセス時にデータ転送バス４から受けたリードデータを保持する。
【００７１】
周辺回路Ａ，Ｂのリードバッファ４４，４８がアンダーフローとなったときには、その周辺回路Ａ，Ｂの識別子が、リードバッファ４４，４８がアンダーフローした周辺回路Ａ，Ｂの識別子としてエラーステイタスレジスタ２６に設定される。
【００７２】
周辺回路Ａ，Ｂのリードバッファ４４，４８がオーバーフローとなったときには、その周辺回路Ａ，Ｂの識別子が、リードバッファ４４，４８がオーバーフローした周辺回路Ａ，Ｂの識別子としてエラーステイタスレジスタ２６に設定される。
【００７３】
周辺回路Ａ，Ｂのライトバッファ４６，５０がアンダーフローとなったときには、その周辺回路Ａ，Ｂの識別子が、ライトバッファ４６，５０がアンダーフローした周辺回路Ａ，Ｂの識別子としてエラーステイタスレジスタ２６に設定される。
【００７４】
周辺回路Ａ，Ｂのライトバッファ４６，５０がオーバーフローとなったときには、その周辺回路Ａ，Ｂの識別子が、ライトバッファ４６，５０がオーバーフローした周辺回路Ａ，Ｂの識別子Ａ，Ｂとしてエラーステイタスレジスタ２６に設定される。
【００７５】
データ転送制御回路１０は、優先度設定レジスタ４２を備える。優先度設定レジスタ４２は、データ転送バス４に接続されている複数の周辺回路の優先度の設定値を保持する。優先度は、０〜１５の値をとる。優先度０が最も優先度が低く、優先度１５が最も優先度が高い。
【００７６】
データ転送制御回路１０は、複数の周辺回路Ａ，Ｂに対して設定された優先度に基づいて、周辺回路によるデータ転送の要求を許否または却下する。
【００７７】
図７は、優先度変更回路４０による優先度の変更例を表わす図である。
優先度変更回路４０は、エラー通知部１６のエラーステイタスレジスタ２６にリードバッファがオーバーフローした周辺回路の識別子が保持されている場合には、その識別子で特定される周辺回路の優先度を１段階下げる。
【００７８】
優先度変更回路４０は、エラー通知部１６のエラーステイタスレジスタ２６にリードバッファがアンダーフローした周辺回路の識別子が保持されている場合には、その識別子で特定される周辺回路の優先度を１段階上げる。
【００７９】
優先度変更回路４０は、エラー通知部１６のエラーステイタスレジスタ２６にライトバッファがオーバーフローした周辺回路の識別子が保持されている場合には、その識別子で特定される周辺回路の優先度を１段階上げる。
【００８０】
優先度変更回路４０は、エラー通知部１６のエラーステイタスレジスタ２６にライトバッファがアンダーフローした周辺回路の識別子が保持されている場合には、その識別子で特定される周辺回路の優先度を１段階下げる。
【００８１】
以上のように、本実施の形態によれば、エラーが発生した周辺回路の優先度を変更することによって、エラーの発生を抑えるようにすることができる。
【００８２】
［第４の実施形態］
図８は、第４の実施形態のデータ転送装置の構成を表わす図である。
【００８３】
図８を参照して、このデータ転送装置２は、データ転送バス４と、周辺回路Ａ，Ｂと、データ転送制御回路１０と、全転送待ち時間算出回路５３と、加算回路５５と、全転送時間算出回路５２と、クロック制御回路５７とを備える。このデータ転送装置は、さらに、図１で説明したエラー通知部１６とデータ転送権通知部１４と外部端子Ｃ〜Ｅを備えるものとしてもよい。
【００８４】
データ転送制御回路１０は、転送量設定レジスタ５９を含む。転送量設定レジスタ５９は、データ転送バス４に接続されている周辺回路ごとの一転送当りで転送されるデータ量の設定値を保持する。
【００８５】
全転送待ち時間算出回路５３は、サンプリング区間内の全データ転送時間に対応するデータ転送バスクロックの数Ａを算出する。
【００８６】
具体的には、全転送待ち時間算出回路５３は、第２の実施形態で説明した転送待ち判定部１２と、加算回路１５０と、全転送待ち時間保持レジスタ５１とを含む。
【００８７】
加算回路１５０は、サンプリング区間において、転送待ち判定部１２内のカウンタ制御回路３２から停止信号を受けると、転送待ち判定部１２の転送待ち時間保持レジスタ３４からカウント値Ｒ０を読み出して、全転送待ち時間保持レジスタ５１内のカウント値と加算して、加算結果で全転送待ち時間保持レジスタ５１内のカウント値を更新する。サンプリング区間の終了後には、全転送待ち時間保持レジスタ５１には、全転送待ち時間に対応するデータ転送バスクロックの数Ａが保持される。
【００８８】
全転送時間算出回路５２は、転送量設定レジスタ５９に設定される周辺回路ごとの１回当りのデータ転送量に基づいて、サンプリング区間における全転送時間に対応するデータ転送バスクロックの数Ｂを算出する。
【００８９】
たとえば、周辺回路Ａの１回当りのデータ転送量が６４バイトであり、周辺回路Ｂの１回当りのデータ転送量が３２バイトであるとする。また、データ転送バス４の転送速度がＸバイト／秒とする。サンプリング区間において周辺回路Ａで１０回のデータ転送が発生し、周辺回路Ｂで５回のデータ転送が発生した場合に、周辺回路Ａのデータ転送に（６４×１０）／Ｘ（秒）を要し、周辺回路Ｂのデータ転送に（３２×５）／Ｘ（秒）を要する。したがって、一定期間における全転送時間は、８００／Ｘ（秒）となり、全転送時間に対応するデータ転送バスクロックの数Ｂは、８００／（Ｘ×Ｔ）となる。ただし、Ｔは、データ転送バスクロックの周期である。
【００９０】
加算回路５５は、サンプリング区間内の全データ転送時間に対応するデータ転送バスクロックの数Ａと、全データ転送時間に対応するデータ転送バスクロックの数Ｂとを加算して、サンプリング区間内の全転送待ち時間と全転送時間の合計時間に対応するデータ転送バスクロックの数Ｃを算出する。
【００９１】
クロック制御回路５７は、サンプリング区間の時間に対する合計時間の割合に基づいて、データ転送バスクロックの周波数を変更する。
【００９２】
クロック制御回路５７は、除算回路５４と、乗算回路５６と、クロック逓倍回路５８とを備える。
【００９３】
除算回路５４は、サンプリング区間の時間に対応するデータ転送バスクロックの数Ｓをサンプリング区間内の全転送待ち時間と全転送時間の合計時間に対応するデータ転送バスクロックの数Ｃで除算して、除算値Ｄを出力する。
【００９４】
乗算回路５６は、逓倍設定値ｈと除算値Ｄとを乗算して、乗算値Ｍを出力する。
クロック逓倍回路５８は、除算値Ｄだけデータ転送バスクロックの周波数を増加させる。
【００９５】
すなわち、クロック逓倍回路５８は、調整前は、基準クロックの周波数のｈ倍の周波数のクロックをデータ転送バスクロックとして出力していたのに対して、調整後は、基準クロックの周波数のＭ倍の周波数のクロックをデータ転送バスクロックとして出力する。
【００９６】
（例）
図９は、サンプリング区間における転送待ちとデータ転送とを表わす図である。
【００９７】
図９に示すように、サンプリング区間において、周辺回路Ａにおいて、転送待ち時間がデータ転送バスクロックの１００個分の長さ、転送時間がデータ転送バスクロックの２５０個分の長さ、転送待ち時間がデータ転送バスクロックの１５０個分の長さ、転送時間がデータ転送バスクロックの２５０個分の長さであるとする。
【００９８】
また、周辺回路Ｂにおいて、転送待ち時間がデータ転送バスクロックの１００個分の長さ、転送時間がデータ転送バスクロックの２５０個分の長さ、転送待ち時間がデータ転送バスクロックの１５０個分の長さ、転送時間がデータ転送バスクロックの２５０個分の長さであるとする。
【００９９】
図１０は、図９の転送待ちおよびデータ転送の状態でのクロック制御を説明するための図である。
【０１００】
図１０に示すように、全転送待ち時間算出部で算出される全転送待ち時間Ａはデータ転送バスクロックの５００個分の長さである。全転送時間算出部で算出される全転送時間Ｂはデータ転送バスクロックの１０００個分の長さである。加算回路５５で算出される全転送待ち時間と全転送時間の合計時間Ｃはデータ転送バスクロックの１５００個分の長さである。サンプリング区間Ｓは、データ転送バスクロックの４５００個分の長さである。
【０１０１】
除算回路５４で算出される除算値Ｄは３となる。また、逓倍設定値ｈは２のときには、乗算値Ｍは６となる。したがって、クロック逓倍回路５８は、基準クロックの周波数の６倍の周波数のクロックをデータ転送バスクロックとして出力することになる。
【０１０２】
以上のように、本実施の形態によれば、実動作からデータ転送バスクロックの最適な動作周波数を割り出して、設定することができるので、無駄な電力消費を抑えることができる。
【０１０３】
［第５の実施形態］
図１１は、第５の実施形態のデータ転送装置の構成を表わす図である。
【０１０４】
図１１を参照して、このデータ転送装置９０は、周辺回路Ａ，Ｂと、データ転送バス４と、データ転送権通知部１４と、エラー通知部１６と、転送量変更回路６０と、データ転送制御回路１０とを備える。このデータ転送装置は、さらに、図１で説明した転送待ち判定部１２、および外部端子Ｃ〜Ｅを備えるものとしてもよい。
【０１０５】
データ転送制御回路１０は、優先度設定レジスタ４２と、転送量設定レジスタ５９とを含む。
【０１０６】
優先度設定レジスタ４２は、データ転送バス４に接続される周辺回路Ａ，Ｂの優先度の設定値を保持する。
【０１０７】
転送量設定レジスタ５９は、データ転送バス４に接続される周辺回路ごとの１回当りのデータ転送量の設定値を保持する。ここで、１回当りのデータ転送量とは、１つのデータ転送要求信号を発行して、許可信号を受けたときに転送できるデータ量をいう。
【０１０８】
データ転送制御回路１０は、優先度設定レジスタ４２を参照して、複数の周辺回路Ａ，Ｂに対して設定された優先度に基づいて、周辺回路Ａ，Ｂからデータ転送要求信号に対して許否または却下する。データ転送制御回路１０は、データ転送を許可するときには、転送量設定レジスタ５９を参照して、データ転送を許可する周辺回路に設定された１回当りのデータ転送量に基づいて、その周辺回路による１回当りのデータ転送量を制御する。
【０１０９】
データ転送権通知部１４は、第１の実施形態で説明したように、データ転送権を有する周辺回路の識別子をエンコードした３ビットのバス権表示信号Ｋを出力する。
【０１１０】
エラー通知部１６は、第１の実施形態で説明したように、データ転送バス４に接続されているいずれかの周辺回路にバッファエラーが発生したときには、「Ｈ」レベルにアサートしたエラー信号Ｅを「Ｈ」を出力する。
【０１１１】
転送量変更回路６０は、エラー通知部１６から出力されるエラー信号Ｅが「Ｈ」レベルにアサートされているときに、データ転送権通知部１４から出力されるバス権表示信号Ｋを参照して、エラーが発生している周辺回路を特定する。転送量変更回路６０は、優先度設定レジスタ４２を参照して、特定したエラーが発生した周辺回路よりも優先度が高い周辺回路を特定する。転送量変更回路６０は、優先度が高い周辺回路が複数個あるときには、それらのうち優先度が最も高い周辺回路を１つだけ特定する。転送量変更回路６０は、特定した優先度が高い周辺回路の１回当りのデータ転送量を減少させる。
【０１１２】
図１２は、周辺回路の優先度の例を表わす図である。
図１２を参照して、この例では、周辺回路Ａ、Ｂ、Ｃの優先度がそれぞれ「９」、「６」、「４」である。
【０１１３】
図１３（ａ）は、各周辺回路の１回当りのデータ転送量の初期値を表わす図である。
図１３（ａ）に示すように、この例では、すべての周辺回路の１回当りのデータ転送量は、「６４」バイトである。
【０１１４】
この状態で、周辺回路Ｂにエラーが発生したときに、周辺回路Ｂよりも優先度が高い周辺回路Ｃの一回が特定される。そして、周辺回路Ｃの一転送当りのデータ転送量が現在の転送量の１／２に減少させられる。
【０１１５】
図１３（ｂ）は、転送量調整後の各周辺回路の１回当りのデータ転送量を表わす図である。
【０１１６】
図１３（ｂ）に示すように、この例では、周辺回路Ｃの１回当りのデータ転送量は、３２バイトに減少する。
【０１１７】
図１４（ａ）は、図１３（ａ）の転送量の設定値の下での、周辺回路Ｂのデータ転送を説明するための図である。
【０１１８】
図１４（ａ）に示すように、周辺回路Ｂから転送されるデータは、６４バイトに分割されて転送される。この場合、周辺回路Ｂは、分割された６４バイトのデータを転送する前ごとにデータ転送要求信号を発行する。
【０１１９】
図１４（ｂ）は、図１３（ｂ）の転送量の設定値の下での、周辺回路Ｂのデータ転送を説明するための図である。
【０１２０】
図１４（ｂ）に示すように、周辺回路Ｂから転送されるデータは、３２バイトに分割されて転送される。この場合、周辺回路Ｂは、分割された３２バイトのデータを転送する前ごとにデータ転送要求信号を発行する。
【０１２１】
以上のように、本実施の形態によれば、エラーが発生した周辺回路よりも優先度が高い周辺回路の１回当りのデータ転送量を減少させるので、エラーの発生を抑制することができる。
【０１２２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２３】
２，７２，９０  データ転送装置、４  データ転送バス、１０  データ転送制御回路、１２  転送待ち判定部、１４  データ転送権通知部、１６  エラー通知部、１８，２８  モードレジスタ、２０  セレクタ、２２  エンコーダ回路、２４  ＯＲ回路、２６  エラーステイタスレジスタ、３０  セレクタ回路、３２  カウンタ制御回路、３４  転送待ち時間保持レジスタ、３６  最大転送待ち時間保持レジスタ、３８  １６ビットカウンタ、４０  優先度変更回路、４２  優先度設定レジスタ、４４，４８  リードバッファ、４６，５０  ライトバッファ、５１  全転送待ち時間保持レジスタ、５２  全転送時間算出回路、５３  全転送待ち時間算出回路、５４  除算回路、５５，１５０  加算回路、５６  乗算回路、５７  クロック制御回路、５８  クロック逓倍回路、５９  転送量設定レジスタ、６０  転送量偏向回路、Ａ，Ｂ  周辺回路、Ｃ，Ｄ，Ｅ  外部端子。
【図１】
2012208790.tif 000003
【図２】
2012208790.tif 000004
【図３】
2012208790.tif 000005
【図４】
2012208790.tif 000006
【図５】
2012208790.tif 000007
【図６】
2012208790.tif 000008
【図７】
2012208790.tif 000009
【図８】
2012208790.tif 000010
【図９】
2012208790.tif 000011
【図１０】
2012208790.tif 000012
【図１１】
2012208790.tif 000013
【図１２】
2012208790.tif 000014
【図１３】
2012208790.tif 000015
【図１４】
2012208790.tif 000016