(57)【要約】【課題】オンチップバスにおけるイニシエータによる実際の転送開始タイミングを把握することなくイニシエータのアクセス競合に対して的確な優先制御を行う。【解決手段】イニシエータ（１０１＿０〜１０１＿２）、ターゲット（１０２）及び調停回路（１０３）を有する半導体装置（１０）であって、調停のための処理単位の時間と前記処理単位の時間に許容される最大転送量とをレジスタ（１０９、１１０）に格納し、当該格納した値に基づき、前記処理単位の時間毎に、夫々のイニシエータの残り時間（２０２）と残りデータ量（３０２）を演算し、当該演算結果から優先度（１１３＿０〜１１３＿２）を繰り返し生成する。ターゲットに対するイニシエータのアクセス要求が競合した場合には、夫々のイニシエータの前記優先度を比較し、いずれかのイニシエータに対してアクセスの許可を発行する。【選択図】図１
2011059915.tif 000002
【特許請求の範囲】
【請求項１】
アクセスを要求する複数のイニシエータと、
前記イニシエータによってアクセスされるターゲットと、
アクセス要求を調停する調停回路と、を有する半導体装置であって、
前記調停回路は、前記イニシエータ毎に優先度を生成する優先度生成部と、
イニシエータ毎の前記優先度とイニシエータからのアクセス要求とを入力して、前記ターゲットに対するイニシエータのアクセス要求が競合した場合には、前記優先度を考慮して一つのイニシエータのアクセスを許可する選択部と、を有し、
前記優先度生成部は、前記調停のための処理単位の時間を規定する第１の値が、書き換え可能に設定される第１レジスタと、
前記処理単位の時間に許容される最大転送量を規定する第２の値が、書き換え可能に設定される第２レジスタと、
第１レジスタに設定されている前記処理単位の時間毎に、残り時間と残りデータ量とを前記第１の値と前記第２の値に基づいて演算し、当該演算結果に基づいて優先度を生成する演算部と、を有する半導体装置。
【請求項２】
前記演算部は、前記残り時間に対して前記残りデータ量が大きいほど高い優先度を生成する、請求項１記載の半導体装置。
【請求項３】
前記イニシエータの少なくとも一つはプログラム処理回路であり、前記第１レジスタ及び前記第２レジスタは、前記プログラム処理回路によって初期設定される、請求項２記載の半導体装置。
【請求項４】
前記最大転送量の一時的な増加分を規定する第３の値が設定される第３のレジスタと、
前記残り時間が零となる毎に、対応する残りデータ量を夫々の優先度生成部から入力し、入力した値が最も大きいものに対応する前記優先度生成部の前記演算部に、前記第３の値を与える余剰割当部を更に有し、
前記演算部は、前記第２の値と前記余剰割当部から供給される第３の値を加算した値と、前記第１の値とに基づいて、前記優先度を生成する、請求項３記載の半導体装置。
【請求項５】
前記演算部は、前記残り時間が所定の時間になったときに、前記残りデータ量が所定のデータ量を超える場合には、最高の優先度を生成し、前記残りデータ量が零となったら、最低の優先度を生成する、請求項４記載の半導体装置。
【請求項６】
該当するイニシエータによる所要のデータ処理に要する制限時間をＴ、前記制限時間内にイニシエータのデータ処理に要するデータ量をＤ、処理時間を決めるための所要の数をＮ（Ｎは２以上の整数）とし、Ｎよりも小さい所要の数をｉとしたときに、前記第１の値をＴ／Ｎとし、前記第２の値をＤ／（Ｎ−ｉ）とする、請求項１記載の半導体装置。
【請求項７】
アクセスを要求する複数のイニシエータと、
前記イニシエータによってアクセスされるターゲットと、
アクセス要求を調停する調停回路と、を有する半導体装置であって、
前記調停回路は、前記イニシエータ毎に優先度を生成する優先度生成部と、
イニシエータ毎の前記優先度とイニシエータからのアクセス要求とを入力して、前記ターゲットに対するイニシエータのアクセス要求が競合した場合には、前記優先度を考慮して一つのイニシエータのアクセスを許可する選択部と、を有し、
前記優先度生成部は、所要の時間情報が、書き換え可能に設定される第１レジスタと、
所要のデータ量情報が、書き換え可能に設定される第２レジスタと、
所要の分割数が、書き換え可能に設定される第３レジスタと、
前記第１レジスタに設定された前記時間情報を前記第３レジスタに設定された前記分割数で除算して、前記調停のための処理単位の時間を規定する第１の値を取得するとともに、前記第２レジスタに設定された前記データ量情報を前記第３レジスタに設定された前記分割数で除算して、前記処理単位の時間に許容される最大転送量を規定する第２の値を取得し、前記処理単位の時間毎に、残り時間と残りデータ量とを前記第１の値と前記第２の値に基づいて演算し、当該演算結果に基づいて優先度を生成する演算部と、を有する半導体装置。
【請求項８】
前記演算部は、前記残り時間に対して前記残りデータ量が大きいほど高い優先度を生成する、請求項７記載の半導体装置。
【請求項９】
前記イニシエータの少なくとも一つはプログラム処理回路であり、前記第１レジスタ、前記第２レジスタ及び前記第３レジスタは、前記プログラム処理回路によって初期設定される、請求項８記載の半導体装置。
【請求項１０】
前記最大転送量の一時的な増加分を規定する第３の値が設定される第４のレジスタと、
前記残り時間が零となる毎に、対応する残りデータ量を夫々の優先度生成部から入力し、入力した値が最も大きいものに対応する前記優先度生成部の前記演算部に、前記第３の値を与える余剰割当部を更に有し、
前記演算部は、前記第２の値と前記余剰割当部から供給される第３の値を加算した値と、前記第１の値とに基づいて、前記優先度を生成する、請求項９記載の半導体装置。
【請求項１１】
前記演算部は、前記残り時間が所定の時間になったときに、前記残りデータ量が所定のデータ量を超える場合には、最高の優先度を生成し、前記残りデータ量が零となったら、最低の優先度を生成する、請求項１０記載の半導体装置。
【請求項１２】
前記所要の時間情報は、該当するイニシエータによる所要のデータ処理に要する制限時間であり、前記所要のデータ量情報は、前記制限時間内に要求される転送量である、請求項１１記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特に複数のイニシエータとターゲットを有する半導体装置に係り、例えばパケット交換方式のスプリットトランザクションバスを採用するマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【０００２】
複数のバスマスタとバススレーブが接続される共通バスにおいて、バスマスタがバススレーブにデータ転送のアクセス要求を発行する場合、バスマスタ毎に、時分割でバススレーブへのアクセス許可が発行されることになる。このとき、複数バスマスタのアクセス要求が競合している場合には、バスマスタにアクセス許可を発行する順番を調停する必要がある。従来の調停方法として、例えば下記の特許文献１にて開示されている。
【０００３】
特許文献１に記載の方法では、各バスマスタのデータ転送開始のタイミングを検出し、データ転送の期限までの残り時間と、前記期限までに転送すべき残り転送量に基づいて優先度を算出し、当該優先度に基づいてバスマスタにアクセス許可を発行する。前記経過時間は、アクセス要求の調停を行う調停回路内にある、データ転送開始のタイミングと同期して計数を行うカウンタの計数値に基づいて算出される。特許文献１に記載の方法では、各バスマスタがデータ転送の開始を示す転送開始信号を、前記調停回路に対して通知し、これによって、各バスマスタのデータ転送開始のタイミングを検出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１２２４８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の方法を、アクセスを要求する複数のイニシエータと前記イニシエータによってアクセスされるターゲットが接続されるスプリットトランザクションバスに適用する際に、どのような問題があるのか、を発明者は考えた。特許文献１に記載の方法では、データ転送開始のタイミングを検出するため、転送開始信号を必要としているが、通常、スプリットトランザクションバスでは、前記転送開始信号を備えていないため、新たに前記転送開始信号を通知する手段を必要とする。また、特許文献１では、前記転送開始信号をどのようなタイミングで生成するか、といった具体的な記述がなく、各イニシエータの転送開始のタイミングと前記カウンタの同期が困難となる場合がある。すなわち、各イニシエータは、所要のデータ処理に要する制限時間に対して常に同じタイミングでデータ転送要求を発行するわけではないため、前記データ転送要求の発行タイミングのばらつき（以下、「転送要求ジッタ」という。）が発生する場合には、前記制限時間内にデータ転送が完了しない場合がある。
【０００６】
また、発明者が考えたところによると、特許文献１に記載の方法以外の他の方法として、ＯＳ等のソフトウェアによって各イニシエータの優先度に基づいてイニシエータにアクセス許可を発行する方法もある。この方法は、ＣＰＵ等の制御装置が、前記調停回路内の転送開始レジスタにアクセスすることでデータ転送開始のタイミングを検出するものであり、前記転送開始レジスタは、ソフトウェアによって各イニシエータの前記制限時間毎に制御される。しかしながら、この方法では、各イニシエータの前記制限時間毎に、データ転送を制御するソフトウェアが必要となる。
【０００７】
発明者が検討した、以上の内容によれば、スプリットトランザクションバスに適用する際の問題点としては、第一に転送開始のタイミングの検出を必要とする点、第二にイニシエータの前記転送要求ジッタに対応できない点、第三に前記制限時間毎にデータ転送を制御するＯＳ等の上位ソフトウェアを必要とする点、が挙げられる。これらの問題に対処したとしても、イニシエータのＩＰコアの再利用性、すなわち特定の機能を有しないイニシエータの利用が阻害されることになる。
【０００８】
本発明の目的は、オンチップバスにおけるイニシエータによる実際の転送開始タイミングを把握することなくイニシエータのアクセス競合に対して的確な優先制御を行うことができる半導体装置を提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
すなわち、半導体装置は、調停のための処理単位の時間と前記処理単位の時間に許容される最大転送量とをレジスタに格納し、当該格納した値に基づき、前記処理単位の時間毎に、夫々のイニシエータの残り時間と残りデータ量を演算し、当該演算結果から優先度を繰り返し生成する。ターゲットに対するイニシエータのアクセス要求が競合した場合には、夫々のイニシエータの前記優先度を比較し、いずれかのイニシエータに対してアクセスの許可を発行する。
【発明の効果】
【００１２】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１３】
すなわち、オンチップバスにおけるイニシエータによる実際の転送開始タイミングを把握することなくイニシエータのアクセス競合に対して的確な優先制御を行うことができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施の形態１に係る半導体装置のブロック図である。
【図２】図２は、本発明の実施の形態１に係る優先度の生成についての概略図である。
【図３】図３は、本発明の実施の形態１に係る残り時間のタイミングチャートである。
【図４】図４は、本発明の実施の形態１に係る残りデータ量のタイミングチャートである。
【図５】図５は、本発明の実施の形態１に係る優先度のタイミングチャートである。
【図６Ａ】図６Ａは、本発明の実施の形態１に係るスロット時間とスロット内最大転送量の設定例である。
【図６Ｂ】図６Ｂは、本発明の実施の形態１に係るスロット時間とスロット内最大転送量の設定の具体例である。
【図７】図７は、本発明の実施の形態２に係る半導体装置のブロック図である。
【図８】図８は、本発明の実施の形態３に係る半導体装置のブロック図である。
【発明を実施するための形態】
【００１５】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１６】
〔１〕本発明の代表的な実施の形態に係る半導体装置（１０、１１）は、アクセスを要求する複数のイニシエータ（１０１＿０〜１０１＿２）と、前記イニシエータによってアクセスされるターゲット（１０２）と、アクセス要求を調停する調停回路（１０３、７４０）と、を有する半導体装置であって、前記調停回路は、前記イニシエータ毎に優先度を生成する優先度生成部（１０４＿０〜１０４＿２、７５０＿０〜７５０＿２）と、イニシエータ毎の前記優先度とイニシエータからのアクセス要求とを入力して、前記ターゲットに対するイニシエータのアクセス要求が競合した場合には、前記優先度を考慮して一つのイニシエータのアクセスを許可する選択部（１３０）と、を有し、前記優先度生成部は、前記調停のための処理単位の時間を規定する第１の値（２０３）が、書き換え可能に設定される第１レジスタ（１０９）と、前記処理単位の時間に許容される最大転送量を規定する第２の値（３０３）が、書き換え可能に設定される第２レジスタ（１１０）と、第１レジスタに設定されている前記処理単位の時間毎に、残り時間（２０２）と残りデータ量（３０２）と、を前記第１の値と前記第２の値に基づいて演算し、当該演算結果に基づいて優先度（１１３＿０〜１１３＿２）を生成する演算部（１２０、７３０）と、を有する。これによれば、夫々の優先度生成部は前記処理単位の時間毎に前記レジスタの設定値に基づいて残り時間と残りデータ量を演算するときにはイニシエータによる実際の転送開始タイミングを必要とせず、イニシエータの転送要求ジッタも問題としない。この残り時間と残りデータ量を演算することによって前記処理単位の時間毎にイニシエータによるアクセスの優先度をダイナミックに把握することができ、イニシエータによるアクセス要求が競合したときは、そのときに把握されている優先度に従って優先制御を行えばよい。それらの処理は前記処理単位の時間毎に繰り返されるから、他のイニシエータとのアクセス競合によってある処理単位の時間で必要なアクセスを行うことができない場合であっても、当該イニシエータは後続の処理単位の時間で必要なアクセスを要求すれば、再度同じ条件で生成されるアクセスの優先度にしたがってアクセスを行うことができる機会を得る。これにより、レジスタに対する値の設定次第で、イニシエータは処理に破綻を招くことなく前記処理単位の時間の複数倍の時間の範囲で必要なアクセスを行うことが可能になる。
【００１７】
〔２〕項１の半導体装置において、前記演算部は、前記残り時間に対して前記残りデータ量が大きいほど高い優先度を生成する。これによれば、夫々のイニシエータのデータ転送要求の緊急度を容易に把握することができる。
【００１８】
〔３〕項２の半導体装置において、前記イニシエータの少なくとも一つはプログラム処理回路であり、前記第１レジスタ及び前記第２レジスタは、前記プログラム処理回路によって初期設定される。これによれば、夫々のイニシエータの処理能力に応じた優先度を生成して、データ転送を管理することができる。
【００１９】
〔４〕項３の半導体装置において、前記最大転送量の一時的な増加分を規定する第３の値（７０７）が設定される第３のレジスタ（７０１）と、前記残り時間が零となる毎に、対応する残りデータ量を夫々の優先度生成部から入力し、入力した値が最も大きいものに対応する前記優先度生成部の前記演算部に、前記第３の値を与える、余剰割当部（７２０）を更に有し、前記演算部は、前記第２の値と前記余剰割当部から供給される第３の値を加算した値（７０８）と、前記第１の値とに基づいて、前記優先度を生成する。これによれば、前記処理時間に転送しなかったデータ量が多かったイニシエータに対しては、次の処理単位時間において、より優先度が高くなるように設定することができる。
【００２０】
〔５〕項４の半導体装置において、前記演算部は、前記残り時間が所定の時間になったときに、前記残りデータ量が所定のデータ量を超える場合には、最高の優先度を生成し、前記残りデータ量が零となったら、最低の優先度を生成する。
【００２１】
〔６〕項１の半導体装置において、該当するイニシエータによる所要のデータ処理に要する制限時間をＴ、前記制限時間内にイニシエータのデータ処理に要するデータ量をＤ、処理時間を決めるための所要の数をＮ（Ｎは２以上の整数）とし、Ｎよりも小さい所要の数をｉとしたときに、前記第１の値をＴ／Ｎとし、前記第２の値をＤ／（Ｎ−ｉ）とする。これにより、前記処理単位の時間に割当てる転送量に余裕を持たせた設定に基づき優先制御を行うから、イニシエータの処理の破綻を招く可能性を低くすることができる。
【００２２】
〔７〕本発明の代表的な実施の形態に係る半導体装置（１２）は、アクセスを要求する複数のイニシエータと、前記イニシエータによってアクセスされるターゲットと、アクセス要求を調停する調停回路（８０５）と、を有する半導体装置であって、前記調停回路は、前記イニシエータ毎に優先度を生成する優先度生成部（８０４＿０〜８０４＿２）と、イニシエータ毎の前記優先度とイニシエータからのアクセス要求とを入力して、前記ターゲットに対するイニシエータのアクセス要求が競合した場合には、前記優先度を考慮して一つのイニシエータのアクセスを許可する選択部とを有し、前記優先度生成部は、所要の時間情報（８０７）が、書き換え可能に設定される第１レジスタ（８０２）と、所要のデータ量情報（８０８）が、書き換え可能に設定される第２レジスタ（８０３）と、所要の分割数が、書き換え可能に設定される第３レジスタ（８００）と、前記第１レジスタに設定された前記時間情報を前記第３レジスタに設定された前記分割数で除算して、前記調停のための処理単位の時間を規定する第１の値を取得するとともに、前記第２レジスタに設定された前記データ量情報を前記第３レジスタに設定された前記分割数で除算して、前記処理単位の時間に許容される最大転送量を規定する第２の値を取得し、前記処理単位の時間毎に、残り時間と残りデータ量とを前記第１の値と前記第２の値に基づいて演算し、当該演算結果に基づいて優先度を生成する演算部（８０６）と、を有する。これによれば、前記処理時間と前記最大演算量を算出するための複雑なソフトウェアが不要となり、且つ項１と同様の作用を奏する。
【００２３】
〔８〕項７の半導体装置において、前記演算部は、前記残り時間に対して前記残りデータ量が大きいほど高い優先度を生成する。これによれば、夫々のイニシエータのデータ転送要求の緊急度を容易に把握することができる。
【００２４】
〔９〕項８の半導体装置において、前記イニシエータの少なくとも一つはプログラム処理回路であり、前記第１レジスタ、前記第２レジスタ及び前記第３レジスタは、前記プログラム処理回路によって初期設定される。これによれば、夫々のイニシエータの処理能力に応じた優先度を生成して、データ転送を管理することができる。
【００２５】
〔１０〕項９の半導体装置において、前記最大転送量の一時的な増加分を規定する第３の値（７０７）が設定される第４のレジスタ（７０１）と、前記残り時間が零となる毎に、対応する残りデータ量を夫々の優先度生成部から入力し、入力した値が最も大きいものに対応する前記優先度生成部の前記演算部に、前記第３の値を与える余剰割当部（７２０）を更に有し、前記演算部は、前記第２の値と前記余剰割当部から供給される第３の値を加算した値と、前記第１の値とに基づいて、前記優先度を生成する。これによれば、前記処理時間に転送しなかったデータ量が多かったイニシエータに対しては、次の処理単位時間において、より優先度が高くなるように設定することができる。
【００２６】
〔１１〕項１０の半導体装置において、前記演算部は、前記残り時間が所定の時間になったときに、前記残りデータ量が所定のデータ量を超える場合には、最高の優先度を生成し、前記残りデータ量が零となったら、最低の優先度を生成する。
【００２７】
〔１２〕項１１の半導体装置において、前記所要の時間情報は、該当するイニシエータによる所要のデータ処理に要する制限時間であり、前記所要のデータ量情報は、前記制限時間内に要求される転送量である。これによれば、夫々のイニシエータに要求される転送時間及び転送量に基づいた前記処理時間と最大演算量を設定することができる。
【００２８】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００２９】
《実施の形態１》
図１は、スプリットトランザクションバスを採用するマイクロコンピュータに係り、本発明に係る半導体装置の実施の形態に係る調停回路を備えた半導体装置を示す。同図に示される半導体装置１０は、特に制限されないが、公知のＣＭＯＳ集積回路の製造技術によって１個の単結晶シリコンのような半導体基板に形成されている。
【００３０】
半導体装置１０は、イニシエータ１０１＿０〜１０１＿２、ターゲット１０２、オンチップバス１００、及び調停回路（以下、「ルータ」という。）１０３を備え、オンチップバス１００とルータ１０３はスプリットトランザクションバスを構成している。
【００３１】
なお、図１に示す半導体装置１０は、３個のイニシエータ１０１＿０〜１０１＿２と１個のターゲット１０２を代表的に明示しており、これらのイニシエータの数やターゲットの数に特に制限はない。また、図１において、ルータ１０３は説明のために、オンチップバス１００から切り離して図示してある。
【００３２】
図１におけるスプリットトランザクションバスにおいて、イニシエータ１０１＿０〜１０１＿２とターゲット１０２との間のアクセスは、前記イニシエータ１０１＿０〜１０１＿２と前記ターゲット１０２間のオンチップバス上に存在するルータ１０３を介して行われ、前記ルータ１０３が前記イニシエータ１０１＿１〜１０１＿２とターゲット１０２間のデータ転送の経路を決定（ルーティング）する。
【００３３】
前記イニシエータ１０１＿０〜１０１＿２は、アクセス要求の際に、要求内容を含むリクエストパケットをルータ１０３に与える。前記イニシエータ１０１＿０〜１０１＿２は、例えばＣＰＵ、ＦＰＵ、画像処理用のコントローラ及びアクセラレータ等の装置である。前記リクエストパケットは、アクセス要求先や要求の内容を示す情報等を含むパケットデータである。具体的には、前記リクエストパケットの中には、アクセス要求を示すリクエスト信号、アクセスを要求するターゲット１０２のアドレス情報、データの読み出しや書き込みといった処理の種類とデータサイズを示すオペコード、前記処理の対象となるデータ、及びアクセス要求をしたイニシエータの識別情報等、が含まれている。なお、図１では、前記リクエストパケット中のリクエスト信号をリクエスト信号１１１＿０〜１１１＿２として明示している。
【００３４】
前記ルータ１０３は、前記イニシエータ１０１＿０〜１０１＿２から与えられる前記リクエストパケットを解読し、アクセスを要求されたターゲット１０２を特定して、リクエストパケット内の上記アドレス情報等の所定データを、ターゲット１０２に与える。前記ターゲット１０２は、例えば、メモリやレジスタ等である。また、前記アクセラレータ等はアクセス要求をするイニシエータであるが、ＣＰＵによって初期設定等がされるので、ターゲット１０２にもなり得る。
【００３５】
ルータ１０３から所定データが与えられたターゲット１０２は、前記所定データに応答し、レスポンスパケットを前記ルータ１０３に与える。前記レスポンスパケットは、前記イニシエータ１０１＿０〜１０１＿２が要求する処理対象のデータや当該データの送信先を示す情報等を含むパケットデータである。具体的には、前記レスポンスパケットの中には、前記処理の結果を示すレスポンスオペコード、前記処理で要求されるデータ、及びレスポンスパケットの送信先となるイニシエータの識別情報等、が含まれている。例えば、イニシエータからのターゲット１０２への要求内容が書き込み処理であったならば、書き込みが完了したことを示すレスポンスオペコード等を含むレスポンスパケットを、要求内容が読み出し処理であれば、読み出しデータ等を含むレスポンスパケットを、ターゲット１０２はルータ１０３に与える。
【００３６】
レスポンスパケットが与えられた前記ルータ１０３は、前記レスポンスパケットを解読し、送信先のイニシエータ１０１＿０〜１０１＿２を特定して、リクエストパケット内の上記レスポンスオペコード等の所定データを、イニシエータ１０１＿０〜１０１＿２に送信するとともに、転送完了を示す転送完了信号１１２＿０〜１１２＿２を送信する。
【００３７】
以上のように、オンチップバス上のルータ１０３は、イニシエータ１０１＿０〜１０１＿２とターゲット１０２間の転送経路の制御を行うが、その制御とともに、前記イニシエータ１０１＿０〜１０１＿２のターゲット１０２に対するアクセス要求の競合を調停する機能を有する。すなわち、本実施の形態１に係るルータ１０３は、各イニシエータのターゲット１０２に対するアクセス要求の緊急度を示す優先度を生成して、前記アクセス要求が競合した場合には、その優先度に基づきアクセス要求を調停する優先制御を行う機能を有する。
【００３８】
前記ルータ１０３は、ルーティングを行う制御ロジック回路１０８とイニシエータの優先度を生成する優先度生成部１０４＿０〜１０４＿２とから構成される。前記制御ロジック回路１０８は、バッファ１３２、コマンドデコーダ１３１及び選択部１３０から構成される。前記制御ロジック回路１０８は、イニシエータ１０１＿０〜１０１＿２から、リクエストパケットを受け取ると、当該リクエストパケットをバッファ１３２に格納するとともに、コマンドデコーダ１３１が、当該リクエストパケット中の、前述したアクセス要求先や要求の内容等を示す情報を解読し、解読した結果に基づき選択部１３０がルーティングを行う。この際、ターゲット１０２に対するリクエスト信号１１１＿０〜１１１＿２が競合していることがわかると、前記ルータ１０３は前記優先制御を行う。
【００３９】
優先制御は前述のように、前記優先度に基づいて行われる。前記優先度は、優先度生成部１０４＿０〜１０４＿２が生成する。前記優先度生成部１０４＿０〜１０４＿２は、夫々のイニシエータ１０１＿０〜１０１＿２に対応し、イニシエータの数がＭ個であれば、対応するＭ個の優先度生成部が必要となる。なお、前記優先度生成部１０４＿０〜１０４＿２はすべて、同一の機能を有するため、以下の説明においては、代表して一つの優先度生成部１０４＿０について行うこととする。
【００４０】
図２に前記優先度の生成についての概略図を示す。図２では、３つのイニシエータ（ＩＮＴＲ０〜ＩＮＴＲ２）を一例とし、それらにおける所要のデータ処理に要する制限時間を夫々Ｔ０〜Ｔ２とし、これらの制限時間Ｔ０〜Ｔ２を夫々分割した時間ｔｓ０〜ｔｓ２を優先制御のための処理単位の時間（以下、「スロット時間」という。）としている。なお、前記制限時間は必要に応じてマージンを見込んだ値としてもよい。前記優先度の管理は、夫々のイニシエータに対して、これらのスロット時間ｔｓ０〜ｔｓ２毎に行われる。また、夫々のイニシエータは、前記制限時間Ｔ０〜Ｔ２内に必要とするデータ量が決まっているので、前記制限時間Ｔ０〜Ｔ２内に必要なデータの転送が完了するように優先制御を行う必要がある。例えば、動画像の復号処理において、１フレームの復号に割り当てられた時間内に復号処理が完了するように、圧縮された１フレームの動画像データを所定時間内にメモリから読み出す必要がある。このような場合に、前記所定時間内にデータの転送が完了しないと、復号処理が破綻してしまう。そこで、前記制限時間Ｔ０〜Ｔ２内に必要なデータのアクセスが完了するように、各スロット時間ｔｓ０〜ｔｓ２内で転送に割当てる最大転送量（以下、「スロット内最大転送量」という。）を設定する。ここでは、夫々のイニシエータのスロット内最大転送量をｄｓ０〜ｄｓ２としている。なお、前記スロット内転送量は必要に応じてマージンを見込んだ値としてもよい。前記優先度は、夫々のスロット時間ｔｓ０〜ｔｓ２における残り時間と、当該スロット時間に割り当てられたスロット内最大転送量ｄｓ０〜ｄｓ２に対する残りデータ量とに基づいて生成され、優先度の管理は、前記スロット時間ｔｓ０〜ｔｓ２毎に行われる。
【００４１】
優先度生成部１０４＿０による前記優先度の生成の具体的な方法ついて説明する。
【００４２】
前記優先度生成部１０４＿０は、残り時間カウンタ１０５、残りデータ量カウンタ１０６及び比較器１０７、を有する演算部１２０と、時間情報レジスタ１０９及びデータ量情報レジスタ１１０から構成される。
【００４３】
始めに、残り時間の算出について説明する。
【００４４】
残り時間の算出に際し、前記残り時間カウンタ１０５が、前記時間情報レジスタ１０９に設定されている値を初期値として入力する。前記時間情報レジスタ１０９には、予め、前記スロット時間をスロット時間２０３として設定しておく。前記レジスタ１０９の設定は、前述のターゲットに対するアクセスと同様に行われる。例えば、前記半導体装置１０内のイニシエータ１０１＿０〜１０１＿２の内の一つであるプログラム処理回路としての中央演算処理装置（ＣＰＵ）から、前記レジスタ１０９にスロット時間を設定するためのリクエストパケットが前記ルータ１０３に送られる。そして、前記制御ロジック回路１０８において、当該リクエストパケットが解読され、図示されない経路で前記レジスタ１０９にスロット時間が設定される。
【００４５】
前記残り時間カウンタ１０５は、前記スロット時間２０３を残り時間の初期値とし、バスサイクル毎に、当該初期値からダウンカウントすることで残り時間２０２を算出し、比較部１０７に与える。前記カウンタ１０５は、当該残り時間が零になったときに、再度初期値がプリセットされ、残り時間の計測が繰り返される。
【００４６】
図３は、残り時間のタイミングチャートである。図３において、所要のデータ処理に要する制限時間２００を２０バスサイクル数とし、２０１＿０〜２０１＿２に示されるスロット時間は、前記制限時間２００を２つに分割した１０バスサイクルとする。また、前記カウンタ１０５に設定する残りデータ量の初期値を“９”とプリセットしている。残り時間は、２０１＿０に示されるスロット時間の開始から、バスサイクル毎にダウンカウントして、カウント値が“０”になったら、２０１＿１に示される次のスロット時間から、残り時間のカウント値を“９”に再度設定して、ダウンカウントすることを繰り返し行う。これにより、イニシエータのスロット時間における残り時間を把握することができる。
【００４７】
次に、残りデータ量の算出について説明する。
【００４８】
残りデータ量の算出に際し、前記残りデータ量カウンタ１０６が、前記データ量情報レジスタ１１０に設定されている値を初期値として入力する。前記データ量情報レジスタ１１０には、予め、前記スロット内最大転送量をスロット内最大転送量３０３として設定しておく。前記レジスタ１１０の設定は、前述の前記時間情報レジスタ１０９の設定と同様の方法で行われる。
【００４９】
前記残りデータ量カウンタ１０６は、イニシエータ１０１＿０が要求したアクセスが完了したときに、前記制御ロジック回路１０８から当該転送完了したデータのデータ語長１１７＿０が与えられる。前記データ語長１１７＿０は、イニシエータ１０１＿０とターゲット１０２間のアクセスに際し、前記コマンドデコーダ１３１により、レスポンスパケットのレスポンスオペコードから解読された転送データのサイズである。前記制御ロジック回路１０８は、イニシエータ１０１＿０への転送完了信号１１２＿０の通知とともに、解読した当該転送データのデータ語長１１７＿０を、転送元のイニシエータ１０１＿０に対応する前記データ量カウンタ１０６に与える。
【００５０】
前記残りデータ量カウンタ１０６は、前記スロット内最大転送量３０３を初期値とし、イニシエータ１０１＿０が要求したアクセスが完了する毎に、前記データ語長１１７＿０を当該初期値から減算することで残りデータ量３０２を算出する。そして、前記残り時間が零となるタイミングで、前記残りデータ量の値が再度初期値としてプリセットされ、上記の算出が繰り返される。
【００５１】
図４は、残りデータ量のタイミングチャートである。図４において、前記レジスタ１１０に設定するスロット内最大転送量を“４”とし、この値を残りデータ量の初期値として、前記カウンタ１０６にプリセットしている。２０１＿０に示されるスロット時間において、２回の転送が行われ、当該スロット時間内の残りデータ量が“０”となるが、２０１＿１に示される次のスロット時間において、残りデータ量を再度初期値の“４”に設定して、残りデータ量を算出することを繰り返し行う。これにより、イニシエータのスロット時間おける前記残りデータ量を把握することができる。
【００５２】
以上の方法により演算された、残り時間２０２と残りデータ量３０２に基づいて、比較部１０７が演算をすることで優先度を生成し、当該優先度を前記制御ロジック１０８に与える。前記比較部１０７は、前記残り時間２０２から前記残りデータ量３０２を減算する演算によって、優先度１１３＿０を生成する。
【００５３】
優先度は、前述のようにイニシエータのアクセス要求の緊急度を表すものであり、残り時間が少なく、残りデータ量が多い程、データ転送の緊急度が高いと考えられる。本実施の形態１では、優先度を生成するための演算方法として、残り時間から残りデータ量を減算する演算方法を採用する。なお、他の演算方法として、残りデータ量を残り時間で除算する方法等を採用してもよい。
【００５４】
図５は、前記優先度のタイミングチャートである。図５では、前記制限時間２００の値を２０バスサイクルとし、前記制限時間を２つに分割した１０バスサイクルを２０１＿０〜２０１＿２に示されるスロット時間とし、当該スロット時間に割当てる前記スロット内最大転送量のデータ量を“４”としている。また、カウンタ１０５に設定する残り時間の初期値を“９”とし、前記カウンタ１０６に設定する残りデータ量の初期値を“４”としている。夫々のスロット時間２０１＿０〜２０１＿２において、優先度は、残り時間カウンタ１０５で計測された残り時間から残りデータ量カウンタ１０６で計測された残りデータ量を減算することで得られる。図５においては、前記優先度は値が小さい程、優先度が高くなり、“０”が最高の優先度を表す。また、図５においては、残りデータ量が“０”になったときは、その優先度を、初期値であって最低の優先度を示す“９”とし、残り時間の値が“３”となったときに、残りデータ量が“３”以上である場合には、優先度を、最高の優先度を示す“０”、とする演算方法も併せて採用している。なお、優先度の演算方法は、上記の例に限られず、前記残りデータ量の値が前記残り時間の値以上となったら優先度を上げるような演算方法を採用してもよい。
【００５５】
最後に、上記の方法により生成された、夫々のイニシエータ１０１＿０〜１０１＿２の優先度に基づく優先制御について説明する。
【００５６】
上記の方法により生成された、夫々のイニシエータ１０１＿０〜１０１＿２の優先度１１３＿０〜１１３＿２が、前記制御ロジック部１０８に与えられる。前記制御ロジック１０８内にある前記選択部１３０は、夫々のイ二シータ１０１＿０〜１０１＿２の優先度と、夫々のイニシエータ１０１＿０〜１０１＿２のターゲット１０２に対する前記リクエスト信号１１１＿０〜１１１＿２を入力する。前述のように、３つのイニシエータ１０１＿０〜１０１＿２のアクセス要求が競合している場合には、選択部１３０は、３つの前記リクエスト信号１１１＿０〜１１１＿２が入力されるので、当該３つのイニシエータに対応する優先度１１３＿０〜１１３＿２を比較して、最も優先度の高いイニシエータを選択する。図５の場合は、生成された優先度の値の小さいほうが、優先度は高くなるので、優先度の値がもっとも小さいイニシエータに対してアクセスが許可される。なお、前記優先度１１３＿０〜１１３＿２が同一であった場合には、イニシエータに対して優先させて転送許可をする優先順を予め決めておき、当該優先順に基づいてアクセスの許可をしてもよいし、また、当該判別される優先度に対応するスロット時間２０３の前のスロット時間２０３におけるイニシエータの転送の有無や転送したデータ量等により、選択するようにしてもよい。
【００５７】
前記制御ロジック部１０８は、当該判別結果に基づき、イニシエータ１０１＿０〜１０１＿２から制御ロジック部１０８に与えられたリクエストパケットのうち、選択されたイニシエータのリクエストパケットから所定のデータを取り出し、ターゲット１０２に対して前記所定のデータを送信する。一方、前記イニシエータ１０１＿０〜１０１＿２のターゲット１０２に対するアクセス要求が競合しない場合、例えば、イニシエータ１０１＿０のみがターゲット１０２に対してアクセス要求している場合は以下のようになる。前記選択部１３０には、すべてのイニシエータの優先度１１３＿０〜１１３＿２が入力され、１つのリクエスト信号１１１＿０が入力される。この場合は、１つのリクエスト信号１１１＿０だけが入力されているので、アクセス要求が競合していないと判断され、前記優先度１１３＿０〜１１３＿２を判別することなく、前記制御ロジック部１０８は、イニシエータ１０１＿０のリクエストパケットから所定のデータを取り出し、ターゲット１０２に対して前記所定のデータを送信する。
【００５８】
なお、以上の優先度の生成において、スロット時間内で転送に割当てる最大転送量であるスロット内最大転送量は、イニシエータがターゲットに対してアクセスする際に、制限時間内に必要とするデータ量に対して余裕を持って前記レジスタ１１０に設定している。例えば、ターゲットに対して制限時間Ｔの間にデータ量Ｄの転送が必要なイニシエータがあるとする。このとき、前記レジスタ１０９とレジスタ１１０に設定するスロット時間とスロット内最大転送量を以下のように設定する。
【００５９】
図６Ａは、当該イニシエータのスロット時間とスロット内最大転送量の設定を示したものである。図６Ａにおいて、前記制限時間Ｔを分割する分割数をＮ（Ｎは２以上の整数）として、スロット時間ｔｓをＴ／Ｎと設定する。また、Ｎよりも小さい所要の数をｉ、スロット内最大転送量をｄｓとすると、前記スロット内最大転送量ｄｓは、ｄｓ≧Ｄ／（Ｎ−ｉ）となるように設定する。前記スロット内最大転送量ｄｓをこのように設定するのは、以下の理由からである。制限時間Ｔにデータ量Ｄを転送しなければいけないイニシエータに対して、前記スロット内最大転送量ｄｓをＤ／Ｎとしてしまうと、他のイニシエータとのアクセス競合によってあるスロット時間で必要なアクセスを行うことができない場合には、制限時間内でのアクセスができず、イニシエータの処理が破綻してしまう可能性がある。そこで、前記スロット内最大転送量ｄｓを上記のように設定すると、前記制限時間Ｔの間に要求される転送量Ｄに対して、最低でもスロット時間ｉ個分の転送量Ｄ／（Ｎ−ｉ）を余裕として確保することができる。
【００６０】
図６Ｂは、図６Ａの具体例である。図６Ｂでは、前記制限時間Ｔの間に要求される転送量Ｄを“２０”、前記分割数Ｎを“５”、前記所定の数ｉを“１”とすると、前記スロット内最大転送量ｄｓはｄｓ≧５より、“ｄｓ＝５”と設定する。これにより、前記制限時間Ｔの間に要求される転送量Ｄ（＝２０）に対して前記スロット内最大転送量ｄｓ（＝５）、すなわち  スロット時間１個分だけ余裕を確保することができる。
【００６１】
なお、前記スロット時間及びスロット内最大転送量のレジスタの設定は、前述のようにＣＰＵがパワーオンリセット直後に行ってもよいし、或いはその他適宜のタイミングでＣＰＵやアクセラレータ等が行ってもよい。又は、ＣＰＵ以外にハードウェアロジック等を用いて行ってもよい。
【００６２】
以上のことから、レジスタデータ転送要求の発行タイミングのばらつきである転送要求ジッタが生じても、前記レジスタ１０９及びレジスタ１１０に対する値の設定次第で、イニシエータは処理に破綻を招くことなく前記処理単位の時間の複数倍の時間の範囲で必要なアクセスを行うことが可能になる。
【００６３】
以上の前記優先制御によれば、バスサイクル毎に優先度が生成されるから、イニシエータのアクセス要求の優先度をダイナミックに把握することが可能となり、イニシエータによる実際の転送開始タイミングを必要とせず、イニシエータの転送要求ジッタも問題としない。また、前記スロット時間毎に優先度制御が繰り返し行われるから、他のイニシエータとのアクセス競合によってあるスロット時間で必要なアクセスを行うことができない場合であっても、当該イニシエータは後続のスロット時間で必要なアクセスを要求すれば、再度同じ条件で生成されるアクセスの優先度にしたがってアクセスを行うことができる機会を得る。
【００６４】
《実施の形態２》
図７は、スプリットトランザクションバスを採用するマイクロコンピュータに係り、本発明に係る半導体装置の別の実施の形態に係る調停回路を備えた半導体装置を示す。同図に示される半導体装置１１は、特に制限されないが、公知のＣＭＯＳ集積回路の製造技術によって１個の単結晶シリコンのような半導体基板に形成されている。
【００６５】
各イニシエータは、所要のデータ処理に要する制限時間に対して常に同じタイミングでデータ転送要求を発行するわけではないため、前述の転送要求ジッタが発生する。そこで、実施の形態１に係る半導体装置１０では、前記スロット時間に割当てる前記スロット内最大転送量を、制限時間内に必要とするデータ量に対して余裕を持って前記レジスタ１１０を設定している。実施の形態２に係る半導体装置１１では、上記のレジスタ設定に加え、あるスロット時間において、転送しなかったデータ量が多かったイニシエータに対しては、次のスロット時間において、データ転送要求の増加に対応するため、スロット内最大転送量を一時的に増加させる手段を備える。
【００６６】
半導体装置１１は、イニシエータ１０１＿０〜１０１＿２、ターゲット１０２、オンチップバス１００、及びルータ７４０を備え、オンチップバス１００とルータ７４０はスプリットトランザクションバスを構成している。なお、図７に示す半導体装置１１における構成要素について、実施の形態１と同様の機能を有するものには同一の符号を付して、その詳細な説明を省略する。
【００６７】
前記ルータ７４０は、ルーティングを行う制御ロジック回路１０８とイニシエータの優先度を生成する優先度生成部７５０＿０〜７５０＿２とに加え、余剰割当部７２０と余剰転送量レジスタ７０１を備える。
【００６８】
前記優先度生成部７５０＿０〜７５０＿２における構成要素について、実施の形態１と同様の機能を有するものは、同一の符号を付して、詳細な説明を省略する。
【００６９】
前記余剰転送量レジスタ７０１には、予め所望の余剰転送量７０７が設定される。前記余剰転送量７０７の設定に際しては、各スロット時間における各イニシエータのスロット内最大転送量と前記余剰転送量７０７の和が、オンチップバスの転送能力を超えないように設定し、オンチップバスにおける前記イニシエータ１０１＿０〜１０１＿２のアクセスの処理が破綻しないようにする。なお、前記レジスタ７０１の設定は、前述の前記時間情報レジスタ１０９等と同様のタイミング及び方法で行われる。
【００７０】
余剰割当部７２０は、余剰転送量判定回路７０２と余剰割当選択回路７００から構成され、前記余剰転送量判定回路７０２は、前記優先度生成部７５０＿０〜７５０＿２における前記残り時間カウンタ１０５が計測する残り時間が零となる毎に、前記残りデータ量カウンタ１０６が計測する残りデータ量を余りデータ量７０４＿０〜７０４＿２として入力する。前記余剰割当判定回路７０２は、入力した前記余りデータ量７０４＿０〜７０４＿２の内、最も大きいものに対応するイニシエータを判定し、判定信号７０６を余剰割当選択回路７００に入力する。なお、前記判定に際し、前記余りデータ量７０４＿０〜７０４＿２の値が同一であるイニシエータが複数あった場合には、その前のスロット時間において前記余剰転送量が割り当てられていないイニシエータを選択するようにしてもよいし、又は、優先的に余剰転送量を割り当てるイニシエータを予め設定しておいてもよい。
【００７１】
余剰割当選択回路７００は、余剰転送量判定回路７０２から与えられた前記判定信号７０６に基づいて、当該判定信号７０６によって判定された前記イニシエータ１０１＿０〜１０１＿２に対応する前記優先度生成部７５０＿０〜７５０＿２に対し、前記余剰転送量レジスタ７０１に格納されている余剰転送量７０７を、余剰転送量信号７０５＿０〜７０５＿１として与える。ここでは、説明のため、前記優先度生成部７５０＿０に、余剰転送量信号７０５＿０が与えられたとする。
【００７２】
前記優先度生成部７５０＿０は、加算器７０３を有する演算部７３０を備える。前記加算器７０３は、前記データ量情報レジスタ１１０に設定されたスロット内最大転送量３０３と、余剰割当選択回路７００から与えられた前記余剰転送量信号７０５＿０とを加算し、当該加算したデータをスロット内加算転送量７０８として残りデータ量カウンタ１０６に与える。
【００７３】
残りデータ量カウンタ１０６は、前記スロット内加算転送量７０８を初期値として設定する。そして、実施の形態１と同様の方法により、イニシエータ１０１＿０が要求したアクセスが完了する毎に、前記データ語長１１７＿０を当該初期値から減算することで残りデータ量３０２を算出し、前記比較部１０７に与える。
【００７４】
以上より、実施の形態２は、実施の形態１と同様の作用を奏し、且つあるスロット時間に転送ができなかったデータの量が多かったイニシエータに対しては、次のスロット時間において、より優先度が高くなるように設定することができる。すなわち、あるスロットでは当該スロットに割り当てられた最大転送量よりも、イニシエータの要求するデータ量が少なく、またあるスロットでは当該スロットに割り当てられた最大転送量よりもイニシエータの要求するデータ量が多くなるような場合でも柔軟に対応することができる。
【００７５】
《実施の形態３》
図８は、スプリットトランザクションバスを採用するマイクロコンピュータに係り、本発明に係る半導体装置の別の実施の形態に係る調停回路を備えた半導体装置を示す。同図に示される半導体装置１２は、特に制限されないが、公知のＣＭＯＳ集積回路の製造技術によって１個の単結晶シリコンのような半導体基板に形成されている。
【００７６】
前述の実施の形態１に係る半導体装置１０、及び実施の形態２に係る半導体装置１１は、優先制御のための処理単位の時間であるスロット時間と、当該スロット時間に割当てられるスロット内最大転送量とを予め前記時間情報レジスタ１０９とデータ量情報レジスタ１１０に設定しておく必要があった。これに対して、実施の形態３に係る半導体装置１２は、前記スロット時間を所要の時間に基づいて演算し、前記スロット内最大転送量を所要のデータ量に基づいて演算する手段を備える。
【００７７】
図８に示される半導体装置１２は、イニシエータ１０１＿０〜１０１＿２、ターゲット１０２、オンチップバス１００、及びルータ８０５を備え、オンチップバス１００とルータ８０５はスプリットトランザクションバスを構成している。図８において、実施の形態１と同一の機能を有する構成要素については、同一の符号を付して詳細な説明を省略する。
【００７８】
前記ルータ８０５は、ルーティングを行う制御ロジック回路１０８とイニシエータの優先度を生成する優先度生成部８０４＿０〜８０４＿２とを備える。
【００７９】
前記優先度生成部８０４＿０は、残り時間カウンタ１０５、残りデータ量カウンタ１０６、比較器１０７、分割演算部８０１及び分割数レジスタ８００を有する演算部８０６と、時間情報レジスタ８０２及びデータ量情報レジスタ８０３から構成される。
【００８０】
前記時間情報レジスタ８０２には、所望の時間情報を格納する。本実施の形態３では、例えば、該当するイニシエータの所要のデータ処理に要する制限時間８０７を前記時間情報レジスタ８０２に設定する。
【００８１】
前記データ量情報レジスタ８０３は、所望のデータ量情報を格納する。本実施の形態３では、例えば、前記イニシエータが前記制限時間に必要とするデータ量８０８を前記データ量情報レジスタ８０３に設定する。
【００８２】
なお、前記レジスタ８０２及びレジスタ８０３の設定は、前述の前記時間情報レジスタ１０９等と同様のタイミング及び方法で行われる。また、前記制限時間８０７と前記データ量８０８は、必要に応じてマージンを見込んだ値にしてもよい。
【００８３】
前記分割演算部８０１は、前記分割レジスタ８００に設定されている値、前記制限時間８０７及び前記データ量８０８を入力する。前記分割レジスタ８００には、予め前記制限時間８０７と前記データ量８０８を夫々分割する所望の数Ｎ（Ｎは２以上の整数）を設定しておく。前記レジスタ８００の設定は、前述の前記時間情報レジスタ８０２の設定と同様に行われる。分割演算部８０１は、前記制限時間８０７を前記所望の数Ｎで除算して、当該除算した値を優先制御のための処理単位の時間となるスロット時間２０３とし、前記残り時間カウンタ１０５に与える。また、前記データ量８０８を前記所望の数Ｎで除算して、当該除算した値を前記スロット時間に割当てる最大転送量となるスロット内最大転送量３０３とし、前記残りデータ量カウンタ１０６に与える。なお、前記分割演算部８０１は、前述の除算方法として例えば、シフト演算を採用する。
【００８４】
前記実施の形態１と同様の方法により、前記スロット時間２０３が与えられた前記残り時間カウンタ１０５と、前記スロット内最大転送量３０３が与えられた前記残りデータ量カウンタ１０６は、前記残り時間２０２と前記残りデータ量３０２を演算し、それらの演算結果に基づいて比較部１０７が優先度１１３＿０を生成する。
【００８５】
以上より、実施の形態３は、前記実施の形態１と同様の効果を奏し、且つ前記スロット時間および前記スロット内最大転送量をＣＰＵに演算させるためのプログラム等が不要となるので、ソフトウェアの変更が不要となる。
【００８６】
なお、上記の実施の形態３では、前記所望の数Ｎによって前記制限時間８０７と前記データ量８０８を除算する方法であるが、この代わりに前記制限時間８０７と前記データ量８０８を夫々別の数で除算する方法でもよい。例えば、前記制限時間８０７は、前記所望の数Ｎで分割し、前記データ量８０８は、所望の数（Ｎ−ｉ）で分割する。ただし、ｉはＮよりも小さい整数である。
【００８７】
上記の説明では、実施の形態１に係る半導体装置１０に対して前述の分割する演算手段を適用する例を示したが、当該手段を実施の形態２に係る半導体装置１１に適用することもできる。
【００８８】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００８９】
例えば、本発明はスプリットトランザクションバスのプロトコルに適用することを例に説明したが、それ以外のプロトコルに適用してもよい。
【符号の説明】
【００９０】
１０  半導体装置
１１  半導体装置
１２  半導体装置
１００  オンチップバス
１０１＿０、１０１＿１、１０１＿２  イニシエータ
１０２  ターゲット
１０３  ルータ
１０４＿０、１０４＿１、１０４、２  優先度生成部
１０５  残り時間カウンタ
１０６  残りデータ量カウンタ
１０７  比較部
１０８  制御ロジック
１０９  時間情報レジスタ
１１０  データ量情報レジスタ
１１１＿０、１１１＿１、１１１＿２  リクエスト信号
１１２＿０、１１２＿１、１１２＿２  転送完了信号
１１３＿０、１１３＿１、１１３＿２  優先度
１１４  パケット転送経路
１１５  パケット転送経路
１１７＿０、１１７＿１、１１７＿２  データ語長
１２０  演算部
１３０  選択部
１３１  コマンドデコーダ
１３２  バッファ
２００  制限時間
２０１＿０、２０１＿１、２０１＿２  スロット時間
２０２  残り時間
２０３  スロット時間
３０２  残りデータ量
３０３  スロット内最大転送量
７００  余剰割当選択回路
７０１  余剰転送量レジスタ
７０２  余剰転送量判定回路
７０３  加算器
７０４＿０、７０４＿１、７０４＿２  余りデータ量
７０５＿０、７０５＿１、７０５＿２  余剰転送量信号
７０６  判定信号
７０７  余剰転送量
７０８  スロット内加算転送量
７２０  余剰割当部
７３０  演算部
７４０  ルータ
７５０＿０、７５０＿１、７５０＿２  優先度生成部
８００  分割レジスタ
８０１  分割演算部
８０２  時間情報レジスタ
８０３  データ量情報レジスタ
８０４＿０、８０４＿１、８０４＿２  優先度生成部
８０５  ルータ
８０６  演算部
８０７  制限時間
８０８  制限時間に必要とするデータ量
【図１】
2011059915.tif 000003
【図２】
2011059915.tif 000004
【図３】
2011059915.tif 000005
【図４】
2011059915.tif 000006
【図５】
2011059915.tif 000007
【図６Ａ】
2011059915.tif 000008
【図６Ｂ】
2011059915.tif 000009
【図７】
2011059915.tif 000010
【図８】
2011059915.tif 000011