バスマスタ装置、バス調停装置及びその制御方法
【課題】 共有しているリソースへの要求帯域の合計が、ある一定期間100%を超えた場合には、本当に優先すべきマスタに対してリソース使用権が与えられなくなる可能性がある。
【解決手段】 各マスタに対応して、データ転送の期限までの残り時間を計時し、また転送すべき残りのデータ量をカウントするカウンタ部12と、カウンタ部12でカウントされた残り時間及び残りデータ量とに基づいて、各マスタからのデータ転送要求に優先度を設定する調停部13とを有し、この調停部13により各マスタ14,15,16によるバス18の使用を調停する。
【解決手段】 各マスタに対応して、データ転送の期限までの残り時間を計時し、また転送すべき残りのデータ量をカウントするカウンタ部12と、カウンタ部12でカウントされた残り時間及び残りデータ量とに基づいて、各マスタからのデータ転送要求に優先度を設定する調停部13とを有し、この調停部13により各マスタ14,15,16によるバス18の使用を調停する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のマスタが共有しているバスの使用権を調停するバスマスタ装置、バス調停装置及びその制御方法に関するものである。
【背景技術】
【0002】
複数のマスタが共有のリソース(バス、メモリ)を使用する場合、そのリソースを時分割で使用することになる。このとき、どのマスタにリソースの使用権を与えるかを、ある一定のルール(マスタのリソース使用優先度)に従って調停(アービトレーション)する必要がある。従来から知られているアービトレーションスキームの中で最も代表的なものが以下のアービトレーションスキームである。
【0003】
・ラウンドロビン
・固定優先度
・重み付き優先度
「ラウンドロビン」調停は、リソースの使用権を獲得したマスタの優先度を、次の調停時に最低レベルにすることにより全てのマスタを公平に扱うものである。この場合、マスタがバス使用権を獲得する度に優先度がリアルタイムに変更される。この調停方法の特徴は、全てのマスタに公平にリソース使用権を与えることができる点にある。しかし、相対的に要求帯域幅の大きいマスタの場合、その帯域幅を確保できなくなる可能性がある。
【0004】
「固定優先度」調停は、各マスタの優先度を予めスタティックに決定するもので、要求帯域幅の大きいマスタや、低レイテンシでの動作を保証する必要のあるマスタに対して常に優先度を高く設定することができる。この調停方法の場合、必要帯域幅の大きいマスタ順に優先度を持たせることにより、優先度の高いマスタは充分に帯域幅を確保できる。しかし、優先度が低く設定されたマスタは、長時間リソースを使用できない不利を被ることになる。
【0005】
これら「ラウンドロビン」と「固定優先度」のデメリットを解決する手段として知られる「重み付き優先度」は、マスタ毎に例えば「4:3:2:1」のように帯域割付比を与え、この比でリソースを割り付けられるように調停する方法である。この場合、10回の調停のうち4回、3回、2回、1回の比で割り付けを行うことを期待している。具体的な制御方法は様々であるが、代表的な制御方法としては以下のような方法が挙げられる。
【0006】
各マスタ毎に、使用権を獲得する度に使用権の獲得回数をカウントし、このカウント値と設定比が一致すると帯域幅を満たしたものとして他のマスタにバス使用権を譲る。具体的には、獲得回数のカウント値が設定比と一致したマスタは、他の全マスタのカウンタ値がそれぞれの設定値と一致するまで使用権を他のマスタに譲る処理を繰り返す。こうして全てのマスタのカウント値が設定値と同じになると、全マスタの獲得回数のカウント値をクリアする。これを繰り返すことによって設定された比でリソースを割り付ける。この場合、全てのマスタが常に使用要求を出している状況では、この比と一致した帯域幅での割り付けが可能となる。しかし、カウンタ値が小さいこともあり、各々のマスタによる使用要求の出し方によっては、特定のマスタだけが使用権を獲得してしまうといった状況が発生してしまう。
【0007】
例えば、特許文献1には、基準より遅れているデバイスに対して、優先的にバスを割り当てるバス調停装置が記載されている。この特許文献1のバス調停装置は、この割り当てのために、各デバイスに要求されている転送レートに基づいたクロックで動作する基準カウンタと、実際に転送したデータ量を計測する転送データカウンタとを設ける。そして、バス調停時にこれら2つのカウンタの値を比較している。
【特許文献1】特開平10−289203号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
上記のアービトレーション、特に重み付き優先度を拡張させたアービトレーションとして、要求帯域幅に対する実転送量をマスタ毎にカウントして、要求帯域幅を満たしているマスタの優先度を下げるという調停方法が提案されている。この方法の場合、要求帯域を大きく超えて特定のマスタがリソース使用権を独占することなく、各々のマスタの要求帯域に応じた調停が可能となる。また「重み付き優先度」のように相対的な比を設定するわけではなく、マスタ毎の要求値を直接設定可能である。但し、もし複数のマスタが要求帯域に達していない場合、ある特定のマスタ或はラウンドロビンによって、リソース使用権が決定されることになる。
【0009】
この方法の場合、共有しているリソースへの要求帯域の合計が100%を超えていない場合は、各マスタの要求帯域は満たされる。しかし、共有しているリソースへの要求帯域の合計が、ある一定期間100%を超えた場合には、本当に優先すべきマスタに対してリソース使用権が与えられなくなる可能性がある。要求帯域の合計が100%を超えた場合に優先されるべきマスタを動作前に決定できれば、この方法でも事足りると思われる。しかし、要求帯域の合計が100%を越えた場合の各マスタの優先順位が予め設定できない場合は、各マスタの要求帯域を満足するような帯域の割り付けを行うことは困難であった。
【0010】
本発明の目的は、上記従来技術の問題点を解決することにある。
【0011】
本願発明の特徴は、複数のバスマスタが共通のリソースを取り合うバス構成において、各マスタのそれぞれの帯域幅の要求を満足できる技術を提供することにある。
【課題を解決するための手段】
【0012】
上記本願発明の特徴は、特許請求の範囲の独立項に記載の特徴の組み合わせにより達成され、従属項は更なる有利な具体例を規定するものである。また、この課題を解決するための手段は、本願発明の特徴を全て列挙しているものではない。
【0013】
上記目的を達成するために本発明の一態様に係るバス調停装置は以下のような構成を備える。即ち、
データ転送要求を発行した各マスタによるバスの使用権を調停するバス調停装置であって、
各マスタに対応して、データ転送の期限までの残り時間を計時する残り時間計時手段と、
各マスタに対応して、転送すべき残りのデータ量を検知する残りデータ量検知手段と、
前記残り時間及び前記残りデータ量とに基づいて、各マスタからのデータ転送要求に優先度を設定する優先度設定手段とを有することを特徴とする。
【0014】
上記目的を達成するために本発明の一態様に係るバスマスタ装置は以下のような構成を備える。即ち、
バスアービタにバス要求信号を送出し、前記バスアービタからの応答信号に応じてバスにアクセスするバスマスタ装置であって、
データ転送すべき期限までの残り時間を検知する残り時間検知手段と、
転送すべき残りデータ量を検知する残りデータ量検知手段と、
前記残り時間及び前記残りデータ量に基づいて前記バス要求信号の優先度を算出する優先度算出手段とを有することを特徴とする。
【0015】
上記目的を達成するために本発明の一態様に係るバス調停方法は以下のような工程を備える。即ち、
各マスタがそれぞれに、所定の時間内に所定のデータ量のデータ転送を完了できるようにバス使用権の調停を行うバス調停方法であって、
各マスタに対応して、前記所定の時間と前記所定のデータ量を設定する設定工程と、
各マスタに対応して、前記所定の時間に達するまでの残り時間を計時する計時工程と、
各マスタに対応して、前記所定のデータ量までの残りデータ量を検知する残データ量検知工程と、
前記残り時間と前記残りデータ量とに基づいて、各マスタ毎にバス使用権を割り当てるバス調停工程とを有することを特徴とする。
【0016】
上記目的を達成するために本発明の一態様に係るバスマスタ装置の制御方法は以下のような工程を備える。即ち、
バスアービタにバス要求信号を送出し、前記バスアービタからの応答信号に応じてバスにアクセスするバスマスタ装置の制御方法であって、
データ転送すべき期限までの残り時間を検知する残り時間検知工程と、
転送すべき残りデータ量を検知する残りデータ量検知工程と、
前記残り時間及び前記残りデータ量に基づいて前記バス要求信号の優先度を算出する優先度算出工程とを有することを特徴とする。
【発明の効果】
【0017】
本発明によれば、複数のバスマスタが共通のリソースを取り合うバス構成において、各マスタのそれぞれの帯域幅の要求を満足できるようにバス使用要求を適切にスケジューリングできる。
【発明を実施するための最良の形態】
【0018】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0019】
本実施の形態を説明する前に、上記で背景技術でとり挙げた「平均レート保証」の問題点を解決する一手法である「デッドライン保証」を説明する。
【0020】
共有しているリソースへの要求帯域の合計が、その共有リソースの転送能力の100%を超えている場合、個々のマスタのデッドラインまでの猶予を考慮した上で最適な調停を行う。これにより、アービタの設定として、マスタ間の相対的な要求帯域幅比を考慮してアービタを設定するのではなく、マスタ個々のパラメータ(保証期間、保証データ量)を与えるだけで、アービタがリアルタイムにデッドライン保証するのに最適な調停を行う。このデッドライン保証を行うアービタは、マスタ毎に保証期間、保証データ量というパラメータを与え、「各マスタが各々の保証期間内に保証データ量を転送し終える」ようにバス使用権を調停する。こうすることによって、マスタ毎に保証時間、保証データ数を設定するだけで、アービタがリアルタイムで、各マスタの要求帯域幅に対する不充足を計算する。これと同時に、デッドラインに対する緊急度を用いて、最適なバス使用権を調停する。その結果、各マスタのQoS(Quality of Service)を達成できるようになる。具体的には、調停回路は以下の計算を内部のカウンタ値を使って行う。
(1)保証期間内に保証データ量を転送し終えるのに必要な転送の緊急度。
【0021】
マスタごとにデータ転送の緊急度を計算し、各マスタの緊急度の計算結果を評価値として比較し、評価値が最も大きいマスタにバス使用権を与える。この評価値が大きいことは、転送を完了するまでの残り時間が短いか、又は転送を完了するまでの残り転送データ量が多いことを意味している。この調停回路は、評価値が最も大きいマスタにバス使用の優先権を与えるように動作する。
【0022】
[実施の形態1]
図1は、本発明の実施の形態1に係るバス調停装置(バスアービタ)の構成図である。このバス調停装置では、説明を間単にするために3個のマスタ0〜2(14〜16)と、1個のスレーブ(17)が接続されているバスシステムを示しているが、本発明を実施するにあたり、これらマスタの数やスレーブの数には特に制限はない。
【0023】
この実施の形態1では、マスタ14〜16のそれぞれが、バス18を経由してスレーブ17にデータを転送するバスシステムで示している。複数のマスタ14〜16が共通のバス18を使用するため、これら複数のマスタ14〜16が同時にデータ転送を行うことができない。そのため、アービタ10がバス18の調停を行い、どのマスタにバス18の使用権を与えるかを決定する。各マスタ14〜16は、バスの使用権要求信号19をアービタ10に対して発行する。これによりアービタ10は、優先順位によって決定したマスタに対してバス使用許可信号20を発行する。こうしてアービタ10からバス使用権を得たマスタは、バス18を占有してスレーブ17との間でデータ転送を行う。
【0024】
アービタ10の調停部13は、マスタからのバス権要求信号19に応じて、要求のあったマスタに対して、どのマスタにバス使用許可を与えるか決定する。即ち、調停部13は、優先順位に従って決定したマスタに対してバス使用許可信号20を返すことによりマスタに対してバス使用許可を与える。この際、調停部13はカウンタ部12からのカウント値(評価値)に基づいて優先順位を決定する。カウンタ部13は、各マスタごとに、転送時間カウンタと転送データ量カウンタを有している。転送時間カウンタは、各マスタごとに、そのデータ転送開始からの経過時間を計時する。転送データ量カウンタは、バス10を監視し、各マスタごとに、そのデータ転送開始から転送されたデータ量を測定する。
【0025】
この転送時間カウンタと、予め設定された要求転送時間とを比較することで、各マスタの残り転送時間を求める。更に、転送データ量カウンタと予め設定された転送要求データ量とから、残りの転送データ量を計算する。これら計算した残り転送時間と残りの転送データ量とに基づいて演算回路で演算して評価値を決定し、調停部13に通知する。尚、各マスタの要求転送時間と転送要求データ量は、各マスタからの転送要求に先立って、各マスタによりアービタ10に設定されているものとする。
【0026】
また、カウンタ初期化部11からのカウンタ初期化信号によって、転送時間カウンタと転送データ量カウンタを初期化する。カウンタ初期化部11は、各マスタの転送開始タイミングを検知する手段を持ち、各マスタの転送開始タイミングに同期したカウンタ初期化信号をカウンタ部12に出力する。転送開始タイミングを検知する手段としては、マスタからの転送開始通知信号による検知方法等が考えられる。
【0027】
次に、カウンタ部12の内部処理を図2を参照して説明する。
【0028】
図2は、本実施の形態1に係るアービタ10の動作を説明するタイミングチャートである。
【0029】
カウンタ部12は、各マスタごとに調停を行うための評価に用いるための評価値を計算する機能を有する。図2に示したのは、マスタ1個当たりの評価値を計算する方法を示している。
【0030】
カウンタ部12は、マスタごとの残り転送時間を計算するための、転送時間カウンタと、残り転送データ量を計算するための転送データ量カウンタを有する。これら転送時間カウンタと転送データ量カウンタは、転送開始トリガ200によって初期化される。その後、転送時間カウンタは、201で示すように、1サイクルごとにカウントアップして転送開始からの経過時間を計測する。また転送データ量カウンタはバスを監視しており、203で示すように、該当するマスタのデータ転送が行われたタイミング(202で示す)でカウントアップして転送開始からの転送データ量を計測する。
【0031】
転送開始トリガ(200)からの要求転送時間(204)と要求転送データ量(205)は予め設定されている。この要求転送時間(204)と転送時間カウンタのカウント値(201)との差分により、残り転送時間(206)が求められる。また要求転送データ量(205)と転送データ量カウンタのカウント値(203)との差分から、残り転送データ量(207)が求められる。
【0032】
これら残り転送時間(206)と残り転送データ量(207)に基づいて、演算回路で計算した評価値が208で示されている。この評価値(208)は、図2では、「残りデータ量/残り転送時間」の演算結果を評価値とした計算結果で示している。
【0033】
尚、図2に示した、評価値を求めるためのカウンタ及び演算回路は、各マスタごとに実装されている。この各マスタの評価値は同時に調停部13に出力される。これにより調停部13は、その評価値が大きいマスタの優先順位を高く設定し、評価値が大きいマスタのバス権要求に対して優先的にバス使用許可を与えるように動作する。
【0034】
図3は、マスタごとに計算した評価値を分かりやすく解説する図である。この図3では説明を簡単にするために、2つのマスタ14,15がそれぞれ同じ要求転送時間と転送要求データ量で、転送開始タイミングが異なる場合のデータ転送の様子を示している。
【0035】
マスタ14及び15で示されている各三角形において、底辺が要求転送時間を表し、高さが要求転送データ量を示している。また三角形の傾きの部分が、デッドラインを保証するために必要な平均転送レートを示している。
【0036】
いま時刻tにおける、各マスタの転送開始からの経過時間と転送済みデータ量を示す位置を、各三角形の内側に黒丸で示している。2つのマスタにおいて、要求されている平均転送レートは同じである。本実施の形態1では、各マスタごとに評価値を計算して評価値に応じてバス使用権を与えるように動作する。
【0037】
図3においては、評価値を「残りデータ量/残り転送時間」で求めた場合、時間tにおける各マスタの評価値が31,32で表されている。即ち、点線31はマスタ14の評価値を示し、点線32はマスタ15の評価値を示している。図3の例では、マスタ14の評価値がマスタ15の評価値と比較して大きいため、マスタ15の優先順位はマスタ14よりも高く設定される。そして時間の経過とともに、或はデータ転送が行われることにより評価値が変化してゆく。しかし、マスタ14とマスタ15の評価値の大小関係が変わらない限り、これらマスタ14と15の優先順位は一定に保たれる。
【0038】
図3に示す場合は、時刻tの時点でマスタ14の優先順位が高く設定され、評価値の大小関係がかわらない限り、マスタ14のバス権要求がある場合は、調停部13はマスタ14に連続してバス使用権を与え続けるように動作する。また評価値の大小関係が変化し、マスタ15の評価値がマスタ14の評価値よりも大きくなった場合は、調停部13はマスタ15に優先的にバス使用権を与えるように動作する。
【0039】
以上説明したように本実施の形態1によれば、各マスタの動作状況に応じて優先順位を動的に切り替えることが可能であり、各マスタに対して適切な調停を行うことが可能となる。
【0040】
[実施の形態2]
次に本発明の実施の形態2について説明する。この実施の形態2にバス調停装置の構成と動作の主要部は、前述の実施の形態1の図1及び図2と同じであるため、その説明を省略する。
【0041】
前述の実施の形態1における残り転送時間、残り転送データ量に基づいて評価値を決定するのに加えて、この実施の形態2では、各マスタに固有の転送能力値を、予め各マスタ毎にパラメータとして与えておく。ここで、転送能力値は、そのマスタが単独でバスを占有したと仮定したときに達成可能な転送速度の平均値とする。
【0042】
即ち、残り転送時間及び残りデータ転送量から下記の式(1)により、デッドタイムまでに残りデータの転送を完遂するのに必要な転送速度を求める。
【0043】
(残りデータ転送量)/(残り転送時間) ...式(1)
そして、式(1)により求めた値を、マスタの転送能力で割ったものを新たなプライオリティ評価値として以下のように定義する。
【0044】
(残りデータ量)/(残り転送時間)/(マスタの転送能力) ...式(2)
この式(2)は、ある一定の転送能力を持つマスタに対して課せられたデッドライン要求がどの程度厳しいものかを判断するための値である。この式(2)から導かれた値が大きいほど、デッドラインまでにデータ転送を終えるために、そのマスタに固有の転送能力に近い転送速度でのデータ転送が必要となることを意味する。また、値が「1」に到達したマスタは、要求速度がマスタの転送能力と一致していることになり、バスを占有できない限り、そのデータ転送要求を満たせないことを意味する。
【0045】
カウンタ部12は、各マスタ毎に、式(2)に基づいて、各マスタのバス使用緊急度を求める。
【0046】
一方、調停部13は、この評価値(緊急度)を大小比較し、評価値が大きいマスタに高い優先権を与えることでプライオリティを決定する。例えば、値が「0.1」であるマスタよりも「0.5」のマスタの方が転送を行う上で現時点での緊急度が高いと判断し、そのマスタに優先権を与える。
【0047】
この評価値の算出と大小比較とをリアルタイムで実行することにより、精度の高いプライオリティ管理が可能となる。
【0048】
残り転送時間と残り転送データ量、転送能力パラメータを演算回路で計算した値をマスタの評価値とする。
【0049】
図4は、本発明の実施の形態2に係るアービタ10による動作を説明するタイミングチャートである。図4において、「要求転送時間」から「残り転送データ量」までは、前述の実施の形態1の図2と同じである。
【0050】
図4において、401は、前述の式(1)で得られる{(残りデータ転送量)/(残り転送時間)}の演算結果を示している。転送能力値402は、このマスタに対して予め与えられた値であり、ここでは「0.8」である。そして評価値403は、{(残りデータ転送量)/(残り転送時間)}の演算結果を、この転送能力値(0.8)で割ることにより得られる(式(2))。
【0051】
図4に示した、評価値を求めるためのカウンタ、演算回路は、各マスタごとに実装されており、各マスタの評価値は同時に調停部13に出力される。調停部13は、評価値の大きいマスタの優先順位を高く設定し、評価値の大きいマスタのバス権要求に対してバス使用許可を与えるように動作する。
【0052】
図5は、本実施の形態2において、各マスタごとに計算した評価値を分かりやすく解説する図である。
【0053】
図5では説明を簡単にするために、2つのマスタ(マスタ0(14),1(15))がそれぞれ同時にデータ転送を開始し、同じ要求期間内にデッドライン保証することが期待されているとする。横軸は時間軸であり、ある時刻tにおいてデッドライン保証を完遂するのに必要な転送レート(残りデータ量/残り時間)は、マスタ0とマスタ1とで全く同じ値とする。且つ、マスタ0とマスタ1の転送能力のそれぞれが、直線の傾き33,34で表わされている。実際は、これら直線の傾き33,34(=平均転送レート)は、パラメータとして予め設定されている。
【0054】
図5では、マスタ0の転送能力がマスタ1の転送能力を上回っていることを表している。よって、上記式(2)で得られる評価値は、マスタ0よりもマスタ1の方が大きくなる。その結果、時刻tでは、マスタ1の優先度が高くなる。この緊急度の算出とバス使用権の割り付けをリアルタイムで行うことにより、その時点で最も負荷の重いマスタに対してバス使用権を与えることができる。特に非同期でバスアクセスを開始するマスタに対しても柔軟な対応が可能となる。
【0055】
図6は、本実施の形態2に係るマスタ0と1の転送能力を説明する図である。この図6では、マスタ0の転送能力は、マスタ1の約3倍である。
【0056】
以上説明したように実施の形態2によれば、各マスタによるデータ転送の調停に転送能力を加えることにより、よりマスタの特性に応じた精度の高いデッドライン保証が可能となる。
【0057】
またマスタの転送能力を、平均転送レートという比較的シンプルで見積もりやすいパラメータとして与えても良い。
【0058】
[実施の形態3]
図7は、本発明の実施の形態3に係るバスマスタ装置の構成を表すブロック図である。
【0059】
このバスマスタ100は、バススレーブI/F部110、転送時間レジスタ111、転送量レジスタ112、転送開始レジスタ113、転送能力レジスタ114、バスマスタI/F部120、バスマスタ制御部121、データ処理部122、転送要求度計算部123、残り転送時間レジスタ124、残り転送量レジスタ125を具備している。
【0060】
図8は、実施の形態3に係るバスマスタ100を用いたシステムの構成を表す概略ブロック図である。
【0061】
このバスマスタ100は、バス40,CPU41、アービタ42、バスマスタ43〜45、バススレーブ46,47を具備している。このうち、バスマスタ43,44,45はそれぞれ図7のバスマスタ100に相当している。
【0062】
まず図7のバスマスタ100の概要を説明する。バススレーブI/F部110は、バス0上のCPU(図8のCPU41に相当)からのレジスタアクセスを受付けるインターフェースである。転送時間レジスタ111は、バスマスタ100が行うデータ転送に要求される転送時間(即ち、転送開始から転送終了までの時間の最大値)を1μ秒単位で設定するレジスタである。転送量レジスタ112は、転送するデータの転送量をバイト単位で設定するレジスタである。またバスマスタ100は、転送開始レジスタ113に「1」が書き込まれることによってデータ転送を開始し、このデータ転送が完了すると転送開始レジスタ113を自動的にクリアする。
【0063】
転送能力レジスタ114は、バスマスタ100の転送能力を設定する6ビットのレジスタである。バスマスタ100が単独でデータ転送を行った場合(即ち、バスマスタ100のみに連続してバス権許可が与えられ続けた場合)における平均転送能力を設定する(単位はワード/サイクル)。この転送能力レジスタ114の設定範囲は、「0.01325(=2-5)」から「1(=20)」までである。これはハードウエア的には「1」を超える設定が可能であるが、1サイクルあたり1ワードを超えるデータ転送は、本実施の形態3に係るバスシステムでは不可能なため上限を「1」としている。
【0064】
バスマスタI/F部120は、バス101上のバススレーブ(図8のバススレーブ46又は47に相当)と、後述するデータ処理部122との間のデータ転送を行うためのインターフェースである。バスマスタ制御部121は、バスマスタI/F部120、転送開始レジスタ113、後述の残り転送時間レジスタ124並びに残り転送量レジスタ125を制御する。データ処理部122は、転送データを生成又は受信する部分で、例えば画像処理を行うブロックや、外部との通信を行うインターフェースブロック等、バスマスタ100に要求される機能によって異なる。
【0065】
次に本実施の形態3に係るバスマスタ100の詳細について説明する。
【0066】
バス101上のCPU41から転送開始レジスタ113に「1」が書き込まれると、バスマスタ制御部121は、残り転送時間レジスタ124及び残り転送量レジスタ125に対してロード信号をアサートする。これにより、転送時間レジスタ111の値が残り転送時間レジスタ124にコピーされると共に、転送量レジスタ112の値が残り転送量レジスタ125にコピーされる。その後、バスマスタ制御部121は、残り転送時間レジスタ124に対して、1μ秒ごとに時間減算信号をアサートする。また残り転送量レジスタ125に対しては、データ転送が行われる度に転送されたバイト数分のデータ転送量の減算信号をアサートする。例えば、本実施の形態3では、バス101における1ワードが4バイトである。このため、1ワードの転送が行われた場合は、転送量減算信号として「4」が、ハーフワード転送の場合には「2」が、バイト転送の場合には「1」がそれぞれアサートされる。そして残り転送量レジスタ125は、自身の値から転送量減算信号の値を減算する。
【0067】
以上により、残り転送時間レジスタ124及び残り転送量レジスタ125の値が減算され、残り転送時間及び残り転送量の値が適切に更新される。
【0068】
データ処理部122も、転送開始レジスタ113に「1」が書き込まれることによって起動される。データが送信或は受信可能になると、データ処理部122はバスマスタ制御部121に対してデータレディ信号をアサートする。このデータレディ信号のアサートを受けて、バスマスタ制御部121は、バス101上のアービタ(図8のアービタ42に相当)に対して転送要求信号をアサートするようバスマスタI/F部120を制御する。
【0069】
一方、転送要求度計算部123は、残り転送時間レジスタ124、残り転送量レジスタ125並びに転送能力レジスタ114の値に基づいて、データ転送の優先度を計算する。
【0070】
本実施の形態3に係る転送要求度計算部123における計算は、上述の式(2)に対応する「(残り転送量レジスタ25の値/残り転送時間レジスタ24の値)/転送能力レジスタ14の値」である。この計算により、同一の残りデータ量に対しては、残り時間が少なくなるほど転送要求優先度が大きくなる。
【0071】
一方、同一の残り時間に対しては、残りデータ量が多くなるほど転送要求優先度が大きくなる。更に、同一の「残りデータ量/残り時間」の値に対しては、転送能力の低いバスマスタほど転送要求優先度が大きくなる。バスマスタI/F部120はアービタ42に対して、転送要求度計算部123における計算結果を転送要求優先度信号として出力する。この転送要求優先度信号のアサートタイミングは、転送要求信号のアサート開始と同一サイクルで、以降、転送が完了するまで値を保持する。
【0072】
アービタ42は、転送要求優先度信号の値がより大きいバスマスタに対して優先的に転送許可を与える。また転送要求優先度信号の値が最大のバスマスタが複数ある場合は、最大であるバスマスタを対象にラウンドロビン方式でバス調停を行う。
【0073】
以上のような構成並びに方式を採ることにより、各バスマスタに対して適切なデッドライン保証を行うことが可能となる。
【0074】
[実施の形態4]
図9は、本発明の実施の形態4に係るバスマスタ100を用いた、別のシステムの構成を表す概略ブロック図である。
【0075】
このシステムは、上位階層バス50にCPU51、アービタ52、バスマスタ53,54、バススレーブ55を接続している。またバスブリッジ56を介して下位階層バス60と接続されている。この下位階層バス60には、アービタ61、バスマスタ62,63、バススレーブ64が接続されている。このうち、CPU51は図8のCPU41と同一であり、アービタ52,61は、バスマスタのチャネル数が異なる点以外は、図8のアービタ42と同じである。またバスマスタ53,54,62,63は、それぞれ図7のバスマスタ100に相当し、バススレーブ55,56,64はそれぞれ、図8のバススレーブ46,47と同一である。
【0076】
前述の実施の形態3に係る図8との相違点は、上位階層バス50と下位階層バス60の2つにバスが階層化されている点にある。上位階層バス50ではアービタ52がバスの調停を行い、下位階層バス60ではアービタ61がバス調停を行う。またバス階層を跨いで転送を行う場合は、バスブリッジ56を介して行う。
【0077】
バス階層を跨いだ転送の例として、下位階層バス60上のバスマスタ62から上位階層バス50上のバススレーブ55へデータ転送を行う場合について説明する。
【0078】
まずバスマスタ62は、アービタ61に対して、転送要求優先度信号と共に転送要求信号を送る。これに応答してアービタ61により転送許可が与えられると、バスマスタ62は、バスブリッジ56を介してバススレーブ55に対してデータ転送を開始する。これを受けてバスブリッジ56は、アービタ52に対して、バスマスタ62が発行した転送要求優先度信号値と共にデータ転送を要求する。即ち、このときバスブリッジ56は、上位階層バス50上のバスマスタの1つとして動作する。また転送要求優先度信号は、下位階層バス60上のバスマスタ62が出力した値を継承する。アービタ52によって上位階層バス50における転送許可を与えられると、バスブリッジ56はバススレーブ55に対してデータ転送を行い、データ転送動作が終了する。
【0079】
アービタ52及び61の調停動作は、前述の実施の形態3と同様であり、転送要求優先度信号の値がより大きいバスマスタに対して、優先的に転送許可を与える。また転送要求優先度信号の値が最大のバスマスタが複数ある場合は、最大であるバスマスタを対象にラウンドロビン方式でバス調停を行う。
【0080】
以上のような構成並びに方式を採ることにより、階層化されたバスシステムにおいても、各バスマスタに対して適切なデッドライン保証を行うことが可能となる。
【0081】
図11は、図10の転送条件に対して、デッドライン保証が可能となった例を示すグラフ図である。
【0082】
図10は、ラウンドロビン方式の調停アルゴリズムではデッドライン保証ができない例を示すグラフである。図10では、1サイクルあたり1ワード(1ワードは4バイトとする)を転送できるバスシステムにおいて、3つのバスマスタが合計896ワードを転送している。マスタ0とマスタ2のデッドラインは、800サイクル目である。またマスタ1のデッドラインは、1100サイクル目である。また、各バスマスタのデータ転送量は、各々マスタ0が512バイト、マスタ1が256バイト、マスタ2が128バイトである。図10においては、単純なラウンドロビン方式によるバス調停であるため、マスタ0の転送完了がデッドラインである800サイクル目を越えてしまい、デッドライン保証ができていない。
【0083】
これに対し図11では、マスタ0(14)がマスタ1(15)並びにマスタ2(16)よりも優先されてバス権許可を多く受けている。これによりデッドラインの保証が可能となり、かつ、マスタ2のデッドラインも保証も可能となっている。
【0084】
また図13は、図12の転送条件に対して本実施の形態4を適用し、デッドライン保証が可能となった例を示すグラフ図である。
【0085】
図12は、バスマスタの転送能力が考慮されないことによってデッドライン保証ができない例を示すグラフ図である。バスマスタの転送能力には、一回当りの転送ビート数やデータ転送要求の発行頻度などが例として挙げられるが、同図における各バスマスタのデータ転送条件は以下のとおりである。
【0086】
マスタ0は、100000サイクル以内に16000ワードの転送を保証、転送能力0.57ワード/サイクル、バスリクエスト間隔1サイクルである。マスタ1は、100000サイクル以内に9000ワードの転送を保証、転送能力0.14ワード/サイクル、バスリクエスト間隔25サイクルである。そしてマスタ2は、30000サイクル以内に5000ワードの転送を保証、転送能力0.40ワード/サイクル、バスリクエスト間隔8サイクルである。
【0087】
図12では、残り時間検知手段と残り転送量検知手段の比によって、優先度を動的に変更する調停を行っている。転送能力が高いマスタ0が余裕を持ってデータ転送を完了している(1200)。これに対して転送能力の低いマスタ1のデッドラインが保証できていない(1201)。
【0088】
これに対して本実施の形態4では、残り時間検知手段と残り転送量検知手段の比に加え、バスマスタの転送能力をさらに加味して調停を行っている。これにより図13に示すように、図12ではデッドライン保証できていなかったマスタ1(15)に対してもデッドラインの保証が可能となっている。
【0089】
[実施の形態5]
図14は、本発明の実施の形態5に係るバスマスタ100aの構成を表すブロック図で、前述の実施の形態3の図7と共通する部分は同じ記号で示し、それらの説明を省略する。この図14では、図7と比較して、転送能力レジスタ114が省略されている。
【0090】
このバスマスタ100aを用いたシステムの構成は前述の図8と同様である。
【0091】
次に本実施の形態5に係るバスマスタ100aの詳細について説明する。
【0092】
バス101上のCPUから転送開始レジスタ113に「1」が書き込まれると、バスマスタ制御部121は、残り転送時間レジスタ124及び残り転送量レジスタ125に対してロード信号をアサートする。これにより、転送時間レジスタ111の値が残り転送時間レジスタ124にコピーされると共に、転送量レジスタ112の値が残り転送量レジスタ125にコピーされる。その後、バスマスタ制御部121は、残り転送時間レジスタ124に対して1μ秒ごとに時間減算信号をアサートする。また残り転送量レジスタ125に対して、データ転送が行われる度に、その転送されたバイト数分の転送量減算信号をアサートする。例えば本実施の形態5では、バス101における1ワードは32ビットである。このため、1ワードの転送が行われた場合には転送量減算信号として「4」が、ハーフワード転送の場合には「2」が、バイト転送の場合には「1」がそれぞれアサートされる。そして残り転送量レジスタ125は、自身の値から転送量減算信号の値を減算する。
【0093】
以上により、残り転送時間レジスタ124及び残り転送量レジスタ125の値が減算され、残り転送時間及び残り転送量の値が適切に更新される。
【0094】
データ処理部122も、転送開始レジスタ113に「1」が書き込まれることによって起動される。データの送信或は受信が可能になると、データ処理部122はバスマスタ制御部121に対してデータレディ信号をアサートする。このデータレディ信号のアサートを受けて、バスマスタ制御部121は、バス101上のアービタ(図8のアービタ42に相当)に対して転送要求信号をアサートするようにバスマスタI/F部120を制御する。
【0095】
一方、転送要求度計算部123は、残り転送時間レジスタ124及び残り転送量レジスタ125の値に基づいて、データ転送の優先度を計算する。
【0096】
本実施の形態5に係る転送要求度計算部123の計算は、「残り転送量レジスタ25の値/残り転送時間レジスタ24の値」である。この計算により、同一の残りデータ量に対しては、残り時間が少なくなるほど転送要求の優先度が高くなる。
【0097】
一方、同一の残り時間に対しては、残りデータ量が多くなるほど転送要求優先度が高くなる。バスマスタI/F部120は、アービタ42に対して、転送要求度計算部123の計算結果を転送要求優先度信号として出力する。この転送要求優先度信号のアサートタイミングは、転送要求信号のアサート開始と同一サイクルで、以降、転送が完了するまで値を保持する。
【0098】
アービタ42は、この転送要求優先度信号の値がより大きいバスマスタに優先的に転送許可を与える。また転送要求優先度信号の値が最大のバスマスタが複数ある場合は、最大であるバスマスタを対象にラウンドロビン方式でバス調停を行う。
【0099】
以上のような構成並びに方式を採ることにより、各バスマスタに対して適切な帯域保証を行うことが可能となる。
【0100】
[実施の形態6]
実施の形態6に係る、バスマスタ100aを用いた、別のシステムの構成を表す概略ブロック図は、前述の図9の構成と同じである。
【0101】
ここでは上位階層バス50と下位階層バス60の2つにバスが階層化されている。上位階層バス50においてはアービタ52がバス調停を行い、下位階層バス60においてはアービタ61がバス調停を行う。また、バス階層を跨いで転送を行う場合は、バスブリッジ56を介して行う。この場合のバス階層を跨いだ転送の例は、図9を参照して前述した説明と同じであるため、その説明を省略する。
【0102】
図15は、上述した実施の形態に係るバス調停装置、或はバスマスタにおける処理を説明するフローチャートである。
【0103】
まずステップS1で、データ転送を実行する転送時間と、そのデータ転送量とを各レジスタに設定する。次にステップS2で、データの転送開始が指示されるのを待ち、データ転送の開始が指示されるとステップS3に進み、そのデータ転送を行うマスタに対応するデータ転送量及び転送経過時間を初期化する。次にステップS4で、そのデータ転送に選択したマスタとスレーブとの間でのデータ転送を実行し、そのデータ転送に同期して、そのマスタの転送データ量及び転送時間を更新する。次にステップS5で、(残りデータ量)/(残り時間)を計算する。次にステップS6では、図4や図7の例では、ステップS5で求めた値を転送能力値で割る。但し、図2や図14に対応するバスマスタの場合には、このステップS6は省略できる。そしてステップS7で、前述した式(1)或は(2)に基づいて、そのマスタの評価値を求める。ここで、これらステップS1〜S7に示す処理は、各マスタのそれぞれに対して実行されている。次にステップS8で、各マスタに対して求めた評価値同士を比較し、最も評価値の大きいマスタを選択する。そしてステップS9で、その選択したマスタに対して、バスのアクセス使用権を与える。
【0104】
こうして本実施の形態に係るバス調停装置或はバスマスタ装置は、各マスタに対してバスの使用権を付与するための調停処理を実行することができる。
【0105】
(他の実施形態)
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成される文書検索システムに適用しても良いし、また、一つの機器からなる文書検索装置に適用しても良い。
【0106】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを読み出して実行することによっても達成され得る。上記実施形態では、図5から7、及び図9から13のフローチャートに対応したプログラムである。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。 従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明のクレームでは、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0107】
プログラムを供給するための記録媒体としては、様々なものが使用できる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などである。
【0108】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページからハードディスク等の記録媒体にダウンロードすることによっても供給できる。その場合、ダウンロードされるのは、本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
【0109】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布する形態としても良い。その場合、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムが実行可能な形式でコンピュータにインストールされるようにする。
【0110】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される形態以外の形態でも実現可能である。例えば、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【0111】
更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれるようにしてもよい。この場合、その後で、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【0112】
【図1】本発明の実施の形態1に係るバス調停装置(バスアービタ)の構成図である。
【図2】実施の形態1に係るアービタの動作を説明するタイミングチャートである。
【図3】実施の形態1においてマスタごとに計算した評価値を分かりやすく解説する図である。
【図4】本発明の実施の形態2に係るアービタによる動作を説明するタイミングチャートである。
【図5】本実施の形態2において、各マスタごとに計算した評価値を分かりやすく解説する図である。
【図6】本実施の形態2に係るマスタ0と1の転送能力を説明する図である。
【図7】本発明の実施の形態3に係るバスマスタの構成を表すブロック図である。
【図8】実施の形態3に係るバスマスタを用いたシステムの構成を表す概略ブロック図である。
【図9】本発明の実施の形態4に係るバスマスタを用いた、別のシステムの構成を表す概略ブロック図である。
【図10】ラウンドロビン方式の調停アルゴリズムでデッドライン保証ができない例を説明するグラフ図である。
【図11】図10の転送条件に対して、デッドライン保証が可能となった例を示すグラフ図である。
【図12】バスマスタの転送能力が考慮されないことによってデッドライン保証ができない例を説明するグラフ図である。
【図13】図12の転送条件に対して本実施の形態4を適用し、デッドライン保証が可能となった例を示すグラフ図である。
【図14】本発明の実施の形態5に係るバスマスタの構成を表すブロック図である。
【図15】本実施の形態に係るバス調停装置における処理を説明するフローチャートである。
【技術分野】
【0001】
本発明は、複数のマスタが共有しているバスの使用権を調停するバスマスタ装置、バス調停装置及びその制御方法に関するものである。
【背景技術】
【0002】
複数のマスタが共有のリソース(バス、メモリ)を使用する場合、そのリソースを時分割で使用することになる。このとき、どのマスタにリソースの使用権を与えるかを、ある一定のルール(マスタのリソース使用優先度)に従って調停(アービトレーション)する必要がある。従来から知られているアービトレーションスキームの中で最も代表的なものが以下のアービトレーションスキームである。
【0003】
・ラウンドロビン
・固定優先度
・重み付き優先度
「ラウンドロビン」調停は、リソースの使用権を獲得したマスタの優先度を、次の調停時に最低レベルにすることにより全てのマスタを公平に扱うものである。この場合、マスタがバス使用権を獲得する度に優先度がリアルタイムに変更される。この調停方法の特徴は、全てのマスタに公平にリソース使用権を与えることができる点にある。しかし、相対的に要求帯域幅の大きいマスタの場合、その帯域幅を確保できなくなる可能性がある。
【0004】
「固定優先度」調停は、各マスタの優先度を予めスタティックに決定するもので、要求帯域幅の大きいマスタや、低レイテンシでの動作を保証する必要のあるマスタに対して常に優先度を高く設定することができる。この調停方法の場合、必要帯域幅の大きいマスタ順に優先度を持たせることにより、優先度の高いマスタは充分に帯域幅を確保できる。しかし、優先度が低く設定されたマスタは、長時間リソースを使用できない不利を被ることになる。
【0005】
これら「ラウンドロビン」と「固定優先度」のデメリットを解決する手段として知られる「重み付き優先度」は、マスタ毎に例えば「4:3:2:1」のように帯域割付比を与え、この比でリソースを割り付けられるように調停する方法である。この場合、10回の調停のうち4回、3回、2回、1回の比で割り付けを行うことを期待している。具体的な制御方法は様々であるが、代表的な制御方法としては以下のような方法が挙げられる。
【0006】
各マスタ毎に、使用権を獲得する度に使用権の獲得回数をカウントし、このカウント値と設定比が一致すると帯域幅を満たしたものとして他のマスタにバス使用権を譲る。具体的には、獲得回数のカウント値が設定比と一致したマスタは、他の全マスタのカウンタ値がそれぞれの設定値と一致するまで使用権を他のマスタに譲る処理を繰り返す。こうして全てのマスタのカウント値が設定値と同じになると、全マスタの獲得回数のカウント値をクリアする。これを繰り返すことによって設定された比でリソースを割り付ける。この場合、全てのマスタが常に使用要求を出している状況では、この比と一致した帯域幅での割り付けが可能となる。しかし、カウンタ値が小さいこともあり、各々のマスタによる使用要求の出し方によっては、特定のマスタだけが使用権を獲得してしまうといった状況が発生してしまう。
【0007】
例えば、特許文献1には、基準より遅れているデバイスに対して、優先的にバスを割り当てるバス調停装置が記載されている。この特許文献1のバス調停装置は、この割り当てのために、各デバイスに要求されている転送レートに基づいたクロックで動作する基準カウンタと、実際に転送したデータ量を計測する転送データカウンタとを設ける。そして、バス調停時にこれら2つのカウンタの値を比較している。
【特許文献1】特開平10−289203号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
上記のアービトレーション、特に重み付き優先度を拡張させたアービトレーションとして、要求帯域幅に対する実転送量をマスタ毎にカウントして、要求帯域幅を満たしているマスタの優先度を下げるという調停方法が提案されている。この方法の場合、要求帯域を大きく超えて特定のマスタがリソース使用権を独占することなく、各々のマスタの要求帯域に応じた調停が可能となる。また「重み付き優先度」のように相対的な比を設定するわけではなく、マスタ毎の要求値を直接設定可能である。但し、もし複数のマスタが要求帯域に達していない場合、ある特定のマスタ或はラウンドロビンによって、リソース使用権が決定されることになる。
【0009】
この方法の場合、共有しているリソースへの要求帯域の合計が100%を超えていない場合は、各マスタの要求帯域は満たされる。しかし、共有しているリソースへの要求帯域の合計が、ある一定期間100%を超えた場合には、本当に優先すべきマスタに対してリソース使用権が与えられなくなる可能性がある。要求帯域の合計が100%を超えた場合に優先されるべきマスタを動作前に決定できれば、この方法でも事足りると思われる。しかし、要求帯域の合計が100%を越えた場合の各マスタの優先順位が予め設定できない場合は、各マスタの要求帯域を満足するような帯域の割り付けを行うことは困難であった。
【0010】
本発明の目的は、上記従来技術の問題点を解決することにある。
【0011】
本願発明の特徴は、複数のバスマスタが共通のリソースを取り合うバス構成において、各マスタのそれぞれの帯域幅の要求を満足できる技術を提供することにある。
【課題を解決するための手段】
【0012】
上記本願発明の特徴は、特許請求の範囲の独立項に記載の特徴の組み合わせにより達成され、従属項は更なる有利な具体例を規定するものである。また、この課題を解決するための手段は、本願発明の特徴を全て列挙しているものではない。
【0013】
上記目的を達成するために本発明の一態様に係るバス調停装置は以下のような構成を備える。即ち、
データ転送要求を発行した各マスタによるバスの使用権を調停するバス調停装置であって、
各マスタに対応して、データ転送の期限までの残り時間を計時する残り時間計時手段と、
各マスタに対応して、転送すべき残りのデータ量を検知する残りデータ量検知手段と、
前記残り時間及び前記残りデータ量とに基づいて、各マスタからのデータ転送要求に優先度を設定する優先度設定手段とを有することを特徴とする。
【0014】
上記目的を達成するために本発明の一態様に係るバスマスタ装置は以下のような構成を備える。即ち、
バスアービタにバス要求信号を送出し、前記バスアービタからの応答信号に応じてバスにアクセスするバスマスタ装置であって、
データ転送すべき期限までの残り時間を検知する残り時間検知手段と、
転送すべき残りデータ量を検知する残りデータ量検知手段と、
前記残り時間及び前記残りデータ量に基づいて前記バス要求信号の優先度を算出する優先度算出手段とを有することを特徴とする。
【0015】
上記目的を達成するために本発明の一態様に係るバス調停方法は以下のような工程を備える。即ち、
各マスタがそれぞれに、所定の時間内に所定のデータ量のデータ転送を完了できるようにバス使用権の調停を行うバス調停方法であって、
各マスタに対応して、前記所定の時間と前記所定のデータ量を設定する設定工程と、
各マスタに対応して、前記所定の時間に達するまでの残り時間を計時する計時工程と、
各マスタに対応して、前記所定のデータ量までの残りデータ量を検知する残データ量検知工程と、
前記残り時間と前記残りデータ量とに基づいて、各マスタ毎にバス使用権を割り当てるバス調停工程とを有することを特徴とする。
【0016】
上記目的を達成するために本発明の一態様に係るバスマスタ装置の制御方法は以下のような工程を備える。即ち、
バスアービタにバス要求信号を送出し、前記バスアービタからの応答信号に応じてバスにアクセスするバスマスタ装置の制御方法であって、
データ転送すべき期限までの残り時間を検知する残り時間検知工程と、
転送すべき残りデータ量を検知する残りデータ量検知工程と、
前記残り時間及び前記残りデータ量に基づいて前記バス要求信号の優先度を算出する優先度算出工程とを有することを特徴とする。
【発明の効果】
【0017】
本発明によれば、複数のバスマスタが共通のリソースを取り合うバス構成において、各マスタのそれぞれの帯域幅の要求を満足できるようにバス使用要求を適切にスケジューリングできる。
【発明を実施するための最良の形態】
【0018】
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0019】
本実施の形態を説明する前に、上記で背景技術でとり挙げた「平均レート保証」の問題点を解決する一手法である「デッドライン保証」を説明する。
【0020】
共有しているリソースへの要求帯域の合計が、その共有リソースの転送能力の100%を超えている場合、個々のマスタのデッドラインまでの猶予を考慮した上で最適な調停を行う。これにより、アービタの設定として、マスタ間の相対的な要求帯域幅比を考慮してアービタを設定するのではなく、マスタ個々のパラメータ(保証期間、保証データ量)を与えるだけで、アービタがリアルタイムにデッドライン保証するのに最適な調停を行う。このデッドライン保証を行うアービタは、マスタ毎に保証期間、保証データ量というパラメータを与え、「各マスタが各々の保証期間内に保証データ量を転送し終える」ようにバス使用権を調停する。こうすることによって、マスタ毎に保証時間、保証データ数を設定するだけで、アービタがリアルタイムで、各マスタの要求帯域幅に対する不充足を計算する。これと同時に、デッドラインに対する緊急度を用いて、最適なバス使用権を調停する。その結果、各マスタのQoS(Quality of Service)を達成できるようになる。具体的には、調停回路は以下の計算を内部のカウンタ値を使って行う。
(1)保証期間内に保証データ量を転送し終えるのに必要な転送の緊急度。
【0021】
マスタごとにデータ転送の緊急度を計算し、各マスタの緊急度の計算結果を評価値として比較し、評価値が最も大きいマスタにバス使用権を与える。この評価値が大きいことは、転送を完了するまでの残り時間が短いか、又は転送を完了するまでの残り転送データ量が多いことを意味している。この調停回路は、評価値が最も大きいマスタにバス使用の優先権を与えるように動作する。
【0022】
[実施の形態1]
図1は、本発明の実施の形態1に係るバス調停装置(バスアービタ)の構成図である。このバス調停装置では、説明を間単にするために3個のマスタ0〜2(14〜16)と、1個のスレーブ(17)が接続されているバスシステムを示しているが、本発明を実施するにあたり、これらマスタの数やスレーブの数には特に制限はない。
【0023】
この実施の形態1では、マスタ14〜16のそれぞれが、バス18を経由してスレーブ17にデータを転送するバスシステムで示している。複数のマスタ14〜16が共通のバス18を使用するため、これら複数のマスタ14〜16が同時にデータ転送を行うことができない。そのため、アービタ10がバス18の調停を行い、どのマスタにバス18の使用権を与えるかを決定する。各マスタ14〜16は、バスの使用権要求信号19をアービタ10に対して発行する。これによりアービタ10は、優先順位によって決定したマスタに対してバス使用許可信号20を発行する。こうしてアービタ10からバス使用権を得たマスタは、バス18を占有してスレーブ17との間でデータ転送を行う。
【0024】
アービタ10の調停部13は、マスタからのバス権要求信号19に応じて、要求のあったマスタに対して、どのマスタにバス使用許可を与えるか決定する。即ち、調停部13は、優先順位に従って決定したマスタに対してバス使用許可信号20を返すことによりマスタに対してバス使用許可を与える。この際、調停部13はカウンタ部12からのカウント値(評価値)に基づいて優先順位を決定する。カウンタ部13は、各マスタごとに、転送時間カウンタと転送データ量カウンタを有している。転送時間カウンタは、各マスタごとに、そのデータ転送開始からの経過時間を計時する。転送データ量カウンタは、バス10を監視し、各マスタごとに、そのデータ転送開始から転送されたデータ量を測定する。
【0025】
この転送時間カウンタと、予め設定された要求転送時間とを比較することで、各マスタの残り転送時間を求める。更に、転送データ量カウンタと予め設定された転送要求データ量とから、残りの転送データ量を計算する。これら計算した残り転送時間と残りの転送データ量とに基づいて演算回路で演算して評価値を決定し、調停部13に通知する。尚、各マスタの要求転送時間と転送要求データ量は、各マスタからの転送要求に先立って、各マスタによりアービタ10に設定されているものとする。
【0026】
また、カウンタ初期化部11からのカウンタ初期化信号によって、転送時間カウンタと転送データ量カウンタを初期化する。カウンタ初期化部11は、各マスタの転送開始タイミングを検知する手段を持ち、各マスタの転送開始タイミングに同期したカウンタ初期化信号をカウンタ部12に出力する。転送開始タイミングを検知する手段としては、マスタからの転送開始通知信号による検知方法等が考えられる。
【0027】
次に、カウンタ部12の内部処理を図2を参照して説明する。
【0028】
図2は、本実施の形態1に係るアービタ10の動作を説明するタイミングチャートである。
【0029】
カウンタ部12は、各マスタごとに調停を行うための評価に用いるための評価値を計算する機能を有する。図2に示したのは、マスタ1個当たりの評価値を計算する方法を示している。
【0030】
カウンタ部12は、マスタごとの残り転送時間を計算するための、転送時間カウンタと、残り転送データ量を計算するための転送データ量カウンタを有する。これら転送時間カウンタと転送データ量カウンタは、転送開始トリガ200によって初期化される。その後、転送時間カウンタは、201で示すように、1サイクルごとにカウントアップして転送開始からの経過時間を計測する。また転送データ量カウンタはバスを監視しており、203で示すように、該当するマスタのデータ転送が行われたタイミング(202で示す)でカウントアップして転送開始からの転送データ量を計測する。
【0031】
転送開始トリガ(200)からの要求転送時間(204)と要求転送データ量(205)は予め設定されている。この要求転送時間(204)と転送時間カウンタのカウント値(201)との差分により、残り転送時間(206)が求められる。また要求転送データ量(205)と転送データ量カウンタのカウント値(203)との差分から、残り転送データ量(207)が求められる。
【0032】
これら残り転送時間(206)と残り転送データ量(207)に基づいて、演算回路で計算した評価値が208で示されている。この評価値(208)は、図2では、「残りデータ量/残り転送時間」の演算結果を評価値とした計算結果で示している。
【0033】
尚、図2に示した、評価値を求めるためのカウンタ及び演算回路は、各マスタごとに実装されている。この各マスタの評価値は同時に調停部13に出力される。これにより調停部13は、その評価値が大きいマスタの優先順位を高く設定し、評価値が大きいマスタのバス権要求に対して優先的にバス使用許可を与えるように動作する。
【0034】
図3は、マスタごとに計算した評価値を分かりやすく解説する図である。この図3では説明を簡単にするために、2つのマスタ14,15がそれぞれ同じ要求転送時間と転送要求データ量で、転送開始タイミングが異なる場合のデータ転送の様子を示している。
【0035】
マスタ14及び15で示されている各三角形において、底辺が要求転送時間を表し、高さが要求転送データ量を示している。また三角形の傾きの部分が、デッドラインを保証するために必要な平均転送レートを示している。
【0036】
いま時刻tにおける、各マスタの転送開始からの経過時間と転送済みデータ量を示す位置を、各三角形の内側に黒丸で示している。2つのマスタにおいて、要求されている平均転送レートは同じである。本実施の形態1では、各マスタごとに評価値を計算して評価値に応じてバス使用権を与えるように動作する。
【0037】
図3においては、評価値を「残りデータ量/残り転送時間」で求めた場合、時間tにおける各マスタの評価値が31,32で表されている。即ち、点線31はマスタ14の評価値を示し、点線32はマスタ15の評価値を示している。図3の例では、マスタ14の評価値がマスタ15の評価値と比較して大きいため、マスタ15の優先順位はマスタ14よりも高く設定される。そして時間の経過とともに、或はデータ転送が行われることにより評価値が変化してゆく。しかし、マスタ14とマスタ15の評価値の大小関係が変わらない限り、これらマスタ14と15の優先順位は一定に保たれる。
【0038】
図3に示す場合は、時刻tの時点でマスタ14の優先順位が高く設定され、評価値の大小関係がかわらない限り、マスタ14のバス権要求がある場合は、調停部13はマスタ14に連続してバス使用権を与え続けるように動作する。また評価値の大小関係が変化し、マスタ15の評価値がマスタ14の評価値よりも大きくなった場合は、調停部13はマスタ15に優先的にバス使用権を与えるように動作する。
【0039】
以上説明したように本実施の形態1によれば、各マスタの動作状況に応じて優先順位を動的に切り替えることが可能であり、各マスタに対して適切な調停を行うことが可能となる。
【0040】
[実施の形態2]
次に本発明の実施の形態2について説明する。この実施の形態2にバス調停装置の構成と動作の主要部は、前述の実施の形態1の図1及び図2と同じであるため、その説明を省略する。
【0041】
前述の実施の形態1における残り転送時間、残り転送データ量に基づいて評価値を決定するのに加えて、この実施の形態2では、各マスタに固有の転送能力値を、予め各マスタ毎にパラメータとして与えておく。ここで、転送能力値は、そのマスタが単独でバスを占有したと仮定したときに達成可能な転送速度の平均値とする。
【0042】
即ち、残り転送時間及び残りデータ転送量から下記の式(1)により、デッドタイムまでに残りデータの転送を完遂するのに必要な転送速度を求める。
【0043】
(残りデータ転送量)/(残り転送時間) ...式(1)
そして、式(1)により求めた値を、マスタの転送能力で割ったものを新たなプライオリティ評価値として以下のように定義する。
【0044】
(残りデータ量)/(残り転送時間)/(マスタの転送能力) ...式(2)
この式(2)は、ある一定の転送能力を持つマスタに対して課せられたデッドライン要求がどの程度厳しいものかを判断するための値である。この式(2)から導かれた値が大きいほど、デッドラインまでにデータ転送を終えるために、そのマスタに固有の転送能力に近い転送速度でのデータ転送が必要となることを意味する。また、値が「1」に到達したマスタは、要求速度がマスタの転送能力と一致していることになり、バスを占有できない限り、そのデータ転送要求を満たせないことを意味する。
【0045】
カウンタ部12は、各マスタ毎に、式(2)に基づいて、各マスタのバス使用緊急度を求める。
【0046】
一方、調停部13は、この評価値(緊急度)を大小比較し、評価値が大きいマスタに高い優先権を与えることでプライオリティを決定する。例えば、値が「0.1」であるマスタよりも「0.5」のマスタの方が転送を行う上で現時点での緊急度が高いと判断し、そのマスタに優先権を与える。
【0047】
この評価値の算出と大小比較とをリアルタイムで実行することにより、精度の高いプライオリティ管理が可能となる。
【0048】
残り転送時間と残り転送データ量、転送能力パラメータを演算回路で計算した値をマスタの評価値とする。
【0049】
図4は、本発明の実施の形態2に係るアービタ10による動作を説明するタイミングチャートである。図4において、「要求転送時間」から「残り転送データ量」までは、前述の実施の形態1の図2と同じである。
【0050】
図4において、401は、前述の式(1)で得られる{(残りデータ転送量)/(残り転送時間)}の演算結果を示している。転送能力値402は、このマスタに対して予め与えられた値であり、ここでは「0.8」である。そして評価値403は、{(残りデータ転送量)/(残り転送時間)}の演算結果を、この転送能力値(0.8)で割ることにより得られる(式(2))。
【0051】
図4に示した、評価値を求めるためのカウンタ、演算回路は、各マスタごとに実装されており、各マスタの評価値は同時に調停部13に出力される。調停部13は、評価値の大きいマスタの優先順位を高く設定し、評価値の大きいマスタのバス権要求に対してバス使用許可を与えるように動作する。
【0052】
図5は、本実施の形態2において、各マスタごとに計算した評価値を分かりやすく解説する図である。
【0053】
図5では説明を簡単にするために、2つのマスタ(マスタ0(14),1(15))がそれぞれ同時にデータ転送を開始し、同じ要求期間内にデッドライン保証することが期待されているとする。横軸は時間軸であり、ある時刻tにおいてデッドライン保証を完遂するのに必要な転送レート(残りデータ量/残り時間)は、マスタ0とマスタ1とで全く同じ値とする。且つ、マスタ0とマスタ1の転送能力のそれぞれが、直線の傾き33,34で表わされている。実際は、これら直線の傾き33,34(=平均転送レート)は、パラメータとして予め設定されている。
【0054】
図5では、マスタ0の転送能力がマスタ1の転送能力を上回っていることを表している。よって、上記式(2)で得られる評価値は、マスタ0よりもマスタ1の方が大きくなる。その結果、時刻tでは、マスタ1の優先度が高くなる。この緊急度の算出とバス使用権の割り付けをリアルタイムで行うことにより、その時点で最も負荷の重いマスタに対してバス使用権を与えることができる。特に非同期でバスアクセスを開始するマスタに対しても柔軟な対応が可能となる。
【0055】
図6は、本実施の形態2に係るマスタ0と1の転送能力を説明する図である。この図6では、マスタ0の転送能力は、マスタ1の約3倍である。
【0056】
以上説明したように実施の形態2によれば、各マスタによるデータ転送の調停に転送能力を加えることにより、よりマスタの特性に応じた精度の高いデッドライン保証が可能となる。
【0057】
またマスタの転送能力を、平均転送レートという比較的シンプルで見積もりやすいパラメータとして与えても良い。
【0058】
[実施の形態3]
図7は、本発明の実施の形態3に係るバスマスタ装置の構成を表すブロック図である。
【0059】
このバスマスタ100は、バススレーブI/F部110、転送時間レジスタ111、転送量レジスタ112、転送開始レジスタ113、転送能力レジスタ114、バスマスタI/F部120、バスマスタ制御部121、データ処理部122、転送要求度計算部123、残り転送時間レジスタ124、残り転送量レジスタ125を具備している。
【0060】
図8は、実施の形態3に係るバスマスタ100を用いたシステムの構成を表す概略ブロック図である。
【0061】
このバスマスタ100は、バス40,CPU41、アービタ42、バスマスタ43〜45、バススレーブ46,47を具備している。このうち、バスマスタ43,44,45はそれぞれ図7のバスマスタ100に相当している。
【0062】
まず図7のバスマスタ100の概要を説明する。バススレーブI/F部110は、バス0上のCPU(図8のCPU41に相当)からのレジスタアクセスを受付けるインターフェースである。転送時間レジスタ111は、バスマスタ100が行うデータ転送に要求される転送時間(即ち、転送開始から転送終了までの時間の最大値)を1μ秒単位で設定するレジスタである。転送量レジスタ112は、転送するデータの転送量をバイト単位で設定するレジスタである。またバスマスタ100は、転送開始レジスタ113に「1」が書き込まれることによってデータ転送を開始し、このデータ転送が完了すると転送開始レジスタ113を自動的にクリアする。
【0063】
転送能力レジスタ114は、バスマスタ100の転送能力を設定する6ビットのレジスタである。バスマスタ100が単独でデータ転送を行った場合(即ち、バスマスタ100のみに連続してバス権許可が与えられ続けた場合)における平均転送能力を設定する(単位はワード/サイクル)。この転送能力レジスタ114の設定範囲は、「0.01325(=2-5)」から「1(=20)」までである。これはハードウエア的には「1」を超える設定が可能であるが、1サイクルあたり1ワードを超えるデータ転送は、本実施の形態3に係るバスシステムでは不可能なため上限を「1」としている。
【0064】
バスマスタI/F部120は、バス101上のバススレーブ(図8のバススレーブ46又は47に相当)と、後述するデータ処理部122との間のデータ転送を行うためのインターフェースである。バスマスタ制御部121は、バスマスタI/F部120、転送開始レジスタ113、後述の残り転送時間レジスタ124並びに残り転送量レジスタ125を制御する。データ処理部122は、転送データを生成又は受信する部分で、例えば画像処理を行うブロックや、外部との通信を行うインターフェースブロック等、バスマスタ100に要求される機能によって異なる。
【0065】
次に本実施の形態3に係るバスマスタ100の詳細について説明する。
【0066】
バス101上のCPU41から転送開始レジスタ113に「1」が書き込まれると、バスマスタ制御部121は、残り転送時間レジスタ124及び残り転送量レジスタ125に対してロード信号をアサートする。これにより、転送時間レジスタ111の値が残り転送時間レジスタ124にコピーされると共に、転送量レジスタ112の値が残り転送量レジスタ125にコピーされる。その後、バスマスタ制御部121は、残り転送時間レジスタ124に対して、1μ秒ごとに時間減算信号をアサートする。また残り転送量レジスタ125に対しては、データ転送が行われる度に転送されたバイト数分のデータ転送量の減算信号をアサートする。例えば、本実施の形態3では、バス101における1ワードが4バイトである。このため、1ワードの転送が行われた場合は、転送量減算信号として「4」が、ハーフワード転送の場合には「2」が、バイト転送の場合には「1」がそれぞれアサートされる。そして残り転送量レジスタ125は、自身の値から転送量減算信号の値を減算する。
【0067】
以上により、残り転送時間レジスタ124及び残り転送量レジスタ125の値が減算され、残り転送時間及び残り転送量の値が適切に更新される。
【0068】
データ処理部122も、転送開始レジスタ113に「1」が書き込まれることによって起動される。データが送信或は受信可能になると、データ処理部122はバスマスタ制御部121に対してデータレディ信号をアサートする。このデータレディ信号のアサートを受けて、バスマスタ制御部121は、バス101上のアービタ(図8のアービタ42に相当)に対して転送要求信号をアサートするようバスマスタI/F部120を制御する。
【0069】
一方、転送要求度計算部123は、残り転送時間レジスタ124、残り転送量レジスタ125並びに転送能力レジスタ114の値に基づいて、データ転送の優先度を計算する。
【0070】
本実施の形態3に係る転送要求度計算部123における計算は、上述の式(2)に対応する「(残り転送量レジスタ25の値/残り転送時間レジスタ24の値)/転送能力レジスタ14の値」である。この計算により、同一の残りデータ量に対しては、残り時間が少なくなるほど転送要求優先度が大きくなる。
【0071】
一方、同一の残り時間に対しては、残りデータ量が多くなるほど転送要求優先度が大きくなる。更に、同一の「残りデータ量/残り時間」の値に対しては、転送能力の低いバスマスタほど転送要求優先度が大きくなる。バスマスタI/F部120はアービタ42に対して、転送要求度計算部123における計算結果を転送要求優先度信号として出力する。この転送要求優先度信号のアサートタイミングは、転送要求信号のアサート開始と同一サイクルで、以降、転送が完了するまで値を保持する。
【0072】
アービタ42は、転送要求優先度信号の値がより大きいバスマスタに対して優先的に転送許可を与える。また転送要求優先度信号の値が最大のバスマスタが複数ある場合は、最大であるバスマスタを対象にラウンドロビン方式でバス調停を行う。
【0073】
以上のような構成並びに方式を採ることにより、各バスマスタに対して適切なデッドライン保証を行うことが可能となる。
【0074】
[実施の形態4]
図9は、本発明の実施の形態4に係るバスマスタ100を用いた、別のシステムの構成を表す概略ブロック図である。
【0075】
このシステムは、上位階層バス50にCPU51、アービタ52、バスマスタ53,54、バススレーブ55を接続している。またバスブリッジ56を介して下位階層バス60と接続されている。この下位階層バス60には、アービタ61、バスマスタ62,63、バススレーブ64が接続されている。このうち、CPU51は図8のCPU41と同一であり、アービタ52,61は、バスマスタのチャネル数が異なる点以外は、図8のアービタ42と同じである。またバスマスタ53,54,62,63は、それぞれ図7のバスマスタ100に相当し、バススレーブ55,56,64はそれぞれ、図8のバススレーブ46,47と同一である。
【0076】
前述の実施の形態3に係る図8との相違点は、上位階層バス50と下位階層バス60の2つにバスが階層化されている点にある。上位階層バス50ではアービタ52がバスの調停を行い、下位階層バス60ではアービタ61がバス調停を行う。またバス階層を跨いで転送を行う場合は、バスブリッジ56を介して行う。
【0077】
バス階層を跨いだ転送の例として、下位階層バス60上のバスマスタ62から上位階層バス50上のバススレーブ55へデータ転送を行う場合について説明する。
【0078】
まずバスマスタ62は、アービタ61に対して、転送要求優先度信号と共に転送要求信号を送る。これに応答してアービタ61により転送許可が与えられると、バスマスタ62は、バスブリッジ56を介してバススレーブ55に対してデータ転送を開始する。これを受けてバスブリッジ56は、アービタ52に対して、バスマスタ62が発行した転送要求優先度信号値と共にデータ転送を要求する。即ち、このときバスブリッジ56は、上位階層バス50上のバスマスタの1つとして動作する。また転送要求優先度信号は、下位階層バス60上のバスマスタ62が出力した値を継承する。アービタ52によって上位階層バス50における転送許可を与えられると、バスブリッジ56はバススレーブ55に対してデータ転送を行い、データ転送動作が終了する。
【0079】
アービタ52及び61の調停動作は、前述の実施の形態3と同様であり、転送要求優先度信号の値がより大きいバスマスタに対して、優先的に転送許可を与える。また転送要求優先度信号の値が最大のバスマスタが複数ある場合は、最大であるバスマスタを対象にラウンドロビン方式でバス調停を行う。
【0080】
以上のような構成並びに方式を採ることにより、階層化されたバスシステムにおいても、各バスマスタに対して適切なデッドライン保証を行うことが可能となる。
【0081】
図11は、図10の転送条件に対して、デッドライン保証が可能となった例を示すグラフ図である。
【0082】
図10は、ラウンドロビン方式の調停アルゴリズムではデッドライン保証ができない例を示すグラフである。図10では、1サイクルあたり1ワード(1ワードは4バイトとする)を転送できるバスシステムにおいて、3つのバスマスタが合計896ワードを転送している。マスタ0とマスタ2のデッドラインは、800サイクル目である。またマスタ1のデッドラインは、1100サイクル目である。また、各バスマスタのデータ転送量は、各々マスタ0が512バイト、マスタ1が256バイト、マスタ2が128バイトである。図10においては、単純なラウンドロビン方式によるバス調停であるため、マスタ0の転送完了がデッドラインである800サイクル目を越えてしまい、デッドライン保証ができていない。
【0083】
これに対し図11では、マスタ0(14)がマスタ1(15)並びにマスタ2(16)よりも優先されてバス権許可を多く受けている。これによりデッドラインの保証が可能となり、かつ、マスタ2のデッドラインも保証も可能となっている。
【0084】
また図13は、図12の転送条件に対して本実施の形態4を適用し、デッドライン保証が可能となった例を示すグラフ図である。
【0085】
図12は、バスマスタの転送能力が考慮されないことによってデッドライン保証ができない例を示すグラフ図である。バスマスタの転送能力には、一回当りの転送ビート数やデータ転送要求の発行頻度などが例として挙げられるが、同図における各バスマスタのデータ転送条件は以下のとおりである。
【0086】
マスタ0は、100000サイクル以内に16000ワードの転送を保証、転送能力0.57ワード/サイクル、バスリクエスト間隔1サイクルである。マスタ1は、100000サイクル以内に9000ワードの転送を保証、転送能力0.14ワード/サイクル、バスリクエスト間隔25サイクルである。そしてマスタ2は、30000サイクル以内に5000ワードの転送を保証、転送能力0.40ワード/サイクル、バスリクエスト間隔8サイクルである。
【0087】
図12では、残り時間検知手段と残り転送量検知手段の比によって、優先度を動的に変更する調停を行っている。転送能力が高いマスタ0が余裕を持ってデータ転送を完了している(1200)。これに対して転送能力の低いマスタ1のデッドラインが保証できていない(1201)。
【0088】
これに対して本実施の形態4では、残り時間検知手段と残り転送量検知手段の比に加え、バスマスタの転送能力をさらに加味して調停を行っている。これにより図13に示すように、図12ではデッドライン保証できていなかったマスタ1(15)に対してもデッドラインの保証が可能となっている。
【0089】
[実施の形態5]
図14は、本発明の実施の形態5に係るバスマスタ100aの構成を表すブロック図で、前述の実施の形態3の図7と共通する部分は同じ記号で示し、それらの説明を省略する。この図14では、図7と比較して、転送能力レジスタ114が省略されている。
【0090】
このバスマスタ100aを用いたシステムの構成は前述の図8と同様である。
【0091】
次に本実施の形態5に係るバスマスタ100aの詳細について説明する。
【0092】
バス101上のCPUから転送開始レジスタ113に「1」が書き込まれると、バスマスタ制御部121は、残り転送時間レジスタ124及び残り転送量レジスタ125に対してロード信号をアサートする。これにより、転送時間レジスタ111の値が残り転送時間レジスタ124にコピーされると共に、転送量レジスタ112の値が残り転送量レジスタ125にコピーされる。その後、バスマスタ制御部121は、残り転送時間レジスタ124に対して1μ秒ごとに時間減算信号をアサートする。また残り転送量レジスタ125に対して、データ転送が行われる度に、その転送されたバイト数分の転送量減算信号をアサートする。例えば本実施の形態5では、バス101における1ワードは32ビットである。このため、1ワードの転送が行われた場合には転送量減算信号として「4」が、ハーフワード転送の場合には「2」が、バイト転送の場合には「1」がそれぞれアサートされる。そして残り転送量レジスタ125は、自身の値から転送量減算信号の値を減算する。
【0093】
以上により、残り転送時間レジスタ124及び残り転送量レジスタ125の値が減算され、残り転送時間及び残り転送量の値が適切に更新される。
【0094】
データ処理部122も、転送開始レジスタ113に「1」が書き込まれることによって起動される。データの送信或は受信が可能になると、データ処理部122はバスマスタ制御部121に対してデータレディ信号をアサートする。このデータレディ信号のアサートを受けて、バスマスタ制御部121は、バス101上のアービタ(図8のアービタ42に相当)に対して転送要求信号をアサートするようにバスマスタI/F部120を制御する。
【0095】
一方、転送要求度計算部123は、残り転送時間レジスタ124及び残り転送量レジスタ125の値に基づいて、データ転送の優先度を計算する。
【0096】
本実施の形態5に係る転送要求度計算部123の計算は、「残り転送量レジスタ25の値/残り転送時間レジスタ24の値」である。この計算により、同一の残りデータ量に対しては、残り時間が少なくなるほど転送要求の優先度が高くなる。
【0097】
一方、同一の残り時間に対しては、残りデータ量が多くなるほど転送要求優先度が高くなる。バスマスタI/F部120は、アービタ42に対して、転送要求度計算部123の計算結果を転送要求優先度信号として出力する。この転送要求優先度信号のアサートタイミングは、転送要求信号のアサート開始と同一サイクルで、以降、転送が完了するまで値を保持する。
【0098】
アービタ42は、この転送要求優先度信号の値がより大きいバスマスタに優先的に転送許可を与える。また転送要求優先度信号の値が最大のバスマスタが複数ある場合は、最大であるバスマスタを対象にラウンドロビン方式でバス調停を行う。
【0099】
以上のような構成並びに方式を採ることにより、各バスマスタに対して適切な帯域保証を行うことが可能となる。
【0100】
[実施の形態6]
実施の形態6に係る、バスマスタ100aを用いた、別のシステムの構成を表す概略ブロック図は、前述の図9の構成と同じである。
【0101】
ここでは上位階層バス50と下位階層バス60の2つにバスが階層化されている。上位階層バス50においてはアービタ52がバス調停を行い、下位階層バス60においてはアービタ61がバス調停を行う。また、バス階層を跨いで転送を行う場合は、バスブリッジ56を介して行う。この場合のバス階層を跨いだ転送の例は、図9を参照して前述した説明と同じであるため、その説明を省略する。
【0102】
図15は、上述した実施の形態に係るバス調停装置、或はバスマスタにおける処理を説明するフローチャートである。
【0103】
まずステップS1で、データ転送を実行する転送時間と、そのデータ転送量とを各レジスタに設定する。次にステップS2で、データの転送開始が指示されるのを待ち、データ転送の開始が指示されるとステップS3に進み、そのデータ転送を行うマスタに対応するデータ転送量及び転送経過時間を初期化する。次にステップS4で、そのデータ転送に選択したマスタとスレーブとの間でのデータ転送を実行し、そのデータ転送に同期して、そのマスタの転送データ量及び転送時間を更新する。次にステップS5で、(残りデータ量)/(残り時間)を計算する。次にステップS6では、図4や図7の例では、ステップS5で求めた値を転送能力値で割る。但し、図2や図14に対応するバスマスタの場合には、このステップS6は省略できる。そしてステップS7で、前述した式(1)或は(2)に基づいて、そのマスタの評価値を求める。ここで、これらステップS1〜S7に示す処理は、各マスタのそれぞれに対して実行されている。次にステップS8で、各マスタに対して求めた評価値同士を比較し、最も評価値の大きいマスタを選択する。そしてステップS9で、その選択したマスタに対して、バスのアクセス使用権を与える。
【0104】
こうして本実施の形態に係るバス調停装置或はバスマスタ装置は、各マスタに対してバスの使用権を付与するための調停処理を実行することができる。
【0105】
(他の実施形態)
以上、本発明の実施形態について詳述したが、本発明は、複数の機器から構成される文書検索システムに適用しても良いし、また、一つの機器からなる文書検索装置に適用しても良い。
【0106】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを読み出して実行することによっても達成され得る。上記実施形態では、図5から7、及び図9から13のフローチャートに対応したプログラムである。その場合、プログラムの機能を有していれば、形態は、プログラムである必要はない。 従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明のクレームでは、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
【0107】
プログラムを供給するための記録媒体としては、様々なものが使用できる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などである。
【0108】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページからハードディスク等の記録媒体にダウンロードすることによっても供給できる。その場合、ダウンロードされるのは、本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
【0109】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布する形態としても良い。その場合、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムが実行可能な形式でコンピュータにインストールされるようにする。
【0110】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される形態以外の形態でも実現可能である。例えば、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【0111】
更に、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれるようにしてもよい。この場合、その後で、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【図面の簡単な説明】
【0112】
【図1】本発明の実施の形態1に係るバス調停装置(バスアービタ)の構成図である。
【図2】実施の形態1に係るアービタの動作を説明するタイミングチャートである。
【図3】実施の形態1においてマスタごとに計算した評価値を分かりやすく解説する図である。
【図4】本発明の実施の形態2に係るアービタによる動作を説明するタイミングチャートである。
【図5】本実施の形態2において、各マスタごとに計算した評価値を分かりやすく解説する図である。
【図6】本実施の形態2に係るマスタ0と1の転送能力を説明する図である。
【図7】本発明の実施の形態3に係るバスマスタの構成を表すブロック図である。
【図8】実施の形態3に係るバスマスタを用いたシステムの構成を表す概略ブロック図である。
【図9】本発明の実施の形態4に係るバスマスタを用いた、別のシステムの構成を表す概略ブロック図である。
【図10】ラウンドロビン方式の調停アルゴリズムでデッドライン保証ができない例を説明するグラフ図である。
【図11】図10の転送条件に対して、デッドライン保証が可能となった例を示すグラフ図である。
【図12】バスマスタの転送能力が考慮されないことによってデッドライン保証ができない例を説明するグラフ図である。
【図13】図12の転送条件に対して本実施の形態4を適用し、デッドライン保証が可能となった例を示すグラフ図である。
【図14】本発明の実施の形態5に係るバスマスタの構成を表すブロック図である。
【図15】本実施の形態に係るバス調停装置における処理を説明するフローチャートである。
【特許請求の範囲】
【請求項1】
データ転送要求を発行した各マスタによるバスの使用権を調停するバス調停装置であって、
各マスタに対応して、データ転送の期限までの残り時間を計時する残り時間計時手段と、
各マスタに対応して、転送すべき残りのデータ量を検知する残りデータ量検知手段と、
前記残り時間及び前記残りデータ量とに基づいて、各マスタからのデータ転送要求に優先度を設定する優先度設定手段と、
を有することを特徴とするバス調停装置。
【請求項2】
各マスタがそれぞれに、所定の時間内に所定のデータ量のデータ転送を完了できるようにバス使用権の調停を行うバス調停装置であって、
各マスタに対応して、前記所定の時間と前記所定のデータ量を設定する設定手段と、
各マスタに対応して、前記所定の時間に達するまでの残り時間を計時する計時手段と、
各マスタに対応して、前記所定のデータ量までの残りデータ量を検知する残データ量検知手段と、
前記残り時間と前記残りデータ量とに基づいて、各マスタ毎にバス使用権を割り当てるバス調停手段と、
を有することを特徴とするバス調停装置。
【請求項3】
各マスタの転送能力を表す情報を格納する転送能力格納手段を更に有し、
前記バス調停手段は、前記残り時間と前記残りデータ量と、前記情報との演算結果に基づいて、各マスタ毎にバス使用権を割り当てることを特徴とする請求項2に記載のバス調停装置。
【請求項4】
前記計時手段は、時間の経過と共に時間を計時する時間経過カウンタを含むことを特徴とする請求項2又は3に記載のバス調停装置。
【請求項5】
前記残データ量検知手段は、データ転送を行う度にデータ量をカウントするデータ量カウンタを含むことを特徴とする請求項2又は3に記載のバス調停装置。
【請求項6】
前記バス調停手段は、前記残りデータ量と前記残り時間との除算結果に基づいて各マスタ毎にバス使用権を割り当てることを特徴とする請求項2乃至5のいずれか1項にバス調停装置。
【請求項7】
バスアービタにバス要求信号を送出し、前記バスアービタからの応答信号に応じてバスにアクセスするバスマスタ装置であって、
データ転送すべき期限までの残り時間を検知する残り時間検知手段と、
転送すべき残りデータ量を検知する残りデータ量検知手段と、
前記残り時間及び前記残りデータ量に基づいて前記バス要求信号の優先度を算出する優先度算出手段と、
を有することを特徴とするバスマスタ装置。
【請求項8】
バスマスタ装置自身の転送能力を設定する転送能力設定手段を更に有し、前記優先度算出手段は、前記残り時間及び前記残りデータ量に加えて、更に前記装置自身の転送能力に基づいて前記優先度を算出することを特徴とする請求項7に記載のバスマスタ装置。
【請求項9】
前記優先度算出手段は、前記残り時間と前記残りデータ量との比に基づいて前記優先度を動的に算出することを特徴とする請求項7に記載のバスマスタ装置。
【請求項10】
前記優先度算出手段は、前記残り時間と前記残りデータ量、及び前記装置自身の転送能力との比に基づいて前記優先度を動的に算出することを特徴とする請求項8に記載のバスマスタ装置。
【請求項11】
転送時間を設定する転送時間設定手段と、
データ転送量を設定する転送データ量設定手段とを更に有し、
前記残り時間検知手段は、前記転送時間設定手段により設定された前記転送時間をデータ転送の開始からの時間の経過に応じて更新して前記残り時間を検知し、
前記残りデータ量検知手段は、前記転送データ量定手段により設定された前記データ転送量をデータ転送の開始からの転送データの量に応じて更新して前記残りデータ量を検知することを特徴とする請求項7乃至10のいずれか1項に記載のバスマスタ装置。
【請求項12】
前記優先度算出手段によって算出した前記優先度をバスアービタに対して伝達する手段を更に具備することを特徴とする請求項7又は8に記載のバスマスタ装置。
【請求項13】
データ転送要求を発行した各マスタによるバスの使用権を調停するバス調停方法であって、
各マスタに対応して、データ転送の期限までの残り時間を計時する残り時間計時工程と、
各マスタに対応して、転送すべき残りのデータ量を検知する残りデータ量検知工程と、
前記残り時間及び前記残りデータ量とに基づいて、各マスタからのデータ転送要求に優先度を設定する優先度設定工程と、
を有することを特徴とするバス調停方法。
【請求項14】
各マスタがそれぞれに、所定の時間内に所定のデータ量のデータ転送を完了できるようにバス使用権の調停を行うバス調停方法であって、
各マスタに対応して、前記所定の時間と前記所定のデータ量を設定する設定工程と、
各マスタに対応して、前記所定の時間に達するまでの残り時間を計時する計時工程と、
各マスタに対応して、前記所定のデータ量までの残りデータ量を検知する残データ量検知工程と、
前記残り時間と前記残りデータ量とに基づいて、各マスタ毎にバス使用権を割り当てるバス調停工程と、
を有することを特徴とするバス調停方法。
【請求項15】
各マスタの転送能力を表す情報を格納する転送能力格納工程を更に有し、
前記バス調停工程では、前記残り時間と前記残りデータ量と、前記情報との演算結果に基づいて、各マスタ毎にバス使用権を割り当てることを特徴とする請求項14に記載のバス調停方法。
【請求項16】
前記計時工程では、データ転送の開始から時間の経過と共に時間を計時することを特徴とする請求項14又は15に記載のバス調停方法。
【請求項17】
前記残データ量検知工程では、データ転送の開始から、データ転送を行う度にデータ量をカウントすることを特徴とする請求項14又は15に記載のバス調停方法。
【請求項18】
前記バス調停工程では、前記残りデータ量と前記残り時間との除算結果に基づいて各マスタ毎にバス使用権を割り当てることを特徴とする請求項14乃至17のいずれか1項にバス調停方法。
【請求項19】
バスアービタにバス要求信号を送出し、前記バスアービタからの応答信号に応じてバスにアクセスするバスマスタ装置の制御方法であって、
データ転送すべき期限までの残り時間を検知する残り時間検知工程と、
転送すべき残りデータ量を検知する残りデータ量検知工程と、
前記残り時間及び前記残りデータ量に基づいて前記バス要求信号の優先度を算出する優先度算出工程と、
を有することを特徴とするバスマスタ装置の制御方法。
【請求項20】
バスマスタ方法自身の転送能力を設定する転送能力設定工程を更に有し、前記優先度算出工程では、前記残り時間及び前記残りデータ量に加えて、更に前記方法自身の転送能力に基づいて前記優先度を算出することを特徴とする請求項19に記載のバスマスタ装置の制御方法。
【請求項21】
前記優先度算出工程では、前記残り時間と前記残りデータ量との比に基づいて前記優先度を動的に算出することを特徴とする請求項19に記載のバスマスタ装置の制御方法。
【請求項22】
前記優先度算出工程では、前記残り時間と前記残りデータ量、及び前記方法自身の転送能力との比に基づいて前記優先度を動的に算出することを特徴とする請求項20に記載のバスマスタ装置の制御方法。
【請求項23】
転送時間を設定する転送時間設定工程と、
データ転送量を設定する転送データ量設定工程とを更に有し、
前記残り時間検知工程では、前記転送時間設定工程で設定された前記転送時間をデータ転送の開始からの時間の経過に応じて更新して前記残り時間を検知し、
前記残りデータ量検知工程では、前記転送データ量定工程で設定された前記データ転送量をデータ転送の開始からの転送データの量に応じて更新して前記残りデータ量を検知することを特徴とする請求項19乃至22のいずれか1項に記載のバスマスタ装置の制御方法。
【請求項24】
前記優先度算出工程によって算出した前記優先度をバスアービタに対して伝達する工程を更に具備することを特徴とする請求項19又は20に記載のバスマスタ装置の制御方法。
【請求項1】
データ転送要求を発行した各マスタによるバスの使用権を調停するバス調停装置であって、
各マスタに対応して、データ転送の期限までの残り時間を計時する残り時間計時手段と、
各マスタに対応して、転送すべき残りのデータ量を検知する残りデータ量検知手段と、
前記残り時間及び前記残りデータ量とに基づいて、各マスタからのデータ転送要求に優先度を設定する優先度設定手段と、
を有することを特徴とするバス調停装置。
【請求項2】
各マスタがそれぞれに、所定の時間内に所定のデータ量のデータ転送を完了できるようにバス使用権の調停を行うバス調停装置であって、
各マスタに対応して、前記所定の時間と前記所定のデータ量を設定する設定手段と、
各マスタに対応して、前記所定の時間に達するまでの残り時間を計時する計時手段と、
各マスタに対応して、前記所定のデータ量までの残りデータ量を検知する残データ量検知手段と、
前記残り時間と前記残りデータ量とに基づいて、各マスタ毎にバス使用権を割り当てるバス調停手段と、
を有することを特徴とするバス調停装置。
【請求項3】
各マスタの転送能力を表す情報を格納する転送能力格納手段を更に有し、
前記バス調停手段は、前記残り時間と前記残りデータ量と、前記情報との演算結果に基づいて、各マスタ毎にバス使用権を割り当てることを特徴とする請求項2に記載のバス調停装置。
【請求項4】
前記計時手段は、時間の経過と共に時間を計時する時間経過カウンタを含むことを特徴とする請求項2又は3に記載のバス調停装置。
【請求項5】
前記残データ量検知手段は、データ転送を行う度にデータ量をカウントするデータ量カウンタを含むことを特徴とする請求項2又は3に記載のバス調停装置。
【請求項6】
前記バス調停手段は、前記残りデータ量と前記残り時間との除算結果に基づいて各マスタ毎にバス使用権を割り当てることを特徴とする請求項2乃至5のいずれか1項にバス調停装置。
【請求項7】
バスアービタにバス要求信号を送出し、前記バスアービタからの応答信号に応じてバスにアクセスするバスマスタ装置であって、
データ転送すべき期限までの残り時間を検知する残り時間検知手段と、
転送すべき残りデータ量を検知する残りデータ量検知手段と、
前記残り時間及び前記残りデータ量に基づいて前記バス要求信号の優先度を算出する優先度算出手段と、
を有することを特徴とするバスマスタ装置。
【請求項8】
バスマスタ装置自身の転送能力を設定する転送能力設定手段を更に有し、前記優先度算出手段は、前記残り時間及び前記残りデータ量に加えて、更に前記装置自身の転送能力に基づいて前記優先度を算出することを特徴とする請求項7に記載のバスマスタ装置。
【請求項9】
前記優先度算出手段は、前記残り時間と前記残りデータ量との比に基づいて前記優先度を動的に算出することを特徴とする請求項7に記載のバスマスタ装置。
【請求項10】
前記優先度算出手段は、前記残り時間と前記残りデータ量、及び前記装置自身の転送能力との比に基づいて前記優先度を動的に算出することを特徴とする請求項8に記載のバスマスタ装置。
【請求項11】
転送時間を設定する転送時間設定手段と、
データ転送量を設定する転送データ量設定手段とを更に有し、
前記残り時間検知手段は、前記転送時間設定手段により設定された前記転送時間をデータ転送の開始からの時間の経過に応じて更新して前記残り時間を検知し、
前記残りデータ量検知手段は、前記転送データ量定手段により設定された前記データ転送量をデータ転送の開始からの転送データの量に応じて更新して前記残りデータ量を検知することを特徴とする請求項7乃至10のいずれか1項に記載のバスマスタ装置。
【請求項12】
前記優先度算出手段によって算出した前記優先度をバスアービタに対して伝達する手段を更に具備することを特徴とする請求項7又は8に記載のバスマスタ装置。
【請求項13】
データ転送要求を発行した各マスタによるバスの使用権を調停するバス調停方法であって、
各マスタに対応して、データ転送の期限までの残り時間を計時する残り時間計時工程と、
各マスタに対応して、転送すべき残りのデータ量を検知する残りデータ量検知工程と、
前記残り時間及び前記残りデータ量とに基づいて、各マスタからのデータ転送要求に優先度を設定する優先度設定工程と、
を有することを特徴とするバス調停方法。
【請求項14】
各マスタがそれぞれに、所定の時間内に所定のデータ量のデータ転送を完了できるようにバス使用権の調停を行うバス調停方法であって、
各マスタに対応して、前記所定の時間と前記所定のデータ量を設定する設定工程と、
各マスタに対応して、前記所定の時間に達するまでの残り時間を計時する計時工程と、
各マスタに対応して、前記所定のデータ量までの残りデータ量を検知する残データ量検知工程と、
前記残り時間と前記残りデータ量とに基づいて、各マスタ毎にバス使用権を割り当てるバス調停工程と、
を有することを特徴とするバス調停方法。
【請求項15】
各マスタの転送能力を表す情報を格納する転送能力格納工程を更に有し、
前記バス調停工程では、前記残り時間と前記残りデータ量と、前記情報との演算結果に基づいて、各マスタ毎にバス使用権を割り当てることを特徴とする請求項14に記載のバス調停方法。
【請求項16】
前記計時工程では、データ転送の開始から時間の経過と共に時間を計時することを特徴とする請求項14又は15に記載のバス調停方法。
【請求項17】
前記残データ量検知工程では、データ転送の開始から、データ転送を行う度にデータ量をカウントすることを特徴とする請求項14又は15に記載のバス調停方法。
【請求項18】
前記バス調停工程では、前記残りデータ量と前記残り時間との除算結果に基づいて各マスタ毎にバス使用権を割り当てることを特徴とする請求項14乃至17のいずれか1項にバス調停方法。
【請求項19】
バスアービタにバス要求信号を送出し、前記バスアービタからの応答信号に応じてバスにアクセスするバスマスタ装置の制御方法であって、
データ転送すべき期限までの残り時間を検知する残り時間検知工程と、
転送すべき残りデータ量を検知する残りデータ量検知工程と、
前記残り時間及び前記残りデータ量に基づいて前記バス要求信号の優先度を算出する優先度算出工程と、
を有することを特徴とするバスマスタ装置の制御方法。
【請求項20】
バスマスタ方法自身の転送能力を設定する転送能力設定工程を更に有し、前記優先度算出工程では、前記残り時間及び前記残りデータ量に加えて、更に前記方法自身の転送能力に基づいて前記優先度を算出することを特徴とする請求項19に記載のバスマスタ装置の制御方法。
【請求項21】
前記優先度算出工程では、前記残り時間と前記残りデータ量との比に基づいて前記優先度を動的に算出することを特徴とする請求項19に記載のバスマスタ装置の制御方法。
【請求項22】
前記優先度算出工程では、前記残り時間と前記残りデータ量、及び前記方法自身の転送能力との比に基づいて前記優先度を動的に算出することを特徴とする請求項20に記載のバスマスタ装置の制御方法。
【請求項23】
転送時間を設定する転送時間設定工程と、
データ転送量を設定する転送データ量設定工程とを更に有し、
前記残り時間検知工程では、前記転送時間設定工程で設定された前記転送時間をデータ転送の開始からの時間の経過に応じて更新して前記残り時間を検知し、
前記残りデータ量検知工程では、前記転送データ量定工程で設定された前記データ転送量をデータ転送の開始からの転送データの量に応じて更新して前記残りデータ量を検知することを特徴とする請求項19乃至22のいずれか1項に記載のバスマスタ装置の制御方法。
【請求項24】
前記優先度算出工程によって算出した前記優先度をバスアービタに対して伝達する工程を更に具備することを特徴とする請求項19又は20に記載のバスマスタ装置の制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2007−122483(P2007−122483A)
【公開日】平成19年5月17日(2007.5.17)
【国際特許分類】
【出願番号】特願2005−314842(P2005−314842)
【出願日】平成17年10月28日(2005.10.28)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成19年5月17日(2007.5.17)
【国際特許分類】
【出願日】平成17年10月28日(2005.10.28)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]