(57)【要約】  バスの動作周波数を抑制しつつ伝送性能の保証を行う制御装置を提供する。  制御装置は、イニシエータ、およびターゲットが分散型のバスで接続されたシステムにおいて、バスを介して受け取ったイニシエータからのアクセス要求の送信タイミングを制御するために使用される。制御装置は、システム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報から生成された、パケット間の干渉を制限可能な間欠周期の情報、および各イニシエータのリアルタイム性能を保証可能な最小のバス動作周波数を示すバス動作周波数の情報を含む間欠情報を記憶する。制御装置は、バス動作周波数の情報に従いクロックを生成するクロック生成部と、通信部と、間欠周期、送信要求の検出時刻、および直前の送信時刻から、送信要求に対する送信許可の発行時刻を決定する送信間隔決定部とを備えている。
2013046607.tif 000002
【特許請求の範囲】
【請求項１】
イニシエータ、およびターゲットが分散型のバスで接続されたシステムにおいて使用され、前記イニシエータから前記バスを介して受け取ったアクセス要求の送信タイミングを制御する制御装置であって、
前記システムの構成に関するシステム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報とを用いて生成された間欠周期情報を記憶する間欠情報記憶部と、
前記システム構成情報および前記フロー構成情報を用いて生成された各イニシエータのリアルタイム性能を保証可能なバス動作周波数で駆動されるクロック信号を取得するとともに、イニシエータから入力されたデータをパケット化し、前記クロック信号に従い、ルータへの送信パケットの送信と、入力された前記データの送信時刻を記録する通信部と、
前記間欠周期情報、イニシエータからの送信要求の検出時刻、および直前の送信時刻から、前記送信要求に対する送信許可の発行時刻を決定する送信間隔決定部と
を備えた制御装置。
【請求項２】
前記間欠情報記憶部は、各イニシエータが同時に送信可能な最大データ長で、全てのイニシエータが同時に送信した場合において、ターゲットが全てのデータを受信し終えるまでに要するバスサイクル数を、前記間欠周期として記憶する、請求項１に記載の制御装置。
【請求項３】
前記間欠情報記憶部は、少なくとも前記間欠周期を用いて算出された、パケットの送受信に要する最大レイテンシを記憶し、前記最大レイテンシが、最も小さい許容レイテンシを持つイニシエータの許容レイテンシを越えない条件下で特定される最小のバス動作周波数を、前記バス動作周波数として記憶する、請求項１または２に記載の制御装置。
【請求項４】
前記送信間隔決定部は、前記間欠周期が、連続するパケットの最小の送信間隔となるよう、前記送信要求に対する送信許可の発行時刻を決定する、請求項３に記載の制御装置。
【請求項５】
前記送信間隔決定部は、前記システムの仕様として予め定められたレート保証期間内の送信数を、予め定められた回数以下に制限する、請求項４に記載の制御装置。
【請求項６】
前記送信間隔決定部は、連続するパケットの送信間隔を、前記システムの仕様として予め定められた平均アクセス間隔に近づけるように決定する、請求項４に記載の制御装置。
【請求項７】
前記間欠情報記憶部は、送信対象となるターゲット及びイニシエータ毎に、各イニシエータのパケットサイズに基づいて算出された前記間欠周期を記憶する、請求項１に記載の制御装置。
【請求項８】
前記間欠情報記憶部は、送信対象となるターゲット毎に算出された間欠周期を記憶する、請求項１に記載の制御装置。
【請求項９】
イニシエータ、およびターゲットが分散型のバスで接続されたシステムにおいて使用され、前記イニシエータから前記バスを介して受け取ったアクセス要求の送信タイミングを制御する制御装置であって、
前記システムの構成に関するシステム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報から、パケット間の干渉を制限可能な間欠周期の情報、および各イニシエータのリアルタイム性能を保証可能な最小のバス動作周波数を示すバス動作周波数の情報を含む間欠情報を生成する間欠情報生成部と、
前記バス動作周波数の情報に従いクロックを生成するクロック生成部と、
前記クロックで動作し、入力されたデータをパケット化して送信し、入力された前記データの送信時刻を記録する通信部と、
前記間欠周期、イニシエータからの送信要求の検出時刻、および直前の送信時刻から、前記送信要求に対する送信許可の発行時刻を決定する送信間隔決定部と
を備えた、制御装置。
【請求項１０】
前記間欠情報生成部は、各イニシエータが同時に送信可能な最大データ長で、全てのイニシエータが同時に送信した場合において、ターゲットが全てのデータを受信し終えるまでに要するバスサイクル数を、前記間欠周期として算出する、請求項９に記載の制御装置。
【請求項１１】
前記間欠情報生成部は、少なくとも前記間欠周期を用いて、パケットの送受信に要する最大レイテンシを算出し、前記最大レイテンシが、最も小さい許容レイテンシを持つイニシエータの許容レイテンシを越えない条件下で特定される最小のバス動作周波数を、前記バス動作周波数として決定する、請求項９または１０に記載の制御装置。
【請求項１２】
前記送信間隔決定部は、前記間欠周期が、連続するパケットの最小の送信間隔となるよう、前記送信要求に対する送信許可の発行時刻を決定する、請求項１１に記載の制御装置。
【請求項１３】
前記送信間隔決定部は、前記システムの仕様として予め定められたレート保証期間内の送信数を、予め定められた回数以下に制限する、請求項１２に記載の制御装置。
【請求項１４】
前記送信間隔決定部は、連続するパケットの送信間隔を、前記システムの仕様として予め定められた平均アクセス間隔に近づけるように決定する、請求項１２に記載の制御装置。
【請求項１５】
前記間欠情報生成部は、送信対象となるターゲット及びイニシエータ毎に、各イニシエータのパケットサイズに基づいて前記間欠周期を算出する、請求項９に記載の制御装置。
【請求項１６】
前記間欠情報生成部は、送信対象となるターゲット毎に、間欠周期を算出する、請求項９に記載の制御装置。
【請求項１７】
イニシエータ、およびターゲットが分散型のバスで接続されたシステムのバス周波数を決定するシステム設計方法であって、
予め用意された、前記システムの構成に関するシステム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報から、パケット間の干渉を制限可能な間欠周期を生成するステップと、
少なくとも前記間欠周期に基づいてパケットの送受信に要する最大レイテンシを算出するステップと、
前記最大レイテンシが、最も小さい許容レイテンシを持つイニシエータの許容レイテンシを越えない条件下で最小となるバス動作周波数を決定するステップと
を包含する、システム設計方法。
【請求項１８】
前記通信部は、イニシエータから入力されたデータの送信時刻として、システム内のクロック信号の周期を計数するカウンタ値を用いる、請求項１または９に記載の制御装置。
【請求項１９】
前記通信部は、システム内のクロック信号の周期を計数するカウンタを有し、イニシエータから入力されたデータの送信時刻に前記カウンタを初期化し、前記カウンタ値を経過時刻情報として送信間隔決定部に供給し、
前記送信間隔決定部は、前記経過時刻情報が前記間欠周期情報または所定の計数値に達したことを判定し、前記イニシエータからの送信要求に対する送信許可を発行する、請求項１から１６のいずれかに記載の制御装置。
【請求項２０】
前記イニシエータが前記ターゲットに対し、連続的にアクセス要求を送信している場合において、
前記送信間隔決定部は、前記間欠周期情報によって示される周期で、前記アクセス要求を前記ターゲットに宛てて定間隔に送信する、請求項１から１６のいずれかに記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、ネットワーク化された通信バスを備える半導体チップにおいて、通信バスの制御を行うための装置、方法及びプログラムに関する。
【背景技術】
【０００２】
近年、システム・オン・チップ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ；以下「ＳｏＣ」）やマルチコア・プロセッサ分野における通信バスとして、ネットワーク・オン・チップ（Ｎｅｔｗｏｒｋ−ｏｎ−Ｃｈｉｐ、以下「ＮｏＣ」）が用いられるようになってきた。【０００３】
図１は、イニシエータＩ１〜Ｉ４とターゲットＴ１〜Ｔ４との間のメインバスにＮｏＣを適用した一般的な接続構成の例を示す。イニシエータは、たとえば、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）などである。また、ターゲットは、たとえば、外部のＤＲＡＭに接続されるメモリコントローラ、ＳＲＡＭ、外部との入出力用のバッファメモリなどである。【０００４】
イニシエータおよびターゲットは、ネットワーク・インタフェース・コントローラ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃｏｎｔｒｏｌｌｅｒ；ＮＩＣ）であるＮＩＣ１〜ＮＩＣ８を介して、ＮｏＣルータＲ１〜Ｒ４で構成されるネットワークバスにより、相互に通信可能な状態に接続されている。ＮｏＣでは、バス上でのデータのやりとりは全てパケット単位で行われる。そのために、ＮＩＣはイニシエータやターゲットが送受信するトランザクションデータをパケット化および脱パケット化する機能を有する。またＮｏＣの構造上、ルータ間を接続するリンクＬ１〜Ｌ８は、複数のイニシエータＩ１〜Ｉ４からターゲットＴ１〜Ｔ４へパケットが送信される際に共用される。【０００５】
図２は、パケット１００の構成例を示す。パケットはトランザクションデータと読み書きの対象となるメモリアドレス等が格納されるパケットヘッダから構成される。パケットが実際にルータ網を転送される際には、フリットと呼ばれる単位に分割されて順次送信される。図３は、複数のフリット１０１から構成されるパケット１００を示す。パケットの先頭部分を含むフリットは「ヘッダフリット」と呼ばれる。フリット１０１のデータ幅Ｗは、通常ルータ間を接続する信号線のビット幅となる。またＮｏＣの構造上、ルータ間を接続するリンクＬ１〜Ｌ８は複数のイニシエータからのターゲットへのアクセスで共用される。【０００６】
メディア処理をはじめとするリアルタイム用途に用いられるバスでは、イニシエータとターゲット間で性能保証を行う必要がある。性能保証としては、レートとレイテンシの保証が含まれる。レートの保証とは、単位時間あたりのイニシエータの要求帯域に対して、１００パーセントの取得帯域が与えられることを意味する。レイテンシの保証とは、最も許容レイテンシの短いイニシエータで、実際のアクセス時のレイテンシ（イニシエータが要求トランザクションをバス上に発行してから、ターゲットで要求が処理され、それに対する返信トランザクションを受け取る迄の時間）が、許容レイテンシ以下となることを意味する。【０００７】
図４は、イニシエータとターゲット間の通信形態を示す。いま、イニシエータＡとターゲットＢが通信関係にあるとする。図４に示すように、イニシエータが発行した要求トランザクション（たとえばメモリアクセス要求）が、ターゲットＢに到着するのに要したサイクル数をＸサイクルとする。また、ターゲットＢが発行した返信トランザクション（たとえばメモリ読み出し結果等の返信）が、イニシエータＡに到着するのに要したサイクル数をＹサイクルであるとする。そしてイニシエータＡで許容できるレイテンシがＳサイクル以内であるとすると、下記数１の関係を満たせることがレイテンシ保証の条件となる。
Ｓ≧Ｘ＋Ｙ          （数１）【０００８】
全てのイニシエータとターゲットの組合せに対して、上記に示した性能保証条件が満たされているとき、システムとして性能保証されていると定義する。【０００９】
いま、図１に示したような、複数のイニシエータとターゲットとが帯域資源を共用するバスで接続されたシステム上で、各イニシエータのレートやレイテンシを保証する場合を想定する。特許文献１は、バスを共用する各イニシエータ毎に保証したいピーク時のバンド幅を見積り、その値を全てのイニシエータについて加算した値でバスの動作周波数を設計する方法を開示する。また特許文献２は、イニシエータ側で送信タイミングの制御を行うことで伝送性能を保証する方法を開示する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００８−１７１２３２号公報
【特許文献２】特開２００６−２９３７９９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上述した従来の技術では、バスの動作周波数の低下、消費電力の低減、設計の簡単化、および／またはバス帯域の利用率の少なくとも１つに関し、さらなる向上が求められていた。または、レイテンシが保証されることも求められていた。【００１２】
本願の、限定的ではない例示的なある実施形態は、バスの動作周波数を抑制しつつ伝送性能の保証を行う制御装置を提供するを提供する。
【課題を解決するための手段】
【００１３】
本発明の例示的な一実施形態にかかる制御装置は、イニシエータ、およびターゲットが分散型のバスで接続されたシステムにおいて使用され、前記イニシエータから前記バスを介して受け取ったアクセス要求の送信タイミングを制御する。前記制御装置は、前記システムの構成に関するシステム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報とを用いて生成された間欠周期情報を記憶する間欠情報記憶部と、前記システム構成情報および前記フロー構成情報を用いて生成された各イニシエータのリアルタイム性能を保証可能なバス動作周波数で駆動されるクロック信号を取得するとともに、イニシエータから入力されたデータをパケット化し、前記クロック信号に従い、ルータへの送信パケットの送信と、入力された前記データの送信時刻を記録する通信部と、前記間欠周期情報、イニシエータからの送信要求の検出時刻、および直前の送信時刻から、前記送信要求に対する送信許可の発行時刻を決定する送信間隔決定部とを備えている。【００１４】
上述の一般的かつ特定の態様は、システム、方法およびコンピュータプログラムを用いて実装され、またはシステム、方法およびコンピュータプログラムの組み合わせを用いて実現され得る。
【発明の効果】
【００１５】
複数のイニシエータとターゲットが接続された分散型の通信バスにおいて、各イニシエータの送受信特性に基づいた送信間隔の制御を行うことで、イニシエータ間でのデータ干渉を制限し、各イニシエータのレート保証及びレイテンシ保証を行うと共に、低いバス動作周波数でバスを動作させることを可能とする。これにより、バスのＡＶ信号処理を含む各種リアルタイム用途への適用を可能とする。また動作周波数が低減できるため、実装面積など省資源化が可能となる。
【図面の簡単な説明】
【００１６】
【図１】イニシエータＩ１〜Ｉ４とターゲットＴ１〜Ｔ４との間のメインバスにＮｏＣを適用した一般的な接続構成の例を示す図である。
【図２】パケット１００の構成例を示す図である。
【図３】複数のフリット１０１から構成されるパケット１００を示す図である。
【図４】イニシエータとターゲット間の通信形態を示す図である。
【図５】図１内に示されたイニシエータＩ１〜Ｉ４の要求帯域の時間変動の様子を示す図である。
【図６】バス帯域の設計過程を示す図である。
【図７】イニシエータＡ〜Ｃとターゲットであるメモリがバスにより接続されている様子を示す図である。
【図８】イニシエータＡとイニシエータＢのメモリアクセス要求の要求帯域の時間変動の様子を示す図である。
【図９】イニシエータ間で発生しているアクセス干渉を示す図である。
【図１０】イニシエータＩ１〜Ｉ４が同時にターゲットＴ１宛に、最大のパケットサイズＮ１〜Ｎ４でパケット送信を行ったタイミングｔ１を示す図である。
【図１１】ターゲットＴ１に向かう各パケットの到着の様子を示す図である。
【図１２】トランザクションから生成されたフリットが、メモリＴ１で受信されるタイミングを示す図である。
【図１３】動作周波数低減の効果を示す図である。
【図１４】各プロセッサＩｉが、サイクル数Ｐだけ間隔を空けて、要求トランザクション１と要求トランザクション２を発行した場合のタイミングを示す図である。
【図１５】イニシエータ（プロセッサ）側のＮＩＣ１３０の基本的な構成を示す図である。
【図１６】システム構成情報の例を示す図である。
【図１７】フロー構成情報の例を示す図である。
【図１８】図１７から抜粋したメモリＴ１に関係する性能保証が必要なフローを示す図である。
【図１９】メモリＴ２を宛先とする、イニシエータＩ１〜Ｉ３のフロー構成情報を示す図である。
【図２０】間欠情報生成部１３１の処理フローを示す図である。
【図２１】プロセッサＩ１に接続されたＮＩＣ１の管理テーブルの構成例を示す図である。
【図２２】ＮＩＣ１がＩ１から要求される平均アクセス回数Ｍ１以下のアクセス・トランザクションを受け付けている様子を示す図である。
【図２３】プロセッサＩ１以外の他のプロセッサがメモリへのアクセスを行っておらず、プロセッサＩ１のみがメモリＴ１に対して連続的にアクセスを行った場合のＮＩＣ１でのアクセス送信タイミングと、メモリＴ１側で観測されるアクセスタイミングとを示す図である。
【図２４】管理テーブルに記録された平均アクセス数Ｍ１を越える回数の要求トランザクションがプロセッサＩ１から送信された場合のＮＩＣ１での送信間隔の調整の様子を示す図である。
【図２５】送信間隔決定部１３４の処理フローを示す図である。
【図２６】実施形態１の変形例を示す図である。
【図２７】増加型のカウンタを用いた例を示す図である。
【図２８】減少型のカウンタを用いた例を示す図である。
【図２９】例示的な実施形態２のシステム構成図である。
【図３０】ポートＩ１のフロー構成情報を示す図である。
【図３１】宛先をＩ３とするフローだけを抽出した結果を示す図である。
【図３２】ポートＩ１に接続されたＮＩＣ１の管理テーブルの例を示す図である。
【図３３】プロセッサＩ１のメモリＴ１宛のフロー１１におけるアクセスのタイミングを示す図である。
【図３４】管理テーブルの例を示す図である。
【図３５】フロー１１の送信間隔がどのように制御されるかを示す図である。
【図３６】例示的な実施形態３にかかる送信間隔決定部１３４の処理フローを示す図である。
【発明を実施するための形態】
【００１７】
上述の特許文献１の方法を用いてバスの帯域設計を行った場合、伝送性能を保証するために必要となるバスの動作周波数が高くなり、消費電力も増加し、設計も難しくなる上、バス帯域の利用率が低くなる。一般的なイニシエータを考えた場合、内部の処理や他のイニシエータとの処理の関係により、要求帯域は時間的に常に一定ではなく、最大要求帯域と最小要求帯域の間で変動する。そのような時間変動する全てのイニシエータで性能保証を行うために、特許文献１では、バスを共用する各イニシエータ毎に保証したいピークのバンド幅を見積り、その値を全てのイニシエータについて加算した値でバスの動作周波数を設計する。全てのイニシエータに対して、ピークのバンド幅がバス上で確保されていた。これにより、レート保証とレイテンシ保証の条件は満たされる。しかし、全てのイニシエータが同時に最大要求帯域で動作しない限り、平均要求帯域を上回る部分のバス帯域は殆ど利用されないため、帯域資源が無駄になる。図５は、図１内に示されたイニシエータＩ１〜Ｉ４の要求帯域の時間変動の様子を示す。横軸ｔはバスクロックのサイクル、縦軸ｒは要求帯域、ｐは最大要求帯域、ａは平均要求帯域を示す。図６は、バス帯域の設計過程を示す。ｐ１〜ｐ４の総和がバス帯域Ｂ（ＭＢ／ｓ）となり、バス幅をＷバイトとした場合、バスの動作周波数Ｆｐｅａｋ（ＭＨｚ）は、下記数２として設計される。
Ｆｐｅａｋ＝Ｂ／Ｗ          （数２）
【００１８】
上述の特許文献２には、イニシエータ側で要求トランザクションの送信間隔を制御することで、最大要求帯域を調整し、バスの動作周波数を抑制する方法が示されている。図７はイニシエータＡ〜Ｃとターゲットであるメモリがバスにより接続されている様子を示す。各イニシエータは送信間隔を調整するための属性表を参照しながら、その間隔設定に従って、バス上にメモリアクセス要求を発行する。属性表には、アクセス対象のメモリアドレス、データのサイズ、次のアクセスを行う迄の遅延サイクル数が上位のプロセッサ（図示せず）によりＤＭＡ転送のセットアップ時に設定される。図８は、イニシエータＡとイニシエータＢのメモリアクセス要求の要求帯域の時間変動の様子を示す。送信間隔制御によって最大要求帯域が抑制されることで、図５と比較してｐ１、ｐ２が低減され、バスの動作周波数としても低減されていることが分かる。しかしながら特許文献２の方法では、送信間隔が属性表の遅延サイクル数により遅延させられる。よって、イニシエータがアクセス要求を出そうとしたタイミングと実際にバス上でアクセスが開始されるタイミングの間に遅延が発生し、また他のイニシエータとの間での送信タイミングの調整が行われていないために、同時にバス上に発行されたアクセス間でも干渉による遅延が発生する。図９は、イニシエータ間で発生しているアクセス干渉を示す。これらの要因により、特許文献２の技術ではイニシエータＡが許容できるレイテンシを守れず、レイテンシ保証ができなかった。
【００１９】
本発明の一態様の概要は以下のとおりである。
【００２０】
本発明の一態様である制御装置は、イニシエータ、およびターゲットが分散型のバスで接続されたシステムにおいて使用され、前記イニシエータから前記バスを介して受け取ったアクセス要求の送信タイミングを制御する制御装置であって、前記システムの構成に関するシステム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報とを用いて生成された間欠周期情報を記憶する間欠情報記憶部と、前記システム構成情報および前記フロー構成情報を用いて生成された各イニシエータのリアルタイム性能を保証可能なバス動作周波数で駆動されるクロック信号を取得するとともに、イニシエータから入力されたデータをパケット化し、前記クロック信号に従い、ルータへの送信パケットの送信と、入力された前記データの送信時刻を記録する通信部と、前記間欠周期情報、イニシエータからの送信要求の検出時刻、および直前の送信時刻から、前記送信要求に対する送信許可の発行時刻を決定する送信間隔決定部とを備えている。
【００２１】
前記間欠情報記憶部は、たとえば、各イニシエータが同時に送信可能な最大データ長で、全てのイニシエータが同時に送信した場合において、ターゲットが全てのデータを受信し終えるまでに要するバスサイクル数を、前記間欠周期として記憶する。
【００２２】
前記間欠情報記憶部は、少なくとも前記間欠周期を用いて算出された、パケットの送受信に要する最大レイテンシを記憶し、前記最大レイテンシが、最も小さい許容レイテンシを持つイニシエータの許容レイテンシを越えない条件下で特定される最小のバス動作周波数を、前記バス動作周波数として記憶する。
【００２３】
前記送信間隔決定部は、前記間欠周期が、連続するパケットの最小の送信間隔となるよう、前記送信要求に対する送信許可の発行時刻を決定する。
【００２４】
前記送信間隔決定部は、前記システムの仕様として予め定められたレート保証期間内の送信数を、予め定められた回数以下に制限する。
【００２５】
前記送信間隔決定部は、連続するパケットの送信間隔を、前記システムの仕様として予め定められた平均アクセス間隔に近づけるように決定する。
【００２６】
前記間欠情報記憶部は、送信対象となるターゲット及びイニシエータ毎に、各イニシエータのパケットサイズに基づいて算出された前記間欠周期を記憶する。
【００２７】
前記間欠情報記憶部は、送信対象となるターゲット毎に算出された間欠周期を記憶する。
【００２８】
本発明の他の一態様である制御装置は、イニシエータ、およびターゲットが分散型のバスで接続されたシステムにおいて使用され、前記イニシエータから前記バスを介して受け取ったアクセス要求の送信タイミングを制御する制御装置であって、前記システムの構成に関するシステム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報から、パケット間の干渉を制限可能な間欠周期の情報、および各イニシエータのリアルタイム性能を保証可能な最小のバス動作周波数を示すバス動作周波数の情報を含む間欠情報を生成する間欠情報生成部と、前記バス動作周波数の情報に従いクロックを生成するクロック生成部と、前記クロックで動作し、入力されたデータをパケット化して送信し、入力された前記データの送信時刻を記録する通信部と、前記間欠周期、イニシエータからの送信要求の検出時刻、および直前の送信時刻から、前記送信要求に対する送信許可の発行時刻を決定する送信間隔決定部とを備えている。
【００２９】
前記間欠情報生成部は、各イニシエータが同時に送信可能な最大データ長で、全てのイニシエータが同時に送信した場合において、ターゲットが全てのデータを受信し終えるまでに要するバスサイクル数を、前記間欠周期として算出する。
【００３０】
前記間欠情報生成部は、少なくとも前記間欠周期を用いて、パケットの送受信に要する最大レイテンシを算出し、前記最大レイテンシが、最も小さい許容レイテンシを持つイニシエータの許容レイテンシを越えない条件下で特定される最小のバス動作周波数を、前記バス動作周波数として決定する。
【００３１】
前記送信間隔決定部は、前記間欠周期が、連続するパケットの最小の送信間隔となるよう、前記送信要求に対する送信許可の発行時刻を決定する。
【００３２】
前記送信間隔決定部は、前記システムの仕様として予め定められたレート保証期間内の送信数を、予め定められた回数以下に制限する。
【００３３】
前記送信間隔決定部は、連続するパケットの送信間隔を、前記システムの仕様として予め定められた平均アクセス間隔に近づけるように決定する。
【００３４】
前記間欠情報生成部は、送信対象となるターゲット及びイニシエータ毎に、各イニシエータのパケットサイズに基づいて前記間欠周期を算出する。
【００３５】
前記間欠情報生成部は、送信対象となるターゲット毎に、間欠周期を算出する。
【００３６】
上述のいずれかの態様にかかる制御装置の前記通信部は、イニシエータから入力されたデータの送信時刻として、システム内のクロック信号の周期を計数するカウンタ値を用いる。
【００３７】
上述のいずれかの態様にかかる制御装置の前記通信部は、システム内のクロック信号の周期を計数するカウンタを有し、イニシエータから入力されたデータの送信時刻に前記カウンタを初期化し、前記カウンタ値を経過時刻情報として送信間隔決定部に供給し、前記送信間隔決定部は、前記経過時刻情報が前記間欠周期情報または所定の計数値に達したことを判定し、前記イニシエータからの送信要求に対する送信許可を発行する。
【００３８】
上述のいずれかの態様にかかる制御装置では、前記イニシエータが前記ターゲットに対し、連続的にアクセス要求を送信している場合において、前記送信間隔決定部は、前記間欠周期情報によって示される周期で、前記アクセス要求を前記ターゲットに宛てて定間隔に送信する。
【００３９】
本発明の他の一態様である方法は、イニシエータ、およびターゲットが分散型のバスで接続されたシステムのバス周波数を決定するシステム設計方法であって、予め用意された、前記システムの構成に関するシステム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報から、パケット間の干渉を制限可能な間欠周期を生成するステップと、少なくとも前記間欠周期に基づいてパケットの送受信に要する最大レイテンシを算出するステップと、前記最大レイテンシが、最も小さい許容レイテンシを持つイニシエータの許容レイテンシを越えない条件下で最小となるバス動作周波数を決定するステップとを包含する。
【００４０】
以下、添付の図面を参照しながら、本開示における制御装置の例示的な実施形態を説明する。
【００４１】
本開示による制御装置は、イニシエータ、およびターゲットが分散型のバスで接続されたシステムにおいて使用され、イニシエータからバスを介して受け取ったアクセス要求の送信タイミングを制御する。
【００４２】
この制御装置は、間欠情報生成部または間欠情報記憶部と、クロック生成部と、通信部と、送信間隔決定部とを備えている。
【００４３】
間欠情報生成部は、システムの構成に関するシステム構成情報、および各イニシエータからのターゲットへのアクセスに必要とされる仕様をフロー単位で示すフロー構成情報から間欠情報を生成する。間欠情報は、パケット間の干渉を制限可能な間欠周期の情報、および各イニシエータのリアルタイム性能を保証可能な最小のバス動作周波数を示すバス動作周波数の情報を含む。間欠情報生成部に代えて間欠情報記憶部が設けられている場合には、間欠情報記憶部は、たとえばシステムの設計者が生成した間欠情報を記憶する。
【００４４】
クロック生成部は、バス動作周波数の情報に従いクロックを生成する。通信部はクロックで動作し、入力されたデータをパケット化して送信し、入力されたデータの送信時刻を記録する。送信間隔決定部は、間欠周期、イニシエータからの送信要求の検出時刻、および直前の送信時刻から、送信要求に対する送信許可の発行時刻を決定する。
【００４５】
本構成により、制御装置は各イニシエータ間のパケット干渉の制限を行うことが可能になる。以下、図面を参照して具体的に説明する。
【００４６】
図１０は、イニシエータＩ１〜Ｉ４が同時にターゲットＴ１宛に、最大のパケットサイズＮ１〜Ｎ４でパケット送信を行ったタイミングｔ１を示す。図１１は、ターゲットＴ１に向かう各パケットの到着の様子を示している。イニシエータＩ１〜Ｉ４が同時送信したパケット以外に干渉するパケットが無ければ、Ｐサイクルの間に全てのパケットが到着する。この図１１は、各イニシエータが要求する後続のパケットを、送信間隔Ｐサイクル以上を保って、送信した場合のタイミングを示す。
【００４７】
図１２は、ターゲットＴ１における各パケットの到着の様子を示す。図１２より、各イニシエータがＰサイクル以上の送信間隔でパケットを送信すれば、１回目と２回目の同時送信パケット同士で干渉することが無いため、干渉によるレイテンシをＰサイクル以下に制限することができる。
【００４８】
また、各イニシエータの許容レイテンシを守るために、最も許容レイテンシの小さいイニシエータに着目する。図１１に示したパケットの到着順の並びで、最も許容レイテンシの小さいイニシエータＩ１の送信したパケットが、最後に到着する場合が、最もレイテンシが厳しくなる条件である。その条件下でもイニシエータＩ１の要求する許容レイテンシＳを守ることが可能な最小のバス動作周波数でバスを駆動する。
【００４９】
図１３は、動作周波数低減の効果を示す。パケットの送信間隔をＰサイクル以上に調整することで、最大要求帯域が削減される。その理由は、Ｐサイクルより短いサイクル間隔で発行されるパケットが存在しないためである。図１３の実線で示した矩形は、本開示の送信間隔制御を行った場合の各イニシエータの要求帯域を示す。破線で示した矩形は、図５と対比するために設けられている。最も許容レイテンシの小さいイニシエータＩ１に着目すると、パケット送信間隔がＰサイクル以上に調整されることにより、時間方向には遅延される。しかしながら、最大要求帯域は低減される。また時間方向の遅延量は、イニシエータＩ１の許容レイテンシ制約を満たせるように決定されるため、各イニシエータのリアルタイム性への影響は無い。各イニシエータに対応する実線及び破線の矩形の面積の和は、イニシエータが送信するデータ量を示しており、両者の面積は等しい。本開示では、以上のように、各イニシエータの伝送性能の保証と、必要最低限のバス動作周波数の決定を行うことができる。
【００５０】
以下、本開示による制御装置の実施形態１〜３をそれぞれ説明する。
【００５１】
（実施形態１）
まず、図１に示すイニシエータＩ１〜Ｉ４とターゲットＴ１〜Ｔ４の通信形態とその諸元を説明する。図１は、イニシエータＩ１〜Ｉ４とターゲットＴ１〜Ｔ４との間のメインバスにＮｏＣを適用した一般的な接続構成の例である。この構成は本実施形態および後述の実施形態においても採用され得る。本実施形態では、各イニシエータＩ１、Ｉ２、Ｉ３、Ｉ４を、リアルタイム処理を実行するプロセッサ、各ターゲットＴ１、Ｔ２、Ｔ３、Ｔ４をメモリコントローラとして説明を行う。ただしこれは一例である。本開示はこれに限定されるものではない。
【００５２】
イニシエータは、バスのマスタとして動作するものであれば何でもよい。たとえば、イニシエータは、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  ＩＣ）、ＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）、各種デバイスに繋がる入出力ポートである。
【００５３】
また、ターゲットは、バスのスレーブとして動作するものであれば何でもよい。たとえば、ターゲットは、外部のＤＲＡＭに接続されるＤＲＡＭコントローラ、ＳＲＡＭ、外部との入出力用のバッファメモリ、各種デバイスに繋がる入出力ポートである。
【００５４】
プロセッサＩ１、Ｉ２、Ｉ３、Ｉ４は、実行中のプログラムとメモリマップで定義された割当に従い、メモリＴ１、Ｔ２、Ｔ３、Ｔ４に対してアクセス要求トランザクションを行う。本明細書では説明の簡略化のため、ターゲットＴ１へのアクセスに着目する。
【００５５】
プロセッサＩ１〜Ｉ４はプロセッサ上で実行される性能保証が必要な動作プログラムの性能保証を実現する。そこで、適切なタイミングで、メモリＴ１からのデータの読出やメモリＴ１へのデータの書き込みをおこなうため、プロセッサＩ１〜Ｉ４はＮＩＣ１〜ＮＩＣ４に対してアクセス要求トランザクションを発行しようとする。ここでは、各プロセッサＩ１、Ｉ２、Ｉ３、Ｉ４がメモリＴ１に対する一回のアクセスに要するデータの最大サイズを、それぞれＮ１、Ｎ２、Ｎ３、Ｎ４とする。単位はバイトである。
【００５６】
各プロセッサＩ１、Ｉ２、Ｉ３、Ｉ４の発行するメモリＴ１へのアクセスの時間間隔は一般的に変動すると考えられるため、平均アクセス間隔をそれぞれＡ１、Ａ２、Ａ３、Ａ４とする。またＩ１、Ｉ２、Ｉ３、Ｉ４がリアルタイム処理を行うために要求する許容レイテンシをＳ１、Ｓ２、Ｓ３、Ｓ４とする。許容レイテンシＳｉ（ｉ＝１〜４）は、プロセッサＩｉ（ｉ＝１〜４）がメモリアクセスのための要求トランザクションを発行しようとしたタイミングから起算して、該要求トランザクションに対する返信トランザクションを受け取る迄に待つことのできる最長の時間である。Ａ１〜Ａ４、Ｓ１〜Ｓ４は時間の単位を持つが、バスの動作周波数がＦ（Ｈｚ）として、下記数３、数４によりバスサイクルの単位に変換可能である。
Ａｉ‘＝Ｆ×Ａｉ （ｃｙｃｌｅ）          （数３）
Ｓｉ‘＝Ｆ×Ｓｉ    （ｃｙｃｌｅ）          （数４）
【００５７】
次に図１に示すＮｏＣバスのトポロジーとその諸元を説明する。図ではイニシエータ側のＮＩＣ１〜ＮＩＣ４とターゲット側のＮＩＣ５〜ＮＩＣ８がバタフライ網と呼ばれるトポロジーで接続されたルータＲ１〜Ｒ４を介して、相互に通信可能な状態に結合されている。ただし本開示はこれに限定されるものではない。ルータの網のトポロジーは、メッシュ網、ツリー網、リング網、スター網、トーラス網、または三次元に拡張されたこれらの網などであってもよい。
【００５８】
ＮＩＣ１〜ＮＩＣ８は、たとえば、接続されたイニシエータやターゲットがインタフェースするバスプロトコル処理、通信先のＮＩＣとデータを送受するためのパケッタイズ処理（パケット化処理）およびデパケッタイズ処理（脱パケット化処理）、接続されたルータとデータを送受するためのフリッタイズ処理（フリット化処理）およびデフリッタイズ処理（脱フリット化処理）などを行う。それらの処理には一般に固定の処理サイクル数を要するため、ＮＩＣで消費されるサイクル数をＮで表す。またルータＲ１〜Ｒ４では接続されたＮＩＣまたは隣接のルータとフリット化されたデータの送受を行うためのバッファマネージメント処理、出力ポートのスイッチング処理などを行う。それらの処理には一般に固定の処理サイクル数を要すため、ルータで消費されるサイクル数をＲで表す。
【００５９】
図１では、いずれの場合もプロセッサから発行された要求トランザクションは、２個のＮＩＣと２個のルータを通過し、返信トランザクションは、２個のＮＩＣと２個のルータを通過する。そのためアクセスの往復のトランザクションで固定的に発生するレイテンシのサイクル数Ｃは、下記数５で表される。
Ｃ＝２×（２×Ｎ＋２×Ｒ）  （ｃｙｃｌｅ）          （数５）
【００６０】
数５は経路上のルータが２段の場合の算出例である。イニシエータからターゲットに至る経路上で通過するＮＩＣやルータの個数が経路毎に異なるようなシステム構成の場合には、各々の個数をシステム構成情報に含めることで、各イニシエータ毎に各ターゲットにアクセスする場合の固定レイテンシの値の算出が可能である。
【００６１】
プロセッサの実際のメモリアクセス時に発生するレイテンシは、レイテンシのサイクル数Ｃに加えて、ルータやＮＩＣ上での他のパケットとの待ち合わせによっても変動する。その変動量をＶとすると、プロセッサが要求トランザクションを発行してから、該要求トランザクションに対する返信トランザクションを受信する迄に要する総レイテンシＶは、下記数６で表される。
Ｚ＝Ｃ＋Ｖ  （ｃｙｃｌｅ）          （数６）
【００６２】
プロセッサの要求する許容レイテンシがＳ（ｓｅｃ）以内でアクセスが完了するためには、バスの動作周波数をＦ（Ｈｚ）を下記数７によって決定する必要がある。
Ｓ×Ｆ≧Ｃ＋Ｖ          （数７）
【００６３】
しかし総レイテンシＶは他のアクセストランザクションとの干渉の度合いにより、変動する。よって、バスの動作周波数Ｆを定量的に見積もることが出来ず、プロセッサの要求するリアルタイム性を保証し得ない。
【００６４】
本実施形態では、総レイテンシＶを定量化可能とし、システムが動作する最小限のバス動作周波数Ｆを設計可能とする。そして、プロセッサのアクセストランザクションの発行間隔を動的に制御し、待ち合わせによる変動レイテンシＶの最大値を規定し、数７に従った動作周波数でバスを駆動することで、無駄のないバス帯域の設計と省電力化を実現する。
【００６５】
次に図１の構成で、各プロセッサが発行するアクセストランザクションのタイミングの制御を説明する。先ほど説明した図１０および図１１と、図１４とを参照する。
【００６６】
図１０は、図１内のプロセッサＩ１〜Ｉ４が同じメモリＴ１に対して、最大のサイズＮｉで要求トランザクション１を同時発行した場合を示す。このときＩ１〜Ｉ４が発行した要求トランザクションはバス上で待ち合わせが発生する。例えば図１１は、メモリＴ１に到着する様子を示す。
【００６７】
プロセッサＩｉのトランザクションを構成するパケットをメモリＴ１が受信するために要するサイクル数Ｐ１（ｉ）は、１フリットを１サイクルで送信するという条件の下で、下記数８で示される。
【数８】
2013046607.tif 000003
ここでＨはパケットヘッダのサイズ（単位はバイト）、ＬｉはプロセッサＩｉのトランザクションの最大サイズ（単位はバイト）、Ｗはバス幅（単位はバイト）である。数８は、プロセッサIiが同時に送信するデータによって消費されるサイクル数を表す値であるため、もしプロセッサIiが同時にｚ個のトランザクションを生成する場合は，数８の右辺の値もｚ倍とする。
【００６８】
プロセッサＩ１〜Ｉ４が同時に発行した４個の要求トランザクションが全てメモリＴ１に受信されるために要するサイクル数Ｐは、下記数９で表される。
【数９】
2013046607.tif 000004
【００６９】
図１４は、各プロセッサＩｉが、サイクル数Ｐだけ間隔を空けて、要求トランザクション１と要求トランザクション２を発行した場合のタイミングを示す。また図１２は、これらのトランザクションから生成されたフリットが、メモリＴ１で受信されるタイミングを示す。Ｉ１〜Ｉ４が時刻ｔ１に同時に発行した４個の要求トランザクション１はプロセッサＩ２、Ｉ３、Ｉ４、Ｉ１の順でメモリＴ１に受信され、続いて間隔Ｐサイクルを空けて時刻ｔ２に発行した４個の要求トランザクション２は、プロセッサＩ２、Ｉ４、Ｉ３、Ｉ１の順でメモリＴ１に受信される。時刻ｔ１に発行されたトランザクション同士及び時刻ｔ２に発行されたトランザクション同士はメモリＴ１に受信される順序により、待ち合わせが発生し、各プロセッサから見た場合のレイテンシＺは変動する。だたし、その変動量Ｖは高々Ｐである。また時刻ｔ１に発行されたトランザクションと時刻ｔ２に発行されたトランザクションは、発行間隔Ｐだけ離されて発行されているため、相互に待ち合わせが発生することはなく、時刻ｔ１に発行されたトランザクションの中で最後にメモリＴ１に到着したトランザクションが完全に受信された直後に、時刻ｔ２に発行されたトランザクションの中で最初にメモリＴ１に到着したトランザクションの受信が開始される。このため、上述の数７は下記数１０に置き換え可能であり、全てのプロセッサＩｉに対して下記数１０の関係が成立する最小のバス動作周波数Ｆでバスを駆動すると共に、各プロセッサのトランザクション発行間隔が最小でもＰサイクルとなるように制御することにより、全てのプロセッサのリアルタイム性を保証した周波数設計が可能となる。
Ｓｉ×Ｆ≧Ｃ＋Ｐ          （数１０）
【００７０】
図１５は、イニシエータ（プロセッサ）側のＮＩＣ１３０の基本的な構成を示す。ＮＩＣ１３０は、たとえば図１のＮＩＣ１〜４である。なお、以下に説明する機能に鑑みて、ＮＩＣ１３０は「送信間隔制御装置」または「制御装置」と呼ぶこともある。
【００７１】
以下、本実施形態における制御装置１３０の構成を説明する。
【００７２】
制御装置１３０は、間欠情報生成部１３１と、クロック生成部１３２と、通信部１３３と、送信間隔決定部１３４とを備えている。
【００７３】
間欠情報生成部１３１は、システム構成情報と各プロセッサＩ１〜Ｉ４のフロー構成情報を基にパケット間の干渉を制限可能な間欠周期情報Ｐと、各プロセッサＩ１〜Ｉ４で守るべき許容レイテンシＳ１〜Ｓ４で規定されるリアルタイム性能を保証できる最小のバス動作周波数Ｆを決定する。
【００７４】
クロック生成部１３２は、最小周波数Ｆに従いバスの動作周波数を生成する。
【００７５】
通信部１３３は、動作周波数Ｆをバスクロックとして動作し、入力された要求トランザクションを送信パケットとして出力すると共に、直前の要求トランザクションの送信時刻を記録する。
【００７６】
送信間隔決定部１３４は、間欠周期情報Ｐと送信要求の検出時刻と直前の送信時刻から送信要求に対する送信許可の発行時刻を決定する。
【００７７】
以下、基本構成の各処理部毎に詳細な動作を説明する。
【００７８】
（間欠情報生成部１３１）
間欠情報生成部は、事前に定義されたシステム構成情報とフロー構成情報を基に、間欠情報を決定する。間欠情報とは、パケット間の干渉を制限可能な間欠周期情報Ｐと、プロセッサのリアルタイム性能を保証できる最小のバス動作周波数Ｆを含む。
【００７９】
システム構成情報は、たとえば図１に示すような、イニシエータ、バス、中継装置、ルータ、およびターゲットによって構成されるシステムの構成に関する情報である。図１６は、システム構成情報の例を示す。バス幅ＷはＮｏＣの各リンクのバス幅であり、単位はバイトである。Ｗバイトのデータ信号は１サイクルで送信することができるため、Ｗはフリットサイズと等価となる。ＮＩＣ及びルータの処理遅延は、ＮＩＣ及びルータの内部におけるパケット転送などの処理で消費される固定量の処理サイクル数である。パケットヘッダサイズは、パケットのヘッダとペイロードがフリット単位で分離されるほうがＮＩＣ及びルータでの処理が行い易いため、一般的にはＷの倍数とするのが良い。バス動作周波数の初期値Ｆ０は、バスを駆動する最小バス動作周波数を決定する際の初期値である。
【００８０】
一方、フロー構成情報は、イニシエータ（たとえばプロセッサ）毎のターゲット（たとえばメモリ）等に対するアクセスに必要とされる仕様を、タスクやメモリ割当等の処理（フロー）単位に分離した情報である。図１７は、フロー構成情報の例を示す。図の例では、イニシエータであるプロセッサＩ１〜Ｉ４には各２本のフローが定義されている。例えばプロセッサＩ１が仮想化機能を有しており、２種類のＯＳが各仮想マシン上で動作し、各ＯＳの要求するアクセスをフローＩＤの１１と１２で管理されている状態などが考えられる。また別の例では、プロセッサＩ２に対して定義されたメモリマップにより、２つのメモリＴ１とＴ２の各領域が割り当てられている場合に、それらに対して、フローＩＤの２１と２２が対応しているとしても良い。
【００８１】
フロー構成情報では、各プロセッサに対して定義されたフロー毎に、フローの特性を表す、性能保証の必要性、アクセスの宛先となるメモリのノードＩＤ、アクセストランザクションの最大サイズ（単位はバイト）、平均アクセス間隔（単位はｓｅｃ）、リアルタイム処理の時間制約である許容レイテンシの値（単位はｓｅｃ）、レート保証期間（単位はｓｅｃ）などの諸元が定義される。またプロセッサＩ４は性能保証が不要なリアルタイム処理を行わないプロセッサの例であり、平均アクセス間隔や許容レイテンシなどは定義されていない。このようなプロセッサの例として、バックエンドでファイルの転送を行うような処理を担うプロセッサが挙げられる。図１７では、性能保証の対象となるプロセッサはＩ１〜Ｉ３であり、フローＩＤが１１〜３２の６本のフローである。
【００８２】
メモリＴ１に対する間欠間隔Ｐ１を求める方法を説明する。図１８は、図１７から抜粋したメモリＴ１に関係する性能保証が必要なフローを示す。メモリＴ１に対してプロセッサ間のパケットの干渉を制限可能な間欠間隔Ｐ１は、上記数８、数９より、下記数１１で求められる。
【数１１】
2013046607.tif 000005
【００８３】
図１９は、メモリＴ２を宛先とする、イニシエータＩ１〜Ｉ３のフロー構成情報を示す。メモリＴ２に対する間欠間隔Ｐ２についても、図１９を用いて、Ｐ１と同様に下記数１２で求められる。
【数１２】
2013046607.tif 000006
【００８４】
最小のバス動作周波数Ｆ（Ｈｚ）は、メモリＴ１、メモリＴ２を宛先とする性能保証が必要な全てのフローに対して、レート保証とレイテンシ保証が可能な値でなければならない。このため、間欠情報生成部１３１は、最小のバス動作周波数Ｆを求めるための周波数探索の初期値としてＦ０を用い、メモリＴ１に関連したフローに対して性能保証が可能な周波数Ｆ１とメモリＴ２に関連したフローに対して性能保証が可能な周波数Ｆ２をそれぞれ求める。そして、周波数Ｆ１およびＦ２のうち大きいほうの値をバスの動作周波数Ｆとする。これにより、全てのメモリに関連するフローで性能保証が可能となる。以下、間欠情報生成部１３１が、メモリＴ１に対する最小動作周波数Ｆ１を求める方法を説明する。
【００８５】
メモリＴ１を宛先とする性能保証型のフローは、最大でＰ１サイクルの間、送信を保留される可能性がある。送信間隔決定部１３４が後続のアクセスパケットとの干渉を制限するためである。送信が最大Ｐ１サイクル保留されても、平均レートでのアクセスが可能であり、かつ許容レイテンシを守れるためのフロー１１に対する必要条件は、下記数１３で与えられる。式中のＣ１は上述の数５で算出される固定レイテンシである。
【数１３】
2013046607.tif 000007
【００８６】
またフロー１１における要求トランザクションが最大でＰ１サイクルの間保留された後ＮＩＣ１から送信され、他のプロセッサから同時に送信されたメモリＴ１宛のパケットと干渉することで発生するレイテンシの最大量は、数１０よりＰ１サイクルとなる。よって、フロー１１に属するアクセストランザクションがプロセッサＩ１が要求する許容レイテンシＳ１を満たすためには、下記数１４の関係が成り立つことが必要条件である。
【数１４】
2013046607.tif 000008
【００８７】
上述の数１３及び数１４より、フロー１１に関して、下記数１５の関係が成り立つことが性能保証が可能な条件となる。
【数１５】
2013046607.tif 000009
【００８８】
数１５の関係が成立しない場合には、成立するまで動作周波数Ｆ０の値を増加させる必要がある。数１５の関係を成立させる最小の動作周波数Ｆ１１が存在し、その値がフロー１１に対して性能保証を行える最小のバス動作周波数の値となる。同様の方法で、間欠情報生成部１３１は、メモリＴ１を宛先とする残りの全てのフロー２１、３１に対しても、性能保証が可能な最小のバス動作周波数Ｆ２１、Ｆ３１を決定する。下記数１６は、メモリＴ１を宛先とする全てのフローで性能保証が可能な最小のバス動作周波数Ｆ１を求める。
【数１６】
2013046607.tif 000010
【００８９】
メモリＴ１に対して行った方法と同様の方法で、図１９と数１２を用いて、メモリＴ２を宛先とする全ての性能保証型のフロー１２、２２、３２で性能保証可能な最小のバス動作周波数Ｆ２を求めることができる。Ｆ１、Ｆ２を用いて、システムの最小バス動作周波数Ｆは、下記数１７で決定される。
【数１７】
2013046607.tif 000011
【００９０】
決定された周波数Ｆは、最小周波数としてクロック生成部１３２に出力する。
【００９１】
決定された最小のバス動作周波数Ｆを用いて、レート管理情報を計算する方法を説明する。プロセッサＩ１のレート保証期間ｇ１はＦを乗じることによりサイクル単位の値Ｇ１に変換可能である。またＧ１サイクル内のメモリＴ１に対する平均アクセス回数Ｍ１はｇ１／Ａ１１となる。またメモリＴ２に対する平均アクセス回数Ｍ２はｇ１／Ａ１２となる。間欠情報生成部１３１は、レート保証期間の値Ｇ１と全ての宛先メモリに対する平均アクセス回数の値Ｍ１、Ｍ２を算出し、レート管理情報として、送信間隔決定部１３４に通知する。この説明から明らかな通り、間欠情報生成部１３１は、最小のバス動作周波数Ｆが得られた後にレート管理情報を算出する。したがって、レート管理情報は副次的に得られる情報であると言える。図１５では、破線によって、レート管理情報が副次的に得られる情報であることが示されている。
【００９２】
図２０は、間欠情報生成部１３１の処理フローを示す。図２０は上述の処理の手順を表している。改めて個々のステップを説明することは省略する。
【００９３】
（クロック生成部１３２）
クロック生成部１３２は、間欠情報生成部１３１によって決定された最小周波数の値Ｆ（Ｈｚ）を周波数とするクロック信号を発生させる。クロック信号はチップ上のクロックツリー等のクロック用配線により、ＮＩＣやルータ等のバス構成要素の動作クロックとして供給される。
【００９４】
（通信部１３３）
通信部１３３は、プロセッサ側とインタフェースされたバスから送信データとしての要求トランザクションを受け取り、パケット化の処理により要求パケットとして構成し、ルータ側とインタフェースされたバスに対してフリット単位で送信する。通信部１３３は、要求パケットの先頭のフリットをルータ側に送信した時刻と宛先のメモリを、送信時刻情報として送信間隔決定部１３４に通知する。
【００９５】
（送信間隔決定部１３４）
送信間隔決定部１３４は、間欠情報生成部１３１から通知された間欠周期情報及びレート管理情報と、通信部１３３から通知された宛先毎の送信時刻情報を管理テーブルに保持する。管理テーブルは、たとえば送信間隔決定部１３４の内蔵メモリ（図示せず）に記録されている。送信間隔決定部１３４は、プロセッサから要求トランザクションを受け入れるタイミングを制御することで、送信間隔の制御を実行する。
【００９６】
図２１は、プロセッサＩ１に接続されたＮＩＣ１の管理テーブルの構成例を示す。プロセッサＩ１では、アクセス先のメモリとしてフロー１１に対してはメモリＴ１、フロー１２に対してはメモリＴ２の２つが利用されている。宛先メモリＴ１に関しては、Ｇ１サイクルの期間にＭ１回の要求トランザクションを送信するというプロセッサの要求帯域に関する諸元と、前後に送信された要求パケットとの干渉を制限するために確保すべき最小送信間隔である間欠周期情報Ｐ１（単位はサイクル）の値、直近の要求トランザクションの送信時刻の情報である送信時刻情報Ｊ１、レート保証期間Ｇ１サイクルの間に実際に送信された要求トランザクションの計数結果であるｍ１、送信間隔の制御により現在保留中の要求トランザクションが送信されるべき時刻の情報であるＤ１（「次回送信時刻情報Ｄ１」とも記述する。）を格納する。送信時刻情報Ｊ１、次回送信時刻情報Ｄ１はバスの動作周波数Ｆ（Ｈｚ）を計数するシステムクロック等を使用しても良く、その場合は送信時刻情報Ｊ１、次回送信時刻情報Ｄ１の時刻の単位はサイクルとなる。即ち、イニシエータから入力されたデータの送信時刻として、システム内のクロック信号の周期を計数するカウンタ値を用いることで送信間隔の決定が実現される。
【００９７】
次に、プロセッサＩ１からメモリＴ１に対してアクセスされる要求トランザクションを例にとって、送信間隔決定部１３４が、ＮＩＣ１で発行されるアクセスのタイミングをどのように調整されるかを説明する。図２２は、ＮＩＣ１がプロセッサＩ１から要求される平均アクセス回数Ｍ１以下のアクセス・トランザクションを受け付けている様子を示す。時刻ｔ０からレート保証期間が開始され、時刻ｔ０＋Ｇ１に至る迄のＧ１サイクルの区間内でＭ１回のアクセスが発行されることで、プロセッサＩ１はレート保証がなされるように動作する。また管理テーブル内のレート保証期間Ｇ１、平均アクセス間隔Ｍ１、間欠周期情報Ｐ１は、レート保証期間中に変更されることはないが、送信時刻情報Ｊ１、アクセス回数ｍ１、次回送信時刻情報Ｄ１に関しては、送信間隔の制御を行うための状態変数として逐次変更がなされるものとする。
【００９８】
レート保証期間が開始される時刻ｔ０の時点で、送信時刻情報Ｊ１には、時刻ｔ０―Ｇ１に開始された直前のレート保証期間中で最後にＮＩＣ１から送信された宛先Ｔ１宛の要求トランザクションの送信時刻が記録されている。またアクセス回数ｍ１はゼロに初期化されている。図２２では、時刻ｔ０から開始されるレート保証期間内に要求されたプロセッサＩ１のメモリＴ１宛のアクセス・トランザクションに番号を付して、１、２、３と表している。また４回目以降のアクセスも、Ｍ１回に達する迄は同様に処理される。プロセッサＩ１から要求された要求トランザクション１は、ＮＩＣ１から同時刻に要求パケットとして送信される。これにより、アクセス回数ｍ１＝１となり、送信時刻情報Ｊ１にはその送信時刻であるｔ０が記録される。次にプロセッサＩ１から要求されたトランザクション２は、要求時刻ｔ１（Ｉ）と送信時刻情報Ｊ１との時間差であるΔｔ１が間欠周期情報Ｐ１以上であるため、直ちに要求が受け付けられて、ＮＩＣ１から送信される。これにより、アクセス回数ｍ１＝２となり、その時刻が送信時刻情報Ｊ１に格納される。次にプロセッサＩ１から要求されたトランザクション３は、要求時刻ｔ２（Ｉ）と送信時刻情報Ｊ１の時間差であるΔｔ２が間欠周期情報Ｐ１未満のため、要求が保留される。そして、次回送信時刻情報Ｄ１が下記数１８によって決定され、管理テーブルに記録される。
Ｄ１＝Ｊ１＋Ｐ１          （数１８）
【００９９】
図２２の例では、次回時刻情報Ｄ１に、要求トランザクション３がＮＩＣ１から送信され、ｍ１＝３となる。送信時刻情報Ｊ１としてその送信時刻が格納される。ＮＩＣ１から要求パケットを送信する間隔として、最小でもＰ１サイクルが確保されるため、前後の要求パケット間の干渉を制限できる。
【０１００】
ここで、プロセッサＩ１以外の他のプロセッサがメモリへのアクセスを行っておらず、プロセッサＩ１のみがメモリＴ１に対して連続的にアクセスを行う例を考える。換言すれば、プロセッサＩ１のみがメモリＴ１に対して連続的にアクセスを行う例を考える。
【０１０１】
図２３は、プロセッサＩ１による連続的な要求タイミングと、ＮＩＣ１によるアクセス要求の送信タイミングと、メモリＴ１におけるアクセスが観測されるタイミングとを示す。プロセッサＩ１からの連続したアクセスがＮＩＣ１を通過する際、送信間隔決定部１３４は、間欠周期情報Ｐ１によって示される定間隔のアクセスに変換する。他のプロセッサのアクセスがないため、ルータでのリソース競合が無ければ、メモリＴ１側で観測されるアクセスのタイミングもまた定間隔となる。
【０１０２】
また、レート保証期間Ｇ１サイクル内で、プロセッサＩ１の要求するアクセス数に対して、ＮＩＣ１で受け付けるアクセス数をＭ１回以下に制限したい場合には、平均アクセス回数Ｍ１とＮＩＣ１が送信した要求トランザクション数ｍ１を比較することにより可能となる。
【０１０３】
図２４は、管理テーブルに記録された平均アクセス数Ｍ１を越える回数の要求トランザクションがプロセッサＩ１から送信された場合のＮＩＣ１での送信間隔の調整の様子を示す。時刻ｔＭ（Ｉ）にプロセッサＩ１からメモリＴ１宛に要求されたアクセス・トランザクションは、図２２で説明した制御の結果、時刻ｔＭ（Ｎ）にＮＩＣ１から送信され、ｍ１＝Ｍ１、Ｊ１＝ｔＭ（Ｎ）が管理テーブル内に記録されている。続いて同一レート保証期間内にＭ＋１回目のアクセスが要求された場合、条件ｍ１＝Ｍ１が既に成立しているため、次回送信時刻が次のレート保証期間となるように下記数１９に従って、管理テーブル内のＤ１を更新する。
Ｄ１＝ｔ０＋Ｇ１          （数１９）
【０１０４】
フロー１１がレート保証期間Ｇ１内に、Ｍ１回以上の過剰なアクセス要求を行うような場合に、他のフローの割当帯域を奪わないためには、実際のアクセス回数をＭ１以下に制限する機能が必要となる。
【０１０５】
図２５は送信間隔決定部１３４の処理フローを示す。図２５は上述の処理の手順を表している。改めて個々のステップを説明することは省略する。
【０１０６】
かかる構成によれば、最小のバス動作周波数でイニシエータの性能保証を行うことが可能となる。また本実施形態では、複数の宛先メモリが存在する場合を説明しているが、宛先メモリが単一の場合であっても同様である。また本実施形態では、間欠情報生成部１３１が間欠周期情報および最小周波数情報を算出し、クロック生成部１３２が通信部１３３に送るバスの動作周波数を、最小周波数情報に従い動的に調整する構成を示したが、全てを動的に行わなくてもよい。
【０１０７】
さらに、間欠情報生成部１３１を設計ツール内の処理として実装し、ツールによって決定された間欠周期情報や最小周波数情報の値を設計パラメータとして用いて、他の構成部分の回路設計を行っても良い。その場合、クロック生成部１３２は、ＶＣＸＯなどのクロック信号の周波数を動的に変更できる機能を有していなくても、設計パラメータとして決定された最小周波数情報に従った固定の周波数で発振するクロックジェネレータとして構成されても良い。または、クロック生成部１３２は、外部から所定周波数で駆動されるクロック信号を取得しても良い。このときの「所定周波数」は、設計ツールによって計算で生成された、最小の周波数である。また間欠周期情報やレート管理情報については、レジスタファイルやメモリやフリップフロップで構成された記憶領域などに格納しておくことにより、送信間隔決定部１３４が動作開始時に読み込むようにしても良い。間欠情報生成部１３１を設計ツールとして実装することにより、バスの帯域設計を計算プログラム等で行えるようになり、シミュレーションやエミュレーションによるバス帯域のカット・アンド・トライによる設計と検証が不要となり、開発工数が短縮できるという優れた効果を有する。
【０１０８】
図２６は、実施形態１によるＮＩＣ１３０の構成の変形例を示す。
【０１０９】
図２６に示すＮＩＣ１３０と、図１５に示すＮＩＣ１３０との相違点は、図１５に示すＮＩＣ１３０の間欠情報生成部１３１に代えて、間欠情報記憶部１３５を設けた点にある。
【０１１０】
間欠情報記憶部１３５は、たとえばフリップフロップを用いたレジスタとして構成され、設計ツールを用いて算出された間欠周期情報を記憶する。設計ツールで算出された最小周波数情報で駆動されたクロック信号は、外部で生成され、通信部１３３に印加される。通信部１３３はクロック信号に従って、ルータとの間でデータの通信を行う。間欠情報を生成する間欠情報生成部１３１に代えて、外部から受け取った間欠情報を記憶する間欠情報記憶部を設けた点を除いては、上述した実施形態１にかかる構成要素の動作は図２６に示す構成にも適用可能である。
【０１１１】
送信時刻情報は、要求パケットの送信時刻を記録しても良いし、要求パケット送信時刻毎に初期化され、経時的に増加または減少するカウンタの値を管理しても良い。
【０１１２】
図２７は、増加型のカウンタを用いた例を示す。通信部での要求パケット送信のタイミングでカウンタの計数値は０に初期化され、カウンタの値は要求パケット送信時刻からの経過時間を表す。送信間隔決定部１３４は、経過時刻情報としてカウンタの計数値を取得し、間欠周期情報の値以上であれば、イニシエータからの送信要求に呼応して送信許可を発行する。計数値を管理するカウンタは、送信間隔決定部１３４に設けられていても良い。その場合には、要求パケットを送信したタイミングを示す情報を通信部１３３から通知すれば良い。
【０１１３】
図２８は、減少形のカウンタを用いた例を示す。通信部１３３は、要求パケットを送信したタイミングを送信間隔決定部１３４に通知する。送信間隔決定部１３４は通知を受けたタイミングでカウンタ値を間欠周期情報の値に初期化する。計数値が０以下であれば、イニシエータからの送信要求に呼応して送信許可を発行する。計数値を管理するカウンタは通信部１３３に設けられていても良い。その場合には、通信部１３３が間欠周期情報を間欠情報記憶部１３１から読み出す構成とすれば良い。
【０１１４】
その結果、通信部１３３がシステム内のクロック信号の周期を計数するカウンタを有し、イニシエータから入力されたデータの送信時刻にカウンタを初期化し、カウンタ値を経過時刻情報として送信間隔決定部１３４に供給する。送信間隔決定部１３４は、経過時刻情報が間欠周期情報または所定の計数値に達したことを判定し、イニシエータからの送信要求に対する送信許可を発行すればよい。
【０１１５】
（実施形態２）
図２９は、本実施形態のシステム構成図である。図２９では、図１と同じ構成要素については同じ符号を用いている。それらの説明は実施形態１において既に説明したので、ここでは説明を省略する。
【０１１６】
本実施形態では、実施形態１に加えて、イニシエータＩ１とイニシエータＩ３の間でメモリを介さない直接通信を行う。以下においても、図１５に示す構成のＮＩＣ１３０を適宜参照しながら説明する。図１５に示すＮＩＣ１３０は、たとえば図２９に示すＮＩＣ１に対応する。以下では便宜的にＮＩＣ１と記述する。
【０１１７】
図２９のルータＲ３は、Ｉ３を宛先とするパケットを受け取った際に、リンクＬ３を介してルータＲ２に送るように経路表が設定されている。このような通信形態の具体的な例としては、イニシエータＩ１及びイニシエータＩ３が外部のハードディスクドライブをインタフェースするための入出力ポートのコントローラデバイスなどが考えられる。
【０１１８】
以下、ポートＩ１に接続されたハードディスクドライブからポートＩ３に接続されたハードディスクドライブにメモリを介さずに高速に格納データをコピーする処理の例を説明する。
【０１１９】
図２９において、ポートＩ１にはデータの転送元となるハードディスクドライブＨＤＤＡが接続されている。またポートＩ３にはデータの転送先となるハードディスクドライブＨＤＤＢが接続されている。ハードディスクドライブの接続インタフェースは、たとえばシリアルＡＴＡである。
【０１２０】
図３０は、ポートＩ１のフロー構成情報を示す。Ｉ４については、変更が無いため省略している。また図３１は、宛先をＩ３とするフローだけを抽出した結果を示す。イニシエータ間の直接通信がある場合であっても、通信先のイニシエータをひとつの宛先として扱うだけで性能を保証することができる。
【０１２１】
ＮＩＣ１では、間欠情報生成部１３１における間欠周期情報の算出時には、Ｔ１、Ｔ２に加えて、Ｉ３の宛先についても算出を行う。宛先Ｉ３に対する間欠周期情報をＰ５で表すと、下記数２０により間欠周期情報が求められる。
【数２０】
2013046607.tif 000012
【０１２２】
イニシエータ間での直接通信においては、通信経路上に存在するルータは、Ｉ１とＩ３の直接通信の場合が、ルータＲ１、Ｒ３、Ｒ２の３個であり、メモリを宛先とする場合よりも１段多くなるため、固定レイテンシＣ５は下記数２１により算出する。
【数２１】
2013046607.tif 000013
【０１２３】
直接通信のフローに対する性能保証の判定には、下記数２２を用いる。
【数２２】
2013046607.tif 000014
【０１２４】
間欠情報生成部１３１は、全てのメモリ宛のフローに加えて、全ての直接通信のフローについても数２２が成り立つ動作周波数Ｆを選択することで最小周波数情報を決定する。図３２は、ポートＩ１に接続されたＮＩＣ１の管理テーブルの例を示す。ポートＩ３宛の直接通信のフローに関するパラメータである、レート保証期間Ｇ１、間欠周期情報Ｐ５、送信時刻情報Ｊ５、次回送信時刻Ｄ５については、最小周波数情報Ｆでサイクル単位に変換され格納されている。ＮＩＣ１の送信間隔決定部１３４は、図３２の管理テーブルに従い、実施形態１と同様の制御を宛先Ｉ３に対しても行う。
【０１２５】
本実施形態に示したようなイニシエータ間の直接通信を行うことによって、ターゲットＴ１〜Ｔ４の物理帯域を越えた通信スループットを得ることが出来る点で優れた効果を有する。とくにターゲットとして全てのイニシエータ間で共有するシステムメモリを考えた場合、全てのフローがシステムメモリを介する構成では、メモリの物理帯域が非常に大きくならざるを得ない。イニシエータ間の直接通信のフローは、メモリを介さないため、メモリの物理帯域とは独立に、イニシエータのスループットを向上することができる。
【０１２６】
（実施形態３）
図１において、イニシエータのアクセスタイミングに揺らぎがある場合に、その揺らぎの幅が大きいと、揺らぎを吸収するためにターゲット側に必要なデジッタリング・バッファのサイズが大きくなる。その結果、面積へのインパクトが問題となったり、複数のプロセッサが密なアクセスを行っている期間に、Ｉ４のような非保証型のアクセスが処理され難くなることがある。その場合には、本実施形態に示す方法で、送信間隔決定部１３４（図１５）を構成することで、これらの問題を回避することができる。
【０１２７】
図３３は、プロセッサＩ１のメモリＴ１宛のフロー１１におけるアクセスのタイミングを示す。フロー１１は、レート保証期間であるＧ１サイクルの期間内に、１０回のアクセス（Ｍ１＝１０）を行うが、そのアクセスタイミングには揺らぎがあり、アクセスがバースト的に連続する密な期間と、アクセスが中断する疎な期間が繰り返されている。このような疎密の揺らぎの要因の例として、イニシエータの内部キャッシュでのヒット／ミスヒットによるもの等が考えられる。
【０１２８】
図３３には、ＮＩＣ１が送信するアクセス要求のタイミングを併せて示している。密な期間に連続的に要求されたアクセスの間隔が、フロー１１の平均アクセス間隔に収束するように送信間隔が調整されている。このような送信間隔制御を実現するための送信間隔決定部１３４の動作を説明する。
【０１２９】
本実施形態にかかるＮＩＣの構成は、送信間隔決定部１３４以外の部分の構成については実施形態１のＮＩＣ１３０（図１５）と同じである。特に説明しない構成要素については、図１５に示す実施形態１のＮＩＣ１３０の説明を援用し、説明を省略する。
【０１３０】
（送信間隔決定部１３４）
図３４は、送信間隔決定部１３４が保持する管理テーブルの例を示す。実施形態１の管理テーブル（図２１）に加えて、宛先毎の累積サイクル数が記録されていることが理解される。累積サイクル数は、レート保証期間の開始時に零に初期化され、レート保証期間中は、ＮＩＣからの送信タイミングと平均アクセス間隔とのサイクル単位でのずれを累積するために使用される。図３５は、フロー１１の送信間隔がどのように制御されるかを示す。説明のため、プロセッサＩ１がメモリＴ１宛に送信するフロー１１のパケットに１から６の番号を付した。パケットのサイズはＮ１フリットとすると、１個のパケットを転送するのに要するサイクル数ｑは、下記数２３で表される。
【数２３】
2013046607.tif 000015
【０１３１】
説明を簡単化するため、プロセッサＩ１、Ｉ２、Ｉ３がメモリＴ１宛に送信するパケットのサイズは全てｑであるとする。レート保証間隔Ｇ１の開始サイクルｔ０において、サイクル累積値ｎ１は零に初期化されている。間欠周期情報Ｐ１と平均コマンド間隔Ａ１１の間には、下記数２４の関係が成り立つとする。
【数２４】
2013046607.tif 000016
【０１３２】
プロセッサＩ１から最初の送信要求が発行されると、送信間隔決定部１３４は、直前のレート保証期間の最終送信パケットの送信タイミングからの間隔が間欠周期情報であるＰ１サイクル以上空いていれば、直ちにパケット１のメモリＴ１への送信を行う。続いて発行された送信要求２に対しては、直前のパケット１の送信タイミングから、平均コマンド間隔であるＡ１１の間隔を空けて、パケット２の送信を行う。アクセスの揺らぎにより、プロセッサＩ１からの送信要求２から送信要求３までの区間にはアクセス要求は発行されず、続く送信要求３がパケット３としてメモリＴ１に送信される。このとき送信間隔決定部１３４は、パケット２の送信タイミングからの経過時間と平均コマンド間隔との差（ずれ）を記録する。図３５に示す例では、差（ずれ）は２ｑサイクルである。送信間隔決定部１３４は、その２ｑサイクルの値をサイクル累積値としてｎ１に記録する。次にプロセッサＩ１から送信要求４が発行されると、平均コマンド間隔とのずれであるサイクル累積値ｎ１を考慮し、下記数２５に従い、パケット４の送信タイミングを計算する。
【数２５】
2013046607.tif 000017
【０１３３】
ｔ３、ｔ４は、それぞれパケット３及びパケット４を送信した時刻を表す。図３５の例でｔ４を計算すると、下記数２６が成り立つ。
【数２６】
2013046607.tif 000018
よって、間欠周期情報Ｐ１の間隔でパケット４が送信される。このとき、下記数２７に示すようにサイクル累積値ｎ１から使用したサイクル数を差し引くことでｎ１を更新する。
【数２７】
2013046607.tif 000019
【０１３４】
図３５では、ｎ１の値が２ｑからｑに更新されている。続く送信要求５でも同様にサイクル累積値ｎ１に累積された累積値ｑを使用して、送信タイミングを平均コマンド間隔Ａ１１よりもｑサイクルだけ早めている。その結果、サイクル累積値ｎ１は零となっている。このため、プロセッサＩ１から発行された送信要求６は、平均コマンド間隔Ａ１１の間隔を空けて、パケット６としてメモリＴ１に送信されている。
【０１３５】
以上のようなサイクル累積値の管理により、各プロセッサの送信要求を平均化し、揺らぎを吸収することが可能となる。図３６は、本実施形態における送信間隔決定部１３４の処理フローを示す。図３６は上述の処理の手順を表している。改めて個々のステップを説明することは省略する。
【０１３６】
本実施形態によれば、たとえば間欠周期情報Ｐ１とプロセッサの平均アクセス間隔（平均コマンド間隔Ａ１１）との差が比較的小さい場合で、かつ平均アクセス間隔以上の間隔でアクセスが揺らいだ場合であっても、直近のパケット送信タイミングからの経過時間と平均コマンド間隔との差（ずれ）を算出し、その差を減らすよう、次のパケットの送信タイミングを早くする。これにより、プロセッサの平均要求帯域を守ることが可能になる。
【産業上の利用可能性】
【０１３７】
本開示は、組込機器向けのＳｏＣにおけるオンチップバスや、汎用プロセッサ、ＤＳＰ上のローカルバスにおける、データ転送経路の制御技術を備えたネットワークバス制御装置、制御方法、制御プログラムに利用可能である。
【符号の説明】
【０１３８】
１３０  制御装置
１３１  間欠情報生成部
１３２  クロック生成部
１３３  通信部
１３４  送信間隔決定部
１３５  間欠情報記憶部
【図１】
2013046607.tif 000020
【図２】
2013046607.tif 000021
【図３】
2013046607.tif 000022
【図４】
2013046607.tif 000023
【図５】
2013046607.tif 000024
【図６】
2013046607.tif 000025
【図７】
2013046607.tif 000026
【図８】
2013046607.tif 000027
【図９】
2013046607.tif 000028
【図１０】
2013046607.tif 000029
【図１１】
2013046607.tif 000030
【図１２】
2013046607.tif 000031
【図１３】
2013046607.tif 000032
【図１４】
2013046607.tif 000033
【図１５】
2013046607.tif 000034
【図１６】
2013046607.tif 000035
【図１７】
2013046607.tif 000036
【図１８】
2013046607.tif 000037
【図１９】
2013046607.tif 000038
【図２０】
2013046607.tif 000039
【図２１】
2013046607.tif 000040
【図２２】
2013046607.tif 000041
【図２３】
2013046607.tif 000042
【図２４】
2013046607.tif 000043
【図２５】
2013046607.tif 000044
【図２６】
2013046607.tif 000045
【図２７】
2013046607.tif 000046
【図２８】
2013046607.tif 000047
【図２９】
2013046607.tif 000048
【図３０】
2013046607.tif 000049
【図３１】
2013046607.tif 000050
【図３２】
2013046607.tif 000051
【図３３】
2013046607.tif 000052
【図３４】
2013046607.tif 000053
【図３５】
2013046607.tif 000054
【図３６】
2013046607.tif 000055
【国際調査報告】
2013046607.tif 000056
2013046607.tif 000057
2013046607.tif 000058
2013046607.tif 000059
2013046607.tif 000060
2013046607.tif 000061