(57)【要約】【課題】  複数のスレーブ回路からのデータ転送要求が互いに競合したときにも、転送レートを保証したデータ転送を実施する。【解決手段】  複数のスレーブ回路からのデータ転送要求に応じて、複数のスレーブ回路間のデータ転送を制御するデータ転送制御回路は、各スレーブ回路に対応して予め設定された基準の転送レートと各スレーブ回路の現在の転送レートとを比較する転送レート監視部と、スレーブ回路からのデータ転送要求が互いに競合するとき、転送レート監視部の比較結果に基づいて、現在の転送レートが基準の転送レートより低いスレーブ回路からのデータ転送要求を優先するデータ転送調停部とを有している。【選択図】    図１
2011198242.tif 000002
【特許請求の範囲】
【請求項１】
複数のスレーブ回路からのデータ転送要求に応じて、前記複数のスレーブ回路間のデータ転送を制御するデータ転送制御回路において、
前記各スレーブ回路に対応して予め設定された基準の転送レートと前記各スレーブ回路の現在の転送レートとを比較する転送レート監視部と、
前記スレーブ回路からの前記データ転送要求が互いに競合するとき、前記転送レート監視部の比較結果に基づいて、前記現在の転送レートが前記基準の転送レートより低い前記スレーブ回路からの前記データ転送要求を優先するデータ転送調停部と
を備えていることを特徴とするデータ転送制御回路。
【請求項２】
前記転送レート監視部は、前記現在の転送レートと前記基準の転送レートとの差を示す差分情報を、前記データ転送調停部に通知し、
前記データ転送調停部は、前記現在の転送レートが前記基準の転送レートより低い複数の前記スレーブ回路からの前記データ転送要求が互いに競合するとき、前記差分情報が示す値が大きい前記スレーブ回路からの前記データ転送要求を優先すること
を特徴とする請求項１記載のデータ転送制御回路。
【請求項３】
前記データ転送調停部は、前記現在の転送レートが前記基準の転送レートより高い複数の前記スレーブ回路からの前記データ転送要求が互いに競合するとき、前記差分情報が示す値が小さい前記スレーブ回路からの前記データ転送要求を優先すること
を特徴とする請求項２記載のデータ転送制御回路。
【請求項４】
前記転送レート監視部は、前記差分情報を前記データ転送調停部に通知するとともに、前記各スレーブ回路に対応して予め設定された上限の転送レートである許容転送レートと前記各スレーブ回路の前記現在の転送レートとの差を示す許容情報を前記データ転送調停部に通知し、
前記データ転送調停部は、前記現在の転送レートが前記基準の転送レートより高い複数の前記スレーブ回路からの前記データ転送要求が互いに競合するとき、前記許容情報が示す値が大きい前記スレーブ回路からの前記データ転送要求を優先すること
を特徴とする請求項２記載のデータ転送制御回路。
【請求項５】
前記転送レート監視部で比較する前記スレーブ回路を選択的に切り替える選択部を、さらに備えていることを特徴とする請求項１ないし請求項４のいずれか１項に記載のデータ転送制御回路。
【請求項６】
請求項１ないし請求項５のいずれか１項に記載のデータ転送制御回路と、
前記基準の転送レートを前記データ転送制御回路に設定する制御部と
を備えていることを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送制御回路および半導体装置に関する。
【背景技術】
【０００２】
一般に、携帯電話やデジタルカメラ等の電子機器は、外部装置等のスレーブ回路とアクセスする機能を有している。例えば、電子機器内のメモリに記憶されたデータを外部装置に転送するとき、データは、電子機器内のバスを介して外部装置に転送される。なお、例えば、複数のスレーブ回路がバスに接続される電子機器は、複数のスレーブ回路からのデータ転送要求を調停する調停回路を有している。
【０００３】
例えば、調停回路は、データ転送要求を受け付けた順番に基づいて、あるいは、スレーブ回路に固定して割り当てられた優先順位に基づいて、複数のスレーブ回路からのデータ転送要求を調停する。なお、データのオーバランを低減するために、各外部装置のデータ転送に用いられるバッファの使用状況と各外部装置のインタフェースタイプに応じて設定された閾値（例えば、データ転送に必要なバッファ内のデータ量や空き容量）との比較によってデータ転送要求の優先順位を変える入出力処理システムが提案されている（例えば、特許文献１参照。）。
【０００４】
また、複数のスレーブ回路間のデータ転送を同時に実施可能にし、データ転送効率を向上したバスインターコネクトが提案されている（例えば、特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−１２８０４４号公報
【特許文献２】特開２００９−８０６０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
データ転送要求を受け付けた順番にデータ転送要求を処理する方法では、複数のスレーブ回路からのデータ転送要求が互いに競合したときに、データ転送を後から要求したスレーブ回路に対して、転送レートを保証したデータ転送を実施できない。また、スレーブ回路に固定して割り当てられた優先順位に基づいてデータ転送要求を調停する方法では、複数のスレーブ回路からのデータ転送要求が互いに競合したときに、優先順位が相対的に低いスレーブ回路に対して、転送レートを保証したデータ転送を実施できない。
【課題を解決するための手段】
【０００７】
本発明の一形態では、複数のスレーブ回路からのデータ転送要求に応じて、複数のスレーブ回路間のデータ転送を制御するデータ転送制御回路は、各スレーブ回路に対応して予め設定された基準の転送レートと各スレーブ回路の現在の転送レートとを比較する転送レート監視部と、スレーブ回路からのデータ転送要求が互いに競合するとき、転送レート監視部の比較結果に基づいて、現在の転送レートが基準の転送レートより低いスレーブ回路からのデータ転送要求を優先するデータ転送調停部とを有している。
【発明の効果】
【０００８】
複数のスレーブ回路からのデータ転送要求が互いに競合したときにも、転送レートを保証したデータ転送を実施できる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態における半導体装置の例を示している。
【図２】図１に示したデータ転送制御回路の例を示している。
【図３】データ転送制御回路およびその周辺回路の例を示している。
【図４】図３に示したデータ転送制御回路の詳細の例を示している。
【図５】図３に示したレート監視回路の例を示している。
【図６】図３に示した経路調停回路の例を示している。
【図７】図６に示した調停回路の動作の例を示している。
【図８】図３に示したデータ転送制御回路の動作の例を示している。
【図９】別の実施形態におけるレート監視回路および経路調停回路の例を示している。
【図１０】図９に示した経路調停回路の例を示している。
【図１１】図１０に示した調停回路の動作の例を示している。
【図１２】図９に示したレート監視回路および経路調停回路を有するデータ転送制御回路の動作の例を示している。
【図１３】図９に示したレート監視回路および経路調停回路を有するデータ転送制御回路の動作の別の例を示している。
【図１４】別の実施形態におけるデータ転送制御回路の例を示している。
【図１５】別の実施形態におけるレート監視回路および経路調停回路の例を示している。
【図１６】別の実施形態におけるレート監視回路および経路調停回路の例を示している。
【図１７】図１６に示した経路調停回路の動作の例を示している。
【発明を実施するための形態】
【００１０】
以下、実施形態を図面を用いて説明する。
【００１１】
図１は、一実施形態における半導体装置ＳＥＭの例を示している。半導体装置ＳＥＭは、例えば、外部装置にアクセスする機能を有する電子機器（コンピュータ、携帯電話、デジタルカメラ、車の電子制御部品等）の少なくとも一部を構成する。例えば、半導体装置ＳＥＭは、データ転送制御回路ＤＴＣ、スレーブ回路ＳＬ、バスブリッジＢＢＲＧ、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＤＭＡＣ（Direct Memory Access Controller）、周辺回路Ｉ／ＯおよびバッファメモリＢＵＦを有している。
【００１２】
バスブリッジＢＢＲＧ、ＣＰＵ、ＲＯＭ、ＤＭＡＣ、周辺回路Ｉ／ＯおよびバッファメモリＢＵＦ等のモジュールは、バスＢＵＳにそれぞれ接続されている。データ転送制御回路ＤＴＣは、例えば、バスブリッジＢＢＲＧを介して、バスＢＵＳに接続されている。すなわち、データ転送制御回路ＤＴＣは、バスブリッジＢＢＲＧおよびバスＢＵＳを介して、半導体装置ＳＥＭ内の各モジュールに接続されている。
【００１３】
データ転送制御回路ＤＴＣは、外部装置やメモリ等のスレーブ回路ＳＬ間のデータ転送を制御する。データ転送制御回路ＤＴＣの概要は、図２で説明する。なお、データ転送制御回路ＤＴＣにより制御されるスレーブ回路ＳＬは、後述する図３に示すように、マルチプレクサ等を介して互いに接続されている。例えば、マルチプレクサは、データ転送制御回路ＤＴＣからの経路選択信号に基づいて、データ転送元のスレーブ回路ＳＬおよびデータ転送先のスレーブ回路ＳＬ間を選択的に接続する。あるいは、スレーブ回路ＳＬは、例えば、バスＢＵＳとは別のローカルバスに接続されている。スレーブ回路ＳＬ間の接続にマルチプレクサが使用される構成に限定されないため、図１では、複数のスレーブ回路ＳＬ（ＳＬ１、・・・、ＳＬｎ）間のデータ転送の経路を破線で示している。
【００１４】
ＣＰＵは、半導体装置ＳＥＭ全体の動作を制御する。また、ＣＰＵは、例えば、各スレーブ回路ＳＬの基準の転送レートをデータ転送制御回路ＤＴＣに設定する。ここで、例えば、基準の転送レートは、スレーブ回路ＳＬの現在の転送レートが低いか高いかを判定するための基準であり、スレーブ回路ＳＬの特性等に応じて設定される。ＤＭＡＣは、例えば、バスＢＵＳに接続されたモジュール間のデータ転送を、ＣＰＵの代わりに実施する。なお、半導体装置ＳＥＭの最小構成は、データ転送制御回路ＤＴＣ、スレーブ回路ＳＬおよびＣＰＵである。
【００１５】
図２は、図１に示したデータ転送制御回路ＤＴＣの例を示している。なお、図２では、各スレーブ回路ＳＬに対応する要素および信号には、スレーブ回路ＳＬの符号の末尾の数字と同じ数字を、符号の末尾に付している。また、スレーブ回路ＳＬｎに対応する要素および信号には、符号の末尾に“ｎ”を付している。
【００１６】
データ転送制御回路ＤＴＣは、外部装置やメモリ等のスレーブ回路ＳＬ（ＳＬ１、ＳＬ２、・・・、ＳＬｎ）間のデータ転送を制御する。すなわち、スレーブ回路ＳＬは、データ転送制御回路ＤＴＣにより制御されるモジュールである。データ転送制御回路ＤＴＣは、転送レート監視部１０およびデータ転送調停部２０を有している。
【００１７】
転送レート監視部１０は、データ転送が実施されたことを示すリードライト信号ＲＤＷＲ＿ＣＨ（ＲＤＷＲ＿ＣＨ１、ＲＤＷＲ＿ＣＨ２、・・・、ＲＤＷＲ＿ＣＨｎ）をデータ転送調停部２０から受け、各スレーブ回路ＳＬに対応して予め設定された基準の転送レートと各スレーブ回路ＳＬの現在の転送レートとを比較する。
【００１８】
例えば、転送レート監視部１０は、現在の転送レートが基準の転送レートより高いスレーブ回路ＳＬに対応する優先順位信号ＰＲＩ＿ＣＨ（ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２、・・・、ＰＲＩ＿ＣＨｎ）を低レベルにする。また、転送レート監視部１０は、現在の転送レートが基準の転送レートより低いスレーブ回路ＳＬに対応する優先順位信号ＰＲＩ＿ＣＨを高レベルにする。そして、転送レート監視部１０は、現在の転送レートと基準の転送レートとの比較結果に基づいた優先順位信号ＰＲＩ＿ＣＨを、データ転送調停部２０に出力する。
【００１９】
データ転送調停部２０は、各スレーブ回路ＳＬからのデータ転送要求に応じて、各スレーブ回路ＳＬのデータ転送を制御する。例えば、データ転送調停部２０は、データ転送の要求を示す転送要求信号ＤＲＥＱ＿ＣＨ（ＤＲＥＱ＿ＣＨ１、ＤＲＥＱ＿ＣＨ２、・・・、ＤＲＥＱ＿ＣＨｎ）を複数のスレーブ回路ＳＬから受けたとき、データ転送を要求した複数のスレーブ回路ＳＬのデータ転送の経路が互いに競合するか否かを判定する。
【００２０】
なお、図２では、図１と同様の理由により、複数のスレーブ回路ＳＬ間のデータ転送の経路を破線で示している。例えば、各スレーブ回路ＳＬが共通のローカルバスに接続されている構成（データ転送の経路の一部がローカルバスの場合）では、複数のスレーブ回路ＳＬがデータ転送を要求したとき、複数のスレーブ回路ＳＬで共有されているローカルバスが互いに競合する。また、各スレーブ回路ＳＬの接続先を選択するマルチプレクサが各スレーブ回路ＳＬに対応して設けられている構成（例えば、後述する図３に示す構成）では、マルチプレクサを介して選択的に接続されるデータ転送元のスレーブ回路ＳＬおよびデータ転送先のスレーブ回路ＳＬ間がデータ転送の経路に対応する。この場合、複数のスレーブ回路ＳＬが特定のスレーブ回路ＳＬからデータを読み出すデータ転送を要求したとき、前記特定されたスレーブ回路ＳＬの出力が、データ転送を要求したスレーブ回路ＳＬで互いに競合する。
【００２１】
すなわち、データ転送調停部２０は、複数のスレーブ回路ＳＬから受けた転送要求信号ＤＲＥＱ＿ＣＨ（データ転送要求）が互いに競合するか否かを判定する。例えば、データ転送調停部２０は、複数のスレーブ回路ＳＬから受けた転送要求信号ＤＲＥＱ＿ＣＨにそれぞれ対応するデータ転送の経路が互いに競合しないとき、データ転送を要求しているスレーブ回路ＳＬに、データ転送の許可を示す転送許可信号ＤＡＣＫ＿ＣＨ（ＤＡＣＫ＿ＣＨ１、ＤＡＣＫ＿ＣＨ２、・・・、ＤＡＣＫ＿ＣＨｎ）を出力する。
【００２２】
また、データ転送調停部２０は、複数のデータ転送の経路が互いに競合するとき、転送レート監視部１０から受けた優先順位信号ＰＲＩ＿ＣＨ等に基づいて、データ転送要求の優先順位を判定する。例えば、データ転送調停部２０は、現在の転送レートが基準の転送レートより低いスレーブ回路ＳＬからのデータ転送要求を優先する。すなわち、データ転送調停部２０は、複数のデータ転送の経路が互いに競合するとき、現在の転送レートが基準の転送レートより低いスレーブ回路ＳＬのデータ転送を優先的に許可する。これにより、データ転送制御回路ＤＴＣは、複数のスレーブ回路ＳＬからのデータ転送要求が互いに競合したときにも、転送レートを保証したデータ転送を実施できる。
【００２３】
図３は、データ転送制御回路ＤＴＣおよびその周辺回路の例を示している。なお、符号の末尾の数字の意味は、上述した図２と同じである。図３に示したスレーブ回路ＳＬ１−ＳＬ４およびマルチプレクサＭＵＸ１−ＭＵＸ４は、データ転送制御回路ＤＴＣの周辺回路に含まれる。図３の例では、スレーブ回路ＳＬ１−ＳＬ４は、マルチプレクサＭＵＸ１−ＭＵＸ４を介して互いに接続される。マルチプレクサＭＵＸ１−ＭＵＸ４は、例えば、スレーブ回路ＳＬ１−ＳＬ４にそれぞれ対応して設けられている。例えば、各マルチプレクサＭＵＸは、経路選択信号ＰＳＥＬに基づいて、データ転送元のスレーブ回路ＳＬおよびデータ転送先のスレーブ回路ＳＬ間を選択的に接続する。そして、データ転送制御回路ＤＴＣの制御により、スレーブ回路ＳＬ間でデータが直接転送される。
【００２４】
例えば、マルチプレクサＭＵＸ１の出力は、スレーブ回路ＳＬ１の入力に接続されている。また、マルチプレクサＭＵＸ１の３つの入力は、スレーブ回路ＳＬ２−ＳＬ４のそれぞれの出力に接続されている。例えば、マルチプレクサＭＵＸ１は、スレーブ回路ＳＬ１に接続するスレーブ回路ＳＬを、経路選択信号ＰＳＥＬに基づいて、スレーブ回路ＳＬ２−ＳＬ４から選択する。なお、マルチプレクサＭＵＸ１は、経路選択信号ＰＳＥＬが非選択を示すとき、スレーブ回路ＳＬ１とスレーブ回路ＳＬ２−ＳＬ４とを非接続する。
【００２５】
マルチプレクサＭＵＸ２の出力は、スレーブ回路ＳＬ２の入力に接続され、マルチプレクサＭＵＸ２の３つの入力は、スレーブ回路ＳＬ１、ＳＬ３、ＳＬ４のそれぞれの出力に接続されている。マルチプレクサＭＵＸ３の出力は、スレーブ回路ＳＬ３の入力に接続され、マルチプレクサＭＵＸ３の３つの入力は、スレーブ回路ＳＬ１、ＳＬ２、ＳＬ４のそれぞれの出力に接続されている。マルチプレクサＭＵＸ４の出力は、スレーブ回路ＳＬ４の入力に接続され、マルチプレクサＭＵＸ４の３つの入力は、スレーブ回路ＳＬ１−ＳＬ３のそれぞれの出力に接続されている。
【００２６】
なお、例えば、図３に示したデータ転送制御回路ＤＴＣが搭載される半導体装置の最小構成は、データ転送制御回路ＤＴＣ、マルチプレクサＭＵＸ、スレーブ回路ＳＬおよび図１に示したＣＰＵである。例えば、データ転送制御回路ＤＴＣは、マルチプレクサＭＵＸを制御することにより、スレーブ回路ＳＬ間のデータ転送の経路を確保する。図中の破線（ａ）、（ｂ）、（ｃ）は、データ転送の経路の例を示している。
【００２７】
スレーブ回路ＳＬ１は、例えば、他のスレーブ回路ＳＬからデータを読み出す機能および他のスレーブ回路ＳＬにデータを書き込む機能を有している。スレーブ回路ＳＬ２は、例えば、他のスレーブ回路ＳＬからデータを読み出す機能および他のスレーブ回路ＳＬにデータを書き込む機能を有している。スレーブ回路ＳＬ３、ＳＬ４は、例えば、メモリである。なお、スレーブ回路ＳＬの機能は、この例に限定されない。また、スレーブ回路ＳＬの数は、４つに限定されない。
【００２８】
データ転送制御回路ＤＴＣは、スレーブ回路ＳＬ１−ＳＬ４にそれぞれ対応するレート監視回路ＲＣＮＴ１−ＲＣＮＴ４、スレーブ回路ＳＬ１−ＳＬ４にそれぞれ対応するチャネル制御回路ＣＣＮＴ１−ＣＣＮＴ４、経路調停回路ＡＲＢ、制御信号生成回路ＳＩＧＧＥＮおよびＣＳ信号生成回路ＣＳＧＥＮを有している。なお、チャネル制御回路ＣＣＮＴおよびレート監視回路ＲＣＮＴの数は、４つに限定されない。データ転送制御回路ＤＴＣ内のレート監視回路ＲＣＮＴ等の機能は、図４−図６で説明する。例えば、データ転送制御回路ＤＴＣは、スレーブ回路ＳＬ（ＳＬ１、ＳＬ２、ＳＬ３、ＳＬ４）間のデータ転送を制御する。また、データ転送制御回路ＤＴＣは、経路選択信号ＰＳＥＬを用いて、マルチプレクサＭＵＸを制御する。
【００２９】
例えば、データ転送制御回路ＤＴＣは、複数のマルチプレクサＭＵＸを制御することにより、互いに異なる経路（例えば、破線（ａ）および破線（ｂ）の経路）のデータ転送を同時に実施できる。このように、データ転送制御回路ＤＴＣおよびマルチプレクサＭＵＸは、例えば、互いに異なる経路のデータ転送を同時に実施可能なバスインターコネクトとして機能する。
【００３０】
なお、例えば、破線（ａ）の経路のデータ転送をスレーブ回路ＳＬ１が要求している期間に、破線（ｃ）の経路のデータ転送をスレーブ回路ＳＬ２が要求したとき、スレーブ回路ＳＬ１、ＳＬ２のデータ転送要求は、互いに競合する。この場合、データ転送制御回路ＤＴＣは、データ転送要求の優先順位を判定する。複数のデータ転送要求が互いに競合したときのデータ転送制御回路ＤＴＣの動作は、図７および図８で説明する。
【００３１】
図４は、図３に示したデータ転送制御回路ＤＴＣの詳細の例を示している。なお、図４では、図を見やすくするために、チャネル制御回路ＣＣＮＴ２、ＣＣＮＴ３およびレート監視回路ＲＣＮＴ２、ＲＣＮＴ３の記載を省略している。
【００３２】
チャネル制御回路ＣＣＮＴ１−ＣＣＮＴ４は、例えば、図３に示したスレーブ回路ＳＬ１−ＳＬ４にそれぞれ対応している。例えば、チャネル制御回路ＣＣＮＴ１−ＣＣＮＴ４は、スレーブ回路ＳＬ１−ＳＬ４から転送要求信号ＤＲＥＱ＿ＣＨ１−ＤＲＥＱ＿ＣＨ４をそれぞれ受ける。また、各チャネル制御回路ＣＣＮＴ１−ＣＣＮＴ４は、例えば、各転送許可信号ＤＡＣＫ＿ＣＨ１−ＤＡＣＫ＿ＣＨ４を経路調停回路ＡＲＢおよび各スレーブ回路ＳＬ１−ＳＬ４に出力する。
【００３３】
例えば、チャネル制御回路ＣＣＮＴ１は、データ転送の要求を示す転送要求信号ＤＲＥＱ＿ＣＨ１を受けたとき、転送要求信号ＤＲＥＱ＿ＣＨ１により要求されたデータ転送の経路を示す経路選択信号ＰＳＥＬ＿ＣＨ１を、経路調停回路ＡＲＢに出力する。なお、チャネル制御回路ＣＣＮＴ１は、例えば、転送要求信号ＤＲＥＱ＿ＣＨ１がデータ転送の要求を示していない期間では、データ転送経路の非選択を示す経路選択信号ＰＳＥＬ＿ＣＨ１を、経路調停回路ＡＲＢに出力する。
【００３４】
また、例えば、チャネル制御回路ＣＣＮＴ１は、データ転送を許可するか否かを示す転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１を、経路調停回路ＡＲＢから受ける。そして、チャネル制御回路ＣＣＮＴ１は、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１に応じた転送許可信号ＤＡＣＫ＿ＣＨ１を経路調停回路ＡＲＢおよびスレーブ回路ＳＬ１に出力する。
【００３５】
さらに、チャネル制御回路ＣＣＮＴ１は、例えば、転送要求信号ＤＲＥＱ＿ＣＨ１および転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１に基づいて、リードアドレスＲＡＤ＿ＣＨ１、ライトアドレスＷＡＤ＿ＣＨ１およびリードライト信号ＲＤＷＲ＿ＣＨ１を、制御信号生成回路ＳＩＧＧＥＮに出力する。例えば、リードアドレスＲＡＤ＿ＣＨは、スレーブ回路ＳＬから読み出されるデータの位置を示すアドレス信号であり、ライトアドレスＷＡＤ＿ＣＨは、スレーブ回路ＳＬに書き込むデータの位置を示すアドレス信号である。
【００３６】
なお、チャネル制御回路ＣＣＮＴ１は、リードライト信号ＲＤＷＲ＿ＣＨ１を、レート監視回路ＲＣＮＴ１にも出力する。例えば、チャネル制御回路ＣＣＮＴ１は、データ転送が実施されるたびに、リードライト信号ＲＤＷＲ＿ＣＨ１を、レート監視回路ＲＣＮＴ１および制御信号生成回路ＳＩＧＧＥＮに出力する。チャネル制御回路ＣＣＮＴ２、ＣＣＮＴ３、ＣＣＮＴ４の動作は、信号に対応するスレーブ回路ＳＬが異なることを除いて、チャネル制御回路ＣＣＮＴ１と同じである。
【００３７】
レート監視回路ＲＣＮＴ１−ＲＣＮＴ４は、例えば、図３に示したスレーブ回路ＳＬ１−ＳＬ４にそれぞれ対応している。各レート監視回路ＲＣＮＴは、例えば、各スレーブ回路ＳＬの現在の転送レートを監視する。例えば、レート監視回路ＲＣＮＴ１は、スレーブ回路ＳＬ１の現在の転送レートを監視する。そして、レート監視回路ＲＣＮＴ１は、例えば、スレーブ回路ＳＬ１の現在の転送レートがスレーブ回路ＳＬ１の基準の転送レートより低いとき、高レベルの優先順位信号ＰＲＩ＿ＣＨ１を経路調停回路ＡＲＢに出力する。また、例えば、レート監視回路ＲＣＮＴ１は、スレーブ回路ＳＬ１の現在の転送レートがスレーブ回路ＳＬ１の基準の転送レートより高いとき、低レベルの優先順位信号ＰＲＩ＿ＣＨ１を経路調停回路ＡＲＢに出力する。このように、レート監視回路ＲＣＮＴは、対応するスレーブ回路ＳＬの基準の転送レートと現在の転送レートとを比較する転送レート監視部に含まれる。
【００３８】
さらに、レート監視回路ＲＣＮＴ１は、例えば、スレーブ回路ＳＬ１に対応して予め設定された上限の転送レートである許容転送レートとスレーブ回路ＳＬ１の現在の転送レートとが互いに同じとき、高レベルのエンプティ信号ＥＭＰ＿ＣＨ１を経路調停回路ＡＲＢに出力する。ここで、例えば、各スレーブ回路ＳＬの許容転送レート（上限の転送レート）は、各スレーブ回路ＳＬの現在の転送レートが各スレーブ回路ＳＬのデータ転送の処理能力（処理速度）を超えないように設定される。
【００３９】
したがって、エンプティ信号ＥＭＰ＿ＣＨは、例えば、データ転送要求を許可してもよい状態か否かを示している。例えば、低レベルのエンプティ信号ＥＭＰ＿ＣＨは、データ転送要求を許可してもよいことを示し、高レベルのエンプティ信号ＥＭＰ＿ＣＨは、データ転送要求を許可しないようにすることを示している。なお、レート監視回路ＲＣＮＴ２、ＲＣＮＴ３、ＲＣＮＴ４の動作は、信号に対応するスレーブ回路ＳＬが異なることを除いて、レート監視回路ＲＣＮＴ１と同じである。
【００４０】
経路調停回路ＡＲＢは、例えば、経路選択信号ＰＳＥＬ＿ＣＨ、転送許可信号ＤＡＣＫ＿ＣＨ、優先順位信号ＰＲＩ＿ＣＨおよびエンプティ信号ＥＭＰ＿ＣＨに基づいて、経路選択信号ＰＳＥＬを生成する。例えば、経路調停回路ＡＲＢは、図３に示した各マルチプレクサＭＵＸを２ビットの情報で制御する場合、４つのマルチプレクサＭＵＸを制御するために、８ビットの経路選択信号ＰＳＥＬ［７：０］を生成する。そして、例えば、経路調停回路ＡＲＢは、生成した経路選択信号ＰＳＥＬ［７：０］を、マルチプレクサＭＵＸ、制御信号生成回路ＳＩＧＧＥＮおよびＣＳ信号生成回路ＣＳＧＥＮに出力する。
【００４１】
また、例えば、経路調停回路ＡＲＢは、複数のデータ転送要求が互いに競合したとき、経路選択信号ＰＳＥＬ＿ＣＨ、優先順位信号ＰＲＩ＿ＣＨに基づいて、データ転送要求の優先順位を判定する。そして、経路調停回路ＡＲＢは、例えば、許可したデータ転送の経路を示す経路選択信号ＰＳＥＬを、マルチプレクサＭＵＸに出力する。このように、例えば、チャネル制御回路ＣＣＮＴおよび経路調停回路ＡＲＢは、現在の転送レートが基準の転送レートより低いスレーブ回路ＳＬからのデータ転送要求を優先するデータ転送調停部に含まれる。
【００４２】
制御信号生成回路ＳＩＧＧＥＮは、例えば、経路選択信号ＰＳＥＬ［７：０］、リードアドレスＲＡＤ＿ＣＨ、ライトアドレスＷＡＤ＿ＣＨおよびリードライト信号ＲＤＷＲ＿ＣＨに基づいて、リード制御信号ＲＤ、リードアドレスＲＡＤ［３１：０］、ライト制御信号ＷＲおよびライトアドレスＷＡＤ［３１：０］を生成する。そして、例えば、制御信号生成回路ＳＩＧＧＥＮは、生成したリード制御信号ＲＤ、リードアドレスＲＡＤ［３１：０］、ライト制御信号ＷＲおよびライトアドレスＷＡＤ［３１：０］を、生成した信号に対応するスレーブ回路ＳＬに出力する。
【００４３】
ここで、例えば、リード制御信号ＲＤは、スレーブ回路ＳＬからデータを読み出すための制御信号であり、リードアドレスＲＡＤは、スレーブ回路ＳＬから読み出されるデータの位置を示すアドレス信号である。また、例えば、ライト制御信号ＷＲは、スレーブ回路ＳＬにデータを書き込むための制御信号であり、ライトアドレスＷＡＤは、スレーブ回路ＳＬに書き込むデータの位置を示すアドレス信号である。なお、経路選択信号ＰＳＥＬ、リードアドレスＲＡＤおよびライトアドレスＷＡＤのビット数は、この例に限定されない。
【００４４】
ＣＳ信号生成回路ＣＳＧＥＮは、例えば、経路選択信号ＰＳＥＬ［７：０］に基づいてチップセレクト信号ＣＳ１−ＣＳ４を生成し、生成したチップセレクト信号ＣＳ１−ＣＳ４をスレーブ回路ＳＬ１−ＳＬ４にそれぞれ出力する。例えば、ＣＳ信号生成回路ＣＳＧＥＮは、スレーブ回路ＳＬ１の入力とスレーブ回路ＳＬ４の出力とを接続すること（上述した図３の破線（ａ）の経路）を示す経路選択信号ＰＳＥＬ［７：０］を受けたとき、チップセレクト信号ＣＳ１、ＣＳ４を活性化する。
【００４５】
また、例えば、ＣＳ信号生成回路ＣＳＧＥＮは、スレーブ回路ＳＬ２の出力とスレーブ回路ＳＬ３の入力とを接続すること（図３の破線（ｂ）の経路）を示す経路選択信号ＰＳＥＬ［７：０］を受けたとき、チップセレクト信号ＣＳ２、ＣＳ３を活性化する。さらに、例えば、ＣＳ信号生成回路ＣＳＧＥＮは、上述した図３の破線（ａ）および破線（ｂ）の経路を示す経路選択信号ＰＳＥＬ［７：０］を受けたとき、チップセレクト信号ＣＳ１、ＣＳ２、ＣＳ３、ＣＳ４を活性化する。
【００４６】
図５は、図３に示したレート監視回路ＲＣＮＴの例を示している。なお、図５では、レート監視回路ＲＣＮＴ１の構成を詳細に示している。レート監視回路ＲＣＮＴ２、ＲＣＮＴ３、ＲＣＮＴ４の構成は、レート監視回路ＲＣＮＴ１と同じである。このため、レート監視回路ＲＣＮＴ１について説明する。
【００４７】
レート監視回路ＲＣＮＴ１は、転送レートレジスタＲＲＥＧ、レートカウンタＲＣＴ、トークンカウンタＴＣＴ、閾値レジスタＴＲＥＧおよび比較器ＣＯＭＰを有している。転送レートレジスタＲＲＥＧは、１回の転送あたりの時間を示す基準値ＴＲが記憶されるレジスタである。例えば、レート監視回路ＲＣＮＴ１の転送レートレジスタＲＲＥＧには、スレーブ回路ＳＬ１の基準の転送レートを示す情報（基準値ＴＲ）が記憶される。
【００４８】
例えば、スレーブ回路ＳＬ１の基準の転送レートが、８クロックに１回のデータ転送の場合、レート監視回路ＲＣＮＴ１の転送レートレジスタＲＲＥＧの基準値ＴＲは、基準の転送レートを示す情報として、“８”に設定される。ここで、例えば、クロックは、データ転送制御回路ＤＴＣの動作クロックである。なお、例えば、スレーブ回路ＳＬ１の基準の転送レートを示す情報（基準値ＴＲ）は、スレーブ回路ＳＬ１を使用するアプリケーションが実施される前に、上述した図１に示したＣＰＵにより、転送レートレジスタＲＲＥＧに設定される。
【００４９】
レートカウンタＲＣＴは、例えば、転送レートレジスタＲＲＥＧの基準値ＴＲを初期値として動作するダウンカウンタであり、データ転送制御回路ＤＴＣの動作クロックに同期して動作する。例えば、レートカウンタＲＣＴは、データ転送制御回路ＤＴＣの起動に同期して、転送レートレジスタＲＲＥＧの基準値ＴＲを初期値としてロードする。あるいは、レートカウンタＲＣＴは、例えば、対応するスレーブ回路ＳＬ１の起動に同期して、転送レートレジスタＲＲＥＧの基準値ＴＲを初期値としてロードする。
【００５０】
そして、例えば、レートカウンタＲＣＴは、カウンタ値が“０”になるたびに、高レベルのタイムアウト信号ＴＯをトークンカウンタＴＣＴに出力する。さらに、レートカウンタＲＣＴは、カウンタ値が“０”になるたびに、転送レートレジスタＲＲＥＧの基準値ＴＲを初期値としてロードする。すなわち、レートカウンタＲＣＴは、基準の転送レートに同期するタイムアウト信号ＴＯ（高レベルの信号）をトークンカウンタＴＣＴに出力する。
【００５１】
閾値レジスタＴＲＥＧは、閾値ＴＨが記憶されるレジスタである。閾値ＴＨは、例えば、スレーブ回路ＳＬ１の現在の転送レートがスレーブ回路ＳＬ１の許容転送レートに達したか否かを判定するための閾値であり、スレーブ回路ＳＬ１の許容転送レートを示す情報に対応する。例えば、レート監視回路ＲＣＮＴ１の閾値レジスタＴＲＥＧには、スレーブ回路ＳＬ１の許容転送レートを示す情報（閾値ＴＨ）が記憶される。なお、例えば、スレーブ回路ＳＬ１の閾値ＴＨは、スレーブ回路ＳＬ１を使用するアプリケーションが実施される前に、上述した図１に示したＣＰＵにより、閾値レジスタＴＲＥＧに設定される。
【００５２】
トークンカウンタＴＣＴは、例えば、閾値レジスタＴＲＥＧの閾値ＴＨを初期値として動作するアップダウンカウンタである。例えば、トークンカウンタＴＣＴは、データ転送制御回路ＤＴＣの起動に同期して、閾値レジスタＴＲＥＧの閾値ＴＨを初期値としてロードする。あるいは、レートカウンタＲＣＴは、例えば、対応するスレーブ回路ＳＬ１の起動に同期して、閾値レジスタＴＲＥＧの閾値ＴＨを初期値としてロードする。
【００５３】
そして、例えば、トークンカウンタＴＣＴは、タイムアウト信号ＴＯが高レベルのときに、カウンタ値を“１”増加させ、リードライト信号ＲＤＷＲ＿ＣＨが高レベルのとき（データ転送が実施されるとき）、カウンタ値を“１”減少させる。また、トークンカウンタＴＣＴは、カウンタ値を、現在の転送レートを示す信号ＴＯＫＥＮとして比較器ＣＯＭＰに出力する。
【００５４】
比較器ＣＯＭＰは、例えば、信号ＴＯＫＥＮの値が“０”のとき、高レベルのエンプティ信号ＥＭＰ＿ＣＨを経路調停回路ＡＲＢに出力する。さらに、比較器ＣＯＭＰは、例えば、信号ＴＯＫＥＮの値と閾値レジスタＴＲＥＧの閾値ＴＨとを比較する。例えば、比較器ＣＯＭＰは、信号ＴＯＫＥＮの値が閾値ＴＨ（トークンカウンタＴＣＴの初期値）より小さいとき、低レベルの優先順位信号ＰＲＩ＿ＣＨ１を経路調停回路ＡＲＢに出力する。すなわち、比較器ＣＯＭＰは、対応するスレーブ回路ＳＬ１の現在の転送レートがスレーブ回路ＳＬ１の基準の転送レートより高いとき、低レベルの優先順位信号ＰＲＩ＿ＣＨ１を経路調停回路ＡＲＢに出力する。
【００５５】
また、例えば、比較器ＣＯＭＰは、信号ＴＯＫＥＮの値が閾値ＴＨ以上のとき、高レベルの優先順位信号ＰＲＩ＿ＣＨ１を経路調停回路ＡＲＢに出力する。すなわち、比較器ＣＯＭＰは、対応するスレーブ回路ＳＬ１の現在の転送レートがスレーブ回路ＳＬ１の基準の転送レートより低いとき、高レベルの優先順位信号ＰＲＩ＿ＣＨ１を経路調停回路ＡＲＢに出力する。なお、高レベルの優先順位信号ＰＲＩ＿ＣＨは、低レベルの優先順位信号ＰＲＩ＿ＣＨより優先順位が高いことを示している。
【００５６】
これにより、経路調停回路ＡＲＢは、複数のデータ転送の経路が互いに競合するとき、優先順位信号ＰＲＩ＿ＣＨに基づいて、現在の転送レートが基準の転送レートより低いスレーブ回路ＳＬのデータ転送を優先的に許可できる。
【００５７】
ここで、比較器ＣＯＭＰは、信号ＴＯＫＥＮの値と閾値ＴＨとが互いに同じ場合、高レベルの優先順位信号ＰＲＩ＿ＣＨを経路調停回路ＡＲＢに出力するように設定されてもよいし、低レベルの優先順位信号ＰＲＩ＿ＣＨを経路調停回路ＡＲＢに出力するように設定されてもよい。例えば、比較器ＣＯＭＰは、信号ＴＯＫＥＮの値と閾値ＴＨとが互いに同じとき、高レベルの優先順位信号ＰＲＩ＿ＣＨの代わりに、低レベルの優先順位信号ＰＲＩ＿ＣＨを経路調停回路ＡＲＢに出力してもよい。
【００５８】
図６は、図３に示した経路調停回路ＡＲＢの例を示している。経路調停回路ＡＲＢは、アドレス比較器ＡＣＯＭＰ、調停回路ＡＲＢＣＩおよび出力制御回路ＯＵＴＣを有している。アドレス比較器ＡＣＯＭＰは、経路選択信号ＰＳＥＬ＿ＣＨ１、ＰＳＥＬ＿ＣＨ２、ＰＳＥＬ＿ＣＨ３、ＰＳＥＬ＿ＣＨ４に基づいて経路選択信号ＰＳＥＬを生成し、生成した経路選択信号ＰＳＥＬをマルチプレクサＭＵＸに出力する。例えば、アドレス比較器ＡＣＯＭＰは、経路選択信号ＰＳＥＬ＿ＣＨ１、ＰＳＥＬ＿ＣＨ２、ＰＳＥＬ＿ＣＨ３、ＰＳＥＬ＿ＣＨ４が示すデータ転送経路を、経路選択信号ＰＳＥＬに反映させる。
【００５９】
また、例えば、アドレス比較器ＡＣＯＭＰは、データ転送を要求しているスレーブ回路ＳＬを経路選択信号ＰＳＥＬ＿ＣＨ１、ＰＳＥＬ＿ＣＨ２、ＰＳＥＬ＿ＣＨ３、ＰＳＥＬ＿ＣＨ４に基づいて検出する。例えば、アドレス比較器ＡＣＯＭＰは、データ転送経路の非選択以外を示している経路選択信号ＰＳＥＬ＿ＣＨに対応するスレーブ回路ＳＬを、データ転送を要求しているスレーブ回路ＳＬとして検出する。そして、アドレス比較器ＡＣＯＭＰは、例えば、データ転送を要求しているスレーブ回路ＳＬを調停回路ＡＲＢＣＩに通知する。
【００６０】
さらに、アドレス比較器ＡＣＯＭＰは、例えば、経路選択信号ＰＳＥＬ＿ＣＨ１、ＰＳＥＬ＿ＣＨ２、ＰＳＥＬ＿ＣＨ３、ＰＳＥＬ＿ＣＨ４が示すデータ転送経路が互いに競合しているか否かを検出する。そして、アドレス比較器ＡＣＯＭＰは、複数のデータ転送要求によるデータ転送経路が互いに競合していることを検出したとき、データ転送要求が互いに競合しているスレーブ回路ＳＬを、調停回路ＡＲＢＣＩに通知する。例えば、アドレス比較器ＡＣＯＭＰは、上述した図３の破線（ａ）および破線（ｃ）の経路をそれぞれ示す経路選択信号ＰＳＥＬ＿ＣＨ１、ＰＳＥＬ＿ＣＨ２を受けたとき、スレーブ回路ＳＬ１、ＳＬ２のデータ転送要求が互いに競合していることを、調停回路ＡＲＢＣＩに通知する。
【００６１】
この場合、例えば、経路選択信号ＰＳＥＬ＿ＣＨ１は、スレーブ回路ＳＬ１の入力とスレーブ回路ＳＬ４の出力との接続を示し、経路選択信号ＰＳＥＬ＿ＣＨ２は、スレーブ回路ＳＬ２の入力とスレーブ回路ＳＬ４の出力との接続を示している。なお、経路選択信号ＰＳＥＬ＿ＣＨ３、ＰＳＥＬ＿ＣＨ４は、スレーブ回路ＳＬ３、ＳＬ４がデータ転送を要求しないため、データ転送経路の非選択を示している。したがって、例えば、アドレス比較器ＡＣＯＭＰは、スレーブ回路ＳＬ１のデータ転送とスレーブ回路ＳＬ２のデータ転送との両方で、スレーブ回路ＳＬ４の出力が使用されることを検出する。そして、アドレス比較器ＡＣＯＭＰは、データ転送要求が互いに競合しているスレーブ回路ＳＬ１、ＳＬ２を、調停回路ＡＲＢＣＩに通知する。
【００６２】
調停回路ＡＲＢＣＩは、例えば、転送許可信号ＤＡＣＫ＿ＣＨ、優先順位信号ＰＲＩ＿ＣＨおよびアドレス比較器ＡＣＯＭＰからの情報に基づいて、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨを生成する。そして、調停回路ＡＲＢＣＩは、生成した転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨを出力制御回路ＯＵＴＣに出力する。例えば、調停回路ＡＲＢＣＩは、複数のデータ転送要求が互いに競合していない期間では、データ転送を要求しているスレーブ回路ＳＬに対応する転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨを、高レベルにする。なお、例えば、高レベルの転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨは、データ転送を許可することを示し、低レベルの転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨは、データ転送を許可しないことを示している。
【００６３】
また、例えば、調停回路ＡＲＢＣＩは、アドレス比較器ＡＣＯＭＰからの情報がスレーブ回路ＳＬ１、ＳＬ２のデータ転送要求が互いに競合していることを示しているとき、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２に基づいて、データ転送要求の優先順位を判定する。複数のデータ転送要求が互いに競合したときの調停回路ＡＲＢＣＩの動作は、図７で説明する。
【００６４】
出力制御回路ＯＵＴＣは、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨおよびエンプティ信号ＥＭＰ＿ＣＨに基づいて、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨをチャネル制御回路ＣＣＮＴに出力する。例えば、出力制御回路ＯＵＴＣは、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨに対応するエンプティ信号ＥＭＰ＿ＣＨが低レベルのとき、調停回路ＡＲＢＣＩから受けた転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨを、チャネル制御回路ＣＣＮＴに出力する。また、例えば、出力制御回路ＯＵＴＣは、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨに対応するエンプティ信号ＥＭＰ＿ＣＨが高レベルのとき、高レベルのエンプティ信号ＥＭＰ＿ＣＨに対応する転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨを低レベルにする。そして、出力制御回路ＯＵＴＣは、高レベルのエンプティ信号ＥＭＰ＿ＣＨを出力したレート監視回路ＲＣＮＴのチャネル制御回路ＣＣＮＴに、低レベルの転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨを出力する。
【００６５】
なお、経路調停回路ＡＲＢの構成は、この例に限定されない。経路調停回路ＡＲＢは、複数のデータ転送要求が互いに競合したときに、優先順位信号ＰＲＩ＿ＣＨに基づいて、データ転送要求の優先順位を判定できる構成であればよい。
【００６６】
図７は、図６に示した調停回路ＡＲＢＣＩの動作の例を示している。なお、図７は、スレーブ回路ＳＬ１のデータ転送要求とスレーブ回路ＳＬ２のデータ転送要求とが競合したときの調停回路ＡＲＢＣＩの動作の例を示している。
【００６７】
例えば、調停回路ＡＲＢＣＩは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２がそれぞれ高レベル（Ｈ）および低レベル（Ｌ）のとき、スレーブ回路ＳＬ１からのデータ転送要求を優先する。この場合、例えば、調停回路ＡＲＢＣＩは、スレーブ回路ＳＬ１、ＳＬ２のデータ転送要求が互いに競合したときに、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２をそれぞれ高レベル（Ｈ）および低レベル（Ｌ）にする。
【００６８】
また、例えば、調停回路ＡＲＢＣＩは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２がそれぞれ低レベル（Ｌ）および高レベル（Ｈ）のとき、スレーブ回路ＳＬ２からのデータ転送要求を優先する。この場合、例えば、調停回路ＡＲＢＣＩは、スレーブ回路ＳＬ１、ＳＬ２のデータ転送要求が互いに競合したときに、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２をそれぞれ低レベル（Ｌ）および高レベル（Ｈ）にする。このように、調停回路ＡＲＢＣＩは、データ転送を優先するスレーブ回路ＳＬを、スレーブ回路ＳＬの現在の転送レートに応じて選択する。これにより、この実施形態では、現在の転送レートが基準の転送レートより低いスレーブ回路ＳＬの転送レートがさらに低くなることを低減できる。
【００６９】
なお、調停回路ＡＲＢＣＩは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が高レベル（Ｈ）のとき、例えば、予め設定された優先順位に基づいて、スレーブ回路ＳＬ１、ＳＬ２からのデータ転送要求を調停する。また、調停回路ＡＲＢＣＩは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が低レベル（Ｌ）のとき、例えば、予め設定された優先順位に基づいて、スレーブ回路ＳＬ１、ＳＬ２からのデータ転送要求を調停する。
【００７０】
すなわち、調停回路ＡＲＢＣＩは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２が互いに同じレベルのとき、例えば、予め設定された優先順位に基づいて、スレーブ回路ＳＬ１、ＳＬ２からのデータ転送要求を調停する。ここで、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２が互いに同じときに参照される優先順位は、固定されていてもよいし、ラウンドロビン方式により順次変更されてもよい。あるいは、調停回路ＡＲＢＣＩは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２が互いに同じレベルのとき、例えば、先に受け付けたデータ転送要求を優先してもよい。
【００７１】
図８は、図３に示したデータ転送制御回路ＤＴＣの動作の例を示している。なお、図８は、スレーブ回路ＳＬ１のデータ転送要求に対応するデータ転送経路と、スレーブ回路ＳＬ２のデータ転送要求に対応するデータ転送経路とが競合する場合のデータ転送制御回路ＤＴＣの動作の例を示している。また、図８に示した動作では、スレーブ回路ＳＬ１、ＳＬ２以外のスレーブ回路ＳＬは、データ転送を要求していない。
【００７２】
例えば、クロックＣＬＫは、データ転送制御回路ＤＴＣの動作クロックである。基準値ＴＲ＿ＣＨ１は、レート監視回路ＲＣＮＴ１の転送レートレジスタＲＲＥＧに設定された基準値ＴＲであり、例えば、“８”に設定されている。閾値ＴＨ＿ＣＨ１は、レート監視回路ＲＣＮＴ１の閾値レジスタＴＲＥＧに設定された閾値ＴＨであり、例えば、“７”に設定されている。なお、信号ＴＯＫＥＮ＿ＣＨ１は、スレーブ回路ＳＬ１の現在の転送レートを示す信号ＴＯＫＥＮである。例えば、信号ＴＯＫＥＮ＿ＣＨ１の値が閾値ＴＨ＿ＣＨ１より小さいとき（信号ＴＯＫＥＮ＿ＣＨ１の値が“７”より小さいとき）は、スレーブ回路ＳＬ１の現在の転送レートがスレーブ回路ＳＬ１の基準の転送レートより高いことを示している。タイムアウト信号ＴＯ＿ＣＨ１は、例えば、スレーブ回路ＳＬ１の基準の転送レートに同期して、レート監視回路ＲＣＮＴ１のレートカウンタＲＣＴからトークンカウンタＴＣＴに出力されるタイムアウト信号ＴＯである。
【００７３】
また、基準値ＴＲ＿ＣＨ２は、レート監視回路ＲＣＮＴ２の転送レートレジスタＲＲＥＧに設定された基準値ＴＲであり、例えば、“４”に設定されている。閾値ＴＨ＿ＣＨ２は、レート監視回路ＲＣＮＴ２の閾値レジスタＴＲＥＧに設定された閾値ＴＨであり、例えば、“１５”に設定されている。なお、信号ＴＯＫＥＮ＿ＣＨ２は、スレーブ回路ＳＬ２の現在の転送レートを示す信号ＴＯＫＥＮである。例えば、信号ＴＯＫＥＮ＿ＣＨ２の値が閾値ＴＨ＿ＣＨ２より小さいとき（信号ＴＯＫＥＮ＿ＣＨ２の値が“１５”より小さいとき）は、スレーブ回路ＳＬ２の現在の転送レートがスレーブ回路ＳＬ２の基準の転送レートより高いことを示している。タイムアウト信号ＴＯ＿ＣＨ２は、例えば、スレーブ回路ＳＬ２の基準の転送レートに同期して、レート監視回路ＲＣＮＴ２のレートカウンタＲＣＴからトークンカウンタＴＣＴに出力されるタイムアウト信号ＴＯである。
【００７４】
期間Ｔ１では、スレーブ回路ＳＬ１のみがデータ転送を要求している。このため、経路調停回路ＡＲＢは、チャネル制御回路ＣＣＮＴ１が高レベルの転送要求信号ＤＲＥＱ＿ＣＨ１を受けたことに応答して、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１を高レベルにする（図８（ａ、ｂ））。これにより、高レベルの転送許可信号ＤＡＣＫ＿ＣＨ１がスレーブ回路ＳＬ１に出力される。なお、図８では、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨと同じように変化する転送許可信号ＤＡＣＫ＿ＣＨの記載を省略している。
【００７５】
高レベルの転送許可信号ＤＡＣＫ＿ＣＨ１がスレーブ回路ＳＬ１に出力されることにより、スレーブ回路ＳＬ１のデータ転送が実行される。そして、チャネル制御回路ＣＣＮＴ１は、スレーブ回路ＳＬ１のデータ転送が実行されるたびに、リードライト信号ＲＤＷＲ＿ＣＨ１を、制御信号生成回路ＳＩＧＧＥＮおよびレート監視回路ＲＣＮＴ１のトークンカウンタＴＣＴに出力する（図８（ｃ））。
【００７６】
例えば、レート監視回路ＲＣＮＴ１のトークンカウンタＴＣＴは、リードライト信号ＲＤＷＲ＿ＣＨ１を受けるたびに、信号ＴＯＫＥＮ＿ＣＨ１の値を“１”減少させ、タイムアウト信号ＴＯ＿ＣＨ１を受けるたびに、信号ＴＯＫＥＮ＿ＣＨ１の値を“１”増加させる。例えば、期間Ｔ１では、リードライト信号ＲＤＷＲ＿ＣＨ１の出力回数がタイムアウト信号ＴＯの出力回数より多いため、期間Ｔ１の最後の信号ＴＯＫＥＮ＿ＣＨ１の値は、期間Ｔ１の最初の信号ＴＯＫＥＮ＿ＣＨ１の値より減少する。
【００７７】
期間Ｔ１の最後では、信号ＴＯＫＥＮ＿ＣＨ１の値が閾値ＴＨ＿ＣＨ１より小さいため、低レベルの優先順位信号ＰＲＩ＿ＣＨ１がレート監視回路ＲＣＮＴ１から経路調停回路ＡＲＢに出力される（図８（ｄ））。なお、期間Ｔ１では、スレーブ回路ＳＬ１のみがデータ転送を要求しているため、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１は、優先順位信号ＰＲＩ＿ＣＨ１のレベルに拘わらず、高レベルに維持される。
【００７８】
また、期間Ｔ１では、スレーブ回路ＳＬ２のデータ転送が実行されないため、信号ＴＯＫＥＮ＿ＣＨ２の値は、タイムアウト信号ＴＯ＿ＣＨ２を受けるたびに、増加する。例えば、期間Ｔ１では、信号ＴＯＫＥＮ＿ＣＨ２の値は、“５”から“１４”に増加する。
【００７９】
期間Ｔ２では、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２がそれぞれ低レベルおよび高レベルであるため、スレーブ回路ＳＬ２からのデータ転送要求が優先される。例えば、期間Ｔ２では、高レベルの転送要求信号ＤＲＥＱ＿ＣＨ２がスレーブ回路ＳＬ２からデータ転送制御回路ＤＴＣに出力される（図８（ｅ））。なお、スレーブ回路ＳＬ１は、高レベルの転送要求信号ＤＲＥＱ＿ＣＨ１を、データ転送制御回路ＤＴＣに出力し続けている。スレーブ回路ＳＬ１からのデータ転送要求とスレーブ回路ＳＬ２からのデータ転送要求とが競合するため、経路調停回路ＡＲＢは、スレーブ回路ＳＬ１、ＳＬ２からのデータ転送要求を調停する。
【００８０】
ここで、信号ＴＯＫＥＮ＿ＣＨ２の値は、期間Ｔ２の最初のタイムアウト信号ＴＯ＿ＣＨ２により、“１４”から“１５”に増加する（図８（ｆ））。信号ＴＯＫＥＮ＿ＣＨ２の値が閾値ＴＨ＿ＣＨ２以上のため、高レベルの優先順位信号ＰＲＩ＿ＣＨ２がレート監視回路ＲＣＮＴ２から経路調停回路ＡＲＢに出力される（図８（ｇ））。なお、期間Ｔ２では、信号ＴＯＫＥＮ＿ＣＨ１の値が閾値ＴＨ＿ＣＨ１より小さいため、優先順位信号ＰＲＩ＿ＣＨ１は、低レベルに維持される。
【００８１】
経路調停回路ＡＲＢは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２がそれぞれ低レベルおよび高レベルであるため、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２をそれぞれ低レベルおよび高レベルにする（図８（ｈ、ｉ））。これにより、低レベルの転送許可信号ＤＡＣＫ＿ＣＨ１および高レベルの転送許可信号ＤＡＣＫ＿ＣＨ２がスレーブ回路ＳＬ１、ＳＬ２にそれぞれ出力される。そして、スレーブ回路ＳＬ２のデータ転送が実行される。なお、スレーブ回路ＳＬ１は、転送許可信号ＤＡＣＫ＿ＣＨ１が低レベルであるため、データ転送を実行しない。このように、期間Ｔ２では、現在の転送レートが基準の転送レートより低いスレーブ回路ＳＬ２のデータ転送が優先的に実行される。
【００８２】
また、チャネル制御回路ＣＣＮＴ２は、スレーブ回路ＳＬ２のデータ転送が実行されるたびに、リードライト信号ＲＤＷＲ＿ＣＨ２を、制御信号生成回路ＳＩＧＧＥＮおよびレート監視回路ＲＣＮＴ２のトークンカウンタＴＣＴに出力する（図８（ｊ））。レート監視回路ＲＣＮＴ２のトークンカウンタＴＣＴは、タイムアウト信号ＴＯ＿ＣＨ２およびリードライト信号ＲＤＷＲ＿ＣＨ２に応じて、信号ＴＯＫＥＮ＿ＣＨ２の値を増減させる。例えば、期間Ｔ２の最後の信号ＴＯＫＥＮ＿ＣＨ２の値は、“１５”である。なお、期間Ｔ２では、スレーブ回路ＳＬ１のデータ転送が実行されないため、信号ＴＯＫＥＮ＿ＣＨ１の値は、タイムアウト信号ＴＯ＿ＣＨ１を受けるたびに、増加する。
【００８３】
期間Ｔ３では、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が低レベルであるため、予め設定された優先順位が高いスレーブ回路ＳＬからのデータ転送要求が優先される。なお、期間Ｔ３では、スレーブ回路ＳＬ２の優先順位がスレーブ回路ＳＬ１の優先順位より高く設定されている場合の例を示している。信号ＴＯＫＥＮ＿ＣＨ２の値は、期間Ｔ３の最初のリードライト信号ＲＤＷＲ＿ＣＨ２により、“１５”から“１４”に減少する（図８（ｋ））。信号ＴＯＫＥＮ＿ＣＨ２の値が閾値ＴＨ＿ＣＨ２より小さいため、低レベルの優先順位信号ＰＲＩ＿ＣＨ２がレート監視回路ＲＣＮＴ２から経路調停回路ＡＲＢに出力される（図８（ｌ））。
【００８４】
経路調停回路ＡＲＢは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が低レベルであるため、予め設定された優先順位が高いスレーブ回路ＳＬ２からのデータ転送要求を優先する。したがって、期間Ｔ３では、経路調停回路ＡＲＢは、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２をそれぞれ低レベルおよび高レベルに維持する（図８（ｍ、ｎ））。このため、スレーブ回路ＳＬ２のデータ転送が継続される。なお、信号ＴＯＫＥＮ＿ＣＨ１の値は、スレーブ回路ＳＬ１のデータ転送が実行されないため、タイムアウト信号ＴＯ＿ＣＨ１を受けるたびに、増加する。
【００８５】
期間Ｔ４では、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２がそれぞれ高レベルおよび低レベルであるため、スレーブ回路ＳＬ１からのデータ転送要求が優先される。例えば、信号ＴＯＫＥＮ＿ＣＨ１の値は、期間Ｔ４の最初のタイムアウト信号ＴＯ＿ＣＨ１により、６から７に増加する（図８（ｏ））。信号ＴＯＫＥＮ＿ＣＨ１の値が閾値ＴＨ＿ＣＨ１以上のため、高レベルの優先順位信号ＰＲＩ＿ＣＨ１がレート監視回路ＲＣＮＴ１から経路調停回路ＡＲＢに出力される（図８（ｐ））。なお、期間Ｔ４では、信号ＴＯＫＥＮ＿ＣＨ２の値が閾値ＴＨ＿ＣＨ２より小さいため、優先順位信号ＰＲＩ＿ＣＨ２は、低レベルに維持される。
【００８６】
経路調停回路ＡＲＢは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２がそれぞれ高レベルおよび低レベルであるため、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２をそれぞれ高レベルおよび低レベルにする（図８（ｑ、ｒ））。これにより、スレーブ回路ＳＬ１のデータ転送が再開され、スレーブ回路ＳＬ２のデータ転送は停止する。このように、期間Ｔ４では、現在の転送レートが基準の転送レートより低いスレーブ回路ＳＬ１のデータ転送が優先的に実行される。スレーブ回路ＳＬ２のデータ転送が実行されないため、信号ＴＯＫＥＮ＿ＣＨ２の値は、タイムアウト信号ＴＯ＿ＣＨ２を受けるたびに、増加する。
【００８７】
期間Ｔ５では、スレーブ回路ＳＬ１のデータ転送要求が終了し、スレーブ回路ＳＬ２のみがデータ転送を要求している。例えば、経路調停回路ＡＲＢは、チャネル制御回路ＣＣＮＴ１が低レベルの転送要求信号ＤＲＥＱ＿ＣＨ１を受けたことに応答して、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１を低レベルにする（図８（ｓ、ｔ））。これにより、スレーブ回路ＳＬ１のデータ転送が終了する。さらに、経路調停回路ＡＲＢは、スレーブ回路ＳＬ２からのデータ転送要求に競合していたスレーブ回路ＳＬ１からのデータ転送要求が終了したため、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ２を高レベルにする（図８（ｕ））。これにより、スレーブ回路ＳＬ２のデータ転送が再開される。
【００８８】
また、期間Ｔ５では、信号ＴＯＫＥＮ＿ＣＨ２の値が閾値ＴＨ＿ＣＨ２以上のため、高レベルの優先順位信号ＰＲＩ＿ＣＨ２がレート監視回路ＲＣＮＴ２から経路調停回路ＡＲＢに出力される（図８（ｖ））。なお、優先順位信号ＰＲＩ＿ＣＨ１は、信号ＴＯＫＥＮ＿ＣＨ１の値が閾値ＴＨ＿ＣＨ１以上であるため、高レベルに維持される。そして、経路調停回路ＡＲＢは、チャネル制御回路ＣＣＮＴ２が低レベルの転送要求信号ＤＲＥＱ＿ＣＨ２を受けたことに応答して、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ２を低レベルにする（図８（ｗ、ｘ））。これにより、スレーブ回路ＳＬ２のデータ転送が終了する。
【００８９】
以上、この実施形態では、複数のスレーブ回路ＳＬからのデータ転送要求が互いに競合したとき、現在の転送レートが基準の転送レートより低いスレーブ回路ＳＬのデータ転送を優先的に実行できる。これにより、この実施形態では、複数のスレーブ回路ＳＬからのデータ転送要求が互いに競合したときにも、転送レートを保証したデータ転送を実施できる。すなわち、この実施形態では、複数のスレーブ回路ＳＬからのデータ転送要求が互いに競合したときにも、ＱＯＳ（Quality of Service）を保証したデータ転送を実施できる。
【００９０】
さらに、図３に示した構成では、データ転送制御回路ＤＴＣは、マルチプレクサＭＵＸを制御することにより、互いに異なる経路のデータ転送を同時に実施できる。これにより、この実施形態では、複数のスレーブ回路ＳＬからのデータ転送要求に対して、データ転送を効率よく実施できる。この結果、この実施形態では、互いに異なる経路のデータ転送を同時に実施できない構成に比べて、ＱＯＳを向上したデータ転送を実施できる。
【００９１】
なお、半導体装置ＳＥＭは、データ転送制御回路ＤＴＣを用いることにより、複数のスレーブ回路ＳＬからのデータ転送要求が互いに競合したときにも、転送レートを保証したデータ転送を実施できる。
【００９２】
図９は、別の実施形態におけるレート監視回路ＲＣＮＴａおよび経路調停回路ＡＲＢａの例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。なお、符号の末尾の数字の意味は、上述した実施形態と同じである。この実施形態のデータ転送制御回路ＤＴＣは、上述した図４に示したレート監視回路ＲＣＮＴおよび経路調停回路ＡＲＢの代わりに、レート監視回路ＲＣＮＴａおよび経路調停回路ＡＲＢａをそれぞれ有している。その他の構成は、図３−図８で説明したデータ転送制御回路ＤＴＣと同じである。
【００９３】
また、この実施形態のデータ転送制御回路ＤＴＣが搭載される半導体装置は、例えば、上述した図３−図８で説明したデータ転送制御回路ＤＴＣが搭載される半導体装置と同じである。例えば、半導体装置の最小構成は、レート監視回路ＲＣＮＴａおよび経路調停回路ＡＲＢａを含むデータ転送制御回路ＤＴＣと、図３に示したマルチプレクサＭＵＸおよびスレーブ回路ＳＬと、図１に示したＣＰＵである。
【００９４】
なお、図９では、レート監視回路ＲＣＮＴａ１の構成を詳細に示している。レート監視回路ＲＣＮＴａ２、ＲＣＮＴａ３、ＲＣＮＴａ４の構成は、レート監視回路ＲＣＮＴａ１と同じである。このため、レート監視回路ＲＣＮＴａ１について説明する。レート監視回路ＲＣＮＴａ１は、図５に示したレート監視回路ＲＣＮＴ１に絶対値生成器ＡＢＳが追加されている。レート監視回路ＲＣＮＴａ１のその他の構成は、図５に示したレート監視回路ＲＣＮＴ１と同じである。
【００９５】
例えば、レート監視回路ＲＣＮＴａ１は、転送レートレジスタＲＲＥＧ、レートカウンタＲＣＴ、トークンカウンタＴＣＴ、閾値レジスタＴＲＥＧ、比較器ＣＯＭＰおよび絶対値生成器ＡＢＳを有している。絶対値生成器ＡＢＳは、対応するスレーブ回路ＳＬ１の現在の転送レートとスレーブ回路ＳＬ１の基準の転送レートとの差の絶対値を、経路調停回路ＡＲＢａに通知する。
【００９６】
例えば、絶対値生成器ＡＢＳは、優先順位信号ＰＲＩ＿ＣＨ１および信号ＴＯＫＥＮを比較器ＣＯＭＰおよびトークンカウンタＴＣＴからそれぞれ受ける。また、例えば、絶対値生成器ＡＢＳは、閾値レジスタＴＲＥＧに設定された閾値ＴＨをロードする。そして、絶対値生成器ＡＢＳは、優先順位信号ＰＲＩ＿ＣＨ１、信号ＴＯＫＥＮおよび閾値ＴＨに基づいて、スレーブ回路ＳＬ１の現在の転送レートとスレーブ回路ＳＬ１の基準の転送レートとの差の絶対値を算出する。
【００９７】
例えば、絶対値生成器ＡＢＳは、比較器ＣＯＭＰから受けた優先順位信号ＰＲＩ＿ＣＨ１が高レベルの期間では、信号ＴＯＫＥＮの値から閾値ＴＨを減算することにより、スレーブ回路ＳＬ１の現在の転送レートとスレーブ回路ＳＬ１の基準の転送レートとの差の絶対値を算出する。そして、絶対値生成器ＡＢＳは、信号ＴＯＫＥＮの値から閾値ＴＨを減算した結果を、差分情報ＡＢＶ＿ＣＨ１として経路調停回路ＡＲＢａに出力する。
【００９８】
また、例えば、絶対値生成器ＡＢＳは、比較器ＣＯＭＰから受けた優先順位信号ＰＲＩ＿ＣＨ１が低レベルの期間では、閾値ＴＨから信号ＴＯＫＥＮの値を減算することにより、スレーブ回路ＳＬ１の現在の転送レートとスレーブ回路ＳＬ１の基準の転送レートとの差の絶対値を算出する。そして、絶対値生成器ＡＢＳは、閾値ＴＨから信号ＴＯＫＥＮの値を減算した結果を差分情報ＡＢＶ＿ＣＨ１として経路調停回路ＡＲＢａに出力する。なお、絶対値生成器ＡＢＳは、優先順位信号ＰＲＩ＿ＣＨ１を用いずに、スレーブ回路ＳＬ１の現在の転送レートとスレーブ回路ＳＬ１の基準の転送レートとの差の絶対値を算出してもよい。例えば、絶対値生成器ＡＢＳは、符号付き演算により、スレーブ回路ＳＬ１の現在の転送レートとスレーブ回路ＳＬ１の基準の転送レートとの差の絶対値を算出してもよい。
【００９９】
経路調停回路ＡＲＢａは、例えば、スレーブ回路ＳＬの現在の転送レートと基準の転送レートとの差の絶対値を示す差分情報ＡＢＶ＿ＣＨを用いて、データ転送要求の優先順位を判定する。すなわち、経路調停回路ＡＲＢａは、例えば、複数のデータ転送要求が互いに競合したとき、経路選択信号ＰＳＥＬ＿ＣＨ、優先順位信号ＰＲＩ＿ＣＨおよび差分情報ＡＢＶ＿ＣＨに基づいて、データ転送要求の優先順位を判定する。
【０１００】
図１０は、図９に示した経路調停回路ＡＲＢａの例を示している。経路調停回路ＡＲＢａは、上述した図６に示した調停回路ＡＲＢＣＩの代わりに、調停回路ＡＲＢＣＩａを有している。経路調停回路ＡＲＢａのその他の構成は、図６に示した経路調停回路ＡＲＢと同じである。例えば、経路調停回路ＡＲＢａは、アドレス比較器ＡＣＯＭＰ、調停回路ＡＲＢＣＩａおよび出力制御回路ＯＵＴＣを有している。
【０１０１】
調停回路ＡＲＢＣＩａは、例えば、転送許可信号ＤＡＣＫ＿ＣＨ、優先順位信号ＰＲＩ＿ＣＨ、差分情報ＡＢＶ＿ＣＨおよびアドレス比較器ＡＣＯＭＰからの情報に基づいて、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨを生成する。例えば、複数のデータ転送要求が互いに競合していない期間では、調停回路ＡＲＢＣＩａの動作は、図６に示した調停回路ＡＲＢＣＩと同じである。複数のデータ転送要求が互いに競合したときの調停回路ＡＲＢＣＩａの動作は、図１１で説明する。
【０１０２】
なお、経路調停回路ＡＲＢａの構成は、この例に限定されない。経路調停回路ＡＲＢａは、複数のデータ転送要求が互いに競合したときに、優先順位信号ＰＲＩ＿ＣＨおよび差分情報ＡＢＶ＿ＣＨに基づいて、データ転送要求の優先順位を判定できる構成であればよい。
【０１０３】
図１１は、図１０に示した調停回路ＡＲＢＣＩａの動作の例を示している。なお、図１１は、スレーブ回路ＳＬ１のデータ転送要求とスレーブ回路ＳＬ２のデータ転送要求とが競合したときの調停回路ＡＲＢＣＩａの動作の例を示している。調停回路ＡＲＢＣＩａの動作は、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２のレベルが互いに異なる期間では、図６に示した調停回路ＡＲＢＣＩと同じであり、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２が互いに同じレベルの期間では、調停回路ＡＲＢＣＩと異なる。
【０１０４】
優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２がそれぞれ高レベル（Ｈ）および低レベル（Ｌ）のとき、調停回路ＡＲＢＣＩａは、差分情報ＡＢＶ＿ＣＨの値に拘わらず、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２をそれぞれ高レベル（Ｈ）および低レベル（Ｌ）にする。また、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２がそれぞれ低レベル（Ｌ）および高レベル（Ｈ）のとき、調停回路ＡＲＢＣＩａは、差分情報ＡＢＶ＿ＣＨの値に拘わらず、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２をそれぞれ低レベル（Ｌ）および高レベル（Ｈ）にする。
【０１０５】
優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が高レベル（Ｈ）のとき、調停回路ＡＲＢＣＩａは、差分情報ＡＢＶ＿ＣＨの値が大きいスレーブ回路ＳＬからのデータ転送要求を優先する。すなわち、調停回路ＡＲＢＣＩａは、例えば、スレーブ回路ＳＬ１、ＳＬ２の現在の転送レートがそれぞれの基準の転送レートより低いとき、基準の転送レートと現在の転送レートとの差の絶対値が大きいスレーブ回路ＳＬのデータ転送を優先的に許可する。換言すれば、調停回路ＡＲＢＣＩａは、現在の転送レートが基準の転送レートより低い複数のスレーブ回路ＳＬからのデータ転送要求が互いに競合するとき、基準の転送レートと現在の転送レートとの差が大きいスレーブ回路ＳＬからのデータ転送要求を優先する。
【０１０６】
例えば、調停回路ＡＲＢＣＩａは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が高レベル（Ｈ）で、かつ、差分情報ＡＢＶ＿ＣＨ１の値が差分情報ＡＢＶ＿ＣＨ２の値より大きいとき、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２をそれぞれ高レベル（Ｈ）および低レベル（Ｌ）にする。また、例えば、調停回路ＡＲＢＣＩａは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が高レベルで、かつ、差分情報ＡＢＶ＿ＣＨ１の値が差分情報ＡＢＶ＿ＣＨ２の値より小さいとき、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２をそれぞれ低レベル（Ｌ）および高レベル（Ｈ）にする。
【０１０７】
優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が低レベル（Ｌ）のとき、調停回路ＡＲＢＣＩａは、差分情報ＡＢＶ＿ＣＨの値が小さいスレーブ回路ＳＬからのデータ転送要求を優先する。すなわち、調停回路ＡＲＢＣＩａは、例えば、スレーブ回路ＳＬ１、ＳＬ２の現在の転送レートがそれぞれの基準の転送レートより高いとき、基準の転送レートと現在の転送レートとの差の絶対値が小さいスレーブ回路ＳＬからのデータ転送を優先的に許可する。換言すれば、調停回路ＡＲＢＣＩａは、現在の転送レートが基準の転送レートより高い複数のスレーブ回路ＳＬからのデータ転送要求が互いに競合するとき、基準の転送レートと現在の転送レートとの差が小さいスレーブ回路ＳＬからのデータ転送要求を優先する。
【０１０８】
例えば、調停回路ＡＲＢＣＩａは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が低レベル（Ｌ）で、かつ、差分情報ＡＢＶ＿ＣＨ１の値が差分情報ＡＢＶ＿ＣＨ２の値より大きいとき、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２をそれぞれ低レベル（Ｌ）および高レベル（Ｈ）にする。また、例えば、調停回路ＡＲＢＣＩａは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が低レベル（Ｌ）で、かつ、差分情報ＡＢＶ＿ＣＨ１の値が差分情報ＡＢＶ＿ＣＨ２の値より小さいとき、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２をそれぞれ高レベル（Ｈ）および低レベル（Ｌ）にする。
【０１０９】
なお、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２が互いに同じレベルで、かつ、差分情報ＡＢＶ＿ＣＨ１、ＡＢＶ＿ＣＨ２の値が互いに同じとき、調停回路ＡＲＢＣＩａは、例えば、予め設定された優先順位に基づいて、スレーブ回路ＳＬ１、ＳＬ２からのデータ転送要求を調停する。例えば、調停回路ＡＲＢＣＩａは、差分情報ＡＢＶ＿ＣＨ１、ＡＢＶ＿ＣＨ２の値が互いに同じとき、差分情報ＡＢＶ＿ＣＨ１、ＡＢＶ＿ＣＨ２の値が互いに同じになる前に許可していたデータ転送を継続して許可する。
【０１１０】
図１２は、図９に示したレート監視回路ＲＣＮＴａおよび経路調停回路ＡＲＢａを有するデータ転送制御回路ＤＴＣの動作の例を示している。なお、図１２は、スレーブ回路ＳＬ１のデータ転送要求に対応するデータ転送経路と、スレーブ回路ＳＬ２のデータ転送要求に対応するデータ転送経路とが競合する場合のデータ転送制御回路ＤＴＣの動作の例を示している。また、図１２に示した動作では、スレーブ回路ＳＬ１、ＳＬ２以外のスレーブ回路ＳＬは、データ転送を要求していない。また、上述した図８で説明した信号と同一の信号については、同一の符号を付し、これ等については、詳細な説明を省略する。
【０１１１】
例えば、期間Ｔ１では、スレーブ回路ＳＬ１のみがデータ転送を要求しているため、経路調停回路ＡＲＢａは、高レベルの転送要求信号ＤＲＥＱ＿ＣＨ１に応答して、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１を高レベルにする。また、期間Ｔ２では、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２がそれぞれ低レベルおよび高レベルであるため、経路調停回路ＡＲＢａは、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２をそれぞれ低レベルおよび高レベルにする。
【０１１２】
期間Ｔ３では、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が高レベルであるため、差分情報ＡＢＶ＿ＣＨの値が大きいスレーブ回路ＳＬからのデータ転送要求が優先される。例えば、期間Ｔ３では、信号ＴＯＫＥＮ＿ＣＨ２の値が閾値ＴＨ＿ＣＨ２以上であるため、優先順位信号ＰＲＩ＿ＣＨ２は、高レベルに維持される。また、例えば、信号ＴＯＫＥＮ＿ＣＨ１の値は、期間Ｔ３の最初のタイムアウト信号ＴＯ＿ＣＨ１により、“６”から“７”に増加する（図１２（ａ））。
【０１１３】
信号ＴＯＫＥＮ＿ＣＨ１の値が閾値ＴＨ＿ＣＨ１以上のため、高レベルの優先順位信号ＰＲＩ＿ＣＨ１がレート監視回路ＲＣＮＴａ１から経路調停回路ＡＲＢａに出力される（図１２（ｂ））。この場合、差分情報ＡＢＶ＿ＣＨ２の値が差分情報ＡＢＶ＿ＣＨ１の値より大きいため、経路調停回路ＡＲＢａは、スレーブ回路ＳＬ２からのデータ転送要求を優先する。したがって、期間Ｔ３では、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２は、それぞれ低レベルおよび高レベルに維持される（図１２（ｃ、ｄ））。
【０１１４】
これにより、現在の転送レートが基準の転送レートより低いスレーブ回路ＳＬ１、ＳＬ２のうち、現在の転送レートと基準の転送レートとの差の絶対値が大きいスレーブ回路ＳＬ２のデータ転送が優先的に実行される。
【０１１５】
このように、経路調停回路ＡＲＢａは、データ転送を要求した複数のスレーブ回路ＳＬの現在の転送レートがそれぞれの基準の転送レートより低いとき、データ転送を優先的に実施させるスレーブ回路ＳＬとして、現在の転送レートと基準の転送レートとの差の絶対値が大きいスレーブ回路ＳＬを選択する。これにより、この実施形態では、例えば、現在の転送レートが基準の転送レートより低い複数のスレーブ回路ＳＬからのデータ転送要求が互いに競合するとき、現在の転送レートと基準の転送レートとの差が大きいスレーブ回路ＳＬの転送レートがさらに低くなることを低減できる。これにより、この実施形態では、ＱＯＳを向上したデータ転送を実施できる。
【０１１６】
期間Ｔ４では、スレーブ回路ＳＬ２のデータ転送要求が終了し、スレーブ回路ＳＬ１のみがデータ転送を要求している。したがって、期間Ｔ４では、経路調停回路ＡＲＢａは、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２をそれぞれ高レベルおよび低レベルにする。これにより、スレーブ回路ＳＬ１のデータ転送が再開され、スレーブ回路ＳＬ２のデータ転送が終了する。
【０１１７】
図１３は、図９に示したレート監視回路ＲＣＮＴａおよび経路調停回路ＡＲＢａを有するデータ転送制御回路ＤＴＣの動作の別の例を示している。なお、図１３は、スレーブ回路ＳＬ１のデータ転送要求に対応するデータ転送経路と、スレーブ回路ＳＬ２のデータ転送要求に対応するデータ転送経路とが競合する場合のデータ転送制御回路ＤＴＣの動作の例を示している。また、図１３に示した動作では、スレーブ回路ＳＬ１、ＳＬ２以外のスレーブ回路ＳＬは、データ転送を要求していない。図１３に示した信号の意味は、上述した図１２と同じである。
【０１１８】
基準値ＴＲ＿ＣＨ１および閾値ＴＨ＿ＣＨ１は、例えば、“８”および“７”にそれぞれ設定されている。また、例えば、基準値ＴＲ＿ＣＨ２および閾値ＴＨ＿ＣＨ２は、“６”および“９”にそれぞれ設定されている。例えば、期間Ｔ１では、スレーブ回路ＳＬ２のみがデータ転送を要求しているため、経路調停回路ＡＲＢａは、高レベルの転送要求信号ＤＲＥＱ＿ＣＨ２に応答して、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ２を高レベルにする。
【０１１９】
期間Ｔ２では、スレーブ回路ＳＬ１がデータ転送を要求したことにより、スレーブ回路ＳＬ１からのデータ転送要求とスレーブ回路ＳＬ２からのデータ転送要求とが競合する。例えば、経路調停回路ＡＲＢａは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２がそれぞれ高レベルおよび低レベルであるため、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２をそれぞれ高レベルおよび低レベルにする。
【０１２０】
期間Ｔ３では、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が低レベルであるため、差分情報ＡＢＶ＿ＣＨの値が小さいスレーブ回路ＳＬからのデータ転送要求が優先される。例えば、期間Ｔ３では、信号ＴＯＫＥＮ＿ＣＨ２の値が閾値ＴＨ＿ＣＨ２より小さいため、優先順位信号ＰＲＩ＿ＣＨ２は、低レベルに維持される。また、例えば、信号ＴＯＫＥＮ＿ＣＨ１の値は、期間Ｔ３の最初のリードライト信号ＲＤＷＲ＿ＣＨ１により、“７”から“６”に減少する（図１３（ａ））。
【０１２１】
信号ＴＯＫＥＮ＿ＣＨ１の値が閾値ＴＨ＿ＣＨ１より小さいため、低レベルの優先順位信号ＰＲＩ＿ＣＨ１がレート監視回路ＲＣＮＴａ１から経路調停回路ＡＲＢａに出力される（図１３（ｂ））。この場合、差分情報ＡＢＶ＿ＣＨ１の値が差分情報ＡＢＶ＿ＣＨ２の値より小さいため、経路調停回路ＡＲＢａは、スレーブ回路ＳＬ１からのデータ転送要求を優先する。したがって、期間Ｔ３では、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２は、それぞれ高レベルおよび低レベルに維持される（図１３（ｃ、ｄ））。
【０１２２】
これにより、現在の転送レートが基準の転送レートより高いスレーブ回路ＳＬ１、ＳＬ２のうち、現在の転送レートと基準の転送レートとの差の絶対値が小さいスレーブ回路ＳＬ１のデータ転送が優先的に実行される。このように、経路調停回路ＡＲＢａは、データ転送を要求した複数のスレーブ回路ＳＬの現在の転送レートがそれぞれの基準の転送レートより高いとき、データ転送を優先的に実施させるスレーブ回路ＳＬとして、現在の転送レートと基準の転送レートとの差が小さいスレーブ回路ＳＬを選択する。
【０１２３】
したがって、この実施形態では、例えば、現在の転送レートが基準の転送レートより高い複数のスレーブ回路ＳＬからのデータ転送要求が互いに競合するとき、現在の転送レートと基準の転送レートとの差が大きいスレーブ回路ＳＬの転送レートがさらに高くなることを低減できる。
【０１２４】
期間Ｔ４では、スレーブ回路ＳＬ１のデータ転送要求が終了し、スレーブ回路ＳＬ２のみがデータ転送を要求している。したがって、期間Ｔ４では、経路調停回路ＡＲＢａは、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２をそれぞれ低レベルおよび高レベルにする。これにより、スレーブ回路ＳＬ１のデータ転送が終了し、スレーブ回路ＳＬ２のデータ転送が再開される。
【０１２５】
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、この実施形態では、データ転送制御回路ＤＴＣは、互いに競合するデータ転送を要求した複数のスレーブ回路ＳＬにそれぞれ対応する優先順位信号ＰＲＩ＿ＣＨのレベルが互いに同じとき、差分情報ＡＢＶ＿ＣＨに基づいて、互いに競合するデータ転送要求を調停する。これにより、この実施形態では、互いに競合するデータ転送要求の優先順位を精度よく判定できる。この結果、この実施形態では、ＱＯＳを向上したデータ転送を実施できる。
【０１２６】
図１４は、別の実施形態におけるデータ転送制御回路ＤＴＣの例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。なお、符号の末尾の数字の意味は、レート監視回路ＲＣＮＴ１、ＲＣＮＴ２、マルチプレクサＭＵＸＣ１、ＭＵＸＣ２、信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２、ＥＭＰ＿ＣＨ１、ＥＭＰ＿ＣＨ２、ＣＳＥＬ１、ＣＳＥＬ２を除いて、上述した実施形態と同じである。
【０１２７】
この実施形態のデータ転送制御回路ＤＴＣは、上述した図３に示したデータ転送制御回路ＤＴＣからレート監視回路ＲＣＮＴ３、ＲＣＮＴ４が省かれ、マルチプレクサＭＵＸＣ１、ＭＵＸＣ２が追加されている。さらに、この実施形態のデータ転送制御回路ＤＴＣは、図３に示した経路調停回路ＡＲＢの代わりに、経路調停回路ＡＲＢｂを有している。その他の構成は、図３−図８で説明したデータ転送制御回路ＤＴＣと同じである。
【０１２８】
また、この実施形態のデータ転送制御回路ＤＴＣが搭載される半導体装置は、例えば、上述した図３−図８で説明したデータ転送制御回路ＤＴＣが搭載される半導体装置と同じである。例えば、半導体装置の最小構成は、図１４に示したデータ転送制御回路ＤＴＣと、図３に示したマルチプレクサＭＵＸおよびスレーブ回路ＳＬと、図１に示したＣＰＵである。なお、図１４では、図を見やすくするために、複数の信号をまとめて記載し、さらに、チャネル制御回路ＣＣＮＴから制御信号生成回路ＳＩＧＧＥＮ等に出力される信号の記載を省略している。
【０１２９】
例えば、マルチプレクサＭＵＸＣ１、ＭＵＸＣ２は、レート監視回路ＲＣＮＴ１、ＲＣＮＴ２にそれぞれ対応して設けられている。例えば、マルチプレクサＭＵＸＣ１は、チャネル制御回路ＣＣＮＴ１−ＣＣＮＴ４からリードライト信号ＲＤＷＲ＿ＣＨ１−ＲＤＷＲ＿ＣＨ４をそれぞれ受ける。そして、マルチプレクサＭＵＸＣ１は、チャネル選択信号ＣＳＥＬ１が示すリードライト信号ＲＤＷＲ＿ＣＨを、レート監視回路ＲＣＮＴ１に出力する。また、例えば、マルチプレクサＭＵＸＣ２は、チャネル制御回路ＣＣＮＴ１−ＣＣＮＴ４からリードライト信号ＲＤＷＲ＿ＣＨ１−ＲＤＷＲ＿ＣＨ４をそれぞれ受ける。そして、マルチプレクサＭＵＸＣ２は、チャネル選択信号ＣＳＥＬ２が示すリードライト信号ＲＤＷＲ＿ＣＨを、レート監視回路ＲＣＮＴ２に出力する。
【０１３０】
これにより、データ転送制御回路ＤＴＣは、基準の転送レートと現在の転送レートとが比較されるスレーブ回路ＳＬ（比較対象のスレーブ回路ＳＬ）を、選択的に切り替えることができる。すなわち、マルチプレクサＭＵＸＣは、レート監視回路ＲＣＮＴで比較するスレーブ回路ＳＬを選択的に切り替える選択部に含まれる。
【０１３１】
また、経路調停回路ＡＲＢｂは、チャネル選択信号ＣＳＥＬ１、ＣＳＥＬ２を受ける。そして、例えば、経路調停回路ＡＲＢｂは、チャネル選択信号ＣＳＥＬ１、ＣＳＥＬ２に基づいて、レート監視回路ＲＣＮＴ１、ＲＣＮＴ２からの信号（ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２等）に対応するチャネル制御回路ＣＣＮＴを認識する。すなわち、経路調停回路ＡＲＢｂは、チャネル選択信号ＣＳＥＬ１、ＣＳＥＬ２に基づいて、レート監視回路ＲＣＮＴ１、ＲＣＮＴ２からの信号（ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２等）に対応するスレーブ回路ＳＬを認識する。経路調停回路ＡＲＢｂのその他の動作は、図３に示した経路調停回路ＡＲＢと同じである。
【０１３２】
したがって、この実施形態では、例えば、互いに競合するデータ転送を要求する可能性のあるスレーブ回路ＳＬが予め分かっている場合、レート監視回路ＲＣＮＴの数をスレーブ回路ＳＬより少ない数にできる。例えば、スレーブ回路ＳＬ２、ＳＬ４が他のスレーブ回路ＳＬにデータ転送を要求する機能を有し、スレーブ回路ＳＬ１、ＳＬ３がメモリの場合、チャネル選択信号ＣＳＥＬ１、ＣＳＥＬ２を用いて、マルチプレクサＭＵＸＣ１、ＭＵＸＣ２を以下に示すように設定する。
【０１３３】
例えば、マルチプレクサＭＵＸＣ１は、スレーブ回路ＳＬ２に対応するチャネル制御回路ＣＣＮＴ２からのをリードライト信号ＲＤＷＲ＿ＣＨ２を、レート監視回路ＲＣＮＴ１に出力する。また、例えば、マルチプレクサＭＵＸＣ２は、スレーブ回路ＳＬ４に対応するチャネル制御回路ＣＣＮＴ４からのリードライト信号ＲＤＷＲ＿ＣＨ４を、レート監視回路ＲＣＮＴ２に出力する。
【０１３４】
この場合、レート監視回路ＲＣＮＴ１は、スレーブ回路ＳＬ２の基準の転送レートとスレーブ回路ＳＬ２の現在の転送レートとに基づいた優先順位信号ＰＲＩ＿ＣＨ１を経路調停回路ＡＲＢｂに出力する。また、レート監視回路ＲＣＮＴ２は、スレーブ回路ＳＬ４の基準の転送レートとスレーブ回路ＳＬ４の現在の転送レートとに基づいた優先順位信号ＰＲＩ＿ＣＨ２を経路調停回路ＡＲＢｂに出力する。これにより、経路調停回路ＡＲＢｂは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２に基づいて、スレーブ回路ＳＬ２、ＳＬ４からのデータ転送要求を調停できる。
【０１３５】
なお、データ転送制御回路ＤＴＣは、レート監視回路ＲＣＮＴ１、ＲＣＮＴ２の代わりに、上述した図９に示したレート監視回路ＲＣＮＴａ１、ＲＣＮＴａ２をそれぞれ有してもよい。この場合、経路調停回路ＡＲＢｂの動作は、レート監視回路ＲＣＮＴａ１、ＲＣＮＴａ２からの信号に対応するチャネル制御回路ＣＣＮＴを認識する処理を除いて、図９に示した経路調停回路ＡＲＢａと同じである。また、レート監視回路ＲＣＮＴの数は、２つに限定されない。
【０１３６】
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、この実施形態では、レート監視回路ＲＣＮＴの数をチャネル制御回路ＣＣＮＴの数より少なくできるため、チャネル制御回路ＣＣＮＴ毎にレート監視回路ＲＣＮＴが設けられる構成に比べて、データ転送制御回路ＤＴＣの回路面積を小さくできる。
【０１３７】
図１５は、別の実施形態におけるレート監視回路ＲＣＮＴｂおよび経路調停回路ＡＲＢｃの例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。なお、符号の末尾の数字の意味は、上述した実施形態と同じである。この実施形態のデータ転送制御回路ＤＴＣは、上述した図４に示したレート監視回路ＲＣＮＴおよび経路調停回路ＡＲＢの代わりに、レート監視回路ＲＣＮＴｂおよび経路調停回路ＡＲＢｃをそれぞれ有している。その他の構成は、図３−図８で説明したデータ転送制御回路ＤＴＣと同じである。
【０１３８】
また、この実施形態のデータ転送制御回路ＤＴＣが搭載される半導体装置は、例えば、上述した図３−図８で説明したデータ転送制御回路ＤＴＣが搭載される半導体装置と同じである。例えば、半導体装置の最小構成は、レート監視回路ＲＣＮＴｂおよび経路調停回路ＡＲＢｃを含むデータ転送制御回路ＤＴＣと、図３に示したマルチプレクサＭＵＸおよびスレーブ回路ＳＬと、図１に示したＣＰＵである。
【０１３９】
なお、図１５では、レート監視回路ＲＣＮＴｂ１の構成を詳細に示している。レート監視回路ＲＣＮＴｂ２、ＲＣＮＴｂ３、ＲＣＮＴｂ４の構成は、レート監視回路ＲＣＮＴｂ１と同じである。このため、レート監視回路ＲＣＮＴｂ１について説明する。レート監視回路ＲＣＮＴｂ１は、図５に示したトークンカウンタＴＣＴ、閾値レジスタＴＲＥＧおよび比較器ＣＯＭＰの代わりに、トークンカウンタＴＣＴａ、閾値レジスタＴＲＥＧａおよび比較器ＣＯＭＰａをそれぞれ有している。レート監視回路ＲＣＮＴｂ１のその他の構成は、図５に示したレート監視回路ＲＣＮＴ１と同じである。
【０１４０】
例えば、レート監視回路ＲＣＮＴｂ１は、転送レートレジスタＲＲＥＧ、レートカウンタＲＣＴ、トークンカウンタＴＣＴａ、閾値レジスタＴＲＥＧａおよび比較器ＣＯＭＰａを有している。閾値レジスタＴＲＥＧａは、例えば、転送レートの閾値ＴＨと、全てのレート監視回路ＲＣＮＴｂで共通の値に設定された共通初期値ＩＮＴとが記憶されるレジスタである。例えば、共通初期値ＩＮＴは、レート監視回路ＲＣＮＴｂ１、ＲＣＮＴｂ２、ＲＣＮＴｂ３、ＲＣＮＴｂ４にそれぞれ設定されている閾値ＴＨの最大値以上の値に設定される。
【０１４１】
トークンカウンタＴＣＴａは、例えば、閾値レジスタＴＲＥＧａの共通初期値ＩＮＴを初期値として動作するアップダウンカウンタである。なお、トークンカウンタＴＣＴａの動作は、閾値ＴＨの代わりに共通初期値ＩＮＴを初期値として用いることを除いて、トークンカウンタＴＣＴと同じである。例えば、トークンカウンタＴＣＴａは、カウンタ値を示す信号ＴＯＫＥＮを比較器ＣＯＭＰａに出力する。なお、各レート監視回路ＲＣＮＴｂのトークンカウンタＴＣＴａのカウンタ値（信号ＴＯＫＥＮ）は、全てのレート監視回路ＲＣＮＴｂのトークンカウンタＴＣＴａが共通初期値ＩＮＴを初期値として動作するため、各スレーブ回路ＳＬの優先順位を示している。
【０１４２】
例えば、信号ＴＯＫＥＮは、信号ＴＯＫＥＮの値が共通初期値ＩＮＴより大きい場合、信号ＴＯＫＥＮの値が大きくなるほど、基準の転送レートに対して現在の転送レートが低くなることを示している。また、例えば、信号ＴＯＫＥＮは、信号ＴＯＫＥＮの値が共通初期値ＩＮＴより小さい場合、信号ＴＯＫＥＮの値が小さくなるほど、基準の転送レートに対して現在の転送レートが高くなることを示している。
【０１４３】
したがって、例えば、レート監視回路ＲＣＮＴｂ１のトークンカウンタＴＣＴａは、信号ＴＯＫＥＮを、優先順位信号ＰＲＩ２＿ＣＨ１として経路調停回路ＡＲＢｃに出力する。例えば、優先順位信号ＰＲＩ２＿ＣＨ２の値より大きい値の優先順位信号ＰＲＩ２＿ＣＨ１は、スレーブ回路ＳＬ１の優先順位が、スレーブ回路ＳＬ２の優先順位より高いことを示している。このように、この実施形態では、トークンカウンタＴＣＴａのカウンタ値を優先順位信号ＰＲＩ２＿ＣＨ２として用いることができるため、レート監視回路ＲＣＮＴｂ１の回路規模の増加を抑制しつつ、各スレーブ回路ＳＬの詳細な優先順位を経路調停回路ＡＲＢｃに通知できる。
【０１４４】
レート監視回路ＲＣＮＴｂ１の比較器ＣＯＭＰは、例えば、共通初期値ＩＮＴの値から閾値ＴＨの値を減算した値と信号ＴＯＫＥＮの値とが同じとき、高レベルのエンプティ信号ＥＭＰ＿ＣＨ１を経路調停回路ＡＲＢｃに出力する。
【０１４５】
経路調停回路ＡＲＢｃは、複数のデータ転送の経路が互いに競合するとき、優先順位信号ＰＲＩ２＿ＣＨの値が大きいスレーブ回路ＳＬからのデータ転送要求を優先的に許可する。例えば、経路調停回路ＡＲＢｃは、優先順位信号ＰＲＩ２＿ＣＨ１の値が優先順位信号ＰＲＩ２＿ＣＨ２の値より大きい期間では、スレーブ回路ＳＬ１、ＳＬ２からのデータ転送要求が互いに競合したときに、スレーブ回路ＳＬ１からのデータ転送要求を優先する。
【０１４６】
これにより、例えば、この実施形態では、基準の転送レートから現在の転送レートを減算した値が大きいスレーブ回路ＳＬの現在の転送レートがさらに低くなることを低減できる。なお、経路調停回路ＡＲＢｃの動作は、互いに競合するデータ転送要求の調停を優先順位信号ＰＲＩ２＿ＣＨに基づいて実施することを除いて、経路調停回路ＡＲＢと同じである。
【０１４７】
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、この実施形態では、データ転送制御回路ＤＴＣは、詳細な優先順位を示す優先順位信号ＰＲＩ２＿ＣＨに基づいて、互いに競合したデータ転送要求を調停する。これにより、この実施形態では、互いに競合するデータ転送要求の優先順位を精度よく判定できる。この結果、この実施形態では、ＱＯＳを向上したデータ転送を実施できる。
【０１４８】
図１６は、別の実施形態におけるレート監視回路ＲＣＮＴｃおよび経路調停回路ＡＲＢｄの例を示している。上述した実施形態で説明した要素と同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。なお、符号の末尾の数字の意味は、上述した実施形態と同じである。この実施形態のデータ転送制御回路ＤＴＣは、上述した図４に示したレート監視回路ＲＣＮＴおよび経路調停回路ＡＲＢの代わりに、レート監視回路ＲＣＮＴｃおよび経路調停回路ＡＲＢｄをそれぞれ有している。その他の構成は、図３−図８で説明したデータ転送制御回路ＤＴＣと同じである。
【０１４９】
また、この実施形態のデータ転送制御回路ＤＴＣが搭載される半導体装置は、例えば、上述した図３−図８で説明したデータ転送制御回路ＤＴＣが搭載される半導体装置と同じである。例えば、半導体装置の最小構成は、レート監視回路ＲＣＮＴｃおよび経路調停回路ＡＲＢｄを含むデータ転送制御回路ＤＴＣと、図３に示したマルチプレクサＭＵＸおよびスレーブ回路ＳＬと、図１に示したＣＰＵである。
【０１５０】
なお、図１６では、レート監視回路ＲＣＮＴｃ１の構成を詳細に示している。レート監視回路ＲＣＮＴｃ２、ＲＣＮＴｃ３、ＲＣＮＴｃ４の構成は、レート監視回路ＲＣＮＴｃ１と同じである。このため、レート監視回路ＲＣＮＴｃ１について説明する。レート監視回路ＲＣＮＴｃ１は、トークンカウンタＴＣＴのカウンタ値（信号ＴＯＫＥＮ）を、信号ＴＯＫＥＮ＿ＣＨ１として経路調停回路ＡＲＢｄに出力する。レート監視回路ＲＣＮＴｃ１のその他の構成は、図９に示したレート監視回路ＲＣＮＴａ１と同じである。例えば、レート監視回路ＲＣＮＴｃ１は、転送レートレジスタＲＲＥＧ、レートカウンタＲＣＴ、トークンカウンタＴＣＴ、閾値レジスタＴＲＥＧ、絶対値生成器ＡＢＳおよび比較器ＣＯＭＰを有している。
【０１５１】
経路調停回路ＡＲＢｄは、例えば、現在の転送レートが基準の転送レートより高い複数のスレーブ回路ＳＬからのデータ転送要求が互いに競合するとき、互いに競合するデータ転送要求を信号ＴＯＫＥＮ＿ＣＨに基づいて調停する。経路調停回路ＡＲＢｄのその他の動作は、図９に示した経路調停回路ＡＲＢａと同じである。
【０１５２】
図１７は、図１６に示した経路調停回路ＡＲＢｄの動作の例を示している。なお、図１７は、スレーブ回路ＳＬ１のデータ転送要求とスレーブ回路ＳＬ２のデータ転送要求とが競合したときの経路調停回路ＡＲＢｄの動作の例を示している。例えば、図１７に示した動作は、図１０に示した調停回路ＡＲＢＣＩａの動作に対応し、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が低レベル（Ｌ）のときを除いて、図１１に示した動作と同じである。したがって、経路調停回路ＡＲＢｄの調停動作は、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が低レベル（Ｌ）のときを除いて、図１０に示した調停回路ＡＲＢＣＩａの動作と同じである。
【０１５３】
例えば、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が低レベル（Ｌ）のとき、経路調停回路ＡＲＢｄは、信号ＴＯＫＥＮ＿ＣＨの値が大きいスレーブ回路ＳＬからのデータ転送要求を優先する。すなわち、経路調停回路ＡＲＢｄは、現在の転送レートが基準の転送レートより高い複数のスレーブ回路ＳＬからのデータ転送要求が互いに競合するとき、信号ＴＯＫＥＮ＿ＣＨの値が大きいスレーブ回路ＳＬからのデータ転送要求を優先する。したがって、経路調停回路ＡＲＢｄは、例えば、スレーブ回路ＳＬ１、ＳＬ２の現在の転送レートがそれぞれの基準の転送レートより高いとき、現在の転送レートが許容転送レートに対して余裕のあるスレーブ回路ＳＬからのデータ転送要求を優先する。
【０１５４】
例えば、経路調停回路ＡＲＢｄは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が低レベル（Ｌ）で、かつ、信号ＴＯＫＥＮ＿ＣＨ１の値が信号ＴＯＫＥＮ＿ＣＨ２の値より大きいとき、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２をそれぞれ高レベル（Ｈ）および低レベル（Ｌ）にする。また、例えば、経路調停回路ＡＲＢｄは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が低レベル（Ｌ）で、かつ、信号ＴＯＫＥＮ＿ＣＨ１の値が信号ＴＯＫＥＮ＿ＣＨ２の値より小さいとき、転送許可信号ＤＡＣＫ＿ＥＮ＿ＣＨ１、ＤＡＣＫ＿ＥＮ＿ＣＨ２をそれぞれ低レベル（Ｌ）および高レベル（Ｈ）にする。
【０１５５】
なお、図１７に示した動作を実現するためのレート監視回路ＲＣＮＴｃおよび経路調停回路ＡＲＢｄの構成は、図１６に示した例に限定されない。例えば、絶対値生成器ＡＢＳは、優先順位信号ＰＲＩ＿ＣＨが低レベルのとき、信号ＴＯＫＥＮを差分情報ＡＢＶ＿ＣＨとして経路調停回路ＡＲＢｄに出力してもよい。この場合、例えば、経路調停回路ＡＲＢｄは、優先順位信号ＰＲＩ＿ＣＨ１、ＰＲＩ＿ＣＨ２の両方が低レベルのとき、差分情報ＡＢＶ＿ＣＨの値が大きいスレーブ回路ＳＬからのデータ転送要求を優先する。
【０１５６】
以上、この実施形態においても、上述した実施形態と同様の効果を得ることができる。さらに、この実施形態では、データ転送制御回路ＤＴＣは、現在の転送レートが基準の転送レートより高い複数のスレーブ回路ＳＬからのデータ転送要求が互いに競合するとき、信号ＴＯＫＥＮ＿ＣＨに基づいて、互いに競合したデータ転送要求を調停する。これにより、この実施形態では、現在の転送レートが基準の転送レートより高い複数のスレーブ回路ＳＬからのデータ転送要求が互いに競合するとき、スレーブ回路ＳＬのデータ転送の処理能力（処理速度）に対して余裕のあるスレーブ回路ＳＬのデータ転送を優先的に実施できる。
【０１５７】
以上の実施形態において説明した発明を整理して、付記として開示する。
【０１５８】
（付記１）
複数のスレーブ回路からのデータ転送要求に応じて、前記複数のスレーブ回路間のデータ転送を制御するデータ転送制御回路において、
前記各スレーブ回路に対応して予め設定された基準の転送レートと前記各スレーブ回路の現在の転送レートとを比較する転送レート監視部と、
前記スレーブ回路からの前記データ転送要求が互いに競合するとき、前記転送レート監視部の比較結果に基づいて、前記現在の転送レートが前記基準の転送レートより低い前記スレーブ回路からの前記データ転送要求を優先するデータ転送調停部と
を備えていることを特徴とするデータ転送制御回路。
（付記２）
前記転送レート監視部は、前記現在の転送レートと前記基準の転送レートとの差を示す差分情報を、前記データ転送調停部に通知し、
前記データ転送調停部は、前記現在の転送レートが前記基準の転送レートより低い複数の前記スレーブ回路からの前記データ転送要求が互いに競合するとき、前記差分情報が示す値が大きい前記スレーブ回路からの前記データ転送要求を優先すること
を特徴とする付記１記載のデータ転送制御回路。
（付記３）
前記データ転送調停部は、前記現在の転送レートが前記基準の転送レートより高い複数の前記スレーブ回路からの前記データ転送要求が互いに競合するとき、前記差分情報が示す値が小さい前記スレーブ回路からの前記データ転送要求を優先すること
を特徴とする付記２記載のデータ転送制御回路。
（付記４）
前記転送レート監視部は、前記差分情報を前記データ転送調停部に通知するとともに、前記各スレーブ回路に対応して予め設定された上限の転送レートである許容転送レートと前記各スレーブ回路の前記現在の転送レートとの差を示す許容情報を前記データ転送調停部に通知し、
前記データ転送調停部は、前記現在の転送レートが前記基準の転送レートより高い複数の前記スレーブ回路からの前記データ転送要求が互いに競合するとき、前記許容情報が示す値が大きい前記スレーブ回路からの前記データ転送要求を優先すること
を特徴とする付記２記載のデータ転送制御回路。
（付記５）
前記転送レート監視部は、前記基準の転送レートから前記現在の転送レートを減算した結果に対応する情報を前記比較結果として前記データ転送調停部に通知し、
前記データ転送調停部は、複数の前記データ転送要求が互いに競合するとき、前記比較結果に基づいて、前記基準の転送レートから前記現在の転送レートを減算した値が大きい前記スレーブ回路からの前記データ転送要求を優先すること
を特徴とする付記１記載のデータ転送制御回路。
（付記６）
前記転送レート監視部で比較する前記スレーブ回路を選択的に切り替える選択部を、さらに備えていることを特徴とする付記１ないし付記５のいずれか１項に記載のデータ転送制御回路。
（付記７）
付記１ないし付記６のいずれか１項に記載のデータ転送制御回路と、
前記基準の転送レートを前記データ転送制御回路に設定する制御部と
を備えていることを特徴とする半導体装置。
【０１５９】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１６０】
１０‥転送レート監視部；２０‥データ転送調停部；ＡＢＳ‥絶対値生成器；ＡＣＯＭＰ‥アドレス比較器；ＡＲＢ、ＡＲＢａ、ＡＲＢｂ、ＡＲＢｃ、ＡＲＢｄ‥経路調停回路；ＡＲＢＣＩ、ＡＲＢＣＩａ‥調停回路；ＢＢＲＧ‥バスブリッジ；ＢＵＦ‥バッファメモリ；ＢＵＳ‥バス；ＣＣＮＴ‥チャネル制御回路；ＣＯＭＰ、ＣＯＭＰａ‥比較器；ＣＰＵ‥中央処理装置；ＣＳＧＥＮ‥ＣＳ信号生成回路；ＤＴＣ‥データ転送制御回路；Ｉ／Ｏ‥周辺回路；ＭＵＸ、ＭＵＸＣ‥マルチプレクサ；ＯＵＴＣ‥出力制御回路；ＲＣＮＴ、ＲＣＮＴａ‥レート監視回路；ＲＣＴ‥レートカウンタ；ＲＲＥＧ‥転送レートレジスタ；ＳＩＧＧＥＮ‥制御信号生成回路；ＳＬ‥スレーブ回路；ＴＣＴ、ＴＣＴａ‥トークンカウンタ；ＴＲＥＧ、ＴＲＥＧａ‥閾値レジスタ
【図１】
2011198242.tif 000003
【図２】
2011198242.tif 000004
【図３】
2011198242.tif 000005
【図４】
2011198242.tif 000006
【図５】
2011198242.tif 000007
【図６】
2011198242.tif 000008
【図７】
2011198242.tif 000009
【図８】
2011198242.tif 000010
【図９】
2011198242.tif 000011
【図１０】
2011198242.tif 000012
【図１１】
2011198242.tif 000013
【図１２】
2011198242.tif 000014
【図１３】
2011198242.tif 000015
【図１４】
2011198242.tif 000016
【図１５】
2011198242.tif 000017
【図１６】
2011198242.tif 000018
【図１７】
2011198242.tif 000019