説明

情報処理システム、調停方法

【課題】精度の良い調停を行うことができる情報処理システム、及び調停方法を提供する。
【解決手段】イニシエータIP1−1は、ターゲットIP5に対し、一定処理を行うために必要なデータ転送に応じて複数のアクセスリクエストを順次生成して発行する。算出装置2−1は、データ転送の総データ量と、予め設定された転送許容時間と、から第1の転送レートを算出する。算出装置2−1は、所定の設定タイミング毎に、イニシエータIP1−1に転送済みのデータ量と、イニシエータIP1−1がデータ転送を開始してからの経過時間と、から第2の転送レートを算出する。算出装置2−1は、第1の転送レートと、第2の転送レートと、の比較結果に基づいて、イニシエータIP1−1が発行前のアクセスリクエストに対応付ける重みづけを設定する。調停回路4は、アクセスリクエストに対応付けられた重みづけに基づいて、転送処理の調停を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理システム、及び調停方法に関する。
【背景技術】
【0002】
近年、IPコアから共有資源へのアクセス、詳細には共有メモリの帯域やレイテンシが性能上のボトルネックとなってきている。たとえば組み込み機器では、コストや消費電力の制約が大きいことから、必要最小限のメモリ構成を最大限活用する必要がある。そのため、適切に共有資源の調停を行うことができる調停機構を実現する必要が生じている。以下、共有資源へのアクセスを調停する技術について説明する。
【0003】
特許文献1には、ターゲットIPのチャネル毎にリクエストキューを設定し、チャネル毎に優先度を設定して調停を行う技術が開示されている。
【0004】
非特許文献1には、マスタIP(イニシエータIP)毎に規定の優先度を割り振り、リクエスト発行からの経過時間によって、リクエストに付与された優先度を変化させる技術が開示されている。同様に特許文献2、3にもマスタIP毎に規定の優先度を割り当てることにより調停を行う技術が開示されている。
【0005】
特許文献4には、マスタIP毎にリクエストの発行数をカウントし、カウント数に応じて調停を行う半導体集積回路が開示されている。
【0006】
特許文献5には、メモリアクセスに関する技術が開示されている。当該技術では、一定時間に達するまでの残時間と、予め定められたデータ量に達するまでの残りのデータ量と、から以後のメモリアクセスを緊急として扱うか否かを示す2値の情報をリクエストに設定し、当該設定に応じて調停を行う。
【0007】
なお、特許文献6では、複数のDMA要求に対する調停において、回路面積を低減させつつ調停を実現するデータ転送制御装置が開示されている。特許文献7には、ネットワーク全体の総帯域容量が不足している場合にユーザの接続待ち時間を短縮できるネットワーク帯域制御方法が開示されている。特許文献8には、内部制御を実施するインターコネクト装置が開示されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】米国特許第7191273B2号明細書
【特許文献2】特開2010−39767号公報
【特許文献3】特開2007−201840号公報
【特許文献4】特開2007−310532号公報
【特許文献5】特開2007−280253号公報
【特許文献6】特開2005−85079号公報
【特許文献7】特開2008−177979号公報
【特許文献8】特表2010−531518号公報
【非特許文献】
【0009】
【非特許文献1】T. Takizawa and M. Hirasawa, "An efficient memory arbitration algorithm for a single chip MPEG2 AV decoder" IEEE Trans. Cons. Electron., vol.47, no.3, pp.660-665, Aug. 2001.
【発明の概要】
【発明が解決しようとする課題】
【0010】
特許文献1〜3及び非特許文献1に記載の技術では、リクエストの優先度を固定的に決定しており、データ転送の状態を考慮して優先度を定めることが不可能である。そのため、本来先に処理されるべきリクエストの処理が後回しにされる恐れがある。すなわち、調停の精度が十分ではない恐れがある。
【0011】
特許文献4に記載の技術では、リクエスト単位での重みづけを行っているわけではないため、調停の精度が十分ではない恐れがある。特許文献5に記載の技術では、データ転送状態を考慮しているものの、リクエストに設定する重みづけ情報が平準化された情報であるため、調停の精度が十分ではない恐れがある。
【0012】
すなわち、上述の技術では、リクエスト単位でデータ転送状態に応じた重みづけの設定を的確に行っていないため、調停の精度が十分ではないという問題があった。
【課題を解決するための手段】
【0013】
本発明にかかる情報処理システムの一態様は、
自律的に共有資源にアクセスを行う複数のイニシエータIPと、共有資源である少なくとも1つのターゲットIPと、調停機構と、を備えた情報処理システムであって、
前記複数のイニシエータIPに含まれる第1のイニシエータIPは、前記ターゲットIPに対し、一定処理を行うために必要なデータ転送に応じて複数のアクセスリクエストを順次生成して発行し、
前記調停機構は、前記データ転送の総データ量と、予め設定された転送許容時間と、から第1の転送レートを算出し、
所定の設定タイミング毎に、前記第1のイニシエータIPが転送済みのデータ量と、前記第1のイニシエータIPが前記データ転送を開始してからの経過時間と、から第2の転送レートを算出し、
前記第1の転送レートと、前記第2の転送レートと、の比較結果に基づいて、前記第1のイニシエータIPが発行前の前記アクセスリクエストに対応付ける重みづけを設定し、
前記アクセスリクエストに対応付けられた前記重みづけに基づいて、転送処理の調停を行う、ものである。
【0014】
本発明にかかる調停方法の一態様は、
自律的に共有資源にアクセスを行う複数のイニシエータIPと、共有資源である少なくとも1つのターゲットIPと、の間のデータ転送を調停する方法であって、
前記複数のイニシエータIPに含まれる第1のイニシエータIPから前記ターゲットIPに対し、一定処理を行うために必要なデータ転送に応じて複数のアクセスリクエストを順次生成して発行し、
前記データ転送の総データ量と、予め設定された転送許容時間と、から第1の転送レートを算出し、
所定の設定タイミング毎に、前記第1のイニシエータIPが転送済みのデータ量と、前記第1のイニシエータIPが前記データ転送を開始してからの経過時間と、から第2の転送レートを算出し、
前記第1の転送レートと、前記第2の転送レートと、の比較結果に基づいて、前記第1のイニシエータIPが発行前の前記アクセスリクエストに対応付ける重みづけを設定し、
前記アクセスリクエストに対応付けられた前記重みづけに基づいて、転送処理の調停を行う、ものである。
【0015】
本発明の情報処理システムは、データ転送の条件から算出した基準となる第1の転送レート、転送済みのデータ量から算出した第2の転送レートを比較し、この比較に応じてアクセスリクエスト毎に重みづけを行っている。このようにアクセスリクエスト毎にデータ転送状況に応じた重みづけを行っているため、情報処理システムは、精度の良い調停処理が実現できる。
【発明の効果】
【0016】
本発明によれば、精度の良い調停を行うことができる情報処理システム、及び調停方法を提供することができる。
【図面の簡単な説明】
【0017】
【図1】実施の形態1にかかる情報処理システムの構成を示すブロック図である。
【図2】実施の形態1にかかる算出装置2の構成を示すブロック図である。
【図3】実施の形態1にかかる遅延制約条件設定レジスタ23に設定される各パラメータを示す図である。
【図4】実施の形態1にかかるアクセスリクエストの一例を示す概念図である。
【図5】実施の形態1にかかる遅延許容値の算出方法を説明する図である。
【図6】実施の形態1にかかる調停回路4の構成を示すブロック図である。
【図7】実施の形態1にかかる調停回路4による調停の流れを示すフローチャートである。
【図8】実施の形態4にかかる遅延許容値の算出方法を説明する図である。
【図9】実施の形態4にかかる調停回路4による調停の流れを示すフローチャートである。
【図10】実施の形態5にかかる調停回路4の構成を示すブロック図である。
【図11】実施の形態6にかかる情報処理システムの構成を示すブロック図である。
【図12】実施の形態7にかかる情報処理システムの構成を示すブロック図である。
【図13】実施の形態8にかかる情報処理システムの構成を示すブロック図である。
【発明を実施するための形態】
【0018】
<実施の形態1>
以下、図面を参照して本発明の実施の形態について説明する。図1は、本実施の形態にかかる情報処理システムの構成を示すブロック図である。情報処理システムは、イニシエータIP1(1−1〜1−3)、算出装置2(2−1〜2−3)、ルータ3(3−1〜3−3)、調停回路4、ターゲットIP5、を備える。イニシエータIP1とターゲットIP5は、ルータ3を介してネットワーク接続されている。なお、以降の説明では、算出装置2及び調停回路4を調停機構とも呼称する。
【0019】
イニシエータIP1は、マスタIPとも呼称され得る。本例では、イニシエータIP1は、ネットワーク通信を行うコンピュータ等の一般的な装置である。イニシエータIP1−1〜1−3は、自律的にターゲットIP5に対してアクセスを行う。イニシエータIP1は、一定処理を行うために、複数のアクセスリクエストを発行する。本明細書において、一定処理とは、一定時間内に所定のデータ量の扱う処理を指す。一定処理の一例として、動画再生時のために1秒間に30枚のHD画像データを取得する処理が挙げられる。以下、画像データを扱う例について説明する。
【0020】
ここで、動画再生のために1/30秒間(33.3ミリ秒間)に1枚の画像データに相当する6220800バイト(1920×1080ドットの画像データであり、各画像の各ドットについてRGBがそれぞれ8ビットであらわされている)を転送する必要があり、1アクセスリクエストが128バイトのデータを転送する場合、イニシエータIPは、1/30秒間(33.3ミリ秒間)に48600回のアクセスリクエストの発行を順次行う。
【0021】
ルータ3は、アクセスリクエスト及びデータの転送を行う。ターゲットIP5は、イニシエータIP1から共有される共有資源である。ターゲットIP5は、スレーブIPとも呼称される。例えば、ターゲットIP5は、SDRAMコントローラを搭載した装置である。
【0022】
算出装置2は、画像データ転送の状況に応じて、イニシエータIP1から発行されるアクセスリクエストに対して遅延許容値を付与する。遅延許容値とは、アクセスリクエストの処理が優先的に行われるべきか否かを示す重みづけを示す。本例では、遅延許容値は、アクセスリクエストが処理されるまでに待ち状態として許容できる時間情報である。例えば、あるアクセスリクエストの遅延許容値が500nsである場合、このアクセスリクエストは500ns以内に処理される必要がある。
【0023】
算出装置2は、遅延許容値を付与したアクセスリクエストをターゲットIP5に送信する。算出装置2は、ターゲットIPから受信したデータの転送量をカウントするとともに、受信したデータをイニシエータIP1に送信する。以下、図2を参照して算出装置2の構成及び動作について説明する。
【0024】
算出装置2は、転送量計測部21と、転送量累積カウンタ22と、遅延制約条件設定レジスタ23と、経過時間計測タイマ24と、遅延許容値計算部25と、遅延許容値付与部26と、を備える。
【0025】
転送量計測部21は、ターゲットIP5から受信した1回のアクセスリクエスト毎にデータのデータサイズを計測する処理部である。上述の例では、転送量計測部21の計測値は、常に128バイトとなる。
【0026】
転送量累積カウンタ22は、転送量計測部21が計測したデータ量を累積してカウントするカウンタである。すなわち、転送量累積カウンタ22は、一定処理が開始してからデータ転送を行った累積のデータ量を保持する。累積カウンタ22は、この累積データ量を所定の設定タイミングで遅延許容値計算部25に供給する。
【0027】
遅延制約条件設定レジスタ23は、画像データの転送に関する各種の設定値を保持するレジスタ群である。図3を参照して、遅延制約条件設定レジスタ23に設定される各パラメータを説明する。
【0028】
単位時間設定レジスタは、1枚の画像データの転送開始から終了までの単位時間を設定するレジスタである。本例では、単位時間設定レジスタには、33.3msが設定されている。データ転送要求量設定レジスタは、単位時間当たりのデータ転送量を設定するレジスタである。本例では、データ転送要求量設定レジスタには、6220800バイトが設定されている。有効レジスタは、後述の遅延許容値付与部26がアクセスリクエストに遅延許容値を付与するか否かを設定する。有効レジスタに1を設定した場合、遅延許容値付与部26は、アクセスリクエストに遅延許容値を付与する。一方、有効レジスタに0を設定した場合、遅延許容値付与部26は、アクセスリクエストに遅延許容値を付与しない。
【0029】
再び図2を参照する。経過時間計測タイマ24は、1枚の画像データ転送を開始してからの経過時間を計測するタイマである。経過時間計測タイマ24は、経過時間を遅延許容値計算部25に通知する。
【0030】
遅延許容値計算部25には、転送量累積カウンタ22から累積データ量、経過時間計測タイマ24から経過時間が供給される。また、遅延許容値計算部25は、遅延制約条件設定レジスタ23から各レジスタの値を読み出す。遅延許容値計算部25は、これらの値を用いて各アクセスリクエストに付与する遅延許容値を算出する処理部である。以下、図4及び具体例を示して、遅延許容値計算部25による遅延許容値の算出処理を説明する。図4は、遅延許容値計算部25による遅延許容値の算出処理を示す概念図である。
【0031】
転送対象とする画像データ(1920×1080ドットの画像データであり、各画像の各ドットについてRGBがそれぞれ8ビットであらわされている)は、以下の式に示すように6220800バイトである。
1920×1080×(8+8+8)=49766400ビット=6220800バイト
【0032】
単位時間(単位時間設定レジスタに設定された値)は、33.333・・(以下、単に33.3とする)msである。1つのアクセスリクエストが転送できるデータ量を128バイトとする。そのため、1枚の画像データの転送には48600個(6220800/128)のアクセスリクエストを処理する必要がある。この前提の下で、遅延許容値計算部25が10ms毎に遅延許容値を算出することを想定する。すなわち、遅延許容値計算部25は、0〜10msの遅延許容値、10〜20msの遅延許容値、20〜30msの遅延許容値、30〜33.3msの遅延許容値をそれぞれ算出する。
【0033】
遅延許容値計算部25は、はじめに理想転送レート(第1の転送レート)を算出する。理想転送レートとは、対象とするデータ転送を終了させるために基準となる転送割合を示す。本例では、図4に示すように、理想転送レートは、総転送データ量6220800バイトのデータを単位時間33.3msで割った一次関数となる。
【0034】
遅延許容値計算部25は、理想転送レートと合致するように0〜10msの遅延許容値を算出する。具体的には、遅延許容値計算部は、以下の式から遅延許容値を646nsと算出する。
33.3ms/48600回=646ns
【0035】
遅延許容値計算部25は、10msの経過後に遅延許容値を再計算する。遅延許容値計算部25は、理想転送レートとデータ転送の実績(第2の転送レート)と、を比較し、比較結果に応じて遅延許容値を算出する。
【0036】
理想転送レートでは、10ms経過時に1866240バイトの転送が終了する必要がある。
6220800バイト×10/33.3=1866240バイト
【0037】
理想転送レートでは、20ms経過時に3732480バイトの転送が終了する必要がある。同様に、理想転送レートでは、30ms経過時に3732480バイトの転送が終了する必要がある。
6220800バイト×20/33.3=3732480バイト
6220800バイト×30/33.3=5598720バイト
【0038】
遅延許容値計算部25は、理想転送レートと、データ転送の実績を比較し、比較結果に応じて遅延許容値を算出する。以下に具体例を示す。
【0039】
図4(A)に示すように10ms経過時のデータ転送量が1200000バイトであった場合、遅延許容値計算部25は、10〜20msの間に処理されるべきアクセスリクエストの個数を算出する。そして、遅延許容値計算部25は、当該個数を基に10〜20msの遅延許容値505nsを算出する。
(3732480バイト−1200000バイト)/128バイト=197850回
10ms/197850回=505ns
【0040】
同様に、図4(B)に示すように10ms経過時のデータ転送量が2400000バイトであった場合、遅延許容値計算部25は、遅延許容値961nsを算出する。
(3732480バイト−2400000バイト)/128バイト=104100回
10ms/104100回=961ns
【0041】
同様に、図4(C)に示すように10ms経過時のデータ転送量が3000000バイトであった場合、遅延許容値計算部25は、遅延許容値1747nsを算出する。
(3732480バイト−3000000バイト)/128バイト=57225回
10ms/57225回=1747ns
【0042】
遅延許容値算出部25は、20ms経過時、30ms経過時にも同様に遅延許容値を算出する。なお、上述した遅延許容値の算出方法は、あくまで一例であり、他の方法により遅延許容値を算出しても良い。例えば、遅延許容値算出部25は、理想転送レート(たとえば10ms経過時の理想データ量である1866240バイト)と、データ転送の実績値(たとえば10ms経過時の転送量)と、の差分を算出し、その差分の大きさと比例関係になるように遅延許容値を設定しても良い。
【0043】
再び図2を参照する。遅延許容値算出部25は、算出した遅延許容値を遅延許容値付与部26に通知する。遅延許容値付与部26は、各アクセスリクエストに遅延許容値計算部25が算出した遅延許容値を付与する。遅延許容値付与部26は、遅延許容値を付与したアクセスリクエストをターゲットIP5に送信する。
【0044】
遅延許容値を付与されたアクセスリクエストの概念を図5に示す。アクセスリクエストは、本例ではいわゆるパケットである。図5に示すパケットは、フリットを2つ持つ。相手先IP(データの送信先)としてターゲットIP 5、送信元IP(データの送信元)としてイニシエータIP1−1、R/W種別(リード要求なのか、ライト要求なのか)としてリード、データ長として8ワード、遅延許容値として800ns、アドレス(例えばメモリにアクセスする場合に当該メモリ上のアクセスアドレス)として0x80000000が設定されている。
【0045】
続いて、図6を参照して調停回路4の説明を行う。調停回路4は、遅延許容値を利用して調停を行う。本例では、ターゲットIPがSDRAM(Synchronous Dynamic Random Access Memory)コントローラであることを想定し、調停回路4は調停を行う。調停回路4は、複数のリクエストエントリ41と、遅延許容値更新部42と、遅延許容値比較部43と、バンク競合チェッカ44と、ページヒットチェッカ45と、発行リクエスト調停部46と、セレクタ47と、を備える。なお、本例ではルータを介して各装置がネットワーク接続された構成であるため、調停回路4の構成を備える装置がネットワーク上に配置される。
【0046】
リクエストエントリ41は、イニシエータIP1から発行されたアクセスリクエストを保持する。ルータ3を介して入力されたアクセスリクエストは、空き状態となっているリクエストエントリ41に格納される。
【0047】
なお、調停回路4の備えるリクエストエントリ41の個数は、例えばターゲットIP5のデータ転送能力や特性、イニシエータIP1の個数に応じて決定すればよい。イニシエータIP1の個数が多い場合には、リクエストエントリ41の個数を多くするほうが効率的であるが、ターゲットIP5の数と等しくする必要はない。
【0048】
遅延許容値更新部42は、一定間隔毎に各リクエストエントリ41に格納されたアクセスリクエストの遅延許容値を更新する。詳細には、遅延許容値更新部42は、100ns毎に各リクエストエントリ41に格納されたアクセスリクエストの遅延許容値を100nsだけ小さくするように更新する。例えば、遅延許容値更新部42は、100ns経過時に800nsであった遅延許容値を700nsに更新する。
【0049】
遅延許容値比較部43は、各リクエストエントリ41に格納されたアクセスリクエストの遅延許容値を評価、比較する処理部である。遅延許容値比較部43は、評価、比較の結果を発行リクエスト調停部46に通知する。遅延許容値比較部43、バンク競合チェッカ44、ページヒットチェッカ45、及び発行リクエスト調停部46の詳細な動作は図7を参照して後述する。
【0050】
バンク競合チェッカ44は、SDRAMコントローラ内においてバンク競合が生じているか否かを判定する。バンク競合チェッカ44は、判定結果を発行リクエスト調停部46に通知する。ページヒットチェッカ45は、SDRAMコントローラ内においてページヒットが生じているか否かを判定する。ページヒットチェッカ45は、判定結果を発行リクエスト調停部46に通知する。
【0051】
発行リクエスト調停部46は、遅延許容値の評価、比較結果、バンク競合の有無、ページヒットの有無に応じてアクセスリクエストの調停を行う。発行リクエスト調停部46は、調停結果として処理対象とするアクセスリクエストが格納されたリクエストエントリ41の情報をセレクタ47に通知する。
【0052】
セレクタ47は、発行リクエスト調停部46から通知された情報を基にアクセスリクエストを選択して、ターゲットIP5に発行する。発行されたアクセスリクエストは、リクエストエントリ41から削除される。
【0053】
次に、図7を参照して、調停回路4の調停処理の詳細を説明する。図7は、調停処理の流れを示すフローチャートである。発行リクエスト調停部46は、遅延許容値が所定値(例えば300ns)以下のアクセスリクエストがあるか否かを判定する(S11)。所定値以下のアクセスリクエストがある場合(S11:Yes)、発行リクエスト調停部46は、バンク競合が生じているか否かを判定する(S12)。バンク競合が生じていない場合(S12:No)、発行リクエスト調停部46は、遅延許容値が所定値以下のアクセスリクエストのうち一番遅延許容値が小さいものを選択対象と決定する(S13)。アクセスリクエストの決定後には、遅延許容値更新部42は、一定間隔毎に選択されなかったアクセスリクエストの遅延許容値を更新する(S14)。なお、以降の処理においてもアクセスリクエストの決定後には、遅延許容値の更新が実行される。
【0054】
バンク競合が生じた場合(S12:Yes)、発行リクエスト調停部46は、当該バンクにあるアクセスリクエストの選択対象外とする(S15)。所定値以下のアクセスリクエストがない場合(S11:No)またはバンク競合が生じた場合(S12:Yes)、発行リクエスト調停部46は、ページヒットしたアクセスリクエストがあるか否かを判定する(S16)。
【0055】
ページヒットしたアクセスリクエストがある場合(S16:Yes)、発行リクエスト調停部46は、当該アクセスリクエストを選択対象と決定する(S17)。
【0056】
ページヒットしたアクセスリクエストがない場合(S16:No)、発行リクエスト調停部46は、遅延許容値が一番小さいアクセスリクエストを選択し(S18)、当該アクセスリクエストに関してバンク競合が生じていない場合(S19:No)、当該リクエストを選択対象と決定する(S20)。
【0057】
一方、バンク競合が生じた場合(S19)、発行リクエスト調停部46は、当該バンクにあるアクセスリクエストを選択対象から除外し(S21)、遅延許容値が一番小さいアクセスリクエストの選択から再度実行する(S17)。
【0058】
なお、図7に示す処理ではバンク競合やページヒットを考慮したが、調停処理は必ずしもこれらの状況を考慮する必要はない。図7は一例であり、調停処理は、遅延許容値を考慮したものであればよい。
【0059】
続いて、本実施の形態にかかる情報処理システムの効果について説明する。本実施の形態にかかる情報処理システムは、理想転送レート(第1の転送レート)とデータ転送の実績(第2の転送レート)を比較し、この比較に応じてアクセスリクエスト毎に遅延許容値を設定している。本実施の形態にかかる情報処理システムでは、このようにアクセスリクエスト毎にデータ転送状況に応じた重みづけ(上述の例では遅延許容値の設定)を行っているため、精度の良い調停処理が実現できる。
【0060】
さらに、遅延許容値は、データ転送状況に応じて自動的に設定される。すなわち、ユーザがアクセスリクエストの重みづけを手動で決定する必要がない。
【0061】
図4を参照して説明した遅延許容値の算出方法では、次の設定タイミングまでに終了すべきデータ転送量に基づく正確な遅延許容値を算出することができる。
【0062】
調停回路4において、遅延許容値は、経過時間に応じて更新される。そのため、固定的な優先度設定に比べて、より正確な調停を行うことができる。
【0063】
なお、算出装置2は、算出した遅延許容値を調停回路4に直接送信しても良い。詳細には、算出装置2は、送信元のイニシエータIPの識別子と、遅延許容値と、を対にして送信する。調停回路4は、アクセスリクエストに含まれる送信元の情報を基に、アクセスリクエストと遅延許容値を関連付ける。
【0064】
<実施の形態2>
本実施の形態にかかる情報処理システムは、データ転送開始からの経過時間が大きくなるにつれて、算出した値よりも大きな値を遅延許容値とすることを特徴とする。これにより、データ転送の終了制限時間までにデータ転送をより確実に終了することができる。本実施の形態にかかる情報処理システムについて実施の形態1と異なる点を以下に説明する。
【0065】
本実施の形態にかかる情報処理システムの構成は、実施の形態1と同様である。本実施の形態にかかる遅延許容値算出部25の動作を図4を参照して説明する。以下の説明では、遅延許容値算出部25が10ms経過時に遅延許容値を算出するものとする。
【0066】
遅延許容値算出部25は、理想転送レートと、データ転送の実績を比較し、比較結果に応じて遅延許容値を算出する。
【0067】
図4(A)に示すように10ms経過時のデータ転送量が1200000バイトであった場合、遅延許容値計算部25は、上記した算出方法により10〜20msの遅延許容値505nsを算出する。遅延許容値算出部25は、この算出した値に、以下に示す係数kを乗算する。
k:(1−経過ミリ秒/100)
この場合、係数kは0.9となる。そのため、遅延許容値計算部25は、遅延許容値を455nsと決定する。
【0068】
なお、係数kの設定方法は、データ転送開始からの経過時間に応じて小さくなるように設定すればよく、他の係数式を用いても良い。例えば、データ転送開始から10ms経過まではk=0.9、10ms〜20msまではk=0.8、20ms〜33.3msまではk=0.7と設定しても良い。
【0069】
このように、遅延許容値計算部25は、経過時間が大きくなるにつれて、遅延許容値を算出値よりも小さくなるように設定する。これにより、本実施の形態にかかる情報処理システムは、データ転送の終了制限時間までに転送処理をより確実に終了することができる。
【0070】
<実施の形態3>
本実施の形態にかかる情報処理システムは、データ転送開始からの経過時間が大きくなるにつれて、遅延許容値の設定タイミングに達するまでの時間間隔を小さくすることを特徴とする。データ転送の終了制限時間に近づくにつれて遅延許容値を頻繁に再設定することができるため、より精度の高い調停が実行できる。本実施の形態にかかる情報処理システムについて実施の形態1と異なる点を以下に説明する。
【0071】
本実施の形態にかかる情報処理システムの構成は、実施の形態1と同様である。実施の形態1の遅延許容値計算部25は、画像データの転送の終了制限時間である33.3msに対して、10ms毎に遅延許容値の算出を行っていた。本実施の形態にかかる遅延許容値計算部25は、画像データの転送の終了制限時間である33.3msに近づくにつれて、遅延許容値の設定タイミングを徐々に短くする。例えば、遅延許容値計算部25は、データ転送開始から10ms、18ms、24ms、28ms、31ms、32.5ms経過時にそれぞれ遅延許容値の再算出を行う。
【0072】
上述の構成により、データ転送が十分に進まずに終了制限時間付近まで経過した場合であっても、画像データの転送の終了制限時間に近づくにつれて頻繁に遅延許容値を設定することができる。これにより、データ転送を確実に終了することができる。
【0073】
<実施の形態4>
本実施の形態にかかる情報処理システムは、データの転送状態に応じて、アクセスリクエストに対して即時処理を求めるフラグを設定する。調停処理は、このフラグを参照して行われる。これにより、データの転送が十分に行われていない場合に、データの転送を促進することができる。以下、実施の形態1と異なる構成、動作について説明する。
【0074】
まず、遅延許容値計算部25の動作について図8を参照して説明する。遅延許容値計算部25は、遅延許容値の算出時に強遅延制約レート(第3の転送レート)を考慮する。強遅延制約レートとは、この転送レートよりもデータ転送実績が低い場合には、以後発行するアクセスリクエストをハードリアルタイム性保証リクエストと判定するための転送レートである。強遅延制約レートは、遅延制約条件設定レジスタ23に設定する。
【0075】
ハードリアルタイム性保証リクエストとは、即時的な処理を求めるリクエストである。本例では、ハードリアルタイム性保証リクエストは、遅延許容値以内に処理が終了しなければシステムに多大な影響を与えるリクエストとなる。なお、上述の実施例では、全てのアクセスリクエストは、ソフトリアルタイム性保証リクエストである。ソフトリアルタイム性保証リクエストは、処理制限時間が定まっているものの、当該処理制限時間内に処理が終了しなくても大きな影響が無いリクエストである。
【0076】
遅延許容値計算部25は、実施の形態1と同様に設定タイミングにおいて遅延許容値を算出する。これと同時に、遅延許容値計算部25は、データ転送の実績値(第2の転送レート)と、強遅延制約レートと、を比較する。データ転送の実績値が強遅延制約レートよりも小さい場合、遅延許容値計算部25は、遅延許容値付与部26に対して、以後発行するアクセスリクエストに強遅延制約フラグ(ハードリアルタイム性保証リクエストであることを示すフラグ)を設定することを要求する。
【0077】
続いて、調停回路4の動作について説明する。遅延許容値比較部43は、遅延許容値の比較に加えて、アクセスリクエストに強遅延制約フラグが設定されているかを判定する。発行リクエスト調停部46は、遅延許容値の比較、及び強遅延制約フラグの有無によって調停処理を行う。
【0078】
発行リクエスト調停部46は、強遅延制約フラグの設定されたアクセスリクエストを無条件でターゲットIP5に発行するリクエストとして選択しても良い。また、図9に示すようなアルゴリズムに従って調停処理を行っても良い。以下、図9に示す調停処理を説明する。
【0079】
発行リクエスト調停部46は、強遅延制約フラグが設定されており、遅延許容値が所定値(例えば300ns)以下のアクセスリクエストがあるか否かを判定する(S21)。条件を満たすアクセスリクエストがある場合(S21:Yes)、発行リクエスト調停部46は、条件を満たすアクセスリクエストのうち一番遅延許容値が小さいものを選択対象と決定する(S22)。アクセスリクエストの決定後には、遅延許容値更新部42は、一定間隔毎に選択されなかったアクセスリクエストの遅延許容値を更新する(S23)。その他の処理は、図7に示す処理と同様である。同じ処理には、同一符号を付している。ただし、S17の判定において発行リクエスト調停部46は、遅延許容値の比較ではなく、強遅延フラグの設定されたアクセスリクエストを自動的に選択しても良い。
【0080】
なお、上記した図9の調停処理は、一例であり、調停回路4は、強遅延制約フラグの有無と遅延許容値の比較を基に調停処理を行えば良い。リクエストエントリ41内に強遅延制約フラグを持たず、かつ遅延許容値の大きいアクセスリクエストのみが格納されている場合、発行リクエスト調停部46は、調停処理を実行する時間間隔を大きくしても良い。調停処理を実行する時間間隔を大きくすることにより、例えばターゲットIP5の待機モードへの切り替え回数を減らす等の効果がある。これにより、電力消費を抑えることができる。
【0081】
上述の処理に示すように、データ転送が大幅に遅れている場合に、アクセスリクエストに対して即時処理を求める強遅延制約フラグを設定する。調停処理では、当該フラグが設定されたアクセスリクエストを優先的に選択対象とする。これにより、遅れの生じているデータ転送処理を促進することができる。
【0082】
<実施の形態5>
本実施の形態にかかる情報処理システムは、リクエストエントリ41の全てにアクセスリクエストが格納されている場合であっても、新たに到着した緊急に処理すべきアクセスリクエストを調停対象とすることを特徴とする。これにより、リクエストエントリ41の格納状態によらず、精度の良い調停処理を実現することができる。
【0083】
本実施の形態にかかる情報処理システムは、実施の形態1の情報処理システムと比べ、調停回路(調停機構)4の構成、動作が異なる。図10は、本実施の形態にかかる調停回路4の構成を示すブロック図である。
【0084】
調停回路4は、図6の構成に加えて遅延許容値比較部48を備える。遅延許容値比較部48は、リクエストエントリ41の全てにアクセスリクエストが格納されている場合に、全リクエストエントリ41に格納されたアクセスリクエストと、新たに到着したアクセスリクエストと、の遅延許容値を比較する。新たに到着したアクセスリクエストの遅延許容値が小さい場合、遅延許容値比較部48は、全リクエストエントリ41の中で一番遅延許容値が大きいアクセスリクエストをキャンセルする。すなわち、遅延許容値比較部48は、当該アクセスリクエストをリクエストエントリ41から消去する。そして、遅延許容値比較部48は、当該アクセスリクエストを発行したイニシエータIP1に対して再送要求を発行する。その他の構成、動作は、実施の形態1と同様である。
【0085】
上述の処理により、調停回路4は、リクエストエントリ41の格納状態によらず、遅延許容値の小さいアクセスリクエストを優先的に選択するように動作する。よって、リクエストエントリ41に空きがない状態であっても精度の良い調停処理が実現できる。
【0086】
なお、遅延許容値比較部48は、遅延許容値の比較結果だけではなく、リクエストエントリ41が格納できるアクセスリクエストの数、調停処理の実行間隔等をも考慮して、アクセスリクエストのキャンセルを行うかを決定しても良い。
【0087】
<実施の形態6>
本実施の形態にかかる情報処理システムは、図11に示すように、ターゲットIP5−1、5−2(複数のターゲットIP5)を備え、このターゲットIP5−1、5−2と接続する調停回路4−1、4−2(調停機構)を備えることを特徴とする。なお、算出装置2(調停機構)及び調停回路4(調停機構)の構成、及び動作は実施の形態1と略同一である。各算出装置2(調停機構)は、ターゲットIP5−1、5−2に対して同様の方式で遅延許容値を設定することができる。
【0088】
なお、ターゲットIP5の特質に合わせて、遅延許容値算出部25は、遅延許容値の算出方法を切り替えても良い。また、情報処理システムの備えるターゲットIP5の数は、3以上であっても良い。
【0089】
<実施の形態7>
本実施の形態にかかる情報処理システムは、上述の構成をSoC(System On Chip)に応用したことを特徴とする。以下に、本実施の形態にかかる情報処理システムについて図12を参照して説明する。
【0090】
SoC6は、イニシエータIP1と、算出装置2と、オンチップバス7と、調停回路4と、共有資源IF(インターフェイス)8と、を備える。イニシエータIP1、算出装置2、及び調停回路4の基本動作は、実施の形態1と同様である。オンチップバス7は、チップ上のアクセスリクエストの送受信を行うバスである。共有資源IF8は、SoC6外にあるターゲットIP6とのデータ転送のインターフェイスである。このように、上述した構成は、SoCにも応用可能である。
【0091】
<実施の形態8>
本実施の形態にかかる情報処理システムは、実施の形態7の構成に加えて、オンチップバス内でも調停を行うことを特徴とする。これにより、調停により出力権限を得たパケットのみが調停回路4に供給されるため、より精度の高い調停処理が実現できる。
【0092】
図13は、本実施の形態にかかる情報処理システムの構成を示すブロック図である。図12の構成に加えて、オンチップバス7は、バス調停部71を備える。バス調停部71は、各算出装置から送信されたアクセスリクエストの遅延許容値を比較する。バス調停部71は、遅延許容値が小さいアクセスリクエストから順に調停回路4に送信する。これにより、調停回路4内のリクエストエントリ41には、相対的に遅延許容値の小さいアクセスリクエストのみが供給される。
【0093】
なお、図1に示すネットワーク接続の構成において、ルータ3内にバス調停部71相当の処理部を設けることも勿論可能である。
【0094】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述の実施形態では、画像データの読み出しについて記載したが、必ずしもこれに限られず、任意のデータの読み出し、及び書き込みに応用することも可能である。また、上述の実施の形態の特徴を適宜組み合わせることが可能である。
【符号の説明】
【0095】
1 イニシエータIP
2 算出装置(調停機構)
21 転送量計測部
22 転送量累積カウンタ
23 遅延制約条件設定レジスタ
24 経過時間計測タイマ
25 遅延許容値計算部
26 遅延許容値付与部
3 ルータ
4 調停回路(調停機構)
41 リクエストエントリ
42 遅延許容値更新部
43 遅延許容値比較部
44 バンク競合チェッカ
45 ページヒットチェッカ
46 発行リクエスト調停部
47 セレクタ
48 遅延許容値比較部
5 ターゲットIP
6 SoC(システムオンチップ)
7 オンチップバス
71 バス調停部
8 共有資源IF(インターフェイス)

【特許請求の範囲】
【請求項1】
自律的に共有資源にアクセスを行う複数のイニシエータIPと、共有資源である少なくとも1つのターゲットIPと、調停機構と、を備えた情報処理システムであって、
前記複数のイニシエータIPに含まれる第1のイニシエータIPは、前記ターゲットIPに対し、一定処理を行うために必要なデータ転送に応じて複数のアクセスリクエストを順次生成して発行し、
前記調停機構は、前記データ転送の総データ量と、予め設定された転送許容時間と、から第1の転送レートを算出し、
所定の設定タイミング毎に、前記第1のイニシエータIPに転送済みのデータ量と、前記第1のイニシエータIPが前記データ転送を開始してからの経過時間と、から第2の転送レートを算出し、
前記第1の転送レートと、前記第2の転送レートと、の比較結果に基づいて、前記第1のイニシエータIPが発行前の前記アクセスリクエストに対応付ける重みづけを設定し、
前記アクセスリクエストに対応付けられた前記重みづけに基づいて、転送処理の調停を行う、情報処理システム。
【請求項2】
前記重みづけは、転送処理が終了するまでの遅延許容時間であることを特徴とする、請求項1の情報処理システム。
【請求項3】
前記調停機構は、前記第1のイニシエータIPが発行したものの転送処理が完了していない前記アクセスリクエストの各々の前記重みづけを、経過時間に応じて更新することを特徴とする、請求項1または2に記載の情報処理システム。
【請求項4】
前記調停機構は、前記設定タイミング毎に、直近の前記設定タイミングに達するまでに終了すべき転送データ量と、現在の転送済みのデータ量と、の差分を算出し、
当該差分に基づいて、前記第1のイニシエータIPが発行前の前記アクセスリクエストに対応付ける重みづけを設定することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理システム。
【請求項5】
前記調停機構は、前記比較結果と、前記第1のイニシエータIPが前記データ転送を開始してからの経過時間と、に基づいて、前記第1のイニシエータIPが発行前の前記アクセスリクエストに対応付ける重みづけを設定することを特徴とする、請求項1乃至4のいずれか1項に記載の情報処理システム。
【請求項6】
前記調停機構は、前記比較結果に基づいて算出した値に対し、前記データ転送を開始してからの経過時間が大きくなるにつれて小さくなる係数を掛け合わせることにより前記重みづけを算出することを特徴とする請求項5に記載の情報処理システム。
【請求項7】
前記調停機構は、前記データ転送を開始してからの経過時間が大きくなるにつれて、前記設定タイミングに達するまでの時間間隔を小さくすることを特徴とする、請求項1乃至6のいずれか1項に記載の情報処理システム。
【請求項8】
前記調停機構は、前記所定の設定タイミング毎に、前記第2の転送レートと、予め定められた第3の転送レートと、を比較し、
前記第3の転送レートとの比較結果に応じて、前記アクセスリクエストに対し、即時的処理を求めることを示すフラグを設定し、
前記フラグの設定されている前記アクセスリクエストを優先して転送対象とすることを特徴とする、請求項1乃至7のいずれか1項に記載の情報処理システム。
【請求項9】
前記調停機構は、新たに発行された前記アクセスリクエストの前記重みづけと、調停対象となっている前記アクセスリクエストの前記重みづけと、の比較結果に応じて、調停対象となる前記アクセスリクエストを入れ替え、調停対象から除外された前記アクセスリクエストを発行元に通知することを特徴とする、請求項1乃至8のいずれか1項に記載の情報処理システム。
【請求項10】
前記情報処理システムは、複数の前記ターゲットIPを備え、
前記調停機構は、前記複数の前記ターゲットIPの各々に対する調停処理を行うことを特徴とする、請求項1乃至9のいずれか1項に記載の情報処理システム。
【請求項11】
前記第1のイニシエータIPと、前記調停機構と、を有するシステムオンチップを備えることを特徴とする、請求項1乃至10のいずれか1項に記載の情報処理システム。
【請求項12】
前記調停機構は、
前記重みづけを算出する算出装置と、
前記前記アクセスリクエストに対応付けられた前記重みづけに基づいて、転送処理の調停を行う調停回路と、を備える請求項1乃至請求項11のいずれか1項に記載の情報処理システム。
【請求項13】
前記算出装置は、
前記第1の転送レートを保持する遅延制約条件設定レジスタと、
前記データ転送を開始してからの経過時間を計測するタイマと、
前記データ転送を開始してから転送を行った総データ量を計測する転送量累積カウンタと、
前記遅延制約条件設定レジスタの設定値、前記タイマによる経過時間、及び前記転送量累積カウンタの計測した総データ量、に基づいて前記重みづけを算出する遅延許容値算出部と、
前記遅延許容値算出部が算出した前記重みづけを前記アクセスリクエストに対応付ける遅延許容値付与部と、を備えることを特徴とする請求項12に記載の情報処理システム。
【請求項14】
前記ターゲットIPは、前記第1のイニシエータIPに対して画像データの供給を行うことを特徴とする請求項1乃至請求項13のいずれか1項に記載の情報処理システム。
【請求項15】
自律的に共有資源にアクセスを行う複数のイニシエータIPと、共有資源である少なくとも1つのターゲットIPと、の間のデータ転送を調停する方法であって、
前記複数のイニシエータIPに含まれる第1のイニシエータIPから前記ターゲットIPに対し、一定処理を行うために必要なデータ転送に応じて複数のアクセスリクエストを順次生成して発行し、
前記データ転送の総データ量と、予め設定された転送許容時間と、から第1の転送レートを算出し、
所定の設定タイミング毎に、前記第1のイニシエータIPが転送済みのデータ量と、前記第1のイニシエータIPが前記データ転送を開始してからの経過時間と、から第2の転送レートを算出し、
前記第1の転送レートと、前記第2の転送レートと、の比較結果に基づいて、前記第1のイニシエータIPが発行前の前記アクセスリクエストに対応付ける重みづけを設定し、
前記アクセスリクエストに対応付けられた前記重みづけに基づいて、転送処理の調停を行う、調停方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−199788(P2012−199788A)
【公開日】平成24年10月18日(2012.10.18)
【国際特許分類】
【出願番号】特願2011−62720(P2011−62720)
【出願日】平成23年3月22日(2011.3.22)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】